/**
 * R34 — Consumatori token contrasto (web_app cliente).
 * Scope body.wa-client-app; caricato per ultimo.
 */

body.wa-client-app {
	background-color: var(--wa-home-bg, var(--wa-app-bg, var(--wa-color-bg)));
	color: var(--wa-home-color, var(--wa-text-color, var(--wa-color-text)));
}

/* Home — sfondo pagina + titoli categoria (no testo chiaro su fondo chiaro) */
html:has(body#homepage.wa-client-app) {
	background-color: var(--wa-home-bg, var(--wa-app-bg, var(--wa-color-bg)));
}

body#homepage.wa-client-app {
	background-color: var(--wa-home-bg, var(--wa-app-bg, var(--wa-color-bg))) !important;
	color: var(--wa-home-color, var(--wa-text-color, var(--wa-color-text))) !important;
	min-height: 100vh;
}

body#homepage .wa-home-categories,
body#homepage .wa-home-categories.container {
	background-color: transparent !important;
}

body#homepage .wa-home-categories .wa-cat-card-link,
body#homepage .wa-home-categories .wa-cat-card-title {
	color: var(--wa-category-title-color, var(--wa-home-color, var(--wa-color-text))) !important;
}

body#homepage .wa-home-categories .wa-cat-card-visual__bg {
	background-color: var(--wa-category-media-bg) !important;
	border-color: var(--wa-category-media-border-color) !important;
}

body#homepage .bloccosemaforo,
body#homepage .wa-home-semaforo,
body#homepage .wa-sfondosemaforo-inner {
	background-color: var(--wa-semaforo-bg, var(--wa-surface-soft-bg, var(--wa-color-surface-soft))) !important;
	color: var(--wa-semaforo-color, var(--wa-home-color, var(--wa-color-text))) !important;
	border-color: var(--wa-border-color, var(--wa-color-border)) !important;
}

/* Drawer mobile — token tema (vale per tutte le varianti) */
body.wa-client-app .wa-bottom-sheet-panel {
	background: var(--wa-drawer-bg, var(--wa-color-surface)) !important;
	color: var(--wa-drawer-color, var(--wa-color-text)) !important;
}
body.wa-client-app .wa-bottom-sheet-title {
	color: var(--wa-drawer-color, var(--wa-drawer-text)) !important;
}
body.wa-client-app .wa-bottom-sheet-subtitle {
	color: var(--wa-drawer-muted-color, var(--wa-drawer-muted)) !important;
}
body.wa-client-app .wa-bs-section-title {
	color: var(--wa-drawer-section-title-color, var(--wa-drawer-section-title)) !important;
}
body.wa-client-app .wa-bs-item {
	color: var(--wa-drawer-item-color, var(--wa-drawer-item-text)) !important;
}
body.wa-client-app .wa-bs-item i {
	color: var(--wa-drawer-item-icon-color, var(--wa-drawer-item-icon)) !important;
}
body.wa-client-app .wa-bs-item.is-active {
	background: var(--wa-drawer-item-active-bg) !important;
	color: var(--wa-drawer-item-active-color, var(--wa-drawer-item-active-text)) !important;
}
body.wa-client-app .wa-bs-item.is-active i {
	color: var(--wa-drawer-item-active-icon, var(--wa-drawer-item-active-color)) !important;
}
body.wa-client-app .wa-bs-user-pill {
	background: var(--wa-drawer-user-bg, var(--wa-drawer-account-pill-bg)) !important;
	color: var(--wa-drawer-user-color, var(--wa-drawer-account-pill-text)) !important;
}
body.wa-client-app .wa-bottom-sheet-close {
	background: var(--wa-drawer-close-bg) !important;
	color: var(--wa-drawer-close-color, var(--wa-drawer-close-text)) !important;
}

body#homepage .wa-nav-lang-mobile .vm-ar2-lang__panel {
	background: var(--wa-lang-menu-bg, var(--wa-color-surface)) !important;
	color: var(--wa-lang-menu-color, var(--wa-color-text)) !important;
	border-color: var(--wa-lang-menu-border-color, var(--wa-color-border)) !important;
}

body#homepage .wa-nav-lang-mobile .vm-ar2-lang__row.is-active {
	background: var(--wa-lang-item-active-bg) !important;
	color: var(--wa-lang-item-active-color) !important;
}

