:root {
  --bg: #fff8f0; --card: #fff; --ink: #2b2118; --muted: #8a7a6a; --line: #eadfd3;
  --brand: #e85d2a; --ok: #2f9e44; --warn: #f08c00; --info: #1971c2; --bad: #c92a2a;
}
@media (prefers-color-scheme: dark) {
  :root { --bg: #1c1814; --card: #27211b; --ink: #f3ebe2; --muted: #a8998a; --line: #3a3129; }
}
* { box-sizing: border-box; }
body { margin: 0; font-family: "Sarabun", "Noto Sans Thai", system-ui, sans-serif; background: var(--bg); color: var(--ink); }
main { max-width: 560px; margin: 0 auto; padding: 16px 16px 120px; }
h1 { font-size: 1.5rem; margin: 8px 0 4px; }
h2 { font-size: 1.1rem; margin: 20px 0 8px; }
.muted { color: var(--muted); font-size: .9rem; }
.card { background: var(--card); border: 1px solid var(--line); border-radius: 14px; padding: 14px; margin: 10px 0; }
.row { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.stat { background: var(--card); border: 1px solid var(--line); border-radius: 14px; padding: 12px; text-align: center; }
.stat b { display: block; font-size: 1.8rem; }
button { font: inherit; border: 0; border-radius: 12px; padding: 12px 16px; cursor: pointer; background: var(--line); color: var(--ink); }
button.primary { background: var(--brand); color: #fff; font-weight: 700; }
button.big { width: 100%; padding: 16px; font-size: 1.1rem; }
button:disabled { opacity: .45; cursor: default; }
.qty { display: flex; align-items: center; gap: 8px; }
.qty button { width: 40px; height: 40px; padding: 0; font-size: 1.3rem; }
input, select { font: inherit; width: 100%; padding: 12px; border-radius: 12px; border: 1px solid var(--line); background: var(--card); color: var(--ink); }
.bar { position: fixed; left: 0; right: 0; bottom: 0; padding: 12px 16px; background: var(--card); border-top: 1px solid var(--line); }
.bar > div { max-width: 560px; margin: 0 auto; }
.pill { display: inline-block; padding: 2px 10px; border-radius: 99px; font-size: .85rem; color: #fff; }
.s-waiting { background: var(--info); } .s-cooking { background: var(--warn); } .s-ready { background: var(--ok); }
.s-picked_up, .s-cancelled, .s-rejected { background: var(--muted); }
.p-paid { background: var(--ok); } .p-unpaid { background: var(--bad); }
.soldout { opacity: .5; }
.err { color: var(--bad); }
.banner { background: var(--ok); color: #fff; border-radius: 14px; padding: 16px; font-size: 1.2rem; text-align: center; }
.actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.actions button { flex: 1 1 30%; }
.new { outline: 3px solid var(--brand); }
