:root{--bg: #fafafa;--fg: #111;--muted: #666;--card: #fff;--border: #e3e3e3;--accent: #0a62ff;--danger: #c62828;--ok: #2e7d32;--warn: #b26a00;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;color-scheme:light dark}@media (prefers-color-scheme: dark){:root{--bg: #121212;--fg: #eee;--muted: #999;--card: #1c1c1c;--border: #2c2c2c;--accent: #5b9bff}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg)}a{color:var(--accent);text-decoration:none}.topbar{display:flex;align-items:center;gap:1.25rem;padding:.75rem 1.25rem;border-bottom:1px solid var(--border);background:var(--card)}.topbar nav{display:flex;gap:1rem}.topbar nav a{color:var(--muted)}.topbar nav a.active{color:var(--fg);font-weight:600}.brand{font-weight:700;color:var(--fg);letter-spacing:-.02em}.spacer{flex:1}.page{max-width:1040px;margin:0 auto;padding:1.5rem 1.25rem}.muted{color:var(--muted)}.error{color:var(--danger)}.row{display:flex;align-items:center;gap:.75rem}.card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:1rem 1.25rem;margin-bottom:.75rem}.card h3{margin:0 0 .25rem;font-size:1.05rem}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.75rem}button,.btn{font:inherit;padding:.45rem .9rem;border-radius:7px;border:1px solid var(--border);background:var(--card);color:var(--fg);cursor:pointer}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.danger{color:var(--danger);border-color:var(--danger)}button.link{border:none;background:none;color:var(--accent);padding:0}button:disabled{opacity:.5;cursor:default}input,select{font:inherit;padding:.45rem .6rem;border-radius:7px;border:1px solid var(--border);background:var(--card);color:var(--fg)}label{display:block;font-size:.85rem;color:var(--muted);margin-bottom:.25rem}.field{margin-bottom:.9rem}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.5rem .6rem;border-bottom:1px solid var(--border);vertical-align:top}th{font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.badge{display:inline-block;font-size:.75rem;padding:.1rem .5rem;border-radius:999px;border:1px solid var(--border);color:var(--muted)}.badge.ok{color:var(--ok);border-color:var(--ok)}.badge.warn{color:var(--warn);border-color:var(--warn)}.badge.off{color:var(--danger);border-color:var(--danger)}.login{max-width:380px;margin:12vh auto;text-align:center}.login h1{letter-spacing:-.03em}code{font-size:.9em;background:var(--bg);padding:.1em .35em;border-radius:4px}pre{background:var(--bg);padding:.75rem;border-radius:7px;overflow:auto;font-size:.85rem}
