/* =====================================================
   Calendar.css - 기존 달력 스타일 맞춤 최종
   - 달력 아이콘: /cefc-mgmt/images/icon_calendar.svg
   - 아이콘 크기: 18px
   - 기존 form-date 스타일 유지
   - Date Range 지원
   - 전역 .form-input.datepicker 충돌 방지
===================================================== */


/* =====================================================
   1. Date Range Input
   - 현재 HTML 구조 지원:
     <div class="date-range-wrap">
       <div class="input-wrap">
         <input class="form-input input-item datepicker start-date">
       </div>
       <span class="date-range-sep">~</span>
       <div class="input-wrap">
         <input class="form-input input-item datepicker end-date">
       </div>
     </div>
===================================================== */

.date-range-wrap {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  flex-wrap: nowrap;
  width: auto;
  min-width: 0;
  overflow: visible;
  vertical-align: middle;
}

/* input 감싸는 영역 */
.date-range-wrap .input-wrap {
  position: relative;
  display: inline-block;
  width: 160px;
  max-width: 160px;
  flex: 0 0 160px;
  min-width: 0;
}

/* flatpickr가 input을 감싸도 폭 유지 */
.date-range-wrap .input-wrap .flatpickr-wrapper,
.date-range-wrap .flatpickr-wrapper {
  display: block !important;
  width: 160px !important;
  max-width: 160px !important;
  min-width: 0 !important;
}

/* range 안의 날짜 input만 제어 */
.date-range-wrap .form-input,
.date-range-wrap .input-item,
.date-range-wrap .flatpickr-input {
  width: 160px !important;
  max-width: 160px !important;
  height: 40px !important;
  min-height: 40px !important;

  padding: 0 34px 0 12px !important;

  font-size: 16px !important;
  color: #1E2124 !important;

  border: 1px solid #D0D5DD !important;
  border-radius: 6px !important;
  background-color: #fff !important;

  background-image: url("/cefc-mgmt/images/icon_calendar.svg") !important;
  background-repeat: no-repeat !important;
  background-position: right 10px center !important;
  background-size: 18px 18px !important;

  outline: none !important;
  box-sizing: border-box !important;
}

/* placeholder */
.date-range-wrap .form-input::placeholder,
.date-range-wrap .input-item::placeholder,
.date-range-wrap .flatpickr-input::placeholder {
  color: #6D7882;
}

/* focus */
.date-range-wrap .form-input:focus,
.date-range-wrap .form-input:focus-visible,
.date-range-wrap .input-item:focus,
.date-range-wrap .input-item:focus-visible,
.date-range-wrap .flatpickr-input:focus,
.date-range-wrap .flatpickr-input:focus-visible {
  border-color: #279FD3 !important;
  outline: 1px solid #279FD3 !important;
  box-shadow: none !important;
}

/* ~ 구분자 */
.date-range-sep,
.date-range-wrap > span.date-range-sep,
.date-range-wrap > .dash {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 40px;
  padding: 0 2px;
  color: #1E2124;
  font-size: 16px;
  line-height: 1;
  flex: 0 0 auto;
}


/* =====================================================
   2. 기존 form-date 구조도 지원
   - 다른 화면에서 기존 구조를 쓰는 경우 깨지지 않게 유지
===================================================== */

.form-date.date-range-wrap {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  flex-wrap: nowrap;
  width: auto;
  min-width: 0;
  overflow: visible;
}

.form-date.date-range-wrap .flatpickr-wrapper {
  display: inline-block !important;
  width: 200px !important;
  max-width: 200px !important;
  flex: 0 0 200px !important;
}

.form-date.date-range-wrap .form-input,
.form-date.date-range-wrap .flatpickr-input {
  width: 200px !important;
  max-width: 200px !important;
  height: 40px !important;
  min-height: 40px !important;
  padding: 0 40px 0 12px !important;

  background-image: url("/cefc-mgmt/images/icon_calendar.svg") !important;
  background-repeat: no-repeat !important;
  background-position: calc(100% - 10px) center !important;
  background-size: 18px 18px !important;

  box-sizing: border-box !important;
}


/* =====================================================
   3. 검색박스 안 보정
   - 기존 .search-box .form-input { max-width:200px; }와 충돌 방지
===================================================== */

.search-box .date-range-wrap {
  display: inline-flex;
  align-items: center;
  flex-wrap: nowrap;
  width: auto;
  max-width: none;
}

.search-box .date-range-wrap .input-wrap {
  width: 160px;
  max-width: 160px;
  flex: 0 0 160px;
}

.search-box .date-range-wrap .flatpickr-wrapper {
  width: 160px !important;
  max-width: 160px !important;
}

