html.customer-modal-open{overflow:hidden}
#customerAccount,#customerEntry,#checkout,#deliveryLocation{max-height:calc(100dvh - 32px);overflow:auto;border-radius:22px;background:#fff;color:#202020}
#customerAccount{width:min(560px,calc(100vw - 32px));max-width:560px}
#customerAccount[data-flow-screen=email],#customerAccount[data-flow-screen=code]{width:min(440px,calc(100vw - 32px));max-width:440px}
#checkout{width:min(640px,calc(100vw - 32px));max-width:640px}
#customerAccount .modalbody,#checkout .modalbody{padding:28px}
#customerAccount h2,#checkout h2{font-size:26px;line-height:1.2;margin:10px 44px 16px 0}
#customerAccount p{font-size:15px;line-height:1.5;margin:10px 0 18px;overflow-wrap:anywhere}
#customerAccount label{font-size:14px;margin:16px 0;display:block}
#customerAccount .field{display:block;box-sizing:border-box;width:100%;height:46px;padding:10px 12px;border:1px solid #d5d5d5;border-radius:11px;background:#fff;color:#202020;font:inherit}
#customerAccount .primary,#checkout .primary{width:100%;min-height:46px;padding:12px;font-size:16px;background:var(--rest-brand);color:white;border-radius:13px;margin:8px 0 0}
#customerAccount .close,#checkout .close,#deliveryLocation .close{min-width:44px;min-height:44px;display:grid;place-items:center;top:10px;right:10px;background:white;color:#202020}
#customerAccount .entry-name-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.flow-verified{display:flex;align-items:center;gap:8px;background:#f1f1f1;border:1px solid #ddd;border-radius:11px;padding-right:10px;overflow:hidden}.flow-verified input.field{background:transparent!important;border:0!important;min-width:0}.flow-verified>span{font-size:12px;color:#666;flex:none}
#flowProfileForm{display:grid;gap:16px}#customerAccount #flowProfileForm label{margin:0}#customerAccount #flowProfileForm .entry-name-fields{margin:0}#customerAccount #flowProfileForm .flow-verified input{margin:0}
#customerAccount label.privacy-acknowledgement{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.5}.privacy-acknowledgement input{margin-top:2px;flex:none}
.flow-code-actions{display:flex;justify-content:space-between;gap:14px;margin-top:18px}.flow-code-actions button{padding:8px 0!important;margin:0!important;min-height:44px;background:none;color:#202020;text-decoration:underline;font-size:13px!important}
#customerAccount .flow-code{font-size:24px;letter-spacing:.45em;text-align:center}.flow-email{color:#666;font-size:13px!important}
.flow-account-heading{display:flex;align-items:center;gap:16px;padding:8px 0 20px}.flow-user-icon{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:#eee;color:#777;font-size:30px;flex:none}.flow-account-heading b{font-size:18px}.flow-account-heading p{margin:6px 0!important}
.flow-account-links{display:block;border-top:1px solid #ddd}.flow-account-links button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid #ddd!important;border-radius:0!important;background:white;color:#202020;padding:18px 0!important;margin:0!important;text-align:left;font-size:16px!important}.flow-account-links span{font-size:13px}
#customerAccount .account-logout{margin-top:30px;width:100%;background:white;border:1px solid #666;color:#202020;min-height:46px}
.flow-address-card{padding:14px;border:1px solid #ddd;border-radius:12px;margin:12px 0}.flow-address-card p{margin:6px 0!important}.flow-address-card button{background:white;text-decoration:underline;padding:6px 0!important;margin:0!important}
#flowAddresses{border-top:1px solid #ddd;margin-top:22px;padding-top:8px}#customerAccountError:empty{display:none}
#deliveryLocation{width:min(960px,calc(100vw - 32px));max-width:960px}#deliveryLocation .modalbody{padding:28px}#deliveryLocation h2{font-size:28px;margin:10px 44px 10px 0}#deliveryLocation .geo-intro{font-size:15px;margin:0 0 18px}
#deliveryLocation .map-canvas{height:320px;min-height:0}#deliveryLocation #geoMap{margin-bottom:16px}#deliveryLocation .geo-building-details{display:grid;grid-template-columns:1fr 1fr 1.4fr;align-items:end;gap:16px;margin:16px 0}#deliveryLocation .geo-building-details>label{font-size:14px;margin:0}#deliveryLocation .geo-building-details input.field{height:46px;font-size:15px;padding:10px;border:1px solid #ccc;border-radius:11px;width:100%;box-sizing:border-box}
.geo-address-types{border:0;padding:0;margin:0;display:flex;gap:6px;min-width:0}.geo-address-types legend{font-size:14px;margin-bottom:9px}.geo-address-types label{position:relative;flex:1;min-width:0}.geo-address-types input{position:absolute;opacity:0;width:1px;height:1px}.geo-address-types span{display:grid;place-items:center;min-height:46px;background:#eee;border-radius:12px;font-size:13px;white-space:nowrap}.geo-address-types input:checked+span{background:var(--rest-brand);color:white}.geo-address-types input:focus-visible+span{outline:2px solid var(--rest-brand);outline-offset:2px}
#deliveryLocation .geo-feedback{position:static;margin-top:18px;padding:0;background:#fff}#deliveryLocation #geoStatus{font-size:14px;padding:12px 0;margin:0;line-height:1.5}#deliveryLocation .geo-feedback[data-state=outside] #geoStatus{background:#fff0f1;border:1px solid #f4ccd0;border-radius:14px;color:#9c1720;padding:16px}#geoStatus strong,#geoStatus span{display:block}#geoStatus strong{font-size:17px;margin-bottom:6px}
#deliveryLocation .geo-simple{max-height:none;overflow:visible}#deliveryLocation .geo-feedback{margin:18px 0 0;border:0}#deliveryLocation .geo-building-details>*{min-width:0}#deliveryLocation [hidden]{display:none!important}
#deliveryLocation .geo-feedback .geo-error-actions button{border-radius:13px;min-height:46px;font-size:15px}#deliveryLocation .geo-feedback .delivery-choice-actions{padding-top:14px}#deliveryLocation .geo-feedback #geoStatus{margin:0 0 12px}
@media(max-width:600px){#deliveryLocation .geo-feedback .geo-error-actions button{flex:1 0 100%}}
#deliveryLocation .delivery-choice-actions,#deliveryLocation .geo-error-actions{position:static;display:flex;gap:14px;padding:14px 0 0;margin:0;border:0;background:white}#deliveryLocation .delivery-choice-actions[hidden]{display:none}#deliveryLocation .geo-error-actions:has(button:not([hidden])){display:flex}#deliveryLocation .geo-error-actions:not(:has(button:not([hidden]))){display:none}#deliveryLocation .delivery-choice-actions button,#deliveryLocation .geo-error-actions button{min-height:46px;flex:1;width:auto;margin:0;padding:11px;font-size:16px;border-radius:13px}#deliveryLocation #geoChange{background:var(--rest-brand);color:#fff}#deliveryLocation #geoPickup,#deliveryLocation #geoBack{background:white;border:1px solid #777;color:#202020}
@media(max-width:600px){#customerAccount,#checkout,#deliveryLocation{max-height:calc(100dvh - 16px);width:calc(100vw - 20px)}#customerAccount .modalbody,#checkout .modalbody,#deliveryLocation .modalbody{padding:20px 16px}#customerAccount h2,#checkout h2,#deliveryLocation h2{font-size:23px}#deliveryLocation .map-canvas{height:240px}#deliveryLocation .geo-building-details{grid-template-columns:1fr 1fr;gap:12px}.geo-address-types{grid-column:1/-1}#deliveryLocation .map-search{flex-wrap:wrap}#deliveryLocation .geo-error-actions{flex-wrap:wrap}#deliveryLocation .geo-error-actions button{flex-basis:100%}.flow-code-actions{gap:12px}.flow-code-actions button{font-size:12px!important}#customerAccount .entry-name-fields{gap:10px}}

#customerAccount .flow-back{display:block;background:transparent;color:#202020;text-decoration:none;font:inherit;font-size:14px;min-height:44px;padding:8px 0;margin:0 44px 4px 0;text-align:left}

/* One scroll container, with the final action retained inside the dialog. */
#checkout .checkout-back{color:var(--rest-brand);display:inline-block;margin-right:44px;min-height:30px;font-weight:600;text-decoration:none}
#checkout .checkout-restaurant{margin:0 0 12px}
#checkout .checkout-action{position:sticky;bottom:-28px;background:white;padding:12px 0 20px;z-index:1;margin-top:18px;border-top:1px solid var(--rest-line)}
#checkout .review-heading button{color:var(--rest-brand)}
#checkout .payment-choice{display:flex;align-items:center;gap:12px;border:1px solid #d9d9df;border-radius:10px;padding:14px;cursor:pointer;margin:10px 0;font-weight:600}
#checkout .payment-choice:has(input:checked){border-color:var(--rest-brand)}
#checkout .payment-choice:focus-within{outline:2px solid var(--rest-brand);outline-offset:2px}
#checkout .payment-choice input{accent-color:var(--rest-brand);width:22px;height:22px;flex:none;margin:0}
#checkout .checkout-payment h3{margin:0 0 8px}#checkout .restaurant-payment{background:#f4f4f5;border-radius:9px;padding:14px}
#checkout #paymentError{color:var(--rest-brand);margin:8px 0}#checkout #paymentError:empty{display:none}
#checkout .checkout-summary .orderlines>span{min-width:0;overflow-wrap:anywhere}#checkout .checkout-summary .orderlines>b{white-space:nowrap}
@media(max-width:600px){#checkout .checkout-action{bottom:-20px;padding-bottom:16px}}

/* Account and address navigation follow the origin of each dialog. */
#customerAccount .flow-back,#deliveryLocation .flow-back{display:block;border:0;background:transparent;color:var(--rest-brand);font:inherit;font-weight:700;text-align:left;min-height:44px;padding:8px 0;margin:0 44px 6px 0;cursor:pointer}
#customerAccount .flow-address-card{position:relative;border:1px solid #a5acb5;border-radius:9px;padding:12px;margin:10px 0;display:grid;grid-template-columns:1fr auto;gap:6px 12px}
#customerAccount .flow-address-card.selected{border-color:var(--rest-brand)}
#customerAccount .flow-address-card label{display:flex;align-items:center;gap:12px;cursor:pointer;min-width:0}
#customerAccount .flow-address-card input{accent-color:var(--rest-brand);width:20px;height:20px;flex:none;margin:0}
#customerAccount .flow-address-card p{grid-column:1;overflow-wrap:anywhere;margin:0 0 0 32px}
#customerAccount .flow-address-card>button{grid-column:2;grid-row:1/3;align-self:center;min-height:44px}
#deliveryLocation .geo-validation{grid-column:1/-1;color:var(--rest-brand)}
#customerAccount,#deliveryLocation,#customerBasket{overflow-y:auto;max-height:calc(100dvh - 24px)}
#customerAccount .flow-account-heading p{overflow-wrap:anywhere}

#savedDeliveryAddresses{width:min(580px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow-y:auto;border:0;border-radius:24px;padding:0}
#savedDeliveryAddresses .flow-back{border:0;background:transparent;color:var(--rest-brand);font:inherit;font-weight:700;display:block;padding:8px 0;min-height:44px;margin-right:40px;text-align:left}
.saved-address-card{display:flex;gap:12px;align-items:flex-start;border:1px solid #b7bac0;border-radius:12px;padding:16px;margin:14px 0}
.saved-address-card.selected{border:2px solid var(--rest-brand);padding:15px}
.saved-address-card label{display:flex;gap:14px;align-items:center;flex:1;min-width:0;cursor:pointer;margin:0}
.saved-address-card input{width:22px;height:22px;accent-color:var(--rest-brand);flex:none;margin:0}
.saved-address-card label span{display:block;overflow-wrap:anywhere}.saved-address-card b{display:block;margin-bottom:6px}
.saved-address-card button{flex:none;min-height:44px;padding:0}.saved-address-footer{position:sticky;bottom:-28px;background:#fff;padding:20px 0;margin-top:32px}
#savedDeliveryAddresses .saved-add{width:100%;color:var(--rest-brand);border-color:var(--rest-brand);font-weight:700;margin-top:12px}
#savedAddressRecovery{display:flex;gap:12px;flex-wrap:wrap}#savedAddressRecovery:empty{display:none}
#customerAccount .flow-address-card .address-card-actions{grid-column:2;grid-row:1/3;display:flex;gap:14px;align-items:center}#customerAccount .address-card-actions button{padding:4px 0;min-height:44px}
#deleteCustomerAddress{width:min(360px,calc(100vw - 32px));border:0;border-radius:18px;padding:0;text-align:center}#deleteCustomerAddress h2{font-size:26px;margin-top:0}
.delete-address-actions{display:flex;gap:14px}.delete-address-actions button{flex:1;width:auto;margin:0;min-height:44px}.delete-address-actions .primary{padding:10px}
#deleteCustomerAddress [role=alert]:empty{display:none}
@media(max-width:600px){#savedDeliveryAddresses .modalbody{padding:24px 16px}#savedDeliveryAddresses h2{font-size:26px}.saved-address-card{padding:12px;gap:6px}.saved-address-card.selected{padding:11px}.saved-address-card label{gap:10px}#customerAccount .flow-address-card .address-card-actions{gap:10px}.saved-address-footer{bottom:-24px}#deleteCustomerAddress .modalbody{padding:24px}}

/* Inline validation is limited to the existing profile completion form. */
#flowProfileForm .contact-required{color:var(--rest-brand)}
#flowProfileForm .contact-field-error{display:block;color:var(--rest-brand);font-size:14px;font-weight:400;margin:6px 0 0}
#flowProfileForm .contact-field-error[hidden]{display:none}
#flowProfileForm input[aria-invalid="true"]{border:2px solid var(--rest-brand)}
#flowProfileForm .contact-required-hint{display:block;color:#666;margin:10px 0 16px;font-size:14px}

#checkout #submitOrder:disabled{background:#d5d5d8;color:#666;opacity:1;cursor:not-allowed;box-shadow:none}
#checkout #checkoutSubmitHint{font-size:14px;color:#555;margin:0 0 10px;line-height:1.45}
#checkout #checkoutSubmitHint[hidden]{display:none}
#flowOrders{gap:8px}.flow-account-links #flowOrders>.active-order-dot{order:1;margin:0}.flow-account-links #flowOrders>span:not(.active-order-dot){order:2;margin-left:auto}
