/* Modern Flatpickr Theme - High Contrast - Compact */
.flatpickr-calendar {
    border: 1px solid #e0e0e0 !important; /* Slight border for definition */
    box-shadow: 0 15px 40px rgba(0,0,0,0.15) !important; /* Slightly darker shadow */
    border-radius: 12px !important;
    padding: 10px !important; /* Reduced padding */
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
    width: 308px !important; /* Reduced width (36px * 7 + margin + padding) */
    z-index: 9999 !important;
    background: #ffffff !important;
}

.flatpickr-months {
    padding: 5px 5px 10px 5px !important; /* Compact padding */
    align-items: center !important;
    margin-bottom: 5px !important;
    border-bottom: 1px solid #f0f0f0 !important; /* Separator line */
}

.flatpickr-month {
    color: #1a1a1a !important; /* Darker text */
    fill: #1a1a1a !important;
    height: 34px !important; /* Reduced height */
}

.flatpickr-current-month {
    font-size: 1.1em !important; /* Slightly smaller font */
    font-weight: 700 !important;
    padding-top: 0 !important;
    height: 34px !important;
}

.flatpickr-current-month input.cur-year {
    font-weight: 700 !important;
    color: #1a1a1a !important;
}

.flatpickr-weekdays {
    padding: 5px 0 !important; /* Reduced padding */
    margin-bottom: 2px !important;
    height: 28px !important;
}

span.flatpickr-weekday {
    color: #4a4a4a !important; /* Darker gray for weekdays */
    font-weight: 700 !important;
    font-size: 0.9em !important;
}

.flatpickr-day {
    border-radius: 6px !important;
    margin: 0 !important; /* Removed margin for tighter packing */
    line-height: 36px !important; /* Reduced line height */
    height: 36px !important; /* Reduced height */
    max-width: 36px !important; /* Fixed width per day */
    color: #2c3e50 !important; /* Dark text for days */
    border: 1px solid transparent !important;
    font-weight: 600 !important; /* Bolder font */
    font-size: 14px !important;
}

.flatpickr-days {
    width: 252px !important; /* 36px * 7 days */
}

.dayContainer {
    width: 252px !important;
    min-width: 252px !important;
    max-width: 252px !important;
}

.flatpickr-day.today {
    background-color: #f8f9fa !important;
    border: 1px solid #dee2e6 !important; /* Visible border for today */
    color: #3498db !important;
    font-weight: 800 !important;
}

.flatpickr-day.today:hover {
    background-color: #e9ecef !important;
    color: #1a1a1a !important;
}

.flatpickr-day:hover {
    background-color: #eef2f5 !important;
    border-color: #eef2f5 !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: #2980b9 !important; /* Darker blue for better contrast */
    -webkit-box-shadow: none !important;
    box-shadow: none !important;
    color: #ffffff !important;
    border-color: #2980b9 !important;
    font-weight: 700 !important;
}

.flatpickr-day.inRange, 
.flatpickr-day.prevMonthDay.inRange, 
.flatpickr-day.nextMonthDay.inRange, 
.flatpickr-day.today.inRange, 
.flatpickr-day.prevMonthDay.today.inRange, 
.flatpickr-day.nextMonthDay.today.inRange, 
.flatpickr-day:hover, 
.flatpickr-day.prevMonthDay:hover, 
.flatpickr-day.nextMonthDay:hover, 
.flatpickr-day:focus, 
.flatpickr-day.prevMonthDay:focus, 
.flatpickr-day.nextMonthDay:focus {
    cursor: pointer !important;
    outline: 0 !important;
    background: #d6eaf8 !important; /* Darker range background */
    border-color: #d6eaf8 !important;
    color: #2c3e50 !important;
}

.flatpickr-day.flatpickr-disabled, 
.flatpickr-day.flatpickr-disabled:hover, 
.flatpickr-day.prevMonthDay, 
.flatpickr-day.nextMonthDay, 
.flatpickr-day.notAllowed, 
.flatpickr-day.notAllowed.prevMonthDay, 
.flatpickr-day.notAllowed.nextMonthDay {
    color: #ccc !important; /* Lighter gray for disabled/other month */
    background: transparent !important;
    border-color: transparent !important;
    cursor: default !important;
}

.flatpickr-day.flatpickr-disabled, 
.flatpickr-day.flatpickr-disabled:hover {
    cursor: not-allowed !important;
    color: #dcdcdc !important;
    text-decoration: line-through; /* Strikethrough for unavailable dates */
}

/* Arrow styling */
.flatpickr-prev-month, .flatpickr-next-month {
    padding: 10px !important;
    top: 5px !important; /* Adjust vertical position */
}
.flatpickr-prev-month svg, .flatpickr-next-month svg {
    fill: #555 !important; /* Darker arrows */
    width: 16px !important;
    height: 16px !important;
}
.flatpickr-prev-month:hover svg, .flatpickr-next-month:hover svg {
    fill: #2980b9 !important; /* Primary color on hover */
}

/* Month Dropdown */
.flatpickr-monthDropdown-months {
    background: #fff !important;
    font-weight: 700 !important;
    color: #1a1a1a !important;
}

.flatpickr-current-month .numInputWrapper span.arrowUp:after {
    border-bottom-color: #1a1a1a !important;
}
.flatpickr-current-month .numInputWrapper span.arrowDown:after {
    border-top-color: #1a1a1a !important;
}
