:root{--fz-surface: #f4f4f2;--fz-surface-raised: #ffffff;--fz-surface-kitchen: #111827;--fz-surface-kitchen-raised: #1f2937;--fz-surface-kitchen-late: #3f1d1d;--fz-ink: #111827;--fz-ink-muted: #6b7280;--fz-ink-inverse: #ffffff;--fz-line: #e5e7eb;--fz-money-in: #047857;--fz-money-in-soft: #ecfdf5;--fz-money-out: #b91c1c;--fz-money-out-soft: #fef2f2;--fz-attention: #b45309;--fz-attention-soft: #fef3c7;--fz-action: #1d4ed8;--fz-action-soft: #eff6ff;--fz-text-xs: 12px;--fz-text-sm: 13px;--fz-text-base: 15px;--fz-text-md: 17px;--fz-text-lg: 22px;--fz-text-xl: 28px;--fz-text-display: 40px;--fz-text-display-lg: 56px;--fz-text-display-xl: 72px;--fz-space-xs: 4px;--fz-space-sm: 8px;--fz-space-md: 12px;--fz-space-lg: 16px;--fz-space-xl: 24px;--fz-space-xxl: 32px;--fz-radius-sm: 8px;--fz-radius-md: 10px;--fz-radius-lg: 12px;--fz-radius-pill: 999px;--fz-touch-primary: 56px;--fz-touch-secondary: 44px;--fz-touch-gap: 8px;--fz-touch-kiosk: 96px;--fz-motion-fast: .1s;--fz-motion-base: .15s;--fz-focus-ring: #1d4ed8;--fz-focus-ring-on-dark: #ffffff;--fz-focus-width: 3px;--fz-focus-offset: 2px;--fz-z-sticky: 10;--fz-z-overlay: 20;--fz-z-modal: 30;--fz-z-toast: 40}.fz-numeric{font-variant-numeric:tabular-nums}:focus-visible{outline:var(--fz-focus-width) solid var(--fz-focus-ring);outline-offset:var(--fz-focus-offset)}.fz-on-dark :focus-visible,[data-surface=dark] :focus-visible{outline-color:var(--fz-focus-ring-on-dark)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}}*{box-sizing:border-box}html,body{margin:0}body{font-family:system-ui,-apple-system,sans-serif;background:#f4f4f2;color:#1a1a1a;-webkit-tap-highlight-color:transparent}.shop{max-width:480px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column}.shop-header{background:#111827;color:#fff;padding:16px;border-radius:0 0 16px 16px}.shop-header h1{margin:0;font-size:var(--fz-text-lg)}.shop-header .sub{color:#9ca3af;font-size:13px;margin-top:2px}.shop-header .lang{display:flex;gap:6px;margin-top:10px}.shop-header .lang button{min-height:44px;padding:0 14px;border:0;border-radius:999px;background:#374151;color:#e5e7eb;font:inherit;font-size:13px;cursor:pointer}.shop-header .lang button.on{background:#fff;color:#111827;font-weight:700}.shop-list{flex:1;padding:12px 12px 140px}.category-title{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#6b7280;margin:16px 2px 8px;font-weight:700}.item{display:flex;align-items:center;gap:10px;background:#fff;border-radius:12px;padding:10px 12px;margin-bottom:8px;box-shadow:0 1px 2px #0000000f}.item.out{opacity:.55}.item .info{flex:1;min-width:0}.item .name{font-size:15px;font-weight:600}.item .price{font-size:13px;color:#6b7280;font-variant-numeric:tabular-nums}.item .allergens{font-size:12px;color:#6b7280;margin-top:4px}.tag{display:inline-block;margin-top:4px;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:700}.out-tag{background:#fef2f2;color:#b91c1c}.few-tag{background:#fef3c7;color:#92400e}.warn-tag{background:#fef3c7;color:#b45309}.qty{display:flex;align-items:center;gap:8px}.qty button{min-width:44px;min-height:44px;border-radius:10px;border:1px solid #e5e7eb;background:#f9fafb;color:#111827;font-size:22px;line-height:1;cursor:pointer}.qty button:disabled{opacity:.4;cursor:default}.qty .count{min-width:22px;text-align:center;font-weight:700;font-variant-numeric:tabular-nums}.shop-form{flex:1;padding:16px 12px 160px;display:flex;flex-direction:column;gap:6px}.shop-form label{font-size:13px;font-weight:700;color:#374151;margin-top:10px}.shop-input{min-height:44px;padding:10px 12px;font:inherit;font-size:15px;border:1px solid #d1d5db;border-radius:10px;background:#fff;color:#111827}.shop-hint{font-size:12px;color:#6b7280;margin:6px 2px 0}.shop-bar{position:fixed;bottom:0;left:0;right:0;max-width:480px;margin:0 auto;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#f4f4f2f5;border-top:1px solid #e5e7eb;display:flex;gap:8px}.shop-primary{flex:1;min-height:56px;border:0;border-radius:14px;background:#047857;color:#fff;font:inherit;font-size:17px;font-weight:700;display:flex;align-items:center;justify-content:space-between;padding:0 18px;cursor:pointer}.shop-primary:disabled{background:#9ca3af;cursor:default}.shop-primary span:last-child{font-variant-numeric:tabular-nums}.shop-secondary{min-height:56px;min-width:96px;border:1px solid #d1d5db;border-radius:14px;background:#fff;color:#374151;font:inherit;font-size:15px;cursor:pointer}.shop-done{flex:1;padding:24px 16px;text-align:center}.shop-done h2{font-size:var(--fz-text-lg);margin:0 0 16px}.pickup{background:#fff;border-radius:16px;padding:20px;margin-bottom:16px}.pickup-label{font-size:13px;color:#6b7280;text-transform:uppercase;letter-spacing:.08em}.pickup-number{font-size:40px;font-weight:800;font-variant-numeric:tabular-nums}.shop-state{font-size:17px;font-weight:700}.shop-note{color:#6b7280;font-size:15px;padding:16px;margin:0}.shop-link{display:inline-block;min-height:44px;line-height:44px;color:#1d4ed8;font-size:15px}.shop-alert{margin:12px;padding:12px;border-radius:12px;background:#fef2f2;color:#b91c1c;font-size:15px;font-weight:600}.shop-header .headline{font-size:15px;margin-top:6px;opacity:.92}.item .desc{color:#374151;font-size:13px;line-height:1.35;margin:2px 0 4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.shop-about{padding:20px 16px 8px;color:#374151;font-size:15px;line-height:1.5}.shop-about p{margin:0 0 8px}.shop-about .hours{color:#111827}.shop-pay{display:flex;flex-direction:column;gap:10px;padding:8px 4px}.shop-pay .shop-primary{justify-content:center}.shop-pay .shop-note{padding:4px 0}.pay-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}@media(min-width:420px){.pay-grid{grid-template-columns:repeat(4,1fr)}}.pay-option{margin:0}.pay-option button{width:100%;min-height:72px;padding:8px 4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:1px solid #d1d5db;border-radius:12px;background:#fff;font:inherit;cursor:pointer}.pay-option button:hover{border-color:#047857}.pay-option img{max-width:100%;max-height:32px}.pay-option .pay-name{font-size:13px;font-weight:700;color:#111827}.pay-option .pay-caption{font-size:12px;color:#6b7280;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.pay-option .pay-name+.pay-caption{display:none}
