/* ================================================
   flatpickr 전역 스킨
   라이트 기본 테마 + body.theme-dark 오버라이드
   ================================================ */

/* 휴대폰에서 flatpickr는 원래 입력을 감추고 바로 뒤에 네이티브 입력(.flatpickr-mobile)을 끼운다 —
   화면 코드가 원래 입력에 거는 hidden을 그 입력도 따르게 한다. */
.flatpickr-input[hidden] + .flatpickr-mobile {
    display: none;
}

/* ---- 라이트 기본 테마 ---- */
.flatpickr-calendar {
    font-family: inherit;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    box-shadow: 0 16px 32px rgba(15,23,42,.12), 0 4px 12px rgba(15,23,42,.08);
}

.flatpickr-calendar::before,
.flatpickr-calendar::after {
    display: none;
}

.flatpickr-months .flatpickr-month {
    color: #0f172a;
    fill: #0f172a;
}

.flatpickr-current-month {
    font-size: 15px;
    font-weight: 600;
}

.flatpickr-months .flatpickr-prev-month,
.flatpickr-months .flatpickr-next-month {
    color: #94a3b8;
    fill: #94a3b8;
}

.flatpickr-months .flatpickr-prev-month:hover svg,
.flatpickr-months .flatpickr-next-month:hover svg {
    fill: #2563eb;
}

span.flatpickr-weekday {
    font-weight: 600;
    color: #94a3b8;
}

.flatpickr-day {
    color: #0f172a;
    border-radius: 8px;
}

.flatpickr-day:hover,
.flatpickr-day.prevMonthDay:hover,
.flatpickr-day.nextMonthDay:hover {
    background: #f1f5f9;
    border-color: #f1f5f9;
}

.flatpickr-day.today {
    color: #2563eb;
    border-color: #2563eb;
}

.flatpickr-day.today:hover {
    color: #2563eb;
    background: #eff6ff;
}

.flatpickr-day.selected,
.flatpickr-day.selected:hover,
.flatpickr-day.selected:focus {
    color: #fff;
    background: #2563eb;
    border-color: #2563eb;
}

.flatpickr-day.prevMonthDay,
.flatpickr-day.nextMonthDay {
    color: #cbd5e1;
}

/* ---- 다크 테마 오버라이드 ---- */

/* ---- 캘린더 컨테이너 ---- */
body.theme-dark .flatpickr-calendar {
    background: rgba(22, 22, 30, 0.92);
    border-color: rgba(255, 255, 255, 0.12);
    box-shadow:
        0 12px 40px rgba(0, 0, 0, 0.5),
        0 0 1px rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(20px) saturate(1.3);
    -webkit-backdrop-filter: blur(20px) saturate(1.3);
}

body.theme-dark .flatpickr-calendar.arrowTop::before {
    border-bottom-color: rgba(255, 255, 255, 0.12);
}

body.theme-dark .flatpickr-calendar.arrowTop::after {
    border-bottom-color: rgba(22, 22, 30, 0.92);
}

body.theme-dark .flatpickr-calendar.arrowBottom::before {
    border-top-color: rgba(255, 255, 255, 0.12);
}

body.theme-dark .flatpickr-calendar.arrowBottom::after {
    border-top-color: rgba(22, 22, 30, 0.92);
}

/* ---- 월 네비게이션 ---- */
body.theme-dark .flatpickr-months .flatpickr-month {
    color: #E2E8F0;
    fill: #E2E8F0;
}

body.theme-dark .flatpickr-current-month .flatpickr-monthDropdown-months {
    background: transparent;
    color: #E2E8F0;
}

body.theme-dark .flatpickr-current-month .flatpickr-monthDropdown-months option {
    background: #1E1E2E;
    color: #E2E8F0;
}

body.theme-dark .flatpickr-current-month input.cur-year {
    color: #E2E8F0;
}

/* 이전/다음 화살표 */
body.theme-dark .flatpickr-months .flatpickr-prev-month,
body.theme-dark .flatpickr-months .flatpickr-next-month {
    color: #94A3B8;
    fill: #94A3B8;
}

body.theme-dark .flatpickr-months .flatpickr-prev-month:hover,
body.theme-dark .flatpickr-months .flatpickr-next-month:hover {
    color: #E2E8F0;
    fill: #E2E8F0;
}

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

