/** QC Memberships & Meetings 1.6.37 - customer scheduled-plan selection */
.qcm-frontend .qcm-detail-section.qcm-booking-selector {
    margin-top: 30px !important;
}
.qcm-booking-selector {
    border: 1px solid var(--qcm-form-border, #cbd5df);
    border-radius: var(--qcm-ui-radius, 6px);
    background: var(--qcm-form-bg, #fff);
    padding: 18px;
}
.qcm-booking-selector-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 14px;
}
.qcm-booking-selector-head h2 { margin: 2px 0 5px; }
.qcm-booking-selector-head p { margin: 0; color: var(--qc-muted, #475569); }
.qcm-booking-timezone {
    flex: 0 0 auto;
    font-size: 13px;
    color: var(--qc-muted, #475569);
    padding-top: 3px;
}
.qcm-booking-controls { margin: 12px 0; }
.qcm-booking-host-field,
.qcm-booking-single-host {
    display: grid;
    grid-template-columns: minmax(80px, 120px) minmax(180px, 320px);
    align-items: center;
    gap: 10px;
    max-width: 470px;
}
.qcm-booking-host-field > span,
.qcm-booking-single-host > span { font-weight: 600; }
.qcm-booking-host-field select {
    width: 100%;
    min-height: 40px;
    border: 1px solid var(--qcm-field-border, #aebdca);
    border-radius: var(--qcm-ui-radius, 6px);
    background: var(--qcm-field-bg, #fff);
    color: var(--qcm-field-text, #17212b);
    padding: 6px 9px;
}
.qcm-booking-message {
    margin: 10px 0;
    padding: 9px 11px;
    border-radius: var(--qcm-ui-radius, 6px);
    border: 1px solid #cbd5df;
    background: #f8fafc;
}
.qcm-booking-message.is-error { border-color: #efb6b0; background: #fff6f5; color: #8a1f17; }
.qcm-booking-message.is-ok { border-color: #b8d9ca; background: #f4fbf7; }

/* Customer calendar intentionally reuses the established QC Memberships & Meetings calendar geometry. */
.qcm-booking-calendar { margin-top: 10px; }
.qcm-booking-calendar .qcm-calendar-controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    flex-wrap: wrap;
    margin: 12px 0 9px;
}
.qcm-booking-calendar .qcm-calendar-view-buttons,
.qcm-booking-calendar .qcm-calendar-navigation {
    display: flex;
    align-items: center;
    gap: 5px;
    flex-wrap: wrap;
}
.qcm-booking-calendar .qcm-calendar-tool {
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
    min-height: 32px !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 6px !important;
    font-weight: 800 !important;
}
.qcm-booking-calendar .qcm-calendar-view-glyph {
    display: block;
    font-size: 11px !important;
    font-weight: 900;
    letter-spacing: -.02em;
    line-height: 1;
}
.qcm-booking-calendar .qcm-calendar-nav-glyph {
    display: block;
    font-size: 23px !important;
    font-weight: 500;
    line-height: .8;
    transform: translateY(-1px);
}
.qcm-booking-calendar .qcm-calendar-today-glyph { font-size: 9px !important; transform: none; }
.qcm-booking-calendar .qcm-calendar-view-buttons .qcm-icon-action.is-active {
    background: #263548 !important;
    border-color: #263548 !important;
    color: #fff !important;
    box-shadow: 0 1px 2px rgba(15,23,42,.16);
}
.qcm-booking-calendar .qcm-calendar-next-available {
    min-height: 32px;
    width: auto;
    padding: 0 10px;
    border-radius: 6px;
    font-size: .72rem;
    font-weight: 700;
    white-space: nowrap;
}
.qcm-booking-calendar .qcm-calendar-title-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin: 0 0 10px;
}
.qcm-booking-calendar .qcm-calendar-title-row h3 { margin: 0 !important; color: #172235; font-size: 1.02rem !important; }
.qcm-booking-calendar .qcm-calendar-title-row span { color: var(--qcm-muted, #64748b) !important; font-size: .75rem !important; }
.qcm-booking-calendar .qcm-calendar-mount {
    overflow-x: auto;
    transition: opacity .16s ease, height .22s ease;
}
.qcm-booking-calendar .qcm-calendar-mount.is-updating {
    opacity: .58;
    pointer-events: none;
}
.qcm-booking-calendar .qcm-calendar-month-day.has-availability { background: #fff; }
.qcm-booking-calendar .qcm-calendar-month-day.has-availability:hover { background: #fbfdff; }
.qcm-booking-calendar .qcm-calendar-day-header.has-availability { cursor: pointer; }
.qcm-booking-calendar .qcm-calendar-day-header.has-availability:hover,
.qcm-booking-calendar .qcm-calendar-day-header.has-availability:focus { background: #eef5fb; color: #1f4d78; }
.qcm-booking-calendar .qcm-calendar-month-day.has-conflicts { background: #f7f8fa; }
.qcm-booking-calendar .qcm-calendar-day-header.has-conflicts { cursor: pointer; opacity: .62; }
.qcm-booking-calendar .qcm-calendar-day-header.has-conflicts:hover,
.qcm-booking-calendar .qcm-calendar-day-header.has-conflicts:focus { background: #f1f3f6; }
.qcm-booking-calendar .qcm-calendar-day-header.is-disabled {
    cursor: default;
    color: inherit;
}
.qcm-booking-calendar .qcm-calendar-day-header.is-disabled:hover { background: inherit; }
.qcm-booking-calendar-event {
    --qcm-host-color: #4f83cc;
    opacity: 1 !important;
    filter: none !important;
}
.qcm-booking-calendar-event.is-customer-conflict {
    opacity: .42 !important;
    filter: grayscale(.35) !important;
    cursor: not-allowed !important;
}
.qcm-booking-calendar-event.is-customer-conflict strong,
.qcm-booking-calendar-event.is-customer-conflict span { color: #697386 !important; }
.qcm-booking-calendar .qcm-calendar-daily .qcm-booking-calendar-event {
    padding: 11px 13px;
    gap: 3px;
}
.qcm-booking-calendar .qcm-calendar-daily .qcm-booking-calendar-event strong { font-size: .86rem; }
.qcm-booking-calendar .qcm-calendar-daily .qcm-booking-calendar-event span { font-size: .73rem; white-space: normal; }
.qcm-booking-calendar .qcm-calendar-daily .qcm-booking-event-plan {
    color: #25354a;
    font-weight: 700;
}
.qcm-booking-calendar .qcm-calendar-daily .qcm-booking-event-meta {
    color: #526174;
    line-height: 1.35;
}
.qcm-booking-calendar button:disabled { opacity: .5; cursor: not-allowed; }

.qcm-booking-held,
.qcm-checkout-meeting {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    border: 1px solid var(--qcm-form-border, #cbd5df);
    border-radius: var(--qcm-ui-radius, 6px);
    background: #f8fafc;
    padding: 12px 14px;
    margin: 12px 0;
}
.qcm-checkout-meeting.qcm-checkout-meeting-inline {
    border: 0;
    border-top: 1px solid var(--qcm-form-border, #cbd5df);
    border-radius: 0;
    background: transparent;
    padding: 14px 0 0;
    margin: 14px 0 0;
}
.qcm-checkout-meeting-title {
    font-size: 1.15rem !important;
    line-height: 1.3 !important;
    font-weight: 700 !important;
}
.qcm-booking-held > div:first-child,
.qcm-checkout-meeting > div:first-child { display: flex; flex-direction: column; gap: 2px; }
.qcm-booking-held strong,
.qcm-checkout-meeting h3 { margin: 0; }
.qcm-booking-held small,
.qcm-checkout-meeting p { margin: 0; color: var(--qc-muted, #475569); }
.qcm-booking-held-actions,
.qcm-checkout-meeting-actions {
    display: flex;
    align-items: center;
    gap: 9px;
    flex-wrap: wrap;
    justify-content: flex-end;
}
.qcm-hold-countdown {
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    white-space: nowrap;
}
.qcm-hold-countdown.is-expired { color: #a1261d; }
.qcm-checkout-meeting:not(.qcm-checkout-meeting-inline) { background: #fff; }

@media (max-width: 820px) {
    .qcm-booking-selector-head,
    .qcm-booking-held,
    .qcm-checkout-meeting { flex-direction: column; align-items: stretch; }
    .qcm-booking-held-actions,
    .qcm-checkout-meeting-actions { justify-content: flex-start; }
    .qcm-booking-calendar .qcm-calendar-controls { align-items: stretch; }
    .qcm-booking-calendar .qcm-calendar-view-buttons,
    .qcm-booking-calendar .qcm-calendar-navigation { width: 100%; }
}
@media (max-width: 560px) {
    .qcm-booking-selector { padding: 13px; }
    .qcm-booking-host-field,
    .qcm-booking-single-host { grid-template-columns: 1fr; gap: 4px; }
    .qcm-booking-calendar .qcm-calendar-next-available { flex: 1 1 auto; }
}

/* QC Memberships & Meetings 1.6.37 — customer no-charge rescheduling inside the Meetings tab. */
.qcm-member-reschedule { margin: 0 0 24px; }
.qcm-reschedule-current {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 16px;
    margin: 0 0 14px;
    padding: 12px 14px;
    border: 1px solid var(--qcm-form-border, #cbd5df);
    border-radius: var(--qcm-ui-radius, 6px);
    background: #f8fafc;
}
.qcm-reschedule-current .qcm-page-kicker { flex: 0 0 100%; }
.qcm-reschedule-current strong { color: #172235; }
.qcm-reschedule-current span:not(.qcm-page-kicker) { color: var(--qcm-muted, #475569); font-size: .86rem; }
.qcm-reschedule-confirm { margin: 0 0 14px; }
.qcm-reschedule-footer { display: flex; justify-content: flex-end; margin-top: 12px; }
@media(max-width:720px) {
    .qcm-reschedule-current { align-items: flex-start; flex-direction: column; }
    .qcm-reschedule-footer { justify-content: flex-start; }
}

/* QC Memberships & Meetings 1.6.100 — guest email verification gate on Checkout. */
body.qcm-checkout-activation-pending { overflow: hidden; }
.qcm-checkout-activation-backdrop {
    position: fixed;
    inset: 0;
    z-index: 2147483000;
    display: grid;
    place-items: center;
    padding: 20px;
    background: rgba(15, 23, 42, .58);
    backdrop-filter: blur(2px);
}
.qcm-checkout-activation-card {
    width: min(100%, 520px);
    max-height: calc(100vh - 40px);
    overflow: auto;
    box-sizing: border-box;
    padding: 24px;
    border: 1px solid var(--qcm-form-border, #cbd5df);
    border-radius: var(--qcm-ui-radius, 6px);
    background: var(--qcm-surface, #fff);
    color: var(--qcm-form-text, #17212b);
    box-shadow: 0 24px 70px rgba(15, 23, 42, .28);
}
.qcm-checkout-activation-card h2 { margin: 5px 0 10px; }
.qcm-checkout-activation-card p { margin: 0 0 14px; line-height: 1.55; }
.qcm-checkout-activation-status {
    margin: 14px 0;
    padding: 11px 12px;
    border: 1px solid var(--qcm-form-border, #cbd5df);
    border-radius: var(--qcm-ui-radius, 6px);
    background: #f8fafc;
    font-weight: 650;
}
.qcm-checkout-activation-status.is-error { border-color: #c57b74; background: #fff7f6; }
.qcm-checkout-activation-status.is-ok { border-color: #7aa38a; background: #f4fbf6; }
.qcm-checkout-activation-actions { display: flex; gap: 9px; flex-wrap: wrap; }
@media (max-width: 560px) {
    .qcm-checkout-activation-backdrop { padding: 12px; align-items: end; }
    .qcm-checkout-activation-card { width: 100%; max-height: calc(100vh - 24px); padding: 19px; }
}

/* QCMM 1.6.133 — customer Month view is date discovery; Daily owns Meeting Time detail. */
.qcm-booking-calendar .qcm-calendar-mount{overflow-x:hidden}
.qcm-booking-calendar .qcm-calendar-month-panel{min-width:0}
.qcm-booking-calendar .qcm-calendar-month-day{min-height:76px;padding:0;overflow:hidden}
.qcm-booking-calendar .qcm-booking-month-day-button{display:flex;width:100%;min-height:75px;margin:0;padding:6px;align-items:flex-start;justify-content:space-between;gap:5px;border:0;border-bottom:0;background:transparent;text-align:left}
.qcm-booking-calendar .qcm-calendar-month-day.is-outside .qcm-booking-month-day-button{background:transparent}
.qcm-booking-calendar .qcm-booking-month-day-button.has-availability:hover,
.qcm-booking-calendar .qcm-booking-month-day-button.has-availability:focus{background:#eef5fb;color:#1f4d78;outline:0}
.qcm-booking-calendar .qcm-booking-month-day-button.has-conflicts{opacity:.7}
.qcm-booking-calendar .qcm-booking-month-day-button.has-conflicts:hover,
.qcm-booking-calendar .qcm-booking-month-day-button.has-conflicts:focus{background:#f1f3f6;outline:0}
.qcm-booking-calendar .qcm-booking-month-day-button.is-disabled{cursor:default}
.qcm-booking-calendar .qcm-calendar-month-day>.qcm-calendar-event,
.qcm-booking-calendar .qcm-calendar-month-day>.qcm-calendar-more{display:none!important}
.qcm-booking-calendar .qcm-booking-month-summary{display:inline-flex;align-items:center;gap:4px;min-width:0;margin-left:auto;color:#40546a;font-size:.62rem;font-weight:750;line-height:1.1;white-space:nowrap}
.qcm-booking-calendar .qcm-booking-month-summary .qcm-calendar-day-count{display:inline-flex;align-items:center;justify-content:center;min-width:21px;height:21px;padding:0 5px;border:1px solid #bdd6c5;border-radius:999px;background:#f1faf4;color:#23633a;font-size:.62rem;font-weight:850;line-height:1}
.qcm-booking-calendar .qcm-booking-month-summary.is-conflict{color:#6b7280}
.qcm-booking-calendar .qcm-booking-month-summary.is-conflict .qcm-calendar-day-count{border-color:#d5dbe3;background:#f3f5f7;color:#687386}
.qcm-booking-calendar .qcm-booking-month-summary-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

@media(max-width:720px){
    .qcm-booking-calendar .qcm-calendar-month-weekdays span{padding:5px 1px;font-size:.58rem}
    .qcm-booking-calendar .qcm-calendar-month-day{min-height:58px;padding:0}
    .qcm-booking-calendar .qcm-booking-month-day-button{min-height:57px;padding:4px 3px;align-items:center;flex-direction:column;justify-content:flex-start;gap:5px}
    .qcm-booking-calendar .qcm-calendar-day-number{font-size:.68rem}
    .qcm-booking-calendar .qcm-booking-month-summary{margin:0;max-width:100%}
    .qcm-booking-calendar .qcm-booking-month-summary-label{display:none}
    .qcm-booking-calendar .qcm-booking-month-summary .qcm-calendar-day-count{min-width:18px;height:18px;padding:0 4px;font-size:.56rem}
}
@media(max-width:480px){
    .qcm-booking-calendar .qcm-calendar-month-weekdays span{font-size:.53rem;letter-spacing:0}
    .qcm-booking-calendar .qcm-calendar-month-day{min-height:54px}
    .qcm-booking-calendar .qcm-booking-month-day-button{min-height:53px;padding:3px 2px;gap:4px}
    .qcm-booking-calendar .qcm-calendar-day-number{font-size:.65rem}
    .qcm-booking-calendar .qcm-booking-month-summary .qcm-calendar-day-count{min-width:16px;height:16px;padding:0 3px;font-size:.52rem}
}
