:root{--paper:#f7f0e5;--paper-deep:#eee1d0;--surface:#fffdf9;--surface-soft:#fbf6ee;--ink:#241a16;--muted:#6f625b;--border:#ded2c5;--accent:#c84d32;--accent-dark:#9f3522;--accent-soft:#f7ddd4;--sage:#406b58;--sage-soft:#e4eee8;--warning:#9b6416;--warning-soft:#fff1cf;--danger:#a7392c;--danger-soft:#fae2dd;--shadow-sm:0 6px 22px #452a1c12;--shadow-lg:0 22px 70px #2f1c1333;--radius-sm:8px;--radius-md:14px;--radius-lg:22px;--font-display:Georgia, "Times New Roman", serif;--font-body:"Avenir Next", Avenir, "Segoe UI", sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--paper)}body{min-width:320px;color:var(--ink);background:radial-gradient(circle at 8% 0%, #ffffffb3, transparent 28rem), var(--paper);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0}body.no-scroll{overflow:hidden}button,input,textarea{color:inherit;font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:not(:disabled),a{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline-offset:3px;outline:3px solid #c84d3252}h1,h2,h3,p{margin-top:0}h1,h2{font-family:var(--font-display);letter-spacing:-.035em}.eyebrow{color:var(--accent-dark);letter-spacing:.14em;text-transform:uppercase;margin-bottom:6px;font-size:.72rem;font-weight:800}.brand-mark{width:48px;height:48px;color:var(--surface);background:var(--accent);border-radius:16px;flex:none;place-items:center;display:grid;box-shadow:0 8px 20px #9f352238}.icon-button{border:1px solid var(--border);background:var(--surface);border-radius:50%;place-items:center;width:44px;height:44px;padding:0;transition:border-color .18s,background .18s;display:grid}.icon-button:hover{background:var(--surface-soft);border-color:#b8a89a}.primary-button,.secondary-button{border-radius:14px;justify-content:center;align-items:center;gap:10px;min-height:52px;padding:0 22px;font-weight:800;text-decoration:none;transition:background .18s,border-color .18s,opacity .18s;display:inline-flex}.primary-button{color:#fff;border:1px solid var(--accent);background:var(--accent);box-shadow:0 10px 24px #9f352233}.primary-button:hover:not(:disabled){border-color:var(--accent-dark);background:var(--accent-dark)}.primary-button:disabled{cursor:not-allowed;opacity:.55}.secondary-button{color:var(--ink);border:1px solid var(--border);background:var(--surface)}.entry-page,.state-page,.result-page{place-items:center;min-height:100svh;padding:24px;display:grid}.entry-card,.state-card,.result-card{width:min(100%,560px);box-shadow:var(--shadow-lg);background:#fffdf9eb;border:1px solid #ded2c5d9;border-radius:28px;padding:clamp(28px,7vw,52px)}.entry-card .brand-mark{margin-bottom:28px}.entry-card h1,.state-card h1,.result-card h1{margin-bottom:16px;font-size:clamp(2.2rem,8vw,3.6rem);line-height:.98}.entry-copy,.state-card>p,.result-copy{color:var(--muted);font-size:1.04rem;line-height:1.65}.entry-steps{gap:12px;margin-top:28px;display:grid}.entry-steps span{border:1px solid var(--border);background:var(--surface-soft);border-radius:14px;align-items:center;gap:12px;min-height:52px;padding:12px 16px;font-weight:700;display:flex}.state-card{text-align:center}.state-icon,.result-icon{border-radius:50%;place-items:center;width:66px;height:66px;margin:0 auto 22px;display:grid}.state-icon.danger,.result-icon.danger{color:var(--danger);background:var(--danger-soft)}.result-icon.success{color:var(--sage);background:var(--sage-soft)}.result-icon.pending{color:var(--warning);background:var(--warning-soft)}.state-card .primary-button{margin-top:10px}.menu-page{min-height:100svh;padding-bottom:108px}.menu-shell{width:min(100%,1120px);margin:0 auto;padding:22px 18px 60px}.offline-banner{z-index:60;color:#fff;background:var(--danger);justify-content:center;align-items:center;gap:8px;min-height:42px;padding:8px 16px;font-size:.88rem;font-weight:750;display:flex;position:sticky;top:0}.restaurant-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.restaurant-brand{align-items:center;gap:13px;min-width:0;display:flex}.restaurant-brand h1{text-overflow:ellipsis;white-space:nowrap;margin-bottom:0;font-size:clamp(1.8rem,6vw,2.6rem);line-height:1;overflow:hidden}.restaurant-brand .eyebrow{margin-bottom:3px}.help-button{min-height:42px;color:var(--muted);border:1px solid var(--border);background:#fffdf9b3;border-radius:999px;align-items:center;gap:7px;padding:0 13px;font-weight:750;display:inline-flex}.help-button:disabled{opacity:.58}.table-confidence{border:1px solid var(--border);border-radius:var(--radius-md);min-height:70px;box-shadow:var(--shadow-sm);background:#fffdf9d1;justify-content:space-between;align-items:center;gap:14px;margin-top:22px;padding:14px 16px;display:flex}.table-confidence>div{align-items:center;gap:11px;display:flex}.table-confidence svg{color:var(--accent)}.table-confidence small,.table-confidence strong{display:block}.table-confidence small{color:var(--muted);margin-bottom:2px;font-size:.72rem;font-weight:650}.dine-in-badge{color:var(--sage);background:var(--sage-soft);border-radius:999px;flex:none;padding:7px 11px;font-size:.76rem;font-weight:800}.menu-intro{padding:42px 2px 24px}.menu-intro h2{margin-bottom:9px;font-size:clamp(2.4rem,10vw,4.8rem);line-height:.97}.menu-intro>p:last-child{color:var(--muted);margin-bottom:0;font-size:1rem}.search-field{border:1px solid var(--border);background:var(--surface);height:54px;box-shadow:var(--shadow-sm);border-radius:15px;align-items:center;gap:11px;padding:0 16px;display:flex}.search-field svg{color:var(--muted);flex:none}.search-field input{background:0 0;border:0;outline:0;width:100%;height:100%;font-size:1rem}.search-field input::placeholder{color:#897b73}.category-nav{z-index:30;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);scrollbar-width:none;background:#f7f0e5f0;gap:8px;margin:18px -18px 0;padding:11px 18px;display:flex;position:sticky;top:0;overflow-x:auto}.offline-banner+.menu-shell .category-nav{top:42px}.category-nav::-webkit-scrollbar{display:none}.category-nav a{color:var(--ink);border:1px solid var(--border);background:var(--surface);border-radius:999px;flex:none;padding:9px 14px;font-size:.85rem;font-weight:750;text-decoration:none;transition:color .18s,border-color .18s,background .18s}.category-nav a:hover{color:#fff;border-color:var(--accent);background:var(--accent)}.menu-categories{gap:48px;padding-top:28px;display:grid}.menu-category{scroll-margin-top:76px}.section-heading{justify-content:space-between;align-items:end;gap:16px;margin-bottom:16px;display:flex}.section-heading h2{margin-bottom:0;font-size:2rem}.section-heading>span{color:var(--muted);font-size:.8rem;font-weight:700}.product-grid{grid-template-columns:minmax(0,1fr);gap:14px;display:grid}.product-card{text-align:left;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);min-width:0;box-shadow:var(--shadow-sm);grid-template-columns:126px minmax(0,1fr);padding:0;transition:border-color .18s,box-shadow .18s,background .18s;display:grid;overflow:hidden}.product-card:hover:not(:disabled){background:#fffaf4;border-color:#c2a99b;box-shadow:0 12px 30px #452a1c1c}.product-card:disabled{cursor:not-allowed;opacity:.67}.product-card-image{background:var(--paper-deep);min-height:154px;position:relative}.product-image,.image-placeholder{width:100%;height:100%;min-height:154px}.product-image{object-fit:cover;display:block}.image-placeholder{color:#8d6f60;background:linear-gradient(135deg,#ffffff59,#0000),repeating-linear-gradient(45deg,#ead9c7,#ead9c7 10px,#efdfcf 10px 20px);align-content:center;justify-items:center;gap:8px;font-size:.68rem;font-weight:750;display:grid}.product-image.compact,.image-placeholder.compact{border-radius:12px;width:66px;height:66px;min-height:66px}.sold-out{color:#fff;text-align:center;background:#241a16e0;border-radius:8px;padding:7px 9px;font-size:.72rem;font-weight:800;position:absolute;inset:auto 10px 10px}.product-card-copy{flex-direction:column;justify-content:space-between;gap:14px;min-width:0;padding:16px;display:flex}.product-card-copy h3{margin-bottom:7px;font-size:1rem;line-height:1.25}.product-card-copy p{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:0;font-size:.8rem;line-height:1.45;display:-webkit-box;overflow:hidden}.product-card-footer{justify-content:space-between;align-items:center;gap:10px;display:flex}.product-card-footer strong{font-size:.93rem}.add-circle{color:#fff;background:var(--accent);border-radius:50%;place-items:center;width:32px;height:32px;display:grid}.empty-menu{color:var(--muted);border-radius:var(--radius-lg);text-align:center;border:1px dashed #c9b9aa;margin-top:32px;padding:52px 22px}.empty-menu svg{color:var(--accent)}.empty-menu h2{color:var(--ink);margin:14px 0 8px}.cart-bar-wrap{z-index:40;padding:10px 14px max(10px, env(safe-area-inset-bottom));background:linear-gradient(#0000,#f7f0e5e0 26%);position:fixed;bottom:0;left:0;right:0}.cart-bar{color:#fff;background:var(--ink);text-align:left;border:0;border-radius:18px;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;width:min(100%,700px);min-height:64px;margin:0 auto;padding:9px 16px 9px 10px;display:grid;box-shadow:0 16px 38px #241a1647}.cart-count{width:46px;height:46px;color:var(--ink);background:var(--paper);border-radius:13px;place-items:center;font-size:.72rem;font-weight:900;display:grid}.cart-count svg{margin-bottom:-6px}.cart-bar>span:nth-child(2){justify-content:space-between;gap:10px;font-weight:800;display:flex}.cart-bar small{color:#e8d9ca;font-size:.85rem}.dialog-backdrop,.drawer-backdrop{z-index:100;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#241a1694;justify-content:center;align-items:end;display:flex;position:fixed;inset:0}.item-dialog,.cart-drawer{background:var(--surface);width:min(100%,680px);max-height:94svh;box-shadow:var(--shadow-lg);border-radius:24px 24px 0 0;animation:.22s ease-out sheet-in;overflow:hidden}.item-dialog{grid-template-rows:210px minmax(0,1fr) auto;display:grid}.dialog-image{background:var(--paper-deep);position:relative;overflow:hidden}.dialog-image .product-image,.dialog-image .image-placeholder{min-height:210px}.close-button{box-shadow:var(--shadow-sm);position:absolute;top:14px;right:14px}.dialog-content{padding:24px 20px 8px;overflow-y:auto}.item-heading{justify-content:space-between;align-items:start;gap:18px;display:flex}.item-heading h2{margin-bottom:0;font-size:2rem;line-height:1}.item-heading>strong{color:var(--accent-dark);flex:none}.item-description{color:var(--muted);margin:14px 0 26px;line-height:1.55}.modifier-group{border:0;min-width:0;margin:0 0 26px;padding:0}.modifier-group legend,.payment-options legend{width:100%;margin-bottom:10px;font-size:1rem;font-weight:850}.modifier-group legend span{float:right;color:var(--muted);background:var(--surface-soft);border-radius:999px;padding:4px 8px;font-size:.68rem}.modifier-group.invalid{border-radius:var(--radius-md);background:#fff9f7;border:1px solid #d99283;padding:12px}.field-error{color:var(--danger);margin:-2px 0 8px;font-size:.8rem;font-weight:750}.option-list{border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.option-row{border-bottom:1px solid var(--border);cursor:pointer;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;min-height:54px;padding:10px 13px;display:grid}.option-row:last-child{border-bottom:0}.option-row:hover{background:var(--surface-soft)}.option-row input{opacity:0;width:1px;height:1px;position:absolute}.selection-control,.radio-dot{color:#0000;border:1.5px solid #ae9e91;border-radius:50%;place-items:center;width:22px;height:22px;display:grid}.option-row input:checked+.selection-control{color:#fff;border-color:var(--accent);background:var(--accent)}.option-row small{color:var(--muted);font-size:.75rem}.remarks-field{gap:5px;margin-bottom:18px;font-weight:850;display:grid}.remarks-field small{color:var(--muted);font-size:.75rem;font-weight:500}.remarks-field textarea{resize:vertical;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);margin-top:6px;padding:13px;line-height:1.45}.dialog-footer,.drawer-footer{padding:12px 16px max(12px, env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--surface);align-items:center;gap:12px;display:flex;box-shadow:0 -8px 24px #241a160d}.quantity-stepper{border:1px solid var(--border);background:var(--surface);border-radius:13px;grid-template-columns:42px 32px 42px;align-items:center;display:grid}.quantity-stepper button{background:0 0;border:0;place-items:center;height:48px;padding:0;display:grid}.quantity-stepper button:disabled{opacity:.35}.quantity-stepper strong{text-align:center}.quantity-stepper.small{border-radius:10px;grid-template-columns:34px 28px 34px}.quantity-stepper.small button{height:36px}.add-button{flex:1;justify-content:space-between}.cart-drawer{grid-template-rows:auto minmax(0,1fr) auto;display:grid}.drawer-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:20px;display:flex}.drawer-header h2{margin-bottom:0;font-size:2rem}.drawer-body{padding:6px 20px 22px;overflow-y:auto}.cart-item{border-bottom:1px solid var(--border);gap:13px;padding:16px 0;display:flex}.cart-item-copy{flex:1;min-width:0}.cart-item-title{justify-content:space-between;align-items:start;gap:12px;display:flex}.cart-item-title h3,.cart-item-title strong{margin-bottom:0;font-size:.93rem}.cart-item-copy p{color:var(--muted);margin:5px 0 0;font-size:.75rem;line-height:1.4}.cart-item-copy .cart-remarks{color:var(--accent-dark);font-style:italic}.cart-item-actions{justify-content:space-between;align-items:center;gap:12px;margin-top:11px;display:flex}.text-button{background:0 0;border:0;align-items:center;gap:5px;padding:6px;font-size:.75rem;font-weight:750;display:inline-flex}.danger-text{color:var(--danger)}.bill-summary{border-radius:var(--radius-md);background:var(--surface-soft);margin-top:22px;padding:18px}.bill-summary h3{margin-bottom:12px;font-size:.9rem}.bill-summary dl,.result-totals{gap:10px;margin:0;display:grid}.bill-summary dl>div,.result-totals>div{justify-content:space-between;align-items:center;gap:16px;display:flex}.bill-summary dt,.bill-summary dd,.result-totals dt,.result-totals dd{margin:0;font-size:.82rem}.bill-summary dt,.result-totals dt{color:var(--muted)}.bill-summary dt small{color:#8d7e75}.bill-summary .bill-total{border-top:1px solid var(--border);margin-top:5px;padding-top:12px}.bill-total dt,.bill-total dd{color:var(--ink);font-size:1rem;font-weight:900}.server-price-note{color:var(--muted);margin:11px 0 0;font-size:.68rem}.payment-options{border:0;gap:9px;margin:26px 0 0;padding:0;display:grid}.payment-option{border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;min-height:66px;padding:10px 13px;display:grid}.payment-option:has(input:checked){border-color:var(--accent);background:#fff9f6}.payment-option input{opacity:0;position:absolute}.payment-icon{width:40px;height:40px;color:var(--accent-dark);background:var(--accent-soft);border-radius:12px;place-items:center;display:grid}.payment-option strong,.payment-option small{display:block}.payment-option strong{margin-bottom:3px;font-size:.88rem}.payment-option small{color:var(--muted);font-size:.71rem}.payment-option input:checked~.radio-dot{border:6px solid var(--accent)}.secure-note{color:var(--muted);justify-content:center;align-items:center;gap:7px;margin-top:20px;font-size:.72rem;display:flex}.secure-note svg{color:var(--sage)}.inline-alert{border-radius:12px;margin-top:18px;padding:12px 14px;font-size:.82rem;font-weight:650;line-height:1.45}.inline-alert.danger{color:var(--danger);background:var(--danger-soft)}.inline-alert.warning{color:var(--warning);background:var(--warning-soft)}.inline-alert.success{color:var(--sage);background:var(--sage-soft)}.checkout-button{width:100%}.result-card{text-align:center}.result-card .eyebrow{margin-bottom:9px}.result-card h1{font-size:clamp(2.2rem,9vw,3.6rem)}.receipt-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-soft);text-align:left;margin:28px 0 22px;padding:18px}.receipt-title{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:14px;padding-bottom:13px;display:flex}.receipt-title>span{align-items:center;gap:8px;display:flex}.receipt-items{gap:12px;padding:15px 0;display:grid}.receipt-items>div{justify-content:space-between;align-items:start;gap:14px;font-size:.82rem;display:flex}.receipt-items small{color:var(--muted);margin-top:3px;display:block}.result-totals{border-top:1px solid var(--border);padding-top:13px}.result-button{width:100%;margin-top:10px}.spin{animation:1s linear infinite spin}.page-loader{min-height:100svh;color:var(--muted);place-items:center;display:grid}.skeleton{border-radius:var(--radius-md);background:#e8ddcf;position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(100deg,#0000 20%,#ffffff8c 50%,#0000 80%);animation:1.4s infinite shimmer;position:absolute;inset:0;transform:translate(-100%)}.hero-skeleton{height:104px}.search-skeleton{height:54px;margin-top:42px}.category-skeleton{width:80%;height:42px;margin:18px 0 28px}.product-skeleton{height:154px}@keyframes sheet-in{0%{opacity:0;transform:translateY(36px)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{to{transform:translate(100%)}}@media (min-width:700px){.menu-shell{padding-inline:28px}.category-nav{margin-inline:-28px;padding-inline:28px}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.product-card{grid-template-columns:42% minmax(0,1fr)}.item-dialog,.cart-drawer{border-radius:26px;margin-bottom:3vh}.item-dialog{grid-template-rows:240px minmax(0,1fr) auto}.dialog-image .product-image,.dialog-image .image-placeholder{min-height:240px}.dialog-backdrop,.drawer-backdrop{align-items:center;padding:24px}}@media (min-width:1020px){.menu-shell{padding-top:34px}.restaurant-header,.table-confidence,.menu-intro,.search-field{width:min(100%,820px);margin-left:auto;margin-right:auto}.menu-intro{text-align:center;padding-top:60px}.product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.product-card{grid-template-columns:1fr}.product-card-image,.product-card-image .product-image,.product-card-image .image-placeholder{min-height:210px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
