#dialog:has(.booking-form-section){max-width:min(980px,calc(100vw - 28px));max-height:calc(100dvh - 28px);overflow:hidden;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;}
#dialog:has(.booking-form-section)::backdrop{background:rgba(15,35,63,.54);}
/* The booking form owns exactly one scrollable region: #form-fields. The
   header and action footer remain visible without creating an inner form
   scrollbar or a horizontal page scrollbar. */
#dialog:has(.booking-form-section) form{display:flex;flex-direction:column;max-height:calc(100dvh - 28px);padding:0;overflow:hidden;}
#dialog:has(.booking-form-section) .modal-head{flex:0 0 auto;position:sticky;top:0;z-index:3;gap:12px;margin:0;padding:18px 22px 14px;background:#fff;border-bottom:1px solid #e7edf3;}
#dialog:has(.booking-form-section) .modal-head h2{min-width:0;flex:1 1 auto;}
#dialog:has(.booking-form-section) .booking-modal-progress{flex:0 0 auto;color:#51667e;font-size:12px;font-weight:700;white-space:nowrap;}
#dialog:has(.booking-form-section) #form-fields{flex:1 1 auto;min-height:0;min-width:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scroll-padding-block:12px 28px;padding:18px 22px 28px;scrollbar-width:thin;scrollbar-color:#c6d2df transparent;}
#dialog:has(.booking-form-section) #form-fields::-webkit-scrollbar{width:7px;}#dialog:has(.booking-form-section) #form-fields::-webkit-scrollbar-track{background:transparent;}#dialog:has(.booking-form-section) #form-fields::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:999px;background:#c6d2df;background-clip:padding-box;}#dialog:has(.booking-form-section) #form-fields::-webkit-scrollbar-thumb:hover{background:#9eafc1;background-clip:padding-box;}
#dialog:has(.booking-form-section) .modal-actions{flex:0 0 auto;display:flex;align-items:center;gap:10px;margin:0;padding:13px 22px 18px;background:#fff;border-top:1px solid #e7edf3;box-shadow:0 -8px 20px rgba(16,47,85,.05);}
#modal-title{font-size:24px;line-height:1.2;font-weight:700;letter-spacing:-.02em;}
.booking-form-section{--section-accent:#3b82f6;--section-border:#93c5fd;--section-surface:#f8fbff;isolation:isolate;overflow:visible;grid-column:1/-1;min-width:0;max-width:100%;border:2px solid var(--section-border);border-radius:14px;background:linear-gradient(135deg,var(--section-surface),#fff 40%);padding:22px;margin:4px 0 10px;box-shadow:0 2px 6px rgba(16,47,85,.05);}
.booking-section--booking{--section-accent:#3b82f6;--section-border:#93c5fd;--section-surface:#f8fbff;}.booking-section--customer{--section-accent:#16a34a;--section-border:#86d4a1;--section-surface:#f8fdf9;}.booking-section--source{--section-accent:#6366f1;--section-border:#b1b4fb;--section-surface:#fafaff;}.booking-section--route{--section-accent:#9333ea;--section-border:#d4a5f5;--section-surface:#fdfaff;}.booking-section--cab{--section-accent:#ea580c;--section-border:#f5b08a;--section-surface:#fffaf7;}.booking-section--hotel{--section-accent:#0891b2;--section-border:#80d1e2;--section-surface:#f6fdff;}.booking-section--payment{--section-accent:#0d9488;--section-border:#7dd3ca;--section-surface:#f6fdfc;}.booking-section--notes{--section-accent:#d97706;--section-border:#f2c47d;--section-surface:#fffdf8;}
.booking-section-heading{display:flex;align-items:flex-start;gap:10px;border-bottom:1px solid #edf1f5;margin:0 0 16px;padding:0 0 11px;}
.booking-section-icon{width:19px;height:19px;margin-top:2px;flex:0 0 auto;color:var(--section-accent);}
.booking-section-heading h3{margin:0;color:#102f55;font-size:18px;line-height:1.25;font-weight:700;}
.booking-section-heading p{margin:0;color:#66758a;font-size:13px;line-height:1.45;}
.booking-form-section .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;}
.booking-form-section .field>span{font-size:14px;font-weight:650;color:#233b56;}
.booking-field-label{display:inline-flex;align-items:center;gap:6px;min-width:0;}.booking-field-label .booking-section-icon{width:16px;height:16px;margin:0;color:#647b93;stroke-width:1.9;}
.booking-form-section input,.booking-form-section select,.booking-form-section textarea{min-height:44px;font-size:15px;border-radius:9px;}
.booking-form-section textarea{min-height:94px;}
.booking-form-section input:hover,.booking-form-section select:hover,.booking-form-section textarea:hover{border-color:color-mix(in srgb,var(--section-accent) 42%,#cbd5e1);}.booking-form-section input:focus,.booking-form-section select:focus,.booking-form-section textarea:focus{outline:3px solid color-mix(in srgb,var(--section-accent) 20%,transparent);outline-offset:1px;border-color:var(--section-accent);}
.booking-calculation{min-height:44px;display:flex;align-items:center;padding:0 12px;border:1px solid #d9e3ef;border-radius:9px;background:#f7fafc;color:#102f55;font-weight:700;font-size:15px;}
.hotel-detail-fields{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;padding-top:2px;}
.hotel-detail-fields[hidden]{display:none;}
.hotel-detail-fields .field.full{grid-column:1/-1;}
.whatsapp-same-mobile{display:flex;align-items:center;gap:9px;min-height:42px;padding:0 2px;color:#30445b;font-weight:600;cursor:pointer;}
.whatsapp-same-mobile input{width:18px;height:18px;margin:0;accent-color:#163b66;flex:0 0 auto;}
.whatsapp-same-mobile span{line-height:1.3;}
.booking-payment-state{grid-column:1/-1;min-height:38px;display:flex;align-items:center;padding:9px 11px;border:1px solid #dbe7f3;border-radius:8px;background:#f7fafc;color:#39546f;font-size:12px;line-height:1.4;}
.booking-stepper{grid-column:1/-1;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;min-width:0;max-width:100%;overflow:hidden;padding:2px 0 8px;margin:0;}
.booking-step-segment{display:block;min-width:0;height:6px;border-radius:999px;background:#dfe7ef;transition:background-color .2s ease,box-shadow .2s ease;}
.booking-step-segment.complete,.booking-step-segment.active{background:#d66d13;box-shadow:0 1px 3px rgba(214,109,19,.22);}
.booking-wizard-actions{display:flex;align-items:center;gap:10px;margin-right:auto;}.booking-wizard-actions .primary{margin:0;}
#dialog:has(.booking-form-section) .modal-actions button{display:inline-flex;align-items:center;justify-content:center;gap:7px;}#dialog:has(.booking-form-section) .modal-actions button[hidden]{display:none!important;}#dialog:has(.booking-form-section) .modal-actions button .booking-section-icon{width:17px;height:17px;margin:0;flex:0 0 auto;color:currentColor;}
#dialog:has(.booking-form-section) .modal-actions button{min-height:42px;padding:10px 16px;transition:transform .16s ease,box-shadow .16s ease,background-color .16s ease,border-color .16s ease;}
#dialog:has(.booking-form-section) .modal-actions button:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 4px 10px rgba(16,47,85,.12);}
#dialog:has(.booking-form-section) .modal-actions button:focus-visible{outline:3px solid rgba(214,109,19,.28);outline-offset:2px;}
#dialog:has(.booking-form-section) .modal-actions button:disabled{opacity:.52;cursor:not-allowed;box-shadow:none;transform:none;}
.booking-review{grid-column:1/-1;border:1px solid #f1cfab;border-radius:12px;background:#fffaf4;padding:16px;margin-top:12px;}
.booking-review h3{margin:0 0 12px;color:#102f55;font-size:18px;}
.booking-review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
.booking-review-grid p{margin:0;padding:10px;border-radius:8px;background:#fff;min-width:0;}
.booking-review-grid span{display:block;margin-bottom:3px;color:#68798d;font-size:12px;}
.booking-review-grid b{display:block;color:#203a57;font-size:14px;overflow-wrap:anywhere;}
.booking-review-note{margin:13px 0 0;color:#50647a;font-size:13px;line-height:1.45;}
.booking-form-section .field.is-optional{opacity:.72;}
.booking-form-section .field.is-optional input{background:#f5f7fa;cursor:not-allowed;}
.booking-vehicle-plan-draft{grid-column:1/-1;display:grid;gap:12px;padding:14px;border:1px solid #cfe1ed;border-radius:11px;background:#f9fcfe;}
.booking-plan-draft-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
.booking-plan-draft-head>div{display:grid;gap:3px;}.booking-plan-draft-head span{color:#173b70;font-size:14px;font-weight:750;}.booking-plan-draft-head small{max-width:680px;color:#64778b;font-size:12px;line-height:1.45;}
.booking-plan-draft-head button{white-space:nowrap;min-height:38px;}
#booking-vehicle-rows{display:grid;gap:10px;}.booking-vehicle-draft-row{display:grid;gap:11px;padding:13px;border:1px solid #dce8f1;border-radius:10px;background:#fff;}.booking-vehicle-draft-row>header{display:flex;align-items:center;justify-content:space-between;gap:10px;height:auto;padding:0;background:transparent;border:0;}.booking-vehicle-draft-row>header b{color:#243f5e;font-size:13px;}.booking-vehicle-draft-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;}.booking-vehicle-draft-grid .field.full{grid-column:1/-1;}.booking-vehicle-draft-grid .field>span{font-size:12px;}.booking-vehicle-draft-grid input,.booking-vehicle-draft-grid select{min-height:40px;font-size:14px;}.booking-plan-draft-summary{padding:9px 11px;border-radius:8px;background:#eef6fb;color:#38546e;font-size:12.5px;font-weight:650;line-height:1.4;}
@media(prefers-reduced-motion:reduce){.booking-stepper,*{scroll-behavior:auto!important;}}
@media(max-width:650px){#modal-title{font-size:22px;}.booking-form-section{padding:17px;border-radius:13px;}.booking-section-heading{display:flex;}.booking-section-heading p{margin-top:4px;}.booking-form-section .form-grid,.hotel-detail-fields,.booking-review-grid,.booking-vehicle-draft-grid{grid-template-columns:1fr;}.booking-form-section .field.full,.hotel-detail-fields .field.full,.booking-vehicle-draft-grid .field.full{grid-column:auto;}.whatsapp-same-mobile{min-height:38px;}.booking-wizard-actions button{min-height:44px;}.booking-stepper{gap:4px;padding-bottom:6px;}.booking-step-segment{height:5px;}.booking-plan-draft-head{display:grid;}.booking-plan-draft-head button{width:100%;}.booking-vehicle-draft-row>header{align-items:flex-start;}#dialog:has(.booking-form-section) .modal-head{padding:15px 16px 12px;flex-wrap:wrap;}#dialog:has(.booking-form-section) .booking-modal-progress{order:3;min-width:100%;}.icon-button{flex:0 0 auto;}#dialog:has(.booking-form-section) #form-fields{padding:14px 16px 24px;}#dialog:has(.booking-form-section) .modal-actions{padding:11px 16px 14px;flex-wrap:wrap;}.booking-wizard-actions{order:2;width:100%;}.booking-wizard-actions button{flex:1 1 0;}.modal-actions>[data-modal-close]{order:1;}.modal-actions>#save{order:1;margin-left:auto;}}
