:root{--bg:#0b0e14;--bg-elev:#121722;--bg-elev2:#171d2a;--border:#232b3a;--border-soft:#1b2230;--fg:#e6ebf2;--fg-dim:#9aa7bd;--fg-faint:#64708a;--accent:#3ba0ff;--ok:#35c66b;--warn:#f5b642;--crit:#ff5c6c;--high:#ff8a3d;--med:#f5b642;--low:#6aa9ff;--mono:"SFMono-Regular",ui-monospace,"JetBrains Mono",Menlo,Consolas,monospace;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--fg);font-family:var(--sans);font-size:13px;line-height:1.45;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{margin:0;font-weight:600}.mono,code{font-family:var(--mono)}.shell{display:grid;grid-template-columns:216px 1fr;min-height:100vh}.sidebar{background:var(--bg-elev);border-right:1px solid var(--border);padding:16px 10px;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{font-weight:700;font-size:15px;letter-spacing:.3px;padding:4px 10px 14px}.brand small{display:block;color:var(--fg-faint);font-weight:500;font-size:10.5px;letter-spacing:.5px;text-transform:uppercase}.nav a{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:7px;color:var(--fg-dim);font-size:12.5px;margin-bottom:2px}.nav a:hover{text-decoration:none}.nav a.active,.nav a:hover{background:var(--bg-elev2);color:var(--fg)}.nav a.active{box-shadow:inset 2px 0 0 var(--accent)}.main{padding:22px 26px 60px;max-width:1400px}.page-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:18px}.page-head h1{font-size:19px}.muted{color:var(--fg-dim)}.faint{color:var(--fg-faint)}.grid{display:grid;grid-gap:12px;gap:12px}.cols-2{grid-template-columns:repeat(2,1fr)}.cols-3{grid-template-columns:repeat(3,1fr)}.cols-4{grid-template-columns:repeat(4,1fr)}@media (max-width:1000px){.cols-3,.cols-4{grid-template-columns:repeat(2,1fr)}}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;padding:14px 16px}.card h2{font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:var(--fg-dim);margin-bottom:12px;font-weight:600}.stat .val{font-size:26px;font-weight:700;font-family:var(--mono);letter-spacing:-.5px}.stat .lbl{color:var(--fg-dim);font-size:11px;text-transform:uppercase;letter-spacing:.5px;margin-top:2px}.stat .sub{color:var(--fg-faint);font-size:11px;margin-top:4px}table{width:100%;border-collapse:collapse;font-size:12.5px}th{text-align:left;color:var(--fg-dim);font-weight:600;font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;padding:7px 10px;border-bottom:1px solid var(--border)}td{padding:8px 10px;border-bottom:1px solid var(--border-soft)}tr:hover td{background:var(--bg-elev2)}td.mono,td.num,th.num{font-family:var(--mono)}td.num,th.num{text-align:right}.badge{display:inline-block;padding:1.5px 7px;border-radius:20px;font-size:10.5px;font-weight:600;font-family:var(--mono);border:1px solid transparent}.badge.ok{color:var(--ok);background:rgba(53,198,107,.12)}.badge.warn{color:var(--warn);background:rgba(245,182,66,.12)}.badge.crit{color:var(--crit);background:rgba(255,92,108,.13)}.badge.high{color:var(--high);background:rgba(255,138,61,.13)}.badge.med{color:var(--med);background:rgba(245,182,66,.12)}.badge.low{color:var(--low);background:rgba(106,169,255,.12)}.badge.dim{color:var(--fg-dim);background:var(--bg-elev2);border-color:var(--border)}.badge.block{color:var(--crit);background:rgba(255,92,108,.13)}.badge.monitor{color:var(--warn);background:rgba(245,182,66,.12)}.badge.off{color:var(--fg-faint);background:var(--bg-elev2)}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:middle}.dot.ok{background:var(--ok)}.dot.bad{background:var(--crit)}.dot.unknown{background:var(--fg-faint)}.bar-row{display:grid;grid-template-columns:140px 1fr 44px;align-items:center;grid-gap:10px;gap:10px;margin-bottom:6px;font-size:12px}.bar-row .lbl{color:var(--fg-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-track{background:var(--bg-elev2);border-radius:4px;height:16px;overflow:hidden}.bar-fill{height:100%;background:linear-gradient(90deg,var(--accent),#6ac1ff);border-radius:4px}.bar-row .n{text-align:right;font-family:var(--mono);color:var(--fg)}.spark{display:flex;align-items:flex-end;gap:2px;height:70px}.spark .col{flex:1 1;background:var(--accent);border-radius:2px 2px 0 0;min-height:2px;opacity:.85}.row{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.pill-row{display:flex;gap:8px;flex-wrap:wrap}.rec{font-size:11.5px}.rec.go{color:var(--ok)}.rec.review{color:var(--warn)}.rec.done{color:var(--fg-faint)}button,input{font-family:var(--sans);font-size:13px;background:var(--bg-elev2);color:var(--fg);border:1px solid var(--border);border-radius:7px;padding:8px 12px}button{cursor:pointer}button.primary,button:hover{border-color:var(--accent)}button.primary{background:var(--accent);color:#04121f;font-weight:600}.gate{max-width:380px;margin:12vh auto;text-align:center}.gate input{width:100%;margin:10px 0}.err{color:var(--crit);font-size:12px}.loading{color:var(--fg-faint);padding:20px 0}.refresh{font-size:11.5px;color:var(--fg-dim);cursor:pointer}