:root{--bg:#07131F;--panel:#0D2133;--panel-2:#10283D;--line:#1C3A52;--text:#E8F1F6;--muted:#8FA8BA;--accent:#5CC4DC;--ok:#6FD3A8;--warn:#F3B35A;--font-ui:"Onest",system-ui,sans-serif;--font-display:"Unbounded","Onest",sans-serif}*{box-sizing:border-box}body{margin:0;font-family:var(--font-ui);background:radial-gradient(900px 500px at 0% -10%,#124C7340,transparent),var(--bg);color:var(--text)}h1,h2,.brand{font-family:var(--font-display);letter-spacing:-.02em}.layout{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.side{padding:20px 16px;border-right:1px solid var(--line);background:linear-gradient(180deg,#0a1a28,#07131f)}.side .brand{font-size:1.1rem;margin-bottom:20px}.nav button{display:block;width:100%;text-align:left;background:transparent;border:0;color:var(--muted);padding:10px 12px;border-radius:12px;cursor:pointer;margin-bottom:4px}.nav button.on,.nav button:hover{background:var(--panel-2);color:var(--text)}.main{padding:22px 24px 48px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.stat{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:14px 16px}.stat b{display:block;font-size:1.4rem;margin-top:6px;font-variant-numeric:tabular-nums}.stat span{color:var(--muted);font-size:.82rem}.card{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:16px;margin-top:16px}.table{width:100%;border-collapse:collapse;font-size:.92rem}.table th,.table td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line)}.table th{color:var(--muted);font-weight:500}.search{display:flex;gap:8px;margin-bottom:12px}.search input{flex:1;background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:10px 12px;color:var(--text)}.btn{border:0;border-radius:12px;padding:10px 14px;background:var(--accent);color:#04121c;font-weight:600;cursor:pointer}.btn-ghost{background:transparent;color:var(--muted);border:1px solid var(--line)}.login{max-width:420px;margin:12vh auto;padding:24px}.tag{display:inline-block;padding:2px 8px;border-radius:999px;background:#14324a;color:var(--accent);font-size:.75rem}.note{color:var(--muted);font-size:.9rem;line-height:1.45}.err{color:#f49680}.tag-ok{color:var(--ok)}.tag-warn{color:var(--warn)}.tag-off{color:#f49680}.head,.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.head{justify-content:space-between}.actions .btn.on{outline:2px solid var(--accent)}.mini,select{background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:10px 12px;color:var(--text)}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#04121c99;display:grid;place-items:center;padding:18px;z-index:20}.modal{width:min(520px,100%);background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:18px}.modal h2{margin:0 0 8px;font-size:1.05rem}.palette input{width:100%;margin-bottom:8px;background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:10px 12px;color:var(--text)}a.btn{text-decoration:none;display:inline-flex}[data-theme=light]{--bg:#F3F7FB;--panel:#fff;--panel-2:#F6FAFC;--line:#D5E1EA;--text:#102433;--muted:#5C7386;--accent:#0E7490;--ok:#1F8A5B;--warn:#9A6410;color-scheme:light}[data-theme=light] body{background:linear-gradient(180deg,#e7f2f6,#f3f7fb)}[data-theme=light] .side{background:#fff}[data-theme=light] .btn{color:#fff}[data-theme=light] .btn-ghost{color:var(--text);background:transparent}@media (max-width:860px){.layout{grid-template-columns:1fr}.side{border-right:0;border-bottom:1px solid var(--line)}}
