/**
 * Flatpickr - Thème Savoor
 * Calendrier aux couleurs du site
 */

/* Container principal */
.flatpickr-calendar {
    background: var(--card-bg, #252525);
    border: 1px solid var(--border-color, #444);
    border-radius: 12px;
    box-shadow: 0 6px 15px rgba(0, 0, 0, 0.3);
    font-family: inherit;
    width: 100%;
    max-width: 300px;
    z-index: 999999 !important;
}

/* Quand inline dans un tooltip, pas de bordure ni shadow */
.tooltip-date-wrapper .flatpickr-calendar {
    background: transparent;
    border: none;
    box-shadow: none;
    border-radius: 0;
}

.flatpickr-calendar.arrowTop::before,
.flatpickr-calendar.arrowTop::after {
    border-bottom-color: var(--card-bg, #252525);
}

.flatpickr-calendar.arrowBottom::before,
.flatpickr-calendar.arrowBottom::after {
    border-top-color: var(--card-bg, #252525);
}

/* Header avec mois/année */
.flatpickr-months {
    padding: 8px 0;
}

.flatpickr-months .flatpickr-month {
    background: transparent;
    color: var(--text-color, #f0f0f0);
    height: 34px;
}

.flatpickr-current-month {
    font-size: 1rem;
    font-weight: 600;
    color: var(--text-color, #f0f0f0);
    padding: 0;
}

.flatpickr-current-month .flatpickr-monthDropdown-months {
    background: transparent;
    color: var(--text-color, #f0f0f0);
    font-weight: 600;
    border: none;
    cursor: pointer;
}

.flatpickr-current-month .flatpickr-monthDropdown-months:hover {
    background: rgba(255, 107, 107, 0.1);
}

.flatpickr-current-month input.cur-year {
    color: var(--text-color, #f0f0f0);
    font-weight: 600;
}

/* Flèches de navigation */
.flatpickr-months .flatpickr-prev-month,
.flatpickr-months .flatpickr-next-month {
    color: var(--text-color, #f0f0f0);
    fill: var(--text-color, #f0f0f0);
    padding: 8px;
    border-radius: 50%;
    transition: all 0.2s ease;
}

.flatpickr-months .flatpickr-prev-month:hover,
.flatpickr-months .flatpickr-next-month:hover {
    background: rgba(255, 107, 107, 0.2);
    color: var(--primary-color, #ff6b6b);
}

.flatpickr-months .flatpickr-prev-month svg,
.flatpickr-months .flatpickr-next-month svg {
    fill: currentColor;
}

/* Jours de la semaine */
.flatpickr-weekdays {
    background: transparent;
    padding: 8px 0;
}

.flatpickr-weekday {
    background: transparent;
    color: var(--text-color-secondary, #aaa);
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
}

/* Mode sombre : jours de la semaine en blanc */
.dark-mode .flatpickr-weekday {
    color: #fff;
}

/* Conteneur des jours */
.flatpickr-days {
    border: none;
}

.dayContainer {
    padding: 4px;
}

/* Jours individuels */
.flatpickr-day {
    color: var(--text-color, #f0f0f0);
    border-radius: 8px;
    border: none;
    font-size: 0.9rem;
    font-weight: 500;
    height: 36px;
    line-height: 36px;
    margin: 2px;
    max-width: 36px;
    transition: all 0.15s ease;
}

.flatpickr-day:hover {
    background: rgba(255, 107, 107, 0.2);
    border-color: transparent;
    color: var(--primary-color, #ff6b6b);
}

/* Jour sélectionné */
.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 {
    background: var(--primary-color, #ff6b6b);
    border-color: var(--primary-color, #ff6b6b);
    color: #fff;
}

/* Aujourd'hui */
.flatpickr-day.today {
    border: 2px solid var(--primary-color, #ff6b6b);
    color: var(--primary-color, #ff6b6b);
    font-weight: 700;
}

.flatpickr-day.today:hover {
    background: rgba(255, 107, 107, 0.2);
    color: var(--primary-color, #ff6b6b);
}

.flatpickr-day.today.selected {
    background: var(--primary-color, #ff6b6b);
    color: #fff;
}

/* Jours du mois précédent/suivant */
.flatpickr-day.prevMonthDay,
.flatpickr-day.nextMonthDay {
    color: var(--text-color-muted, #666);
}

.flatpickr-day.prevMonthDay:hover,
.flatpickr-day.nextMonthDay:hover {
    background: rgba(255, 107, 107, 0.1);
    color: var(--text-color-secondary, #aaa);
}

/* Jours désactivés */
.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover {
    color: var(--text-color-muted, #555);
    background: transparent;
    cursor: not-allowed;
}

/* Range (plage de dates) */
.flatpickr-day.inRange {
    background: rgba(255, 107, 107, 0.15);
    border-color: transparent;
    box-shadow: none;
}

/* Animation d'ouverture */
.flatpickr-calendar.open {
    animation: flatpickrFadeIn 0.2s ease-out;
}

@keyframes flatpickrFadeIn {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* =====================
 * MODE CLAIR
 * ===================== */
:root:not(.dark-mode) .flatpickr-calendar,
body:not(.dark-mode) .flatpickr-calendar {
    background: #fff;
    border-color: #ddd;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
}

:root:not(.dark-mode) .flatpickr-calendar.arrowTop::before,
:root:not(.dark-mode) .flatpickr-calendar.arrowTop::after,
body:not(.dark-mode) .flatpickr-calendar.arrowTop::before,
body:not(.dark-mode) .flatpickr-calendar.arrowTop::after {
    border-bottom-color: #fff;
}

:root:not(.dark-mode) .flatpickr-current-month,
:root:not(.dark-mode) .flatpickr-current-month .flatpickr-monthDropdown-months,
:root:not(.dark-mode) .flatpickr-current-month input.cur-year,
body:not(.dark-mode) .flatpickr-current-month,
body:not(.dark-mode) .flatpickr-current-month .flatpickr-monthDropdown-months,
body:not(.dark-mode) .flatpickr-current-month input.cur-year {
    color: #333;
}

:root:not(.dark-mode) .flatpickr-months .flatpickr-prev-month,
:root:not(.dark-mode) .flatpickr-months .flatpickr-next-month,
body:not(.dark-mode) .flatpickr-months .flatpickr-prev-month,
body:not(.dark-mode) .flatpickr-months .flatpickr-next-month {
    color: #333;
    fill: #333;
}

:root:not(.dark-mode) .flatpickr-weekday,
body:not(.dark-mode) .flatpickr-weekday {
    color: #666;
}

:root:not(.dark-mode) .flatpickr-day,
body:not(.dark-mode) .flatpickr-day {
    color: #333;
}

:root:not(.dark-mode) .flatpickr-day.prevMonthDay,
:root:not(.dark-mode) .flatpickr-day.nextMonthDay,
body:not(.dark-mode) .flatpickr-day.prevMonthDay,
body:not(.dark-mode) .flatpickr-day.nextMonthDay {
    color: #bbb;
}

:root:not(.dark-mode) .flatpickr-day.flatpickr-disabled,
body:not(.dark-mode) .flatpickr-day.flatpickr-disabled {
    color: #ccc;
}

/* =====================
 * RESPONSIVE
 * ===================== */
@media (max-width: 768px) {
    .flatpickr-calendar {
        width: 100%;
        max-width: 320px;
    }
    
    .flatpickr-day {
        height: 40px;
        line-height: 40px;
        max-width: 40px;
    }
}
