:root{--bg: #f7f9fd;--bg2: #eef2f9;--ink: #14213d;--muted: #4f5d7e;--faint: #8492ad;--line: rgba(20, 40, 90, .12);--line2: rgba(20, 40, 90, .07);--surface: #ffffff;--surface2: #f1f4fa;--surface3: #e7ecf6;--accent: #3b6fe0;--accent2: #12a594;--warn: #b9770a;--danger: #d83a51;--ok: #149063;--violet: #7a5af8;--rail: linear-gradient(180deg, #101a33, #16213d);--shadow: 0 22px 50px -24px rgba(20, 40, 90, .32);--mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{font-family:Segoe UI,system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;background:var(--bg2);color:var(--ink);-webkit-font-smoothing:antialiased;font-size:14px}a{color:inherit;text-decoration:none}code{font-family:var(--mono);font-size:.9em;background:var(--surface2);padding:1px 5px;border-radius:5px}.shell{display:grid;grid-template-columns:208px 1fr;height:100%}.rail{background:var(--rail);color:#c9d4ea;padding:14px 12px;display:flex;flex-direction:column;gap:2px;overflow-y:auto}.rail .brand{display:flex;align-items:center;gap:9px;font-weight:800;color:#fff;font-size:14px;padding:4px 6px 14px}.rail .brand i{width:22px;height:22px;border-radius:7px;background:linear-gradient(135deg,var(--accent),var(--accent2));display:block}.rail .grp{font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:#66779b;padding:12px 6px 4px;font-weight:800}.rail a{display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:8px;color:#c9d4ea;font-size:12.5px;cursor:pointer}.rail a:hover{background:#ffffff0d}.rail a.on{background:#3b6fe042;color:#fff;font-weight:700;box-shadow:inset 0 0 0 1px #78a0ff47}.rail a s{width:5px;height:5px;border-radius:50%;background:#4a5a7d;flex:none;text-decoration:none}.rail a.on s{background:var(--accent2)}.rail a.disabled{opacity:.4;cursor:not-allowed}.rail .spacer{flex:1}.rail .me{border-top:1px solid rgba(255,255,255,.1);margin-top:10px;padding-top:10px;font-size:11px;color:#8b9ab8}.rail .me b{color:#fff;display:block;font-size:12px}.rail .me button{margin-top:8px;background:#ffffff14;border:0;color:#c9d4ea;padding:5px 9px;border-radius:7px;font-size:11.5px;cursor:pointer}.rail .me button:hover{background:#ffffff29;color:#fff}.main{overflow-y:auto;padding:18px 22px 40px}.page-head{display:flex;align-items:flex-end;gap:14px;margin-bottom:14px}.page-head h1{font-size:22px;font-weight:800;letter-spacing:-.5px;margin:0}.page-head .sub{color:var(--faint);font-size:12px}.push{margin-left:auto}.scopebar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:14px}.pill{border:1px solid var(--line);border-radius:9px;padding:5px 10px;background:var(--surface);color:var(--muted);font-size:12px;font-weight:600;display:inline-flex;align-items:center;gap:6px}.pill b{color:var(--ink);font-weight:800}.pill.on{background:#eaf0fe;border-color:#c3d4f8;color:#28499a}.pill select{border:0;background:transparent;font:inherit;color:var(--ink);font-weight:800;cursor:pointer;outline:none;max-width:240px}.seg{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden}.seg button{padding:5px 11px;font-size:12px;color:var(--muted);background:var(--surface);border:0;border-right:1px solid var(--line2);cursor:pointer}.seg button:last-child{border-right:0}.seg button.on{background:var(--surface3);color:var(--ink);font-weight:800}.kpis{display:grid;gap:10px;margin-bottom:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.kpi{border:1px solid var(--line);border-radius:11px;padding:11px 13px;background:linear-gradient(180deg,#fff,#fbfcff)}.kpi .l{font-size:10.5px;color:var(--faint);font-weight:700;letter-spacing:.04em;text-transform:uppercase}.kpi .v{font-size:23px;font-weight:800;letter-spacing:-.6px;font-variant-numeric:tabular-nums;line-height:1.3}.kpi .d{font-size:11px;color:var(--muted)}.kpi .d.up{color:var(--ok)}.kpi .d.dn{color:var(--danger)}.kpi .d.wn{color:var(--warn)}.cols{display:grid;gap:12px}.c2{grid-template-columns:1.8fr 1fr}.c11{grid-template-columns:1fr 1fr}.c3{grid-template-columns:repeat(3,1fr)}@media(max-width:1100px){.c2,.c11,.c3{grid-template-columns:1fr}}.panel{border:1px solid var(--line);border-radius:11px;padding:11px 13px 9px;background:var(--surface);min-width:0}.panel h3{margin:0 0 9px;font-size:12px;font-weight:800;display:flex;align-items:center;gap:8px}.panel h3 em{font-style:normal;color:var(--faint);font-weight:600;font-size:10.5px;margin-left:auto}.fine{color:var(--faint);font-size:11px;margin:8px 0 0;line-height:1.45}.fine b{color:var(--muted)}table{border-collapse:collapse;width:100%;font-size:12px}th{color:var(--faint);font-weight:800;text-align:left;padding:5px 8px;border-bottom:1px solid var(--line);white-space:nowrap;font-size:10px;letter-spacing:.05em;text-transform:uppercase}td{padding:5px 8px;border-bottom:1px solid var(--line2);color:var(--muted);white-space:nowrap}td:first-child{color:var(--ink);font-weight:600}td.n,th.n{text-align:right;font-variant-numeric:tabular-nums}td.m{font-family:var(--mono);font-size:11px}tbody tr:last-child td{border-bottom:0}tbody tr.clickable{cursor:pointer}tbody tr.clickable:hover td{background:var(--surface2)}.tablewrap{overflow-x:auto}th:has(button){padding:0}th button{border:0;background:transparent;font:inherit;color:inherit;cursor:pointer;padding:5px 8px;width:100%;text-align:inherit;white-space:nowrap;text-transform:inherit;letter-spacing:inherit}th button:hover{color:var(--ink)}th button s{text-decoration:none;font-size:8px;color:var(--accent)}th[aria-sort]:not([aria-sort=none]) button{color:var(--ink)}.bar{height:5px;border-radius:3px;background:var(--surface3);overflow:hidden;min-width:46px}.bar i{display:block;height:100%;background:var(--accent)}.bar i.g{background:var(--ok)}.bar i.w{background:var(--warn)}.bar i.r{background:var(--danger)}.tag{display:inline-block;padding:1px 7px;border-radius:999px;font-size:9.5px;font-weight:800}.tag.ok{background:#e2f4ec;color:#0f6b4a}.tag.wn{background:#fdf1de;color:#8a5806}.tag.dn{background:#fdeaed;color:#a52639}.tag.nu{background:var(--surface3);color:var(--muted)}.legend{display:flex;flex-wrap:wrap;gap:12px;font-size:10.5px;color:var(--muted);margin:0 0 5px}.legend span{display:inline-flex;align-items:center;gap:5px}.legend i{width:9px;height:9px;border-radius:50%;flex:none}.legend i.ln{height:3px;width:13px;border-radius:2px}.state{padding:26px;text-align:center;color:var(--faint);font-size:13px}.state.err{color:var(--danger)}.skel{background:linear-gradient(90deg,var(--surface2),var(--surface3),var(--surface2));background-size:200% 100%;animation:sh 1.2s infinite;border-radius:8px;height:100%;min-height:60px}@keyframes sh{0%{background-position:200% 0}to{background-position:-200% 0}}.login{height:100%;display:grid;place-items:center;background:radial-gradient(1000px 600px at 80% -10%,rgba(59,111,224,.13),transparent 60%),linear-gradient(180deg,var(--bg),var(--bg2))}.login form{width:340px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:24px;box-shadow:var(--shadow)}.login h1{font-size:19px;margin:0 0 4px;letter-spacing:-.4px}.login p.lede{color:var(--muted);font-size:12.5px;margin:0 0 18px}.login label{display:block;font-size:11px;font-weight:700;color:var(--faint);text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px}.login input{width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:9px;font:inherit;margin-bottom:13px;background:var(--surface2)}.login input:focus{outline:2px solid rgba(59,111,224,.35);background:#fff}.login button{width:100%;padding:10px;border:0;border-radius:9px;background:var(--accent);color:#fff;font-weight:700;font-size:13.5px;cursor:pointer}.login button:disabled{opacity:.6;cursor:default}.login .err{color:var(--danger);font-size:12px;margin:0 0 12px}svg{display:block;width:100%}svg text{font:9.5px Segoe UI,system-ui;fill:var(--faint)}svg text.b{fill:var(--muted);font-weight:700}
