/**
 * CW Selector 2.0.0 – Tema brutalista para Flatpickr 4.6.
 *
 * Reemplaza al CSS por defecto de Flatpickr: geometría propia, 0 radios,
 * 0 sombras, bordes gruesos y estados de alto contraste. Se aplican las
 * clases nativas que genera la librería.
 */

.flatpickr-calendar {
        opacity: 0;
        visibility: hidden;
        position: absolute;
        z-index: 99999;
        width: 315px;
        max-width: calc(100vw - 16px);
        background: #ffffff;
        border: 3px solid #0a0a0a;
        border-radius: 0;
        box-shadow: none;
        font-family: inherit;
        direction: ltr;
        text-align: left;
        transition: opacity 0.1s ease, visibility 0.1s ease;
}

.flatpickr-calendar.open {
        opacity: 1;
        visibility: visible;
}

.flatpickr-calendar *,
.flatpickr-calendar *::before,
.flatpickr-calendar *::after {
        box-sizing: border-box;
}

/* Sin flechitas decorativas del calendario. */
.flatpickr-calendar.arrowTop::before,
.flatpickr-calendar.arrowTop::after,
.flatpickr-calendar.arrowBottom::before,
.flatpickr-calendar.arrowBottom::after {
        display: none;
}

/* ============================ Cabecera ============================ */

.flatpickr-calendar .flatpickr-months {
        display: flex;
        align-items: stretch;
        border-bottom: 3px solid #0a0a0a;
        background: #ffffff;
        user-select: none;
        -webkit-user-select: none;
}

.flatpickr-calendar .flatpickr-month {
        flex: 1;
        height: 48px;
        color: #0a0a0a;
        position: relative;
        overflow: hidden;
}

.flatpickr-calendar .flatpickr-current-month {
        font-size: 14px;
        font-weight: 900;
        text-transform: uppercase;
        letter-spacing: 0.06em;
        color: #0a0a0a;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 48px;
        padding: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 6px;
}

.flatpickr-calendar .cur-month {
        font-weight: 900;
        text-transform: uppercase;
        letter-spacing: 0.06em;
}

.flatpickr-calendar .flatpickr-monthDropdown-months {
        appearance: none;
        -webkit-appearance: none;
        background: transparent;
        border: 0;
        font-family: inherit;
        font-size: 14px;
        font-weight: 900;
        text-transform: uppercase;
        letter-spacing: 0.06em;
        color: #0a0a0a;
        cursor: pointer;
        padding: 0;
}

.flatpickr-calendar .numInputWrapper {
        width: 64px;
}

.flatpickr-calendar .numInputWrapper input.cur-year {
        background: transparent;
        border: 0;
        border-radius: 0;
        font-family: inherit;
        font-size: 14px;
        font-weight: 900;
        color: #0a0a0a;
        height: 28px;
        line-height: 28px;
        padding: 0;
        text-align: left;
}

.flatpickr-calendar .numInputWrapper input.cur-year:focus {
        outline: 2px solid #e30613;
}

.flatpickr-calendar .numInputWrapper:hover {
        background: transparent;
}

.flatpickr-calendar .numInputWrapper span {
        display: none; /* sin flechas de año nativas */
}

.flatpickr-calendar .flatpickr-prev-month,
.flatpickr-calendar .flatpickr-next-month {
        width: 44px;
        height: 48px;
        padding: 10px;
        color: #0a0a0a;
        fill: #0a0a0a;
        cursor: pointer;
        transition: background 0.12s ease, fill 0.12s ease;
}

.flatpickr-calendar .flatpickr-prev-month svg,
.flatpickr-calendar .flatpickr-next-month svg {
        width: 14px;
        height: 14px;
        fill: inherit;
}

.flatpickr-calendar .flatpickr-prev-month:hover,
.flatpickr-calendar .flatpickr-next-month:hover {
        background: #0a0a0a;
        fill: #ffffff;
        color: #ffffff;
}

/* ============================ Rejilla ============================ */

.flatpickr-calendar .flatpickr-weekdays {
        background: #ffffff;
        display: flex;
        align-items: center;
        height: 34px;
}

.flatpickr-calendar .flatpickr-weekdaycontainer {
        display: flex;
        width: 100%;
}

.flatpickr-calendar .flatpickr-weekday {
        flex: 1;
        font-family: inherit;
        font-size: 10px;
        font-weight: 900;
        text-transform: uppercase;
        letter-spacing: 0.08em;
        color: #0a0a0a;
        background: transparent;
        text-align: center;
        padding: 0;
        cursor: default;
        pointer-events: none;
}

.flatpickr-calendar .flatpickr-innerContainer {
        display: block;
}

.flatpickr-calendar .flatpickr-days {
        width: 100%;
        overflow: hidden;
        position: relative;
}

.flatpickr-calendar .dayContainer {
        width: 100%;
        min-width: 100%;
        max-width: 100%;
        display: flex;
        flex-wrap: wrap;
        padding: 0;
        outline: 0;
}

.flatpickr-calendar .flatpickr-day {
        width: 14.2857%;
        max-width: none;
        height: 44px;
        line-height: 40px;
        flex-basis: 14.2857%;
        margin: 0;
        background: transparent;
        border: 2px solid transparent;
        border-radius: 0;
        font-family: inherit;
        font-size: 13px;
        font-weight: 700;
        color: #0a0a0a;
        text-align: center;
        cursor: pointer;
        transition: background 0.08s ease, color 0.08s ease, border-color 0.08s ease;
}

.flatpickr-calendar .flatpickr-day:hover {
        background: #0a0a0a;
        border-color: #0a0a0a;
        color: #ffffff;
}

.flatpickr-calendar .flatpickr-day.today {
        border-color: #e30613;
        color: #e30613;
}

.flatpickr-calendar .flatpickr-day.today:hover {
        background: #e30613;
        border-color: #e30613;
        color: #ffffff;
}

.flatpickr-calendar .flatpickr-day.selected,
.flatpickr-calendar .flatpickr-day.startRange,
.flatpickr-calendar .flatpickr-day.endRange {
        background: #e30613;
        border-color: #e30613;
        color: #ffffff;
}

.flatpickr-calendar .flatpickr-day.selected:hover,
.flatpickr-calendar .flatpickr-day.startRange:hover,
.flatpickr-calendar .flatpickr-day.endRange:hover {
        background: #0a0a0a;
        border-color: #0a0a0a;
}

.flatpickr-calendar .flatpickr-day.flatpickr-disabled,
.flatpickr-calendar .flatpickr-day.notAllowed {
        color: #c4c4c4;
        background: transparent;
        border-color: transparent;
        cursor: not-allowed;
        text-decoration: line-through;
}

.flatpickr-calendar .flatpickr-day.prevMonthDay,
.flatpickr-calendar .flatpickr-day.nextMonthDay {
        color: #c4c4c4;
        background: transparent;
        border-color: transparent;
        visibility: hidden;
}

.flatpickr-calendar .flatpickr-day.hidden {
        visibility: hidden;
}

/* ============================ Utilidades ============================ */

.flatpickr-calendar .flatpickr-time {
        display: none; /* selector solo de fechas, sin horas */
}

.flatpickr-calendar .flatpickr-rContainer {
        max-width: 100%;
}

/* Movimiento reducido. */
@media (prefers-reduced-motion: reduce) {
        .flatpickr-calendar,
        .flatpickr-calendar .flatpickr-day,
        .flatpickr-calendar .flatpickr-prev-month,
        .flatpickr-calendar .flatpickr-next-month {
                transition: none !important;
                animation: none !important;
        }
}
