.dish-match{display:flex;align-items:center;gap:7px;margin:8px 0!important;color:var(--ink)!important;font-size:11px!important}
.dish-match span{color:var(--muted);font-size:10px}
.dish-match strong{padding:4px 8px;border-radius:999px;background:var(--brand-soft);font-size:11px}
.menu-option-group{min-width:0;margin:0;padding:16px 0 0;border:0;border-top:1px solid var(--line)}
.menu-option-group legend{width:100%;padding:0;font-size:18px;font-weight:700;line-height:1.3}
.menu-option-rule{margin:5px 0 10px;color:var(--muted);font-size:11px}
.menu-option-section{margin-top:12px;padding-top:12px;border-top:1px solid color-mix(in srgb,var(--line) 80%,transparent)}
.menu-option-section+.menu-option-section{margin-top:16px}
.menu-option-section-heading{margin:0 0 8px;padding-left:8px;border-left:3px solid var(--brand-accent);color:var(--ink);font-size:14px;font-weight:700;line-height:1.35}
.menu-option-section.option-hidden{display:none}
.option-search{display:block;margin:10px 0}
.option-search input{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);font-size:16px}
.menu-option-list{display:grid;grid-template-columns:1fr;gap:6px;margin:0;padding:0;list-style:none}
.menu-option-list li{display:block;min-width:0;padding:0;border:0}
.menu-option-list li.option-hidden{display:none}
.menu-option-choice{display:grid;width:100%;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:48px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--paper);cursor:pointer}
.menu-option-choice:has(input:checked){border-color:var(--brand-accent);background:var(--brand-soft)}
.menu-option-choice input{width:20px;height:20px;margin:0;accent-color:var(--brand-accent)}
.menu-option-choice>span{font-size:13px;line-height:1.4}
.menu-option-choice>strong{color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}
.menu-option-choice>strong.is-free{color:var(--success)}
.sheet-note{align-items:flex-start}
.sheet-note .icon{flex:none;margin-top:1px}
.sheet-footer{position:sticky;bottom:-1px;padding:12px 0 0;background:var(--paper)}
#app:has(.reel-backdrop:not(.hidden),.sheet-backdrop:not(.hidden)) .toast{z-index:19}
@media(max-width:540px){.sheet-footer{padding:12px 0 calc(12px + env(safe-area-inset-bottom))}}
.sheet-footer .primary-button,.submit-order{min-height:52px}
.customer-actions:has(#open-cart:not(.hidden)){gap:8px}
.call-waiter-button--secondary{width:auto;flex:none;min-height:48px;padding:10px 12px;border:1px solid #ffffff45;background:transparent;color:var(--on-dark)}
.call-waiter-button--secondary>span:nth-child(2),.call-waiter-button--secondary>.icon{display:none}
.order-cart-button,.order-status-button{display:flex;align-items:center;justify-content:center;gap:9px;min-width:0;min-height:52px;padding:8px 14px;border:0;border-radius:8px;background:var(--brand-accent);color:var(--brand-ink);font-size:12px;font-weight:700}
.order-cart-button{order:1;flex:1;flex-wrap:wrap;gap:3px 8px}
.cart-button-summary{display:flex;align-items:center;gap:5px;white-space:nowrap;font-variant-numeric:tabular-nums}
.order-status-button{order:1;flex:1}
.order-button-dot{width:8px;height:8px;flex:none;border-radius:50%;background:currentColor}
.cart-sheet,.order-status-sheet{position:relative;width:min(100%,560px);max-height:92dvh;overflow:auto;padding:28px;border-radius:16px;background:var(--paper);box-shadow:var(--shadow);animation:sheet-in .25s ease-out}
.cart-sheet h2,.order-status-sheet h2{margin:8px 48px 20px 0;font-size:30px;line-height:1.2}
.cart-empty{padding:24px 14px;border:1px dashed var(--line);border-radius:10px;color:var(--muted);text-align:center;font-size:13px;line-height:1.5}
.cart-lines{display:grid;gap:10px}
.cart-line{padding:14px;border:1px solid var(--line);border-radius:11px;background:var(--paper)}
.cart-line-heading{display:flex;align-items:start;justify-content:space-between;gap:12px;font-size:14px}
.cart-line-heading>strong{line-height:1.4}
.cart-line-heading>span{flex:none;font-weight:700;font-variant-numeric:tabular-nums}
.cart-line-options{display:grid;gap:4px;margin:8px 0 0;padding:0;list-style:none;color:var(--muted);font-size:11px;line-height:1.5}
.cart-price-change{display:block;margin-top:8px;color:#8a4a28;font-size:11px;line-height:1.45}
.cart-line-controls{display:flex;align-items:center;gap:8px;margin-top:12px}
.cart-line-controls button{display:grid;place-items:center;min-width:44px;min-height:44px;padding:0 8px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);font-size:18px}
.cart-line-controls>span{min-width:20px;text-align:center;font-size:13px;font-weight:700}
.cart-line-controls .cart-remove{margin-left:auto;font-size:11px;text-decoration:underline}
.cart-line-controls button:disabled{opacity:.45;cursor:not-allowed}
.cart-total,.order-status-total{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px;padding-top:15px;border-top:1px solid var(--line);font-size:14px}
.cart-total strong,.order-status-total strong{font-size:21px;font-variant-numeric:tabular-nums}
.cart-disclaimer{margin:10px 0 16px;color:var(--muted);font-size:12px;line-height:1.5}
.cart-price-alert{display:grid;gap:9px;margin-bottom:12px;padding:12px;border:1px solid #e6cda1;border-radius:10px;background:#fff5df;color:#6d4d20;font-size:12px;line-height:1.5}
.order-outcome-alert{display:grid;gap:6px;margin-bottom:12px;padding:13px;border:1px solid #bf7348;border-radius:10px;background:#fff0e7;color:#633522;font-size:12px;line-height:1.5}
.order-outcome-alert strong{font-size:13px}
.order-outcome-alert p{margin:0}
.cart-price-alert button{justify-self:start;min-height:44px;padding:0 12px;border:1px solid currentColor;border-radius:8px;background:transparent;color:inherit;font-size:12px;font-weight:700}
.submit-order{width:100%;font-size:14px}
.submit-order:disabled{opacity:.55;cursor:not-allowed}
.order-status-sheet>p{margin:0 0 20px;color:var(--muted);font-size:14px;line-height:1.5}
.order-status-current{display:grid;gap:6px;min-width:0;margin:0 0 12px;padding:10px 12px;border:1px solid var(--line);border-left:3px solid var(--order-status-color,var(--brand-accent));border-radius:10px;background:var(--paper)}
.order-status-current[hidden]{display:none}
.order-status-current--pending{--order-status-color:#c27d12}
.order-status-current--accepted{--order-status-color:#3475a8}
.order-status-current--preparing{--order-status-color:#7455a5}
.order-status-current--ready,.order-status-current--completed{--order-status-color:#28764d}
.order-status-current--cancelled{--order-status-color:#a7453d}
.order-status-current-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
.order-status-current-meta>span:first-child{min-width:0;color:var(--muted);font-size:11px;font-weight:700;overflow-wrap:anywhere}
.order-status-current>p{margin:0;color:var(--muted);font-size:12px;line-height:1.4}
.order-status-sheet>.order-status-update-note{margin:0 0 12px;padding:10px 12px;border:1px solid #e5c77f;border-radius:10px;background:#fff4d8;color:#75520d;font-size:12px;line-height:1.5}
.order-status-update-note[hidden]{display:none}
#order-status-sheet{grid-template-columns:minmax(0,1fr)}
.order-status-sheet{width:min(100%,680px)}
.order-status-toolbar{align-items:center;justify-content:space-between;gap:16px}
.order-status-toolbar::before{display:none}
.order-status-toolbar>span{font-size:12px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}
.order-status-sheet h2{margin:0 0 6px;font-size:24px;line-height:1.2}
.order-status-sheet>p{margin:0 0 20px;font-size:14px;line-height:1.45}
.order-status-return{width:100%;margin-top:20px;min-height:48px;box-shadow:none}
.order-status-accordion{display:grid;gap:14px;margin:0 0 16px}
.order-status-accordion[hidden]{display:none}
.order-table-group{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--paper)}
.order-table-group-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;background:color-mix(in srgb,var(--brand-soft) 52%,var(--paper))}
.order-table-group-heading h3{min-width:0;margin:0;color:var(--ink);font-size:13px;line-height:1.35;overflow-wrap:anywhere}
.order-table-group-count{flex:none;color:var(--muted);font-size:11px;font-weight:700}
.order-table-group-list{display:grid}
.customer-order-entry{min-width:0;border-top:1px solid var(--line)}
.customer-order-entry:first-child{border-top:0}
.customer-order-summary{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-height:68px;padding:10px 16px;list-style:none;color:var(--ink);cursor:pointer;touch-action:manipulation}
.customer-order-summary::-webkit-details-marker{display:none}
.customer-order-summary:focus-visible{z-index:1;outline:3px solid var(--brand-accent);outline-offset:-3px}
.customer-order-summary::after{width:9px;height:9px;margin-left:2px;border:solid currentColor;border-width:0 2px 2px 0;color:var(--muted);content:"";transform:rotate(45deg);transition:transform .16s ease}
.customer-order-entry[open]>.customer-order-summary::after{transform:rotate(225deg)}
.customer-order-summary-copy{display:grid;min-width:0;gap:3px}
.customer-order-summary-copy strong{font-size:13px;line-height:1.3}
.customer-order-summary-copy small{color:var(--muted);font-size:11px;line-height:1.35;overflow-wrap:anywhere}
.order-status-badge{max-width:150px;padding:6px 9px;border-radius:999px;background:var(--brand-soft);color:var(--brand-ink);font-size:10px;font-weight:700;line-height:1.25;text-align:center;overflow-wrap:anywhere}
.order-status-badge--accepted{background:#e8f1fa;color:#285c85}
.order-status-badge--preparing{background:#fff2d1;color:#79550b}
.order-status-badge--ready{background:#e4f2e8;color:#23633e}
.order-status-badge--completed{background:#edf0ed;color:#515d53}
.order-status-badge--cancelled{background:#f9e9e6;color:#8d3c34}
.customer-order-details{display:grid;gap:14px;padding:0 16px 16px}
.customer-order-message{margin:0;color:var(--muted);font-size:12px;line-height:1.45}
.customer-order-details .order-progress{grid-area:auto}
.customer-order-details .order-status-lines{margin-top:0}
.customer-order-details .order-status-total{margin-top:0}
.customer-order-details .cancel-order{min-height:44px;margin:0}
.order-status-sheet>#menu-suggestion{margin:0 0 14px}
.order-status-information{grid-area:summary;min-width:0}
.menu-suggestion{display:grid;grid-template-columns:minmax(112px,32%) minmax(0,1fr);min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--paper)}
.menu-suggestion.hidden{display:none}
.menu-suggestion.is-text-only{grid-template-columns:minmax(0,1fr)}
.menu-suggestion-media{position:relative;min-width:0;min-height:180px;background:var(--dark)}
.menu-suggestion-media[hidden]{display:none}
.menu-suggestion-playback{position:absolute;right:6px;bottom:6px;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid var(--muted-on-dark);border-radius:50%;background:color-mix(in srgb,var(--dark) 88%,transparent);color:var(--on-dark);box-shadow:0 2px 8px #0006;backdrop-filter:blur(4px)}
.menu-suggestion-playback .icon{width:17px;height:17px;fill:currentColor;stroke:none}
.menu-suggestion-playback:focus-visible{outline-color:var(--on-dark);outline-offset:2px}
.menu-suggestion video,.menu-suggestion-media>img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;background:var(--dark)}
.menu-suggestion video[hidden],.menu-suggestion-media>img[hidden],.menu-suggestion-playback[hidden]{display:none}
.menu-suggestion-copy{display:grid;align-content:center;gap:7px;min-width:0;padding:12px;overflow-wrap:anywhere}
.menu-suggestion-kicker{color:var(--muted);font-size:11px;font-weight:600}
.menu-suggestion-copy h3{margin:0;font-size:20px;line-height:1.2}
.menu-suggestion-copy p{margin:0;color:var(--muted);font-size:12px;line-height:1.4}
.menu-suggestion-copy .primary-button{width:100%;min-height:44px;margin-top:4px;padding:8px;font-size:12px;line-height:1.3;white-space:normal;box-shadow:none}
.order-progress{grid-area:progress;display:grid;gap:0;margin:0;padding:0;list-style:none}
.order-progress-step{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:stretch;column-gap:12px;min-height:56px;color:var(--muted);font-size:13px;line-height:1.45}
.order-progress-step:last-child{min-height:22px}
.order-progress-marker{position:relative;display:block;min-height:56px}
.order-progress-step:last-child .order-progress-marker{min-height:22px}
.order-progress-node{position:absolute;z-index:1;top:2px;left:1px;display:block;width:20px;height:20px;border:2px solid var(--line);border-radius:50%;background:var(--paper);color:var(--progress-color,var(--brand-accent))}
.order-progress-connector{position:absolute;top:22px;bottom:-2px;left:11px;width:2px;background:var(--line);transform:translateX(-50%)}
.order-progress-step:last-child .order-progress-connector{display:none}
.order-progress-label{min-width:0;padding-top:2px;overflow-wrap:anywhere}
.order-progress-step.done .order-progress-node,.order-progress-step.current .order-progress-node{border-color:var(--progress-color,var(--brand-accent));background:var(--progress-color,var(--brand-accent))}
.order-progress-step.done .order-progress-connector{background:var(--progress-color,var(--brand-accent))}
.order-progress-step.current{color:var(--ink);font-weight:700}
.order-progress-step.current .order-progress-node:after{position:absolute;inset:-5px;border:1.5px solid currentColor;border-radius:50%;content:"";opacity:0;transform:scale(.72);animation:order-status-pulse 2.2s ease-out infinite}
.order-progress-step.status-arrival .order-progress-node{animation:status-arrival .5s cubic-bezier(.2,.75,.35,1)}
.order-progress[data-status="pending"]{--progress-color:#c27d12}
.order-progress[data-status="accepted"]{--progress-color:#3475a8}
.order-progress[data-status="preparing"]{--progress-color:#7455a5}
.order-progress[data-status="ready"],.order-progress[data-status="completed"]{--progress-color:#28764d}
.order-progress[data-status="cancelled"]{--progress-color:#a7453d}
@keyframes order-status-pulse{0%{opacity:.42;transform:scale(.72)}75%,100%{opacity:0;transform:scale(1.38)}}
@keyframes status-arrival{0%{transform:scale(.82)}60%{transform:scale(1.12)}100%{transform:scale(1)}}
.order-status-lines{display:grid;gap:10px;margin-top:0}
.order-status-line{display:grid;gap:4px;padding:0;font-size:13px;overflow-wrap:anywhere}
.order-status-line+.order-status-line{padding-top:10px;border-top:1px solid var(--line)}
.order-status-total{margin-top:12px;padding-top:12px}
.order-status-total strong{font-size:20px}
.order-status-line small{color:var(--muted);line-height:1.45}
.order-status-line .order-item-status{font-size:12px;font-weight:650;color:var(--brand-ink);}
.cancel-order{width:100%;margin:10px 0;border-color:#bb6659;color:#91493f}
.order-list{display:grid;gap:10px}
.staff-order-card{display:grid;gap:11px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--paper)}
.staff-order-heading,.staff-order-heading>div,.staff-order-line>div,.staff-order-footer{display:flex;align-items:center;justify-content:space-between;gap:10px}
.staff-order-heading>div{align-items:start;flex-direction:column;gap:3px}
.staff-order-heading>div>strong{font-size:13px}
.staff-order-heading>div>small{color:var(--muted);font-size:11px}
.staff-order-lines{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.staff-order-line{display:grid;gap:3px;padding:9px 0;border-top:1px solid var(--line);font-size:12px}
.staff-order-line>div span{flex:none;font-variant-numeric:tabular-nums}
.staff-order-line>small{color:var(--muted);font-size:11px;line-height:1.45}
.staff-order-footer>strong{font-size:12px}
.stat-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
@media(max-width:640px){
 .cart-sheet,.order-status-sheet{width:100%;max-height:92dvh;padding:24px 20px calc(20px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0}
 .cart-sheet h2{font-size:25px}
 .order-status-sheet h2{font-size:22px}
 .menu-option-choice{gap:8px;padding:8px}
 .menu-option-choice>span{font-size:12px}
 .customer-actions:has(#open-cart:not(.hidden)){gap:6px}
 .customer-actions:has(#open-cart:not(.hidden)) .service-table{padding:8px 6px}
 .call-waiter-button--secondary{min-width:44px;min-height:48px;justify-content:center;padding:8px}
 .order-cart-button,.order-status-button{min-height:50px;padding:8px 10px;font-size:11px}
 .menu-suggestion{grid-template-columns:minmax(92px,34%) minmax(0,1fr)}
 .menu-suggestion-media{min-height:156px}
 .menu-suggestion-copy{gap:6px;padding:10px}
 .menu-suggestion-copy h3{font-size:18px}
 .order-status-information{padding-top:16px;border-top:1px solid var(--line)}
 .order-status-return{margin-top:16px}
 .order-progress-step{font-size:12px}
 .customer-order-summary{grid-template-columns:minmax(0,1fr) minmax(78px,auto);gap:8px;min-height:64px;padding:10px 12px}
 .customer-order-summary-copy small{max-width:50vw}
 .order-status-badge{max-width:118px;padding:6px 7px;font-size:9px}
 .customer-order-details{gap:12px;padding:0 12px 12px}
 .staff-order-card{padding:12px}
 .staff-order-footer{align-items:flex-start;flex-direction:column}
 .staff-order-footer .small-action{width:100%;min-height:44px}
}

@media(max-width:359px){
 .menu-suggestion{grid-template-columns:minmax(84px,32%) minmax(0,1fr)}
 .menu-suggestion-media{min-height:148px}
 .menu-suggestion-copy{padding:9px}
}

.cart-sheet,.order-status-sheet{padding-top:0;scroll-padding-top:68px}
.cart-sheet>.sheet-toolbar,.order-status-sheet>.sheet-toolbar{margin-inline:-28px;margin-bottom:16px}
@media(max-width:640px){.cart-sheet>.sheet-toolbar,.order-status-sheet>.sheet-toolbar{margin-inline:-20px}}

.bill-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 12px}
.bill-sheet .bill-title-row h2{min-width:0;margin:0;font-size:30px;line-height:1.2}
.bill-refresh-button{display:grid;flex:none;place-items:center;width:44px;height:44px;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--ink);cursor:pointer}
.bill-refresh-button .icon{width:19px;height:19px}
.bill-refresh-button:disabled{opacity:.55;cursor:wait}
.bill-refresh-button.is-refreshing .icon{animation:bill-refresh-spin .8s linear infinite}
.bill-refresh-button:focus-visible{outline:3px solid var(--brand-accent);outline-offset:2px}
@keyframes bill-refresh-spin{to{transform:rotate(360deg)}}
.bill-description{margin:0 0 18px;color:var(--muted);font-size:14px;line-height:1.5}
.bill-loading{margin:0 0 12px;color:var(--muted);font-size:13px}
.bill-refresh-warning{display:grid;gap:8px;margin:0 0 12px;padding:12px;border:1px solid #e6cda1;border-radius:10px;background:#fff5df;color:#6d4d20;font-size:12px;line-height:1.5}
.bill-refresh-warning[hidden]{display:none}
.bill-refresh-warning p{margin:0}
.bill-orders{display:grid;gap:12px}
.bill-order{min-width:0;padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:var(--paper)}
.bill-order-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:8px}
.bill-order-heading strong{font-size:12px}
.bill-order-heading small{color:var(--muted);font-size:11px;text-align:right}
.bill-lines{display:grid}
.bill-line{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;padding:10px 0;border-top:1px solid var(--line)}
.bill-line>div{display:grid;gap:5px;min-width:0}
.bill-line>div>strong{font-size:13px;line-height:1.4;overflow-wrap:anywhere}
.bill-line>div>small{color:var(--muted);font-size:11px;line-height:1.45}
.bill-line>span{padding-top:1px;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.bill-total{margin-top:16px}
.bill-requested-note{margin:0 0 12px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--brand-accent) 48%,var(--line));border-radius:9px;background:var(--brand-soft);font-size:12px;line-height:1.45}
.bill-requested-note[hidden]{display:none}

@media(max-width:640px){.bill-sheet .bill-title-row h2{font-size:25px}}
@media(prefers-reduced-motion:reduce){.bill-refresh-button.is-refreshing .icon{animation:none}}
