/* Tom Select Theme Overrides */
.ts-control {
    background: var(--surface-light);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    color: var(--text);
    padding: 0.75rem;
    font-size: 1rem;
    box-shadow: none;
    font-family: inherit;
}

.ts-control.focus {
    border-color: var(--primary);
    box-shadow: none;
}

.ts-dropdown {
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    color: var(--text);
    background-color: var(--surface);
    /* Explicit Dark BG */
    font-family: inherit;
}

.ts-dropdown .active {
    background-color: var(--surface-light);
    color: var(--text);
}

.ts-control input {
    font-size: 1rem;
    color: var(--text);
    font-family: inherit;
}

.ts-wrapper.single .ts-control:after {
    border-color: var(--text-muted) transparent transparent transparent;
}

/* Flatpickr Dark Mode Overrides */
.flatpickr-calendar {
    background: var(--surface) !important;
    box-shadow: var(--shadow) !important;
    border: 1px solid var(--border) !important;
    color: var(--text) !important;
}

.flatpickr-day {
    color: var(--text) !important;
}

.flatpickr-day:hover,
.flatpickr-day:focus {
    background: var(--surface-light) !important;
    border-color: var(--border) !important;
}

.flatpickr-day.selected {
    background: var(--primary) !important;
    border-color: var(--primary) !important;
    color: white !important;
}

.flatpickr-months .flatpickr-month {
    background: var(--surface) !important;
    color: var(--text) !important;
    fill: var(--text) !important;
}

.flatpickr-current-month .flatpickr-monthDropdown-months {
    background: var(--surface) !important;
    color: var(--text) !important;
}

.flatpickr-weekdays {
    background: var(--surface) !important;
}

span.flatpickr-weekday {
    color: var(--text-muted) !important;
}

.flatpickr-time {
    background: var(--surface) !important;
    border-top: 1px solid var(--border) !important;
}

.flatpickr-time input {
    color: var(--text) !important;
    background: transparent !important;
}

.flatpickr-time .flatpickr-time-separator,
.flatpickr-time .flatpickr-am-pm {
    color: var(--text) !important;
}

.flatpickr-time input:hover,
.flatpickr-time .flatpickr-am-pm:hover,
.flatpickr-time input:focus,
.flatpickr-time .flatpickr-am-pm:focus {
    background: var(--surface-light) !important;
}

/* Fix Time Picker Arrows */
.numInputWrapper span.arrowUp:after {
    border-bottom-color: var(--text) !important;
}

.numInputWrapper span.arrowDown:after {
    border-top-color: var(--text) !important;
}

.numInputWrapper:hover {
    background: var(--surface-light) !important;
}