:root{--bg:#0a0a0c;--bg-elev:#111114;--bg-elev-2:#16161b;--bg-hover:#1c1c22;--border:#232329;--border-strong:#2e2e36;--text:#f5f5f7;--text-muted:#9a9aa3;--text-dim:#62626b;--accent:#2f6fa8;--accent-soft:#1e4a72;--accent-bg:#2f6fa824;--success:#4ade80;--warn:#fbbf24;--danger:#f87171;--radius:10px;--radius-sm:6px;--font-sans:"Inter Tight","Inter","SF Pro Display","Helvetica Neue",system-ui,sans-serif;--font-mono:"JetBrains Mono","SF Mono",ui-monospace,monospace}[data-theme=light]{--bg:#fafaf8;--bg-elev:#fff;--bg-elev-2:#f4f4f1;--bg-hover:#ececea;--border:#e6e6e2;--border-strong:#d4d4cf;--text:#18181b;--text-muted:#5a5a63;--text-dim:#92929c;--accent:#2f6fa8;--accent-soft:#c8dceb;--accent-bg:#2f6fa81a;--success:#16a34a;--warn:#d97706;--danger:#dc2626}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;letter-spacing:-.005em;margin:0;padding:0;font-size:13.5px}#root{flex-direction:column;min-height:100vh;display:flex}button{cursor:pointer;color:inherit;background:0 0;border:0;padding:0;font-family:inherit}a{color:inherit;text-decoration:none}.topbar{border-bottom:1px solid var(--border);background:var(--bg);z-index:50;align-items:center;gap:24px;height:56px;padding:0 20px;display:flex;position:sticky;top:0}.topbar .logo-wrap{align-items:center;gap:14px;display:flex}.topbar .logo{height:16px;display:block}[data-theme=light] .topbar .logo,[data-theme=light] .login-brand .logo{filter:invert()}.tag-pill{color:var(--text-muted);background:var(--bg-elev-2);border:1px solid var(--border);font-size:11px;font-family:var(--font-mono);border-radius:999px;align-items:center;gap:6px;padding:3px 9px;display:inline-flex}.tag-pill .dot{background:var(--success);width:6px;height:6px;box-shadow:0 0 6px var(--success);border-radius:50%}.crumbs{color:var(--text-muted);align-items:center;gap:8px;font-size:13px;display:flex}.crumbs .sep{color:var(--text-dim)}.crumbs .current{color:var(--text);font-weight:500}.crumb-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:13px;transition:color .15s}.crumb-btn:hover{color:var(--accent)}.spacer{flex:1}.search{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:8px;width:280px;padding:6px 10px;display:flex}.search input{color:var(--text);font:inherit;background:0 0;border:0;outline:none;flex:1;min-width:0;font-size:13px}.search input::placeholder{color:var(--text-dim)}.kbd{font-family:var(--font-mono);color:var(--text-dim);border:1px solid var(--border);border-radius:3px;padding:1px 5px;font-size:10.5px}.icon-btn{width:32px;height:32px;color:var(--text-muted);border-radius:6px;justify-content:center;align-items:center;transition:all .12s;display:inline-flex}.icon-btn:hover,.icon-btn.active{background:var(--bg-elev);color:var(--text)}.avatar-me{color:#fff;background:linear-gradient(135deg,#2f6fa8,#1e4a72);border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:11px;font-weight:600;display:flex}.page{width:100%;max-width:1640px;margin:0 auto;padding:22px 24px 80px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px;display:flex}.page-title{letter-spacing:-.025em;margin:0;font-size:22px;font-weight:600}.page-sub{color:var(--text-muted);margin-top:4px;font-size:13px}.page-actions{gap:8px;display:flex}.btn{border:1px solid var(--border);background:var(--bg-elev);height:32px;color:var(--text);border-radius:6px;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:500;transition:all .12s;display:inline-flex}.btn:hover{background:var(--bg-hover);border-color:var(--border-strong)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:#3a82c1;border-color:#3a82c1}.kpis{grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:18px;display:grid}.kpi{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:4px;min-height:118px;padding:14px 16px;display:flex}.kpi .label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);font-size:10.5px;font-weight:500}.kpi .row{justify-content:space-between;align-items:baseline;gap:10px;margin-top:2px;display:flex}.kpi .value{letter-spacing:-.025em;font-variant-numeric:tabular-nums;font-size:26px;font-weight:600;line-height:1.05}.kpi .delta{color:var(--text-muted);font-variant-numeric:tabular-nums;align-items:center;gap:4px;font-size:11.5px;display:inline-flex}.kpi .delta.up{color:var(--success)}.kpi .delta.down{color:var(--danger)}.kpi .spark{width:100%;height:28px;margin-top:auto;display:block}.kpi .spark .line{fill:none;stroke:var(--accent);stroke-width:1.5px}.kpi .spark .area{fill:var(--accent-bg);stroke:none}.kpi .top-author{align-items:center;gap:8px;margin-top:auto;padding-top:8px;display:flex}.kpi .top-author .av{color:#fff;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:10px;font-weight:600;display:flex}.kpi .top-author .name{font-size:13px;font-weight:500}.kpi .top-author .stat{color:var(--text-muted);font-size:11px;font-family:var(--font-mono);margin-left:auto}.toolbar{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:12px;padding:7px;display:flex}.chip{border:1px solid var(--border);height:28px;color:var(--text-muted);white-space:nowrap;background:0 0;border-radius:999px;align-items:center;gap:6px;padding:0 11px;font-size:12px;display:inline-flex}.chip:hover{background:var(--bg-hover);color:var(--text)}.chip.active{background:var(--accent-bg);border-color:var(--accent-soft);color:var(--text)}.chip .x{color:var(--text-dim);cursor:pointer;font-size:14px;line-height:1}.chip .count{font-family:var(--font-mono);color:var(--text-dim);font-size:10.5px}.chip.active .count{color:var(--accent)}.toolbar .divider{background:var(--border);width:1px;height:18px;margin:0 4px}.view-toggle{background:var(--bg-elev-2);border:1px solid var(--border);border-radius:6px;padding:2px;display:inline-flex}.view-toggle button{height:24px;color:var(--text-muted);border-radius:4px;align-items:center;gap:5px;padding:0 10px;font-size:12px;display:inline-flex}.view-toggle button.active{background:var(--bg);color:var(--text);box-shadow:0 0 0 1px var(--border)}.table-wrap{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;overflow:hidden}table.tweets{border-collapse:collapse;width:100%;font-size:13px}table.tweets thead th{text-align:left;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);border-bottom:1px solid var(--border);background:var(--bg-elev-2);-webkit-user-select:none;user-select:none;white-space:nowrap;padding:10px 14px;font-size:10.5px;font-weight:500}table.tweets thead th.sortable{cursor:pointer}table.tweets thead th.sortable:hover{color:var(--text)}table.tweets thead th.numeric{text-align:right}table.tweets thead th .arrow{color:var(--accent);margin-left:4px}table.tweets tbody tr{border-bottom:1px solid var(--border);cursor:pointer;transition:background .1s}table.tweets tbody tr:last-child{border-bottom:0}table.tweets tbody tr:hover{background:var(--bg-hover)}table.tweets tbody tr.selected{background:var(--accent-bg)}table.tweets tbody tr.reviewed .text-clip,table.tweets tbody tr.reviewed .author-cell .name{color:var(--text-muted)}table.tweets td{vertical-align:middle;padding:11px 14px}table.tweets td.numeric{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--font-mono);font-size:12px}table.tweets td.checkbox{width:32px;padding-right:0}.author-cell{align-items:center;gap:10px;min-width:0;display:flex}.av-sm{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:11px;font-weight:600;display:flex;overflow:hidden}.author-cell .name{color:var(--text);align-items:center;gap:4px;font-size:13px;font-weight:500;display:flex}.author-cell .handle{color:var(--text-dim);font-size:11.5px;font-family:var(--font-mono)}.verified{color:var(--accent);flex-shrink:0}.text-cell{min-width:280px;max-width:520px}.text-with-thumb{align-items:flex-start;gap:10px;display:flex}.text-with-thumb .text-body{flex:1;min-width:0}.text-clip{-webkit-line-clamp:2;color:var(--text);-webkit-box-orient:vertical;line-height:1.45;display:-webkit-box;overflow:hidden}.text-cell .meta-row{flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;display:flex}.badge{border:1px solid var(--border);color:var(--text-muted);background:var(--bg-elev-2);border-radius:4px;align-items:center;gap:4px;padding:1px 6px;font-size:10.5px;font-weight:500;display:inline-flex}.badge.video{color:var(--accent);border-color:var(--accent-soft);background:var(--accent-bg)}.badge.link{font-family:var(--font-mono)}.badge.lang{text-transform:uppercase;font-family:var(--font-mono)}.badge.reviewed{color:var(--success);background:#4ade801a;border-color:#4ade8059}.thumb{background:var(--bg-elev-2);background-image:repeating-linear-gradient(45deg,var(--border) 0 1px,transparent 1px 6px);border:1px solid var(--border);width:48px;height:36px;color:var(--text-dim);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.thumb.video{background-image:linear-gradient(135deg,#1c2a3a,#0e1620)}[data-theme=light] .thumb.video{background-image:linear-gradient(135deg,#d8e4ee,#b6c8da)}.thumb.video:after{content:"";opacity:.85;border-top:5px solid #0000;border-bottom:5px solid #0000;border-left:8px solid #fff;width:0;height:0;margin-left:2px}[data-theme=light] .thumb.video:after{border-left-color:#1f5a8e}.engagement-cell{justify-content:flex-end;align-items:center;gap:8px;display:flex}.spark-bar{background:var(--bg-elev-2);border:1px solid var(--border);border-radius:2px;width:56px;height:5px;overflow:hidden}.spark-bar>div{background:var(--accent);height:100%}.spark-bar.high>div{background:var(--success)}.spark-bar.low>div{background:var(--text-dim)}.row-actions{opacity:0;justify-content:flex-end;gap:2px;transition:opacity .1s;display:inline-flex}table.tweets tbody tr:hover .row-actions{opacity:1}.icon-btn-sm{width:26px;height:26px;color:var(--text-muted);border-radius:4px;justify-content:center;align-items:center;display:inline-flex}.icon-btn-sm:hover{background:var(--bg-elev-2);color:var(--text)}.icon-btn-sm.success{color:var(--success)}input[type=checkbox].cb{appearance:none;border:1.5px solid var(--border-strong);background:var(--bg-elev);cursor:pointer;vertical-align:middle;border-radius:3px;width:14px;height:14px;margin:0;position:relative}input[type=checkbox].cb:checked{background:var(--accent);border-color:var(--accent)}input[type=checkbox].cb:checked:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:4px;height:8px;position:absolute;top:0;left:3px;transform:rotate(45deg)}.cards-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px;display:grid}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:left;color:inherit;font:inherit;flex-direction:column;gap:12px;padding:14px 16px;transition:all .12s;display:flex}.card:hover{border-color:var(--border-strong);transform:translateY(-1px)}.card.selected{border-color:var(--accent)}.card.reviewed{opacity:.65}.card .head{align-items:center;gap:10px;display:flex}.card .head .meta{flex:1;min-width:0}.card .head .time{color:var(--text-dim);font-size:11px;font-family:var(--font-mono)}.card .body{color:var(--text);-webkit-line-clamp:4;-webkit-box-orient:vertical;font-size:13.5px;line-height:1.5;display:-webkit-box;overflow:hidden}.card .media{border:1px solid var(--border);color:#ffffff80;background:linear-gradient(135deg,#1c2a3a,#0e1620);border-radius:6px;justify-content:center;align-items:center;height:120px;display:flex;position:relative}[data-theme=light] .card .media{background:linear-gradient(135deg,#d8e4ee,#b6c8da)}.card .media .play{color:#fff;background:#ffffff2e;border:1px solid #ffffff4d;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.card .stats{border-top:1px solid var(--border);color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:11.5px;font-family:var(--font-mono);gap:14px;padding-top:10px;display:flex}.card .stats .stat{align-items:center;gap:5px;display:flex}.card .stats .ratio{color:var(--accent);margin-left:auto}.detail-overlay{z-index:100;opacity:0;pointer-events:none;background:#0000006b;transition:opacity .18s;position:fixed;inset:0}.detail-overlay.open{opacity:1;pointer-events:auto}.detail-panel{background:var(--bg-elev);border-left:1px solid var(--border);z-index:101;flex-direction:column;width:540px;max-width:92vw;transition:transform .25s cubic-bezier(.2,.7,.3,1);display:flex;position:fixed;top:0;bottom:0;right:0;transform:translate(100%);box-shadow:-20px 0 60px #00000073}.detail-panel.open{transform:translate(0)}.detail-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.detail-head .title{color:var(--text-muted);font-size:12px;font-weight:500;font-family:var(--font-mono)}.detail-head .actions{align-items:center;gap:6px;display:flex}.detail-body{flex:1;padding:22px;overflow-y:auto}.detail-author{align-items:center;gap:12px;margin-bottom:14px;display:flex}.av-md{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:14px;font-weight:600;display:flex;overflow:hidden}.av-img,.av-sm .av-img{object-fit:cover;border-radius:50%;width:100%;height:100%}.detail-author .name{align-items:center;gap:5px;font-size:15px;font-weight:600;display:flex}.detail-author .handle{color:var(--text-muted);font-size:12.5px;font-family:var(--font-mono)}.detail-text{color:var(--text);white-space:pre-wrap;margin:6px 0 16px;font-size:16px;line-height:1.55}.detail-media{border:1px solid var(--border);border-radius:8px;margin-bottom:18px;text-decoration:none;display:block;position:relative;overflow:hidden}.video-thumb-link{cursor:pointer;background:#000;display:block}.video-thumb-img{opacity:.82;width:100%;transition:opacity .2s;display:block}.video-thumb-link:hover .video-thumb-img{opacity:.6}.play-overlay{flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex;position:absolute;inset:0}.play-overlay .play{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;background:#fff3;border:1.5px solid #ffffff80;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;transition:background .2s,transform .2s;display:flex}.video-thumb-link:hover .play{background:#ffffff52;transform:scale(1.08)}.play-hint{font-size:11px;font-family:var(--font-mono);color:#ffffffb3;letter-spacing:.04em;text-transform:uppercase}.detail-stats{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:20px;display:grid}.detail-stats .s{background:var(--bg-elev-2);border:1px solid var(--border);border-radius:6px;padding:10px 12px}.detail-stats .s .l{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:10.5px}.detail-stats .s .v{font-variant-numeric:tabular-nums;letter-spacing:-.02em;margin-top:3px;font-size:18px;font-weight:600}.detail-section{margin-bottom:18px}.detail-section .label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);margin-bottom:8px;font-size:10.5px;font-weight:500}.detail-section .meta-grid{grid-template-columns:120px 1fr;gap:8px 14px;font-size:12.5px;display:grid}.detail-section .meta-grid .k{color:var(--text-muted)}.detail-section .meta-grid .v{color:var(--text);font-family:var(--font-mono);word-break:break-all;font-size:12px}.detail-section .meta-grid .v.link{color:var(--accent)}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.dm-section{border-top:1px solid var(--border);margin-top:18px;padding-top:18px}.dm-section .label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);margin-bottom:10px;font-size:10.5px;font-weight:500}.dm-channels{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.dm-skeleton{flex-direction:column;gap:0;display:flex}.dm-skel-line{background:linear-gradient(90deg,var(--bg-elev-2) 25%,var(--bg-hover) 50%,var(--bg-elev-2) 75%);background-size:800px 100%;border-radius:6px;width:100%;height:13px;margin-bottom:8px;animation:1.4s linear infinite shimmer}.dm-skel-line:nth-child(2){width:85%;animation-delay:.1s}.dm-skel-line:nth-child(3){width:60%;animation-delay:.2s}.dm-box{background:var(--bg-elev-2);border:1px solid var(--border);border-radius:8px;flex-direction:column;min-height:96px;padding:14px 16px;display:flex;position:relative}.dm-box.empty{justify-content:center;align-items:center;min-height:96px}.dm-box-empty-msg{color:var(--text-dim);text-align:center;font-size:13px}.dm-box-loading-msg{color:var(--text-muted);align-items:center;gap:8px;margin-bottom:10px;font-size:12px;display:flex}.dm-box-loading-msg:before{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px;animation:1.2s ease-in-out infinite dm-pulse}@keyframes dm-pulse{0%,to{opacity:.4;transform:scale(.85)}50%{opacity:1;transform:scale(1.1)}}.dm-box-text{color:var(--text);white-space:pre-wrap;padding-right:74px;font-size:14px;line-height:1.6}.dm-box-error{color:var(--danger);font-size:13px}.dm-copy-btn{height:26px;color:var(--text-muted);background:var(--bg-elev);border:1px solid var(--border);border-radius:5px;align-items:center;gap:5px;padding:0 9px;font-size:11.5px;transition:all .12s;display:inline-flex;position:absolute;top:10px;right:10px}.dm-copy-btn:hover{background:var(--bg-hover);color:var(--text);border-color:var(--border-strong)}.dm-copy-btn.copied{color:var(--success);border-color:var(--success)}.dm-actions{gap:6px;margin-top:10px;display:flex}.dm-history-section{margin-top:18px}.dm-history-section .label{margin-bottom:8px}.dm-history{flex-direction:column;gap:6px;display:flex}.dm-history-item{border:1px solid var(--border);background:var(--bg-elev);border-radius:6px;transition:border-color .12s;overflow:hidden}.dm-history-item:hover{border-color:var(--border-strong)}.dm-history-item.expanded{border-color:var(--accent-soft)}.dm-history-row{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:9px 11px;display:flex}.dm-history-snippet{min-width:0;color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:12.5px;line-height:1.4;overflow:hidden}.dm-history-time{color:var(--text-dim);font-size:10.5px;font-family:var(--font-mono);flex-shrink:0}.dm-history-chev{color:var(--text-dim);flex-shrink:0;transition:transform .15s}.dm-history-item.expanded .dm-history-chev{color:var(--text-muted);transform:rotate(180deg)}.dm-pill{text-transform:uppercase;letter-spacing:.04em;border:1px solid #0000;border-radius:999px;flex-shrink:0;align-items:center;gap:4px;padding:2px 7px;font-size:10px;font-weight:500;display:inline-flex}.dm-pill-email{color:#5b9bd5;background:#2f6fa824;border-color:#2f6fa84d}.dm-pill-linkedin{color:#4a8fce;background:#0a66c224;border-color:#0a66c24d}.dm-pill-x{color:var(--text-muted);background:#9696a024;border-color:#9696a04d}[data-theme=light] .dm-pill-email{color:#2f6fa8}[data-theme=light] .dm-pill-linkedin{color:#0a66c2}[data-theme=light] .dm-pill-x{color:#52525b;background:#0000000f}.dm-history-expanded{border-top:1px solid var(--border);background:var(--bg-elev-2);padding:12px 14px;position:relative}.dm-history-full{color:var(--text);white-space:pre-wrap;padding-right:74px;font-size:13.5px;line-height:1.6}.dm-history-empty{color:var(--text-dim);text-align:center;border:1px dashed var(--border);border-radius:6px;padding:12px;font-size:13px}.empty{text-align:center;color:var(--text-muted);padding:60px 24px}.empty .icon{background:var(--bg-elev-2);border:1px solid var(--border);border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;margin-bottom:12px;display:inline-flex}.source-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.source-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;flex-direction:column;gap:16px;padding:24px;transition:border-color .18s,box-shadow .18s,transform .18s;display:flex}.source-card:not(.disabled):hover{border-color:var(--accent-soft);transform:translateY(-2px);box-shadow:0 6px 24px #00000040}.source-card.disabled{opacity:.45;cursor:not-allowed}.source-card-top{justify-content:space-between;align-items:flex-start;display:flex}.source-logo{border-radius:13px;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.source-name{color:var(--text);margin-bottom:6px;font-size:17px;font-weight:600}.source-desc{color:var(--text-muted);font-size:13px;line-height:1.55}.source-badge{white-space:nowrap;border-radius:20px;padding:3px 9px;font-size:11px;font-weight:500}.source-badge.active{color:#22c55e;background:#22c55e1a;border:1px solid #22c55e38}.source-badge.soon{background:var(--bg-elev-2);color:var(--text-dim);border:1px solid var(--border)}.source-action{color:var(--accent);align-items:center;gap:4px;margin-top:auto;padding-top:4px;font-size:12.5px;font-weight:500;display:flex}.pagination{background:var(--bg-elev);border:1px solid var(--border);border-radius:0 0 var(--radius) var(--radius);border-top:none;justify-content:space-between;align-items:center;margin-bottom:24px;padding:12px 16px;display:flex}.pagination-info{color:var(--text-muted);font-size:12.5px}.pagination-info strong{color:var(--text);font-weight:500}.pagination-controls{align-items:center;gap:3px;display:flex}.page-btn{min-width:30px;height:30px;color:var(--text-muted);font-size:12.5px;font-family:var(--font-mono);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:5px;justify-content:center;align-items:center;gap:4px;padding:0 8px;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.page-btn:hover:not(:disabled){background:var(--bg-elev-2);border-color:var(--border);color:var(--text)}.page-btn.active{background:var(--accent-bg);border-color:var(--accent-soft);color:var(--accent);font-weight:600}.page-btn.nav{letter-spacing:.01em;gap:5px;padding:0 10px;font-family:inherit;font-size:12px}.page-btn:disabled{opacity:.35;cursor:default}.page-ellipsis{min-width:30px;height:30px;color:var(--text-dim);pointer-events:none;justify-content:center;align-items:center;font-size:13px;display:inline-flex}.login-shell{background:var(--bg);grid-template-columns:minmax(420px,1fr) 1.2fr;min-height:100vh;display:grid}@media (width<=880px){.login-shell{grid-template-columns:1fr}.login-aside{display:none}}.login-form-wrap{flex-direction:column;min-width:0;min-height:100vh;padding:32px 56px;display:flex;position:relative}.login-brand{align-items:center;gap:12px;display:flex}.login-brand .logo{height:18px}.login-brand .logo path{fill:var(--text)}.login-brand .tag-pill{color:var(--text-muted);background:var(--bg-elev-2);border:1px solid var(--border);font-size:11px;font-family:var(--font-mono);border-radius:999px;align-items:center;gap:6px;padding:3px 9px;display:inline-flex}.login-brand .tag-pill .dot{background:var(--success);width:6px;height:6px;box-shadow:0 0 6px var(--success);border-radius:50%}.login-center{width:100%;max-width:360px;margin:auto 0}.login-eyebrow{font-family:var(--font-mono);color:var(--accent);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:8px;margin-bottom:14px;font-size:11px;display:inline-flex}.login-eyebrow:before{content:"";background:var(--accent);width:18px;height:1px}.login-title{letter-spacing:-.03em;margin:0 0 10px;font-size:32px;font-weight:600;line-height:1.1}.login-title .accent{color:var(--accent)}.login-sub{color:var(--text-muted);margin:0 0 28px;font-size:14px;line-height:1.55}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);font-size:11px;font-weight:500}.field .input-wrap{background:var(--bg-elev);border:1px solid var(--border);border-radius:8px;align-items:center;gap:10px;padding:10px 12px;transition:border-color .15s,background .15s;display:flex}.field .input-wrap:focus-within{border-color:var(--accent);background:var(--bg-elev-2)}.field input{font:inherit;color:var(--text);background:0 0;border:0;outline:none;flex:1;min-width:0;font-size:14px}.field input::placeholder{color:var(--text-dim)}.field .input-wrap .icon{color:var(--text-dim);flex-shrink:0}.field .input-wrap .toggle-pw{color:var(--text-dim);cursor:pointer;background:0 0;border:0;padding:0}.field .input-wrap .toggle-pw:hover{color:var(--text)}.login-row{justify-content:space-between;align-items:center;margin:4px 0 22px;display:flex}.login-row .check{color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;gap:8px;font-size:12.5px;display:flex}.login-row .check input{margin:0}.login-row a{color:var(--accent);white-space:nowrap;font-size:12.5px}.btn-primary-lg{background:var(--accent);border:1px solid var(--accent);color:#fff;cursor:pointer;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:8px;width:100%;height:44px;padding:0 18px;font-family:inherit;font-size:14px;font-weight:600;transition:all .15s;display:inline-flex}.btn-primary-lg:hover{background:#3a82c1;border-color:#3a82c1}.btn-primary-lg:disabled{opacity:.6;cursor:not-allowed}.btn-ghost-lg{background:var(--bg-elev);border:1px solid var(--border);width:100%;height:44px;color:var(--text);cursor:pointer;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:10px;margin-top:10px;font-family:inherit;font-size:14px;font-weight:500;transition:all .15s;display:inline-flex}.btn-ghost-lg:hover{background:var(--bg-hover);border-color:var(--border-strong)}.divider-or{color:var(--text-dim);font-size:11px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;align-items:center;gap:12px;margin:22px 0;display:flex}.divider-or:before,.divider-or:after{content:"";background:var(--border);flex:1;height:1px}.login-foot{color:var(--text-dim);font-size:11.5px;font-family:var(--font-mono);justify-content:space-between;align-items:center;margin-top:auto;display:flex}.login-foot a{color:var(--text-muted)}.login-foot a:hover{color:var(--text)}.login-aside{border-left:1px solid var(--border);background:linear-gradient(135deg,#0f1318 0%,#0a0a0c 40%,#131a25 100%);position:relative;overflow:hidden}[data-theme=light] .login-aside{background:linear-gradient(135deg,#eef3f8 0%,#fff 40%,#e8eef5 100%)}.aside-grid{background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);opacity:.5;background-size:32px 32px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(at 60% 40%,#000 30%,#0000 75%);mask-image:radial-gradient(at 60% 40%,#000 30%,#0000 75%)}.aside-blob{background:radial-gradient(circle,var(--accent) 0%,transparent 65%);opacity:.18;filter:blur(40px);border-radius:50%;width:480px;height:480px;animation:16s ease-in-out infinite floatBlob;position:absolute;top:20%;right:-120px}@keyframes floatBlob{0%,to{transform:translate(0)scale(1)}50%{transform:translate(-40px,30px)scale(1.1)}}.aside-content{flex-direction:column;height:100%;padding:40px 48px;display:flex;position:relative}.aside-header{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;justify-content:space-between;align-items:center;font-size:11px;display:flex}.aside-header .live{color:var(--success);align-items:center;gap:6px;display:inline-flex}.aside-header .live .pulse{background:var(--success);border-radius:50%;width:7px;height:7px;animation:1.4s ease-in-out infinite pulse}@keyframes pulse{0%,to{box-shadow:0 0 0 0 var(--success);opacity:1}50%{opacity:.6;box-shadow:0 0 0 6px #0000}}.aside-headline{letter-spacing:-.025em;max-width:460px;margin:40px 0 8px;font-size:28px;font-weight:600;line-height:1.2}.aside-headline .mono{font-family:var(--font-mono);color:var(--accent)}.aside-tagline{color:var(--text-muted);max-width:460px;font-size:14px;line-height:1.5}.ticker{flex:1;margin-top:28px;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(#0000 0%,#000 12% 80%,#0000 100%);mask-image:linear-gradient(#0000 0%,#000 12% 80%,#0000 100%)}.ticker-stack{flex-direction:column;gap:10px;animation:40s linear infinite tickerScroll;display:flex}@keyframes tickerScroll{0%{transform:translateY(0)}to{transform:translateY(-50%)}}.ticker-card{background:var(--bg-elev);border:1px solid var(--border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:10px;gap:10px;padding:12px 14px;font-size:12.5px;display:flex}.ticker-card .av{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:10.5px;font-weight:600;display:flex}.ticker-card .body{flex:1;min-width:0}.ticker-card .head{flex-wrap:nowrap;align-items:center;gap:6px;min-width:0;font-size:11.5px;display:flex}.ticker-card .head .name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-weight:500;overflow:hidden}.ticker-card .head .handle{color:var(--text-dim);font-family:var(--font-mono);white-space:nowrap;flex-shrink:0;font-size:10.5px}.ticker-card .head .time{color:var(--text-dim);font-family:var(--font-mono);white-space:nowrap;flex-shrink:0;margin-left:auto;padding-left:6px;font-size:10.5px}.ticker-card .text{color:var(--text);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:4px;line-height:1.45;display:-webkit-box;overflow:hidden}.ticker-card .stats{font-family:var(--font-mono);color:var(--text-muted);gap:14px;margin-top:6px;font-size:10.5px;display:flex}.ticker-card .stats span{align-items:center;gap:4px;display:inline-flex}.ticker-card.scraping{border-color:var(--accent-soft);box-shadow:0 0 0 1px var(--accent-soft),0 0 24px #2f6fa826}.ticker-card.scraping .head .time{color:var(--accent)}.aside-stats{border-top:1px solid var(--border);grid-template-columns:repeat(3,1fr);gap:0;margin-top:24px;padding-top:20px;display:grid}.aside-stats .stat{border-right:1px solid var(--border);padding-right:16px}.aside-stats .stat:last-child{border-right:0}.aside-stats .l{text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);font-size:10.5px}.aside-stats .v{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:22px;font-weight:600;font-family:var(--font-mono);margin-top:4px}.aside-stats .v .accent{color:var(--accent)}.aside-stats .delta{color:var(--success);font-size:10.5px;font-family:var(--font-mono);margin-top:2px}.welcome-overlay{background:var(--bg);z-index:200;opacity:0;pointer-events:none;justify-content:center;align-items:center;transition:opacity .35s;display:flex;position:fixed;inset:0}.welcome-overlay.show{opacity:1;pointer-events:auto}.welcome-card{background:var(--bg-elev);border:1px solid var(--border);opacity:0;border-radius:14px;width:540px;max-width:92vw;padding:36px 36px 28px;transition:transform .5s cubic-bezier(.2,.7,.3,1) .1s,opacity .5s .1s;position:relative;transform:translateY(20px)scale(.98)}.welcome-overlay.show .welcome-card{opacity:1;transform:translateY(0)scale(1)}.welcome-pre{font-family:var(--font-mono);color:var(--text-dim);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:8px;margin-bottom:20px;font-size:11px;display:flex}.welcome-pre .seq{color:var(--accent)}.welcome-headline{letter-spacing:-.025em;min-height:38px;margin:0 0 6px;font-size:32px;font-weight:600;line-height:1.15}.welcome-headline .cursor{background:var(--accent);vertical-align:text-bottom;width:2px;height:28px;margin-left:2px;animation:1s steps(2,start) infinite blink;display:inline-block}@keyframes blink{to{visibility:hidden}}.welcome-sub{color:var(--text-muted);min-height:22px;margin:12px 0 24px;font-size:14px;line-height:1.55}.welcome-checklist{flex-direction:column;gap:8px;margin-bottom:28px;display:flex}.welcome-check{color:var(--text-muted);opacity:0;align-items:center;gap:10px;font-size:13px;transition:opacity .3s,transform .3s,color .3s;display:flex;transform:translate(-8px)}.welcome-check.shown{opacity:1;color:var(--text);transform:translate(0)}.welcome-check .ok{border:1px solid var(--border);background:var(--bg-elev-2);color:#0000;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;transition:all .3s;display:flex}.welcome-check.shown .ok{background:var(--accent);border-color:var(--accent);color:#fff}.welcome-check .meta{font-family:var(--font-mono);color:var(--text-dim);margin-left:auto;font-size:11px}.welcome-cta-row{border-top:1px solid var(--border);align-items:center;gap:10px;padding-top:18px;display:flex}.welcome-cta-row .meta{font-family:var(--font-mono);color:var(--text-dim);margin-left:auto;font-size:11px}.login-fade-out{opacity:0;transition:opacity .3s,transform .3s;transform:scale(.98)}.error-msg{color:var(--danger);font-size:12px;font-family:var(--font-mono);margin-top:-6px;margin-bottom:12px}.ingest-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:200;background:#00000080;justify-content:center;align-items:center;animation:.18s ease-out ingestFade;display:flex;position:fixed;inset:0}@keyframes ingestFade{0%{opacity:0}to{opacity:1}}.ingest-dialog{background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;width:480px;max-width:92vw;padding:22px 22px 18px;animation:.22s cubic-bezier(.2,.7,.3,1) ingestPop;box-shadow:0 20px 60px #0006}@keyframes ingestPop{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.ingest-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:18px;display:flex}.ingest-eyebrow{font-family:var(--font-mono);color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px;font-size:10.5px}.ingest-title{letter-spacing:-.02em;margin:0 0 4px;font-size:18px;font-weight:600}.ingest-sub{color:var(--text-muted);margin:0;font-size:12.5px;line-height:1.5}.ingest-hint{color:var(--text-dim);margin-top:6px;font-size:11px}.ingest-hint .mono{font-family:var(--font-mono);color:var(--text-muted)}.ingest-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.spinner-sm{border:1.5px solid #fff6;border-top-color:#fff;border-radius:50%;width:12px;height:12px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.ingest-success{text-align:left}.ingest-success .success-badge{background:var(--accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;margin-bottom:14px;display:flex}.ingest-success .success-title{letter-spacing:-.015em;margin-bottom:14px;font-size:16px;font-weight:600}.success-grid{background:var(--bg-elev-2);border:1px solid var(--border);border-radius:8px;grid-template-columns:1fr 1fr 1.4fr;gap:0;margin-bottom:4px;display:grid;overflow:hidden}.success-grid>div{border-right:1px solid var(--border);padding:12px 14px}.success-grid>div:last-child{border-right:0}.success-grid .l{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:4px;font-size:10.5px}.success-grid .v{font-variant-numeric:tabular-nums;letter-spacing:-.015em;font-size:18px;font-weight:600}.success-grid .v.mono{font-family:var(--font-mono);word-break:break-all;font-weight:500}.ingest-dialog .field{flex-direction:column;gap:6px;margin-bottom:4px;display:flex}.ingest-dialog .field label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);font-size:11px;font-weight:500}.ingest-dialog .field .input-wrap{background:var(--bg);border:1px solid var(--border);border-radius:8px;align-items:center;gap:10px;padding:10px 12px;transition:border-color .15s,background .15s;display:flex}.ingest-dialog .field .input-wrap:focus-within{border-color:var(--accent);background:var(--bg-elev-2)}.ingest-dialog .field input{font:inherit;color:var(--text);min-width:0;font-size:13.5px;font-family:var(--font-mono);background:0 0;border:0;outline:none;flex:1}.ingest-dialog .field input::placeholder{color:var(--text-dim)}.ingest-dialog .field .icon{color:var(--text-dim);flex-shrink:0}
