/* Time positions come from the calendar; cards must never exceed their time slots. */
.clinic-calendar { --calendar-line:#e9eef0; --calendar-muted:#7a8991; min-width:0; }
.clinic-calendar .rbc-time-view { border:1px solid var(--calendar-line); border-radius:14px; overflow:hidden; }
.clinic-calendar .rbc-time-header { background:#f8fafb; }
.clinic-calendar .rbc-header { padding:12px 4px; border-color:var(--calendar-line); font-size:12px; font-weight:600; color:#53656e; }
.clinic-calendar .rbc-time-content { border-top:1px solid var(--calendar-line); overscroll-behavior:contain; scrollbar-width:thin; }
.clinic-calendar .rbc-time-view .rbc-timeslot-group { min-height:14px; border-color:var(--calendar-line); }
.clinic-calendar .rbc-time-gutter { color:var(--calendar-muted); font-size:11px; font-variant-numeric:tabular-nums; background:#fafcfc; }
.clinic-calendar .rbc-time-gutter .rbc-label { padding:0 10px; }
.clinic-calendar .rbc-day-slot .rbc-time-slot { border:0; }
.clinic-calendar .rbc-day-slot .rbc-events-container { margin-right:6px; margin-left:4px; }
.clinic-calendar .rbc-day-slot .rbc-event { min-height:0!important; margin:0!important; padding:2px 6px!important; border-radius:5px!important; flex-flow:column nowrap; overflow:hidden; box-shadow:none!important; }
.clinic-calendar .rbc-day-slot .rbc-event-label { display:none; }
.clinic-calendar .rbc-day-slot .rbc-event-content { min-height:0; height:100%; overflow:hidden; line-height:1.2; }
.calendar-event-card { display:flex; flex-direction:column; min-width:0; height:100%; justify-content:center; gap:2px; overflow:hidden; }
.calendar-event-name { display:block; flex-shrink:0; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; font-weight:650; line-height:15px; }
.calendar-event-meta { display:block; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:10px; line-height:12px; opacity:.92; font-variant-numeric:tabular-nums; }
.calendar-event-card.is-compact { flex-direction:row; align-items:center; justify-content:flex-start; gap:10px; }
.calendar-event-card.is-compact .calendar-event-name { flex:1; }
.calendar-event-card.is-compact .calendar-event-meta { flex:0 1 auto; }
.calendar-view-week .is-compact .calendar-event-meta { display:none; }
.clinic-calendar .rbc-current-time-indicator { background:#cf725c; height:2px; }
.clinic-calendar .rbc-today { background:#f2f9fa; }
.clinic-calendar .rbc-event:focus-visible { outline:2px solid #235e68; outline-offset:1px; z-index:5; }
.clinic-calendar .rbc-month-view { border-color:var(--calendar-line); border-radius:14px; overflow:hidden; }
.clinic-calendar .rbc-month-row + .rbc-month-row, .clinic-calendar .rbc-day-bg + .rbc-day-bg { border-color:var(--calendar-line); }
.clinic-calendar .rbc-agenda-table { border-color:var(--calendar-line)!important; font-size:13px; }
.clinic-calendar .rbc-agenda-table thead { background:#f8fafb; color:#61747d; }
.clinic-calendar .rbc-agenda-table thead th { padding:12px!important; font-size:11px; letter-spacing:.04em; }
.clinic-calendar .rbc-agenda-table tbody td { padding:10px 12px!important; border-color:var(--calendar-line)!important; }
.dark .clinic-calendar { --calendar-line:#344145; --calendar-muted:#9baeb5; }
.dark .clinic-calendar :is(.rbc-time-header,.rbc-time-gutter,.rbc-agenda-table thead) { background:#222c30; color:#b0c2c8; }
.dark .clinic-calendar .rbc-header { color:#b0c2c8; }
.dark .clinic-calendar .rbc-today { background:#233b40; }
@media(max-width:1023px) {
 .mobile-calendar-week-layout,.mobile-calendar-time-layout { min-height:0; min-width:0; display:flex; flex-direction:column; gap:8px; }
 .mobile-calendar-week-layout > div:not(.mobile-calendar-week-strip),.mobile-calendar-time-layout > div { min-height:0; height:auto; overflow:visible; }
 .mobile-calendar-week-strip { flex-shrink:0; }
 .mobile-calendar-toolbar { flex-shrink:0; }
 .mobile-calendar-add { min-height:44px; margin-top:4px; padding:8px 12px; border:1px dashed #b6d5da; border-radius:12px; width:100%; text-align:center; }
 .clinic-calendar .rbc-agenda-view { overflow-x:auto; }
 .clinic-calendar .rbc-agenda-table { font-size:12px; }
 .clinic-calendar .rbc-agenda-table :is(.rbc-agenda-date-cell,.rbc-agenda-time-cell) { padding:8px 5px!important; font-size:11px; white-space:normal; }
}
.clinic-calendar .rbc-time-view .rbc-timeslot-group { height:16px; min-height:16px!important; max-height:16px; flex:0 0 16px; }
.clinic-calendar .rbc-time-view .rbc-time-slot { min-height:0; }
.clinic-calendar .rbc-time-gutter .rbc-timeslot-group:not(:nth-child(6n + 1)) .rbc-label { display:none; }
.clinic-calendar .rbc-time-gutter .rbc-label { line-height:14px; }
.clinic-calendar .rbc-time-content { max-height:calc(100dvh - 260px); min-height:360px; }

.clinic-calendar .rbc-day-slot .rbc-event:hover { transform:none!important; }
@media(max-width:380px) {
 .mobile-calendar-toolbar-top { display:grid; grid-template-columns:minmax(0,1fr); gap:6px; }
 .mobile-calendar-toolbar-top > div:first-child { justify-content:space-between; }
 .mobile-calendar-toolbar-top > div:last-child { max-width:100%; justify-content:center; }
 .mobile-calendar-toolbar-top button { min-height:40px; }
 .mobile-calendar-toolbar-top button[aria-label] { min-width:40px; }
}
.clinic-calendar .rbc-day-slot .rbc-time-slot { border-top:0!important; }
.clinic-calendar .rbc-time-view .rbc-timeslot-group { border-bottom:0!important; }
.clinic-calendar .rbc-time-view .rbc-timeslot-group:nth-child(3n) { border-bottom:1px solid var(--calendar-line)!important; }
.clinic-calendar .rbc-time-view .rbc-timeslot-group:nth-child(6n) { border-bottom-color:#d9e3e7!important; }
.dark .clinic-calendar .rbc-time-view .rbc-timeslot-group:nth-child(6n) { border-bottom-color:#42565d!important; }
.clinic-calendar .rbc-month-view .calendar-event-meta { display:none; }
.clinic-calendar .rbc-day-slot .rbc-event { border-left:3px solid rgba(0,0,0,.16)!important; }
/* Agenda dates and times keep their own columns on wide screens. */
.clinic-calendar .rbc-agenda-table { table-layout:fixed; }
.clinic-calendar .rbc-agenda-table .rbc-agenda-date-cell,
.clinic-calendar .rbc-agenda-table thead th:first-child { width:22%!important; white-space:normal; overflow-wrap:anywhere; }
.clinic-calendar .rbc-agenda-table .rbc-agenda-time-cell,
.clinic-calendar .rbc-agenda-table thead th:nth-child(2) { width:20%!important; white-space:normal; }
.clinic-calendar .rbc-agenda-table .rbc-agenda-event-cell { width:auto; min-width:0; }
.clinic-calendar .rbc-agenda-table .rbc-agenda-event-cell p { overflow-wrap:anywhere; }
@media(max-width:1023px) {
 .mobile-agenda { display:grid; gap:20px; min-width:0; padding-bottom:12px; }
 .mobile-agenda-summary { display:flex; flex-wrap:wrap; align-items:center; gap:5px 12px; padding:12px; background:#f3f7f8; border-radius:12px; font-size:12px; color:#52656e; }
 .mobile-agenda-summary p { margin:0; flex:1 1 180px; }
 .mobile-agenda-summary strong { white-space:nowrap; color:#286d78; }
 .mobile-agenda-day { display:grid; gap:10px; min-width:0; }
 .mobile-agenda-day-heading { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:4px 10px; padding-inline:3px; }
 .mobile-agenda-day-heading h3 { margin:0; color:#263c44; font-size:14px; font-weight:700; }
 .mobile-agenda-day-heading span { color:#7a8a91; font-size:11px; white-space:nowrap; }
 .mobile-agenda-cards { display:grid; gap:8px; min-width:0; }
 .mobile-agenda-card { display:block; width:100%; min-width:0; padding:12px; border:1px solid #e4ebee; border-radius:14px; background:#fff; color:#243840; font:inherit; text-align:left; cursor:pointer; }
 .mobile-agenda-time { display:inline-flex; max-width:100%; padding:4px 8px; margin-bottom:4px; border-radius:7px; background:#edf6f7; color:#286d78; font-size:13px; line-height:18px; font-weight:700; font-variant-numeric:tabular-nums; }
 .mobile-agenda-card .truncate { white-space:normal; overflow-wrap:anywhere; }
 .mobile-agenda-card p { overflow-wrap:anywhere; }
 .mobile-agenda-name { margin:6px 0 0; font-weight:650; }
 .mobile-agenda-empty { margin:0; padding:28px 14px; border:1px dashed #d9e4e7; border-radius:14px; color:#6d818a; text-align:center; font-size:14px; }
 .mobile-agenda-card:focus-visible { outline:2px solid #347b87; outline-offset:2px; }
 .dark .mobile-agenda-card { background:#242d30; color:#e1edf1; border-color:#39474d; }
 .dark .mobile-agenda-summary { background:#233338; color:#b5c9d0; }
 .dark .mobile-agenda-day-heading h3 { color:#e1edf1; }
 .dark .mobile-agenda-time { background:#183a42; color:#b6e3ea; }
 .dark .mobile-agenda-summary strong { color:#b6e3ea; }
}
.clinic-calendar .rbc-agenda-time-cell span { white-space:normal!important; }
.clinic-calendar .rbc-agenda-date-cell,
.clinic-calendar .rbc-agenda-date-cell * { white-space:normal!important; overflow-wrap:anywhere; }
