:root{--bg: #0b0c10;--surface: #12141a;--surface-2: #181b23;--surface-3: #1e222c;--border: #242836;--border-strong: #323849;--text: #e6e8ee;--muted: #8d93a5;--faint: #636a7e;--accent: #6ea8ff;--accent-soft: rgba(110, 168, 255, .14);--ok: #46c995;--ok-soft: rgba(70, 201, 149, .13);--bad: #ef6b73;--bad-soft: rgba(239, 107, 115, .13);--warn: #e6b450;--warn-soft: rgba(230, 180, 80, .14);--neutral-soft: rgba(141, 147, 165, .14);--radius: 10px;--radius-sm: 6px;--mono: ui-monospace, "SF Mono", "Cascadia Mono", Consolas, "Liberation Mono", monospace;--sans: Inter, "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, Roboto, sans-serif;--sidebar: 184px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font:13px/1.45 var(--sans);-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.01em}button,input,select{font:inherit;color:inherit}::selection{background:var(--accent-soft)}.mono{font-family:var(--mono);font-size:12.5px}.muted{color:var(--muted)}.faint{color:var(--faint)}.num{text-align:right;font-variant-numeric:tabular-nums}.shell{display:grid;grid-template-columns:var(--sidebar) 1fr;min-height:100%}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--border);padding:18px 14px}.brand{padding:4px 10px 18px}.brand-name{font-size:18px;font-weight:700;letter-spacing:.02em}.brand-sub{color:var(--muted);font-size:12px;margin-top:2px}.nav{display:flex;flex-direction:column;gap:2px}.nav a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);color:var(--muted)}.nav a:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.nav a.active{background:var(--accent-soft);color:var(--text)}.sidebar-foot{margin-top:auto;border-top:1px solid var(--border);padding:14px 10px 0;display:flex;flex-direction:column;gap:10px}.identity{font-size:12.5px;word-break:break-all}.identity .role{color:var(--muted)}.content{min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:12px;padding:8px 24px;border-bottom:1px solid var(--border);background:var(--bg);position:sticky;top:0;z-index:2}.quick{display:flex;gap:8px;align-items:center;flex:0 1 340px;margin-left:auto}.quick input{flex:1}.quick-error{color:var(--bad);font-size:12.5px}.page{padding:18px 24px 40px;max-width:1760px;width:100%}.env-strip{padding:6px 28px;font-size:12px;background:var(--warn-soft);color:var(--warn);border-bottom:1px solid rgba(230,180,80,.3)}@media(max-width:860px){.shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px}.brand{padding:0 10px 0 0}.nav{flex-direction:row}.sidebar-foot{margin:0 0 0 auto;border:0;padding:0;flex-direction:row;align-items:center}.page,.topbar{padding-left:14px;padding-right:14px}}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:22px;flex-wrap:wrap}.page-title{font-size:22px}.page-sub{color:var(--muted);margin-top:4px}.page-actions{display:flex;gap:8px;align-items:center}.crumbs{color:var(--muted);font-size:12.5px;margin-bottom:6px}.title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface-2);cursor:pointer}.btn:hover:not(:disabled){background:var(--surface-3)}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:var(--accent-soft);border-color:#6ea8ff80;color:#cfe0ff}.btn.ghost{background:transparent}.input{padding:7px 10px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface-2);min-width:0}.input:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.tabs{display:inline-flex;padding:3px;gap:2px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap}.tab{padding:6px 12px;border-radius:7px;background:transparent;border:0;color:var(--muted);cursor:pointer}.tab:hover{color:var(--text)}.tab.active{background:var(--surface-3);color:var(--text)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border)}.panel-title{font-size:14px;font-weight:600}.panel-body{padding:16px}.stack{display:flex;flex-direction:column;gap:20px}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}.metric{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px}.metric-label{color:var(--muted);font-size:12.5px}.metric-value{font-size:28px;font-weight:650;margin-top:6px;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.metric-hint{color:var(--faint);font-size:12px;margin-top:4px}.metric.ok .metric-value{color:var(--ok)}.metric.bad .metric-value{color:var(--bad)}.metric.accent .metric-value{color:var(--accent)}.breakdown-bar{display:flex;height:10px;border-radius:99px;overflow:hidden;background:var(--surface-3)}.breakdown-bar span{display:block;height:100%}.breakdown-list{margin-top:14px;display:grid;gap:4px}.breakdown-row{display:grid;grid-template-columns:14px 1fr auto auto;gap:10px;align-items:center;padding:6px 4px;border-radius:var(--radius-sm);color:inherit}.breakdown-row:hover{background:var(--surface-2);text-decoration:none}.dot{width:10px;height:10px;border-radius:50%;display:inline-block}.kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px 24px}.kv-item dt{color:var(--muted);font-size:12px;margin-bottom:3px}.kv-item dd{margin:0;word-break:break-word}.table-wrap{overflow-x:auto}table.data{width:100%;border-collapse:collapse}table.data th{text-align:left;font-weight:500;color:var(--muted);font-size:12px;padding:10px 14px;border-bottom:1px solid var(--border);white-space:nowrap;background:var(--surface);position:sticky;top:0}table.data td{padding:10px 14px;border-bottom:1px solid var(--border);vertical-align:middle;white-space:nowrap}table.data tbody tr:last-child td{border-bottom:0}table.data tbody tr:hover td{background:var(--surface-2)}table.data th.num,table.data td.num{text-align:right}.table-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-top:1px solid var(--border);color:var(--muted);font-size:12.5px}.badge{display:inline-flex;align-items:center;gap:6px;padding:2px 9px;border-radius:99px;font-size:12px;font-weight:500;background:var(--neutral-soft);color:var(--muted);border:1px solid transparent}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.9}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.bad{background:var(--bad-soft);color:var(--bad)}.badge.accent{background:var(--accent-soft);color:var(--accent)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.plain:before{display:none}.badge.env-prod{background:var(--warn-soft);color:var(--warn);border-color:#e6b45073}.delta-pos{color:var(--ok)}.delta-neg{color:#e0a0a4}.delta-zero{color:var(--faint)}.copyid{display:inline-flex;align-items:center;gap:6px}.copy-btn{padding:1px 6px;font-size:11px;line-height:1.5;border-radius:5px;border:1px solid var(--border-strong);background:transparent;color:var(--muted);cursor:pointer}.copy-btn:hover{color:var(--text);background:var(--surface-3)}.state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:44px 20px;text-align:center;color:var(--muted)}.state-title{color:var(--text);font-weight:600}.state-detail{font-size:12.5px;max-width:520px}.state.error .state-title{color:var(--bad)}.skeleton{width:min(520px,100%);display:grid;gap:10px}.skeleton i{display:block;height:12px;border-radius:6px;background:linear-gradient(90deg,var(--surface-2),var(--surface-3),var(--surface-2));background-size:200% 100%;animation:shimmer 1.6s linear infinite}.skeleton i:nth-child(2){width:80%}.skeleton i:nth-child(3){width:60%}@keyframes shimmer{to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.skeleton i{animation:none}}.login{min-height:100%;display:grid;place-items:center;padding:24px}.login-card{width:min(380px,100%);background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:28px}.login-card h1{font-size:22px}.field{display:grid;gap:6px;margin-top:16px}.field label{color:var(--muted);font-size:12.5px}.field .input{width:100%}.login-card .btn{margin-top:20px;width:100%;justify-content:center;padding:9px 12px}.form-error{color:var(--bad);margin:14px 0 0;font-size:13px}.note{color:var(--muted);font-size:12.5px}.field-chip{display:inline-block;margin:2px 4px 2px 0;padding:1px 8px;border-radius:99px;background:var(--surface-3);font-family:var(--mono);font-size:11.5px;color:var(--muted)}.field-chip.required{color:var(--text);border:1px solid var(--border-strong)}.stack.tight{gap:14px}.sidebar{padding:14px 10px}.brand{padding:2px 8px 14px}.nav a{padding:6px 10px}.topbar-title{font-weight:600;letter-spacing:.01em;white-space:nowrap}.topbar-title .sep{color:var(--faint);margin:0 6px}.quick .input{padding:5px 9px;font-size:12px}.quick .btn{display:none}.page-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.page-bar .page-title{font-size:18px}.spacer{flex:1}.btn{padding:5px 11px}.kpis{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr)) minmax(260px,1.8fr);gap:10px}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px 14px;min-width:0}.kpi-label{color:var(--muted);font-size:11.5px}.kpi-value{font-size:24px;font-weight:650;letter-spacing:-.02em;margin-top:2px;font-variant-numeric:tabular-nums;line-height:1.2}.kpi-value.ok{color:var(--ok)}.kpi-value.warn{color:var(--warn)}.kpi-value.bad{color:var(--bad)}.kpi-value.accent{color:var(--accent)}.kpi-hint{color:var(--faint);font-size:11.5px;margin-top:2px}.kpi-bar .breakdown-bar{margin-top:12px}.breakdown-bar.thin{height:8px}.legend{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:9px;font-size:11.5px}.legend a{color:var(--muted);display:inline-flex;align-items:center;gap:5px}.legend .dot{width:8px;height:8px}.split{display:grid;grid-template-columns:minmax(0,2fr) minmax(320px,1fr);gap:14px;align-items:start}.pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}.triple{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}.panel-head{padding:10px 14px}.panel-body{padding:12px 14px}table.data th{padding:7px 12px}table.data td{padding:6px 12px}.attn{list-style:none;margin:0;padding:0}.attn li{display:flex;align-items:center;gap:10px;padding:7px 14px;border-bottom:1px solid var(--border)}.attn li:last-child{border-bottom:0}.attn-when{margin-left:auto;font-size:12px;white-space:nowrap}.attn .badge{white-space:nowrap}.usage{display:grid;gap:9px}.usage-row{display:grid;grid-template-columns:110px 1fr 28px;gap:10px;align-items:center}.usage-track{height:6px;border-radius:99px;background:var(--surface-3);overflow:hidden}.usage-track i{display:block;height:100%;background:var(--accent);border-radius:99px}.big-num{font-size:26px;font-weight:650;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.big-num .muted{font-size:13px;font-weight:400;letter-spacing:0}.tight-p{margin:8px 0 0}.gaps{margin:0;padding-left:16px;color:var(--muted);display:grid;gap:4px}.state{padding:24px 16px}@media(max-width:1100px){.kpis{grid-template-columns:repeat(3,1fr)}.split,.triple,.pair{grid-template-columns:1fr}}.metrics{grid-template-columns:repeat(auto-fit,minmax(190px,260px));gap:10px}.metric{padding:10px 14px}.metric-value{font-size:24px;margin-top:2px}.page-header{margin-bottom:14px}.def{border-bottom:1px dotted var(--faint);cursor:help}.stat-row{display:flex;justify-content:space-between;gap:12px;padding:5px 0;border-bottom:1px solid var(--border)}.stat-row:last-child{border-bottom:0}.stat-label{color:var(--muted)}.stat-value{font-variant-numeric:tabular-nums;font-weight:550;text-align:right}.banner{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);flex-wrap:wrap}.banner .banner-dot{width:10px;height:10px;border-radius:50%;background:var(--faint);flex:none}.banner.ok{border-color:#46c99559}.banner.ok .banner-dot{background:var(--ok)}.banner.warn{border-color:#e6b45073;background:var(--warn-soft)}.banner.warn .banner-dot{background:var(--warn)}.banner.bad{border-color:#ef6b7380;background:var(--bad-soft)}.banner.bad .banner-dot{background:var(--bad)}.banner-title{font-weight:650}.banner-detail{color:var(--muted)}.lamps{display:grid;grid-template-columns:repeat(auto-fit,minmax(106px,1fr));gap:8px}.lamp{display:grid;grid-template-columns:10px 1fr;column-gap:8px;align-items:center;padding:7px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text)}.lamp:hover{background:var(--surface-2);text-decoration:none}.lamp-dot{width:8px;height:8px;border-radius:50%;background:var(--faint);grid-row:1 / span 2}.lamp.ok .lamp-dot{background:var(--ok)}.lamp.warn .lamp-dot{background:var(--warn)}.lamp.bad .lamp-dot{background:var(--bad)}.lamp-name{font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lamp-state{grid-column:2;font-size:11.5px;color:var(--muted)}.lamp.ok .lamp-state{color:var(--ok)}.lamp.warn .lamp-state{color:var(--warn)}.lamp.bad .lamp-state{color:var(--bad)}.kpis.seven{grid-template-columns:repeat(7,minmax(110px,1fr))}.quad{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:start}.attn li .attn-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.needs{margin:0;padding-left:18px;display:grid;gap:6px}.toggle{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;cursor:pointer}.nav-group{margin:12px 10px 4px;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}.nav{overflow-y:auto}@media(max-width:1280px){.quad{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:1100px){.kpis.seven{grid-template-columns:repeat(4,1fr)}}@media(max-width:1100px){.quad{grid-template-columns:1fr}}.nav a{padding:5px 10px}.nav-group{margin:9px 10px 2px}.kpis.seven .kpi{padding:9px 12px}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.filters .input{min-width:180px}select.input{padding:6px 8px}
