:root{--bg:#fffaf3;--ink:#1d1a17;--muted:#5a524a;--brand:#b3261e;--brand-ink:#fff;--card:#fff;--line:#d9cfc2;--focus:#0b57d0;--ok:#1b5e20;--gutter:clamp(1rem, 4vw, 1.5rem);--target:48px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:clamp(16px,15px + .3vw,20px);line-height:1.4}@media (width>=700px){:root{--target:56px}}@media (prefers-color-scheme:dark){:root{--bg:#1b1815;--ink:#f5efe7;--muted:#c9bfb2;--brand:#ffb4ab;--brand-ink:#3b0a07;--card:#26221e;--line:#4a423a;--focus:#a8c7fa}}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);touch-action:manipulation;overflow-wrap:break-word;margin:0}img,svg{max-width:100%}h1,h2{margin:0 0 .5rem;line-height:1.2}h1{font-size:clamp(1.5rem,1.1rem + 1.8vw,2rem)}h2{font-size:clamp(1.25rem,1rem + 1vw,1.5rem)}button{font:inherit;min-height:var(--target);min-width:var(--target);border:2px solid var(--brand);background:var(--brand);color:var(--brand-ink);cursor:pointer;border-radius:12px;padding:.5rem 1.25rem}button.secondary,nav button{color:var(--ink);border-color:var(--line);background:0 0}nav button[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}button:disabled{opacity:.55;cursor:not-allowed}:focus-visible{outline:4px solid var(--focus);outline-offset:2px}input,textarea{font:inherit;width:100%;min-height:var(--target);border:2px solid var(--line);background:var(--card);color:var(--ink);border-radius:12px;margin:.25rem 0 1rem;padding:.5rem .75rem}label{font-weight:600;display:block}.kiosk{grid-template-rows:auto 1fr auto;min-height:100vh;display:grid}header{padding:1rem var(--gutter) 0}nav{flex-wrap:wrap;gap:.5rem;padding:.5rem 0 1rem;display:flex}main{padding:0 var(--gutter) 1rem}.grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,9rem),1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid}@media (width>=700px){.grid{grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));gap:1rem}}.card{text-align:left;background:var(--card);width:100%;height:100%;color:var(--ink);border:2px solid var(--line);flex-direction:column;align-items:flex-start;gap:.25rem;padding:.75rem;display:flex}.card .name{font-weight:700}.card .price{color:var(--muted)}.allergy-note,.allergy{color:var(--muted);font-size:.85rem}.photo{aspect-ratio:4/3;object-fit:cover;background:var(--line);border-radius:8px;width:100%}footer{padding:.75rem var(--gutter);background:var(--card);border-top:2px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex;position:sticky;bottom:0}footer p{margin:0;font-weight:700}dialog{border:2px solid var(--line);background:var(--bg);width:min(640px,100vw - 1rem);max-height:calc(100dvh - 1rem);color:var(--ink);border-radius:16px;padding:clamp(1rem,4vw,1.5rem);overflow-y:auto}dialog::backdrop{background:#0000008c}fieldset{border:2px solid var(--line);border-radius:12px;margin:0 0 1rem;padding:.5rem 1rem}.choice{align-items:center;gap:.75rem;min-height:56px;font-weight:400;display:flex}.choice input{flex:none;width:28px;height:28px;min-height:0;margin:0}.choice span:first-of-type{flex:1}.stepper{align-items:center;gap:1rem;display:inline-flex}.stepper output{text-align:center;min-width:2ch;font-weight:700}.actions{flex-wrap:wrap;justify-content:flex-end;gap:.75rem;margin-top:1rem;display:flex}.cart-lines{margin:0 0 1rem;padding:0;list-style:none}.cart-lines li{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.75rem;padding:.5rem 0;display:grid}.total{font-size:1.25rem}.error{color:var(--brand);min-height:1.4em;font-weight:600}.pair,.message,.done{max-width:640px;padding:0 var(--gutter);text-align:center;margin:clamp(1.5rem,10vh,6rem) auto}.done .number{margin:.5rem 0 1.5rem;font-size:clamp(4rem,22vw,7rem);font-weight:800;line-height:1}@media (prefers-reduced-motion:no-preference){button{transition:background-color .15s,border-color .15s}}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.counter header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.counter header .actions{align-items:center;margin:0}.order-list{gap:1rem;margin:0;padding:0;list-style:none;display:grid}.order{background:var(--card);border:2px solid var(--line);border-radius:12px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1.25rem;padding:.75rem 1rem;display:grid}.order .number{text-align:center;min-width:2ch;font-size:clamp(2rem,8vw,3rem);font-weight:800}.order .items{color:var(--muted);margin:.25rem 0 0;padding-left:1.25rem}.order .pay{justify-items:end;gap:.5rem;font-size:1.25rem;display:grid}.badge{background:var(--brand);color:var(--brand-ink);border-radius:8px;margin-left:.5rem;padding:.1rem .5rem;font-weight:700}.take{font-size:1.5rem}.shop-list{gap:.75rem;padding:0;list-style:none;display:grid}.tickets{grid-template-columns:repeat(auto-fill,minmax(min(100%,17rem),1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.ticket{background:var(--card);border:2px solid var(--line);border-radius:12px;flex-direction:column;gap:.5rem;padding:.75rem 1rem;display:flex}.ticket-head{align-items:baseline;gap:.75rem;display:flex}.ticket-head .number{font-size:clamp(2rem,7vw,2.5rem);font-weight:800}.ticket-head .elapsed{font-variant-numeric:tabular-nums;margin-left:auto}.allergy-banner{background:var(--brand);color:var(--brand-ink);border-radius:8px;margin:0;padding:.5rem .75rem}.ticket .items{gap:.5rem;margin:0;padding:0;font-size:1.1rem;list-style:none;display:grid}.ticket .actions{margin-top:auto}.board{flex-direction:column;min-height:100vh;padding:clamp(1rem,3vw,2rem);display:flex}.board header{flex-wrap:wrap;align-items:center;gap:.75rem 1.5rem;padding:0;display:flex}.board header h1{margin:0;font-size:clamp(1.5rem,4vw,2.5rem)}.board .offline{color:var(--muted);margin:0 0 0 auto}.board-columns{flex:1;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:clamp(1rem,3vw,2rem);margin-top:1rem;display:grid}.board-columns section{background:var(--card);border:3px solid var(--line);border-radius:16px;min-width:0;padding:clamp(1rem,3vw,1.5rem)}.board-columns section.ready{border-color:var(--ok)}.board-columns h2{margin:0 0 1rem;font-size:clamp(1.25rem,3vw,2rem)}.board-columns ul{flex-wrap:wrap;gap:.5rem clamp(.75rem,2vw,1.5rem);margin:0;padding:0;list-style:none;display:flex}.board-columns li{text-align:center;font-variant-numeric:tabular-nums;min-width:1.6ch;font-size:clamp(2.75rem,9vw,6rem);font-weight:800;line-height:1}.board-columns .ready li{color:var(--ok)}@media (prefers-color-scheme:dark){:root{--ok:#81c995}}.admin{flex-direction:column;min-height:100vh;display:flex}.admin>header{padding:1rem var(--gutter);border-bottom:2px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;display:flex}.admin>header h1{margin:0}.admin>header .actions{align-items:center;margin:0}.admin-body{flex:1;grid-template-columns:minmax(10rem,14rem) minmax(0,1fr);align-items:start;display:grid}.admin nav{border-right:2px solid var(--line);align-self:stretch;padding:1rem}.admin nav ul{align-content:start;gap:.5rem;margin:0;padding:0;list-style:none;display:grid;position:sticky;top:1rem}.admin nav a{min-height:48px;color:var(--ink);border:2px solid #0000;border-radius:12px;align-items:center;padding:.5rem 1rem;text-decoration:none;display:flex}.admin nav a:hover{border-color:var(--line)}.admin nav a[aria-current=page]{background:var(--ink);color:var(--bg)}.admin main{min-width:0;padding:clamp(1rem,3vw,1.5rem)}@media (width<=800px){.admin-body{grid-template-columns:minmax(0,1fr)}.admin nav{border-right:0;border-bottom:2px solid var(--line);padding:.5rem var(--gutter)}.admin nav ul{flex-wrap:wrap;display:flex;position:static}.admin nav a{justify-content:center}}.field{margin-bottom:1rem}.field .help{color:var(--muted);margin:-.5rem 0 0;font-size:.85rem}select{font:inherit;width:100%;min-height:var(--target);border:2px solid var(--line);background:var(--card);color:var(--ink);border-radius:12px;margin:.25rem 0 1rem;padding:.5rem .75rem}.table-wrap{margin-bottom:1.5rem;overflow-x:auto}table.data{border-collapse:collapse;background:var(--card);width:100%}table.data caption{text-align:left;padding:.5rem 0;font-weight:700}table.data th,table.data td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:.75rem}table.data th{border-bottom:2px solid var(--line)}.secret{letter-spacing:.1em;overflow-wrap:anywhere;text-align:center;border:2px dashed var(--line);-webkit-user-select:all;user-select:all;border-radius:12px;margin:.5rem 0;padding:1rem;font:700 clamp(1.25rem,6vw,2.5rem)/1.2 ui-monospace,SF Mono,Menlo,Consolas,monospace;display:block}.secret-label{margin:0;font-weight:600}.admin .form-card{max-width:640px;margin-bottom:2rem}.admin .form-card h3,.admin h3{margin-top:0}.status-revoked{color:var(--muted)}.admin .toolbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1rem;display:flex}.admin .toolbar .field{flex:16rem;min-width:min(16rem,100%);margin:0}.photo-preview{border-radius:12px;max-width:100%;max-height:14rem;margin:.5rem 0;display:block}dialog section{margin-top:1.5rem}ul.plain{margin:0;padding:0;list-style:none}.row-actions{flex-wrap:wrap;gap:.5rem;display:flex}.app-links{align-items:center;gap:1rem;display:flex}.app-links a{color:var(--ink);font-weight:600}.callout{border:2px solid var(--line);background:var(--card);border-left-width:8px;border-radius:12px;max-width:640px;margin-bottom:1.5rem;padding:.75rem 1.25rem}.callout h3{margin:0 0 .25rem}.callout p{margin:0}@media (width<=900px){.table-wrap{overflow-x:visible}table.data,table.data tbody{display:block}table.data thead{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}table.data tr{border:2px solid var(--line);background:var(--card);border-radius:12px;margin-bottom:1rem;display:block;overflow:hidden}table.data td{border-bottom:1px solid var(--line);grid-template-columns:minmax(6rem,9rem) minmax(0,1fr);align-items:center;gap:.25rem .75rem;display:grid}table.data td:last-child{border-bottom:0}table.data td[data-label]:before{content:attr(data-label);color:var(--muted);font-weight:600}table.data td:not([data-label]),table.data caption{display:block}}@media (width<=480px){.row-actions button,.app-links{width:100%}.row-actions{grid-template-columns:1fr;display:grid}.actions{justify-content:stretch}.actions button{flex:auto}.order{grid-template-columns:auto minmax(0,1fr)}.order .pay{grid-column:1/-1;justify-items:stretch}.admin>header .actions{flex-wrap:wrap;justify-content:space-between;width:100%}}.field:has(input[type=checkbox]){grid-template-columns:auto minmax(0,1fr);grid-template-areas:"box label"".help";align-items:center;gap:0 .75rem;display:grid}.field:has(input[type=checkbox]) label{grid-area:label}.field:has(input[type=checkbox]) input{width:1.75rem;height:1.75rem;min-height:0;accent-color:var(--brand);grid-area:box;margin:.5rem 0}.field:has(input[type=checkbox]) .help{grid-area:help;margin:0}.admin p:empty{min-height:0;margin:0}
