:root{--bg:#f6f8f8;--surface:#ffffff;--text:#13201f;--muted:#5a6b69;--line:#dde5e4;--accent:#0f766e;--accent-text:#ffffff;--ok:#15803d;--warn:#b45309;--danger:#b91c1c;--danger-text:#ffffff;--radius:12px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0d1413;--surface:#152020;--text:#e8efee;--muted:#93a6a3;--line:#263534;--accent:#2dd4bf;--accent-text:#062a26;--ok:#4ade80;--warn:#fbbf24;--danger:#ef4444;color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);line-height:1.5}a{color:var(--accent)}h1,h2,h3{line-height:1.2;margin:0 0 .5em}.wrap{max-width:1080px;margin:0 auto;padding:0 16px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.stack{display:grid;grid-gap:16px;gap:16px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.grid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.muted{color:var(--muted)}label{display:grid;grid-gap:4px;gap:4px;font-size:.9rem;font-weight:500}input,select,textarea{font:inherit;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text);width:100%}.button,button{font:inherit;font-weight:600;padding:10px 16px;border-radius:8px;border:1px solid transparent;background:var(--accent);color:var(--accent-text);cursor:pointer;text-decoration:none;display:inline-block}button.secondary{background:transparent;color:var(--text);border-color:var(--line)}button.danger{background:var(--danger);color:var(--danger-text)}button:disabled{opacity:.6;cursor:default}.badge{display:inline-block;font-size:.8rem;font-weight:600;padding:2px 8px;border-radius:999px;border:1px solid}.badge.ok{color:var(--ok)}.badge.off{color:var(--muted)}.badge.danger{color:var(--danger)}.nav{border-bottom:1px solid var(--line);background:var(--surface)}.nav .wrap{display:flex;gap:20px;align-items:center;min-height:56px;flex-wrap:wrap}.nav a{color:var(--text);text-decoration:none;font-weight:500}.nav .brand{font-weight:800;color:var(--accent)}.error{color:var(--danger)}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:8px 4px;border-bottom:1px solid var(--line)}.qr{width:160px;height:160px;flex:none;border-radius:8px}