/* =========================================
   CALENDAR THEME: SaaS PREMIUM SILVER PRO
   FIXED STRUCTURE VERSION
   ========================================= */

:root {
    --pro-silver: #9ca3af; 
    --pro-titanium: #3f3f46; 
    --pro-indigo: #818cf8; /* Premium Indigo suggestion */
    --pro-accent: #0ea5e9; 
    --pro-stamp: #ef4444;
}

/* 1. Global Wrapper Polish (Borderless) */
.flatpickr-calendar {
    background: #ffffff !important;
    border-radius: 24px !important;
    box-shadow: none !important;
    border: none !important;
    padding: 15px !important;
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    width: auto !important;
    max-width: none !important;
}

/* Multi-month specific width enforcement */
.flatpickr-calendar.multiMonth {
    min-width: 600px !important;
}

/* 2. Header & Month Polish */
.flatpickr-month {
    color: var(--pro-titanium) !important;
    height: 40px !important;
}
.flatpickr-current-month {
    font-weight: 800 !important;
    font-size: 1.1rem !important;
    text-transform: uppercase;
    letter-spacing: 1px;
    scale: 1.2;
    top: -10px;
}

.flatpickr-prev-month, .flatpickr-next-month {
    scale: 2;
}

.flatpickr-weekday {
    color: #94a3b8 !important;
    font-weight: 700 !important;
    font-size: 0.75rem !important;
    text-transform: uppercase;
}

/* 3. Day Base Styles - FIXED DIMENSIONS */
.flatpickr-day {
    width: 38px !important;
    height: 38px !important;
    line-height: 38px !important;
    max-width: 38px !important;
    margin: 2px !important;
    border-radius: 12px !important;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
    font-weight: 500 !important;
    border: 1px solid #b7b7b759 !important;
    position: relative;
}

.flatpickr-day:hover {
    background: #f1f5f9 !important;
    transform: scale(1.1);
    z-index: 2;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08) !important;
}

/* 4. Booked States */

/* Base for all booked */
.flatpickr-day.booked-full,
.flatpickr-day.booked-paid,
.flatpickr-day.booked-unpaid,
.flatpickr-day.booked-checkin,
.flatpickr-day.booked-checkout {
    position: relative;
    overflow: visible !important;
}

/* PENDING STYLE (Premium Indigo) */
.flatpickr-day.booked-full:not(.booked-paid),
.flatpickr-day.booked-unpaid {
    background: #b5b7ff !important;
    border: 1px dashed #6366f1 !important;
    color: #ffffff !important;
}

/* PAID STYLE (Faded / Unavailable Look for SOLID days) */
.flatpickr-day.booked-paid:not(.booked-checkin) {
    background: #f1f5f9 !important;
    color: #94a3b8 !important;
    border: 1px dashed #cbd5e1 !important;
}
/* 5. Diagonal Split (Hospitality Transitions - Silver Pro) */

