:root{--brand:#087b2b;--brand-dark:#05601f;--brand-light:#eef7f1;--accent:#d97706;--ink:#10161f;--ink-soft:#64748b;--line:#e6eaef;--surface:#fff;--surface-muted:#e9edf1;--canvas:#f4f6f8;--radius:14px;--tap:44px;--shell:1024px;--strip-compact-h:48px}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0;padding:0}body{background:var(--canvas);color:var(--ink);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.4}button{font:inherit;color:inherit}.screen{flex-direction:column;min-height:100svh;display:flex}.screen-center{justify-content:center;align-items:center;padding:24px}.scan-card,.loading-card{background:var(--surface);border-radius:var(--radius);text-align:center;width:100%;max-width:380px;padding:32px 24px;box-shadow:0 8px 24px #10161f0f}.scan-icon{background:var(--brand-light);width:96px;height:96px;color:var(--brand);border-radius:50%;justify-content:center;align-items:center;margin-bottom:20px;display:inline-flex}.scan-icon-warning{color:var(--accent);background:#fff4ed}.scan-title{margin:0 0 10px;font-size:1.25rem;font-weight:700}.scan-text{color:var(--ink-soft);margin:0}.button-primary{min-height:var(--tap);background:var(--brand);color:#fff;cursor:pointer;border:0;border-radius:10px;width:100%;margin-top:22px;font-weight:600}.button-primary:active{background:var(--brand-dark)}.spinner{border:3px solid var(--line);border-top-color:var(--brand);border-radius:50%;width:38px;height:38px;margin:0 auto 16px;animation:.8s linear infinite spin;display:block}.loading-text{color:var(--ink-soft);margin:0}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2.4s}}.menu-header{z-index:5;background:var(--surface);border-bottom:1px solid var(--line);padding-top:max(10px, env(safe-area-inset-top));position:sticky;top:0}.menu-header-inner{max-width:var(--shell);margin-inline:auto;padding:0 14px}.menu-header-top{justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:10px;display:flex}.menu-place{flex-direction:column;min-width:0;display:flex}.menu-branch{font-size:1.05rem;font-weight:700}.menu-table{color:var(--ink-soft);font-size:.82rem}.menu-languages{flex-shrink:0;gap:4px;display:flex}.language-chip{border:1px solid var(--line);min-width:38px;min-height:32px;color:var(--ink-soft);cursor:pointer;background:0 0;border-radius:8px;font-size:.78rem;font-weight:600}.language-chip.is-active{background:var(--brand);border-color:var(--brand);color:#fff}.menu-search{height:var(--tap);background:var(--canvas);color:var(--ink-soft);border-radius:10px;align-items:center;gap:8px;margin-bottom:10px;padding:0 12px;display:flex}.menu-search input{min-width:0;color:var(--ink);background:0 0;border:0;outline:none;flex:1;font-size:16px}.menu-search input::-webkit-search-cancel-button{display:none}.menu-search-clear{color:var(--ink-soft);cursor:pointer;background:0 0;border:0;padding:4px;display:inline-flex}.category-strip{top:var(--menu-header-h,0px);z-index:4;background:var(--surface);border-bottom:1px solid var(--line);position:sticky}.category-strip-track{max-width:var(--shell);scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:8px;margin-inline:auto;padding:10px 14px;transition:padding .2s;display:flex;position:relative;overflow-x:auto}.category-strip-track::-webkit-scrollbar{display:none}.category-strip.is-compact .category-strip-track{padding:7px 14px}.category-chip{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:12px;flex-direction:column;flex:none;align-items:center;gap:6px;width:84px;padding:6px;font-size:.82rem;font-weight:600;transition:background .15s,border-color .15s,color .15s,border-radius .2s;display:flex}.category-chip-image{background:var(--canvas);border-radius:10px;width:64px;height:64px;transition:width .2s,height .2s,opacity .15s;overflow:hidden}.category-chip-image img{object-fit:cover;width:100%;height:100%}.category-chip-image-empty{width:100%;height:100%;display:block}.category-chip-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:block;overflow:hidden}.category-strip.is-compact .category-chip{border-radius:999px;flex-direction:row;width:auto;min-height:34px;padding:0 14px;font-size:.88rem}.category-strip.is-compact .category-chip-image{opacity:0;width:0;height:0}.category-chip.is-active{background:var(--brand);border-color:var(--brand);color:#fff}.menu-body{width:100%;max-width:var(--shell);padding:12px 14px calc(24px + env(safe-area-inset-bottom));flex:1;margin-inline:auto}.menu-section{scroll-margin-top:calc(var(--menu-header-h,0px) + var(--strip-compact-h) + 8px)}.menu-section+.menu-section{margin-top:16px}.menu-section-title{margin:0 0 8px;font-size:1rem;font-weight:700}.menu-empty{text-align:center;color:var(--ink-soft);margin:48px 0}.product-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 8px;display:grid}@media (width>=600px){.product-list{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width>=860px){.product-list{grid-template-columns:repeat(5,minmax(0,1fr))}}.product-card{flex-direction:column;gap:6px;min-width:0;display:flex}.product-open{text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;gap:4px;min-width:0;padding:0;display:flex}.product-open:active{transform:scale(.995)}.product-image{aspect-ratio:1;background:var(--surface);border-radius:10px;width:100%;margin-bottom:2px;position:relative;overflow:hidden}.product-image>img{object-fit:cover;width:100%;height:100%}.product-image-empty{background:var(--canvas);width:100%;height:100%;display:block}.product-name{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.78rem;line-height:1.25;display:-webkit-box;overflow:hidden}.product-price{margin-top:auto;font-size:.86rem;font-weight:700}.product-tags{align-items:center;gap:4px;max-width:calc(100% - 12px);display:flex;position:absolute;top:6px;left:6px}.product-tag{object-fit:contain;filter:drop-shadow(0 1px 2px #10161f40);width:auto;max-width:100%;height:18px}.product-badge{background:var(--brand);color:#fff;border-radius:11px;justify-content:center;align-items:center;min-width:22px;height:22px;padding:0 6px;font-size:.75rem;font-weight:700;display:inline-flex;position:absolute;bottom:6px;right:6px}.product-add,.product-stepper{background:var(--surface-muted);border:0;border-radius:9px;align-items:center;width:100%;min-height:34px;font-size:.8rem;font-weight:600;display:flex}.product-add{color:var(--ink);cursor:pointer;justify-content:center}.product-add:active{filter:brightness(.94)}.product-stepper{justify-content:space-between}.product-stepper button{width:34px;min-height:34px;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:9px;justify-content:center;align-items:center;display:inline-flex}.product-stepper b{font-weight:700}.menu-screen.has-cart-bar .menu-body{padding-bottom:calc(84px + env(safe-area-inset-bottom))}.cart-bar{width:min(calc(100% - 28px), var(--shell));left:50%;bottom:calc(14px + env(safe-area-inset-bottom));z-index:8;background:var(--brand);color:#fff;cursor:pointer;border:0;border-radius:14px;align-items:center;gap:10px;min-height:54px;padding:0 16px;font-weight:600;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 8px 20px #087b2b47}.cart-bar:active{background:var(--brand-dark)}.cart-bar-icon{display:inline-flex;position:relative}.cart-bar-count{min-width:18px;height:18px;color:var(--brand);background:#fff;border-radius:9px;justify-content:center;align-items:center;padding:0 5px;font-size:.7rem;display:inline-flex;position:absolute;top:-6px;right:-8px}.cart-bar-label{text-align:left;flex:1}.cart-bar-total{font-weight:700}.sheet-backdrop{z-index:20;background:#10161f73;justify-content:center;align-items:flex-end;animation:.15s fade;display:flex;position:fixed;inset:0}.sheet{width:100%;max-width:var(--shell);background:var(--surface);border-radius:18px 18px 0 0;flex-direction:column;max-height:92svh;animation:.22s rise;display:flex}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{transform:translateY(24px)}}@media (prefers-reduced-motion:reduce){.sheet-backdrop,.sheet{animation:none}.category-strip-track,.category-chip,.category-chip-image{transition:none}}.sheet-head{border-bottom:1px solid var(--line);flex:none;padding:14px 52px 12px 18px;position:relative}.sheet-grip{background:var(--line);border-radius:2px;width:36px;height:4px;position:absolute;top:6px;left:50%;transform:translate(-50%)}.sheet-title{margin:0;font-size:1.05rem;font-weight:700}.sheet-close{background:var(--canvas);width:36px;height:36px;color:var(--ink-soft);cursor:pointer;border:0;border-radius:50%;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:10px;right:12px}.sheet-body{-webkit-overflow-scrolling:touch;flex:1;padding:14px 18px;overflow-y:auto}.sheet-footer{padding:12px 18px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface);flex:none}.sheet-footer .button-primary{margin-top:0}.product-sheet-image{aspect-ratio:16/10;background:var(--canvas);border-radius:12px;margin-bottom:12px;overflow:hidden}.product-sheet-image img{object-fit:cover;width:100%;height:100%}.product-sheet-description{color:var(--ink-soft);margin:0 0 16px}.product-sheet-actions{align-items:center;gap:12px;display:flex}.product-sheet-actions .button-primary{flex:1}.stepper{border:1px solid var(--line);border-radius:10px;align-items:center;gap:2px;display:inline-flex;overflow:hidden}.stepper button{width:var(--tap);height:var(--tap);color:var(--ink);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.stepper b{text-align:center;min-width:24px}.stepper-sm button{width:34px;height:34px}.option-group{margin-bottom:18px}.option-group-head{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:8px;display:flex}.option-group-head h3{margin:0;font-size:.95rem;font-weight:700}.option-hint{color:var(--ink-soft);font-size:.76rem}.option-hint.is-required{color:var(--accent)}.option-list{flex-direction:column;gap:6px;display:flex}.option-row{width:100%;min-height:var(--tap);border:1px solid var(--line);background:var(--surface);text-align:left;cursor:pointer;border-radius:10px;align-items:center;gap:10px;padding:6px 12px;display:flex}.option-row.is-checked{border-color:var(--brand);background:var(--brand-light)}.option-row.is-fixed{opacity:.65;cursor:default}.option-mark{border:2px solid var(--line);border-radius:6px;flex:none;width:20px;height:20px}.option-mark.is-radio{border-radius:50%}.option-row.is-checked .option-mark{border-color:var(--brand);background:var(--brand);box-shadow:inset 0 0 0 3px #fff}.option-name{flex:1;min-width:0}.option-price{color:var(--ink-soft);font-size:.85rem}.cart-empty{text-align:center;color:var(--ink-soft);padding:32px 0}.cart-empty h3{color:var(--ink);margin:12px 0 4px;font-size:1rem}.cart-empty p{margin:0;font-size:.88rem}.cart-lines{flex-direction:column;gap:12px;display:flex}.cart-line{align-items:center;gap:10px;display:flex}.cart-line-thumb{background:var(--canvas);border-radius:10px;flex:0 0 56px;width:56px;height:56px;overflow:hidden}.cart-line-thumb img{object-fit:cover;width:100%;height:100%}.cart-line-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.cart-line-body small{color:var(--ink-soft);font-size:.78rem}.cart-line-price{color:var(--brand);font-weight:700}.cart-total{justify-content:space-between;align-items:baseline;margin-bottom:10px;font-size:1.02rem;display:flex}.button-ghost{width:100%;min-height:40px;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:10px;justify-content:center;align-items:center;gap:6px;margin-top:8px;display:flex}.button-primary:disabled{opacity:.5;cursor:default}.button-primary{justify-content:center;align-items:center;gap:8px;display:inline-flex}.payment-logo{object-fit:contain;border-radius:6px;width:28px;height:28px}.field{margin-top:18px;display:block}.field-label{margin-bottom:6px;font-size:.84rem;font-weight:600;display:block}.field textarea{border:1px solid var(--line);background:var(--surface);width:100%;font:inherit;color:var(--ink);resize:none;border-radius:10px;outline:none;padding:10px 12px;font-size:16px}.field textarea:focus{border-color:var(--brand)}.form-error{color:#b91c1c;background:#fef2f2;border-radius:10px;margin:0 0 12px;padding:10px 12px;font-size:.88rem}.order-number{letter-spacing:-.02em;color:var(--brand);margin:0 0 8px;font-size:1.9rem;font-weight:800}.order-summary{border-top:1px solid var(--line);text-align:left;margin-top:20px;padding-top:14px}.order-summary-line{justify-content:space-between;gap:12px;padding:4px 0;font-size:.9rem;display:flex}.order-summary-line.is-total{border-top:1px solid var(--line);margin-top:8px;padding-top:10px;font-size:1rem}
