:root{--red:#8b0f14;--cream:#fdf8e4;--ink:#3a1a1a;--muted:#8a6f6f}*{box-sizing:border-box}body{background:var(--cream);color:var(--ink);margin:0;font-family:system-ui,sans-serif}main{max-width:480px;margin:0 auto;padding:16px}.brand{text-align:center;color:var(--cream);background:var(--red);letter-spacing:3px;padding:14px;font-weight:700}h1,h2{color:var(--red)}h2{margin-top:28px;font-size:1.05rem}.stack{gap:12px;display:grid}label{gap:4px;font-weight:600;display:grid}input,select{font:inherit;background:#fff;border:1px solid #d8c9a8;border-radius:8px;padding:10px}button{font:inherit;background:var(--red);color:#fff;cursor:pointer;border:0;border-radius:8px;padding:10px 14px;font-weight:600}button:disabled{opacity:.5;cursor:default}button.ghost{color:var(--red);border:1px solid var(--red);background:#fff}button.link{color:var(--red);background:0 0;padding:0;text-decoration:underline}a{color:var(--red)}.muted{color:var(--muted);font-size:.9rem}.error{color:#b00020}.ok{color:#1b7a3a;font-weight:600}.qr{background:#fff;border-radius:12px;width:fit-content;margin:8px auto;padding:16px}.row{border-bottom:1px solid #eadfc4;grid-template-columns:1fr auto;align-items:center;gap:4px 12px;padding:8px 0;display:grid}.row progress{width:100%;accent-color:var(--red);grid-column:1/-1}.voucher{background:var(--red);color:#fff;border-radius:8px;margin:6px 0;padding:10px 12px}.nav{align-items:center;gap:16px;margin-bottom:8px;display:flex}.qty{align-items:center;gap:8px;display:flex}.qty button{width:36px;padding:6px 0}.cat{text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin:18px 0 4px;font-size:.8rem}@media print{.brand,.noprint{display:none}}
