.admin-calendar{border-top:1px solid var(--line);margin:28px 0;padding-top:24px;max-width:950px}
.calendar-toolbar{display:flex;gap:12px;align-items:center;margin-bottom:16px;flex-wrap:wrap}
.calendar-toolbar h4{margin:0;min-width:150px;text-align:center;font-size:18px}
.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.calendar-weekdays{text-align:center;font-size:13px;margin-bottom:8px;font-weight:600}
/* The Sunday-first grid includes leading blanks, so Friday is always column six. */
.calendar-weekdays>:nth-child(7n+6),.calendar-grid>.calendar-day:nth-child(7n+6){opacity:.55}
.calendar-day{border:1px solid var(--line);border-radius:7px;min-height:100px;padding:8px;background:var(--cream);color:var(--ink);display:flex;flex-direction:column;gap:5px;text-align:left;min-width:0}
.calendar-day[aria-pressed=true]{border:2px solid #176b3a;background:#edf0e6}
.calendar-day[aria-current=date] .calendar-day-number{font-weight:800;text-decoration:underline;text-underline-offset:4px}
.calendar-session{background:#d5ed98;color:var(--ink);padding:4px 5px;font-size:12px;border-radius:4px;overflow-wrap:anywhere}
.calendar-form{display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:0 16px}
.calendar-form>.button{grid-column:1/-1;justify-self:start}
@media(max-width:680px){.calendar-day{min-height:78px;padding:5px 3px;font-size:13px}.calendar-grid,.calendar-weekdays{gap:3px}.calendar-weekdays{font-size:11px}.calendar-session{font-size:10px;padding:3px 2px}.calendar-toolbar{gap:8px}.calendar-toolbar h4{font-size:16px;min-width:130px}.calendar-form{grid-template-columns:minmax(0,1fr)}.calendar-form label{font-size:14px}.calendar-form input{min-width:0}.calendar-blank{min-width:0}}
.calendar-day-header{display:flex;align-items:center;justify-content:space-between;gap:3px}
.calendar-add{border:0;border-radius:4px;background:#e9eddc;color:var(--ink);font-size:22px;min-width:32px;min-height:32px;padding:0}
.calendar-selected{border:2px solid #176b3a;background:#edf0e6}
.calendar-day-number[aria-current=date]{font-weight:800;text-decoration:underline;text-underline-offset:4px}
button.calendar-session{border:0;cursor:pointer;text-align:left;min-height:36px}
.calendar-slot{border:1px dashed var(--line);border-radius:4px;background:#e9eddc;color:var(--ink);padding:5px;font:inherit;font-size:12px;text-align:left;min-height:36px;overflow-wrap:anywhere;cursor:pointer}
.calendar-slot:disabled{opacity:.65;cursor:default}
.calendar-slot:focus-visible{outline:2px solid #176b3a;outline-offset:2px}
@media(max-width:680px){.calendar-slot{font-size:10px;padding:4px 2px;min-height:44px}}
@media(max-width:680px){.calendar-add{min-width:24px;min-height:44px;font-size:20px}.calendar-day-header{flex-wrap:wrap}.calendar-session{min-height:44px!important}}

.calendar-slot-booked{white-space:pre-line;background:#d5ed98;border:0;color:var(--ink);font-weight:600}

.calendar-viewport{max-width:100%;overflow-x:auto;padding:3px 3px 12px;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.calendar-viewport:focus-visible{outline:2px solid #176b3a;outline-offset:2px;border-radius:8px}.calendar-scroll-hint{display:none}
@media(max-width:680px){.calendar-scroll-hint{display:block;margin:0 0 10px;font-size:13px;line-height:1.5;color:var(--muted)}.calendar-viewport .calendar-grid,.calendar-viewport .calendar-weekdays{min-width:770px;gap:6px}.calendar-viewport .calendar-day{min-height:140px;padding:9px 8px;font-size:14px;gap:8px}.calendar-viewport .calendar-weekdays{font-size:13px;margin-bottom:10px}.calendar-viewport .calendar-day-header{flex-wrap:nowrap;gap:8px}.calendar-viewport .calendar-add{min-width:36px;min-height:44px}.calendar-viewport .calendar-slot,.calendar-viewport .calendar-session{font-size:12px;line-height:1.45;padding:7px 6px;min-height:44px}.calendar-toolbar{gap:10px}.calendar-toolbar .button{min-height:44px}.calendar-toolbar h4{flex:1;min-width:120px}}

.calendar-appointment{display:flex;align-items:stretch;gap:4px;min-width:0}
.calendar-appointment>.calendar-slot,.calendar-appointment>.calendar-session{flex:1;min-width:0}
.calendar-appointment>.calendar-cancel{flex:none;width:26px;min-height:36px;padding:0;margin:0!important;font-size:22px;line-height:1;border:0;border-radius:4px;color:var(--ink);background:#e9eddc;cursor:pointer}
@media(max-width:680px){.calendar-appointment>.calendar-cancel{width:28px;min-height:44px}}

.calendar-day-toggle{align-self:flex-start;border:1px solid var(--line);border-radius:6px;background:transparent;color:var(--ink);font:inherit;font-size:11px;padding:5px 8px;min-height:32px;cursor:pointer}.calendar-day-toggle:disabled{opacity:.45;cursor:default}.calendar-day-blocked{background:#edf0e6!important}.calendar-day-blocked>.calendar-slot:not(.calendar-slot-booked){opacity:.35}.calendar-day-blocked .calendar-day-toggle{background:var(--ink);color:#fff}.calendar-availability-note{font-size:13px;line-height:1.6;color:var(--muted)}@media(max-width:680px){.calendar-day-toggle{font-size:10px;padding:4px 2px;min-height:44px;width:100%}}

@media(max-width:680px){.calendar-appointment{flex-direction:column;gap:2px}.calendar-appointment>.calendar-slot{width:100%;overflow:hidden;overflow-wrap:normal;font-size:9px}.calendar-appointment>.calendar-cancel{align-self:flex-end;width:100%;min-height:28px}.calendar-day-toggle{min-width:0;overflow:hidden}}

/* Keep month cells compact; full appointments and availability live in the day dialog. */
#admin-calendar .calendar-grid{grid-auto-rows:150px}
#admin-calendar .calendar-grid>.calendar-day{min-height:0;height:150px;box-sizing:border-box;padding:6px;gap:4px;overflow:hidden}
.calendar-compact-entry{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:1.5;padding:3px 4px;border-radius:4px;background:#d5ed98;color:var(--ink)}
.calendar-view-day{margin-top:auto;border:0;background:transparent;color:#176b3a;text-align:left;font:inherit;font-size:11px;padding:4px 0;min-height:28px;cursor:pointer}
.instructor-day-dialog{width:min(580px,calc(100vw - 24px));max-height:85dvh;overflow:auto;box-sizing:border-box}
.instructor-day-agenda{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.instructor-day-agenda>.calendar-appointment,.instructor-day-agenda>.calendar-slot{grid-column:1/-1}
.instructor-day-agenda .calendar-day-toggle{width:100%;min-height:44px;font-size:13px;text-align:center}
.instructor-day-agenda .calendar-appointment{flex-direction:row;gap:8px}
.instructor-day-agenda .calendar-appointment>.calendar-slot{font-size:13px;white-space:normal;line-height:1.5;padding:10px;min-height:44px}
.instructor-day-agenda .calendar-appointment>.calendar-cancel{width:44px;min-height:44px;align-self:stretch}
.instructor-day-agenda>.calendar-slot{font-size:13px;min-height:44px}
@media(max-width:680px){#admin-calendar .calendar-grid{grid-auto-rows:132px;min-width:0!important;gap:3px}#admin-calendar .calendar-weekdays{min-width:0!important}#admin-calendar .calendar-grid>.calendar-day{height:132px;padding:3px;gap:3px}#admin-calendar .calendar-day-header{flex-wrap:nowrap;gap:1px}#admin-calendar .calendar-add{min-width:22px;min-height:32px;font-size:19px}.calendar-compact-entry{font-size:9px;padding:2px;line-height:1.4}.calendar-view-day{font-size:9px;line-height:1.2;min-height:32px;padding:2px 0}#admin-calendar .calendar-day-number{font-size:11px}}

.calendar-compact-entry>span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-compact-entry>span:first-child{font-weight:700}
