:root { --ink:#1f1a17; --muted:#6b625c; --bg:#f7f3ee; --card:#fff; --line:#e4dcd3; --brand:#a0522d; --ok:#2e7d32; --bad:#b3261e; --warn:#8a5a00; --warnbg:#fff4d6; }
* { box-sizing:border-box; }
body { margin:0; font:16px/1.45 system-ui, -apple-system, "Segoe UI", sans-serif; color:var(--ink); background:var(--bg); }
header.top { display:flex; align-items:center; gap:16px; padding:10px 20px; background:var(--card); border-bottom:1px solid var(--line); flex-wrap:wrap; }
.brand { font-weight:700; color:var(--brand); text-decoration:none; font-size:18px; }
nav { margin-left:auto; display:flex; gap:14px; align-items:center; }
nav a { color:var(--ink); text-decoration:none; }
nav a:hover { text-decoration:underline; }
main { max-width:1200px; margin:0 auto; padding:20px 16px; }
footer { text-align:center; color:var(--muted); font-size:12px; padding:20px; }
h1 { font-size:24px; margin:0 0 14px; }
h2 { font-size:18px; margin:0 0 10px; }
h3 { font-size:15px; margin:14px 0 6px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:8px; padding:16px 18px; margin-bottom:16px; }
.narrow { max-width:460px; margin:40px auto; }
.grid2 { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:16px; }
@media (max-width:800px) { .grid2 { grid-template-columns:minmax(0,1fr); } }
label { display:block; margin:10px 0; font-weight:600; }
label input { display:block; width:100%; margin-top:4px; font:inherit; font-size:16px; padding:9px 10px; border:1px solid var(--line); border-radius:6px; }
select { max-width:100%; font:inherit; font-size:16px; padding:6px 8px; border:1px solid var(--line); border-radius:6px; }
button { font:inherit; font-size:15px; padding:8px 14px; border-radius:6px; border:1px solid var(--line); background:#fff; cursor:pointer; min-height:36px; }
button.primary { background:var(--brand); color:#fff; border-color:var(--brand); }
button.link { border:none; background:none; padding:0; color:var(--ink); text-decoration:underline; min-height:0; }
form.inline { display:inline; }
.muted { color:var(--muted); }
.ok { color:var(--ok); }
.bad { color:var(--bad); }
.notice { padding:10px 14px; border-radius:6px; margin:0 0 14px; border:1px solid var(--line); background:#fff; }
.notice.good { border-color:var(--ok); color:var(--ok); }
.notice.bad { border-color:var(--bad); color:var(--bad); }
.notice.warn { border-color:var(--warn); background:var(--warnbg); color:var(--warn); }
.pill { display:inline-block; font-size:12px; padding:1px 8px; border-radius:999px; border:1px solid var(--line); background:#faf7f3; vertical-align:middle; }
.pill.bad { color:var(--bad); border-color:var(--bad); }
.pill.warn { color:var(--warn); border-color:var(--warn); background:var(--warnbg); }
.pill.in_production { color:#1e4fb3; border-color:#1e4fb3; }
.pill.shipped { color:var(--ok); border-color:var(--ok); }
.fakepill { color:var(--warn); border-color:var(--warn); background:var(--warnbg); font-weight:600; }
.toolbar { display:flex; align-items:center; gap:16px; margin-bottom:8px; flex-wrap:wrap; }
.tabs a { display:inline-block; padding:6px 12px; border-radius:6px; text-decoration:none; color:var(--ink); }
.tabs a.on { background:var(--card); border:1px solid var(--line); font-weight:600; }
.toolbar form { margin-left:auto; }
.lastrun { margin:0 0 12px; font-size:14px; }
.scrollx { overflow-x:auto; background:var(--card); border:1px solid var(--line); border-radius:8px; }
table.orders { width:100%; border-collapse:collapse; font-size:14px; }
table.orders th, table.orders td { text-align:left; padding:8px 10px; border-bottom:1px solid var(--line); vertical-align:top; }
table.orders th { background:#faf7f3; font-weight:600; white-space:nowrap; }
table.orders tr.late td { background:#fff5f4; }
table.kv { border-collapse:collapse; font-size:14px; margin-top:6px; }
table.kv th { text-align:left; font-weight:600; padding:3px 12px 3px 0; color:var(--muted); white-space:nowrap; }
table.kv td { padding:3px 0; }
dl { display:grid; grid-template-columns:max-content 1fr; gap:6px 14px; margin:0; }
dt { color:var(--muted); }
dd { margin:0; }
.item { padding:10px 0; border-top:1px solid var(--line); }
.item:first-of-type { border-top:none; padding-top:0; }
.name { font-size:20px; letter-spacing:.04em; }
.qr { background:#fff; display:inline-block; padding:8px; border:1px solid var(--line); border-radius:6px; }
.qr svg { width:220px; height:220px; display:block; }
code { background:#f1ece6; padding:2px 5px; border-radius:4px; font-size:14px; }

.subnav { margin-bottom:14px; }
.preview { margin:10px 0; }
.preview svg { border:1px solid var(--line); border-radius:6px; }
.cncblock { margin-top:10px; padding:10px 12px; background:#faf7f3; border:1px solid var(--line); border-radius:6px; }
a.btn { display:inline-block; font-size:15px; padding:8px 14px; border-radius:6px; border:1px solid var(--brand); background:var(--brand); color:#fff; text-decoration:none; margin-right:6px; }
form.row { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
form.row input[name=name] { font:inherit; font-size:16px; padding:9px 10px; border:1px solid var(--line); border-radius:6px; width:260px; }
label.inline { display:inline; font-weight:400; }
table.edit input { width:100%; min-width:60px; font:inherit; font-size:15px; padding:5px 6px; border:1px solid var(--line); border-radius:4px; }
table.edit input[type=checkbox] { width:auto; }
table.edit input[type=number] { min-width:70px; }
button.sm { font-size:13px; padding:4px 9px; min-height:28px; }
button.danger { color:var(--bad); border-color:var(--bad); }
.lettergrid { display:grid; grid-template-columns:repeat(auto-fill, minmax(230px, 1fr)); gap:12px; }
.lettercard { border:1px solid var(--line); border-radius:8px; padding:10px; background:#fff; }
.lettercard.placeholder { background:var(--warnbg); }
.lettercard .thumb { text-align:center; }
.lettercard .meta { display:flex; gap:8px; align-items:center; margin:6px 0; flex-wrap:wrap; }
.lettercard form.upl { display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
.lettercard input[type=file] { font-size:12px; max-width:140px; }
.lettercard select { font-size:13px; padding:3px 4px; }
