.pwcal-booking-open { overflow: hidden; }
.pwcal-booking-modal[hidden], .pwcal-booking-modal [hidden] { display: none !important; }
.pwcal-booking-modal { inset: 0; position: fixed; z-index: 999999; }
.pwcal-booking-backdrop { background: rgba(3, 23, 38, .78); inset: 0; position: absolute; }
.pwcal-booking-card {
    background: #fff;
    border-radius: 20px;
    box-shadow: 0 30px 90px rgba(3, 23, 38, .38);
    color: #102a43;
    left: 50%;
    max-height: calc(100vh - 40px);
    max-width: 920px;
    overflow: auto;
    padding: 30px;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: calc(100% - 40px);
}
.pwcal-booking-close { background: #edf3f7; border: 0; border-radius: 50%; color: #526d82; cursor: pointer; font-size: 25px; height: 40px; line-height: 1; position: absolute; right: 20px; top: 20px; width: 40px; }
.pwcal-booking-head { padding-right: 44px; }
.pwcal-booking-head > span, .pwcal-booking-summary > span, .pwcal-booking-verify > span { color: #ff662a; font-size: 12px; font-weight: 800; letter-spacing: .13em; }
.pwcal-booking-head h2 { color: #102a43; font-size: clamp(25px, 4vw, 39px); letter-spacing: -.025em; line-height: 1.08; margin: 6px 0; }
.pwcal-booking-head p { color: #627d98; margin: 0; }
.pwcal-booking-progress { display: grid; gap: 9px; grid-template-columns: repeat(4, 1fr); list-style: none; margin: 24px 0; padding: 0; }
.pwcal-booking-progress li { align-items: center; background: #f0f4f7; border-radius: 10px; color: #829ab1; display: flex; font-weight: 800; gap: 8px; padding: 10px 12px; }
.pwcal-booking-progress li span { font-size: 13px; }
.pwcal-booking-progress li.is-active { background: #0b5f92; color: #fff; }
.pwcal-booking-progress li.is-complete { background: #e9f8ef; color: #18713a; }
.pwcal-booking-status { border-radius: 9px; color: #102a43; font-size: 14px; margin-bottom: 14px; }
.pwcal-booking-status:not(:empty) { background: #edf5fb; border: 1px solid #b6d4e8; padding: 11px 13px; }
.pwcal-booking-status.is-error:not(:empty) { background: #fff0ef; border-color: #efb2ab; color: #92251d; }
.pwcal-booking-status.is-warning:not(:empty) { background: #fff8e6; border-color: #edcf87; color: #754906; }
.pwcal-booking-fields, .pwcal-booking-confirm-grid, .pwcal-booking-picker { display: grid; gap: 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pwcal-booking-fields { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pwcal-booking-card label { color: #243b53; display: block; font-size: 14px; font-weight: 750; }
.pwcal-booking-card input, .pwcal-booking-card textarea, .pwcal-booking-card select { background: #fff; border: 1px solid #bcccdc; border-radius: 9px; box-sizing: border-box; color: #102a43; display: block; font: inherit; margin-top: 7px; min-height: 46px; padding: 10px 12px; width: 100%; }
.pwcal-booking-card textarea { resize: vertical; }
.pwcal-booking-reason { margin-top: 18px; }
.pwcal-booking-signed-in { background: #eef7fb; border-left: 4px solid #1da7d8; border-radius: 8px; font-size: 14px; margin-bottom: 16px; padding: 11px 13px; }
.pwcal-booking-choice { background: #edf3f7; border-radius: 10px; display: inline-flex; gap: 4px; margin-bottom: 17px; padding: 4px; }
.pwcal-booking-choice button { background: transparent; border: 0; border-radius: 8px; color: #526d82; cursor: pointer; font-weight: 800; padding: 10px 14px; }
.pwcal-booking-choice button.is-active { background: #fff; box-shadow: 0 3px 9px rgba(16, 42, 67, .12); color: #075c9f; }
.pwcal-booking-picker > div { min-width: 0; }
.pwcal-booking-picker h3, .pwcal-booking-confirm-grid h3, .pwcal-booking-verify h3, .pwcal-booking-done h3 { color: #102a43; margin: 0 0 10px; }
.pwcal-booking-dates, .pwcal-booking-times { display: grid; gap: 8px; grid-template-columns: repeat(2, minmax(0, 1fr)); max-height: 305px; overflow: auto; padding: 2px; }
.pwcal-booking-dates button, .pwcal-booking-times button { background: #f4f7fa; border: 1px solid #d9e2ec; border-radius: 9px; color: #243b53; cursor: pointer; font-weight: 750; padding: 11px; text-align: left; }
.pwcal-booking-dates button:hover, .pwcal-booking-times button:hover, .pwcal-booking-dates button.is-selected, .pwcal-booking-times button.is-selected { background: #e7f5fc; border-color: #1b98cc; color: #075c9f; }
.pwcal-booking-privacy { color: #627d98; font-size: 13px; margin: -6px 0 10px; }
.pwcal-booking-summary { background: linear-gradient(145deg, #092f49, #126794); border-radius: 15px; color: #fff; padding: 22px; }
.pwcal-booking-summary h3 { color: #fff; line-height: 1.35; margin-top: 7px; }
.pwcal-booking-summary dl { display: grid; gap: 9px; margin-bottom: 0; }
.pwcal-booking-summary dl > div { border-top: 1px solid rgba(255,255,255,.18); padding-top: 9px; }
.pwcal-booking-summary dt { color: #a9d8ed; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.pwcal-booking-summary dd { margin: 3px 0 0; }
.pwcal-booking-confirm-grid p, .pwcal-booking-empty { color: #627d98; font-size: 13px; }
.pwcal-booking-actions { align-items: center; border-top: 1px solid #d9e2ec; display: flex; justify-content: space-between; margin-top: 24px; padding-top: 17px; }
.pwcal-booking-primary, .pwcal-booking-secondary { border-radius: 9px; cursor: pointer; display: inline-flex; font-weight: 800; justify-content: center; min-height: 44px; padding: 11px 17px; text-decoration: none !important; }
.pwcal-booking-primary { background: #ff662a; border: 1px solid #ff662a; color: #fff !important; }
.pwcal-booking-primary:disabled { cursor: not-allowed; opacity: .45; }
.pwcal-booking-secondary { background: #fff; border: 1px solid #aebdca; color: #243b53; }
.pwcal-booking-verify, .pwcal-booking-done { margin: 35px auto; max-width: 520px; text-align: center; }
.pwcal-booking-verify [data-pwcal-recaptcha] { display: flex; justify-content: center; margin-top: 20px; }
.pwcal-booking-done > span { align-items: center; background: #e5f7eb; border-radius: 50%; color: #15803d; display: inline-flex; font-size: 36px; height: 72px; justify-content: center; width: 72px; }
.pwcal-booking-action-page { align-items: flex-start; background: #edf3f7; box-sizing: border-box; display: flex; justify-content: center; min-height: 100vh; padding: 180px 20px 90px; }
.admin-bar .pwcal-booking-action-page { padding-top: 212px; }
.pwcal-booking-action-page > section { background: #fff; border-radius: 18px; box-shadow: 0 20px 50px rgba(16,42,67,.13); box-sizing: border-box; margin: 0 auto; max-width: 680px; padding: 38px; width: 100%; }
.pwcal-booking-action-page > section > span { color: #ff662a; font-size: 12px; font-weight: 800; letter-spacing: .13em; }
.pwcal-booking-action-page h1 { color: #102a43; font-size: clamp(30px, 5vw, 46px); letter-spacing: -.025em; line-height: 1.08; margin: 8px 0 10px; }
.pwcal-booking-action-page p { color: #526d82; line-height: 1.6; }
.pwcal-booking-decline-form { border-top: 1px solid #d9e2ec; margin-top: 26px; padding-top: 4px; }
.pwcal-booking-decline-form label { color: #243b53; display: block; font-weight: 750; margin: 20px 0; }
.pwcal-booking-decline-form textarea { border: 1px solid #bcccdc; border-radius: 9px; box-sizing: border-box; color: #102a43; display: block; font: inherit; margin-top: 7px; min-height: 150px; padding: 12px; resize: vertical; width: 100%; }
.pwcal-booking-action-return { margin: 24px 0 0 !important; }
.pwcal-booking-action-return .pwcal-booking-secondary { align-items: center; }
@media (max-width: 700px) {
    .pwcal-booking-card { border-radius: 14px; max-height: calc(100vh - 16px); padding: 20px; width: calc(100% - 16px); }
    .pwcal-booking-progress li span { display: none; }
    .pwcal-booking-progress li { justify-content: center; }
    .pwcal-booking-fields, .pwcal-booking-confirm-grid, .pwcal-booking-picker { grid-template-columns: 1fr; }
    .pwcal-booking-dates, .pwcal-booking-times { max-height: 190px; }
    .pwcal-booking-action-page { padding: 140px 14px 60px; }
    .admin-bar .pwcal-booking-action-page { padding-top: 184px; }
    .pwcal-booking-action-page > section { border-radius: 14px; padding: 26px 20px; }
}
