.box-hour {
  user-select: none;
  caret-color: transparent;
  outline: none;
}

.box-hour:focus,
.box-hour:active {
  outline: none;
  caret-color: transparent;
}

.box-hour-hidden {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

/* Admin scheduler: existing appointment, but still selectable */
.box-hour--booked {
    background: #ead7dc;
    border-color: #b98391;
    color: #5f3f47;
}

.box-hour--booked:hover {
    background: #dfc3cb;
    border-color: #9f6f7c;
    color: #4d3239;
}

.box-hour--booked.box-hour--selected {
    background: #9f6f7c;
    border-color: #815764;
    color: #ffffff;
    box-shadow: 0 0 0 3px rgba(159, 111, 124, 0.18);
}

.booking-slot-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    margin: 12px 0 18px;
    font-size: 0.9rem;
    color: #5c5154;
}

.booking-slot-legend__item {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.booking-slot-legend__swatch {
    width: 14px;
    height: 14px;
    border-radius: 4px;
    border: 1px solid transparent;
    flex-shrink: 0;
}

.booking-slot-legend__swatch--available {
    background: #ffffff;
    border-color: #b8aeb0;
}

.booking-slot-legend__swatch--booked {
    background: #ead7dc;
    border-color: #b98391;
}