
:root{--bg:#faf7f2;--card:#fff;--ink:#3b3530;--muted:#8a8178;--line:#ebe4da;--accent:#8f74b8;--accent-ink:#fff;
--sage:#7f9c7a;--sage-bg:#e9f1e6;--rose:#c46b6b;--rose-bg:#f8e7e5;--sand:#c9a253;--sand-bg:#f7efdc;--lav-bg:#efe9f7;--sky-bg:#e5eef5;--sky:#5b84a6}
@media (prefers-color-scheme:dark){:root{--bg:#1f1c1a;--card:#2a2623;--ink:#ece6df;--muted:#a59b91;--line:#3b3531;--accent:#b49ad8;--accent-ink:#1f1c1a;
--sage-bg:#2c3a2a;--rose-bg:#432b2a;--sand-bg:#40371f;--lav-bg:#352d42;--sky-bg:#263441}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:var(--accent)}
.top{display:flex;align-items:center;gap:16px;padding:10px 16px;background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5;flex-wrap:wrap}
.brand{font-weight:700;text-decoration:none;color:var(--ink);font-size:17px}.brand span{color:var(--accent);font-weight:500}
.top nav{display:flex;gap:2px;overflow-x:auto;flex:1;scrollbar-width:none}
.top nav a{padding:6px 10px;border-radius:8px;text-decoration:none;color:var(--muted);white-space:nowrap}
.top nav a.on,.top nav a:hover{background:var(--lav-bg);color:var(--ink)}
.logout{margin:0}
main{max-width:1100px;margin:0 auto;padding:20px 16px 60px}main.wide{max-width:1400px}
h1{font-size:24px;margin:0 0 4px}h2{font-size:18px;margin:28px 0 10px}h3{font-size:15px;margin:16px 0 6px}
.sub{color:var(--muted);margin:0 0 18px}.muted{color:var(--muted)}.small{font-size:13px}
.flash{padding:10px 14px;border-radius:10px;margin-bottom:16px}.flash.ok{background:var(--sage-bg)}.flash.err{background:var(--rose-bg)}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:16px}
.grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
.stat{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;text-decoration:none;color:inherit;display:block}
.stat b{display:block;font-size:28px;line-height:1.1}.stat span{color:var(--muted);font-size:13px}
.stat.warn{background:var(--sand-bg)}.stat.bad{background:var(--rose-bg)}.stat.good{background:var(--sage-bg)}
.cols{display:grid;gap:16px;grid-template-columns:1fr}@media(min-width:860px){.cols{grid-template-columns:3fr 2fr}}
.tablewrap{overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:14px}
table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600;background:var(--bg)}
tr:last-child td{border-bottom:0}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;background:var(--lav-bg);white-space:nowrap}
.badge.good{background:var(--sage-bg)}.badge.warn{background:var(--sand-bg)}.badge.bad{background:var(--rose-bg)}.badge.info{background:var(--sky-bg)}.badge.dim{background:var(--line)}
form.inline{display:inline}
label{display:block;font-size:13px;color:var(--muted);margin:10px 0 4px}
input,select,textarea{font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:9px;padding:8px 10px;width:100%}
input[type=checkbox]{width:auto}input.qty{width:80px;text-align:right}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.row>*{flex:1;min-width:140px}.row>.shrink{flex:0 0 auto;min-width:0}
button,.btn{font:inherit;display:inline-block;padding:8px 14px;border-radius:9px;border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);cursor:pointer;text-decoration:none;white-space:nowrap}
button.ghost,.btn.ghost{background:transparent;color:var(--accent)}button.danger{background:var(--rose);border-color:var(--rose);color:#fff}
button.link{border:0;background:none;color:var(--muted);padding:0;font-size:13px}
button:disabled{opacity:.45;cursor:not-allowed}.big{font-size:18px;padding:12px 20px}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}.tabs a{padding:5px 12px;border-radius:999px;background:var(--card);border:1px solid var(--line);text-decoration:none;color:var(--ink);font-size:14px}.tabs a.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.thumb{width:40px;height:40px;border-radius:8px;object-fit:cover;background:var(--line)}
.packline{display:flex;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:12px;margin-bottom:8px;background:var(--card)}
.packline.done{background:var(--sage-bg);border-color:var(--sage)}.packline .count{font-size:22px;font-weight:700;margin-left:auto;font-variant-numeric:tabular-nums}
.scan{font-size:20px;padding:14px}
.timeline{list-style:none;padding:0;margin:0}.timeline li{padding:8px 0 8px 18px;border-left:2px solid var(--line);position:relative}
.timeline li:before{content:"";position:absolute;left:-6px;top:13px;width:10px;height:10px;border-radius:50%;background:var(--accent)}
.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 14px}.kv dt{color:var(--muted)}.kv dd{margin:0}
details summary{cursor:pointer;color:var(--accent);margin:8px 0}
.tablewrap .row{flex-wrap:nowrap}.tablewrap .row>*{min-width:0}
@media(max-width:700px){.top{gap:8px}.top nav{order:3;flex-basis:100%}.logout{margin-left:auto}main{padding:14px 16px 60px}th,td{padding:8px}}
@media print{.top,.noprint,.flash{display:none!important}body{background:#fff;color:#000}main{padding:0}.card,.tablewrap{border:0}}
