:root{color-scheme:dark;--bg: #070b14;--card: #121826;--line: #243044;--text: #e8eef9;--muted: #93a0b8;--accent: #38bdf8;--danger: #fb7185;font-family:SF Pro Text,PingFang SC,Helvetica Neue,sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;background:radial-gradient(1200px 600px at 20% -10%,#122033,transparent),var(--bg);color:var(--text)}.shell{max-width:1180px;margin:0 auto;padding:24px 16px 48px}.shell--app{display:grid;grid-template-columns:180px minmax(0,1fr);gap:24px;align-items:start}.shell--login{min-height:100vh;display:grid;place-items:center}.login-card{width:min(100%,400px);background:var(--card);border:1px solid var(--line);border-radius:16px;padding:28px 24px;display:grid;gap:12px}.login-card h1{margin:0;font-size:1.75rem}.eyebrow{margin:0;color:var(--accent);font-size:.8rem;letter-spacing:.04em;text-transform:uppercase}.muted{color:var(--muted);font-size:.9rem}label{display:grid;gap:6px;font-size:.85rem;color:var(--muted)}input,select{width:100%;border-radius:10px;border:1px solid var(--line);background:#0b1220;color:var(--text);padding:10px 12px;font-size:1rem}button{border:0;border-radius:10px;background:var(--accent);color:#041018;font-weight:600;padding:10px 14px;cursor:pointer}button:disabled{opacity:.6;cursor:not-allowed}.error{color:var(--danger);margin:0;font-size:.9rem}.banner{max-width:1100px;margin:12px auto 0;padding:0 16px}.topbar{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:end;margin-bottom:20px}.topbar h1{margin:4px 0 0;font-size:1.6rem}.topbar__actions{display:flex;flex-wrap:wrap;gap:8px}.chip{background:#1a2436;color:var(--text);border:1px solid var(--line)}.chip--on{background:var(--accent);color:#041018;border-color:transparent}.chip--ghost{background:transparent}.grid{display:grid;gap:12px;margin-bottom:12px}.stats{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.two{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.three{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.stat,.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px}.stat__label,.card h3{margin:0 0 8px;color:var(--muted);font-size:.85rem;font-weight:600}.stat__value{font-size:1.6rem;font-variant-numeric:tabular-nums}.stat__hint{margin-top:4px;color:var(--muted);font-size:.8rem}.funnel{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:8px}.funnel__item{background:#0b1220;border-radius:10px;padding:10px;display:grid;gap:4px}.funnel__item span{color:var(--muted);font-size:.75rem}.dict{list-style:none;margin:0;padding:0;display:grid;gap:8px}.dict li{display:flex;justify-content:space-between;gap:12px;font-size:.9rem}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}.recent{list-style:none;margin:0;padding:0;max-height:320px;overflow:auto;display:grid;gap:8px}.recent code{background:#0b1220;padding:2px 6px;border-radius:6px;font-size:.75rem}.props{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidenav{position:sticky;top:16px;display:grid;gap:10px;align-content:start}.sidenav nav{display:grid;gap:6px}.sidenav__email{margin:0;word-break:break-all}.navlink{color:var(--text);text-decoration:none;border:1px solid transparent;border-radius:10px;padding:8px 10px}.navlink--on{background:#1a2436;border-color:var(--line);color:var(--accent)}.btn-sm,.btn-ghost{width:auto}.btn-sm{padding:6px 10px;font-size:.8rem}.btn-ghost{background:#1a2436;color:var(--text);border:1px solid var(--line)}.row-actions{display:flex;flex-wrap:wrap;gap:6px}.tag{display:inline-block;margin-top:4px;padding:1px 6px;border-radius:999px;background:#1a2436;color:var(--accent);font-size:.75rem}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:grid;place-items:center;padding:16px;z-index:20}.dialog{width:min(100%,440px);background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px;display:grid;gap:12px}.dialog h2{margin:0;font-size:1.2rem}.dialog__actions{display:flex;justify-content:flex-end;gap:8px}.kw{display:inline-block;margin:0 6px 6px 0;padding:2px 8px;border-radius:999px;background:#0b1220;border:1px solid var(--line);font-size:.8rem}.keyword-users{list-style:none;margin:0;padding:0;display:grid;gap:14px}.keyword-users__meta{display:flex;flex-wrap:wrap;gap:8px 12px;margin-bottom:6px;align-items:baseline}@media (max-width: 800px){.shell--app{grid-template-columns:1fr}.sidenav{position:static}.sidenav nav{grid-template-columns:repeat(3,minmax(0,1fr))}}
