:root {
    --dv-calendar-yellow: #fcbb03;
    --dv-calendar-text: #212529;
    --dv-calendar-muted: #6c757d;
    --dv-calendar-border: #e9ecef;
    --dv-calendar-hover: #fff8e1;
    --dv-calendar-range: #fde68a;
    --dv-calendar-shadow: 0 20px 50px rgba(0, 0, 0, 0.12);
    --dv-calendar-radius: 12px;
}

.flatpickr-calendar {
    font-family: 'Inter', sans-serif !important;
    border: 1px solid var(--dv-calendar-border) !important;
    box-shadow: var(--dv-calendar-shadow) !important;
    border-radius: var(--dv-calendar-radius) !important;
    padding: 10px !important;
}

.flatpickr-months .flatpickr-month,
.flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-current-month input.cur-year {
    font-weight: 700 !important;
    color: var(--dv-calendar-text) !important;
}

.flatpickr-weekday {
    font-weight: 700 !important;
    color: var(--dv-calendar-muted) !important;
}

.flatpickr-day {
    position: relative !important;
    z-index: 1;
    overflow: visible !important;
}

.flatpickr-day:hover {
    background: var(--dv-calendar-hover) !important;
    border-color: transparent !important;
    color: var(--dv-calendar-text) !important;
}

.flatpickr-day.inRange,
.flatpickr-day.prevMonthDay.inRange,
.flatpickr-day.nextMonthDay.inRange,
.flatpickr-day.trip-range,
.flatpickr-day.prevMonthDay.trip-range,
.flatpickr-day.nextMonthDay.trip-range {
    background: transparent !important;
    border-color: transparent !important;
    color: var(--dv-calendar-text) !important;
    box-shadow: none !important;
}

.flatpickr-day.inRange::before,
.flatpickr-day.prevMonthDay.inRange::before,
.flatpickr-day.nextMonthDay.inRange::before,
.flatpickr-day.trip-range::before,
.flatpickr-day.prevMonthDay.trip-range::before,
.flatpickr-day.nextMonthDay.trip-range::before {
    content: '';
    position: absolute;
    left: -6px;
    right: -6px;
    top: 50%;
    height: 28px;
    transform: translateY(-50%);
    background: var(--dv-calendar-range);
    z-index: -1;
    border-radius: 0 !important;
}

.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange,
.flatpickr-day.selected.inRange,
.flatpickr-day.startRange.inRange,
.flatpickr-day.endRange.inRange,
.flatpickr-day.selected:focus,
.flatpickr-day.startRange:focus,
.flatpickr-day.endRange:focus,
.flatpickr-day.selected:hover,
.flatpickr-day.startRange:hover,
.flatpickr-day.endRange:hover,
.flatpickr-day.selected.prevMonthDay,
.flatpickr-day.startRange.prevMonthDay,
.flatpickr-day.endRange.prevMonthDay,
.flatpickr-day.selected.nextMonthDay,
.flatpickr-day.startRange.nextMonthDay,
.flatpickr-day.endRange.nextMonthDay {
    background: var(--dv-calendar-yellow) !important;
    border-color: var(--dv-calendar-yellow) !important;
    color: #ffffff !important;
    font-weight: 700 !important;
    box-shadow: none !important;
    z-index: 3;
}

.flatpickr-day.startRange::before,
.flatpickr-day.startRange.inRange::before,
.flatpickr-day.startRange.trip-range::before {
    content: '';
    position: absolute;
    left: 50%;
    right: -6px;
    top: 50%;
    height: 28px;
    transform: translateY(-50%);
    background: var(--dv-calendar-range);
    z-index: -1;
    border-radius: 0 !important;
}

.flatpickr-day.endRange::before,
.flatpickr-day.endRange.inRange::before,
.flatpickr-day.endRange.trip-range::before {
    content: '';
    position: absolute;
    left: -6px;
    right: 50%;
    top: 50%;
    height: 28px;
    transform: translateY(-50%);
    background: var(--dv-calendar-range);
    z-index: -1;
    border-radius: 0 !important;
}

.flatpickr-day.startRange.endRange,
.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange {
    border-radius: 999px !important;
}

.flatpickr-day.startRange.endRange::before,
.flatpickr-day.selected:not(.startRange):not(.endRange)::before {
    display: none !important;
}
