/* ============================================
   마일리지 관리 페이지 (Mileage)
   ============================================ */

/* ── 통계카드 추가 색상 변형 (or_stat_icon_wrap 확장) ── */

.or_stat_icon_wrap.is_red {
  background-color: #fee2e2;
}

.is_red>.or_stat_icon {
  color: #dc2626;
}

/* ── 검색바 (Overview 탭) ─────────────────── */

.mil_search {
  display: flex;
  gap: 0.75rem;
  padding: 0.75rem 1rem;
  background-color: var(--c-white);
  border-radius: var(--radius-xl);
  border: 1px solid var(--c-line);
}

.dark .mil_search {
  background-color: var(--c-dark-card);
  border-color: var(--c-dark-line);
}

.mil_search_input {
  flex: 1;
  height: 2.25rem;
  padding: 0 0.75rem;
  border: 1px solid var(--c-input-border);
  border-radius: var(--radius-lg);
  font-size: 0.875rem;
  background-color: var(--c-white);
  color: var(--c-text-1);
  outline: none;
}

.mil_search_input:focus {
  border-color: var(--c-primary-500);
}

.dark .mil_search_input {
  background-color: var(--c-surface);
  color: var(--c-text-2);
  border-color: var(--c-border);
}

/* ── 필터바 (Owner 탭 / Quarterly 탭) ─────── */

.mil_filter {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.75rem;
  padding: 0.75rem 1rem;
  background-color: var(--c-white);
  border-radius: var(--radius-xl);
  border: 1px solid var(--c-line);
}

.dark .mil_filter {
  background-color: var(--c-dark-card);
  border-color: var(--c-dark-line);
}

.mil_filter_group {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-width: 8.5rem;
}

.mil_filter_label {
  font-size: 0.75rem;
  color: var(--c-text-3);
}

.mil_filter_input,
.mil_filter_select {
  height: 2.25rem;
  padding: 0 0.625rem;
  border: 1px solid var(--c-input-border);
  border-radius: var(--radius-lg);
  font-size: 0.875rem;
  background-color: var(--c-white);
  color: var(--c-text-1);
  outline: none;
}

.mil_filter_input:focus,
.mil_filter_select:focus {
  border-color: var(--c-primary-500);
}

.dark .mil_filter_input,
.dark .mil_filter_select {
  background-color: var(--c-surface);
  color: var(--c-text-2);
  border-color: var(--c-border);
}

.mil_filter_date_range {
  display: flex;
  align-items: center;
  gap: 0.375rem;
}

.mil_filter_date_sep {
  color: var(--c-text-3);
}

.mil_filter_right {
  margin-left: auto;
  display: flex;
  align-items: flex-end;
  gap: 0.5rem;
}

/* ── 마일리지 현황 테이블 td 폰트 통일 (or_assign_table 기준) ── */

.mil_overview_table .dtable_td {
  font-size: 0.875rem;
  font-weight: 400;
  color: var(--c-text-2);
}

.mil_overview_table .dtable_td .dtable_cell_main,
.mil_overview_table .dtable_td .dtable_sub,
.mil_overview_table .dtable_td .dtable_price {
  font-size: 0.875rem;
  font-weight: 400;
  color: var(--c-text-2);
}

/* ── 분기별 통계 테이블 td 폰트 통일 ── */

.mil_quarterly_table .dtable_td {
  font-size: 0.875rem;
  font-weight: 400;
  color: var(--c-text-2);
}

.mil_quarterly_table .dtable_td .dtable_cell_main,
.mil_quarterly_table .dtable_td .dtable_sub,
.mil_quarterly_table .dtable_td .dtable_price {
  font-size: 0.875rem;
  font-weight: 400;
  color: var(--c-text-2);
}

/* ── 테이블 컬럼 너비 ─────────────────────── */

/* Overview: 회원명 | 이메일 | 유형 | 잔여 마일리지 | 30일내 만료예정 | 액션 */
.mil_overview_table {
  table-layout: fixed;
  min-width: 780px;
}

.mil_overview_table .dtable_th:nth-child(1),
.mil_overview_table .dtable_td:nth-child(1) {
  width: 14%;
}

.mil_overview_table .dtable_th:nth-child(2),
.mil_overview_table .dtable_td:nth-child(2) {
  width: 22%;
}

