#camper-calendar::-webkit-scrollbar {
    height: 18px;
}

#camper-calendar::-webkit-scrollbar-track {
    background: #f3f4f6;
    border-radius: 9999px;
}

#camper-calendar::-webkit-scrollbar-thumb {
    background: #9ca3af;
    border: 4px solid #f3f4f6;
    border-radius: 9999px;
}

#camper-calendar {
    scrollbar-color: #9ca3af #f3f4f6;
    scrollbar-width: auto;
}

/* Half-day night selection */
button.calendar-day[data-range] {
    position: relative !important;
    border-radius: 0 !important;
    color: white !important;
}
/* Middle: сплошная полоска */
button.calendar-day[data-range="middle"] {
    background: #1ebbf0 !important;
    color: #111827 !important;
}
/* Start/end keep the same white day background; only the half-circle is selected. */
button.calendar-day[data-range="start"],
button.calendar-day[data-range="end"] {
    background: #ffffff !important;
    color: #111827 !important;
}
    /* Start: полукруг прижат к правому краю (диаметр = высота ячейки) */
    button.calendar-day[data-range="start"]::before {
        content: '';
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        width: 50%;
        background: #1ebbf0;
        border-radius: 100% 0 0 100% / 50% 0 0 50%;
        z-index: 5;
    }
    /* End: полукруг прижат к левому краю */
    button.calendar-day[data-range="end"]::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        bottom: 0;
        width: 50%;
        background: #1ebbf0;
        border-radius: 0 100% 100% 0 / 0 50% 50% 0;
        z-index: 5;
    }
/* Single: полный круг */
button.calendar-day[data-range="single"]::before {
    content: '';
    position: absolute;
    inset: 0;
    background: #1ebbf0;
    border-radius: 50%;
    z-index: 5;
}
/* Occupied range — half-day indicators via ::after (::before is reserved for selection) */
/* This allows both indicators to coexist on turnover days */
button.calendar-day[data-occupied-pos="start"],
button.calendar-day[data-occupied-pos="end"],
button.calendar-day[data-occupied-pos="middle"] {
    position: relative !important;
}

button.calendar-day:not([data-range])[data-occupied-pos="start"] {
    color: #111827 !important;
    cursor: default !important;
}

button.calendar-day:not([data-range])[data-occupied-pos="middle"] {
    background: #ffe4e6 !important;
    color: #be123c !important;
    font-weight: 700 !important;
    border-radius: 0 !important;
    cursor: default !important;
}

button.calendar-day[data-occupied-pos="start"]::after {
    content: '';
    position: absolute;
    top: 0; right: 0; bottom: 0;
    width: 50%;
    background: #ffe4e6;
    border-radius: 100% 0 0 100% / 50% 0 0 50%;
    z-index: 5;
}

button.calendar-day[data-occupied-pos="end"]::after {
    content: '';
    position: absolute;
    top: 0; left: 0; bottom: 0;
    width: 50%;
    background: #ffe4e6;
    border-radius: 0 100% 100% 0 / 0 50% 50% 0;
    z-index: 5;
}

/* Подсветка дней доступного возврата */
.calendar-day[data-choice="return"] {
    box-shadow: inset 0 0 0 2px rgba(30, 187, 240, 0.5);
}
/* Dates that cannot be used as pickup/return points are shown as unavailable for the current action. */
#camper-calendar[data-selection-mode="pickup"] .calendar-day[data-current-month="true"][data-status="available"][data-can-start="false"]:not([data-range]),
.calendar-day[data-choice="return-unavailable"]:not([data-range]) {
    cursor: default !important;
    background: #ffffff !important;
    box-shadow: none !important;
    color: #cbd5e1 !important;
    font-weight: 400 !important;
}
