/* ========================================
   Flatpickr Override - Design System
   Matches SPC Design System dark theme
   ======================================== */

/* Flatpickr Input */
.flatpickr-input {
    background-color: var(--bg-tertiary, #18181b);
    border: 1px solid var(--border-color, rgba(255,255,255,0.06));
    border-radius: var(--radius-default, 8px);
    color: var(--text-primary, #fafafa);
    font-size: 0.875rem;
    padding: var(--space-2, 8px) var(--space-3, 12px);
    transition: all 150ms cubic-bezier(0.4, 0, 0.2, 1);
    width: 100%;
    min-height: 40px;
}

.flatpickr-input:hover {
    border-color: var(--color-primary-300, rgba(59, 130, 246, 0.3));
    background-color: var(--bg-elevated, #1f1f23);
}

.flatpickr-input:focus {
    border-color: var(--color-primary-500, #3b82f6);
    outline: none;
    box-shadow: 0 0 0 3px var(--color-primary-50, rgba(59, 130, 246, 0.05));
}

.flatpickr-input::placeholder {
    color: var(--text-tertiary, #71717a);
}

.flatpickr-input[disabled] {
    background-color: var(--bg-secondary, #111113);
    border-color: var(--border-color, rgba(255,255,255,0.06));
    opacity: 0.5;
    cursor: not-allowed;
    color: var(--text-muted, #52525b);
}

/* Calendar Container - ensure nothing is clipped */
.flatpickr-calendar {
    background: var(--bg-elevated, #1f1f23);
    border: 1px solid var(--border-color, rgba(255,255,255,0.06));
    border-radius: var(--radius-lg, 12px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
    font-family: inherit;
    padding: 20px 18px 20px 18px;
    width: 320px;
    min-height: 360px;
    overflow: visible;
    box-sizing: border-box;
}

.flatpickr-calendar.open {
    overflow: visible;
}

.flatpickr-calendar.arrowTop:before {
    border-bottom-color: var(--bg-elevated, #1f1f23);
}

.flatpickr-calendar.arrowTop:after {
    border-bottom-color: var(--border-color, rgba(255,255,255,0.06));
}

.flatpickr-calendar.arrowBottom:before {
    border-top-color: var(--bg-elevated, #1f1f23);
}

.flatpickr-calendar.arrowBottom:after {
    border-top-color: var(--border-color, rgba(255,255,255,0.06));
}

/* Month/Year Navigation - prevent cut-off */
.flatpickr-months {
    background: transparent;
    color: var(--text-primary, #fafafa);
    fill: var(--text-primary, #fafafa);
    min-height: 52px;
    height: auto;
    line-height: 1.2;
    position: relative;
    text-align: center;
    user-select: none;
    margin-bottom: 12px;
    overflow: visible;
}

.flatpickr-month {
    background: transparent;
    color: var(--text-primary, #fafafa);
    fill: var(--text-primary, #fafafa);
    min-height: 52px;
    height: auto;
    line-height: 1.2;
    text-align: center;
    user-select: none;
    position: relative;
    overflow: visible;
}

/* Prev/Next arrows - make clearly visible */
.flatpickr-prev-month,
.flatpickr-next-month {
    color: var(--text-primary, #fafafa);
    fill: var(--text-primary, #fafafa);
    cursor: pointer;
    height: 40px;
    min-height: 40px;
    min-width: 40px;
    line-height: 1;
    position: absolute;
    top: 4px;
    user-select: none;
    width: 40px;
    transition: all 150ms cubic-bezier(0.4, 0, 0.2, 1);
    border-radius: var(--radius-sm, 4px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 4;
}

.flatpickr-prev-month svg,
.flatpickr-next-month svg {
    width: 18px;
    height: 18px;
    fill: var(--text-primary, #fafafa);
    color: var(--text-primary, #fafafa);
}

.flatpickr-prev-month svg path,
.flatpickr-next-month svg path {
    fill: var(--text-primary, #fafafa);
    transition: fill 150ms ease;
}

.flatpickr-prev-month:hover,
.flatpickr-next-month:hover {
    color: var(--text-primary, #fafafa);
    fill: var(--text-primary, #fafafa);
    background-color: var(--bg-tertiary, #18181b);
}

.flatpickr-prev-month:hover svg,
.flatpickr-prev-month:hover svg path,
.flatpickr-next-month:hover svg,
.flatpickr-next-month:hover svg path {
    fill: var(--color-primary-400, rgba(59, 130, 246, 0.5));
}

.flatpickr-prev-month {
    left: -4px;
}

.flatpickr-next-month {
    right: -4px;
}

.flatpickr-current-month {
    color: var(--text-primary, #fafafa);
    fill: var(--text-primary, #fafafa);
    font-size: 1rem;
    font-weight: 600;
    min-height: 44px;
    height: auto;
    left: 0;
    position: absolute;
    top: 4px;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 44px;
    box-sizing: border-box;
    overflow: visible;
}

.flatpickr-current-month .flatpickr-monthDropdown-months {
    background: transparent;
    border: none;
    color: var(--text-primary, #fafafa);
    cursor: pointer;
    font-size: 1rem;
    font-weight: 600;
    padding: var(--space-1, 4px) var(--space-2, 8px);
    border-radius: var(--radius-sm, 4px);
    transition: all 150ms cubic-bezier(0.4, 0, 0.2, 1);
    min-height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.flatpickr-current-month .flatpickr-monthDropdown-months:hover {
    background-color: var(--bg-tertiary, #18181b);
}

.flatpickr-current-month .numInputWrapper {
    width: auto;
    display: inline-block;
}

.flatpickr-current-month .numInputWrapper .numInput {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    width: 100%;
    padding: var(--space-2, 8px) var(--space-8, 32px) var(--space-2, 8px) var(--space-3, 12px);
    font-family: var(--font-sans, inherit);
    font-size: var(--text-sm, 0.875rem);
    line-height: var(--leading-normal, 1.5);
    color: var(--text-primary, #fafafa);
    background-color: var(--bg-tertiary, #18181b);
    border: 1px solid var(--border-color, rgba(255,255,255,0.06));
    border-radius: var(--radius-default, 8px);
    box-sizing: border-box;
    height: 40px;
    transition: all var(--duration-fast, 150ms) var(--ease-default, cubic-bezier(0.4, 0, 0.2, 1));
    cursor: pointer;
}

.flatpickr-current-month .numInputWrapper .numInput:hover {
    background-color: var(--bg-tertiary, #18181b);
}

/* Weekdays - make SUN MON TUE etc clearly visible */
.flatpickr-weekdays {
    background: transparent;
    min-height: 32px;
    text-align: center;
    overflow: visible;
    margin-bottom: 10px;
    width: 100%;
}

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

.flatpickr-weekday {
    background: transparent !important;
    color: var(--text-secondary, #a1a1aa) !important;
    cursor: default !important;
    font-size: 0.8125rem !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    margin: 0 !important;
    text-align: center !important;
    flex: 1 !important;
    min-width: 0 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.03em !important;
}

/* Days - prevent bottom/right clip */
.flatpickr-innerContainer {
    overflow: visible;
}

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

.dayContainer {
    padding: 0;
    outline: 0;
    text-align: left;
    width: 284px;
    min-width: 284px;
    max-width: 284px;
    box-sizing: border-box;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    transform: translate3d(0, 0, 0);
    opacity: 1;
}

.flatpickr-day {
    background: transparent;
    border: 1px solid transparent;
    border-radius: var(--radius-sm, 4px);
    box-sizing: border-box;
    color: var(--text-secondary, #a1a1aa);
    cursor: pointer;
    font-weight: 400;
    height: 36px;
    min-height: 36px;
    min-width: 36px;
    line-height: 36px;
    margin: var(--space-1, 4px);
    text-align: center;
    width: 36px;
    transition: all 150ms cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    justify-content: center;
}

.flatpickr-day:hover {
    background-color: var(--bg-tertiary, #18181b);
    border-color: var(--color-primary-300, rgba(59, 130, 246, 0.3));
    color: var(--text-primary, #fafafa);
}

.flatpickr-day.today {
    border-color: var(--color-primary-500, #3b82f6);
    color: var(--text-primary, #fafafa);
    font-weight: 600;
}

.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange,
.flatpickr-day.selected.inRange,
.flatpickr-day.startRange.inRange,
.flatpickr-day.endRange.inRange {
    background: var(--color-primary-500, #3b82f6);
    border-color: var(--color-primary-500, #3b82f6);
    box-shadow: none;
    color: white;
    font-weight: 600;
}

.flatpickr-day.inRange {
    background: var(--color-primary-100, rgba(59, 130, 246, 0.1));
    border-color: transparent;
    box-shadow: none;
    color: var(--text-primary, #fafafa);
}

.flatpickr-day.flatpickr-disabled,
.flatpickr-day.prevMonthDay,
.flatpickr-day.nextMonthDay {
    color: var(--text-muted, #52525b);
    cursor: default;
    opacity: 0.3;
}

.flatpickr-day.flatpickr-disabled:hover,
.flatpickr-day.prevMonthDay:hover,
.flatpickr-day.nextMonthDay:hover {
    background: transparent;
    border-color: transparent;
    color: var(--text-muted, #52525b);
}

.flatpickr-day.notAllowed {
    color: var(--text-muted, #52525b);
    cursor: not-allowed;
    opacity: 0.3;
}

/* Time Picker */
.flatpickr-time {
    text-align: center;
    outline: 0;
    display: flex;
    height: 40px;
    line-height: 40px;
    max-height: 40px;
    border-top: 1px solid var(--border-color, rgba(255,255,255,0.06));
    margin-top: 16px;
    padding-top: 16px;
}

.flatpickr-time input,
.flatpickr-time .flatpickr-time-separator,
.flatpickr-time .flatpickr-am-pm {
    background: transparent;
    border: 0;
    border-radius: 0;
    box-sizing: border-box;
    color: var(--text-primary, #fafafa);
    cursor: pointer;
    font-weight: 600;
    height: inherit;
    line-height: inherit;
    margin: 0;
    outline: 0;
    padding: 0;
    text-align: center;
    transition: all 150ms cubic-bezier(0.4, 0, 0.2, 1);
}

.flatpickr-time input:hover,
.flatpickr-time .flatpickr-am-pm:hover {
    background: var(--bg-tertiary, #18181b);
    border-radius: var(--radius-sm, 4px);
}

.flatpickr-time input,
.flatpickr-time .flatpickr-am-pm {
    min-height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.flatpickr-time input {
    flex: 1;
    width: 40%;
}

.flatpickr-time .flatpickr-time-separator {
    width: 2%;
    margin: 0 2% 0 2%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-tertiary, #71717a);
}

.flatpickr-time .flatpickr-am-pm {
    color: var(--text-primary, #fafafa);
    font-weight: 600;
    outline: 0;
    width: 18%;
    cursor: pointer;
    text-align: center;
    font-weight: 600;
}

/* Scrollbar */
.flatpickr-calendar::-webkit-scrollbar {
    width: 8px;
}

.flatpickr-calendar::-webkit-scrollbar-track {
    background: var(--bg-secondary, #111113);
    border-radius: 4px;
}

.flatpickr-calendar::-webkit-scrollbar-thumb {
    background: var(--bg-elevated, #1f1f23);
    border-radius: 4px;
    border: 1px solid var(--border-color, rgba(255,255,255,0.06));
}

.flatpickr-calendar::-webkit-scrollbar-thumb:hover {
    background: var(--bg-card-hover, rgba(255,255,255,0.06));
}