.mil_overview_table .dtable_th:nth-child(3),
.mil_overview_table .dtable_td:nth-child(3) {
  width: 10%;
}

.mil_overview_table .dtable_th:nth-child(4),
.mil_overview_table .dtable_td:nth-child(4) {
  width: 18%;
}

.mil_overview_table .dtable_th:nth-child(5),
.mil_overview_table .dtable_td:nth-child(5) {
  width: 18%;
}

.mil_overview_table .dtable_th:nth-child(6),
.mil_overview_table .dtable_td:nth-child(6) {
  width: 18%;
}

/* Quarterly: 분기 | 적립 | 사용 | 만료 | 환불 | 수동조정 */
.mil_quarterly_table {
  table-layout: fixed;
  min-width: 640px;
}

.mil_quarterly_table .dtable_th:nth-child(1),
.mil_quarterly_table .dtable_td:nth-child(1) {
  width: 14%;
}

/* Owner: 회원명 | 이메일 | 호텔 | 객실 | 소유기간 | 현재년차 | 연간마일리지 | 지급상태 | 관리 */
.mil_owner_table {
  table-layout: fixed;
  min-width: 1080px;
}

.mil_owner_table .dtable_td {
  font-size: 0.875rem;
  font-weight: 400;
  color: var(--c-text-2);
}

.mil_owner_table .dtable_td .dtable_cell_main {
  font-size: 0.875rem;
  font-weight: 400;
  color: var(--c-text-2);
}

.mil_owner_table .dtable_td .dtable_price {
  font-size: 0.875rem;
  font-weight: 400;
  color: var(--c-red-600);
}

.mil_owner_table .dtable_td .dtable_sub {
  margin-top: 0;
}

.mil_owner_table .dtable_th:nth-child(1),
.mil_owner_table .dtable_td:nth-child(1) {
  width: 8%;
}

/* 회원명 */
.mil_owner_table .dtable_th:nth-child(2),
.mil_owner_table .dtable_td:nth-child(2) {
  width: 13%;
}

/* 이메일 */
.mil_owner_table .dtable_th:nth-child(3),
.mil_owner_table .dtable_td:nth-child(3) {
  width: 13%;
}

/* 호텔 */
.mil_owner_table .dtable_th:nth-child(4),
.mil_owner_table .dtable_td:nth-child(4) {
  width: 13%;
}

/* 객실/호실 */
.mil_owner_table .dtable_th:nth-child(5),
.mil_owner_table .dtable_td:nth-child(5) {
  width: 15%;
}

/* 소유기간 */
.mil_owner_table .dtable_th:nth-child(6),
.mil_owner_table .dtable_td:nth-child(6) {
  width: 7%;
}

/* 현재년차 */
.mil_owner_table .dtable_th:nth-child(7),
.mil_owner_table .dtable_td:nth-child(7) {
  width: 9%;
}

/* 연간마일리지 */
.mil_owner_table .dtable_th:nth-child(8),
.mil_owner_table .dtable_td:nth-child(8) {
  width: 9%;
}

/* 지급상태 */
.mil_owner_table .dtable_th:nth-child(9),
.mil_owner_table .dtable_td:nth-child(9) {
  width: 11%;
}

/* 관리 */

/* ── 값 색상 유틸리티 ─────────────────────── */

.mil_earn {
  color: var(--c-primary-500);
}

.mil_use {
  color: var(--c-red-400);
}

.mil_expire {
  color: var(--c-text-3);
}

.mil_refund {
  color: #2563eb;
}

.mil_adjust {
  color: #d97706;
}

.dark .mil_earn {
  color: var(--c-primary-400);
}

.dark .mil_use {
  color: var(--c-red-400);
}

.dark .mil_refund {
  color: #60a5fa;
}

.dark .mil_adjust {
  color: #fbbf24;
}

.mil_expiring {
  color: #ef4444;
}

.dark .mil_expiring {
  color: var(--c-red-400);
}

/* ── 유형 뱃지 (드로어 이력) ──────────────── */

.mil_type_badge {
  display: inline-flex;
  align-items: center;
  border-radius: 9999px;
  padding: 0.125rem 0.375rem;
  font-size: 0.625rem;
  font-weight: 600;
  line-height: 1.4;
  color: #fff;
}

.mil_type_badge.is_earn {
  background-color: var(--c-primary-500);
}

