:root{--bg:#05070B;--bg2:#080B12;--bg3:#0D111A;--glass:rgba(255,255,255,.05);--glass-brd:rgba(255,255,255,.10);--accent:#F97316;--accent2:#22D3EE;--ok:#34D399;--warn:#FBBF24;--bad:#F87171}
*{box-sizing:border-box}
body{background:radial-gradient(1200px 600px at 15% -10%,rgba(34,211,238,.10),transparent 60%),radial-gradient(900px 500px at 90% 0%,rgba(249,115,22,.10),transparent 55%),var(--bg);color:#E6EAF2;font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;margin:0;-webkit-font-smoothing:antialiased}
.glass{background:var(--glass);border:1px solid var(--glass-brd);backdrop-filter:blur(20px);border-radius:18px;box-shadow:0 10px 40px rgba(0,0,0,.45)}
.glass-hover{transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.glass-hover:hover{transform:translateY(-2px);border-color:rgba(34,211,238,.35);box-shadow:0 16px 50px rgba(0,0,0,.55),0 0 0 1px rgba(34,211,238,.12)}
.nav-item{display:flex;align-items:center;gap:.7rem;padding:.6rem .85rem;border-radius:12px;color:#9AA6BC;font-size:.9rem;border:1px solid transparent;transition:.18s}
.nav-item:hover{color:#E6EAF2;background:rgba(255,255,255,.04)}
.nav-item.active{color:#fff;background:linear-gradient(90deg,rgba(249,115,22,.18),rgba(249,115,22,.02));border-color:rgba(249,115,22,.35);box-shadow:0 0 18px rgba(249,115,22,.15) inset}
.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .6rem;border-radius:999px;font-size:.68rem;font-weight:600;letter-spacing:.04em}
.b-ok{background:rgba(52,211,153,.12);color:var(--ok);border:1px solid rgba(52,211,153,.3)}
.b-warn{background:rgba(251,191,36,.12);color:var(--warn);border:1px solid rgba(251,191,36,.3)}
.b-bad{background:rgba(248,113,113,.12);color:var(--bad);border:1px solid rgba(248,113,113,.3)}
.b-mute{background:rgba(148,163,184,.12);color:#94A3B8;border:1px solid rgba(148,163,184,.25)}
.b-in{background:rgba(52,211,153,.12);color:var(--ok);border:1px solid rgba(52,211,153,.3)}
.b-out{background:rgba(249,115,22,.12);color:var(--accent);border:1px solid rgba(249,115,22,.3)}
.dot{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 0 rgba(52,211,153,.6);animation:pulse 2s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 8px rgba(52,211,153,0)}100%{box-shadow:0 0 0 0 rgba(52,211,153,0)}}
.inp{width:100%;background:rgba(255,255,255,.04);border:1px solid var(--glass-brd);border-radius:12px;padding:.6rem .8rem;color:#E6EAF2;font-size:.875rem;outline:none;transition:.18s}
.inp:focus{border-color:rgba(34,211,238,.5);box-shadow:0 0 0 3px rgba(34,211,238,.10)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.55rem 1rem;border-radius:12px;font-size:.83rem;font-weight:600;border:1px solid var(--glass-brd);background:rgba(255,255,255,.05);color:#E6EAF2;cursor:pointer;transition:.18s}
.btn:hover{background:rgba(255,255,255,.09);transform:translateY(-1px)}
.btn-primary{background:linear-gradient(135deg,#F97316,#FB923C);border-color:rgba(249,115,22,.5);color:#0B0A08;box-shadow:0 8px 26px rgba(249,115,22,.25)}
.btn-ghost{background:transparent}
.btn-danger{background:rgba(248,113,113,.12);border-color:rgba(248,113,113,.35);color:#FCA5A5}
table.tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:.82rem}
table.tbl th{text-align:left;font-size:.66rem;letter-spacing:.09em;text-transform:uppercase;color:#7C8AA5;padding:.7rem .85rem;border-bottom:1px solid var(--glass-brd);white-space:nowrap}
table.tbl td{padding:.75rem .85rem;border-bottom:1px solid rgba(255,255,255,.05);color:#C9D3E4;white-space:nowrap}
table.tbl tr:hover td{background:rgba(255,255,255,.03)}
.scroll-x{overflow-x:auto}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.kpi{font-size:1.45rem;font-weight:700;letter-spacing:-.02em}
.label{font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:#7C8AA5}
a{color:inherit;text-decoration:none}
::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:8px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
