:root {
  --paper:#f6f4f7; --card:#fff; --ink:#241d2a; --muted:#6c6372; --line:#e2dce6;
  --berry:#8c2347; --berry-ink:#fff; --stage:#ece7ef;
  --display:Georgia,"Times New Roman",serif; --body:system-ui,-apple-system,"Segoe UI",sans-serif;
  color-scheme:light;
}
@media(prefers-color-scheme:dark) {
  :root:not([data-theme="light"]) { --paper:#17131a; --card:#211b25; --ink:#f1ecf3; --muted:#aaa0b0; --line:#362e3b; --berry:#e07a9c; --berry-ink:#1b1016; --stage:#2a232f; color-scheme:dark; }
}
:root[data-theme="dark"] { --paper:#17131a; --card:#211b25; --ink:#f1ecf3; --muted:#aaa0b0; --line:#362e3b; --berry:#e07a9c; --berry-ink:#1b1016; --stage:#2a232f; color-scheme:dark; }
* { box-sizing:border-box; }
body { margin:0; background:var(--paper); color:var(--ink); font:16px/1.5 var(--body); }
.wrap { max-width:72rem; margin:auto; padding:24px 16px 48px; }
header { margin-bottom:24px; }
h1,h2,h3 { font-family:var(--display); font-weight:400; line-height:1.15; overflow-wrap:anywhere; }
h1 { font-size:clamp(2rem,7vw,3rem); margin:8px 0; }
h2 { font-size:1.5rem; margin:0; }
h3 { font-size:1.25rem; margin:0; }
p { margin:0 0 12px; }
.eyebrow { color:var(--muted); font-size:12px; letter-spacing:.12em; text-transform:uppercase; font-weight:600; }
.muted,.desc,.size { color:var(--muted); }
.size,.codes,.foot { font-size:13px; }
.row { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.grid { display:grid; gap:24px; }
.menu,.orders { display:grid; gap:20px; }
.dish,.panel,.order,details { background:var(--card); border:1px solid var(--line); border-radius:14px; overflow:hidden; }
.panel,.order,details { padding:18px; }
.info { padding:16px; display:grid; gap:12px; }
.info p { margin:0; }
.stage { background:var(--stage); aspect-ratio:4/3; position:relative; }
model-viewer { width:100%; height:100%; --poster-color:transparent; }
.hint3d { position:absolute; bottom:10px; left:12px; font-size:12px; color:var(--muted); pointer-events:none; }
.price { font-variant-numeric:tabular-nums; font-weight:600; white-space:nowrap; }
button { font:inherit; cursor:pointer; min-height:44px; padding:10px 16px; border-radius:999px; border:1px solid var(--line); background:var(--stage); color:var(--ink); font-weight:600; }
button.primary { background:var(--berry); color:var(--berry-ink); border-color:var(--berry); }
button:disabled { opacity:.55; cursor:not-allowed; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible { outline:3px solid var(--berry); outline-offset:3px; }
a { color:var(--berry); }
label { display:grid; gap:6px; margin-top:14px; }
input,select,textarea { width:100%; min-height:44px; padding:10px; font:inherit; border:1px solid var(--line); border-radius:8px; color:var(--ink); background:var(--paper); }
textarea { resize:vertical; }
[hidden] { display:none !important; }
.notice { padding:12px; border-radius:8px; border:1px solid var(--line); background:var(--stage); margin:12px 0; overflow-wrap:anywhere; }
.error { border-color:var(--berry); color:var(--ink); }
.cart-list { list-style:none; padding:0; margin:16px 0; display:grid; gap:14px; }
.cart-line { display:grid; gap:8px; border-bottom:1px solid var(--line); padding-bottom:12px; }
.quantity { display:flex; align-items:center; gap:10px; }
.quantity button { padding:4px; width:44px; }
.total { border-top:1px solid var(--line); padding-top:16px; font-size:1.2rem; }
form > button { width:100%; margin-top:20px; }
#success { margin-bottom:20px; }
summary { cursor:pointer; font-weight:600; }
.legend { display:grid; gap:6px; margin:12px 0 0; padding-left:20px; }
.qr-panel { display:flex; gap:16px; align-items:center; flex-wrap:wrap; margin-top:24px; }
#qr { background:white; padding:10px; width:152px; height:152px; flex:none; }
#qr img,#qr canvas { width:132px !important; height:132px !important; }
#cart-anchor { display:inline-block; }
.foot { color:var(--muted); margin-top:18px; }
.order { display:grid; gap:14px; border-left:4px solid var(--line); }
.order[data-status="new"] { border-left-color:var(--berry); }
.order[data-status="done"] { opacity:.75; }
.order ul { margin:0; padding-left:20px; }
.order .note { white-space:pre-wrap; overflow-wrap:anywhere; }
.badge { font-size:13px; font-weight:600; border:1px solid var(--line); border-radius:99px; padding:4px 10px; background:var(--stage); }
.kitchen-toolbar { margin-bottom:16px; }
#receipt { display:none; }
@media(min-width:800px) {
  .shop-grid { grid-template-columns:minmax(0,1fr) 23rem; align-items:start; }
  .cart { position:sticky; top:16px; }
  .orders { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media print {
  @page { size:80mm auto; margin:3mm; }
  html,body { width:74mm; margin:0; padding:0; background:white; color:black; color-scheme:light; }
  body > :not(#receipt) { display:none !important; }
  #receipt { display:block; width:74mm; font:11pt/1.3 ui-monospace,Consolas,monospace; color:black; overflow-wrap:anywhere; }
  #receipt h1 { font:bold 14pt/1.2 ui-monospace,Consolas,monospace; text-align:center; margin:0 0 4mm; }
  #receipt h2 { font:bold 12pt/1.2 ui-monospace,Consolas,monospace; margin:3mm 0; }
  #receipt p { margin:2mm 0; white-space:pre-wrap; }
  #receipt pre { font:9pt/1.3 ui-monospace,Consolas,monospace; white-space:pre; margin:0; }
  #receipt .receipt-line { border-bottom:1px dashed black; padding:2mm 0; break-inside:avoid; }
  #receipt .receipt-sum { border-top:1px solid black; padding-top:3mm; font-weight:bold; }
  #receipt .receipt-row { display:flex; justify-content:space-between; gap:2mm; }
}