.mil_type_badge.is_use {
  background-color: var(--c-red-400);
}

.mil_type_badge.is_expire {
  background-color: var(--c-gray-500);
}

.mil_type_badge.is_refund {
  background-color: var(--c-success-light);
}

.mil_type_badge.is_adjust {
  background-color: var(--c-warning-light);
}

.mil_type_badge.is_recall {
  background-color: #b91c1c;
}

/* ── 지급상태 뱃지 ────────────────────────── */

.mil_pay_badge {
  display: inline-flex;
  align-items: center;
  border-radius: 9999px;
  padding: 0.125rem 0.5rem;
  font-size: 0.75rem;
  font-weight: 600;
}

.mil_pay_badge.is_paid {
  background-color: #dcfce7;
  color: #15803d;
}

.mil_pay_badge.is_partial {
  background-color: #fef3c7;
  color: #b45309;
}

.mil_pay_badge.is_unpaid {
  background-color: #fee2e2;
  color: #b91c1c;
}

/* 부분지급 뱃지 (수분양자 테이블) */
.dtable_badge.is_partial_pay {
  background-color: #eab308;
  color: #fff;
}

/* ── 합계 행 ──────────────────────────────── */

.mil_subtotal {
  border-top: 2px solid var(--c-gray-300);
  background-color: var(--c-gray-50);
  font-weight: 600;
  color: var(--c-primary-500);
}

.mil_subtotal .dtable_td,
.mil_subtotal .dtable_td .dtable_cell_main,
.mil_subtotal .dtable_td .dtable_sub,
.mil_subtotal .dtable_td .dtable_price {
  color: var(--c-primary-500);
}

.dark .mil_subtotal {
  border-top-color: var(--c-gray-400);
  background-color: var(--c-gray-100);
  color: var(--c-primary-400);
}

.dark .mil_subtotal .dtable_td,
.dark .mil_subtotal .dtable_td .dtable_cell_main,
.dark .mil_subtotal .dtable_td .dtable_sub,
.dark .mil_subtotal .dtable_td .dtable_price {
  color: var(--c-primary-400);
}

/* ── 설정미등록 태그 ──────────────────────── */

.mil_tag_unconfig {
  display: inline-flex;
  align-items: center;
  border-radius: var(--radius-sm);
  padding: 0.0625rem 0.375rem;
  font-size: 0.625rem;
  font-weight: 500;
  background-color: #fee2e2;
  color: #dc2626;
}

.dark .mil_tag_unconfig {
  background-color: rgba(239, 68, 68, 0.1);
  color: #fca5a5;
}

/* ── 드로어 ───────────────────────────────── */

.mil_drawer {
  max-width: 38rem;
}

/* 드로어 헤더 잔액 */
.mil_header_balance {
  margin-left: auto;
  margin-right: 0.75rem;
  display: flex;
  align-items: center;
  gap: 0.375rem;
}

.mil_header_balance_label {
  font-size: 0.8125rem;
  color: var(--c-text-1);
}

.mil_header_balance_value {
  font-size: 15px;
  font-weight: 500;
  color: var(--c-primary-600);
  letter-spacing: -0.3px;
}

.dark .mil_header_balance_label {
  color: var(--c-dark-text);
}

.dark .mil_header_balance_value {
  color: var(--c-primary-400);
}

/* 마일리지 요약 테이블: 누적 적립/사용 td 동일 너비 */
.mil_drawer .rsv_info_table {
  table-layout: fixed;
}

/* 수분양자 보유객실 드로어 테이블 */
.rsv_info_table.mil_owner_drawer_table {
  table-layout: fixed;
  width: 100%;
}

.rsv_info_table.mil_owner_drawer_table th {
  width: auto;
}

.rsv_info_table.mil_owner_drawer_table th:nth-child(1) {
  width: 26%;
}

.rsv_info_table.mil_owner_drawer_table th:nth-child(2) {
  width: 30%;
}

.rsv_info_table.mil_owner_drawer_table th:nth-child(3) {
  width: 20%;
}

.rsv_info_table.mil_owner_drawer_table th:nth-child(4) {
  width: 24%;
}

.rsv_info_table.mil_owner_drawer_table th.is_right {
  text-align: right;
}

