.booking-calendar { padding: 1.1rem; border: 1px solid rgba(48,98,139,.16); border-radius: var(--radius-lg); background: rgba(255,255,255,.86); box-shadow: var(--shadow-soft), var(--shadow-inset); }
.booking-calendar__header { display: grid; grid-template-columns: 44px 1fr 44px; gap: .5rem; align-items: center; }
.booking-calendar__header h2, .booking-calendar__month { text-align: center; }
.booking-calendar__header h2 { margin: 0; font-size: 1.25rem; }
.booking-calendar__month { margin: .5rem 0 1rem; color: var(--color-blue-deep); font-weight: 800; text-transform: capitalize; }
.booking-calendar__nav { min-width: 44px; min-height: 44px; border: 1px solid rgba(38,143,208,.26); border-radius: var(--radius-md); background: rgba(255,255,255,.82); color: var(--color-blue-deep); font-size: 1.55rem; cursor: pointer; }
.booking-calendar__nav:hover:not(:disabled) { color: #fff; background: var(--color-blue); }
.booking-calendar__nav:disabled, .booking-calendar__day[aria-disabled="true"] { cursor: not-allowed; opacity: .48; }
.booking-calendar__grid { display: grid; gap: .3rem; }
.booking-calendar__weekdays, .booking-calendar__row { display: grid; grid-template-columns: repeat(7, minmax(0,1fr)); gap: .3rem; }
.booking-calendar__weekdays { margin-bottom: .05rem; color: var(--color-text-muted); font-size: .78rem; font-weight: 800; text-align: center; }
.booking-calendar__weekdays abbr { text-decoration: none; }
.booking-calendar__day { position: relative; min-height: 48px; padding: .45rem; border: 1px solid rgba(48,98,139,.15); border-radius: .65rem; background: rgba(249,252,255,.9); color: var(--color-text); }
.booking-calendar__day.is-available { border-color: rgba(44,130,92,.48); background: rgba(235,249,242,.9); cursor: pointer; font-weight: 800; }
.booking-calendar__day.is-available::after { content: ""; position: absolute; right: 5px; bottom: 5px; width: 6px; height: 6px; border-radius: 50%; background: var(--color-success); }
.booking-calendar__day.is-available:hover, .booking-calendar__day.is-selected { color: #fff; border-color: var(--color-blue); background: var(--color-blue); }
.booking-calendar__day.is-today { box-shadow: inset 0 0 0 2px rgba(38,143,208,.55); }
.booking-calendar__day.is-outside-month { color: var(--color-text-muted); background: rgba(230,237,242,.55); }
.booking-calendar__status { min-height: 1.6em; margin: 1rem 0; color: var(--color-text-soft); }
.booking-slots { padding-top: 1rem; border-top: 1px solid var(--color-line); }
.booking-slots h3 { margin-bottom: .75rem; }
.booking-slots__list { display: flex; flex-wrap: wrap; gap: .5rem; }
.booking-slot { min-height: 42px; padding: .55rem .85rem; border: 1px solid rgba(38,143,208,.28); border-radius: .7rem; background: rgba(255,255,255,.88); color: var(--color-blue-deep); font-weight: 750; cursor: pointer; }
.booking-slot:hover, .booking-slot.is-selected { color: #fff; background: var(--color-blue); }
