:root{--bg:#f4f5f7;--surface:#fff;--surface-2:#f8f9fb;--border:#e3e6eb;--text:#17202a;--muted:#6b7280;--accent:#d6232a;--accent-2:#2456e6;--good:#1a8f4d;--warn:#c77800;--bad:#c92a2a;--chart-1:#2456e6;--chart-2:#d6232a;--chart-3:#1a8f4d;--chart-4:#c77800;--chart-5:#7c3aed;--chart-6:#0891b2;--chart-7:#9ca3af;--radius:12px;--shadow:0 1px 2px #1018280f, 0 1px 3px #1018281a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0f1216;--surface:#171b21;--surface-2:#1d222a;--border:#2a313b;--text:#e8ebef;--muted:#9aa3ae;--chart-7:#6b7280;--shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0f1216;--surface:#171b21;--surface-2:#1d222a;--border:#2a313b;--text:#e8ebef;--muted:#9aa3ae;--chart-7:#6b7280;--shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:1.45}a{color:var(--accent-2);text-decoration:none}h1,h2,h3{letter-spacing:-.01em;margin:0;font-weight:650}h1{font-size:20px}h2{font-size:15px}h3{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:13px;font-weight:600}.app{flex-direction:column;min-height:100vh;display:flex}.topbar{top:env(safe-area-inset-top,0px);z-index:10;background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:16px;padding:10px 16px;display:flex;position:sticky}.brand{align-items:center;gap:10px;display:flex}.brand .logo{background:var(--accent);color:#fff;border-radius:8px;place-items:center;width:28px;height:28px;font-size:13px;font-weight:800;display:grid}.brand .sub{color:var(--muted);font-size:12px}.nav{flex-wrap:wrap;gap:4px;margin-left:auto;display:flex}.nav button{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;padding:6px 10px;font-weight:600}.nav button:hover{background:var(--surface-2);color:var(--text)}.nav button.active{background:var(--text);color:var(--surface)}.main{width:100%;max-width:1280px;margin:0 auto;padding:16px}.page-title{flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:12px;display:flex}.page-title .muted{color:var(--muted)}.grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:12px;display:grid}.col-3{grid-column:span 3}.col-4{grid-column:span 4}.col-6{grid-column:span 6}.col-8{grid-column:span 8}.col-12{grid-column:span 12}@media (width<=900px){.col-3,.col-4{grid-column:span 6}.col-8,.col-6{grid-column:span 12}}@media (width<=560px){.col-3,.col-4{grid-column:span 12}.main{padding:12px}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0;padding:14px 16px}.card .head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.card .head .hint{color:var(--muted);font-size:12px}.kpi .label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.kpi .value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:4px;font-size:26px;font-weight:700}.kpi .delta{color:var(--muted);margin-top:2px;font-size:12px}.up{color:var(--good)}.down{color:var(--bad)}.flat{color:var(--muted)}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:7px 8px}th{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:12px;font-weight:600}td.num,th.num{text-align:right}tr:last-child td{border-bottom:none}.table-wrap{overflow-x:auto}.badge{border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.badge.warn{color:var(--warn);background:#c7780024}.badge.info{color:var(--accent-2);background:#2456e61f}.badge.critical,.badge.bad{color:var(--bad);background:#c92a2a1f}.badge.good{color:var(--good);background:#1a8f4d24}.heat{gap:3px;display:grid}.heat .cell{height:24px;color:var(--text);border-radius:4px;place-items:center;font-size:11px;display:grid}.heat .rowlabel,.heat .collabel{color:var(--muted);place-items:center;font-size:11px;display:grid}.legend{color:var(--muted);flex-wrap:wrap;gap:12px;font-size:12px;display:flex}.legend .sw{vertical-align:-1px;border-radius:2px;width:10px;height:10px;margin-right:5px;display:inline-block}.center{text-align:center;min-height:60vh;color:var(--muted);place-items:center;display:grid}.login{max-width:360px;margin:10vh auto}.login input{border:1px solid var(--border);background:var(--surface-2);width:100%;color:var(--text);font:inherit;border-radius:8px;margin:10px 0;padding:10px 12px}.btn{background:var(--text);color:var(--surface);font:inherit;cursor:pointer;border:none;border-radius:8px;padding:10px 14px;font-weight:600}.btn.secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.note{color:var(--muted);font-size:12px}.pill-row{flex-wrap:wrap;gap:6px;display:flex}.pill{border:1px solid var(--border);background:var(--surface-2);cursor:pointer;color:var(--muted);border-radius:999px;padding:3px 10px;font-size:12px}.pill.active{background:var(--text);color:var(--surface);border-color:var(--text)}.recharts-default-tooltip{border:1px solid var(--border)!important;background:var(--surface)!important;color:var(--text)!important;border-radius:8px!important}.recharts-tooltip-label{color:var(--muted)!important}.badge.open{color:var(--good);background:#1a8f4d24}.badge.mid{color:var(--accent-2);background:#2456e61f}.badge.close{color:#6d28d9;background:#7c3aed24}
