:root{--bg: #0b192c;--panel: #12263f;--panel-2: #16304e;--border: #1e3e62;--border-soft: rgba(255, 255, 255, .07);--text: #eaf1fb;--text-2: #b3c4dc;--muted: #8399b8;--accent: #ff6500;--on-accent: #0b192c;--ok: #0ca30c;--warn: #fab219;--serious: #ec835a;--critical: #d03b3b;--info: #60a5fa;--series-1: #3987e5;--series-2: #d95926;--series-3: #199e70;--series-4: #c98500;--series-5: #d55181;--grid: #21395a;--radius: 12px;--radius-sm: 8px;--shadow: 0 8px 24px rgba(0, 0, 0, .35);--sidebar-w: 232px;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.55 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;font-weight:650;letter-spacing:-.01em}h1{font-size:20px}h2{font-size:15px}h3{font-size:13px}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}.muted{color:var(--muted)}.dim{color:var(--text-2)}.small{font-size:12px}.tiny{font-size:11px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em}.nums{font-variant-numeric:tabular-nums}.accent{color:var(--accent)}.right{text-align:right}.row{display:flex;align-items:center;gap:8px}.row-wrap{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.col{display:flex;flex-direction:column;gap:4px}.spacer{flex:1}.nowrap{white-space:nowrap}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.card>header{display:flex;align-items:baseline;gap:10px;margin-bottom:14px}.card>header h2{margin:0}.grid{display:grid;gap:14px}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.split{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}@media (max-width: 1100px){.grid.cols-4,.grid.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.split{grid-template-columns:minmax(0,1fr)}}@media (max-width: 680px){.grid.cols-4,.grid.cols-3,.grid.cols-2{grid-template-columns:minmax(0,1fr)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--accent);color:var(--on-accent);border:1px solid transparent;border-radius:var(--radius-sm);padding:8px 14px;font-weight:650;font-size:13px;cursor:pointer;transition:filter .12s ease,background .12s ease}.btn:hover:not(:disabled){filter:brightness(1.08)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.ghost{background:transparent;color:var(--text);border-color:var(--border)}.btn.ghost:hover:not(:disabled){background:var(--panel-2)}.btn.danger{background:var(--critical);color:#fff}.btn.small{padding:5px 10px;font-size:12px}.btn.tiny{padding:3px 8px;font-size:11px}.field{display:grid;gap:5px;font-size:12px;color:var(--muted)}.field>input,.field>select,.field>textarea,.input{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 11px;color:var(--text);font-size:13px;width:100%}.field>input:focus,.field>select:focus,.field>textarea:focus,.input:focus{outline:2px solid var(--accent);outline-offset:-1px}.field>textarea{resize:vertical;min-height:64px}.field.inline{display:flex;align-items:center;gap:8px}.hint{color:var(--muted);font-size:11px}.pill{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:650;line-height:1.7;border:1px solid var(--border);background:var(--panel-2);color:var(--text-2);white-space:nowrap}.pill .dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}.pill.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 40%,transparent);background:color-mix(in srgb,var(--ok) 13%,transparent)}.pill.warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 40%,transparent);background:color-mix(in srgb,var(--warn) 13%,transparent)}.pill.serious{color:var(--serious);border-color:color-mix(in srgb,var(--serious) 40%,transparent);background:color-mix(in srgb,var(--serious) 13%,transparent)}.pill.critical{color:var(--critical);border-color:color-mix(in srgb,var(--critical) 45%,transparent);background:color-mix(in srgb,var(--critical) 15%,transparent)}.pill.info{color:var(--info);border-color:color-mix(in srgb,var(--info) 40%,transparent);background:color-mix(in srgb,var(--info) 13%,transparent)}.pill.neutral{color:var(--muted)}.tile{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;display:flex;flex-direction:column;gap:3px;min-width:0}.tile-label{font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.tile-value{font-size:26px;font-weight:680;letter-spacing:-.02em;line-height:1.15}.tile-sub{font-size:12px;color:var(--text-2);display:flex;align-items:center;gap:6px;min-height:18px}.tile.clickable{cursor:pointer}.tile.clickable:hover{border-color:var(--accent)}.delta{font-weight:650;font-variant-numeric:tabular-nums}.delta.up{color:var(--ok)}.delta.down{color:var(--critical)}.delta.flat{color:var(--muted)}.table-wrap{overflow-x:auto;border-radius:var(--radius-sm);border:1px solid var(--border)}table{width:100%;border-collapse:collapse;font-size:13px}thead th{background:var(--panel-2);text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:650;padding:9px 12px;white-space:nowrap;position:sticky;top:0;z-index:1}thead th.num,tbody td.num{text-align:right;font-variant-numeric:tabular-nums}thead th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}thead th.sortable:hover{color:var(--text)}tbody td{padding:9px 12px;border-top:1px solid var(--border-soft);vertical-align:middle}tbody tr.clickable{cursor:pointer}tbody tr.clickable:hover{background:var(--panel-2)}tbody tr.selected{background:color-mix(in srgb,var(--accent) 10%,transparent)}.empty{padding:28px 12px;text-align:center;color:var(--muted);font-size:13px}.shell{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);min-height:100vh}.sidebar{background:var(--panel);border-right:1px solid var(--border);padding:16px 12px;display:flex;flex-direction:column;gap:18px;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{display:flex;align-items:center;gap:9px;font-size:15px;font-weight:750;letter-spacing:-.01em;padding:4px 8px}.brand .mark{width:24px;height:24px;border-radius:7px;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;font-size:13px;font-weight:800;flex:none}.nav{display:flex;flex-direction:column;gap:1px}.nav-group{font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:650;padding:12px 8px 4px}.nav a{display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:var(--radius-sm);color:var(--text-2);font-size:13px;font-weight:500}.nav a:hover{background:var(--panel-2);color:var(--text)}.nav a.active{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);font-weight:650}.nav a .badge{margin-left:auto;background:var(--critical);color:#fff;border-radius:999px;font-size:10px;font-weight:700;padding:0 6px;line-height:16px}.nav-icon{width:16px;text-align:center;flex:none;opacity:.85}.main{display:flex;flex-direction:column;min-width:0}.topbar{display:flex;align-items:center;gap:10px;padding:12px 22px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg) 85%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:20}.page{padding:22px;display:flex;flex-direction:column;gap:16px;max-width:1600px;width:100%}.page-head{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.page-head p{margin:2px 0 0}@media (max-width: 860px){.shell{grid-template-columns:minmax(0,1fr)}.sidebar{position:static;height:auto;flex-direction:row;align-items:center;overflow-x:auto;border-right:none;border-bottom:1px solid var(--border)}.nav{flex-direction:row}.nav-group,.sidebar .sidebar-foot{display:none}.page{padding:14px}}.banner{display:flex;align-items:center;gap:10px;padding:9px 22px;font-size:13px;font-weight:550;border-bottom:1px solid transparent}.banner.warn{background:color-mix(in srgb,var(--warn) 16%,var(--bg));color:var(--warn);border-bottom-color:color-mix(in srgb,var(--warn) 35%,transparent)}.banner.critical{background:color-mix(in srgb,var(--critical) 18%,var(--bg));color:#ffc9c9;border-bottom-color:color-mix(in srgb,var(--critical) 40%,transparent)}.banner.info{background:color-mix(in srgb,var(--info) 14%,var(--bg));color:var(--info);border-bottom-color:color-mix(in srgb,var(--info) 30%,transparent)}.error-text{color:var(--critical);font-size:13px}.error-box{border:1px solid color-mix(in srgb,var(--critical) 45%,transparent);background:color-mix(in srgb,var(--critical) 12%,transparent);color:#ffd4d4;border-radius:var(--radius-sm);padding:10px 12px;font-size:13px}.chart-head{display:flex;align-items:baseline;gap:10px;margin-bottom:10px;flex-wrap:wrap}.legend{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:11.5px;color:var(--text-2)}.legend .key{display:inline-flex;align-items:center;gap:5px}.legend .swatch{width:9px;height:9px;border-radius:2px;flex:none}.chart-tip{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;font-size:12px;box-shadow:var(--shadow)}.chart-tip .tip-label{color:var(--muted);font-size:11px;margin-bottom:4px}.chart-tip .tip-row{display:flex;align-items:center;gap:7px;font-variant-numeric:tabular-nums}.bars{display:flex;flex-direction:column;gap:9px}.bar-row{display:grid;grid-template-columns:minmax(84px,30%) 1fr auto;align-items:center;gap:10px;font-size:12.5px}.bar-track{height:9px;background:var(--bg);border-radius:4px;overflow:hidden}.bar-fill{display:block;height:100%;border-radius:0 4px 4px 0;background:var(--series-1);min-width:2px}.bar-num{font-variant-numeric:tabular-nums;color:var(--text-2)}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#030810a8;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:100;display:grid;place-items:center;padding:20px}.dialog{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);width:min(560px,100%);max-height:88vh;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:14px}.dialog-head{display:flex;align-items:flex-start;gap:10px}.dialog-head h2{flex:1}.kv{display:grid;grid-template-columns:minmax(110px,auto) 1fr;gap:6px 14px;font-size:13px;align-items:baseline}.kv dt{color:var(--muted);font-size:12px}.kv dd{margin:0;overflow-wrap:anywhere}pre.json{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px;overflow-x:auto;font-size:11.5px;line-height:1.5;margin:0;max-height:260px}.center{min-height:100vh;display:grid;place-items:center;padding:24px}.login{width:min(390px,92vw);display:grid;gap:13px;padding:24px}.palette-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#03081099;z-index:200;display:flex;justify-content:center;padding-top:12vh}.palette{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);width:min(520px,92vw);height:fit-content;max-height:60vh;overflow:hidden;display:flex;flex-direction:column}.palette input{border:none;border-bottom:1px solid var(--border);border-radius:0;background:transparent;padding:13px 15px;font-size:14px}.palette input:focus{outline:none}.palette-list{overflow-y:auto;padding:6px}.palette-item{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:var(--radius-sm);cursor:pointer;font-size:13px}.palette-item.active{background:var(--panel-2)}.kbd{border:1px solid var(--border);border-bottom-width:2px;border-radius:5px;padding:1px 5px;font-size:10.5px;color:var(--muted);font-family:ui-monospace,monospace}.skeleton{background:linear-gradient(90deg,var(--panel-2) 25%,var(--border) 50%,var(--panel-2) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:var(--radius-sm)}@keyframes shimmer{to{background-position:-200% 0}}@media (prefers-reduced-motion: reduce){.skeleton{animation:none}*{transition:none!important}}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);overflow-x:auto}.tabs button{background:transparent;border:none;border-bottom:2px solid transparent;padding:8px 13px;font-size:13px;color:var(--muted);cursor:pointer;white-space:nowrap}.tabs button.active{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.meter{height:6px;background:var(--bg);border-radius:3px;overflow:hidden;min-width:54px}.meter>span{display:block;height:100%;border-radius:3px;background:var(--series-1)}.meter.warn>span{background:var(--warn)}.meter.critical>span{background:var(--critical)}
