:root{--bg:#f5f3ee;--card:#fff;--ink:#1d2a2a;--mut:#6b7777;--acc:#1f6f5c;--line:#e1ddd2;--bad:#b3392f;--good:#1f6f5c}
@media(prefers-color-scheme:dark){:root{--bg:#141a1a;--card:#1d2626;--ink:#e8eeee;--mut:#98a6a6;--acc:#4cb89d;--line:#2e3b3b;--bad:#e5766c;--good:#4cb89d}}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 system-ui,Segoe UI,sans-serif}
.top{display:flex;justify-content:space-between;padding:.8rem 1.2rem;background:var(--card);border-bottom:1px solid var(--line)}
a{color:var(--acc)}.wrap{max-width:1000px;margin:1.2rem auto;padding:0 1rem}.narrow{max-width:380px;margin:12vh auto}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:1rem 1.2rem;margin:0 0 1rem}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.grid .card{margin:0}
.locked{opacity:.6}.muted{color:var(--mut)}.ok{color:var(--good)}.err,.bad h2{color:var(--bad)}.good h2{color:var(--good)}
label{display:block;margin:.6rem 0;font-size:.9rem}input,select{padding:.5rem;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink);font:inherit;max-width:100%}
label input,label select{display:block;width:100%}button,.btn{padding:.5rem 1rem;border:0;border-radius:6px;background:var(--acc);color:#fff;font:inherit;cursor:pointer;text-decoration:none;display:inline-block}
button.ghost{background:none;color:var(--acc);border:1px solid var(--line)}.row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.between{justify-content:space-between}.sub{border-top:1px solid var(--line);padding-top:.5rem;margin-top:.5rem}
.tabs{display:flex;gap:.4rem;margin-bottom:1rem}.tabs button{background:var(--card);color:var(--ink);border:1px solid var(--line)}.tabs .on{background:var(--acc);color:#fff}
table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{text-align:left;padding:.4rem;border-bottom:1px solid var(--line)}.card:has(table){overflow-x:auto}h2{margin:.2rem 0}
