/* Compact customer choice within the existing booking dialog. */
.booking-customer { margin:0 0 1rem; position:relative; min-width:0; }
.booking-customer-results { position:absolute; z-index:5; inset:4.7rem 0 auto; margin:0; padding:4px; list-style:none; max-height:280px; overflow:auto; background:#fff; border:1px solid #728b9d; border-radius:8px; box-shadow:0 8px 22px #18354a24; }
.booking-customer-results li { padding:10px; cursor:pointer; min-height:48px; border-bottom:1px solid #e4e9ed; }
.booking-customer-results li[aria-selected=true],.booking-customer-results li:hover { background:#e8f1f8; outline:2px solid #24618e; outline-offset:-2px; }
.booking-customer-results strong,.booking-customer-results small { display:block; overflow-wrap:anywhere; }
.booking-customer-results small { color:#4c606e; font-size:.86rem; }
.booking-text-action { border:0; border-radius:4px; background:transparent; color:#205b87; font:inherit; font-weight:650; text-decoration:underline; text-underline-offset:3px; padding:10px 4px; min-height:44px; cursor:pointer; }
.booking-customer-summary { display:flex; align-items:center; flex-wrap:wrap; gap:4px 12px; padding:10px 0; border-bottom:1px solid #d9e2e8; }
.booking-customer-summary .booking-text-action { margin-left:auto; }
.booking-known-dogs { padding:0; margin:0 0 .7rem; border:0; }
.booking-known-dogs legend { font-weight:650; margin-bottom:.4rem; }
#booking-dog-options { display:flex; gap:8px; flex-wrap:wrap; }
#booking-dog-options label { display:flex; gap:8px; align-items:center; border:1px solid #8c9ca7; border-radius:7px; padding:8px 12px; min-height:44px; cursor:pointer; }
#booking-dog-options label:has(input:checked) { background:#e6f0f9; border-color:#205b87; }
#booking-dog-options input { width:18px; height:18px; accent-color:#205b87; }
#booking-form:has(.booking-review:not([hidden])) { margin-top:0; }
.booking-review-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:4px 12px; margin-bottom:10px; }
.booking-review-heading h3 { font-size:1.1rem; margin:0; }
.booking-review-heading .booking-text-action { flex-shrink:0; }
.booking-review dl { display:grid; grid-template-columns:max-content minmax(0,1fr); gap:10px 14px; margin:0; font-size:.9375rem; line-height:1.45; }
.booking-review dt { color:#4c606e; }
.booking-review dd { min-width:0; margin:0; font-weight:600; overflow-wrap:anywhere; }
.booking-review-time { display:block; margin-top:2px; font-size:.875rem; font-weight:400; color:#4c606e; }
.booking-review-price { margin-top:16px; padding:12px 14px; border-radius:8px; background:#eef4f8; }
.booking-review-total { display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:4px 12px; color:#004077; font-weight:650; }
.booking-review-total strong { font-size:1.5rem; line-height:1.2; font-variant-numeric:tabular-nums; }
.booking-review-calculation { display:flex; flex-wrap:wrap; gap:2px 5px; margin:6px 0 0; color:#445d6f; font-size:.875rem; line-height:1.5; }
.booking-review-calculation span { min-width:0; overflow-wrap:anywhere; }
.booking-customer :focus-visible,#booking-known-dogs :focus-visible,.booking-review :focus-visible { outline:3px solid #205b87; outline-offset:3px; }
#booking-form [hidden] { display:none !important; }

#booking-modal .booking-modal-close { color:#a82c27; }
.booking-delivery-issues { margin:12px auto; padding:10px 14px; max-width:1100px; color:#8a3028; background:#fff3ef; border-left:3px solid #b34d3e; }
.booking-delivery-issues summary { cursor:pointer; }
.booking-identity-note { margin:0 0 12px; color:#205b87; font-size:.875rem; }