.search-box .date-range-wrap .form-input,
.search-box .date-range-wrap .input-item,
.search-box .date-range-wrap .flatpickr-input {
  width: 160px !important;
  max-width: 160px !important;
}


/* =====================================================
   4. flatpickr Popup
===================================================== */

.flatpickr-calendar {
  z-index: 99999 !important;
}

/* range 달력 여백 */
.date-range-wrap .flatpickr-calendar {
  padding: 15px 0;
}

/* 기존 form-date 안에서 뜨는 달력과 동일 */
.form-date .flatpickr-calendar {
  padding: 15px 0;
}


/* =====================================================
   5. flatpickr Header
   - month/year select 기존 스타일
===================================================== */

.flatpickr-current-month {
  font-size: 14px !important;
  font-weight: 400 !important;
}

/* 연도 select */
.flatpickr-current-month .flatpickr-year-select {
  width: 50px !important;
  height: 28px !important;
  line-height: 28px !important;

  padding: 0 !important;
  margin: 0 !important;

  border: none !important;
  border-radius: 0 !important;
  background-color: transparent !important;

  color: #111827 !important;
  font-size: 14px !important;
  font-weight: 400 !important;

  text-align: center !important;
  text-align-last: center !important;

  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;

  outline: none !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
}

/* 월 select */
.flatpickr-current-month .flatpickr-monthDropdown-months {
  width: 50px !important;
  height: 28px !important;
  line-height: 28px !important;

  padding: 0 !important;
  margin: 0 !important;

  border: none !important;
  border-radius: 0 !important;
  background-color: transparent !important;

  color: #111827 !important;
  font-size: 14px !important;
  font-weight: 400 !important;

  text-align: center !important;
  text-align-last: center !important;

  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;

  outline: none !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
}

/* 기존 flatpickr 연도 input 숨김 */
.flatpickr-current-month .numInputWrapper,
.flatpickr-current-month input.cur-year {
  display: none !important;
}

/* 월/년 영역 여백 */
.flatpickr-months {
  margin-bottom: 10px;
}

.flatpickr-prev-month,
.flatpickr-next-month {
  top: 15px !important;
  line-height: 1 !important;
}


/* =====================================================
   6. MonthPicker 카드형
===================================================== */

.flatpickr-calendar.fp-month-card-picker,
.flatpickr-calendar.fp-month-only {
  width: 280px !important;
  min-width: 280px !important;
  padding-bottom: 6px !important;
  overflow: visible !important;
}

.flatpickr-calendar.fp-month-card-picker .flatpickr-months,
.flatpickr-calendar.fp-month-only .flatpickr-months {
  position: relative !important;
  height: 42px !important;
  padding: 0 40px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
}

.flatpickr-calendar.fp-month-card-picker .flatpickr-current-month,
.flatpickr-calendar.fp-month-only .flatpickr-current-month {
  position: static !important;
  left: auto !important;
  top: auto !important;
  transform: none !important;
  width: auto !important;
  height: 32px !important;
  line-height: 32px !important;
  padding: 0 !important;

  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* monthpicker에서는 월 select 숨김 */
.flatpickr-calendar.fp-month-card-picker .flatpickr-monthDropdown-months,
.flatpickr-calendar.fp-month-only .flatpickr-monthDropdown-months {
  display: none !important;
}

/* monthpicker 연도 select */
.flatpickr-calendar.fp-month-card-picker .flatpickr-year-select,
.flatpickr-calendar.fp-month-only .flatpickr-year-select {
  width: 50px !important;
  height: 28px !important;
  line-height: 28px !important;
  margin: 0 !important;
  border: none !important;
  background: transparent !important;
}

/* 좌우 화살표 위치 보정 */
.flatpickr-calendar.fp-month-card-picker .flatpickr-prev-month,
.flatpickr-calendar.fp-month-card-picker .flatpickr-next-month,
.flatpickr-calendar.fp-month-only .flatpickr-prev-month,
.flatpickr-calendar.fp-month-only .flatpickr-next-month {
  top: 50% !important;
  transform: translateY(-50%) !important;
  height: 28px !important;
  display: flex !important;
  align-items: center !important;
}


/* =====================================================
   7. YearPicker 카드형
===================================================== */

.flatpickr-calendar.fp-year-card-picker .flatpickr-months,
.flatpickr-calendar.fp-year-only .flatpickr-months {
  display: none !important;
}

.flatpickr-calendar.fp-card-picker .flatpickr-weekdays,
.flatpickr-calendar.fp-card-picker .flatpickr-days,
.flatpickr-calendar.fp-month-only .flatpickr-weekdays,
.flatpickr-calendar.fp-month-only .flatpickr-days,
.flatpickr-calendar.fp-year-only .flatpickr-weekdays,
.flatpickr-calendar.fp-year-only .flatpickr-days {
  display: none !important;
}

.flatpickr-calendar.fp-year-card-picker .flatpickr-monthDropdown-months,
.flatpickr-calendar.fp-year-only .flatpickr-monthDropdown-months {
  display: none !important;
}

.flatpickr-calendar.fp-year-only,
.flatpickr-calendar.fp-card-picker {
  width: 280px !important;
  min-width: 280px !important;
}


/* =====================================================
   8. MonthPicker / YearPicker Card Panel
===================================================== */

.fp-card-panel {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  padding: 8px 12px 12px 12px;
  max-height: 220px;
  overflow-y: auto;
  box-sizing: border-box;
}

.flatpickr-calendar.fp-month-card-picker .fp-card-panel,
.flatpickr-calendar.fp-month-only .fp-card-panel {
  max-height: none !important;
  overflow: visible !important;
}

.fp-card-item {
  height: 38px;
  padding: 0;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  background: #fff;
  color: #111827;
  font-size: 14px;
  font-weight: 400;
  cursor: pointer;
  box-sizing: border-box;
}

.fp-card-item:hover {
  border-color: #279fd3;
  background: #eef8fc;
}

.fp-card-item.active {
  border-color: #279fd3;
  background: #279fd3;
  color: #fff;
  font-weight: 700;
}


/* =====================================================
   9. flatpickr Footer
===================================================== */

.flatpickr-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 6px;
  padding: 8px 10px;
  border-top: 1px solid #e5e7eb;
  background: #fff;
}