/* Check-In Day (Pending - Indigo) */
.flatpickr-day.booked-checkin:not(.booked-full):not(.booked-checkout):not(.endRange) {
    background: linear-gradient(135deg, transparent 50%, #b5b7ff 50.5%) !important;
    color: #1e293b !important;
}
/* Check-In Day (Paid - Sharp Silver) */
.flatpickr-day.booked-checkin.booked-paid:not(.booked-full):not(.booked-checkout):not(.endRange) {
    background: linear-gradient(135deg, transparent 50%, #cbd5e1 50.5%) !important;
    color: #475569 !important; 
    opacity: 1 !important;
}

/* Check-Out Day (FORCED EMPTY LOOK - Looks available to guests) */
.flatpickr-day.booked-checkout:not(.booked-checkin):not(.past-empty):not(.selected) {
    background: none !important;
}
/* Disabled / Past Days (The 'Idle' look with dashed border) */
.flatpickr-day.flatpickr-disabled, .flatpickr-day.past-day {
    color: #94a3b8 !important;    /* Faded/Idle text */
    border: 1px dashed #cbd5e1 !important; /* Dash line border */
    cursor: not-allowed !important;
    opacity: 0.8;
}

/* Past Empty Days (Idle faded look with dashed border) */
.flatpickr-day.past-empty {
    color: #94a3b8 !important;    /* Faded/Idle text */
    background: transparent !important;
    border: 1px dashed #cbd5e1 !important; /* Added dash line border */
    opacity: 0.6;
}

/* Disable hover effects on disabled, past, and empty past days to maintain clear non-interactive feedback */
.flatpickr-day.flatpickr-disabled:hover,
.flatpickr-day.past-day:hover,
.flatpickr-day.past-empty:hover {
    background: transparent !important;
    transform: none !important;
    box-shadow: none !important;
    z-index: auto !important;
    cursor: not-allowed !important;
}

/* Prevent default Flatpickr today class from overriding the disabled appearance */
.flatpickr-day.today.flatpickr-disabled,
.flatpickr-day.today.past-day,
.flatpickr-day.today.past-empty {
    border: 1px dashed #cbd5e1 !important;
    background: transparent !important;
    color: #94a3b8 !important;
    opacity: 0.6 !important;
}

/* Double Transition (One guest out, another guest in - SOLID Faded) */
.flatpickr-day.booked-checkin.booked-checkout {
    background: #f1f5f9 !important;
    border: 1px dashed #cbd5e1 !important;
}

/* SELECTED MERGE FOR SPLITS */
.flatpickr-day.inRange.booked-checkin { background: linear-gradient(135deg, #3b82f6 50%, #6366f1 50.5%) !important; }
.flatpickr-day.inRange.booked-checkin.booked-paid { background: linear-gradient(135deg, #3b82f6 50%, #cbd5e1 50.5%) !important; }
.flatpickr-day.selected.booked-checkin, .flatpickr-day.startRange.booked-checkin, .flatpickr-day.endRange.booked-checkin { background: linear-gradient(135deg, #1e3a8a 50%, #6366f1 50.5%) !important; }
.flatpickr-day.selected.booked-checkin.booked-paid, .flatpickr-day.startRange.booked-checkin.booked-paid, .flatpickr-day.endRange.booked-checkin.booked-paid { background: linear-gradient(135deg, #1e3a8a 50%, #cbd5e1 50.5%) !important; }



/* 7. Grid Alignment & Multi-Month Fixes */
.flatpickr-innerContainer {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    justify-content: center !important;
    gap: 50px !important;
    overflow: visible !important;
}

.flatpickr-rContainer {
    width: 294px !important; 
    min-width: 294px !important;
    max-width: 294px !important;
    flex: 0 0 294px !important;
}

.flatpickr-months {
    display: flex !important;
    justify-content: center !important;
    gap: 50px !important;
}

.flatpickr-month {
    width: 294px !important;
    flex: 0 0 294px !important;
}

.flatpickr-days {
    width: 294px !important;
    display: block !important;
}

.dayContainer {
    display: grid !important;
    grid-template-columns: repeat(7, 1fr) !important;
    width: 294px !important;
    min-width: 294px !important;
}

/* Range Styles - HIGH VISIBILITY SELECTION */
.flatpickr-day.selected, 
.flatpickr-day.startRange, 
.flatpickr-day.endRange {
    background: #1e3a8a !important; /* Deep Navy Blue */
    border-color: #1e3a8a !important;
    color: #ffffff !important;
    z-index: 500 !important; 
    position: relative !important;
    transform: scale(1.15) !important;
    box-shadow: none !important;
    -webkit-box-shadow: none !important;
}

.flatpickr-day.inRange {
    background: #3b82f6 !important; /* Stronger Ocean Blue */
    border-color: #3b82f6 !important;
    color: #ffffff !important;
    z-index: 400 !important;
    position: relative !important;
    border-radius: 0 !important;
    margin: 2px 0 !important; /* Continuous bar - no horizontal margin */
    border-top: 2px solid #1e3a8a !important; 
    border-bottom: 2px solid #1e3a8a !important; 
    transform: scale(1.15) !important;
    box-shadow: none !important;
    -webkit-box-shadow: none !important;
}

/* Specific edge rounding for the selection bar */
.flatpickr-day.startRange {
    border-radius: 12px 0 0 12px !important;
    border-left: 2px solid #1e3a8a !important;
}
.flatpickr-day.endRange {
    border-radius: 0 12px 12px 0 !important;
    border-right: 2px solid #1e3a8a !important;
}
