:root{--brand:#e11d2e;--brand-dark:#8f1119;--bg:#0b0b0d;--panel:#16161a;--line:#2a2a31;--text:#f5f5f7;--muted:#9a9aa5;--ok:#22c55e;--warn:#f59e0b;--bad:#ef4444} *{box-sizing:border-box} html,body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;min-height:100%} button,input,select{font:inherit} button{background:var(--brand);color:#fff;border:0;border-radius:10px;padding:.7rem 1rem;cursor:pointer;font-weight:600} button.ghost{background:transparent;border:1px solid var(--line);color:var(--text)} button.danger{background:var(--bad)} button:disabled{opacity:.45;cursor:not-allowed} input,select,textarea{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:.65rem .8rem;width:100%} label{display:block;color:var(--muted);font-size:.85rem;margin:.6rem 0 .3rem} .card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:1rem;margin:1rem 0} .banner-title{background:linear-gradient(90deg,var(--brand-dark),var(--brand));padding:.8rem 1rem;border-radius:12px;font-size:1.1rem;margin:0 0 1rem} nav.top{display:flex;gap:.4rem;flex-wrap:wrap;padding:.8rem 1rem;border-bottom:1px solid var(--line);align-items:center} nav.top a{color:var(--muted);text-decoration:none;padding:.4rem .7rem;border-radius:8px} nav.top a.on,nav.top a:hover{color:#fff;background:var(--panel)} .row{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center} .grid2{display:grid;grid-template-columns:1fr 1fr;gap:.8rem} @media(max-width:700px){.grid2{grid-template-columns:1fr}} table{width:100%;border-collapse:collapse} th,td{text-align:left;padding:.5rem;border-bottom:1px solid var(--line);font-size:.9rem;vertical-align:middle} th{color:var(--muted);font-weight:600} .badge{display:inline-block;padding:.25rem .65rem;border-radius:999px;font-size:.8rem;font-weight:700} .b-live{background:var(--brand);color:#fff} .b-ok{background:var(--ok);color:#000} .b-warn{background:var(--warn);color:#000} .b-bad{background:var(--bad);color:#fff} .b-idle{background:var(--line);color:var(--muted)} .muted{color:var(--muted)} .err{color:var(--bad)} .toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#222;padding:.7rem 1rem;border-radius:10px;border:1px solid var(--line);z-index:99}