.flatpickr-footer button {
  height: 28px;
  padding: 0 10px;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  background: #fff;
  color: #111827;
  font-size: 13px;
  cursor: pointer;
}

.flatpickr-footer button:hover {
  border-color: #279fd3;
  color: #279fd3;
}

/* monthpicker footer 하단 잘림 방지 */
.flatpickr-calendar.fp-month-card-picker .flatpickr-footer,
.flatpickr-calendar.fp-month-only .flatpickr-footer {
  margin-bottom: 0 !important;
  padding-bottom: 8px !important;
}

/* =====================================================
   FINAL OVERRIDE - form-date + date-range-wrap 보정
   - single 화면에서 flatpickr-wrapper 폭/배치 깨짐 방지
===================================================== */

.search-box .form-date.date-range-wrap,
.form-date.date-range-wrap {
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
  flex-wrap: nowrap !important;
  width: max-content !important;
  max-width: none !important;
  min-width: 0 !important;
  overflow: visible !important;
  vertical-align: middle !important;
}

/* flatpickr가 input을 div.flatpickr-wrapper로 감싸는 경우 */
.search-box .form-date.date-range-wrap .flatpickr-wrapper,
.form-date.date-range-wrap .flatpickr-wrapper {
  position: relative !important;
  display: inline-block !important;
  width: 160px !important;
  max-width: 160px !important;
  min-width: 160px !important;
  flex: 0 0 160px !important;
  overflow: visible !important;
}

/* range 안 input */
.search-box .form-date.date-range-wrap .form-input,
.search-box .form-date.date-range-wrap .flatpickr-input,
.form-date.date-range-wrap .form-input,
.form-date.date-range-wrap .flatpickr-input {
  width: 160px !important;
  max-width: 160px !important;
  min-width: 160px !important;
  height: 40px !important;
  min-height: 40px !important;
  padding: 0 34px 0 12px !important;
  box-sizing: border-box !important;

  background-image: url("/cefc-mgmt/images/icon_calendar.svg") !important;
  background-repeat: no-repeat !important;
  background-position: right 10px center !important;
  background-size: 18px 18px !important;
}

/* ~ 구분자 */
.search-box .form-date.date-range-wrap .date-range-sep,
.search-box .form-date.date-range-wrap .dash,
.form-date.date-range-wrap .date-range-sep,
.form-date.date-range-wrap .dash {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  min-width: 12px !important;
  height: 40px !important;
  padding: 0 2px !important;
  flex: 0 0 auto !important;
  line-height: 1 !important;
}

/* flatpickr 달력은 wrapper 안에 생기므로 잘리지 않게 */
.search-box .form-date.date-range-wrap .flatpickr-calendar,
.form-date.date-range-wrap .flatpickr-calendar {
  z-index: 99999 !important;
}

/* 검색영역 부모에서 자르는 경우 방지 */
.search-box,
.search-box-wrap,
.search-panel,
.article-wrap,
.section-wrap {
  overflow: visible !important;
}
