:root{--surface:#fcfcfb;--surface-2:#f4f4f1;--border:#e4e3de;--ink:#0b0b0b;--ink-2:#52514e;--ink-3:#8a897f;--s1:#2a78d6;--s2:#1baf7a;--accent:#2a78d6;--crit-bg:#fbe3e2;--crit-ink:#9c1f1e;--warn-bg:#fdf0d4;--warn-ink:#7a5200;--info-bg:#ececea;--info-ink:#52514e;--good-bg:#dff0df;--good-ink:#135813}@media (prefers-color-scheme:dark){:root{--surface:#1a1a19;--surface-2:#232322;--border:#3a3936;--ink:#fff;--ink-2:#c3c2b7;--ink-3:#8a897f;--s1:#3987e5;--s2:#199e70;--accent:#3987e5;--crit-bg:#4a1413;--crit-ink:#f0a6a5;--warn-bg:#453a10;--warn-ink:#eecf7c;--info-bg:#2e2e2c;--info-ink:#c3c2b7;--good-bg:#143814;--good-ink:#9fd39f}}*{box-sizing:border-box}body{background:var(--surface);color:var(--ink);margin:0;font:14px/1.45 -apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.wrap{max-width:1560px;margin:0 auto;padding:20px 20px 64px}th,td{font-size:12.8px}header.app{align-items:center;gap:18px;padding:6px 0 16px;display:flex}header.app h1{margin:0;font-size:17px}header.app .who{color:var(--ink-3);margin-left:auto;font-size:12px}nav.tabs{gap:4px;display:flex}nav.tabs button{color:var(--ink-2);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:7px 13px}nav.tabs button.on{background:var(--surface-2);color:var(--ink);font-weight:600}nav.tabs button:hover{color:var(--ink)}.tiles{grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:10px;display:grid}.tile{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:12px 14px}.tile .v{letter-spacing:-.02em;font-size:22px;font-weight:650}.tile .l{color:var(--ink-2);margin-top:2px;font-size:12px}.tile .d{color:var(--ink-3);margin-top:1px;font-size:11.5px}.card{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:16px}.card h2{margin:0 0 10px;font-size:14.5px}.grid2{grid-template-columns:1.4fr 1fr;gap:14px;margin-top:14px;display:grid}@media (width<=900px){.grid2{grid-template-columns:1fr}}.note{color:var(--ink-3);margin-top:8px;font-size:12px}.empty{color:var(--ink-3);padding:18px 0}.legend{color:var(--ink-2);gap:16px;margin-bottom:6px;font-size:12px;display:flex}.legend .k{border-radius:3px;width:10px;height:10px;margin-right:5px;display:inline-block}.legend .k1{background:var(--s1)}.legend .k2{background:var(--s2)}svg.chart{width:100%;height:auto}svg.chart text{fill:var(--ink-2);font:11px -apple-system,Segoe UI,Roboto,sans-serif}svg.chart text.strong{fill:var(--ink);font-weight:600}svg.chart .grid{stroke:var(--border);stroke-width:1px}svg.chart .s1,svg .s1{stroke:var(--s1)}svg.chart .s2{stroke:var(--s2)}svg.chart .t1{fill:var(--s1);font-weight:600}svg.chart .t2{fill:var(--s2);font-weight:600}svg.chart .f1{fill:var(--s1)}.tip{pointer-events:none;background:var(--ink);color:var(--surface);z-index:40;white-space:nowrap;border-radius:7px;padding:6px 9px;font-size:12px;position:fixed}.tablewrap{border:1px solid var(--border);border-radius:10px;margin-top:10px;overflow-x:auto}table{border-collapse:collapse;background:var(--surface-2);width:100%;font-size:13px}th{color:var(--ink-3);text-align:left;text-transform:uppercase;letter-spacing:.04em;font-size:11.5px;font-weight:600}th,td{border-bottom:1px solid var(--border);vertical-align:top;padding:8px 12px}tr:last-child td{border-bottom:none}tbody tr.click{cursor:pointer}tbody tr.click:hover td{background:color-mix(in srgb, var(--accent) 6%, var(--surface-2))}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.chip{white-space:nowrap;border-radius:99px;padding:1px 8px;font-size:11.5px;font-weight:600;display:inline-block}.sev3{background:var(--crit-bg);color:var(--crit-ink)}.sev2{background:var(--warn-bg);color:var(--warn-ink)}.sev1{background:var(--info-bg);color:var(--info-ink)}.ok{background:var(--good-bg);color:var(--good-ink)}.det{color:var(--ink-3);white-space:nowrap;font-size:11.5px}.btn{border:1px solid var(--border);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;border-radius:7px;padding:4px 11px;font-size:12.5px}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{opacity:.9;color:#fff}.btn.ghost{color:var(--ink-3);border-color:#0000}.btnrow{flex-wrap:wrap;gap:6px;display:flex}.filters{flex-wrap:wrap;gap:8px;margin:14px 0 4px;display:flex}.filters select{font:inherit;background:var(--surface-2);color:var(--ink);border:1px solid var(--border);border-radius:7px;padding:5px 9px;font-size:13px}.drawer-veil{z-index:20;background:#00000059;position:fixed;inset:0}.drawer{z-index:21;background:var(--surface);border-left:1px solid var(--border);width:min(680px,94vw);padding:22px;position:fixed;top:0;bottom:0;right:0;overflow-y:auto}.drawer h2{margin:0;font-size:17px}.drawer .sub{color:var(--ink-3);margin:3px 0 14px;font-size:12.5px}.drawer .close{position:absolute;top:14px;right:16px}.kv{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin:12px 0;display:grid}.kv div{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:8px 10px}.kv .k{color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;font-size:11px}.kv .v{margin-top:2px;font-size:13.5px;font-weight:600}.gate{text-align:center;max-width:460px;margin:18vh auto;padding:0 20px}.gate h1{font-size:20px}.gate p{color:var(--ink-2)}.toast{background:var(--ink);color:var(--surface);z-index:50;border-radius:9px;padding:9px 16px;font-size:13px;position:fixed;bottom:22px;left:50%;transform:translate(-50%)}.scorebar{align-items:center;gap:6px;display:flex}.scorebar .bar{background:var(--border);border-radius:3px;flex:1;height:6px;overflow:hidden}.scorebar .bar i{background:var(--s1);border-radius:3px;height:100%;display:block}
