:root{--bg:#f6f4ef;--card:#fff;--ink:#1f2328;--muted:#5d6670;--line:#ddd8cc;--accent:#7a1f3d;--accent-ink:#fff;--ok:#1e6b3a;--err:#a1262d;--info:#1d4f7c}
@media (prefers-color-scheme:dark){:root{--bg:#17181a;--card:#212326;--ink:#eceae4;--muted:#a3a8ae;--line:#383b40;--accent:#c4577b;--accent-ink:#17181a;--ok:#6fcf97;--err:#ff8a8f;--info:#7fb7e8}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.top{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 24px;background:var(--card);border-bottom:1px solid var(--line);flex-wrap:wrap}
.brand{font-weight:700;color:var(--accent);text-decoration:none;font-size:1.15rem}
.top nav{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.top a{color:var(--ink)}
main{max-width:980px;margin:24px auto;padding:0 16px}
h1{font-size:1.5rem;margin:0 0 16px}h1 small{color:var(--muted);font-weight:400;font-size:1rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:24px;margin:16px 0}
.narrow{max-width:460px;margin-left:auto;margin-right:auto}
label{display:block;margin:0 0 14px;font-weight:600}
label input:not([type=checkbox]){display:block;width:100%;margin-top:6px;padding:10px 12px;font:inherit;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink)}
label.check{font-weight:400}
button{font:inherit;padding:10px 18px;border:0;border-radius:6px;background:var(--accent);color:var(--accent-ink);cursor:pointer}
button.secondary{background:transparent;color:var(--ink);border:1px solid var(--line)}
button.danger{background:transparent;color:var(--err);border:1px solid var(--err)}
button.link{background:none;color:var(--ink);padding:0;text-decoration:underline}
button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid var(--info);outline-offset:2px}
form.inline{display:inline}
.flash{padding:12px 16px;border-radius:6px;margin:0 0 16px;border:1px solid var(--line);background:var(--card);word-break:break-word}
.flash.ok{border-color:var(--ok);color:var(--ok)}.flash.error{border-color:var(--err);color:var(--err)}.flash.info{border-color:var(--info);color:var(--info)}
.menu{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.menu li a{display:block;padding:16px 18px;background:var(--card);border:1px solid var(--line);border-radius:8px;color:var(--ink);text-decoration:none}
.menu li a:hover{border-color:var(--accent)}
.menu li.menu a{border-left:4px solid var(--accent)}
.grid{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line)}
.grid th,.grid td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.grid th{color:var(--muted);font-weight:600;font-size:.9rem}
.actions form{margin:0 6px 6px 0}.actions button{padding:6px 10px;font-size:.9rem}
.hint{color:var(--muted);font-size:.9rem}
@media (max-width:640px){.top{padding:10px 16px}.grid{display:block;overflow-x:auto}}
.button{display:inline-block;padding:10px 18px;border-radius:6px;background:var(--accent);color:var(--accent-ink);text-decoration:none}
.muted{color:var(--muted);margin-left:8px}
.table-wrap{overflow-x:auto}
table.grid{width:100%;border-collapse:collapse;background:var(--card)}table.grid th,table.grid td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left}
textarea{display:block;width:100%;margin-top:6px;padding:10px 12px;font:inherit;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink)}
.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 12px}.filters input,.filters select,select{font:inherit;padding:9px 10px;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--ink)}
label select{display:block;width:100%;margin-top:6px}
td.low{color:var(--err);font-weight:600}
button.secondary{background:transparent;color:var(--ink);border:1px solid var(--line)}
.backlink{float:right;margin-top:6px;margin-left:12px}
form.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}
form.cols fieldset{border:1px solid var(--line);border-radius:8px;padding:12px 16px;margin:0}form.cols legend{font-weight:600;padding:0 6px}
form.cols .wide{grid-column:1/-1}
.legend{display:block;font-weight:600;margin:8px 0 4px}
td.num,th.num{text-align:right}
.pager a{margin-right:16px}