.rsv_info_table.mil_owner_drawer_table td:nth-child(1),
.rsv_info_table.mil_owner_drawer_table td:nth-child(2) {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* 잔액 요약 테이블 */
.mil_drawer_summary_highlight {
  color: var(--c-primary-600) !important;
  font-weight: 700 !important;
}

.dark .mil_drawer_summary_highlight {
  color: var(--c-primary-400) !important;
}

/* 만료 예정 섹션 타이틀 */
.mil_expiring_title {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  color: #ef4444;
}

.mil_expiring_table {
  table-layout: fixed;
}

/* 드로어 거래이력 카드 리스트 */
.mil_tx_list {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}

.mil_tx_card {
  padding: 0.625rem 0.75rem;
  border: 1px solid var(--c-line);
  border-radius: var(--radius-lg);
  background: var(--c-white);
}

.dark .mil_tx_card {
  background: var(--c-dark-card-alt);
  border-color: var(--c-gray-600);
}

/* 1행: 뱃지 + 일시 (좌) | 금액 (우) */
.mil_tx_row_main {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.mil_tx_date {
  font-size: 0.8125rem;
  color: var(--c-text-2);
  letter-spacing: 0.01em;
}

.mil_tx_amount {
  margin-left: auto;
  font-size: 0.875rem;
  font-weight: 500;
  white-space: nowrap;
  letter-spacing: -0.3px;
}

/* 2행: 잔액 · 잔여 · 만료 */
.mil_tx_row_detail {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 0.75rem;
  margin-top: 0.375rem;
  font-size: 0.8125rem;
  color: var(--c-text-2);
}

.mil_tx_detail_item strong {
  font-weight: 500;
  color: var(--c-text-1);
}

.dark .mil_tx_detail_item strong {
  color: var(--c-dark-text);
}

/* 3행: 출처 · 사유 */
.mil_tx_row_meta {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  margin-top: 0.25rem;
  font-size: 0.75rem;
  color: var(--c-text-2);
}

.mil_tx_row_meta>span:first-child {
  flex-shrink: 0;
}

.mil_tx_reason {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}

.mil_tx_row_meta>span:first-child::after {
  content: '·';
  margin-left: 0.375rem;
}

.mil_tx_row_meta>span:only-child::after {
  content: none;
}

/* 드로어 필터 */
.mil_drawer_filter {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}

.mil_drawer_filter .cselect {
  min-width: 6.5rem;
}

.mil_drawer_filter .cselect_trigger {
  border-radius: var(--radius-lg);
}

.mil_drawer_filter .daterange_input {
  flex: 0 0 auto;
  min-width: 8.5rem;
}

.mil_drawer_filter .daterange_input:hover {
  border-color: var(--c-input-border);
}

/* 드로어 거래이력 페이지네이션: 상단 보더 제거 */
.mil_drawer .dtable_footer {
  border-top: none;
}

/* ── 모달 크기 변형 ───────────────────────── */

.mil_recall_modal {
  max-width: 32rem;
}

.mil_annual_modal {
  max-width: 32rem;
}

.mil_bulk_modal {
  max-width: 38rem;
}

/* 전체발급 모달: 요약 2행 배치 */
.mil_bulk_summary {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.mil_bulk_summary_row {
  display: flex;
  align-items: center;
}

/* 1행·2행 좌측 항목: 고정 너비로 우측 항목 수직 정렬 */
.mil_bulk_summary_row>.mil_member_info_sub:first-child {
  width: 14rem;
  flex-shrink: 0;
}

/* 만료일자 인라인: 라벨 + 달력 인풋 한줄 */
.mil_bulk_expiry_inline {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

/* 달력 인풋 소형화 */
.mil_bulk_cal_trigger {
  height: 38px;
  padding: 0 0.5rem;
  font-size: 0.8125rem;
  min-width: 9rem;
  border-radius: var(--radius-md);
}

.mil_bulk_cal_trigger .daterange_icon {
  width: 14px;
  height: 14px;
}

/* 전체발급 달력 드롭다운: fixed 위치로 모달 overflow 회피 */
.mil_bulk_cal {
  position: fixed;
  z-index: 9999;
}

/* 수동 적립 모달 daterange 너비 */
.mil_adjust_modal .daterange_input {
  width: 100%;
}

/* ── 회수 모달 ────────────────────────────── */

/* 회수 모달 flex 레이아웃: 카드 영역만 스크롤 */
.mil_recall_modal>.form_group {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.mil_recall_modal>.form_stack,
.mil_recall_modal>.modal_footer,
.mil_recall_modal>.modal_title,
.mil_recall_modal>.mil_member_info {
  flex-shrink: 0;
}

.mil_recall_modal .mil_lot_cards_wrap {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.mil_recall_modal .mil_lot_cards {
  max-height: none;
  flex: 1;
  min-height: 0;
  margin: 0.25rem 0;
}

/* ── 연간 마일리지 모달 ──────────────────────── */

/* 연간 마일리지 모달 flex 레이아웃: 카드 영역만 스크롤 */
.mil_annual_modal>.form_group {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.mil_annual_modal>.form_group>div:first-child {
  flex-shrink: 0;
}

.mil_annual_modal>.mil_preview_box,
.mil_annual_modal>.modal_footer,
.mil_annual_modal>.modal_title,
.mil_annual_modal>.mil_member_info {
  flex-shrink: 0;
}

.mil_annual_modal .mil_lot_cards_wrap {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.mil_annual_modal .mil_lot_cards {
  max-height: none;
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  margin: 0.25rem 0;
}

/* ── 전체발급 모달 ──────────────────────────── */

.mil_bulk_list {
  max-height: 24rem;
  overflow-y: auto;
  padding: 0.25rem 0.5rem 0.25rem 0;
}

/* 아코디언 expand icon 회전 */
.mil_bulk_accordion_header .or_expand_icon {
  transition: transform 0.15s ease;
}

.mil_bulk_accordion_header .or_expand_icon.is_open {
  transform: rotate(90deg);
}

.mil_recall_row {
  display: flex;
  gap: 0.75rem;
}

.mil_recall_row_item {
  flex: 1;
  min-width: 0;
}

.mil_recall_modes {
  display: flex;
  gap: 1.5rem;
}

.mil_recall_mode_option {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.875rem;
  color: var(--c-text-2);
}

.mil_recall_mode_option:hover {
  background: none;
  color: var(--c-text-2);
  cursor: default;
}

.dark .mil_recall_mode_option {
  color: var(--c-dark-text-sub);
}

.dark .mil_recall_mode_option:hover {
  background: none;
  color: var(--c-dark-text-sub);
}

/* ── 모달 공통 요소 ───────────────────────── */

/* 회원 정보 카드 */
.mil_member_info {
  padding: 0.75rem;
  border-radius: var(--radius-lg);
  background-color: var(--c-gray-50);
  margin-bottom: 1rem;
}

.dark .mil_member_info {
  background-color: var(--c-gray-100);
}

.mil_member_info_row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}

.mil_member_info_name {
  font-weight: 500;
  color: var(--c-text-2);
}

.dark .mil_member_info_name {
  color: var(--c-dark-text);
}

.mil_member_info_sub {
  font-size: 0.875rem;
  color: var(--c-text-2);
}

.mil_member_info_balance {
  font-weight: 500;
  font-size: 1rem;
  color: var(--c-red-400);
  letter-spacing: -0.3px;
}

.dark .mil_member_info_balance {
  color: var(--c-red-400);
}

/* 잔액 미리보기 박스 */
.mil_preview_box {
  padding: 1rem;
  border-radius: var(--radius-lg);
  border: 1px solid var(--c-line);
  margin-top: 0.75rem;
}

.mil_preview_box .mil_member_info_sub {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.mil_preview_box.is_warn {
  border-color: #fed7aa;
  background-color: #fff7ed;
}

.dark .mil_preview_box {
  border-color: var(--c-dark-line);
}

.dark .mil_preview_box.is_warn {
  border-color: rgba(234, 88, 12, 0.3);
  background-color: rgba(234, 88, 12, 0.1);
}

/* 적립건 선택 리스트 (회수 모달 - 레거시) */
.mil_lot_list {
  max-height: 12rem;
  overflow-y: auto;
  border: 1px solid var(--c-line);
  border-radius: var(--radius-lg);
}

/* 적립건 카드형 리스트 (회수 모달) */
.mil_lot_cards_wrap {
  border: 1px solid var(--c-line);
  border-radius: var(--radius-lg);
  overflow: hidden;
  margin-bottom: 1rem;
}

.dark .mil_lot_cards_wrap {
  border-color: var(--c-gray-300);
}

.mil_lot_cards {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  max-height: 16rem;
  overflow-y: auto;
  padding: 0.5rem;
}

.mil_lot_card {
  display: flex;
  align-items: flex-start;
  gap: 0.35rem;
  padding: 0.75rem;
  border: 1px solid var(--c-line);
  border-radius: var(--radius-lg);
  cursor: pointer;
  transition: border-color 150ms, background-color 150ms;
}

.mil_lot_card:hover {
  border-color: var(--c-gray-300);
}

.mil_lot_card.is_selected {
  border-color: var(--c-primary-500);
}

.dark .mil_lot_card {
  border-color: var(--c-gray-300);
}

.dark .mil_lot_card:hover {
  border-color: var(--c-gray-400);
}

.dark .mil_lot_card.is_selected {
  border-color: var(--c-primary-500);
}

.mil_lot_card_body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

/* 잔여 금액 + 일시 (1행) */
.mil_lot_card_hero {
  display: flex;
  align-items: baseline;
  gap: 0.375rem;
}

.mil_lot_card_hero_value {
  font-weight: 500;
  font-size: 1rem;
  color: var(--c-red-400);
  letter-spacing: -0.3px;
  font-variant-numeric: tabular-nums;
}

.mil_lot_card_hero_dates {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-left: auto;
  font-size: 0.8125rem;
  color: var(--c-text-2);
  font-variant-numeric: tabular-nums;
}

.dark .mil_lot_card_hero_dates {
  color: var(--c-dark-text-sub);
}

/* 보조 정보 행 */
.mil_lot_card_meta {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.8125rem;
  color: var(--c-text-2);
  font-variant-numeric: tabular-nums;
}

.mil_lot_card_meta_item {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  letter-spacing: -0.3px;
}

.mil_lot_card_label {
  color: var(--c-text-3);
  font-size: 0.8125rem;
}

.dark .mil_lot_card_meta {
  color: var(--c-dark-text-sub);
}

.mil_lot_row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.375rem 0.75rem;
  cursor: pointer;
}

.mil_lot_row:hover {
  background-color: var(--c-gray-50);
}

.mil_lot_row.is_selected {
  background-color: #fff7ed;
}

.dark .mil_lot_row:hover {
  background-color: var(--c-gray-100);
}

.dark .mil_lot_row.is_selected {
  background-color: rgba(234, 88, 12, 0.1);
}

/* 객실 카드 (연간 마일리지 모달) */
.mil_room_card {
  padding: 0.5rem 0.75rem;
  border-radius: var(--radius-lg);
  border: 1px solid var(--c-line);
}

.mil_room_card_row {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.mil_room_card_left {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.mil_room_card_right {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.mil_room_card_unconfig {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}

.mil_room_card_detail {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 0.25rem;
  padding-left: 1.5rem;
}

.mil_annual_room_header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.5rem;
}

.mil_annual_room_list {
  max-height: 15rem;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-bottom: 1rem;
}

.mil_room_card.is_paid {
  opacity: 0.6;
  background-color: var(--c-gray-50);
}

.mil_room_card.is_selected {
  border-color: var(--c-primary-300);
  background-color: var(--c-primary-50);
}

.dark .mil_room_card {
  border-color: var(--c-gray-300);
}

.dark .mil_room_card.is_paid {
  background-color: var(--c-gray-100);
}

.dark .mil_room_card.is_selected {
  border-color: var(--c-primary-600);
  background-color: rgba(var(--c-primary-rgb, 27, 58, 107), 0.1);
}

/* 일괄발급 아코디언 */
.mil_bulk_accordion {
  border: 1px solid var(--c-line);
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.mil_bulk_accordion+.mil_bulk_accordion {
  margin-top: 0.5rem;
}

.mil_bulk_accordion_header {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
  padding: 0.75rem 1rem;
  background: transparent;
  text-align: left;
  cursor: pointer;
  border: none;
  font: inherit;
}

.mil_bulk_accordion:not(.is_open) .mil_bulk_accordion_header:hover {
  background-color: var(--c-gray-50);
}

.dark .mil_bulk_accordion:not(.is_open) .mil_bulk_accordion_header:hover {
  background-color: var(--c-gray-100);
}

/* 아코디언 헤더: lot card 스타일 통일 */
.mil_bulk_accordion_header .dtable_cell_main {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--c-text-1);
}

.mil_bulk_accordion_header .dtable_sub {
  font-size: 0.8125rem;
  color: var(--c-text-2);
  margin-top: 0.125rem;
}

/* 아코디언 헤더 상단행: 이름 + 금액 수평 정렬 */
.mil_bulk_accordion_top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.mil_bulk_accordion_header .dtable_price {
  font-weight: 500;
  font-size: 0.875rem;
  color: var(--c-red-400);
  letter-spacing: -0.3px;
  font-variant-numeric: tabular-nums;
  flex-shrink: 0;
}

/* 건수 표기: dtable_sub 스타일 동일 */
.mil_bulk_room_count {
  font-size: 0.8125rem;
  font-weight: 400;
  color: var(--c-text-2);
}

/* 아코디언 바디: 헤더 안에 포함된 느낌 */
.mil_bulk_accordion_body {
  background-color: var(--c-gray-50);
  margin: 0 0.5rem 0.5rem;
  border-radius: var(--radius-md);
  padding: 0.25rem 0;
}

.dark .mil_bulk_accordion_body {
  background-color: var(--c-gray-100);
}

.mil_bulk_accordion_body .dtable_cell_main {
  font-size: 0.8125rem;
  font-weight: 400;
  color: var(--c-text-2);
}

.mil_bulk_accordion_body .dtable_sub {
  font-size: 0.8125rem;
}

/* 바디 상단행: 호텔명 + 금액 수평 정렬 */
.mil_bulk_body_top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.mil_bulk_accordion_body .dtable_price {
  font-weight: 500;
  color: var(--c-text-1);
  font-size: 0.8125rem;
  font-variant-numeric: tabular-nums;
  flex-shrink: 0;
}

/* 확인 경고 박스 */
.mil_confirm_warn {
  margin-top: 1rem;
  padding: 1rem;
  border: 2px solid #fca5a5;
  border-radius: var(--radius-lg);
  background-color: #fef2f2;
}

.dark .mil_confirm_warn {
  border-color: rgba(239, 68, 68, 0.3);
  background-color: rgba(239, 68, 68, 0.1);
}

/* 합계 카드 */
.mil_total_badge {
  padding: 0.75rem 1rem;
  border-radius: var(--radius-lg);
  background-color: var(--c-primary-50);
}

.mil_total_badge_row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 0.875rem;
}

.mil_total_badge_label {
  color: var(--c-text-2);
}

.mil_total_badge_value {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--c-primary-600);
}

/* 확인 경고 박스 내부 */
.mil_confirm_warn_title {
  font-size: 0.875rem;
  font-weight: 700;
  color: #b91c1c;
}

.dark .mil_confirm_warn_title {
  color: #fca5a5;
}

.mil_confirm_warn_desc {
  margin-top: 0.25rem;
  font-size: 0.75rem;
  color: #dc2626;
}

.dark .mil_confirm_warn_desc {
  color: #fca5a5;
}

/* 아코디언 바디 내 객실 행 */
.mil_bulk_accordion_body .mil_lot_row {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0.5rem 1rem 0.5rem 1.25rem;
}

.mil_bulk_accordion_body .mil_lot_row+.mil_lot_row {
  border-top: 1px dashed var(--c-line);
}

.dark .mil_bulk_accordion_body .mil_lot_row+.mil_lot_row {
  border-top-color: var(--c-dark-line);
}

/* 번호 뱃지 */
.mil_bulk_row_num {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 1rem;
  height: 1rem;
  border-radius: var(--radius-full);
  background-color: var(--c-primary-500);
  font-size: 0.625rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--c-white);
  margin-top: 0.1875rem;
}

.dark .mil_bulk_row_num {
  background-color: color-mix(in srgb, var(--c-primary-900) 30%, transparent);
  color: var(--c-primary-400);
}

/* ── 회원유형 뱃지 (마일리지 현황 테이블) ── */

.dtable_badge.is_regular {
  background-color: #7C869E;
  color: #fff;
}

.dtable_badge.is_corporate {
  background-color: #3c4fb1;
  color: #fff;
}

.dtable_badge.is_owner {
  background-color: #cf9f43;
  color: #fff;
}