[hidden] { display: none !important; }
.booking-form .booking-legal-consent { display: flex; align-items: flex-start; gap: 10px; margin: 6px 0; color: #263d60; font-size: 14px; font-weight: 400; line-height: 1.6; cursor: pointer; }
.booking-form .booking-legal-consent input[type="checkbox"] { flex: 0 0 20px; width: 20px; height: 20px; min-height: 20px; margin: 2px 0 0; padding: 0; accent-color: #143c7c; cursor: pointer; }
.booking-form .booking-legal-consent a { color: #143c7c; text-decoration: underline; text-underline-offset: 2px; }
.booking-form .booking-legal-consent input:focus-visible { outline: 2px solid #3475b9; outline-offset: 3px; }
.booking-dialog {
 overflow-x: hidden;
 overflow-y: scroll;
 overscroll-behavior: contain;
 scrollbar-gutter: stable;
 scrollbar-width: auto;
 scrollbar-color: #345b91 #e3eaf4;
 background: #fff;
}
.booking-dialog::-webkit-scrollbar { width: 16px; }
.booking-dialog::-webkit-scrollbar-track { background: #e3eaf4; }
.booking-dialog::-webkit-scrollbar-thumb { background: #345b91; border: 3px solid #e3eaf4; border-radius: 12px; }
.booking-dialog::-webkit-scrollbar-thumb:hover { background: #163c70; }
.fleet-search { margin: 0 0 28px; padding: 24px; border: 1px solid #ccd7e6; border-radius: 18px; background: #f0f5fb; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; color: #172b49; }
.fleet-search-title, .fleet-search-result { grid-column: 1 / -1; }
.fleet-search-title span { color: #4c627f; font-size: .85rem; font-weight: 700; }
.fleet-search h2 { margin: 5px 0 0; font-size: clamp(1.25rem,3vw,1.8rem); }
.fleet-search label { display: grid; gap: 8px; font-weight: 700; min-width: 0; }
.fleet-search input { box-sizing: border-box; min-width: 0; width: 100%; min-height: 48px; padding: 10px; border: 1px solid #a5b5ca; border-radius: 8px; background: white; font: inherit; color: #172b49; }
.fleet-search button, .rental-documents button { min-height: 44px; padding: 10px 14px; cursor: pointer; border: 1px solid #a5b5ca; border-radius: 8px; font: inherit; font-weight: 700; }
.fleet-search-result { margin: 0; line-height: 1.6; }
.fleet-search-result a { text-decoration: underline; color: #123e72; font-weight: 700; white-space: nowrap; }
.rental-documents { min-width: 0; padding: 18px; background: #f4f7fb; border: 1px solid #d8e0eb; border-radius: 12px; color: #172b49; }
.rental-documents h3 { margin: 0 0 8px; }
.rental-documents p { font-size: .9rem; line-height: 1.55; margin: 8px 0; }
.document-choices { display: flex; flex-wrap: wrap; gap: 10px; margin: 14px 0; }
.document-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.document-field { min-width: 0; padding: 12px; background: white; border: 1px solid #d3deeb; border-radius: 10px; }
.document-field label { display: block; font-weight: 700; font-size: .9rem; }
.document-field input { display: block; max-width: 100%; width: 100%; min-width: 0; margin: 12px 0; font: inherit; font-weight: 400; }
.document-field img { display: block; max-width: 100%; max-height: 140px; object-fit: contain; border-radius: 5px; }
.document-field p { overflow-wrap: anywhere; }
.booking-success { padding: 28px; }
.booking-success h2 { color: #176446; font-size: 1.55rem; }
.booking-success p { line-height: 1.6; overflow-wrap: anywhere; }
.booking-success > button { margin-top: 18px; }
.booking-success [data-success-id] { display: block; font-size: .9rem; }
.booking-query-error { padding: 16px; border-radius: 10px; background: #fff0ee; color: #86241c; }
.booking-entry { max-width: 1050px; margin: auto; padding: 30px 20px 60px; }
.booking-entry-header { background: #102b4e; color: white; padding: 22px max(20px,calc((100vw - 1010px)/2)); }
.booking-entry-header a { color: white; text-decoration: none; font-weight: 700; }
.booking-entry h1 { font-size: clamp(1.8rem,4vw,2.8rem); }
.booking-entry > p { line-height: 1.7; color: #4c627f; max-width: 700px; }
.booking-entry .car-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.booking-entry .car-card { padding: 20px; border-radius: 14px; border: 1px solid #d4dfeb; background: white; min-width: 0; }
.booking-entry .car-title { font-size: 1.15rem; margin: 0 0 8px; }
.booking-entry .car-card img { width: 100%; height: 160px; object-fit: cover; border-radius: 8px; }
.booking-entry .car-actions { margin-top: 16px; }
.booking-entry [data-document-page] > .booking-submit { margin-top: 20px; }
button:focus-visible, a:focus-visible, input:focus-visible { outline: 3px solid #3e83c4; outline-offset: 3px; }
button:disabled { opacity: .65; cursor: wait; }
@media (max-width: 600px) {
 .fleet-search { padding: 18px; grid-template-columns: 1fr; }
 .document-grid, .booking-entry .car-grid { grid-template-columns: 1fr; }
 .rental-documents { padding: 12px; }
 .booking-success { padding: 20px; }
 .booking-entry { padding: 24px 14px 40px; }
 .document-choices > button { width: 100%; }
}
.booking-progress { margin: 0 22px 22px; padding: 18px 20px; border: 1px solid #cbdaf0; border-radius: 14px; background: #f1f6ff; color: #12376d; }
.booking-progress[hidden] { display: none; }
.booking-form .booking-status[data-state="loading"] { display: none; }
.booking-progress-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; font-size: 16px; }
.booking-progress-heading > span { font-weight: 800; font-variant-numeric: tabular-nums; }
.booking-progress-track { overflow: hidden; height: 9px; margin-top: 13px; background: #dbe5f3; border-radius: 20px; }
.booking-progress-track > span { display: block; height: 100%; width: 5%; border-radius: inherit; background: linear-gradient(90deg, #123b80, #3977c8); transition: width .2s linear; }
.booking-progress p { margin: 10px 0 0; font-size: 12px; line-height: 1.6; color: #506680; }
.booking-progress[data-state="success"] { background: #eefaf3; border-color: #b7dfc9; color: #176344; }
.booking-progress[data-state="success"] .booking-progress-track > span { background: #22885f; }
@media (max-width: 600px) { .booking-progress { margin: 0 14px 18px; padding: 15px; } .booking-progress-heading { font-size: 14px; } }
@media (prefers-reduced-motion: reduce) { .booking-progress-track > span { transition: none; } }
