/* Rescheduling slot styles shared with online booking. */
.rs-slot-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(90px,1fr)); gap:6px; max-height:200px; overflow-y:auto; padding:8px; background:var(--brand-primary-soft,#f2edf8); border-radius:6px; border:1px solid var(--brand-primary-border,#D7CCE8); }
.rs-slot-btn { padding:6px 4px; border:1px solid var(--brand-primary-border,#D7CCE8); border-radius:6px; background:white; color:#334155; font-size:.75rem; font-weight:500; cursor:pointer; transition:background .15s ease,border-color .15s ease; text-align:center; }
.rs-slot-btn:hover:not(:disabled):not(.selected) { border-color:var(--brand-primary,#55388f); background:var(--brand-primary-soft,#F1ECF8); }
.rs-slot-btn.selected { background:var(--brand-gradient,linear-gradient(135deg,#55388f,#493078)); color:white; border-color:var(--brand-primary,#493078); font-weight:700; }
.rs-slot-btn:disabled,.rs-slot-btn.booked { background:#fee2e2; color:#dc2626; border-color:#fca5a5; cursor:not-allowed; }
.rs-slot-btn.booked .slot-time { text-decoration:line-through; }
.rs-slot-btn .slot-time { display:block; font-weight:600; }
.rs-slot-btn .slot-end { display:block; font-size:.625rem; opacity:.8; }
.rs-slot-btn .booked-label { display:block; font-size:.55rem; font-weight:600; text-transform:uppercase; margin-top:1px; }
.rs-slot-btn:focus-visible { outline:2px solid var(--brand-primary,#55388f); outline-offset:2px; }
.rs-duration-badge { display:inline-flex; align-items:center; gap:4px; padding:2px 10px; background:var(--brand-gradient,linear-gradient(135deg,#55388f,#493078)); color:white; border-radius:20px; font-size:.7rem; font-weight:600; white-space:nowrap; }
.rs-mode-tabs { display:inline-flex; background:var(--brand-primary-border,#D7CCE8); border-radius:8px; padding:3px; gap:2px; }
.rs-mode-tabs .rs-mode-tab { padding:4px 12px; border:0; border-radius:6px; font-size:.72rem; font-weight:600; color:#64748b; white-space:nowrap; }
.rs-mode-tabs .rs-mode-tab.active { background:white; color:var(--brand-primary,#493078); box-shadow:0 1px 3px #0000001a; }
.combined-schedule-header { display:flex; align-items:center; flex-wrap:wrap; gap:8px; padding:10px 16px; background:linear-gradient(135deg,#f2edf8,#f1f5f9); border:1px solid #e2e8f0; border-radius:10px 10px 0 0; }
.combined-schedule-header .rs-mode-tabs { margin-inline-start:auto; }
.combined-schedule-body { border:1px solid #e2e8f0; border-top:0; border-radius:0 0 10px 10px; padding:12px; }
#bookingCheckModal .check-step-label { flex:1; padding:12px 10px; border-radius:10px; color:var(--session-muted); background:#f5f6fa; margin-inline-end:6px; font-size:.85rem; }
#bookingCheckModal .check-step-label[aria-current=step] { background:var(--brand-primary-soft,#f2edf8); color:var(--brand-primary,#55388f); box-shadow:inset 0 0 0 1px var(--brand-primary-border,#D7CCE8); }
#bookingCheckModal section h6 { font-size:1rem; font-weight:700; margin-bottom:18px; }
#bookingCheckModal .check-service-row { background:#f8f9fc; border-color:var(--session-line)!important; border-radius:12px!important; padding:12px!important; }
#bookingCheckModal .check-service-row label { display:block; width:100%; }
#bookingCheckModal #checkMatches label { cursor:pointer; border-radius:8px; padding:12px!important; }
#bookingCheckModal #checkMatches label:has(input:checked) { background:var(--brand-primary-soft,#f2edf8); }
#bookingCheckModal #checkSummary { background:#f8f9fc; border-radius:12px!important; }
#bookingCheckModal #checkError { white-space:pre-line; }
@media(max-width:767.98px) { .rs-slot-grid { grid-template-columns:repeat(auto-fill,minmax(82px,1fr)); } .rs-slot-btn { min-height:44px; } }
