*{box-sizing:border-box}[hidden]{display:none!important}
:root{--accent:#2563eb;--bg:#f4f5f7;--fg:#1c1f26;--muted:#6b7280;--card:#fff;--line:#e5e7eb;--pos:#047857;--neg:#b91c1c}
body{margin:0;font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--fg)}
a{color:var(--accent)}
.top{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;align-items:center;padding:.75rem 1rem;background:var(--accent);color:#fff}
.top a,.top .link{color:#fff;text-decoration:none}.brand{font-weight:700;font-size:1.2rem}
.top nav{display:flex;flex-wrap:wrap;gap:.25rem 1rem;align-items:center}
main{max-width:1050px;margin:1rem auto;padding:0 1rem 3rem}
h1{font-size:1.6rem;margin:.5rem 0 1rem}h2{font-size:1.15rem;margin-top:0}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:1rem;margin-bottom:1rem}
.narrow{max-width:480px;margin-left:auto;margin-right:auto}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1rem}
.stat span{display:block;color:var(--muted);font-size:.9rem}.stat strong{font-size:1.5rem}.stat small{display:block;color:var(--muted)}
.pos{color:var(--pos)}.neg{color:var(--neg)}.warn{color:#b45309}.muted{color:var(--muted);font-weight:400}
label{display:block;margin-bottom:.75rem;font-weight:600;font-size:.92rem}
label.check{font-weight:400}
input,select,textarea{display:block;width:100%;padding:.55rem .65rem;margin-top:.25rem;border:1px solid #cbd5e1;border-radius:6px;font:inherit;background:#fff}
input[type=checkbox]{display:inline;width:auto;margin-right:.4rem}input[type=color]{height:2.6rem;padding:.2rem}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}
.row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.between{justify-content:space-between}
form.inline{display:inline;margin:0}
.btn{display:inline-block;background:var(--accent);color:#fff;border:1px solid var(--accent);padding:.5rem 1rem;border-radius:6px;font:inherit;font-weight:600;text-decoration:none;cursor:pointer}
.btn.ghost{background:transparent;color:var(--accent)}.btn.danger{background:var(--neg);border-color:var(--neg);color:#fff}
.btn.small{padding:.2rem .6rem;font-size:.85rem}
button.link{background:none;border:0;font:inherit;cursor:pointer;padding:0}
.flash{padding:.7rem 1rem;border-radius:8px;margin-bottom:1rem;border:1px solid}
.flash.ok{background:#ecfdf5;border-color:#a7f3d0}.flash.error{background:#fef2f2;border-color:#fecaca}
.tablewrap{overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:10px;margin-bottom:1rem}
table{width:100%;border-collapse:collapse}th,td{padding:.55rem .75rem;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:.82rem;color:var(--muted);text-transform:uppercase}.num{text-align:right;white-space:nowrap}
.tag{display:inline-block;padding:.05rem .5rem;border-radius:999px;font-size:.8rem;background:#e5e7eb}
.tag.give{background:#d1fae5}.tag.take{background:#fee2e2}.st-open{background:#fef3c7}.st-partial{background:#dbeafe}.st-done{background:#d1fae5}
.filters{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end;margin-bottom:1rem}.filters label{margin:0}
.empty{padding:1.5rem;text-align:center;color:var(--muted);background:var(--card);border:1px dashed #cbd5e1;border-radius:10px;margin-bottom:1rem}
.preview{padding:.75rem 1rem;background:#eff6ff;border-radius:8px;margin-bottom:1rem;min-height:2.6rem}
.subnav{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}
dl{display:grid;grid-template-columns:max-content 1fr;gap:.35rem 1rem;margin:0}dt{color:var(--muted)}dd{margin:0}
.code{font-size:1.6rem;letter-spacing:.2em}
@media(max-width:640px){.grid2{grid-template-columns:1fr}dl{grid-template-columns:1fr}.num{white-space:normal}}
