.booking-route { margin: 0; color: #172033; background: #eef4fa; }
.booking-main { min-height: 100vh; display: grid; place-items: center; padding: 32px 18px; }
.booking-card { width: min(100%, 680px); box-sizing: border-box; padding: clamp(24px, 5vw, 48px); border-radius: 24px; background: #fff; box-shadow: 0 18px 55px rgba(16, 40, 76, .12); }
.booking-brand { display: inline-block; margin-bottom: 28px; color: #0a63ce; font-weight: 800; letter-spacing: .08em; text-decoration: none; }
.booking-card .eyebrow { display: block; margin: 0 0 10px; }
.booking-card h1 { margin: 6px 0 14px; color: #10284c; font-size: clamp(30px, 5vw, 48px); line-height: 1.08; }
.booking-card > p { line-height: 1.6; }
.booking-card form { display: grid; gap: 18px; margin-top: 26px; }
.booking-card .booking-recovery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.booking-card .booking-recovery-grid>.booking-trap,.booking-card .booking-recovery-grid>.booking-consent,.booking-card .booking-recovery-grid>.btn { grid-column:1/-1; }
.booking-card form[hidden] { display: none; }
.booking-card form > label:not(.booking-consent) { display: grid; gap: 7px; font-weight: 650; }
.booking-card input:not([type="checkbox"]):not(.booking-trap) { min-height: 48px; box-sizing: border-box; width: 100%; padding: 11px 13px; border: 1px solid #b8c7d9; border-radius: 10px; font: inherit; }
.booking-consent { display: flex; gap: 10px; align-items: center; min-height: 44px; font-size: 14px; line-height: 1.4; }
.booking-consent input { width: 20px; height: 20px; flex: 0 0 auto; }
.booking-card button { min-height: 48px; }
.booking-card :focus-visible { outline: 2px solid #0a63ce; outline-offset: 3px; }
.booking-trap { position: fixed !important; left: -10000px !important; width: 1px !important; height: 1px !important; }
[data-booking-status] { margin-top: 18px; }
[data-booking-panel] { margin-top: 22px; }
.booking-confirmation { padding: 22px; border: 1px solid rgba(31, 93, 212, .24); border-radius: 16px; background: rgba(31, 93, 212, .06); }
.booking-confirmation h4 { margin: 0 0 12px; }
.booking-confirmation p { margin: 6px 0; }
.booking-confirmation-schedule { color: #1f5dd4; font-weight: 700; }
.booking-confirm-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 18px; }
.booking-confirm-actions .btn { min-width: 150px; }
.booking-inline-status { min-height: 24px; margin: 12px 0 0; }
.booking-confirmation .booking-return { display: inline-flex; margin-top: 16px; }
@media (max-width: 600px) { .booking-card .booking-recovery-grid { grid-template-columns:1fr; } .booking-main { place-items: start center; padding: 16px; } .booking-card { padding: 24px 18px; border-radius: 18px; } .booking-card .btn, .tool-booking-slots .btn { width: 100%; } }
