/* Isolated booking UI: does not alter the portal or metronome. */
.booking-body { background: #090b0d; color: #f3f4f6; }
.booking-brand { max-width: 1152px; margin: auto; padding: 24px; display: flex; gap: 20px; align-items: center; }
.booking-brand img { width: 158px; height: auto; }
.booking-brand span { color: #b5bac4; font-size: .9rem; }
.booking-shell { max-width: 1152px; margin: 12px auto 40px; padding: 0 24px; }
.booking-layout { display: grid; grid-template-columns: minmax(250px, .8fr) minmax(0, 1.3fr); gap: 24px; align-items: start; }
.booking-shell .panel, .booking-settings .panel { padding: 28px; min-width: 0; }
.booking-shell h1 { font-size: clamp(1.7rem, 4vw, 2.4rem); line-height: 1.2; margin: 10px 0 20px; text-transform: none; }
.booking-shell h2 { font-size: 1.4rem; line-height: 1.3; margin: 16px 0; }
.booking-shell p { line-height: 1.55; }
.booking-photo { width: 100px; height: 100px; object-fit: cover; border-radius: 24px; }
.booking-intro { white-space: normal; overflow-wrap: anywhere; }
.booking-facts { display: grid; gap: 16px; margin: 24px 0; }
.booking-facts div { display: grid; grid-template-columns: 100px minmax(0, 1fr); gap: 12px; }
.booking-facts dt { color: #b5bac4; }
.booking-facts dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
.booking-steps { list-style: none; padding: 0; display: flex; gap: 14px; color: #b5bac4; font-size: .85rem; }
.booking-steps [aria-current] { color: #f8b817; font-weight: bold; }
.booking-days { display: flex; flex-wrap: wrap; gap: 8px; max-height: 180px; overflow: auto; padding: 2px; }
.booking-days button, .booking-times button { background: #0a0c0f; border: 1px solid #494c53; border-radius: 10px; color: #f3f4f6; padding: 12px 16px; cursor: pointer; font: inherit; }
.booking-days button[aria-pressed="true"], .booking-times button[aria-pressed="true"] { border-color: #ffbe18; background: #372b0d; color: #ffca45; }
.booking-times { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 16px 0; }
.booking-field { display: grid; gap: 7px; margin-bottom: 18px; min-width: 0; }
.booking-field label, .booking-reschedule label { font-weight: 600; color: #c4c8d1; }
.booking-field input:not([type=checkbox]), .booking-field select, .booking-field textarea, .booking-reschedule select { width: 100%; min-width: 0; box-sizing: border-box; }
.booking-field input:not([type=checkbox]):not([type=file]), .booking-field select, .booking-field textarea, .booking-window select, .booking-window input:not([type=checkbox]) { background: #090b0d; color: #f3f4f6; border: 1px solid #3d4148; border-radius: 10px; padding: 14px; font: inherit; }
.booking-field input:focus, .booking-field select:focus, .booking-field textarea:focus { outline: 2px solid #f5b617; outline-offset: 2px; }
.booking-link-settings { max-width: 850px; }
.booking-link-settings h1 { margin: 8px 0 16px; font-size: clamp(1.5rem, 4vw, 2rem); line-height: 1.2; text-transform: none; overflow-wrap: normal; }
.booking-link-settings .copy-link-row input { box-sizing: border-box; background: #090b0d; color: #f3f4f6; border: 1px solid #3d4148; border-radius: 10px; padding: 14px; font: inherit; }
.booking-link-form { margin-top: 24px; }
.booking-manual-option { color: #b5bac4; padding: 4px 8px; }
.booking-manual-option summary { cursor: pointer; }
.booking-google-page { min-width: 0; }
.booking-google-heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 24px; }
.booking-google-heading h1 { margin-bottom: 8px; }
.booking-google-heading p { margin-top: 0; color: #c4c8d1; }
.booking-google-heading .eyebrow { color: #ffbe18; }
.booking-google-heading > .button { flex-shrink: 0; }
.booking-google-frame { border: 1px solid #655120; border-radius: 18px; overflow: hidden; background: white; }
.booking-google-frame iframe { display: block; width: 100%; height: 720px; border: 0; color-scheme: light; }
.booking-google-help { color: #b5bac4; font-size: .9rem; text-align: center; }
.booking-field small { color: #b5bac4; }
.booking-back { border: 0; background: none; color: #ffbf24; padding: 8px 0; cursor: pointer; font: inherit; }
.booking-consent { display: flex; align-items: start; gap: 12px; margin: 24px 0; }
.booking-consent input { flex: 0 0 auto; margin-top: 5px; }
.booking-error, .booking-field .errorlist { color: #ffd27a; background: #352b19; padding: 14px; border-radius: 10px; overflow-wrap: anywhere; }
.booking-trap { position: absolute !important; width: 1px !important; height: 1px !important; opacity: 0; pointer-events: none; }
.booking-actions { display: flex; gap: 12px; flex-wrap: wrap; margin: 20px 0 0; }
.booking-result { max-width: 800px; margin: auto; text-align: center; }
.booking-result .dodo-mascot { margin: auto; }
.booking-result .booking-actions { justify-content: center; }
.booking-result hr { border: 0; border-top: 1px solid #34373c; margin: 32px 0; }
.booking-date { font-size: 1.15rem; font-weight: 700; color: #ffbf24; }
.booking-footer { max-width: 900px; margin: auto; text-align: center; padding: 16px 24px 36px; color: #b5bac4; font-size: .85rem; }
.booking-footer p { max-width: 600px; margin: 16px auto; }
.booking-spinner { display: block; width: 32px; height: 32px; border: 3px solid #434951; border-top-color: #ffbe18; border-radius: 50%; animation: booking-spin 1s linear infinite; margin: 16px auto; }
.booking-reschedule, .booking-cancel { border: 1px solid #393c43; border-radius: 12px; margin: 20px 0; padding: 16px; text-align: left; }
.booking-reschedule form { display: grid; gap: 16px; margin-top: 20px; }
.booking-demo-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 24px; }
.booking-demo-grid details { margin: 24px 0; }
.booking-demo-grid progress { display: block; width: 100%; accent-color: #ffbe18; margin-top: 12px; }
.booking-settings { max-width: 1120px; margin: auto; display: grid; gap: 24px; }
.booking-config-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; }
.booking-wide { grid-column: 1 / -1; }
.booking-window { display: grid; grid-template-columns: 1.4fr 1fr 1fr auto; gap: 12px; border-top: 1px solid #34373c; padding: 16px 0; }
.booking-window > div { min-width: 0; display: grid; gap: 6px; }
.booking-window input:not([type=checkbox]), .booking-window select { width: 100%; min-width: 0; }
.booking-stats { display: flex; flex-wrap: wrap; gap: 24px; }
.booking-stats strong { display: block; font-size: 1.8rem; color: #ffbf24; }
.booking-reservation { padding: 20px 0; border-top: 1px solid #34373c; display: flex; gap: 20px; justify-content: space-between; }
.booking-reservation > div { min-width: 0; overflow-wrap: anywhere; }
[data-booking-step][hidden] { display: none !important; }
@keyframes booking-spin { to { transform: rotate(360deg); } }
@media (max-width: 700px) {
 .booking-brand { padding: 20px 16px; }.booking-brand span { display: none; }
 .booking-shell { padding: 0 12px; }.booking-layout, .booking-demo-grid { grid-template-columns: 1fr; gap: 16px; }
 .booking-shell .panel, .booking-settings .panel { padding: 20px; }
 .booking-profile { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 0 16px; }
 .booking-photo { width: 64px; height: 64px; grid-row: 1 / 3; border-radius: 16px; }
 .booking-profile h1 { font-size: 1.6rem; margin-top: 0; }.booking-profile .eyebrow { margin-top: 0; align-self: end; }
 .booking-profile > :not(.booking-photo):not(.eyebrow):not(h1) { grid-column: 1 / -1; }
 .booking-facts { gap: 10px; margin: 16px 0; }.booking-steps { gap: 10px; font-size: .8rem; }
 .booking-actions > .button { width: 100%; }.booking-config-grid { grid-template-columns: 1fr; }
 .booking-window { grid-template-columns: 1fr 1fr; }.booking-window > div:first-of-type { grid-column: 1 / -1; }
 .booking-reservation { display: block; }.booking-brand img { width: 140px; }
 .booking-google-heading { display: block; }.booking-google-heading > .button { margin-top: 8px; }
 .booking-google-frame iframe { height: 1100px; }.booking-google-frame { border-radius: 12px; }
 .booking-link-settings .copy-link-row { flex-wrap: wrap; }.booking-link-settings .copy-link-row input { flex-basis: 100%; min-width: 0; }
}
@media (prefers-reduced-motion: reduce) { .booking-spinner { animation: none; } }
