:root{--bg:#0b1220;--bg-elev:#121b2d;--bg-soft:#182338;--line:#2a3a58;--text:#e8eefc;--muted:#93a0bb;--accent:#2ee6a6;--accent-2:#7c9cff;--danger:#ff6b7a;--warn:#f5c16c;--shadow:0 18px 50px rgba(0,0,0,0.35);--radius:14px;--font:"Segoe UI","IBM Plex Sans",ui-sans-serif,system-ui,sans-serif;--mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:radial-gradient(1200px 600px at 10% -10%,#16324f 0,transparent 55%),radial-gradient(900px 500px at 100% 0,#102c28 0,transparent 50%),var(--bg);color:var(--text);font-family:var(--font)}a{color:var(--accent-2);text-decoration:none}a:hover{text-decoration:underline}.shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.rail{border-right:1px solid var(--line);background:rgba(10,16,28,.85);padding:1.25rem .9rem;gap:1.25rem}.brand-mark,.rail{display:flex;flex-direction:column}.brand-mark{gap:.15rem;padding:.35rem .55rem .85rem;border-bottom:1px solid var(--line);color:inherit}.brand-mark,.brand-mark:hover{text-decoration:none}.brand-mark strong{font-size:1.05rem;letter-spacing:.02em}.brand-mark span{color:var(--muted);font-size:.75rem}.nav{display:flex;flex-direction:column;gap:.2rem}.nav a{color:var(--text);padding:.55rem .7rem;border-radius:10px;text-decoration:none}.nav a:hover,.nav a[aria-current=page]{background:var(--bg-soft);text-decoration:none}.nav a[aria-current=page]{box-shadow:inset 3px 0 0 var(--accent)}.main{padding:1.4rem 1.7rem 2.5rem}.topbar{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.2rem}h1{font-size:1.45rem;margin:0 0 .2rem;font-weight:650}.lede{margin:0;color:var(--muted);font-size:.92rem}.panel{background:color-mix(in srgb,var(--bg-elev) 88%,transparent);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem}.panel h2{margin:0 0 .3rem;font-size:1.05rem;font-weight:650}.sites-panel{margin-bottom:1rem}.sites-list{list-style:none;margin:.75rem 0 0;padding:0}.sites-list li{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.5rem .1rem;border-bottom:1px solid var(--line)}.sites-list li:last-child{border-bottom:0}.sites-primary{display:flex;flex-wrap:wrap;align-items:baseline;gap:.55rem .85rem}.sites-dev{color:var(--muted);font-family:var(--mono);font-size:.78rem;white-space:nowrap}.sites-dev:hover{color:var(--accent-2)}.grid-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:.8rem;gap:.8rem;margin-bottom:1rem}.metric{background:var(--bg-soft);border:1px solid var(--line);border-radius:12px;padding:.9rem 1rem}.metric .label{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.06em}.metric .value{font-size:1.5rem;margin-top:.25rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.metric-sub{color:var(--muted);font-size:.75rem;margin-top:.35rem;line-height:1.35}.chart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:.8rem;gap:.8rem;margin:0 0 1rem}.chart-panel{margin-bottom:1rem}.chart{display:flex;align-items:flex-end;gap:.28rem;height:140px;margin-top:.8rem}.chart-col{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:.35rem;min-width:0}.chart-bar{width:100%;max-width:28px;min-height:2px;background:linear-gradient(180deg,var(--accent),#1b8f6a);border-radius:6px 6px 2px 2px}.chart-label{color:var(--muted);font-size:.65rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.split-panels{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:.8rem;gap:.8rem;margin-bottom:1rem}.rank-list{list-style:none;margin:.6rem 0 0;padding:0}.rank-list li{display:flex;justify-content:space-between;gap:.75rem;padding:.35rem 0;border-bottom:1px solid var(--line);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.rank-list li:last-child{border-bottom:0}.analytics-filters{display:flex;flex-direction:column;align-items:flex-end;gap:.45rem}table{width:100%;border-collapse:collapse;font-size:.9rem}td,th{text-align:left;padding:.55rem .45rem;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-weight:600;font-size:.75rem;letter-spacing:.04em;text-transform:uppercase}.mono{font-family:var(--mono);font-size:.8rem}.row-actions{display:flex;gap:.4rem;flex-wrap:wrap}label{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;color:var(--muted)}button,input,select,textarea{font:inherit;color:var(--text)}input,select,textarea{background:#0e1626;border:1px solid var(--line);border-radius:10px;padding:.55rem .7rem}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:.75rem;gap:.75rem;margin-bottom:.9rem}.btn,button{border:0;background:var(--accent);color:#042117;font-weight:650;border-radius:10px;padding:.5rem .8rem;cursor:pointer}.btn.secondary,button.secondary{background:transparent;color:var(--text);border:1px solid var(--line)}button.danger{background:var(--danger);color:#2a0610}button:disabled{opacity:.55;cursor:not-allowed}.alert{border-radius:10px;padding:.7rem .85rem;margin-bottom:1rem;border:1px solid var(--line);background:var(--bg-soft)}.alert.error{border-color:#6b2732;color:#ffd5da}.alert.ok{border-color:#1d5c45;color:#c8ffe9}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:1.5rem}.login-card{width:min(420px,100%);background:var(--bg-elev);border:1px solid var(--line);border-radius:18px;padding:1.6rem;box-shadow:var(--shadow)}.login-card h1{margin-bottom:.35rem}.login-card form{display:flex;flex-direction:column;gap:.8rem;margin-top:1rem}.flags{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap}.flags label{flex-direction:row;align-items:center;color:var(--text)}.flags input{width:auto}.chip-row{display:flex;gap:.45rem;flex-wrap:wrap;margin:0 0 1rem}.chip{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:.28rem .7rem;color:var(--text);background:var(--bg-soft);font-size:.8rem}.chip,.chip:hover{text-decoration:none}.chip:hover{border-color:var(--accent-2)}.chip.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.warn{color:var(--warn);font-family:var(--mono);font-size:.8rem}.empty{color:var(--muted);padding:1.2rem .2rem}.logout{margin-top:auto}@media (max-width:840px){.shell{grid-template-columns:1fr}.rail{border-right:0;border-bottom:1px solid var(--line)}}