:root{--bg:#f6f7f9;--fg:#1c2330;--mut:#6b7587;--line:#dfe3ea;--pri:#1d5fd1;--card:#fff;--bad:#c0392b;--ok:#1e8e4e}
@media(prefers-color-scheme:dark){:root{--bg:#12161d;--fg:#e6e9ef;--mut:#95a0b3;--line:#2b3340;--pri:#6aa1ff;--card:#1a202a;--bad:#ff7a6b;--ok:#4cc486}}
*{box-sizing:border-box}body{margin:0;font:14px/1.45 system-ui,sans-serif;background:var(--bg);color:var(--fg)}
button,input,select,textarea{font:inherit;color:inherit}
button{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:5px 10px;cursor:pointer}
button.pri{background:var(--pri);color:#fff;border-color:var(--pri)}button.bad{color:var(--bad)}button:disabled{opacity:.5;cursor:default}
input,select,textarea{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:5px 8px;width:100%}
.login{max-width:340px;margin:12vh auto;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:24px;display:grid;gap:10px}
.shell{display:grid;grid-template-columns:260px 1fr;height:100vh}
nav{border-right:1px solid var(--line);background:var(--card);overflow:auto;padding:10px}
nav h4{margin:14px 6px 4px;font-size:12px;color:var(--mut);text-transform:uppercase;letter-spacing:.04em}
nav a{display:block;padding:5px 8px;border-radius:6px;color:inherit;text-decoration:none;cursor:pointer}
nav a:hover{background:var(--bg)}nav a.on{background:var(--pri);color:#fff}
main{overflow:auto;padding:16px}
.bar{display:flex;gap:8px;align-items:center;margin-bottom:10px;flex-wrap:wrap}.bar h2{margin:0 auto 0 0;font-size:18px}.bar input{width:220px}
.tw{overflow:auto;border:1px solid var(--line);border-radius:8px;background:var(--card);max-height:calc(100vh - 110px)}
table{border-collapse:collapse;width:100%}th,td{padding:6px 10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;max-width:280px;overflow:hidden;text-overflow:ellipsis}
th{position:sticky;top:0;background:var(--card);font-weight:600;color:var(--mut)}tr:hover td{background:var(--bg);cursor:pointer}
.drawer{position:fixed;right:0;top:0;bottom:0;width:min(520px,100%);background:var(--card);border-left:1px solid var(--line);padding:16px;overflow:auto;box-shadow:-8px 0 24px #0002}
.fld{margin:10px 0}.fld label{display:block;font-size:12px;color:var(--mut);margin-bottom:3px}.ro{opacity:.75}
.err{color:var(--bad)}.tag{display:inline-block;padding:1px 7px;border-radius:10px;background:var(--bg);border:1px solid var(--line);font-size:12px;margin:1px}
.grid{display:grid;gap:10px}.mut{color:var(--mut)}.cell-ok{color:var(--ok);font-weight:700}
.pm td,.pm th{text-align:center}.pm td:first-child,.pm th:first-child{text-align:left}
details{margin:8px 0}summary{cursor:pointer}
