:root{--bg:#0f1419;--card:#1a2129;--line:#2b3640;--text:#e6edf3;--muted:#8b98a5;
--accent:#2f81f7;--ok:#1f6f43;--okbg:#10301f;--err:#8b1f1f;--errbg:#2d1212;--danger:#e5534b}
*{box-sizing:border-box}
body{margin:0;font:15px/1.5 system-ui,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text)}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
code{background:#0c1117;border:1px solid var(--line);border-radius:4px;padding:1px 5px;font-size:.9em}
.topbar{display:flex;justify-content:space-between;align-items:center;padding:12px 24px;
background:var(--card);border-bottom:1px solid var(--line)}
.brand{font-weight:700}
.topbar nav a{margin-left:18px;color:var(--text)}
.topbar nav a.logout{color:var(--muted)}
.wrap{max-width:1000px;margin:24px auto;padding:0 16px}
.foot{text-align:center;color:var(--muted);font-size:.85em;padding:24px}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:20px 22px;margin-bottom:18px}
.grid{display:grid;grid-template-columns:1fr 360px;gap:18px;align-items:start}
@media(max-width:760px){.grid{grid-template-columns:1fr}}
h1{font-size:1.3rem;margin:.1rem 0 1rem}h2{font-size:1.05rem;margin:1.4rem 0 .6rem}
.muted{color:var(--muted)}
.login{max-width:340px;margin:8vh auto}
label{display:block;margin:.7rem 0;font-size:.9rem;color:var(--muted)}
input,select{width:100%;margin-top:4px;padding:9px 10px;background:#0c1117;color:var(--text);
border:1px solid var(--line);border-radius:6px;font:inherit}
label.checkbox,label.checkbox input{display:inline;width:auto;margin-right:6px}
.suffixed{display:flex;align-items:center;gap:4px;color:var(--muted)}
.suffixed input{margin-top:0}
button{margin-top:12px;padding:9px 16px;background:var(--accent);color:#fff;border:0;
border-radius:6px;font:inherit;cursor:pointer}button:hover{filter:brightness(1.1)}
button.link{margin:0;padding:0 6px;background:none;color:var(--accent);font-size:.85em}
button.link.danger{color:var(--danger)}
.inline{display:inline}
table{width:100%;border-collapse:collapse}
table.list th,table.list td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line);font-size:.9rem}
table.list th{color:var(--muted);font-weight:600}
tr.child td{color:var(--muted)}
.actions{text-align:right;white-space:nowrap}
table.kv th{text-align:left;color:var(--muted);font-weight:600;padding:6px 14px 6px 0;vertical-align:top;white-space:nowrap}
table.kv td{padding:6px 0}
.flash{padding:11px 14px;border-radius:8px;margin-bottom:16px;font-size:.92rem}
.flash-ok{background:var(--okbg);border:1px solid var(--ok)}
.flash-err{background:var(--errbg);border:1px solid var(--err)}
.sheet{border-color:var(--accent)}
.reveal{user-select:all}
.hidden{display:none}
