.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.calendar-toolbar h2{font-size:1.25rem;margin:0}.calendar-toolbar .button{padding:.55rem .8rem}.calendar-options{margin-bottom:1rem}.calendar-legend{list-style:none;display:flex;flex-wrap:wrap;gap:.6rem 1.2rem;padding:0;font-size:.85rem}.calendar-legend li::before{content:"";display:inline-block;width:.75rem;height:.75rem;border:1px solid currentColor;margin-right:.4rem}.legend-available::before{background:#e4efdf}.legend-pending::before{background:#fff0ce}.legend-confirmed::before{background:#d7e8f2}.legend-conflict::before{background:#ffe2da}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid #c7d3c0;border-radius:6px;background:#fff;overflow:hidden}.calendar-day{min-width:0;border-right:1px solid #d8e0d2}.calendar-day:last-child{border-right:0}.calendar-day-head{padding:.65rem .4rem;min-height:88px;background:#f5f7f1;border-bottom:1px solid #d8e0d2;display:flex;flex-direction:column;gap:.15rem}.calendar-day-head h3{font-size:.85rem;margin:0}.calendar-day-head .small{font-size:.75rem}.calendar-day-head a{display:block;padding:.25rem 0}.is-today .calendar-day-head{border-top:3px solid #36722e}.calendar-track{padding:.3rem;position:relative;min-height:100px}.calendar-available{background:#e4efdf;border:1px solid #bccfb2;border-radius:3px;padding:.25rem;font-size:.7rem;margin-bottom:.3rem;color:#22491d}.calendar-event{position:relative;display:flex;flex-direction:column;gap:0;background:#d7e8f2;color:#142f40;border:1px solid #7298b1;border-left:3px solid #315c79;border-radius:3px;padding:4px;text-decoration:none;margin:.35rem 0;line-height:1.25;font-size:.75rem;overflow-wrap:anywhere}.calendar-event:hover{outline:2px solid #22491d;outline-offset:1px}.event-pending_approval{background:#fff0ce;color:#4c3506;border-color:#aa862f}.event-cancelled{background:#f0f0f0;color:#464646;border-color:#888}.event-conflict{background:#ffe2da;color:#672919;border-color:#a34024}.calendar-event span{font-size:.7rem}.calendar-closed{font-size:.8rem;text-align:center;color:#525c50}.calendar-day{background:#fff}.calendar-month .calendar-day{border-bottom:1px solid #d8e0d2;min-height:150px}.calendar-day.calendar-grid{grid-template-columns:1fr}.calendar-editor{margin-bottom:1.5rem;scroll-margin-top:2rem}.calendar-help{margin-top:1rem}.interval-day.availability-row{display:block}.interval-row{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:.6rem;margin:.7rem 0}.interval-row .field{margin:0}.interval-row label{font-size:.85rem}.interval-row .text-button{min-height:44px}.interval-day [data-add-interval]{margin-top:.5rem}.slot-feedback{margin:.25rem 0 .75rem}.slot-feedback p:empty{display:none}.slot-feedback p{font-size:.9rem;margin:.25rem 0}.slot-feedback button{margin:.5rem 0}.date-picker [hidden],.slot-feedback [hidden],[data-custom-hours][hidden]{display:none!important}
@media(min-width:1024px){.calendar-timeline{max-height:76vh;overflow:auto;align-items:start}.calendar-timeline .calendar-day-head{position:sticky;top:0;z-index:3}.calendar-timeline .calendar-track{height:var(--calendar-height);padding:0;background:repeating-linear-gradient(to bottom,transparent 0,transparent 59px,#e3e7df 59px,#e3e7df 60px)}.calendar-timeline .calendar-available{position:absolute;left:0;right:0;margin:0;padding:2px;overflow:hidden}.calendar-timeline .calendar-available span{background:#e4efdf;font-size:.65rem}.calendar-timeline .calendar-event{position:absolute;left:4px;right:4px;margin:0;z-index:1;box-sizing:border-box;overflow:hidden}.calendar-timeline .calendar-event span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.calendar-timeline .calendar-event strong{font-size:.69rem;white-space:nowrap}.calendar-timeline .calendar-closed{position:sticky;top:100px}.calendar-timeline .calendar-event:focus{z-index:4;height:auto!important;min-height:60px}.calendar-timeline .calendar-event:focus span{white-space:normal}}
@media(max-width:1023px){.calendar-grid{grid-template-columns:1fr;gap:0}.calendar-day{border-right:0;border-bottom:1px solid #d8e0d2}.calendar-day-head{min-height:0}.calendar-track{padding:.75rem}.calendar-event,.calendar-available{height:auto!important;top:auto!important}.calendar-event{padding:.6rem;font-size:.9rem}.calendar-event span{font-size:.85rem}.calendar-toolbar h2{order:-1;width:100%}.calendar-available{font-size:.85rem}.interval-row{grid-template-columns:1fr 1fr}.interval-row .text-button{grid-column:1/-1;justify-self:start}.calendar-month .calendar-day{min-height:0}}
@media(forced-colors:active){.calendar-event,.calendar-available{border:2px solid CanvasText}.calendar-legend li::before{background:Canvas;border:1px solid CanvasText}}
@media print{.calendar-grid{display:block;max-height:none!important;overflow:visible!important}.calendar-day{break-inside:avoid}.calendar-track{height:auto!important;background:none!important}.calendar-available,.calendar-event{position:static!important;height:auto!important}.calendar-toolbar,.calendar-options,.calendar-editor{display:none}.calendar-event span{white-space:normal!important}}

.calendar-time-axis{display:none}.calendar-hours{font-size:.7rem;line-height:1.5;color:#22491d}
@media(min-width:1024px){.calendar-timeline{grid-template-columns:48px repeat(7,minmax(0,1fr))}.calendar-timeline.calendar-day{grid-template-columns:48px minmax(0,1fr)}.calendar-timeline .calendar-day-head{height:140px}.calendar-timeline .calendar-time-axis{display:block;align-self:stretch;background:#f5f7f1}.calendar-time-axis .calendar-day-head{font-size:.7rem}.calendar-time-axis [data-cal-hour]{position:absolute;left:4px;font-size:.65rem;line-height:1.4;background:#f5f7f1;padding-top:2px}}
@media print{.calendar-time-axis{display:none!important}.calendar-day-head{height:auto!important}}

/* Related scheduling links stay together; sign-out is visually separate. */
.admin-sidebar .admin-nav{gap:8px}.admin-sidebar>form{margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}
.calendar-options.actions{gap:14px 24px;margin-block:22px}.appointment-shortcuts{margin-bottom:24px}
@media(max-width:767px){.admin-sidebar>form{margin-top:16px;padding-top:16px}.calendar-options.actions{gap:14px 20px}}
