[hidden]{display:none!important}
:root{--bg:#f5f6fb;--surface:#fff;--surface2:#eef0f7;--text:#111827;--muted:#697386;--border:#e2e5ee;--accent:#6d5dfc;--green:#0b9b68;--shadow:0 12px 32px rgba(36,40,70,.08);--radius:20px;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}.shell{width:min(100% - 28px,1100px);margin:auto;padding:24px 0 40px}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin:4px 0 22px}.jump-nav{position:sticky;top:8px;z-index:10;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:14px;padding:6px;margin:0 0 14px;box-shadow:0 5px 18px rgba(36,40,70,.06)}.jump-nav::-webkit-scrollbar{display:none}.jump-nav a{color:var(--muted);font-size:13px;font-weight:700;white-space:nowrap;text-decoration:none;border-radius:9px;padding:8px 10px}.jump-nav a:hover,.jump-nav a:focus-visible{color:var(--text);background:var(--surface2);outline:none}.jump-nav .jump-nav-primary{color:#fff;background:var(--accent)}.eyebrow{color:var(--accent);font-size:11px;font-weight:800;letter-spacing:.14em;margin:0 0 5px}.topbar h1{font-size:clamp(32px,7vw,46px);letter-spacing:-.05em;line-height:1.05;margin:0}.subtitle{color:var(--muted);margin:8px 0 0}.icon-button{border:1px solid var(--border);background:var(--surface);color:var(--text);width:42px;height:42px;border-radius:14px;cursor:pointer;font-size:20px}.hero-card{background:linear-gradient(135deg,#171b35,#292052);border-radius:var(--radius);box-shadow:var(--shadow);color:#fff;padding:24px;margin-bottom:18px}.hero-copy h2{font-size:24px;letter-spacing:-.03em;margin:14px 0 5px}.hero-copy p{color:#c7c8d8;margin:0 0 20px}.status-dot{display:inline-block;background:#71e2a5;width:8px;height:8px;border-radius:50%;margin-right:8px;box-shadow:0 0 0 5px rgba(113,226,165,.13)}#storyCount{font-size:12px;color:#c7c8d8}.search-wrap{display:flex;align-items:center;background:#fff;border-radius:14px;color:var(--text);padding:0 12px}.search-wrap input{border:0;outline:0;min-width:0;flex:1;height:50px;background:transparent;color:var(--text);font-size:16px}.search-icon{font-size:26px;line-height:1;color:#8991a5;margin-right:7px;transform:rotate(-20deg)}.clear-search{background:none;border:0;color:#8991a5;font-size:22px;cursor:pointer;padding:5px;display:none}.filters{display:flex;gap:8px;overflow-x:auto;padding:0 0 5px;margin-bottom:23px;scrollbar-width:none}.filters::-webkit-scrollbar{display:none}.filter{white-space:nowrap;border:1px solid var(--border);background:var(--surface);color:var(--muted);padding:9px 14px;border-radius:999px;cursor:pointer}.filter.active{background:var(--text);color:var(--surface);border-color:var(--text)}.section{margin-bottom:28px}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:12px}.section-heading h2{font-size:18px;letter-spacing:-.02em;margin:0}.muted{color:var(--muted);font-size:13px}.text-button{border:0;background:none;color:var(--accent);cursor:pointer;font-size:13px}.story-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.story-card{background:var(--surface);border:1px solid var(--border);border-radius:17px;padding:16px;box-shadow:0 4px 14px rgba(36,40,70,.03);display:flex;flex-direction:column;min-height:250px}.card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.stage{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:5px 8px;border-radius:7px;background:var(--surface2);color:var(--muted)}.stage.phase3{background:#eee9ff;color:#5b42d5}.stage.phase2{background:#e3f8f0;color:#087a54}.stage.stub{background:#fff3d9;color:#91620b}.favorite{border:0;background:none;color:#a2a8b7;cursor:pointer;font-size:21px;padding:0;line-height:1}.favorite.active{color:#f4b63f}.story-card h3{font-size:17px;line-height:1.2;letter-spacing:-.025em;margin:14px 0 7px}.hook{font-size:14px;line-height:1.4;margin:0;color:var(--text)}.angle{font-size:12px;line-height:1.35;color:var(--muted);margin:10px 0 0}.card-meta{color:var(--muted);font-size:11px;margin-top:auto;padding-top:14px;display:flex;gap:5px}.actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}.action{font-size:12px;text-decoration:none;color:var(--accent);border:1px solid #dcd8ff;padding:6px 8px;border-radius:8px;background:#faf9ff}.action.primary{background:var(--accent);border-color:var(--accent);color:#fff}.action.telegram{color:#087ca5;border-color:#c9eaf4;background:#f2fbfe}.empty-state{text-align:center;background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius);padding:36px 18px}.empty-icon{font-size:34px;color:var(--accent)}.empty-state h3{margin:8px 0 2px}.empty-state p{color:var(--muted);margin:0}footer{border-top:1px solid var(--border);color:var(--muted);font-size:12px;display:flex;justify-content:space-between;gap:14px;padding-top:18px}footer a{color:var(--accent);text-decoration:none}@media(min-width:700px){.shell{padding-top:45px}.story-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hero-card{padding:30px}.hero-copy p{margin-bottom:24px}}@media(max-width:420px){.shell{width:min(100% - 20px,1100px)}.story-grid{grid-template-columns:1fr;gap:10px}.story-card{min-height:0;padding:15px}.candidate-grid{grid-template-columns:1fr}}
[data-theme=dark]{--bg:#0b1020;--surface:#151b2f;--surface2:#242b43;--text:#f1f3fa;--muted:#9da6bd;--border:#2c3550;--shadow:0 12px 32px rgba(0,0,0,.2);color-scheme:dark}[data-theme=dark] .hero-card{background:linear-gradient(135deg,#171b35,#30265f)}[data-theme=dark] .action{background:#1c2140;border-color:#3c4270}[data-theme=dark] .action.telegram{background:#122c3a;border-color:#245b6e}
.candidate-gist{margin:10px 0 14px;color:var(--text);font-size:14px;line-height:1.5}.candidate-summary-status{display:inline-block;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:700;letter-spacing:.04em}.candidate-summary-status.complete{background:#dcfce7;color:#166534}.candidate-summary-status.failed{background:#fee2e2;color:#991b1b}.candidate-summary-status.pending{background:#fef3c7;color:#92400e}.candidate-summary-status.skipped{background:#e5e7eb;color:#374151}.candidate-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:-4px 0 14px}.candidate-controls label{color:var(--muted);font-size:13px;font-weight:700}.candidate-controls select{margin-left:5px;min-height:38px;padding:7px 9px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text)}.toggle-control{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.toggle-control input{accent-color:var(--accent)}.candidate-lane{color:var(--muted);font-size:11px;text-align:right}.candidate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.candidate-card{background:var(--surface);border:1px solid var(--border);border-radius:17px;padding:16px;box-shadow:0 4px 14px rgba(36,40,70,.03)}.candidate-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.candidate-card h3{font-size:17px;line-height:1.2;letter-spacing:-.025em;margin:14px 0 7px}.candidate-display-headline{font-size:18px!important}.candidate-original{color:var(--muted);font-size:12px;margin:0 0 8px}.candidate-original summary{cursor:pointer}.candidate-original p{margin:4px 0}.candidate-meta{color:var(--muted);font-size:12px;margin:0}.candidate-meta strong{color:var(--text)}.candidate-dismissed-label{display:inline-block;color:var(--muted);font-size:13px;font-weight:700;padding:8px 10px}
.source-proposal-grid,.coverage-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.source-proposal,.coverage-grid span{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px}.source-proposal h3{margin:0 0 6px}.source-proposal p{font-size:.9rem;margin:7px 0}.coverage-grid{margin-bottom:14px}.coverage-grid span{font-size:.9rem}
.source-management-controls{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.source-management-controls input,.source-management-controls select{min-height:42px;padding:8px 10px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:inherit}.source-management-controls input{flex:1;min-width:220px}.source-management-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}.source-management-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px}.source-management-card h3{margin:8px 0 6px}.source-management-card p{font-size:.9rem;margin:7px 0;overflow-wrap:anywhere}.source-management-top{display:flex;justify-content:space-between;align-items:center}.source-status{display:inline-block;border-radius:999px;padding:3px 8px;font-size:.75rem;font-weight:700}.source-status.active{background:#d9f8e5;color:#146b3a}.source-status.disabled{background:#ececf0;color:#666}.source-error{color:#a23b3b}.source-management-card .telegram{display:inline-block}
/* ── interactive: login gate ────────────────────────────── */
.login-gate{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;background:var(--bg)}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:40px 32px;text-align:center;max-width:380px;width:90%;box-shadow:var(--shadow)}.login-card h2{font-size:28px;letter-spacing:-.03em;margin:0 0 8px}.login-subtitle{color:var(--muted);font-size:15px;margin:0 0 24px}.login-footer{color:var(--muted);font-size:12px;margin:24px 0 0}.login-error{color:#e54d4d;font-size:13px;margin:12px 0 0;padding:8px 12px;background:rgba(229,77,77,.1);border-radius:8px}.topbar-right{display:flex;align-items:center;gap:10px}.btn-logout{background:transparent;border:1px solid var(--border);color:var(--muted);padding:6px 14px;border-radius:9px;font-size:13px;cursor:pointer}.btn-logout:hover{color:var(--text);border-color:var(--muted)}
/* ── interactive: dismiss panel ─────────────────────────── */
.dismiss-panel{position:fixed;inset:0;z-index:150;background:rgba(0,0,0,.45);display:flex;align-items:flex-end;justify-content:center}.dismiss-panel-inner{background:var(--surface);border-radius:20px 20px 0 0;padding:24px 20px 32px;width:100%;max-width:500px;box-shadow:0 -8px 30px rgba(0,0,0,.15)}.dismiss-panel-inner h3{margin:0 0 12px;font-size:20px}.dismiss-item-label{color:var(--muted);font-size:13px;margin:0 0 16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dismiss-reasons{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}.reason-chip{background:var(--surface2);border:1px solid var(--border);color:var(--text);padding:8px 16px;border-radius:999px;font-size:14px;font-weight:600;cursor:pointer;min-height:44px}.reason-chip.active{background:var(--accent);color:#fff;border-color:var(--accent)}.dismiss-note{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface2);color:var(--text);font:inherit;font-size:14px;resize:none;margin:0 0 16px}.dismiss-actions{display:flex;justify-content:flex-end;gap:10px}.btn-cancel{background:var(--surface2);border:1px solid var(--border);color:var(--muted);padding:10px 20px;border-radius:12px;font-size:15px;cursor:pointer;min-height:44px}.btn-dismiss{background:var(--accent);color:#fff;border:none;padding:10px 24px;border-radius:12px;font-size:15px;font-weight:700;cursor:pointer;min-height:44px}.btn-dismiss:disabled{opacity:.45;cursor:not-allowed}
/* ── interactive: candidate buttons ─────────────────────── */
.btn-dismiss-interactive{display:inline-block;background:var(--accent);color:#fff;border:none;padding:8px 18px;border-radius:10px;font-size:14px;font-weight:700;cursor:pointer;min-height:44px;min-width:80px}.btn-dismiss-interactive:disabled{opacity:.5;cursor:not-allowed}.btn-dismiss-interactive:hover{filter:brightness(1.1)}.btn-restore{display:inline-block;background:#0b9b68;color:#fff;border:none;padding:8px 18px;border-radius:10px;font-size:14px;font-weight:700;cursor:pointer;min-height:44px}.btn-restore:hover{filter:brightness(1.1)}
/* ── interactive: snackbar ──────────────────────────────── */
.snackbar{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:160;background:var(--surface);border:1px solid var(--border);color:var(--text);padding:12px 20px;border-radius:14px;box-shadow:0 6px 24px rgba(0,0,0,.15);font-size:14px;font-weight:600;max-width:90vw;text-align:center}.snackbar-undo{background:transparent;border:none;color:var(--accent);font-weight:700;cursor:pointer;margin-left:12px;font-size:14px;text-decoration:underline}
/* ── mobile tweaks ──────────────────────────────── */
@media(max-width:600px){.candidate-grid{grid-template-columns:1fr}.dismiss-panel-inner{padding:20px 16px 28px}}
