#room-availability {
    --booking-bg: #fffdf8;
    --booking-text: #131313;
    --booking-border: #d8ded5;
    --booking-accent: #286c45;
    font-family: 'Manrope', sans-serif;
}
.dark #room-availability {
    --booking-bg: #242724;
    --booking-text: #e5e2e1;
    --booking-border: #404941;
    --booking-accent: #90d6a6;
}
#room-availability label, #room-availability legend {
    display: block;
    margin-bottom: 8px;
    font: 700 10px/1.5 'Manrope', sans-serif;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--booking-text);
}
#room-availability input:not([type=hidden]), #room-availability select {
    width: 100%;
    min-width: 0;
    height: 48px;
    padding: 10px 12px;
    border: 1px solid var(--booking-border);
    border-radius: 6px;
    background-color: var(--booking-bg);
    color: var(--booking-text);
    font: 500 14px/1.5 'Manrope', sans-serif;
    color-scheme: light;
}
#room-availability select { padding-right: 32px; }
.dark #room-availability input, .dark #room-availability select { color-scheme: dark; }
#room-availability input:focus, #room-availability select:focus {
    outline: 2px solid var(--booking-accent);
    outline-offset: 2px;
}
#room-availability .flatpickr-input { cursor: pointer; }
.availability-guests { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-bottom: 24px; }
#room-availability.room-sidebar-availability > .grid,
#room-availability.room-sidebar-availability > .availability-guests { grid-template-columns: 1fr; }
#room-availability button { text-transform: uppercase; line-height: 1.6; padding-left: 12px; padding-right: 12px; }
#room-availability .guest-stepper { display: flex; align-items: center; border: 1px solid var(--booking-border); border-radius: 6px; background: var(--booking-bg); }
#room-availability .guest-stepper button { flex: 0 0 44px; height: 46px; padding: 0; font-size: 22px; color: var(--booking-accent); border-radius: 5px; }
#room-availability .guest-stepper button:hover:not(:disabled) { background: color-mix(in srgb, var(--booking-accent) 12%, transparent); }
#room-availability .guest-stepper button:disabled { opacity: .3; cursor: not-allowed; }
#room-availability .guest-stepper input { border: 0; height: 46px; padding: 0; text-align: center; font-weight: 700; appearance: textfield; -moz-appearance: textfield; }
#room-availability .guest-stepper input::-webkit-inner-spin-button,
#room-availability .guest-stepper input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
@media (max-width: 480px) { #room-availability > .availability-guests { grid-template-columns: 1fr; } }
#availability-error { color: #a32626; font-size: 13px; margin-bottom: 16px; }
.dark #availability-error { color: #ffb4ab; }
.availability-calendar {
    background: #fffdf8;
    border: 1px solid #d8ded5;
    border-radius: 10px;
    box-shadow: 0 12px 36px #0002;
    font-family: 'Manrope', sans-serif;
    padding: 8px;
    box-sizing: content-box;
    max-width: calc(100vw - 22px);
}
.availability-calendar .flatpickr-rContainer,
.availability-calendar .flatpickr-days,
.availability-calendar .dayContainer { width: 100%; min-width: 0; max-width: 100%; }
.availability-calendar .flatpickr-day { flex-basis: 14.2857%; max-width: 14.2857%; }
.availability-calendar .flatpickr-current-month { font-size: 14px; }
.availability-calendar .flatpickr-day { border-radius: 6px; font-size: 13px; }
.availability-calendar .flatpickr-day.today { border-color: #286c45; }
.availability-calendar .flatpickr-day.selected,
.availability-calendar .flatpickr-day.selected:hover { background: #286c45; border-color: #286c45; color: white; }
.availability-calendar .flatpickr-day:hover { background: #e6efe7; border-color: #e6efe7; }
.availability-calendar .flatpickr-weekday { font-size: 11px; }
.dark .availability-calendar { background: #242724; border-color: #404941; }
.dark .availability-calendar .flatpickr-month,
.dark .availability-calendar .flatpickr-weekday,
.dark .availability-calendar .flatpickr-day { color: #e5e2e1; }
.dark .availability-calendar .flatpickr-monthDropdown-months { background: #242724; }
.dark .availability-calendar .flatpickr-prev-month svg,
.dark .availability-calendar .flatpickr-next-month svg { fill: #90d6a6; }
.dark .availability-calendar .flatpickr-day.flatpickr-disabled,
.dark .availability-calendar .flatpickr-day.prevMonthDay,
.dark .availability-calendar .flatpickr-day.nextMonthDay { color: #858b85; }
.dark .availability-calendar .flatpickr-day:hover { background: #364f3d; border-color: #364f3d; }
.dark .availability-calendar .flatpickr-day.today { border-color: #90d6a6; }
.dark .availability-calendar .flatpickr-day.selected { background: #90d6a6; border-color: #90d6a6; color: #00391e; }
.availability-calendar::before, .availability-calendar::after { display: none; }
@media (max-width: 380px) { .availability-calendar { padding: 2px; } }
