:root{--brand-primary: #26247b;--brand-primary-strong: #1b195d;--brand-accent: #88b83e;--brand-warm: #b58a3c;--surface-page: #faf8f4;--surface-card: #ffffff;--surface-subtle: #f1eee7;--text-primary: #1f2430;--text-muted: #606778;--border-subtle: #ded9cf;--state-success: #237a4b;--state-warning: #9a6500;--state-danger: #b42318;--on-brand: #ffffff;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--tap-min: 48px;--font-brand: "Helvetica Neue LT Pro", "Helvetica Neue", Arial, sans-serif;--font-ui: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--ink: var(--text-primary);--muted: var(--text-muted);--line: var(--border-subtle);--bg: var(--surface-page);--card: var(--surface-card);--accent: var(--brand-primary);--accent-ink: var(--on-brand);--gold: var(--brand-warm);--ok: var(--state-success);--warn: var(--state-warning);--bad: var(--state-danger);--radius: var(--radius-md);--tap: var(--tap-min)}*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;background:var(--surface-page);color:var(--text-primary);font:16px/1.5 var(--font-ui)}#app{min-height:100vh}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--brand-primary);outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.shell{width:min(100%,720px);margin:0 auto;padding:0 16px 120px}.topbar{position:sticky;top:0;z-index:10;background:var(--brand-primary-strong);color:var(--on-brand);display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:76px;padding:10px max(16px,calc((100vw - 720px)/2 + 16px));box-shadow:0 1px #ffffff24}.topbar-copy{min-width:0;display:grid;gap:2px}.topbar h1{margin:0;overflow-wrap:anywhere;font:600 clamp(1.05rem,3.6vw,1.3rem)/1.2 var(--font-brand);letter-spacing:-.01em}.eyebrow{color:#dcdaf8;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.location-pill{width:fit-content;margin-top:4px;padding:3px 9px;border:1px solid rgb(255 255 255 / 32%);border-radius:999px;color:#f6f5ff;font-size:.78rem;font-weight:650}.linkbtn{flex:0 0 auto;background:none;border:0;color:inherit;text-decoration:underline;text-underline-offset:3px;min-height:var(--tap-min);padding:0 8px;cursor:pointer}.tabs{display:flex;gap:8px;margin:16px 0}.tabs button{flex:1;min-height:var(--tap);border-radius:999px;border:1px solid var(--line);background:var(--card);cursor:pointer}.tabs button[aria-selected=true]{background:var(--brand-primary);color:var(--on-brand);border-color:var(--brand-primary)}h2{font:600 1.2rem/1.3 var(--font-brand);margin:20px 0 8px}h3{font:650 1.05rem/1.3 var(--font-brand);margin:22px 0 10px;color:var(--brand-primary);letter-spacing:-.01em}.menu-intro{position:relative;display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;min-height:118px;margin:14px 0 12px;padding:18px;overflow:hidden;border-radius:var(--radius-lg);color:var(--on-brand);background:linear-gradient(128deg,var(--brand-primary-strong),#353399 68%,#5450ad);box-shadow:0 14px 34px #26247b2e}.menu-intro:after{content:"";position:absolute;width:150px;height:150px;inset:-76px -54px auto auto;border:1px solid rgb(255 255 255 / 16%);border-radius:50%}.menu-intro-mark{display:grid;place-items:center;width:52px;height:52px;border:1px solid rgb(255 255 255 / 26%);border-radius:50%;background:#ffffff1a;font:600 1.35rem/1 var(--font-brand)}.menu-intro h2{margin:2px 0 4px;color:inherit;font-size:clamp(1.2rem,5vw,1.55rem)}.menu-intro p{margin:0;color:#ebeafd;font-size:.88rem}.menu-intro-eyebrow{color:var(--brand-warm)!important;font-size:.7rem!important;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.menu-tools{position:sticky;top:76px;z-index:8;margin:0 -16px 14px;padding:10px 16px 8px;border-bottom:1px solid var(--border-subtle);background:#faf8f4f5;backdrop-filter:blur(10px)}.menu-search{position:relative}.menu-search input{width:100%;min-height:var(--tap-min);padding:10px 48px 10px 15px;border:1px solid #bdb7aa;border-radius:var(--radius-md);background:var(--surface-card);appearance:none}.menu-search input::-webkit-search-cancel-button{appearance:none}.menu-search input:focus{border-color:var(--brand-primary)}.clear-search{position:absolute;inset-block:0;inset-inline-end:0;width:var(--tap-min);min-height:var(--tap-min);border:0;color:var(--text-muted);background:transparent;font-size:1.55rem;cursor:pointer}.category-rail{display:flex;gap:8px;margin-top:8px;padding-bottom:2px;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none}.category-rail::-webkit-scrollbar{display:none}.category-rail button{flex:0 0 auto;min-height:var(--tap-min);padding:0 16px;border:1px solid var(--border-subtle);border-radius:999px;color:var(--text-primary);background:var(--surface-card);font-weight:650;cursor:pointer}.category-rail button.active{border-color:var(--brand-primary);color:var(--on-brand);background:var(--brand-primary)}.menu-category{scroll-margin-top:198px}.menu-category:focus{outline:0}.menu-no-results{display:grid;justify-items:start;gap:7px;margin:28px 0;padding:22px;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-card)}.menu-no-results span{color:var(--text-muted)}.menu-no-results .btn{margin-top:8px}.card{background:var(--surface-card);border:1px solid #e8e3d9;border-radius:var(--radius-lg);padding:14px;margin-bottom:12px;box-shadow:0 6px 22px #1f24300d}.item{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"copy image" "action image" "variants variants";gap:10px 14px;align-items:start;min-height:126px}.item-copy{grid-area:copy;display:grid;align-content:start;gap:4px;min-width:0}.item-image{grid-area:image;width:120px;aspect-ratio:1;border-radius:var(--radius-md);object-fit:cover;background:var(--surface-subtle)}.item .name{font:650 1rem/1.3 var(--font-brand)}.item .desc{display:-webkit-box;overflow:hidden;color:var(--text-muted);font-size:.9rem;-webkit-box-orient:vertical;-webkit-line-clamp:2}.item .price{margin-top:2px;color:var(--brand-primary-strong);font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.item-action{grid-area:action;align-self:end}.item-details-link{width:fit-content;min-height:32px;margin:2px 0 0;padding:0;border:0;color:var(--brand-primary);background:transparent;font-size:.82rem;font-weight:750;cursor:pointer}.variants{grid-area:variants;display:grid;gap:8px;padding-top:10px;border-top:1px solid var(--border-subtle)}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.btn{min-height:var(--tap-min);padding:0 18px;border-radius:999px;border:1px solid var(--brand-primary);background:var(--brand-primary);color:var(--on-brand);font-weight:700;cursor:pointer}.btn:hover:not([disabled]){background:var(--brand-primary-strong)}.btn.secondary{background:var(--surface-card);color:var(--brand-primary)}.btn.secondary:hover:not([disabled]){color:var(--on-brand)}.btn.small{padding:0 14px}.btn[disabled]{opacity:.55;cursor:not-allowed}.btn.block{width:100%}.qty{display:inline-flex;align-items:center;gap:4px}.qty button{width:var(--tap);height:var(--tap);border-radius:50%;border:1px solid var(--line);background:var(--card);font-size:1.2rem;cursor:pointer}.qty output{min-width:28px;text-align:center;font-variant-numeric:tabular-nums}.qty.compact{gap:2px;border:1px solid var(--border-subtle);border-radius:999px;background:var(--surface-card)}.qty.compact button{width:var(--tap-min);height:var(--tap-min);border:0;background:transparent}.qty.compact output{min-width:24px;font-weight:700}.menu-loading{padding-top:14px}.skeleton{position:relative;overflow:hidden;background:#e9e5dd}.skeleton:after{content:"";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgb(255 255 255 / 72%),transparent);animation:skeleton-wave 1.35s infinite}.skeleton-hero{height:118px;border-radius:var(--radius-lg)}.skeleton-search{height:48px;margin:14px 0;border-radius:var(--radius-md)}.skeleton-card{display:grid;grid-template-columns:1fr 96px;gap:18px;min-height:126px;margin-bottom:12px;padding:15px;border:1px solid #ebe7df;border-radius:var(--radius-lg);background:var(--surface-card)}.skeleton-lines{display:grid;align-content:center;gap:10px}.skeleton-lines span{height:12px;border-radius:8px;background:#e9e5dd}.skeleton-lines span:nth-child(1){width:68%;height:16px}.skeleton-lines span:nth-child(3){width:44%}.skeleton-image{width:96px;aspect-ratio:1;border-radius:var(--radius-md)}@keyframes skeleton-wave{to{transform:translate(100%)}}.item-sheet{width:min(620px,100%);max-height:min(88vh,760px);margin:auto auto 0;padding:0;overflow:hidden;color:var(--text-primary);border:0;border-radius:24px 24px 0 0;background:var(--surface-card);box-shadow:0 -20px 70px #16203a4d}.item-sheet::backdrop{background:#16203aa8;backdrop-filter:blur(2px)}.item-sheet-card{position:relative;max-height:min(88vh,760px);overflow-y:auto;overscroll-behavior:contain}.sheet-close{position:absolute;z-index:2;inset:12px 12px auto auto;width:48px;height:48px;border:1px solid rgb(255 255 255 / 48%);border-radius:50%;color:#fff;background:#16203a9e;font-size:1.5rem;cursor:pointer}.sheet-image,.sheet-image-fallback{display:block;width:100%;aspect-ratio:4 / 3;object-fit:cover;background:var(--surface-subtle)}.sheet-image-fallback{display:grid;place-items:center;color:var(--brand-primary);background:radial-gradient(circle at 70% 20%,#fff 0 12%,transparent 13%),linear-gradient(145deg,#ece9f8,#f4efe4)}.sheet-image-fallback span{display:grid;place-items:center;width:72px;height:72px;border:1px solid rgb(38 36 123 / 20%);border-radius:50%;font:600 1.7rem/1 var(--font-brand)}.sheet-content{padding:22px 18px calc(22px + env(safe-area-inset-bottom))}.sheet-content h2{margin:3px 0 8px;font-size:1.45rem}.sheet-description{margin:0 0 18px;color:var(--text-muted)}.sheet-action{position:sticky;bottom:0;padding-top:14px;background:linear-gradient(transparent,var(--surface-card) 18%)}.sheet-qty{width:100%;justify-content:space-between;padding:6px;border:1px solid var(--border-subtle);border-radius:999px}.sheet-choice{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px;padding:10px 0;border-top:1px solid var(--border-subtle)}.sheet-choice>span{display:grid}.sheet-choice small{color:var(--text-muted);font-size:.86rem}.single-choice strong{color:var(--brand-primary-strong);font-variant-numeric:tabular-nums}.sheet-variants legend{width:100%;margin-bottom:4px;font-weight:750}.bar{position:fixed;left:0;right:0;bottom:0;background:var(--surface-card);border-top:1px solid var(--border-subtle);padding:10px 16px calc(10px + env(safe-area-inset-bottom));z-index:12;box-shadow:0 -10px 30px #1f243014}.bar .inner{max-width:720px;margin:0 auto}.bar .inner>span{font-weight:700;font-variant-numeric:tabular-nums}.field{display:grid;gap:4px;margin:12px 0}.field label{font-weight:600}.field input,.field select,.field textarea{min-height:var(--tap);padding:8px 12px;border:1px solid #b8b4a8;border-radius:8px;background:#fff}.field .hint{color:var(--muted);font-size:.9rem}.field .error{color:var(--bad);font-size:.9rem}.choice{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);margin-bottom:10px;cursor:pointer}.choice input{margin-top:4px;width:20px;height:20px}.choice[aria-disabled=true]{opacity:.6;cursor:not-allowed}.choice .t{font-weight:600;display:block}.choice .d{color:var(--muted);font-size:.9rem}.banner{border-radius:var(--radius);padding:12px 14px;margin:12px 0;border:1px solid}.banner.error{background:#fdecea;border-color:#f2b8b5;color:#601410}.banner.info{background:#eef3ff;border-color:#c5d3f7}.banner .row{margin-top:8px;justify-content:flex-start}.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.85rem;font-weight:600;background:#eee}.badge.ok{background:#dff3e8;color:var(--ok)}.badge.warn{background:#fdf0d5;color:var(--warn)}.badge.bad{background:#fdecea;color:var(--bad)}.center{text-align:center;padding:64px 8px}.muted{color:var(--muted)}.mono{font-family:ui-monospace,Menlo,monospace;letter-spacing:.04em;font-size:1.1rem}ul.plain{list-style:none;margin:0;padding:0}.lines li{display:flex;justify-content:space-between;gap:12px;padding:4px 0;font-size:.95rem}@media(prefers-reduced-motion:no-preference){.btn,.category-rail button,.tabs button{transition:color .16s ease,background-color .16s ease,border-color .16s ease}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.skeleton:after{animation:none}}.tight{margin:6px 0 0}.spaced{margin-top:16px}fieldset.bare{border:0;padding:0;margin:0}a.btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.center-text{text-align:center}.qr{display:block;width:min(280px,100%);height:auto;margin:12px auto;border:1px solid var(--line);border-radius:8px}.share{margin-top:16px}.plain-h{margin:0 0 6px;color:var(--ink);text-transform:none;letter-spacing:0}.powered-by{padding:8px 16px 96px;color:var(--text-muted);font-size:.75rem;text-align:center}.safety-dialog{width:min(520px,calc(100% - 32px));padding:20px;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:calc(var(--radius) + 4px);box-shadow:0 20px 60px #16203a47}.safety-dialog::backdrop{background:#16203a9e}.safety-dialog h2{margin-top:0}.safety-dialog .row{flex-wrap:wrap}.safety-dialog .btn{flex:1 1 180px}.order-flow{padding-top:6px}.flow-heading{display:grid;justify-items:start;gap:5px;margin:12px 0 22px}.flow-heading h2{margin:0;font:650 clamp(1.65rem,7vw,2.15rem)/1.08 var(--font-brand);letter-spacing:-.025em}.flow-eyebrow,.summary-kicker{margin:0;color:var(--brand-warm);font-size:.72rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.flow-lede{max-width:42rem;margin:2px 0 0;color:var(--text-muted)}.flow-location{display:inline-flex;align-items:center;gap:6px;min-height:32px;margin-top:5px;padding:3px 11px;border:1px solid var(--border-subtle);border-radius:999px;color:var(--brand-primary-strong);background:var(--surface-card);font-size:.86rem;font-weight:750}.flow-location>span{color:var(--brand-warm);font-size:1rem}.order-lines{display:grid;gap:10px}.order-line{margin:0;padding:16px}.order-line-main{align-items:flex-start}.order-line-copy{display:grid;min-width:0;gap:2px}.order-line-copy>strong{font:650 1rem/1.3 var(--font-brand)}.order-line-variant{color:var(--text-muted);font-size:.88rem}.order-line-price{margin-top:5px;color:var(--brand-primary-strong);font-weight:750;font-variant-numeric:tabular-nums}.order-line-unit{font-size:.78rem}.estimate-card{margin-top:14px;padding:18px;border-color:#26247b33;background:linear-gradient(145deg,#fff,#f5f3fb)}.estimate-total{margin-top:8px;font-size:1.04rem}.estimate-total strong{color:var(--brand-primary-strong);font-size:1.25rem;font-variant-numeric:tabular-nums}.checkout-estimate{padding:18px;border-color:#b58a3c4d}.checkout-estimate strong{color:var(--brand-primary-strong);font-size:1.1rem;font-variant-numeric:tabular-nums}.quote-card .summary-kicker{margin-bottom:5px}.quote-card .receipt-row{padding-block:6px}.payment-choices>legend{margin-bottom:10px;font:650 1.05rem/1.3 var(--font-brand)}.payment-choice{position:relative;align-items:center;min-height:78px;padding:13px 14px;border-radius:var(--radius-lg);transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}.payment-choice.selected{border-color:var(--brand-primary);background:#f6f5fc;box-shadow:0 0 0 1px var(--brand-primary)}.payment-choice input{order:3;margin:0 0 0 auto;accent-color:var(--brand-primary)}.payment-icon{display:grid;place-items:center;flex:0 0 46px;width:46px;height:46px;border-radius:50%;color:var(--brand-primary);background:#efedf9;font-size:1.25rem;font-weight:800}.payment-choice.selected .payment-icon{color:var(--on-brand);background:var(--brand-primary)}.checkout-details{margin:18px 0;padding:18px;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-card)}.checkout-details h3{margin:0 0 12px;font:650 1.05rem/1.3 var(--font-brand)}.confirmation-hero{display:grid;justify-items:center;gap:8px;margin:12px 0 18px;padding:28px 20px;border-radius:22px;color:#f7fff9;background:linear-gradient(145deg,#1d6340,var(--state-success));text-align:center;box-shadow:0 18px 42px #237a4b2e}.confirmation-hero.pending{color:var(--text-primary);background:linear-gradient(145deg,#fff8e7,#f7e6bb);box-shadow:0 18px 42px #9a650024}.confirmation-hero .flow-eyebrow{color:#d8e9b9}.confirmation-hero.pending .flow-eyebrow{color:#805600}.confirmation-hero h2{margin:0;color:inherit;font:650 clamp(1.7rem,7vw,2.2rem)/1.08 var(--font-brand)}.confirmation-hero p:not(.flow-eyebrow){max-width:35rem;margin:0}.confirmation-hero .flow-location{color:inherit;border-color:#ffffff57;background:#ffffff1a}.confirmation-hero.pending .flow-location{border-color:#8056002e;background:#ffffff73}.confirmation-mark{display:grid;place-items:center;width:60px;height:60px;border:2px solid rgb(255 255 255 / 70%);border-radius:50%;font-size:1.65rem;font-weight:800}.confirmation-hero.pending .confirmation-mark{color:#805600;border-color:#8056005c}.receipt-card{padding:18px}.receipt-row{display:flex;justify-content:space-between;gap:16px;padding:8px 0;color:var(--text-muted);font-variant-numeric:tabular-nums}.receipt-total{margin-top:6px;padding-top:14px;border-top:1px solid var(--border-subtle);color:var(--text-primary);font-size:1.08rem}.receipt-total strong{color:var(--brand-primary-strong);font-size:1.25rem}.flow-actions{align-items:stretch}.flow-actions .btn{flex:1}.payment-recovery{margin-top:14px;padding-top:14px;border-top:1px solid var(--border-subtle)}.payment-recovery>.btn{margin-top:8px}.receipt-action{margin-top:12px}.receipt-print{display:none}@media print{@page{margin:12mm}body *{visibility:hidden!important}.receipt-print,.receipt-print *{visibility:visible!important}.receipt-print{display:block;position:fixed;inset:0;width:auto;padding:0;color:#111;background:#fff;font:12pt/1.45 Arial,sans-serif}.receipt-print h1{margin:0;font-size:18pt}.receipt-print h2{margin:4px 0 16px;font-size:13pt}.receipt-meta{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin:0 0 16px}.receipt-meta dt{color:#444}.receipt-meta dd{margin:0;text-align:right}.receipt-table{width:100%;border-collapse:collapse}.receipt-table th,.receipt-table td{padding:7px 4px;border-bottom:1px solid #ccc;text-align:left;vertical-align:top}.receipt-table th:first-child,.receipt-table td:first-child{width:3em;text-align:center}.receipt-table th:last-child,.receipt-table td:last-child{text-align:right}.receipt-line-note{display:block;color:#555;font-size:10pt}.receipt-print-total{display:flex;justify-content:space-between;margin-top:12px;padding-top:10px;border-top:2px solid #111;font-size:14pt}.receipt-disclaimer{margin-top:22px;color:#444;font-size:9pt;text-align:center}}@media(max-width:380px){.topbar{align-items:flex-start}.linkbtn{padding-inline:4px;font-size:.88rem}.item{grid-template-columns:minmax(0,1fr) 88px}.item-image{width:88px}.bar .inner{align-items:stretch;flex-direction:column;gap:8px}.bar .btn{width:100%}.flow-actions{flex-direction:column-reverse}.flow-actions .btn{width:100%}}@media(min-width:768px){.shell{padding-inline:24px}.menu-tools{margin-inline:-24px;padding-inline:24px}.item{min-height:132px;padding:16px}.item-image{width:136px}.item-sheet{margin:auto;border-radius:24px}.sheet-image,.sheet-image-fallback{max-height:320px}}
