:root{--surface-page: #F8FAFC;--surface-card: #FFFFFF;--surface-elevated: #F1F5F9;--surface-muted: #F8FAFC;--border-default: #E2E8F0;--border-strong: #CBD5E1;--border-glow: rgba(14, 165, 233, .18);--text-primary: #0F172A;--text-secondary: #475569;--text-muted: #94A3B8;--text-inverse: #FFFFFF;--brand-primary: #0EA5E9;--brand-primary-hover: #0284C7;--brand-secondary: #14B8A6;--brand-accent: #F43F5E;--series-1: #0EA5E9;--series-2: #14B8A6;--series-3: #F59E0B;--series-4: #8B5CF6;--series-5: #10B981;--series-6: #EF4444;--status-good-bg: #DCFCE7;--status-good-fg: #166534;--status-warn-bg: #FEF3C7;--status-warn-fg: #92400E;--status-bad-bg: #FEE2E2;--status-bad-fg: #991B1B;--heat-bad-1: #FEE2E2;--heat-bad-2: #FECACA;--heat-mid: #F8FAFC;--heat-good-1: #D1FAE5;--heat-good-2: #A7F3D0;--shadow-card: 0 1px 2px rgba(15, 23, 42, .04), 0 1px 3px rgba(15, 23, 42, .06);--shadow-card-hover: 0 4px 12px rgba(15, 23, 42, .08);--shadow-modal: 0 20px 40px rgba(15, 23, 42, .15);--glow-good: none;--glow-bad: none;--radius-card: 8px;--radius-control: 6px;--space-card-pad: 20px;--sidebar-bg: #1E293B;--sidebar-text: #F1F5F9;--sidebar-text-muted: #94A3B8;--sidebar-active-bg: #334155;--sidebar-active-fg: #FFFFFF;--bg: var(--surface-page);--bg-elevated: var(--surface-card);--bg-row-alt: var(--surface-elevated);--border: var(--border-default);--text: var(--text-primary);--text-dim: var(--text-secondary);--green: var(--status-good-fg);--red: var(--status-bad-fg);--blue: var(--series-1);--amber: var(--series-3);--purple: var(--series-4);--mono: ui-monospace, "JetBrains Mono", "Fira Code", Consolas, monospace}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;background:var(--surface-page);color:var(--text-primary);font-family:Inter,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.5;min-height:100vh}button{background:var(--surface-card);border:1px solid var(--border-default);color:var(--text-primary);padding:.5rem .85rem;border-radius:var(--radius-control);font-size:.85rem;cursor:pointer;font-family:inherit;transition:all .12s ease}button:hover{background:var(--surface-elevated);border-color:var(--border-strong)}button.primary{background:var(--brand-primary);border-color:var(--brand-primary);color:var(--text-inverse);font-weight:600}button.primary:hover{background:var(--brand-primary-hover)}input{background:var(--surface-card);border:1px solid var(--border-default);color:var(--text-primary);padding:.55rem .7rem;border-radius:var(--radius-control);font-family:inherit;font-size:.9rem;width:100%}input:focus{outline:none;border-color:var(--brand-primary);box-shadow:0 0 0 3px #0ea5e926}table{width:100%;border-collapse:collapse;font-size:.875rem}thead th{text-align:left;padding:.65rem .85rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);font-weight:600;border-bottom:1px solid var(--border-default);background:var(--surface-card)}tbody td{padding:.65rem .85rem;border-bottom:1px solid var(--border-default)}tbody tr:hover{background:var(--surface-elevated)}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.dim{color:var(--text-secondary)}.right{text-align:right}.badge{display:inline-block;padding:.15rem .5rem;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.badge-green{background:var(--status-good-bg);color:var(--status-good-fg);border:1px solid #86EFAC}.badge-red{background:var(--status-bad-bg);color:var(--status-bad-fg);border:1px solid #FCA5A5}.badge-blue{background:#dbeafe;color:#1e40af;border:1px solid #93C5FD}.badge-amber{background:var(--status-warn-bg);color:var(--status-warn-fg);border:1px solid #FCD34D}.badge-purple{background:#f3e8ff;color:#6b21a8;border:1px solid #D8B4FE}.badge-dim{background:var(--surface-elevated);color:var(--text-secondary);border:1px solid var(--border-default)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}.lift{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.lift:hover{transform:translateY(-1px);box-shadow:var(--shadow-card-hover);border-color:var(--border-strong)}@keyframes fadeIn{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .18s ease-out}
