.customer-calendar { margin: 1.5rem 0 2.5rem; }
.customer-calendar { scroll-margin-top: 7rem; }
.calendar-controls { display: flex; align-items: center; gap: .65rem; margin-bottom: 1.25rem; }
.calendar-controls .button { padding: .65rem 1rem; font-size: .85rem; }
.customer-calendar-grid { width: 100%; table-layout: fixed; border-collapse: collapse; }
.customer-calendar-grid caption { text-align: left; font-size: clamp(1.4rem, 3vw, 2rem); font-weight: 700; padding-bottom: 1rem; text-transform: capitalize; }
.customer-calendar-grid th { padding: .65rem .3rem; font-size: .85rem; text-align: left; }
.customer-calendar-grid abbr { text-decoration: none; }
.customer-calendar-grid td { border: 1px solid #78909c66; padding: .65rem; height: 6.5rem; vertical-align: top; overflow-wrap: anywhere; }
.calendar-day time { font-weight: 700; font-size: 1.1rem; }
.customer-calendar-grid .is-today { box-shadow: inset 0 0 0 2px #329bad; background: #329bad20; }
.calendar-today-label { display: inline-block; margin-left: .4rem; font-size: .75rem; font-weight: 700; }
.customer-calendar-grid .has-events { background: #e2c04412; }
.customer-calendar-grid .is-today.has-events { box-shadow: inset 0 0 0 2px #329bad; }
.calendar-day ul { padding: 0; margin: .55rem 0 0; list-style: none; font-size: .85rem; line-height: 1.35; }
.calendar-day li { border-left: 3px solid #b59823; padding-left: .35rem; margin-top: .4rem; }
.calendar-event-time { display: block; font-weight: 700; }
.calendar-legend { display: flex; gap: 1.5rem; flex-wrap: wrap; font-size: .8rem; }
html[data-theme="dark"] .calendar-day li { color: #e2c044; border-color: #e2c044; }
@media (max-width: 600px) {
    .calendar-controls { gap: .4rem; }
    .calendar-controls .button { padding: .55rem .7rem; font-size: .8rem; }
    .customer-calendar-grid td { padding: .35rem .2rem; height: 5rem; }
    .calendar-day time { font-size: .9rem; }
    .calendar-today-label { display: block; margin-left: 0; font-size: .65rem; }
    .calendar-day ul { font-size: .65rem; }
    .calendar-day li { border-left-width: 2px; padding-left: .15rem; }
}
