:root{--bg:#f1e8d4;--card:#fbf6ea;--ink:#2b2118;--accent:#5b6b2f;--line:#c9b98f;--danger:#8c2f2f}
@media (prefers-color-scheme:dark){:root{--bg:#1d1a14;--card:#27231b;--ink:#eadfc6;--accent:#a3b560;--line:#4a4130;--danger:#d27a7a}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 Georgia,'Times New Roman',serif}
header{display:flex;justify-content:space-between;align-items:center;padding:.8rem 1.2rem;border-bottom:2px solid var(--line)}
header a.brand{font-size:1.4rem;font-weight:bold;color:var(--accent);text-decoration:none}
main{max-width:900px;margin:1.5rem auto;padding:0 1rem}
a{color:var(--accent)}
.card{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:1rem 1.2rem;margin-bottom:1rem}
h1,h2{margin:.2em 0 .5em}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:.35rem .5rem;border-bottom:1px solid var(--line)}
.grid{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}
.stat{text-align:center;border:1px solid var(--line);border-radius:6px;padding:.4rem}
.stat b{display:block;font-size:1.5rem}
.stat small{text-transform:uppercase;letter-spacing:.05em}
label{display:block;font-size:.85rem;margin-bottom:.15rem}
input,select,textarea{width:100%;padding:.4rem;font:inherit;color:inherit;background:var(--bg);border:1px solid var(--line);border-radius:4px}
textarea{min-height:6rem}
button,.btn{background:var(--accent);color:#fff;border:0;border-radius:4px;padding:.45rem .9rem;font:inherit;cursor:pointer;text-decoration:none;display:inline-block}
button.danger{background:var(--danger)}
button.link{background:none;color:var(--danger);padding:0}
.flash{background:var(--card);border-left:4px solid var(--accent);padding:.6rem 1rem;margin-bottom:1rem}
.row{display:flex;gap:.5rem;align-items:end;flex-wrap:wrap}
.pre{white-space:pre-wrap}
.muted{opacity:.7}
