/* 설정 페이지 공통 (원수사 관리 / 파일 설정 / 컬럼 매핑) */
.filter_area .search_wrap { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.filter_area .search_box { display: flex; align-items: center; gap: 8px; }
.filter_area .search_box .title { font-weight: 600; white-space: nowrap; }
.filter_area .search_box select { min-width: 220px; }
.filter_area .hint { color: #888; font-size: 14px; }

.guide_box { margin: 0 0 15px; padding: 12px 16px; background: #f7f8fa; border: 1px solid var(--borderColor); border-radius: 8px; font-size: 14px; line-height: 1.7; }
.guide_box ul { margin: 4px 0 0 18px; }
.guide_box code { padding: 1px 5px; background: #eef1f5; border-radius: 4px; font-family: Consolas, monospace; }

.setting_table th.w50 { width: 50px; }
.setting_table th.w60 { width: 60px; }
.setting_table th.w80 { width: 80px; }
.setting_table th.w100 { width: 100px; }
.setting_table th.w110 { width: 110px; }
.setting_table th.w120 { width: 120px; }
.setting_table th.w140 { width: 140px; }
.setting_table th.w150 { width: 150px; }
.setting_table th.w200 { width: 200px; }
.setting_table th.w220 { width: 220px; }
.setting_table td.left { text-align: left; padding-left: 10px; }
.setting_table td input[type="text"] { width: 100%; padding: 6px 8px; border: 1px solid var(--borderColor); border-radius: 5px; font-size: 14px; }
.setting_table td input[type="text"]:disabled { background: #f3f3f3; color: #999; }
.setting_table td select { width: 100%; }
.setting_table td a { color: var(--brandColor); text-decoration: underline; }

.mapping_table th, .mapping_table td { font-size: 14px; }
.mapping_table .param_split { display: inline-flex; gap: 4px; }
.mapping_table .param_split .split_in { width: 62px !important; text-align: center; }
.mapping_table .param_split[hidden], .mapping_table .param_const[hidden] { display: none !important; }
/* 원본 헤더명 후보 목록 */
.mapping_table .hdr_list { display: flex; flex-direction: column; gap: 4px; }
.mapping_table .hdr_item { display: flex; align-items: center; gap: 4px; }
.mapping_table .hdr_item input { flex: 1; }
.mapping_table .hdrDelBtn { border: 1px solid var(--borderColor); background: #fff; color: #c94f4f; border-radius: 4px; width: 24px; height: 24px; line-height: 1; cursor: pointer; }
.mapping_table .hdrAddBtn { align-self: flex-start; border: 1px dashed var(--borderColor); background: #fafbfc; color: #666; border-radius: 4px; padding: 2px 8px; font-size: 12px; cursor: pointer; }
.mapping_table .hdrAddBtn:hover { background: #eef3ff; color: var(--brandColor); }

.rule_info { margin-bottom: 10px; font-size: 15px; }
.rule_info .badge { display: inline-block; padding: 2px 8px; background: var(--brandColor); color: #fff; border-radius: 4px; font-size: 13px; }
.rule_info .badge.base { background: #c94f4f; }
.setting_table td input[type="radio"] { cursor: pointer; }

.test_box { margin-top: 15px; padding: 12px 16px; border: 1px dashed var(--borderColor); border-radius: 8px; font-size: 14px; }
.test_box .test_row { display: flex; align-items: center; gap: 8px; margin-top: 8px; flex-wrap: wrap; }
.test_box .test_row select { min-width: 220px; }
.test_box .test_row input { min-width: 260px; padding: 6px 8px; border: 1px solid var(--borderColor); border-radius: 5px; }

.gray_text { color: #999; }
.red_text { color: #c94f4f; }
.ok_text { color: #2a8a4a; font-weight: 600; }

.modal_area .input_wrap label { width: 80px; }
.modal_area .modal_body { padding-right: 35px; }
.modal_area.wide { width: 90%; max-width: 1100px; }
.modal_hint { margin: 6px 0 0; font-size: 13px; color: #9a6b00; }
.chk_label { font-size: 14px; cursor: pointer; }
.disabled_row td { color: #aaa; background: #fafafa; }
.empty_row td { background: #fff6f6; }
.empty_row select { border-color: #c94f4f; }
.log_table td.small { font-size: 12px; line-height: 1.5; }
.log_table code { font-size: 11px; color: #555; }

@media (max-width: 768px) {
    .filter_area .search_box select, .test_box .test_row select, .test_box .test_row input { min-width: 0; width: 100%; }
}

.section_title { font-size: 16px; font-weight: 600; margin: 4px 0 10px; }
.section_title .btn-fit { margin-left: 10px; vertical-align: middle; }

/* 손보/생보 나란히 (미유지 환수율) */
.rate_grid { display: flex; gap: 24px; flex-wrap: wrap; align-items: flex-start; }
.rate_grid .rate_col { flex: 1 1 420px; min-width: 320px; }
.rate_grid .section_title .btn-fit { margin-left: 10px; vertical-align: middle; }
.rate_table input.num_in { width: 70px; text-align: right; }

/* 센터 × 회차 매트릭스 (유지 지급률) */
.matrix_table input.rate_in { width: 64px; text-align: right; }
.matrix_table th .col_del { border: 0; background: transparent; color: #c0392b; font-size: 14px; cursor: pointer; padding: 0 2px; line-height: 1; vertical-align: middle; }
.matrix_table th .col_del:hover { color: #e74c3c; }
.matrix_table tbody td.left b { font-weight: 600; }

/* 보험사 조정률: 공통 행 표시 */
#rateTable .badge { display: inline-block; padding: 2px 8px; margin-left: 6px; background: var(--brandColor); color: #fff; border-radius: 4px; font-size: 12px; vertical-align: middle; }

#rateTable tr.group_first td { border-top: 2px solid #c9d3e3; }

/* 상품코드 구분 설정: 자동차 / 일반 탭 */
.kind_tabs { display: flex; gap: 28px; margin: 0 0 18px; padding: 0; list-style: none; border-bottom: 1px solid var(--borderColor); }
.kind_tabs .kind_tab { font-size: 18px; font-weight: 600; padding: 6px 4px 10px; cursor: pointer; color: #777; border-bottom: 3px solid transparent; margin-bottom: -1px; }
.kind_tabs .kind_tab:hover { color: var(--brandColor); }
.kind_tabs .kind_tab.active { color: var(--brandColor); font-weight: 700; border-bottom-color: var(--brandColor); }
