:root{--bg:#f7f8f9;--fg:#1a1d21;--mut:#6b7280;--line:#e3e6ea;--card:#fff;
      --ok:#127a3e;--warn:#a15c00;--bad:#b3261e;--acc:#0b5cad}
@media(prefers-color-scheme:dark){:root{--bg:#14171a;--fg:#e8eaed;--mut:#9aa0a6;
  --line:#2a2f35;--card:#1c2024;--ok:#4ade80;--warn:#fbbf24;--bad:#f87171;--acc:#60a5fa}}
*{box-sizing:border-box}
body{margin:0;padding:1.5rem;background:var(--bg);color:var(--fg);
  font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
#app{max-width:60rem;margin:0 auto}
header{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.5rem}
h1{font-size:1.4rem;margin:0 0 1rem}h2{font-size:1.1rem;margin:2rem 0 .5rem}
.who{color:var(--mut);font-size:.9rem}
form{display:grid;gap:.75rem;max-width:22rem}
label{display:grid;gap:.25rem;font-size:.9rem;color:var(--mut)}
input,select{padding:.55rem;border:1px solid var(--line);border-radius:6px;
  background:var(--card);color:var(--fg);font-size:1rem}
button{padding:.55rem 1rem;border:0;border-radius:6px;background:var(--acc);
  color:#fff;font-size:.95rem;cursor:pointer}
button:disabled{opacity:.5;cursor:not-allowed}
button.link{background:none;color:var(--acc);padding:0;text-decoration:underline}
.err{color:var(--bad);font-size:.9rem;min-height:1.2em}
.banner{padding:.6rem .8rem;border-radius:6px;background:var(--card);
  border:1px solid var(--line);font-size:.9rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:8px;
  padding:1rem;margin:.75rem 0}
.card h3{margin:0 0 .25rem;font-size:1.05rem}
.pill{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.78rem;
  font-weight:600}
.pill.on{background:color-mix(in srgb,var(--ok) 18%,transparent);color:var(--ok)}
.pill.off{background:color-mix(in srgb,var(--bad) 18%,transparent);color:var(--bad)}
.pill.maint{background:color-mix(in srgb,var(--warn) 20%,transparent);color:var(--warn)}
.meta{color:var(--mut);font-size:.85rem}
.setrow{display:flex;gap:.5rem;align-items:end;flex-wrap:wrap;margin-top:.75rem}
.setrow label{flex:1 1 9rem}
table{width:100%;border-collapse:collapse;font-size:.88rem;display:block;overflow-x:auto}
th,td{text-align:left;padding:.4rem .6rem;border-bottom:1px solid var(--line);
  white-space:nowrap}
th{color:var(--mut);font-weight:600}
