.app-page{max-width:1100px;margin:32px auto;padding:0 22px}.app-page[hidden]{display:none}.app-page h1{font-size:38px}.app-page h2{font:27px var(--serif)}.app-note{padding:12px 16px;border:1px solid var(--line);background:var(--soft);border-radius:12px;font-size:13px;margin:14px 0}.app-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.app-card{padding:22px;background:var(--white);border:1px solid var(--line);border-radius:18px;margin-bottom:18px;min-width:0;overflow-wrap:anywhere}.app-card h3{font:23px var(--serif);margin:8px 0}.app-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.app-order{display:flex;gap:20px;justify-content:space-between;border-top:1px solid var(--line);padding:17px 0}.app-order:first-of-type{border-top:0}.app-order strong{display:block}.app-order button{flex-shrink:0}.app-error{padding:13px;background:#fff0e6;color:#8a3f1d;border:1px solid #dcac8e;border-radius:10px;overflow-wrap:anywhere}.app-line{display:flex;justify-content:space-between;gap:20px;padding:8px 0;border-bottom:1px solid var(--line)}.app-line small{display:block;color:var(--muted)}.app-total{font:27px var(--serif);margin-top:15px}.app-mode{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:15px}.app-mode button[aria-pressed=true]{background:var(--olive);color:#fff}.app-weight{display:grid;grid-template-columns:1fr 1fr;gap:10px}.app-provider{display:flex;justify-content:space-between;padding:12px;border:1px solid var(--line);border-radius:10px;color:var(--muted);margin:8px 0}.app-status{font-size:12px;color:var(--olive);background:var(--soft);padding:5px 9px;border-radius:10px;display:inline-block}.app-loading{padding:50px;text-align:center}.app-page pre{white-space:pre-wrap;overflow-wrap:anywhere}.journey input,.journey select,.journey textarea{max-width:100%}.app-guest{font-size:12px;color:var(--muted)}@media(max-width:650px){.app-grid{grid-template-columns:1fr}.app-page{margin:22px auto;padding:0 17px}.app-page h1{font-size:32px}.app-card{padding:17px}.app-order{gap:10px;flex-wrap:wrap}.app-mode button{min-height:44px}.app-actions button,.app-actions a{min-height:44px}}
.catalog-root[hidden],#mobileCartBar[hidden],[data-catalog-id][hidden],[data-trial-only][hidden]{display:none!important}
.app-page .form-field{max-width:100%}.app-page input,.app-page select{max-width:100%;min-width:0}
.app-order--record{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px}
.app-order-details{display:grid;gap:5px;min-width:0}.app-order-details .app-status{justify-self:start}.app-order-details small{display:block}.app-order-guest{color:var(--muted)}
.app-order-actions{display:grid;grid-template-columns:120px 120px;gap:10px;align-self:center}.app-order-actions--single{grid-template-columns:160px}.app-order-actions button{min-height:44px;height:auto;align-self:center}
.app-work-controls{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}.app-work-controls>form,.app-work-controls>details{min-width:0;width:100%;margin:0}.app-work-controls h4{margin:0 0 10px}.app-work-controls>form+form{border-top:1px solid var(--line);padding-top:20px}
.app-page .pr-driver-grid .app-actions button{flex:1 1 auto;overflow-wrap:normal;word-break:normal}
.app-page .pr-driver-grid [data-driver-cash]{flex-shrink:0;overflow-wrap:normal;word-break:normal;min-height:44px}
@media(max-width:650px){.pr-driver-grid .app-line{flex-wrap:wrap}.pr-driver-grid .app-line>[data-driver-cash]{width:100%}}
.app-print-options summary{cursor:pointer;color:var(--olive);font-weight:600}.app-print-options small{display:block;color:var(--muted);margin-top:12px}.app-print-actions{display:flex;flex-wrap:wrap;gap:10px}
@media(max-width:650px){.app-order--record{grid-template-columns:minmax(0,1fr);gap:14px}.app-order-actions{grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.app-order-actions--single{grid-template-columns:1fr}.app-order-actions button{padding:10px 8px;width:100%;min-width:0}.app-print-actions{display:grid;grid-template-columns:1fr}}
/* Real product photographs in management and in the customer's order. */
.catalog-photo-editor{display:grid;grid-template-columns:110px minmax(0,1fr);gap:18px;margin:10px 0 20px;align-items:start}.catalog-photo-editor>img{width:110px;height:110px;object-fit:cover;border-radius:14px;border:1px solid var(--line)}.catalog-photo-editor input[type=file]{width:100%;min-width:0;padding:10px 0;font-size:13px}.catalog-photo-editor [data-photo-status]{font-size:12px;color:var(--muted);line-height:1.5}.catalog-photo-editor button{min-height:44px}.app-order-product{align-items:center;gap:12px}.app-order-product>span:not(.app-order-photo){flex:1;min-width:0}.app-order-product>strong{flex:none;text-align:right}.app-order-photo{width:56px;height:56px;object-fit:cover;border-radius:10px;flex:none;background:var(--soft)}.app-order-photo--empty{display:grid;place-items:center}.app-order-photo--empty svg{width:28px;height:28px;stroke:var(--olive);fill:none;stroke-width:1.5}@media(max-width:420px){.catalog-photo-editor{grid-template-columns:74px minmax(0,1fr);gap:12px}.catalog-photo-editor>img{width:74px;height:74px}.app-order-photo{width:46px;height:46px}.app-order-product{gap:8px}.app-order-product>strong{font-size:13px}}
.app-order-thumbnails{display:flex;gap:6px;align-items:center;margin:10px 0}.app-order-thumbnails .app-order-photo{width:46px;height:46px}.app-order-thumbnails>span:not(.app-order-photo){font-size:12px;color:var(--muted)}
/* Native checkout: fields scroll; total and submit remain visible. */
.overlay.native-checkout-overlay{top:var(--checkout-offset,0px);bottom:auto;height:var(--checkout-viewport,100dvh)}
.dialog.pilot-checkout-native{display:flex;flex-direction:column;overflow:hidden;height:min(820px,calc(var(--checkout-viewport,100dvh) - 40px));max-height:calc(var(--checkout-viewport,100dvh) - 40px)}
.pilot-checkout-native .dialog-top{flex-shrink:0}
.pilot-checkout-native #modalContent{display:flex;flex-direction:column;min-height:0;flex:1}
.pilot-checkout-native .journey{padding:0;display:flex;flex:1;min-height:0;flex-direction:column}
.native-checkout-form{display:flex;flex-direction:column;min-height:0;flex:1}
.native-checkout-scroll{overflow-y:auto;overscroll-behavior:contain;padding:18px 22px 24px;min-height:0;flex:1}
.native-checkout-intro{margin:0 0 15px}
.native-checkout-footer{flex-shrink:0;background:var(--paper);padding:12px 22px max(16px,env(safe-area-inset-bottom));border-top:1px solid var(--line)}
.native-checkout-footer>p{font-size:14px;line-height:1.4;margin:5px 0 10px}
.native-checkout-estimate{display:flex;align-items:center;justify-content:space-between;gap:10px}
.native-checkout-estimate span{font-size:14px}
.native-checkout-estimate strong{font-size:23px;white-space:nowrap}
.native-checkout-footer .primary{min-height:48px}
.native-checkout-scroll #pilotNativePlaceAddress{margin:0 0 12px}
.native-checkout-scroll #pilotNativeAppointment{margin-top:-5px}
.native-checkout-scroll .quiet-note{font-size:14px}
.pilot-checkout-native #pilotError{margin:10px 18px}
.native-checkout-scroll .app-mode{flex-wrap:wrap}
/* iOS zooms focused inputs below 16px, cutting off the fixed checkout.
   Preserve pinch zoom; prevent only the automatic focus magnification. */
@media(max-width:760px){
 [data-surface=customer] input,[data-surface=customer] select,[data-surface=customer] textarea{font-size:16px}
 .native-checkout-estimate>span{min-width:0;overflow-wrap:anywhere}
 .native-checkout-footer .app-error{overflow-wrap:anywhere}
}
/* With a reduced viewport keep the action in view and scroll only the fields.
   Turning the whole form into a block pushed the footer below the keyboard in WebKit. */
.checkout-compact .native-checkout-form{display:flex;overflow:hidden}
.checkout-compact .native-checkout-scroll{overflow-y:auto;overscroll-behavior:contain}
@media(max-width:760px){.native-checkout-overlay{align-items:flex-end;padding:0}.dialog.pilot-checkout-native{width:100%;height:calc(var(--checkout-viewport,100dvh) - 12px);max-height:calc(var(--checkout-viewport,100dvh) - 12px)}.native-checkout-scroll{padding:16px 18px 22px}.native-checkout-footer{padding-left:18px;padding-right:18px}.pilot-checkout-native .dialog-top h2{font-size:20px;line-height:1.25;max-width:calc(100% - 46px)}}

/* Un'etichetta con casella sta in riga propria: la casella non scorre accanto al testo
   di quella sopra (collaudo del 19/10, m-1 del sito: l'invito WhatsApp le impilava). */
label.chk { display: flex; align-items: flex-start; gap: 0.5rem; margin: 0.4rem 0; }
label.chk input[type="checkbox"] { margin-top: 0.15rem; }
/* Invitations live inside the checkout scroll area, including WebKit's flex layout. */
.whatsapp-invite{width:100%;max-width:100%;box-sizing:border-box;flex-shrink:0}
.whatsapp-invite .chk input{flex:0 0 auto;width:auto}
.whatsapp-invite .app-actions a{max-width:100%;white-space:normal;text-align:center}
.dialog-top [data-action=close][hidden]{display:none!important}