/* ---- 요일 헤더 ---- */
body.theme-dark .flatpickr-weekdays {
    background: transparent;
}

body.theme-dark span.flatpickr-weekday {
    color: #64748B;
    background: transparent;
}

/* ---- 날짜 셀 ---- */
body.theme-dark .flatpickr-day {
    color: #CBD5E1;
}

body.theme-dark .flatpickr-day:hover {
    background: rgba(59, 130, 246, 0.15);
    border-color: rgba(59, 130, 246, 0.3);
    color: #E2E8F0;
}

/* 오늘 */
body.theme-dark .flatpickr-day.today {
    border-color: #3B82F6;
}

body.theme-dark .flatpickr-day.today:hover {
    background: rgba(59, 130, 246, 0.2);
    border-color: #3B82F6;
    color: #E2E8F0;
}

/* 선택됨 */
body.theme-dark .flatpickr-day.selected,
body.theme-dark .flatpickr-day.startRange,
body.theme-dark .flatpickr-day.endRange,
body.theme-dark .flatpickr-day.selected.inRange,
body.theme-dark .flatpickr-day.startRange.inRange,
body.theme-dark .flatpickr-day.endRange.inRange,
body.theme-dark .flatpickr-day.selected:focus,
body.theme-dark .flatpickr-day.startRange:focus,
body.theme-dark .flatpickr-day.endRange:focus,
body.theme-dark .flatpickr-day.selected:hover,
body.theme-dark .flatpickr-day.startRange:hover,
body.theme-dark .flatpickr-day.endRange:hover {
    background: #3B82F6;
    border-color: #3B82F6;
    color: #fff;
    box-shadow: 0 2px 8px rgba(59, 130, 246, 0.3);
}

/* 범위 내 */
body.theme-dark .flatpickr-day.inRange {
    background: rgba(59, 130, 246, 0.12);
    border-color: rgba(59, 130, 246, 0.12);
    box-shadow: -5px 0 0 rgba(59, 130, 246, 0.12), 5px 0 0 rgba(59, 130, 246, 0.12);
    color: #CBD5E1;
}

/* 비활성 (다른 달, 비활성화) */
body.theme-dark .flatpickr-day.flatpickr-disabled,
body.theme-dark .flatpickr-day.flatpickr-disabled:hover {
    color: rgba(148, 163, 184, 0.25);
    background: transparent;
    border-color: transparent;
}

body.theme-dark .flatpickr-day.prevMonthDay,
body.theme-dark .flatpickr-day.nextMonthDay {
    color: rgba(148, 163, 184, 0.35);
}

body.theme-dark .flatpickr-day.prevMonthDay:hover,
body.theme-dark .flatpickr-day.nextMonthDay:hover {
    background: rgba(255, 255, 255, 0.04);
    border-color: rgba(255, 255, 255, 0.08);
    color: rgba(148, 163, 184, 0.6);
}

/* ---- 시간 입력 ---- */
body.theme-dark .flatpickr-time {
    border-top-color: rgba(255, 255, 255, 0.08);
}

body.theme-dark .flatpickr-time input {
    color: #CBD5E1;
    background: transparent;
}

body.theme-dark .flatpickr-time input:hover,
body.theme-dark .flatpickr-time input:focus {
    background: rgba(59, 130, 246, 0.1);
}

body.theme-dark .flatpickr-time .flatpickr-time-separator,
body.theme-dark .flatpickr-time .flatpickr-am-pm {
    color: #64748B;
}

body.theme-dark .flatpickr-time .flatpickr-am-pm:hover {
    background: rgba(59, 130, 246, 0.15);
    color: #CBD5E1;
}

/* 숫자 입력 화살표 */
body.theme-dark .numInputWrapper span {
    border-color: rgba(255, 255, 255, 0.1);
}

body.theme-dark .numInputWrapper:hover {
    background: rgba(255, 255, 255, 0.04);
}

body.theme-dark .numInputWrapper span:hover {
    background: rgba(59, 130, 246, 0.15);
}

body.theme-dark .numInputWrapper span::after {
    border-bottom-color: #94A3B8;
    border-top-color: #94A3B8;
}

body.theme-dark .numInputWrapper span:hover::after {
    border-bottom-color: #E2E8F0;
    border-top-color: #E2E8F0;
}
