:root{--bg: #070a12;--surface: #0c111d;--surface-2: #111827;--surface-3: #18213a;--surface-4: #202b48;--border: rgba(150, 170, 215, .1);--border-strong: rgba(150, 170, 215, .18);--border-faint: rgba(150, 170, 215, .06);--text: #eaeef8;--text-2: #a4afc6;--text-3: #67738c;--text-on-accent: #ffffff;--brand-blue: #2f6bff;--brand-blue-2: #4c84ff;--brand-violet: #7c4dff;--brand-violet-2: #9a6bff;--brand-magenta: #b15cff;--brand-grad: linear-gradient(135deg, #2f6bff 0%, #7c4dff 60%, #a85cff 100%);--brand-grad-soft: linear-gradient(135deg, rgba(47,107,255,.16), rgba(124,77,255,.16));--brand-glow: 0 0 0 1px rgba(124,109,255,.35), 0 8px 30px -8px rgba(63,108,255,.55);--sev-critical: #fb3b5c;--sev-high: #ff7a3d;--sev-medium: #f5b53f;--sev-low: #4cc2ff;--sev-info: #7e8aa3;--sev-critical-bg: rgba(251, 59, 92, .13);--sev-high-bg: rgba(255, 122, 61, .13);--sev-medium-bg: rgba(245, 181, 63, .13);--sev-low-bg: rgba(76, 194, 255, .13);--sev-info-bg: rgba(126, 138, 163, .13);--sev-critical-bd: rgba(251, 59, 92, .32);--sev-high-bd: rgba(255, 122, 61, .32);--sev-medium-bd: rgba(245, 181, 63, .32);--sev-low-bd: rgba(76, 194, 255, .32);--sev-info-bd: rgba(126, 138, 163, .32);--ok: #2fd6a6;--ok-bg: rgba(47, 214, 166, .13);--ok-bd: rgba(47, 214, 166, .3);--warn: #f5b53f;--danger: #fb3b5c;--font-sans: "Geist", "Hanken Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono: "Geist Mono", "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--t-display: 30px;--t-h1: 22px;--t-h2: 17px;--t-h3: 14px;--t-body: 13px;--t-sm: 12px;--t-xs: 11px;--t-2xs: 10px;--r-sm: 6px;--r-md: 9px;--r-lg: 13px;--r-xl: 18px;--r-pill: 999px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--shadow-sm: 0 1px 2px rgba(0,0,0,.4);--shadow-md: 0 8px 24px -10px rgba(0,0,0,.6);--shadow-lg: 0 24px 60px -20px rgba(0,0,0,.75);--shadow-pop: 0 30px 80px -24px rgba(0,0,0,.85), 0 0 0 1px var(--border-strong);--nav-w: 232px;--nav-w-collapsed: 64px;--topbar-h: 56px;--ease: cubic-bezier(.22, 1, .36, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);color-scheme:dark}:root[data-theme=light]{color-scheme:light;--bg: #eef1f7;--surface: #ffffff;--surface-2: #f6f8fc;--surface-3: #eaeef6;--surface-4: #dde4f0;--border: rgba(30, 50, 95, .14);--border-strong: rgba(30, 50, 95, .22);--border-faint: rgba(30, 50, 95, .08);--text: #131a2b;--text-2: #475067;--text-3: #7b8499;--text-on-accent: #ffffff;--brand-grad-soft: linear-gradient(135deg, rgba(47,107,255,.12), rgba(124,77,255,.12));--brand-glow: 0 0 0 1px rgba(124,109,255,.3), 0 8px 26px -10px rgba(63,108,255,.4);--sev-critical: #e11d48;--sev-high: #ea580c;--sev-medium: #c2820a;--sev-low: #0284c7;--sev-info: #64748b;--ok: #0d9488;--ok-bg: rgba(13, 148, 136, .12);--ok-bd: rgba(13, 148, 136, .3);--warn: #c2820a;--danger: #e11d48;--shadow-sm: 0 1px 2px rgba(30,50,95,.08);--shadow-md: 0 6px 20px -10px rgba(30,50,95,.2);--shadow-lg: 0 20px 50px -22px rgba(30,50,95,.28);--shadow-pop: 0 24px 60px -24px rgba(30,50,95,.3), 0 0 0 1px var(--border-strong)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--t-body);-webkit-font-smoothing:antialiased}a{color:var(--brand-blue-2);text-decoration:none}.mono{font-family:var(--font-mono)}.muted{color:var(--text-2)}.faint{color:var(--text-3)}.row{display:flex;align-items:center}.col{display:flex;flex-direction:column}.between{justify-content:space-between}.spacer{flex:1}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-md)}.card-pad{padding:var(--sp-4)}.btn{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:var(--r-md);border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);font-size:var(--t-sm);font-weight:600;cursor:pointer;transition:background .15s var(--ease),border-color .15s var(--ease)}.btn:hover{background:var(--surface-3)}.btn-primary{background:var(--brand-grad);border-color:transparent;color:#fff;box-shadow:var(--brand-glow)}.btn-primary:hover{filter:brightness(1.07)}.btn-danger{background:color-mix(in srgb,var(--sev-critical) 14%,var(--surface-2));border-color:var(--sev-critical-bd);color:var(--sev-critical)}.btn-danger:hover{background:color-mix(in srgb,var(--sev-critical) 22%,var(--surface-2))}.btn-sm{padding:5px 10px;font-size:var(--t-xs);gap:5px}.btn:disabled{opacity:.55;cursor:not-allowed}.input{width:100%;padding:10px 12px;background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--r-md);color:var(--text);font-size:var(--t-body);outline:none;transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}.input:focus{border-color:var(--brand-violet);box-shadow:0 0 0 3px #7c4dff2e}.field-label{font-size:var(--t-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);margin-bottom:6px}.metric-label{font-size:var(--t-xs);font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-3)}.metric-value{font-weight:700;font-variant-numeric:tabular-nums}.chip{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:var(--r-pill);border:1px solid var(--border-strong);background:var(--surface-2);font-size:var(--t-2xs);font-weight:600}.chip-ok{background:var(--ok-bg);border-color:var(--ok-bd);color:var(--ok)}.sev-critical{color:var(--sev-critical)}.sev-high{color:var(--sev-high)}.sev-medium{color:var(--sev-medium)}.sev-low{color:var(--sev-low)}.meter{height:6px;border-radius:var(--r-pill);background:var(--surface-3);overflow:hidden}.meter>span{display:block;height:100%;border-radius:inherit}.live-dot{width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 0 var(--ok);animation:pulse 2s infinite}@keyframes pulse{0%{box-shadow:0 0 #2fd6a673}70%{box-shadow:0 0 0 6px #2fd6a600}to{box-shadow:0 0 #2fd6a600}}.tbl{width:100%;border-collapse:collapse}.tbl th{text-align:left;font-size:var(--t-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);padding:10px 14px;border-bottom:1px solid var(--border)}.tbl td{padding:11px 14px;border-bottom:1px solid var(--border-faint);font-size:var(--t-sm)}.tbl tbody tr:hover{background:var(--surface-2)}.fade-up{animation:fadeUp .35s var(--ease-out) both}@keyframes fadeUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
