:root{--bg:#f6f7f9;--fg:#1b1f24;--muted:#65707d;--line:#d9dee4;--card:#fff;--accent:#1f5fbf;--ok:#1a7f37;--bad:#b42318}
@media (prefers-color-scheme:dark){:root{--bg:#14171b;--fg:#e6e9ed;--muted:#98a2ae;--line:#2b3138;--card:#1c2026;--accent:#6ea8fe;--ok:#3fb950;--bad:#f97066}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
h1{font-size:1.4rem;margin:0 0 .25rem}
.muted{color:var(--muted)}
.login{max-width:340px;margin:12vh auto;padding:0 16px}
.login form{display:grid;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:20px}
label{display:grid;gap:4px;font-size:.9rem}
input[type=text],input[type=password]{padding:9px 10px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--fg);font:inherit}
button{padding:9px 12px;border:0;border-radius:6px;background:var(--accent);color:#fff;font:inherit;cursor:pointer}
button.link{background:none;color:var(--accent);padding:0}
.error{margin:0;color:var(--bad)}
.shell{display:grid;grid-template-columns:200px 1fr;grid-template-rows:auto 1fr;min-height:100vh}
.top{grid-column:1/3;display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--card);border-bottom:1px solid var(--line)}
.top .spacer{flex:1}.ver,.who{color:var(--muted)}
.inline{display:inline;margin:0}
.side{display:flex;flex-direction:column;padding:12px;gap:2px;border-right:1px solid var(--line);background:var(--card)}
.side a,.side .disabled{padding:7px 10px;border-radius:6px;text-decoration:none;color:var(--fg)}
.side a.active{background:var(--bg);font-weight:600}
.side .disabled{color:var(--muted);cursor:not-allowed}
.content{padding:20px 24px}
.status{border-collapse:collapse;margin-top:16px;background:var(--card);border:1px solid var(--line);border-radius:8px;width:100%;max-width:640px}
.status th,.status td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--line)}
.status th{width:200px;font-weight:600}
.badge{display:inline-block;padding:1px 8px;border-radius:10px;font-size:.8rem;font-weight:600;margin-right:6px;border:1px solid currentColor}
.badge.ok{color:var(--ok)}.badge.bad{color:var(--bad)}
@media (max-width:640px){.shell{grid-template-columns:1fr}.top{grid-column:1}.side{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line)}.status th{width:auto}}
h2{font-size:1.05rem;margin:24px 0 8px}
.badge.warn{color:#9a6700}
@media (prefers-color-scheme:dark){.badge.warn{color:#e3b341}}
.filters{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:end;margin:14px 0}
.filters label{font-size:.8rem}
.filters input[type=text],select{padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--fg);font:inherit}
.tablewrap{overflow-x:auto}
.grid{border-collapse:collapse;width:100%;background:var(--card);border:1px solid var(--line)}
.grid th,.grid td{text-align:left;padding:7px 10px;border-bottom:1px solid var(--line);font-size:.9rem;vertical-align:top}
.grid th{font-weight:600;white-space:nowrap}
.grid td.notes{max-width:340px;color:var(--muted);word-break:break-word}
.pager{display:flex;gap:14px;align-items:center}
.tag{display:inline-block;padding:0 7px;border:1px solid var(--line);border-radius:10px;font-size:.8rem}
.prewrap{white-space:pre-wrap}
.notice{padding:8px 12px;border-radius:6px;border:1px solid currentColor;margin:12px 0}
.notice.ok{color:var(--ok)}.notice.bad{color:var(--bad)}.notice.warn{color:#9a6700}
.syncform{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:12px 0}
.inlinelabel{display:inline-flex;grid-auto-flow:column;align-items:center;gap:6px}
button[disabled]{opacity:.5;cursor:not-allowed}
details.raw{margin:24px 0}details.raw pre{max-height:480px;overflow:auto;background:var(--card);border:1px solid var(--line);padding:12px;font-size:.8rem}
code{font-size:.85em}
.credform{display:grid;gap:12px;max-width:560px;margin:8px 0 16px}
.credform select,.credform input[type=password]{padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--fg);font:inherit}
.actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin:10px 0}
