.booking-location-controls { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin:12px 0 8px; }
.booking-location-controls button { border:1px solid #0a6c4d; background:#e9f7ed; color:#075b3f; border-radius:9px; padding:9px 13px; font-family:inherit; font-size:.76rem; font-weight:700; cursor:pointer; }
.booking-location-controls span { font-size:.7rem; color:#416555; }
#booking-map { height:210px; width:100%; border:2px solid #b3d9bc; border-radius:12px; overflow:hidden; z-index:0; }
.booking-map-hint { margin:7px 0 14px; color:#527763; font-size:.69rem; line-height:1.5; }
.booking-quote { margin:16px 0 8px; padding:0 14px; border-radius:12px; background:#eef8ef; }
.booking-quote:not(:empty) { padding-block:12px; }
.booking-quote div { display:flex; justify-content:space-between; gap:12px; font-size:.75rem; padding:5px 0; }
.booking-quote .booking-total { border-top:1px solid #b3d9bc; margin-top:5px; padding-top:10px; font-size:.9rem; }
.booking-card .form-message { height:auto; min-height:18px; line-height:1.5; }
.booking-card .form-message.error { color:#a32b2b; }
.booking-card button:disabled { opacity:.55; cursor:not-allowed; }
.booking-cleaner-preview { display:flex; align-items:center; gap:12px; background:#eef8ef; padding:10px 12px; border-radius:12px; font-size:.75rem; }
.booking-cleaner-preview[hidden] { display:none; }
.booking-cleaner-preview img { width:44px; height:44px; border-radius:50%; object-fit:cover; }
.booking-cleaner-preview strong,.booking-cleaner-preview small { display:block; }
.booking-cleaner-preview small { color:#527763; margin-top:2px; }
.booking-free-windows { margin:-5px 0 10px; color:#416555; font-size:.72rem; line-height:1.5; }
.booking-free-windows.unavailable { color:#a32b2b; }
.booking-cleaner-field { margin:15px 0; }
.booking-cleaner-field > label { margin:0 0 8px; }
.booking-cleaner-field > label span { margin:0; }
.booking-cleaner-field.booking-cleaner-enhanced > select, .booking-cleaner-picker[hidden], .booking-cleaner-menu[hidden] { display:none !important; }
.booking-cleaner-picker { position:relative; }
.booking-cleaner-toggle { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; min-height:66px; padding:9px 13px; border:1px solid #a5cfb1; border-radius:14px; background:linear-gradient(135deg,#fff 65%,#eff9f0); color:#0b3028; box-shadow:0 4px 12px #075b3f0d; font-family:inherit; text-align:start; cursor:pointer; transition:border-color .2s,box-shadow .2s; }
.booking-cleaner-toggle:hover:not(:disabled), .booking-cleaner-field.open .booking-cleaner-toggle { border-color:#087755; box-shadow:0 0 0 3px #0877551d; }
.booking-cleaner-selected { display:flex; align-items:center; gap:11px; min-width:0; }
.booking-cleaner-placeholder { font-size:.87rem; font-weight:700; }
.booking-cleaner-chevron { flex:none; font:700 1.45rem Arial,sans-serif; transition:transform .2s; }
.booking-cleaner-field.open .booking-cleaner-chevron { transform:rotate(180deg); }
.booking-cleaner-avatar { flex:none; width:42px; height:42px; border-radius:50%; border:2px solid #d6ebd9; object-fit:cover; background:#e3f4e8; }
.booking-cleaner-initials { display:grid; place-items:center; color:#087755; font-size:1rem; font-weight:800; }
.booking-cleaner-person { display:flex; flex-direction:column; gap:2px; min-width:0; }
.booking-cleaner-person strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.86rem; line-height:1.25; }
.booking-cleaner-person small { color:#527763; font-size:.68rem; line-height:1.25; }
.booking-cleaner-menu { position:absolute; inset-inline:0; top:calc(100% + 6px); z-index:50; max-height:315px; overflow-y:auto; padding:6px; border:1px solid #bad8c2; border-radius:14px; background:#fff; box-shadow:0 16px 34px #0b30282e; }
.booking-cleaner-option { display:flex; align-items:center; gap:10px; width:100%; min-height:58px; padding:7px 9px; border:0; border-radius:10px; background:transparent; color:#0b3028; font-family:inherit; text-align:start; cursor:pointer; }
.booking-cleaner-option:hover:not(:disabled), .booking-cleaner-option:focus-visible, .booking-cleaner-option[aria-selected="true"] { background:#eaf7ed; }
.booking-cleaner-option:disabled { cursor:not-allowed; opacity:.55; }
.booking-cleaner-check { margin-inline-start:auto; color:#087755; font-size:1rem; font-weight:800; }
.booking-cleaner-toggle:focus-visible, .booking-cleaner-option:focus-visible { outline:3px solid #4baf68; outline-offset:2px; }
.booking-card > button[hidden], .booking-submitted[hidden], .booking-payment-actions[hidden], .booking-payment-details[hidden] { display:none !important; }
.booking-submitted { margin-top:14px; padding:14px; border:1px solid #9bdbad; border-radius:12px; background:#e9f7ed; color:#075b3f; text-align:center; }
.booking-submitted strong { display:block; font-size:.84rem; margin-bottom:8px; }
.booking-submitted button { border:0; background:transparent; color:#075b3f; font-family:inherit; font-size:.75rem; font-weight:700; text-decoration:underline; cursor:pointer; }
.booking-confirmation { width:min(92vw,480px); max-height:min(90vh,760px); overflow-y:auto; border:0; border-radius:24px; padding:clamp(22px,5vw,32px); background:#fbfdf8; color:#0b3028; box-shadow:0 24px 80px #062e2580; direction:inherit; text-align:start; font-family:inherit; }
.booking-confirmation::backdrop { background:#062e25b8; backdrop-filter:blur(4px); }
.booking-confirmation-close { position:absolute; top:12px; inset-inline-end:14px; border:0; background:transparent; color:#416555; font:400 1.7rem Arial,sans-serif; cursor:pointer; }
.booking-confirmation-icon { display:grid; place-items:center; width:54px; height:54px; border-radius:50%; background:#daf5dc; color:#087755; font:700 1.8rem Arial,sans-serif; margin-bottom:18px; }
.booking-confirmation h3 { margin:0 0 8px; font-size:clamp(1.25rem,4vw,1.7rem); line-height:1.35; }
.booking-confirmation p { margin:0 0 16px; color:#416555; font-size:.9rem; line-height:1.65; }
.booking-confirmation-summary { display:grid; grid-template-columns:1fr auto; gap:10px 14px; margin:20px 0; padding:16px; border-radius:13px; background:#eef8ef; font-size:.82rem; }
.booking-confirmation-summary span { color:#416555; }
.booking-confirmation-summary strong { text-align:end; overflow-wrap:anywhere; }
.booking-payment-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.booking-payment-actions button, .booking-payment-details > button { min-height:46px; border-radius:11px; padding:10px 16px; font-family:inherit; font-size:.88rem; font-weight:700; cursor:pointer; }
.booking-payment-primary { border:1px solid #075b3f; background:#075b3f; color:white; }
.booking-payment-secondary { border:1px solid #9bcbab; background:white; color:#075b3f; }
.booking-payment-details { border-top:1px solid #c9ddcc; padding-top:18px; }
.booking-payment-details p { margin-bottom:10px; }
.booking-iban-row { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 4px; }
.booking-iban-row input { flex:1 1 225px; min-width:0; border:1px solid #9bcbab; border-radius:9px; padding:11px; background:white; color:#0b3028; font:700 .9rem Manrope,Arial,sans-serif; letter-spacing:.02em; text-align:center; }
.booking-iban-row button { border:1px solid #075b3f; border-radius:9px; padding:10px 14px; background:#e9f7ed; color:#075b3f; font-family:inherit; font-size:.78rem; font-weight:700; cursor:pointer; }
.booking-payment-details a { display:inline-block; margin:0 0 12px; color:#075b3f; font:700 1rem Manrope,Arial,sans-serif; }
.booking-payment-details .booking-copy-status { min-height:1.2em; margin:0 0 12px; color:#087755; font-size:.76rem; }
.booking-payment-details .booking-payment-note { font-size:.76rem; }
.booking-payment-details > button { width:100%; }
.booking-confirmation button:focus-visible, .booking-confirmation a:focus-visible, .booking-submitted button:focus-visible { outline:3px solid #4baf68; outline-offset:3px; }
@media(max-width:390px) { .booking-payment-actions { grid-template-columns:1fr; } }
