:root{--background:#f9f9fb;--foreground:#17171c;--card:#fff;--card-foreground:#17171c;--card-muted:#fcfcfd;--primary:#3c83f6;--primary-foreground:#fff;--primary-glow:#6da2f8;--primary-ink:#1d4ed8;--secondary:#ededf3;--secondary-foreground:#17171c;--muted:#ededf3;--muted-foreground:#67677e;--accent:#3cddc2;--accent-foreground:#fff;--destructive:#e25050;--destructive-foreground:#fff;--good:#21c45d;--warn:#f59f0a;--bad:#e25050;--good-fg:#1f7a40;--warn-fg:#9a5404;--bad-fg:#b12525;--error-text:#ad1f1f;--border:#e0e0eb;--input:#e0e0eb;--sidebar:#121b31;--sidebar-foreground:#e4ebf1;--gradient-bg:linear-gradient(180deg,#f9f9fb,#f3f2f7);--gradient-primary:linear-gradient(135deg,#0b5ce0,#156bf4);--shadow-soft:0 4px 20px -2px rgba(60,131,246,.15);--shadow-elegant:0 10px 40px rgba(0,0,0,.1);--row-hover:rgba(60,131,246,.04);--row-bad:rgba(226,80,80,.05);--row-warn:rgba(245,159,10,.07);--row-open:rgba(60,131,246,.06);--tray:rgba(60,131,246,.03);--wash-primary:rgba(60,131,246,.12);--wash-primary-soft:rgba(60,131,246,.06);--wash-warn:rgba(245,159,10,.16);--wash-good:rgba(33,196,93,.15);--wash-bad:rgba(226,80,80,.14);--focus-ring:0 0 0 3px rgba(60,131,246,.2);--scroll-track:rgba(0,0,0,.06);--disabled-opacity:0.5;--stale-opacity:0.4;--tooltip-bg:#121b31;--tooltip-fg:#f2f5f8;--tooltip-border:transparent;--scrim:rgba(15,23,41,.45);--login-bg:linear-gradient(160deg,#121b31,#1f2b51);--chart-grid:#e3e3ed;--chart-1:#3c83f6;--chart-area:rgba(60,131,246,.1);--fam-v:#3c83f6;--fam-d:#0d9488;--fam-p:#ea7317;--fam-na:#6b7280;--ramp-1:#6ba7f8;--ramp-2:#3b82f6;--ramp-3:#1d4ed8;--ramp-4:#1e40af;--ramp-5:#172554;--ramp-na:#94a3b8;--radius:0.9rem}:root[data-theme=dark]{--background:#121317;--foreground:#eaecf0;--card:#1d1f26;--card-foreground:#eaecf0;--card-muted:#16181d;--primary:#468af6;--primary-foreground:#fff;--primary-glow:#77a8f9;--primary-ink:#93c5fd;--secondary:#2b2e36;--secondary-foreground:#e2e4e9;--muted:#2d3139;--muted-foreground:#acb1be;--accent:#2dd2b7;--destructive:#e45858;--good:#2bca65;--warn:#f6a823;--bad:#e75555;--good-fg:#78e29f;--warn-fg:#fbc260;--bad-fg:#f58484;--error-text:#f68e8e;--border:#3a3f4a;--input:#484e5b;--sidebar:#121621;--sidebar-foreground:#e4ebf1;--gradient-bg:linear-gradient(180deg,#121317,#181821);--shadow-soft:0 4px 18px -4px rgba(0,0,0,.6);--shadow-elegant:0 12px 40px rgba(0,0,0,.7);--row-hover:rgba(109,162,248,.12);--row-bad:rgba(231,85,85,.18);--row-warn:rgba(246,168,35,.16);--row-open:rgba(109,162,248,.16);--tray:rgba(0,0,0,.28);--wash-primary:rgba(85,147,247,.22);--wash-primary-soft:rgba(85,147,247,.12);--wash-warn:rgba(246,168,35,.2);--wash-good:rgba(37,218,103,.22);--wash-bad:rgba(231,85,85,.2);--focus-ring:0 0 0 3px rgba(109,162,248,.45);--scroll-track:hsla(0,0%,100%,.08);--disabled-opacity:0.62;--stale-opacity:0.62;--tooltip-bg:#333a47;--tooltip-fg:#f2f5f8;--tooltip-border:#515767;--scrim:rgba(0,0,0,.66);--login-bg:linear-gradient(160deg,#090b11,#11131d);--chart-grid:#3c3c49;--chart-1:#3c83f6;--chart-area:rgba(70,138,246,.18);--fam-v:#3c83f6;--fam-d:#0d9488;--fam-p:#d97706;--fam-na:#81899c;--ramp-1:#3563c9;--ramp-2:#3b82f6;--ramp-3:#60a5fa;--ramp-4:#93c5fd;--ramp-5:#dbeafe;--ramp-na:#575d6b}*{box-sizing:border-box}body,html{height:100%}html{background:#f9f9fb;background:var(--background)}body{margin:0;min-height:100vh;color:#17171c;color:var(--foreground);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:linear-gradient(180deg,#f9f9fb,#f3f2f7);background:var(--gradient-bg)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:rgba(0,0,0,.06);background:var(--scroll-track);border-radius:4px}::-webkit-scrollbar-thumb{background-color:#3c83f6;background-color:var(--primary);border-radius:4px;opacity:.8}::-webkit-scrollbar-thumb:hover{opacity:1}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;cursor:pointer;font:inherit;font-weight:600;padding:.55rem 1rem;border-radius:.6rem;background:linear-gradient(135deg,#0b5ce0,#156bf4);background:var(--gradient-primary);color:#fff;color:var(--primary-foreground);box-shadow:0 4px 20px -2px rgba(60,131,246,.15);box-shadow:var(--shadow-soft);transition:transform .1s ease,opacity .15s ease}.btn:hover{opacity:.92}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;opacity:var(--disabled-opacity);cursor:not-allowed;box-shadow:none}.btn.ghost{background:transparent;color:#1d4ed8;color:var(--primary-ink);box-shadow:none;border:1px solid #e0e0eb;border:1px solid var(--border)}.btn.small{padding:.35rem .7rem;font-size:.82rem}.badge{display:inline-flex;align-items:center;grid-gap:.35rem;gap:.35rem;padding:.2rem .6rem;border-radius:999px;font-size:.74rem;font-weight:700;letter-spacing:.02em}.badge.good{background:rgba(33,196,93,.15);background:var(--wash-good);color:#1f7a40;color:var(--good-fg)}.badge.warn{background:rgba(245,159,10,.16);background:var(--wash-warn);color:#9a5404;color:var(--warn-fg)}.badge.bad{background:rgba(226,80,80,.14);background:var(--wash-bad);color:#b12525;color:var(--bad-fg)}.badge.muted{background:#ededf3;background:var(--muted);color:#67677e;color:var(--muted-foreground)}.input{font:inherit;padding:.55rem .8rem;border-radius:.6rem;border:1px solid #e0e0eb;border:1px solid var(--input);background:#fff;background:var(--card);color:#17171c;color:var(--foreground);width:100%}.input:focus{outline:none;border-color:#3c83f6;border-color:var(--primary);box-shadow:0 0 0 3px rgba(60,131,246,.2);box-shadow:var(--focus-ring)}@keyframes loaderFadeIn{0%{opacity:0}to{opacity:1}}@keyframes loaderSpin{to{transform:rotate(1turn)}}.global-loader{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:rgba(15,23,41,.45);background:var(--scrim);backdrop-filter:blur(3px);animation:loaderFadeIn .18s ease-out}.global-loader .ring{width:42px;height:42px;border-left:4px solid rgba(60,131,246,.12);border-bottom:4px solid rgba(60,131,246,.12);border-left:4px solid var(--wash-primary);border-bottom:4px solid var(--wash-primary);border-top:4px solid #3c83f6;border-top:4px solid var(--primary);border-right:4px solid #21c45d;border-right:4px solid var(--good);border-radius:50%;animation:loaderSpin .8s linear infinite}