:root{color-scheme:dark;--bg:#07111e;--card:#102236;--line:#25445f;--cyan:#24d7e7;--text:#eff7ff;--muted:#9bb0c4;--bad:#ff6b79}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,sans-serif;background:radial-gradient(circle at top right,#12334a,var(--bg) 45%);color:var(--text);min-height:100vh}main{width:min(1100px,94%);margin:auto;padding:28px 0 60px}.top{display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{letter-spacing:.15em;color:var(--cyan);font-weight:800}.muted,small{color:var(--muted)}.card{background:color-mix(in srgb,var(--card) 92%,transparent);border:1px solid var(--line);border-radius:18px;padding:20px;margin:16px 0;box-shadow:0 18px 50px #0005}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}label{display:grid;gap:7px;font-weight:650}input,select,button{font:inherit;border-radius:10px;border:1px solid var(--line);padding:11px;background:#091827;color:var(--text)}input[type=color]{height:48px;padding:4px;width:100%}input[type=range]{padding:0;width:100%}button{cursor:pointer;background:#0e668a;font-weight:800}button.secondary{background:#162c42}button.danger{background:#7f2630}button:disabled{opacity:.45;cursor:not-allowed}.badge{display:inline-flex;border:1px solid var(--line);border-radius:99px;padding:7px 12px;color:var(--muted)}.badge.online{color:#63f2bb;border-color:#21865f}.badge.offline{color:var(--bad);border-color:#8b3341}.zones{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.zone{border:1px solid var(--line);border-radius:12px;padding:12px}.zone label{font-size:.9rem}.status{min-height:1.5em;color:var(--cyan)}.hidden{display:none!important}.login{max-width:430px;margin:10vh auto}.commands{font-size:.85rem;display:grid;gap:6px}.command{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:7px 0}a{color:var(--cyan)}h1,h2,h3{margin:.25em 0 .7em}@media(max-width:600px){.top{align-items:flex-start;flex-direction:column}.card{padding:15px}}