/* Form / select — superficie bianca leggibile anche con temi editor beige */
body.wa-client-app .form-control,
body.wa-client-app .form-select,
body.wa-client-app select:not([multiple]),
body.wa-client-app textarea,
body.wa-client-app .wa-checkout-input,
body.wa-client-app input.wa-checkout-input,
body.wa-client-app textarea.wa-checkout-input,
body.wa-client-app select.wa-checkout-input,
body.wa-page-checkout .wa-checkout-page .form-control,
body.wa-page-checkout .wa-checkout-page .wa-checkout-input,
body.wa-page-checkout .wa-checkout-page textarea.wa-checkout-input,
body.wa-page-checkout .wa-checkout-page select.wa-checkout-input,
body.wa-page-checkout .wa-checkout-page .form-select,
body.wa-auth-page .form-control,
body.wa-auth-page .wa-auth-input-wrap .form-control,
body.wa-auth-page .form-select,
body.wa-client-app .wa-phone-intl__prefix,
body.wa-client-app .wa-phone-intl__number {
	background-color: var(--wa-field-surface-bg, #ffffff) !important;
	color: var(--wa-field-surface-color, var(--wa-text-color, var(--wa-color-text))) !important;
	border-color: var(--wa-field-surface-border, var(--wa-border-color, var(--wa-color-border))) !important;
	box-shadow: var(--wa-field-surface-shadow, 0 1px 2px rgba(31, 26, 22, 0.07));
}
body.wa-client-app .form-control::placeholder,
body.wa-client-app .wa-checkout-input::placeholder {
	color: var(--wa-input-placeholder, var(--wa-muted-color, var(--wa-color-muted))) !important;
	opacity: 1;
}
body.wa-client-app .form-control:focus,
body.wa-client-app .wa-checkout-input:focus {
	border-color: var(--wa-input-focus-border, var(--wa-color-primary)) !important;
}

/* Checkout stepper */
body.wa-client-app .wa-stepper__hit--active .wa-stepper__circle {
	background: var(--wa-checkout-step-active-bg, var(--wa-color-primary)) !important;
	border-color: var(--wa-checkout-step-active-bg, var(--wa-color-primary)) !important;
	color: var(--wa-checkout-step-active-color, var(--wa-color-primary-contrast)) !important;
}
body.wa-client-app .wa-stepper__hit--done .wa-stepper__circle {
	background: var(--wa-checkout-step-done-bg, var(--wa-color-success)) !important;
	border-color: var(--wa-checkout-step-done-bg, var(--wa-color-success)) !important;
	color: var(--wa-checkout-step-done-color, var(--wa-color-inverse)) !important;
}
body.wa-client-app .wa-stepper__circle--muted {
	background: var(--wa-checkout-step-muted-bg, var(--wa-color-surface-soft)) !important;
	color: var(--wa-checkout-step-muted-color, var(--wa-color-muted)) !important;
	border-color: var(--wa-color-border) !important;
}
body.wa-client-app .wa-stepper__hit--future .wa-stepper__circle {
	background: var(--wa-checkout-step-muted-bg, var(--wa-color-surface-soft));
	color: var(--wa-checkout-step-muted-color, var(--wa-color-muted));
	border-color: var(--wa-color-border);
}
body.wa-client-app .wa-stepper__label {
	color: var(--wa-muted-color, var(--wa-color-muted));
}

/* Messaggi checkout */
body.wa-client-app .wa-checkout-msg--ok {
	background: var(--wa-success-bg, var(--wa-color-success-bg));
	color: var(--wa-success-color, var(--wa-color-success-fg));
}
body.wa-client-app .wa-checkout-msg--warn,
body.wa-client-app .wa-checkout-msg--rate {
	background: var(--wa-warning-bg, var(--wa-color-warning-bg));
	color: var(--wa-warning-color, var(--wa-color-warning-fg));
}
body.wa-client-app .wa-checkout-msg--err {
	background: var(--wa-danger-bg, var(--wa-color-danger-bg));
	color: var(--wa-danger-color, var(--wa-color-danger-fg));
}

/* Chat */
body.wa-client-app#wa-messaggi,
body.wa-client-app .wa-messages-container {
	background: var(--wa-chat-bg, var(--wa-color-bg));
}
body.wa-client-app .wa-msg--you .wa-msg__bubble {
	background: var(--wa-chat-bubble-out-bg, var(--wa-color-primary)) !important;
	color: var(--wa-chat-bubble-out-color, var(--wa-color-primary-contrast)) !important;
}
body.wa-client-app .wa-msg--them:not(.wa-msg--system):not(.wa-msg--support) .wa-msg__bubble {
	background: var(--wa-chat-bubble-in-bg, var(--wa-color-surface-soft)) !important;
	color: var(--wa-chat-bubble-in-color, var(--wa-color-text)) !important;
	border-color: var(--wa-border-color, var(--wa-color-border)) !important;
}
body.wa-client-app .wa-msg--system .wa-msg__bubble {
	color: var(--wa-chat-muted-color, var(--wa-color-muted));
}

/* Lista / card prodotto (R35 bonifica token) */
body.wa-client-app .wa-lista-grid .blocco_presentazioneprodotto,
body.wa-client-app .wa-lista-grid .wa-product-card,
body.wa-client-app .wa-mobile-card {
	background: var(--wa-product-card-bg, var(--wa-surface-bg, var(--wa-color-surface)));
	color: var(--wa-product-card-color, var(--wa-text-color, var(--wa-color-text)));
	border-color: var(--wa-product-card-border, var(--wa-border-color, var(--wa-color-border)));
}
body.wa-client-app .wa-lista-grid .nome_prodotto,
body.wa-client-app .titolo_categoria {
	color: var(--wa-heading-color, var(--wa-text-color, var(--wa-color-text)));
}
body.wa-client-app .wa-product-desc {
	color: var(--wa-muted-color, var(--wa-color-muted));
}
body.wa-client-app .prezzoscheda,
body.wa-client-app .wa-product-price,
body.wa-client-app .costounita,
body.wa-client-app .wa-product-image-modal__price {
	color: var(--wa-price-color, var(--wa-color-accent));
}
body.wa-client-app .wa-lista-grid .btn-prodotti,
body.wa-client-app .wa-lista-grid .wa-product-cta {
	background-color: var(--wa-button-primary-bg, var(--wa-cta-confirm-bg, var(--wa-color-primary))) !important;
	color: var(--wa-button-primary-color, var(--wa-cta-confirm-color, var(--wa-color-primary-contrast))) !important;
	border-color: var(--wa-button-primary-bg, var(--wa-cta-confirm-border, var(--wa-color-primary))) !important;
}
body.wa-client-app .wa-product-image-modal__panel {
	background: var(--wa-modal-bg, var(--wa-surface-bg, var(--wa-color-surface)));
	color: var(--wa-modal-color, var(--wa-text-color, var(--wa-color-text));
	border-color: var(--wa-modal-border, var(--wa-border-color, var(--wa-color-border));
}
body.wa-client-app .wa-product-image-modal__backdrop {
	background: var(--wa-overlay-scrim, color-mix(in srgb, var(--wa-color-dark) 72%, transparent));
}

/* Checkout — modal conferma indirizzo / civico: sfondo opaco su ogni template */
body.wa-client-app .wa-addr-match-confirm {
	background: var(--wa-addr-match-bg, var(--wa-modal-bg, var(--wa-surface-bg, var(--wa-color-surface, #ffffff)))) !important;
	color: var(--wa-addr-match-color, var(--wa-modal-color, var(--wa-text-color, var(--wa-color-text, #1f1a16)))) !important;
	border-color: var(--wa-modal-border, var(--wa-border-color, var(--wa-color-border, #dee2e6))) !important;
	border-top-color: var(--wa-addr-match-accent, var(--wa-color-success, #15803d)) !important;
}
body.wa-client-app .wa-addr-match-confirm__kicker {
	color: var(--wa-addr-match-kicker, var(--wa-color-success-fg, #14532d)) !important;
}
body.wa-client-app .wa-addr-match-confirm__addr {
	color: var(--wa-addr-match-color, var(--wa-modal-color, var(--wa-text-color, var(--wa-color-text, #1f1a16)))) !important;
}
body.wa-client-app .wa-addr-match-confirm__question {
	color: var(--wa-addr-match-muted, var(--wa-muted-color, var(--wa-color-muted, #64748b))) !important;
}
body.wa-client-app .wa-addr-match-btn--no {
	background: var(--wa-addr-match-bg, var(--wa-modal-bg, var(--wa-color-surface, #ffffff))) !important;
	border-color: var(--wa-modal-border, var(--wa-border-color, var(--wa-color-border, #dee2e6))) !important;
	color: var(--wa-addr-match-color, var(--wa-modal-color, var(--wa-text-color, var(--wa-color-text, #1f1a16)))) !important;
}
body.wa-client-app .wa-addr-civico-required {
	border-top-color: var(--wa-color-warning, #b45309) !important;
}
body.wa-client-app .wa-addr-civico-required .wa-addr-match-confirm__kicker {
	color: var(--wa-color-warning-fg, #78350f) !important;
}

/* Bottom nav + badge */
body.wa-client-app .wa-bottombar {
	background: var(--wa-nav-bg, var(--wa-bottombar-bg)) !important;
	border-top-color: var(--wa-nav-border, var(--wa-color-border));
}
body.wa-client-app .wa-bottombar-item {
	color: var(--wa-nav-color, var(--wa-bottombar-fg)) !important;
}
body.wa-client-app .wa-bottombar-item.is-active {
	color: var(--wa-nav-active-color, var(--wa-bottombar-active-fg)) !important;
}
body.wa-client-app .wa-bottombar-badge,
body.wa-client-app .wa-cart-badge {
	background: var(--wa-bottom-nav-badge-bg, var(--wa-nav-badge-bg, var(--wa-color-primary))) !important;
	color: var(--wa-bottom-nav-badge-color, var(--wa-nav-badge-color, var(--wa-color-primary-contrast))) !important;
}

/* CTA legacy Bootstrap → token conferma */
body.wa-client-app .btn-success.bottoneavanti,
body.wa-client-app .wa-checkout-cta-step {
	background-color: var(--wa-cta-confirm-bg) !important;
	color: var(--wa-cta-confirm-color) !important;
	border-color: var(--wa-cta-confirm-border, var(--wa-cta-confirm-bg)) !important;
}

/* Empty state CTA (carrello vuoto, lista, prodotto) */
body.wa-client-app a.wa-empty-state__cta.bottoneavanti {
	background-color: var(--wa-empty-state-cta-bg, var(--wa-button-primary-bg)) !important;
	color: var(--wa-empty-state-cta-color, var(--wa-button-primary-color)) !important;
	border-color: var(--wa-empty-state-cta-border, var(--wa-empty-state-cta-bg)) !important;
}

/* Allergeni scheda prodotto — contrasto su ogni template (batte override editor hardcoded) */
body.wa-client-app .fp-allergen-btn,
body.wa-client-app .wa-product-shell .fp-allergen-btn {
	background: var(--wa-allergen-btn-bg, var(--wa-color-danger-bg)) !important;
	color: var(--wa-allergen-btn-fg, var(--wa-color-danger-fg)) !important;
	border-color: var(--wa-allergen-btn-border, var(--wa-color-danger)) !important;
}

body.wa-client-app .fp-allergen-btn i,
body.wa-client-app .fp-allergen-btn .bi,
body.wa-client-app .wa-product-shell .fp-allergen-btn i,
body.wa-client-app .wa-product-shell .fp-allergen-btn .bi {
	color: currentColor !important;
}

body.wa-client-app .fp-aller-count,
body.wa-client-app .wa-product-shell .fp-aller-count {
	background: var(--wa-allergen-count-bg, var(--wa-color-danger)) !important;
	color: var(--wa-allergen-count-fg, var(--wa-color-inverse)) !important;
}

/* Numero ordine conferma — contrasto su ogni template (batte #1f1f1f legacy editor) */
body.wa-client-app .wa-confirm-order-id {
	color: var(--wa-confirm-order-id-fg, var(--wa-color-text, var(--wa-text-color, var(--wa-app-color)))) !important;
}

/* Modale ingredienti/allergeni — pannello bianco, testo scuro su ogni template */
body.wa-client-app .fp-modal-dialog {
	background: var(--wa-fp-modal-bg, #ffffff) !important;
	color: var(--wa-fp-modal-fg, #1f120b) !important;
	--wa-color-text: var(--wa-fp-modal-fg, #1f120b);
	--wa-color-muted: var(--wa-fp-modal-muted-fg, #475569);
	--wa-text-color: var(--wa-fp-modal-fg, #1f120b);
	--wa-app-color: var(--wa-fp-modal-fg, #1f120b);
}

body.wa-client-app .fp-modal-dialog .fp-modal-header h5,
body.wa-client-app .fp-modal-dialog .fp-modal-body,
body.wa-client-app .fp-modal-dialog .fp-modal-footer button {
	color: var(--wa-fp-modal-fg, #1f120b) !important;
}

body.wa-client-app .fp-modal-dialog .fp-modal-close,
body.wa-client-app .fp-modal-dialog .fp-aller-hint,
body.wa-client-app .fp-modal-dialog .fp-aller-source,
body.wa-client-app .fp-modal-dialog .fp-aller-empty {
	color: var(--wa-fp-modal-muted-fg, #475569) !important;
}

body.wa-client-app .fp-modal-dialog .fp-aller-hint strong,
body.wa-client-app .fp-modal-dialog .fp-aller-group-title {
	color: var(--wa-fp-modal-fg, #1f120b) !important;
}

body.wa-client-app .fp-modal-dialog .fp-aller-group--scelte .fp-aller-group-title {
	color: #b45309 !important;
}

body.wa-client-app .fp-modal-dialog .fp-aller-group--diretti .fp-aller-group-title {
	color: #991b1b !important;
}

body.wa-client-app .fp-modal-dialog .fp-modal-footer button {
	background: var(--wa-fp-modal-btn-bg, #ffffff) !important;
	border-color: var(--wa-fp-modal-btn-border, rgba(15, 23, 42, 0.22)) !important;
}

/* Footer legali + preferenze cookie — token template (batte iubenda legacy + override muted) */
body.wa-client-app .footer-dark .wa-footer-legal a,
body.wa-client-app .footer-dark .wa-footer-legal .sopraiub,
body.wa-client-app .wa-footer-legal [data-footer-link] {
	background: none !important;
	box-shadow: none !important;
	padding-left: 0 !important;
	border: 0 !important;
	font-size: inherit !important;
	color: var(--wa-footer-legal-color, var(--wa-footer-muted-color)) !important;
	text-decoration: none;
}

body.wa-client-app .footer-dark .wa-footer-legal a:hover,
body.wa-client-app .footer-dark .wa-footer-legal .sopraiub:hover {
	color: var(--wa-footer-link-color, var(--wa-footer-legal-color, var(--wa-footer-muted-color))) !important;
	text-decoration: underline;
}

body.wa-client-app .wa-footer-legal-sep {
	color: var(--wa-footer-muted-color) !important;
}

/* Profilo — stessi link legali del footer */
body#wa-profilo.wa-client-app .wa-profilo-legal-nav .wa-bs-item,
body#wa-profilo.wa-client-app .wa-profilo-legal-nav .wa-bs-item i {
	color: var(--wa-footer-legal-color, var(--wa-link-color, var(--wa-button-primary-bg, var(--wa-primary-color)))) !important;
}

body#wa-profilo.wa-client-app .wa-profilo-legal-nav .wa-bs-item:hover,
body#wa-profilo.wa-client-app .wa-profilo-legal-nav .wa-bs-item:hover i {
	color: var(--wa-footer-link-color, var(--wa-footer-legal-color, var(--wa-link-color))) !important;
}

/* Checkbox / radio nativi Bootstrap — contrasto su sfondi beige */
body.wa-client-app .form-check-input:not(:checked),
body.wa-auth-page .form-check-input:not(:checked) {
	background-color: var(--wa-checkbox-control-bg, #ffffff) !important;
	border: 2px solid var(--wa-checkbox-control-border, #6f6258) !important;
}

body.wa-client-app .form-check-input:checked,
body.wa-auth-page .form-check-input:checked {
	background-color: var(--wa-checkbox-control-checked-bg, var(--wa-accent-color, #b87932)) !important;
	border-color: var(--wa-checkbox-control-checked-border, var(--wa-accent-color, #b87932)) !important;
}

/* Checkout — metodi pagamento sempre evidenti (vince su editor beige) */
body.wa-page-checkout .wa-checkout-page .wa-checkout-pagamento-card {
	background: var(--wa-field-surface-bg, #ffffff) !important;
	border: 2px solid color-mix(in srgb, var(--wa-text-color, #1f1a16) 28%, var(--wa-field-surface-border, #ded2c3)) !important;
	box-shadow: 0 2px 8px rgba(31, 26, 22, 0.1) !important;
}

body.wa-page-checkout .wa-checkout-page .wa-checkout-pagamento-card.is-selected {
	background: color-mix(in srgb, var(--wa-field-surface-bg, #ffffff) 88%, var(--wa-accent-color, #b87932) 12%) !important;
	border-color: var(--wa-accent-color, #b87932) !important;
}

body.wa-page-checkout .wa-checkout-page .wa-checkout-pagamento-card.is-selected .wa-checkout-pagamento-card-label,
body.wa-page-checkout .wa-checkout-page .wa-checkout-pagamento-card.is-selected .wa-checkout-pagamento-card-hint {
	color: var(--wa-text-color, #1f1a16) !important;
}
