@charset "utf-8";

/* =========================================================
   고정 PC 레이아웃
   콘텐츠박스 1400 + 좌우 거터 = 하한폭 1440. 창이 이보다 좁아지면
   본문 UI를 축소하지 않고 가로 스크롤로 노출한다.
========================================================= */
#wrapper {min-width:1440px;}

/* =========================================================
   위치 경로 (breadcrumb)
========================================================= */
.breadcrumb {padding-bottom:4rem;}
.breadcrumb_list {display:flex; align-items:center; gap:.4rem;}
.breadcrumb_item {display:flex; align-items:center; gap:.4rem;}
.breadcrumb_item + .breadcrumb_item::before {content:""; flex-shrink:0; width:.6rem; height:.6rem; margin-right:.2rem; border-top:1.5px solid var(--color-text-muted); border-right:1.5px solid var(--color-text-muted); transform:rotate(45deg);}
.breadcrumb_link {display:inline-flex; align-items:center; gap:.4rem; min-height:2.4rem; padding:0 .4rem; font-size:var(--fs-base); line-height:var(--lh-base); color:var(--color-text-body); text-decoration:underline;}
.breadcrumb_link.is_current {color:var(--color-text-body); cursor:default; text-decoration:none;}
.breadcrumb_home::before {content:""; width:1.6rem; height:1.6rem; background:url(../images/icon/ico_home.svg) no-repeat center / contain;}

/* =========================================================
   페이지 제목 / 섹션 (내정보)
========================================================= */
.content_title {margin-bottom:4.8rem; font-size:var(--fs-h1); font-weight:700; line-height:var(--lh-base); color:var(--color-text-strong);}
.section_title {margin-bottom:2.4rem; font-size:var(--fs-h2); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.section_title.size_sm {font-size:var(--fs-h3); margin-bottom:2rem;}
.section_receipt {margin:0; font-size:var(--fs-lg); font-weight:400; line-height:var(--lh-base); color:var(--color-text-body);}
.subsection_title {margin-bottom:2.4rem; font-size:var(--fs-h3); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
/* 스텝 페이지 변형 */
.section_title.type_step,
.subsection_title.type_step {margin-bottom:4rem;}
.section-body {display:flex; flex-direction:column; gap:4rem;}
.section + .section {margin-top:8rem;}
/* 검색 필터 섹션과 바로 아래 목록 섹션은 붙여서 한 묶음으로 보이게 */
.section.type_search + .section {margin-top:4rem;}

/* =========================================================
   안내 박스 (infobox)
========================================================= */
.infobox {
	display: flex;
	flex-direction: column;
	gap: .8rem;
	padding: 2.4rem;
	border: 1px solid var(--color-gray-light);
	border-radius: var(--radius-2xl);
	background: var(--color-gray-subtler);
}
.infobox_head {display:flex; align-items:center; gap:.8rem;}
.infobox.type_top .infobox_head {align-items:flex-start;}
.infobox.type_top .infobox_ico {height:2.85rem;}
.infobox_ico {flex-shrink:0; width:2rem; height:2rem; background:url(../images/icon/ico_info.svg) no-repeat center / contain;}
.infobox_title {font-size:var(--fs-lg); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.infobox_body {padding-left:2.8rem;}
.infobox_body p {font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}

/* =========================================================
   결과/완료 안내 (회원탈퇴 심사중 등 — 가운데 정렬 상태 박스)
========================================================= */
.result {display:flex; flex-direction:column; align-items:center; gap:4rem; padding:6.4rem 4rem 4rem; border:1px solid var(--color-gray-light); border-radius:var(--radius-3xl); background:var(--color-white);}
.result_main {display:flex; flex-direction:column; align-items:center; gap:2.4rem; width:100%;}
.result_ico {flex-shrink:0; width:6.4rem; height:6.4rem; background:url(../images/icon/ico_attention.svg) no-repeat center / contain;}
.result_text {display:flex; flex-direction:column; align-items:center; gap:.8rem; width:100%;}
.result_title {font-size:var(--fs-h3); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title); text-align:center;}
.result_desc {font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body); text-align:center;}
.result_btn {display:inline-flex; align-items:center; justify-content:center; min-width:9rem; height:5.6rem; padding:0 2rem; border-radius:var(--radius-lg); font-size:var(--fs-19); line-height:var(--lh-base); transition:background .2s, border-color .2s;}
.result_status {display:flex; align-items:center; gap:1.6rem; width:100%; padding:2.4rem; border-radius:var(--radius-xl); background:var(--color-gray-subtler);}
.result_status_date {flex:1 1 0; min-width:0; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-title);}
.result_status_label {margin-right:.4rem; font-weight:600;}
.result_status_ico {flex-shrink:0; width:2.4rem; height:2.4rem; background:url(../images/icon/ico_check_circle.svg) no-repeat center / contain;}
.result_status_state {flex-shrink:0; font-size:var(--fs-lg); font-weight:600; line-height:var(--lh-base); color:var(--color-text-title);}
/* result 완료(체크) 변형 */
.result.type_check .result_ico {background-image:url(../images/icon/ico_complete.svg);}
/* result 완료(체크) 간격 */
.result.type_check {padding:5.6rem 4rem;}
.result.type_check .result_text {gap:2.4rem;}
/* result 접수번호 변형 */
.result.type_receipt .result_text {gap:2.4rem;}
.result_lead {display:flex; flex-direction:column; align-items:center; gap:.4rem; width:100%;}
.result_no {font-size:var(--fs-h3); font-weight:700; line-height:var(--lh-base); color:var(--color-primary-dark); text-align:center;}

/* infobox 완료(체크) 변형 */
.infobox.type_check .infobox_ico {background-image:url(../images/icon/ico_check_circle.svg);}
/* infobox 동작 변형 */
.infobox.type_action {flex-direction:row; align-items:center; gap:2.4rem;}
.infobox.type_action .infobox_main {flex:1 1 0; min-width:0; display:flex; flex-direction:column; gap:.8rem;}
/* infobox 동작 변형(가운데) */
.infobox.type_action.type_center {flex-direction:column; align-items:center; gap:2.4rem; text-align:center;}
.infobox.type_action.type_center .infobox_main {flex:0 0 auto; width:100%; align-items:center;}
.infobox.type_action.type_center .infobox_desc {font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}
/* infobox 파란 톤 변형 */
.infobox.type_primary {border-color:var(--color-secondary-light); background:var(--color-secondary-subtler);}
.infobox.type_primary .infobox_ico {background-image:url(../images/icon/ico_info_primary.svg);}
.infobox.type_primary .infobox_title {color:var(--color-secondary);}
/* infobox 완료(success) 톤 변형 */
.infobox.type_success {border-color:var(--color-success-border); background:var(--color-success-light);}
.infobox.type_success .infobox_ico {background-image:url(../images/icon/ico_system_success.svg);}
.infobox.type_success .infobox_title {color:var(--color-msg-success);}
/* infobox 경고(warning) 톤 변형 */
.infobox.type_warning {border-color:var(--color-warning-border); background:var(--color-warning-light);}
.infobox.type_warning .infobox_ico {background-image:url(../images/icon/ico_system_warning.svg);}
.infobox.type_warning .infobox_title {color:var(--color-msg-warning);}
/* infobox 한 줄 변형 */
.infobox.type_slim {flex-direction:row; align-items:center; gap:.8rem;}
.infobox.type_slim .infobox_text {font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-title);}
.infobox.type_slim.type_primary .infobox_text {color:var(--color-secondary);}
.infobox_text a {color:var(--color-primary); text-decoration:underline;}
/* infobox 본문 구분선 + 목록 (Default 변형 본문에서 사용) */
.infobox_divider {height:0; margin:1.2rem 0 0; border:0; border-top:1px dashed var(--color-gray-light);}
.infobox.type_primary .infobox_divider {border-top-color:var(--color-secondary-light);}
.infobox_list {display:flex; flex-direction:column; gap:.8rem; margin:0; padding:0; list-style:none;}
/* 본문 문단·구분선 다음에 목록이 이어질 때만 사이 간격 */
.infobox_body p + .infobox_list,
.infobox_divider + .infobox_list {margin-top:1.2rem;}
.infobox_list li {position:relative; padding-left:2.4rem; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}
/* 1뎁스 마커 — 대시(-) */
.infobox_list > li::before {content:""; position:absolute; top:12px; left:.8rem; width:.6rem; height:0; border-top:1px solid var(--color-text-body);}
/* 하위 뎁스 마커 — 점(·) */
.infobox_list ul {display:flex; flex-direction:column; gap:.8rem; margin:.8rem 0 0; padding:0; list-style:none;}
.infobox_list ul > li::before {content:""; position:absolute; top:.9rem; left:.8rem; width:.6rem; height:.6rem; border-radius:100%; background:var(--color-text-body);}
/* infobox 목록 변형 */
.infobox.type_list {flex-direction:row; align-items:flex-start; gap:.8rem; padding:2.4rem;}
.infobox.type_list .text_list {flex:1 1 0; min-width:0;}
.infobox.type_list .infobox_text {flex:1 1 0; min-width:0; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}
/* infobox 참고/유의 변형 */
.infobox.type_note {padding:2.4rem; border-radius:var(--radius-2xl);}
/* infobox 본문 전용 변형 — 아이콘·제목 없이 본문만, 테두리 없는 회색 박스 (약관·정책 안내문) */
.infobox.type_plain {border:0; border-radius:var(--radius-xl);}
.infobox.type_plain .infobox_body {padding-left:0;}
.infobox.type_plain .infobox_body p {color:var(--color-text-title);}
/* infobox 도입부 변형 — 원형 아이콘 + 안내문 한 덩어리, 정책 페이지 상단 배너 */
.infobox.type_lead {flex-direction:row; align-items:center; gap:2.4rem; padding:2.8rem; border:0; border-radius:var(--radius-3xl); background:var(--color-secondary-subtler);}
.infobox.type_lead .infobox_ico {width:5.6rem; height:5.6rem; border-radius:50%; background:var(--color-white) url(../images/icon/ico_copyright.svg) no-repeat center / 3.2rem;}
.infobox.type_lead .infobox_text {flex:1 1 0; min-width:0; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-title);}

/* =========================================================
   범용 텍스트 목록 (콘텐츠 본문 — 마커 7종)
========================================================= */
@counter-style text-list-circle {system:fixed; symbols:"\2460" "\2461" "\2462" "\2463" "\2464" "\2465" "\2466" "\2467" "\2468" "\2469";}
.text_list {display:flex; flex-direction:column; gap:1.2rem; margin:0; padding:0;}
.text_list li {position:relative; padding-left:2.8rem; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}
/* 기본 마커 — 대시(-). 클래스 없이 쓴다 */
.text_list li::before {content:""; position:absolute; top:12px; left:.8rem; width:.6rem; height:0; border-top:1px solid var(--color-text-body); color:var(--color-text-body);}
/* 점 (·) — 하위 뎁스 등 점이 필요할 때만 지정 */
.text_list.type_dot li::before {top:1.1rem; left:.8rem; width:.4rem; height:.4rem; border-top:0; border-radius:50%; background:var(--color-text-body);}
/* 참고표 (※) */
.text_list.type_ref li::before {content:"\203B"; top:0; left:0; width:auto; height:auto; border-top:0; border-radius:0; background:none;}
/* 별표 (*) */
.text_list.type_star li {font-size:var(--fs-base);}
.text_list.type_star li::before {content:"\2217"; top:1px; left:6px; width:auto; height:auto; border-top:0; border-radius:0; background:none;}
/* 순서 목록 */
ol.text_list {counter-reset:text-list-num;}
ol.text_list > li {padding-left:2.8rem; counter-increment:text-list-num;}
ol.text_list > li::before {content:counter(text-list-num) "."; top:0; left:0; width:auto; height:auto; border-top:0; border-radius:0; background:none;}
/* 이어지는 순서 목록 — 표·본문으로 끊긴 뒤 번호를 이어서 매긴다 */
ol.text_list.type_continue {counter-reset:none;}
/* 순서 목록 */
ol.text_list.type_alpha > li {font-size:var(--fs-base);}
ol.text_list.type_alpha > li::before {content:counter(text-list-num, lower-alpha) ".";}
/* 순서 목록 */
ol.text_list.type_circle > li {padding-left:2.4rem; font-size:var(--fs-xs);}
ol.text_list.type_circle > li::before {content:counter(text-list-num, text-list-circle);}
/* 중첩 목록 */
.text_list .text_list {gap:.8rem; margin-top:1.2rem; padding-left:.4rem;} /* 하위 마커를 상위 항목 첫 글자 라인에 맞춤 */
.text_list .text_list li {padding-left:2.4rem;}
.text_list .text_list li::before {left:0;}
/* li 단위 마커 — 점 목록 안에서 이 항목만 대시로 되돌릴 때 */
.text_list li.mk_dash::before {content:""; top:12px; left:7px; width:.6rem; height:0; border-radius:0; background:none; border-top:1px solid var(--color-text-body);}
.text_list li.mk_ref::before {content:"\203B"; top:0; left:0; width:auto; height:auto; border-radius:0; background:none; border-top:0;}
/* 제출 서류·부가정보 목록 */
#documents .subsection > .text_list > li,
#extra .subsection > .text_list > li {color:var(--color-text-title);}

/* 텍스트 강조 색상 (primary) */
.c_primary {color:var(--color-primary);}

/* =========================================================
   자격신청 진행 단계 (step indicator)
========================================================= */
.apply_no {margin-bottom:4rem; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-title); text-align:right;}
.apply_no strong {font-weight:600;}
/* 카드 머리 */
.card_head {display:flex; align-items:flex-start; gap:2.4rem; margin-bottom:4rem;}
.card_title {flex:1 1 0; min-width:0; font-size:var(--fs-body1); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.card_date {flex-shrink:0; margin-left:auto; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}
.step_list {display:flex; width:100%;}
.step_item {position:relative; flex:1 1 0; display:flex; flex-direction:column; align-items:center; gap:1.2rem;}
.step_item:not(:last-child)::after {content:""; position:absolute; left:50%; top:9px; z-index:0; width:100%; height:2px; background:var(--color-gray-light);}
.step_item.is_done::after {background:var(--color-element-gray);}
/* 단계 마커 */
.step_mark {position:relative; z-index:1; flex-shrink:0; width:2rem; height:2rem; border-radius:50%; border:1px solid var(--color-gray-light); background:var(--color-gray-subtle);}
.step_item.is_done .step_mark {border-color:var(--color-element-gray); background:var(--color-element-gray);}
.step_item.is_done .step_mark::before {content:""; position:absolute; left:50%; top:45%; width:.5rem; height:.9rem; border:solid var(--color-white); border-width:0 2px 2px 0; transform:translate(-50%,-50%) rotate(45deg);}
.step_item.is_current .step_mark {border-color:var(--color-primary); background:var(--color-primary);}
.step_item.is_current .step_mark::before {content:""; position:absolute; left:50%; top:50%; width:1.4rem; height:1.4rem; border-radius:50%; border:1.6px solid var(--color-white); background:var(--color-primary); transform:translate(-50%,-50%);}
.step_label {display:flex; flex-direction:column; align-items:center; gap:.2rem;}
.step_no {font-size:var(--fs-base); line-height:var(--lh-base); color:var(--color-text-caption); font-style:normal;}
.step_name {font-size:var(--fs-lg); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title); white-space:nowrap;}

/* =========================================================
   상태 배지 (badge) — 구분(채움 fill) / 처리상태(연한 soft)
========================================================= */
.badge {display:inline-flex; align-items:center; justify-content:center; height:3.2rem; padding:0 .8rem; border-radius:var(--radius-sm); font-size:var(--fs-lg); font-weight:400; line-height:var(--lh-base); white-space:nowrap;}
.badge.line_blue {border: 1px solid var(--color-primary); color: var(--color-primary);}
.badge.line_navy {border:1px solid var(--color-secondary); color:var(--color-secondary-dark);}
.badge.line_gray {border:1px solid var(--color-gray-dark); color:var(--color-text-body);}
.badge.line_coral {border:1px solid var(--color-point); color:#ab2b36;}
.badge.line_red {border:1px solid #de3412; color:var(--color-msg-error);}
.badge.line_yellow {border:1px solid #9e6a00; color:var(--color-msg-warning);}
.badge.line_green {border:1px solid var(--color-success); color:var(--color-msg-success);}
.badge.line_cyan {border:1px solid #0b78cb; color:var(--color-msg-info);}

.badge.fill_blue {background:var(--color-primary); color:var(--color-white);}
.badge.fill_navy {background: var(--color-secondary); color: var(--color-white);}
.badge.fill_gray {background: var(--color-element-gray); color: var(--color-white);}
.badge.fill_coral {background: var(--color-point); color: var(--color-white);}
.badge.fill_red {background: #de3412; color: var(--color-white);}
.badge.fill_yellow {background: #ffb114; color: var(--color-text-title);}
.badge.fill_green {background:var(--color-success); color:var(--color-white);}
.badge.fill_cyan {background: #0b78cb; color: var(--color-white);}

.badge.soft_blue {background:var(--color-primary-light); color:var(--color-primary-dark);}
.badge.soft_navy {background: var(--color-secondary-subtler); color: var(--color-secondary-dark);}
.badge.soft_gray {background:var(--color-gray-subtle); color:var(--color-text-body);}
.badge.soft_coral {background:#fbeff0; color:#ab2b36;}
.badge.soft_red {background:#fdefec; color:var(--color-msg-error);}
.badge.soft_yellow {background:#fff3db; color:var(--color-msg-warning);}
.badge.soft_green {background:var(--color-success-light); color:var(--color-msg-success);}
.badge.soft_cyan {background:#e7f4fe; color:var(--color-msg-info);}
.badge.size_sm {height:2.4rem; font-size:var(--fs-base);}
.badge.soft_gray.size_sm {background:var(--color-gray-subtler);}

/* =========================================================
   데이터 표 (data_table) + 더보기
========================================================= */
.table_wrap {width:100%; overflow-x:auto;}
.data_table {width:100%;}
/* 열 너비를 균등 고정하는 변형 */
.data_table.type_fixed {table-layout:fixed;}
.data_table.type_fixed th,
.data_table.type_fixed td {word-wrap:break-word; overflow-wrap:break-word;}
.data_table th,
.data_table td {padding:1.6rem 1.2rem; border:1px solid var(--color-gray-light); font-size:var(--fs-base); line-height:var(--lh-base); text-align:center; vertical-align:middle;}
.data_table thead th {border-right:0; border-bottom:0; border-left:0; border-top-color:var(--color-text-title); background:var(--color-gray-subtler); font-weight:700; color:var(--color-text-title);}
.data_table tbody td {color:var(--color-text-body);}
.data_table th:first-child,
.data_table td:first-child {border-left:0;}
.data_table th:last-child,
.data_table td:last-child {border-right:0;}
.data_table td.align_left {text-align:left;}
/* 게시판 목록 */
.board_subject {display:flex; align-items:center; gap:1.2rem;}
.board_subject .badge {flex-shrink:0;}
.board_link {flex:1 1 0; min-width:0; overflow:hidden; color:var(--color-text-body); text-overflow:ellipsis; white-space:nowrap;}
.board_link:hover,
.board_link:focus {text-decoration:underline;}
.board_subject.is_notice .board_link {font-weight:700;}
.board_file_ico {display:inline-block; width:2rem; height:2rem; background:url(../images/icon/ico_attach.svg) no-repeat 50% / 2rem;}
.board_empty {padding:6rem 0; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body); text-align:center;}
/* 표 빈 상태(아이콘 + 안내) */
.data_table td.is_empty {padding:2.4rem 1.6rem;}
.data_empty {display:flex; flex-direction:column; align-items:center; gap:.8rem;}
.data_empty_ico {width:3.2rem; height:3.2rem; background:url(../images/icon/ico_empty.svg) no-repeat 50% / contain;}
.data_empty p {font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}

/* 게시판 상세 보기 */
.board_view {display:flex; flex-direction:column; gap:4rem;}
.board_view_head {padding:2.4rem 0; border-top:1px solid var(--color-text-title); border-bottom:1px solid var(--color-gray-light);}
.board_view_title {display:flex; align-items:center; gap:1.6rem;}
.board_view_title .badge {flex-shrink:0;}
.board_view_subject {font-size:var(--fs-h2); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.board_view_meta {display:flex; flex-wrap:wrap; align-items:center; margin-top:1.6rem;}
.board_view_meta_item {position:relative; display:flex; align-items:center; gap:1.2rem; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-title);}
.board_view_meta_item + .board_view_meta_item {margin-left:1.6rem; padding-left:1.6rem;}
.board_view_meta_item + .board_view_meta_item::before {content:""; position:absolute; left:0; top:50%; width:1px; height:1.6rem; margin-top:-.8rem; background:var(--color-gray);}
.board_view_meta_label {font-weight:600;}
/* 본문 */
.board_view_body {font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body); word-break:break-all;}
.board_view_body p {margin:0;}
.board_view_body p + p {margin-top:2.4rem;}
/* 본문 이미지 + 출처 캡션 */
.board_view_img {max-width:480px; margin:0;}
.board_view_img img {display:block; width:100%; height:auto;}
.board_view_credit {color:var(--color-text-caption);}
/* 첨부파일 (doc_filelist · doc_file.type_plain · doc_download 재사용) */
.board_view_files {display:flex; flex-direction:column; gap:1.6rem;}
.board_view_files_title {font-size:var(--fs-19); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.board_view_files_count {color:var(--color-primary);}
/* 이전글/다음글 네비게이션 표 */
.board_nav {width:100%; border-collapse:collapse; border-top:1px solid var(--color-text-title);}
.board_nav_col_th {width:180px;}
.board_nav th {padding:1.6rem; border-bottom:1px solid var(--color-gray-light); background:var(--color-gray-subtler); font-size:var(--fs-lg); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title); text-align:left; vertical-align:middle; white-space:nowrap;}
.board_nav td {padding:1.6rem; border-bottom:1px solid var(--color-border); font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body); text-align:left; vertical-align:middle;}
.board_nav_link {display:flex; align-items:center; gap:1.2rem; color:var(--color-text-body);}
/* .type_stack */
.board_nav_link:hover,
.board_nav_link:focus {text-decoration:underline;}
.board_nav td .badge {flex-shrink:0;}

.list_foot {display:flex; justify-content:flex-end; margin-top:2.4rem;}

/* =========================================================
   탭 (tab) — 콘텐츠 전환
========================================================= */
.tab {display:flex;}
.tab_item {flex:1 1 0; min-width:8rem; height:5.6rem; padding:0 .8rem; border:0; border-bottom:2px solid var(--color-gray); background:transparent; font-size:var(--fs-h4); font-weight:700; line-height:var(--lh-base); color:var(--color-text-body); text-align:center; cursor:pointer;}
.tab_item.is_active {border-bottom:4px solid var(--color-secondary); color:var(--color-secondary-dark);}
.section + .tab {margin-top:8rem;}
.tab_panel {display:none;}
.tab_panel.is_active {display:block; margin-top:4rem;}

/* 분류 필터 */
.cate_filter {display:flex; flex-wrap:wrap; gap:.8rem;}
.cate_btn {height:4.4rem; padding:0 1.6rem; border:0; border-radius:var(--radius-md); background:transparent; font-size:var(--fs-lg); font-weight:700; line-height:var(--lh-base); color:var(--color-text-body); cursor:pointer;}
.cate_btn:hover,
.cate_btn:focus-visible {background:var(--color-primary-subtler);}
.cate_btn.is_active {background:var(--color-secondary); color:var(--color-white);}
.cate_btn.is_active:hover,
.cate_btn.is_active:focus-visible {background:var(--color-secondary);}
.tab_panel_wrap > .cate_filter {margin-top:3.2rem;}

/* =========================================================
   정보 표시 박스 (회색 박스: 라벨 + 값)
========================================================= */
.detail_box {padding:4rem; border-radius:var(--radius-3xl); background:var(--color-gray-subtler);}
.detail_list {display:flex; flex-direction:column; gap:1.6rem; margin:0;}
.detail_row {display:flex; gap:4rem;}
.detail_item {flex:1 1 0; min-width:0; display:flex; align-items:center; gap:1.6rem; min-height:2.6rem; margin:0;}
.detail_label {flex-shrink:0; width:100px; font-size:var(--fs-lg); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.detail_value {flex:1 1 0; min-width:0; margin:0; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}
.detail_value .text_list {gap:.4rem;}
.detail_value .text_list.type_circle > li {font-size:var(--fs-lg);}

/* =========================================================
   구비서류 첨부 (파일 리스트) + 신청인 서명
========================================================= */
.doc_attach {display:flex; flex-direction:column; gap:4rem;}
.doc_group {display:flex; flex-direction:column; gap:2rem;}
.doc_title {font-size:var(--fs-lg); font-weight:700; line-height:var(--lh-base); color:var(--color-text-strong);}
.doc_filelist {display:flex; flex-direction:column; gap:1.6rem; margin:0; padding:0; list-style:none;}
.doc_file {display:flex; align-items:center; gap:1.6rem; padding:1.6rem; border:1px solid var(--color-gray-light); border-radius:var(--radius-lg); background:var(--color-white);}
.doc_filename {flex:1 1 0; min-width:0; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-strong); word-break:break-all;}
.doc_download,
.doc_preview {flex-shrink:0; display:inline-flex; align-items:center; gap:.4rem; height:3.2rem; padding:0 .2rem; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-title); text-decoration:none;}
.doc_download .ico_download {flex-shrink:0; width:2rem; height:2rem; background:url(../images/icon/ico_download.svg) no-repeat center / contain;}
.doc_download .ico_delete {flex-shrink:0; width:2rem; height:2rem; background:url(../images/icon/ico_delete.svg) no-repeat center / contain;}
.doc_preview .ico_arrow_right {flex-shrink:0; width:2rem; height:2rem; background:url(../images/icon/ico_arrow_right.svg) no-repeat center / contain;}
.doc_file.type_plain {background:var(--color-white);}
.signer {display:flex; align-items:center; justify-content:flex-end; gap:1.6rem;}
.signer_label {font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-strong);}
.signer_box {display:flex; align-items:center; width:201px; height:4.8rem; padding:0 1.6rem; border:1px solid var(--color-input-border); border-radius:var(--radius-md); background:var(--color-gray-subtler); font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-caption);}
.signer_sign {width:160px; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-strong); text-align:right;}

/* 빈 상태 박스 (탭 내역 없음 등) */
.empty_box {display:flex; align-items:center; justify-content:center; min-height:12rem; padding:4rem; border:1px solid var(--color-gray-light); border-radius:var(--radius-xl); background:var(--color-white); font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}

/* =========================================================
   여러 줄 입력 (textarea) + 글자수 카운터
========================================================= */
.form_area {display:flex; flex-direction:column; gap:.8rem;}
.form_area .field_label {font-size:var(--fs-base); font-weight:700; line-height:var(--lh-base); color:var(--color-text-strong);}
.field_textarea {width:100%; height:14.4rem; padding:.8rem 1.6rem; border:1px solid var(--color-input-border); border-radius:var(--radius-md); background:var(--color-white); font-family:inherit; font-size:var(--fs-19); line-height:var(--lh-base); color:var(--color-text-body); resize:none; outline:none;}
.field_textarea::placeholder {color:var(--color-input-placeholder);}
.field_textarea:focus,
.field_textarea.is_focus {border-width:2px; border-color:var(--color-input-border-active);}
.field_textarea.is_error {border-width:2px; border-color:var(--color-point);}
.field_textarea.is_disabled {background:var(--color-input-surface-disabled); border-color:var(--color-input-border-disabled); color:var(--color-input-text-disabled);}
.field_counter {display:flex; justify-content:flex-end; gap:.2rem; font-size:var(--fs-base); line-height:var(--lh-base); color:var(--color-text-body);}
.field_counter .count_now {color:var(--color-primary);}
.field_counter.is_error .count_now {color:var(--color-msg-error);}

/* 팝업 폼 블록 (제목 + 입력 묶음) / 안내 묶음 */
.form_block {display:flex; flex-direction:column; gap:1.6rem;}
.form_block_head {display:flex; align-items:center; gap:1.6rem;}
.form_block_title {flex:1 1 auto; min-width:0; font-size:var(--fs-h4); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.appeal_head {display:flex; flex-direction:column; gap:1.6rem;}
.appeal_no {font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body); text-align:right;}

/* =========================================================
   셀렉트박스 (field_box + <select> + 화살표)
========================================================= */
.field_box:has(> select) {padding:0;}
.field_box > select {flex:1 1 0; min-width:0; height:100%; padding:0 4rem 0 1.6rem; border:0; background:none; font-family:inherit; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-title); outline:none; appearance:none; -webkit-appearance:none; cursor:pointer;}
.field_box.size_lg > select {font-size:var(--fs-19);}
.field_box > select::-ms-expand {display:none;}
/* 선택 전(placeholder) — 빈 값 option이 선택돼 있는 동안만 회색 */
.field_box > select:has(> option[value=""]:checked) {color:var(--color-input-placeholder);}
.field_box > select option {min-height:3.2rem; padding:.8rem 1.2rem; background:var(--color-white); font-size:var(--fs-md); color:var(--color-text-title);}
.field_arrow {position:absolute; right:16px; top:50%; width:2rem; height:2rem; margin-top:-1rem; pointer-events:none;}
.field_arrow::before {content:""; position:absolute; left:0; top:0; width:2rem; height:2rem; background:url(../images/icon/ico_select_arrow.svg) no-repeat 50%;}

/* =========================================================
   검색 필터 박스 + 목록 도구막대 + 페이지네이션 + 목록 하단
========================================================= */
/* 검색 필터 박스(표준) */
.search_box {display:flex; flex-direction:column; gap:1.6rem; padding:4rem; border-radius:var(--radius-3xl); background:var(--color-primary-subtler);}
.search_row {display:flex; align-items:center; gap:1.6rem;}
.search_row .form_field {flex-shrink:0;}
.search_row .form_field.is_flex,
.search_row .search_keyword {flex:1 1 0; min-width:0;}
/* 검색 버튼 base(주소찾기 등 .addr_search_row 공용 56) */
.search_btn {flex-shrink:0; display:inline-flex; align-items:center; justify-content:center; min-width:9rem; height:5.6rem; padding:0 2rem; border-radius:var(--radius-lg); font-size:var(--fs-19); line-height:var(--lh-base);}
.search_box .search_btn {min-width:7.8rem; height:4.8rem; padding:0 1.6rem; border-radius:var(--radius-md); font-size:var(--fs-lg);}
.field_w140 {width:140px;}
.field_w180 {width:180px;}
.field_w200 {width:200px;}
.field_w260 {width:260px;}
/* 분류 탭 아래 공통 검색 필터(패널 밖, 탭 공유) 상단 간격 */
.tab_panel_wrap > .search_box {margin-top:4rem;}

.list_tools {display:flex; align-items:center; gap:1.2rem; margin-bottom:1.6rem;}
.list_total {flex:1 1 auto; min-width:0; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-title);}
.list_total strong {margin-left:.8rem; font-weight:700;}
.list_total:has(+ .list_note) {flex:0 0 auto;} /* 안내 문구가 남은 폭을 차지 */
.list_note {flex:1 1 auto; min-width:0; margin-left:.8rem; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-msg-info);} /* 목록 도구막대 안내 문구 */
.list_note_mark {margin-right:.4rem;}
.list_tools .form_field {flex-shrink:0;}

.pagination {display:flex; align-items:center; justify-content:center; gap:.8rem;}
.page_btn,
.page_num {display:inline-flex; align-items:center; justify-content:center; width:3.6rem; height:3.6rem; border-radius:var(--radius-lg); font-size:var(--fs-base); line-height:1; color:var(--color-text-body); text-decoration:none;}
.page_btn:hover,
.page_num:not(.is_active):hover {background-color:var(--color-secondary-subtler);}
.page_btn:active,
.page_num:not(.is_active):active {background-color:var(--color-secondary-light);}
.page_num.is_active {background-color:var(--color-primary); color:var(--color-white);}
.page_btn.is_disabled {pointer-events:none;}
/* 페이지 이동 화살표 아이콘 */
.page_btn {background-repeat:no-repeat; background-position:center; background-size:1.6rem 1.6rem;}
.page_first {background-image:url(../images/icon/ico_page_first.svg);}
.page_prev {background-image:url(../images/icon/ico_page_prev.svg);}
.page_next {background-image:url(../images/icon/ico_page_next.svg);}
.page_last {background-image:url(../images/icon/ico_page_last.svg);}
.page_first.is_disabled {background-image:url(../images/icon/ico_page_first_off.svg);}
.page_prev.is_disabled {background-image:url(../images/icon/ico_page_prev_off.svg);}
.page_next.is_disabled {background-image:url(../images/icon/ico_page_next_off.svg);}
.page_last.is_disabled {background-image:url(../images/icon/ico_page_last_off.svg);}
.page_ellipsis {display:inline-flex; align-items:center; justify-content:center; width:3.6rem; height:3.6rem; color:var(--color-text-caption);}
.table_wrap + .pagination {margin-top:2.4rem;}

/* =========================================================
   FAQ 아코디언
========================================================= */
.faq_list {border-bottom:1px solid var(--color-gray-light);}
.faq_item {border-top:1px solid var(--color-gray-light);}
.faq_head {margin:0;}
.faq_q {display:flex; align-items:center; gap:2.8rem; width:100%; padding:2rem 2.4rem; border:0; background:transparent; text-align:left; cursor:pointer;}
.faq_q_text {flex:1 1 0; min-width:0; font-size:var(--fs-h4); font-weight:700; line-height:var(--lh-base); color:var(--color-secondary);}
.faq_q_mark {margin-right:.8rem; color:var(--color-primary);}
.faq_q_arrow {position:relative; flex-shrink:0; width:2.4rem; height:2.4rem;}
.faq_q_arrow::before {content:""; position:absolute; left:7px; top:8px; width:.9rem; height:.9rem; border-right:2px solid var(--color-text-title); border-bottom:2px solid var(--color-text-title); transform:rotate(45deg);}
.faq_q.is_open .faq_q_arrow::before {top:11px; transform:rotate(-135deg);}
.faq_a {display:flex; gap:1.6rem; margin:0 2.4rem 2rem; padding:2rem; border-radius:var(--radius-lg); background:var(--color-gray-subtler);}
.faq_a[hidden] {display:none;}
.faq_a_mark {flex-shrink:0; font-size:var(--fs-lg); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.faq_a_text {flex:1 1 0; min-width:0; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}
.faq_a_text p {margin:0;}
.faq_empty {padding:4rem 0; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body); text-align:center;}

/* FAQ 추가 안내 박스 (찾는 내용 없을 때 1:1 문의 유도) */
.tab_panel_wrap + .faq_help {margin-top:4rem;}
.faq_help {display:flex; flex-direction:column; gap:.8rem; padding:1.6rem 2.4rem; border-radius:var(--radius-xl); background:var(--color-info-subtler);}
.faq_help_title {font-size:var(--fs-base); font-weight:600; line-height:var(--lh-base); color:var(--color-text-title);}
.faq_help_link {display:inline-flex; align-items:center; gap:.6rem; align-self:flex-start; font-size:var(--fs-base); line-height:var(--lh-base); color:var(--color-primary);}
.faq_help_link::after {content:""; width:.7rem; height:.7rem; border-top:1.5px solid var(--color-primary); border-right:1.5px solid var(--color-primary); transform:rotate(45deg);}

.board_foot {display:flex; align-items:center; gap:1.6rem; padding-top:4rem;}
.board_foot .pagination {flex:1 1 0;}
.board_foot .btn_register {flex-shrink:0; display:inline-flex; align-items:center; justify-content:center; min-width:9.8rem; height:6.4rem; padding:0 2.4rem; border-radius:var(--radius-lg); font-size:var(--fs-19); line-height:var(--lh-base);}

/* 세로형 정보 표 (라벨 th + 값 td · 키-값 표) */
.info_table {width:100%; border-collapse:collapse; table-layout:fixed;}
.info_table th,
.info_table td {padding:1.6rem; border-top:1px solid var(--color-text-title); border-bottom:1px solid var(--color-gray-light); font-size:var(--fs-lg); line-height:var(--lh-base); vertical-align:top;}
.info_table th {width:180px; background:var(--color-gray-subtler); font-weight:700; color:var(--color-text-title); text-align:left;}
.info_table td {color:var(--color-text-body); text-align:left; word-break:break-all;}
.info_table tr {height:16rem;}

/* 섹션 머리 우측 보조 텍스트 (접수 번호·답변일시 등) */
.section_meta {flex-shrink:0; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}

/* =========================================================
   카드 / 폼 — textinput 컴포넌트
========================================================= */
.card {padding:4rem; border:1px solid var(--color-gray-light); border-radius:var(--radius-3xl); background:var(--color-white);}
.form_group {display:flex; flex-direction:column; gap:1.6rem;}
.form_label {font-size:var(--fs-lg); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.form_field {display:flex; flex-direction:column; gap:.8rem;}

/* 입력 박스 */
.field_box {position:relative; display:flex; align-items:center; gap:.8rem; height:4.8rem; padding:0 1.6rem; border:1px solid var(--color-input-border); border-radius:var(--radius-md); background:var(--color-white);}
.field_box.size_lg {height:5.6rem; border-radius:var(--radius-lg);}
.field_box.size_sm {height:4rem;}
.field_input {flex:1 1 0; min-width:0; height:100%; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-title);}
.field_box.size_lg .field_input {font-size:var(--fs-19);}
.field_box.size_sm .field_input {font-size:var(--fs-base);}
.field_input::placeholder {color:var(--color-input-placeholder);}

/* 입력 박스 */
.field_box:focus-within,
.field_box.is_focus {outline:2px solid var(--color-input-border-active); outline-offset:0;}
.field_box .field_input:focus-visible {outline:none;}
.field_box.is_complete {border-color:var(--color-input-border);}
.field_box.is_error {border-width:2px; border-color:var(--color-input-border-error);}
.field_box.is_disabled {border-color:var(--color-input-border-disabled); background:var(--color-input-surface-disabled);}
.field_box.is_disabled .field_input {color:var(--color-input-text-disabled);}
.field_box.is_view {border-color:var(--color-input-border-disabled); background:var(--color-input-surface-disabled);}
.field_box.is_view .field_input {color:var(--color-text-title);}

/* 입력 박스 */
.field_toggle {flex-shrink:0; width:2rem; height:2rem; background:url(../images/icon/ico_visibility_off.svg) no-repeat center / 2rem;}
.field_toggle.is_visible {background-image:url(../images/icon/ico_visibility.svg);}
.field_clear {flex-shrink:0; width:2rem; height:2rem; background:url(../images/icon/ico_input_delete.png) no-repeat center / contain;}
.field_input:placeholder-shown ~ .field_clear,
.field_input[readonly] ~ .field_clear,
.field_input:disabled ~ .field_clear {display:none;}
.field_box.size_lg .field_toggle {width:2.4rem; height:2.4rem; background-size:2.4rem;}
.field_box.size_lg .field_clear {width:2.4rem; height:2.4rem;}
.field_box.size_sm .field_toggle {width:1.6rem; height:1.6rem; background-size:1.6rem;}
.field_box.size_sm .field_clear {width:1.6rem; height:1.6rem;}
/* 날짜 입력 */
.field_calendar {flex-shrink:0; width:2.4rem; height:2.4rem; background:url(../images/icon/ico_calendar.svg) no-repeat center / contain; cursor:pointer;}
.field_box.is_disabled .field_calendar,
.field_calendar:disabled {cursor:default;} /* 달력이 열리지 않는 상태 — 클릭 가능 신호 제거 */

/* =========================================================
   데이트피커 (cert-admin 자체 구현 달력 이식 — .field_box 날짜 필드에 적용)
========================================================= */
.datepicker {position:absolute; z-index:1100; display:none; width:28rem; padding:1.6rem; border:1px solid var(--color-border); border-radius:var(--radius-lg); background:var(--color-white); box-shadow:0 .4rem 1.6rem rgba(0,0,0,.12);}
.dp_head {display:flex; align-items:center; justify-content:space-between; margin-bottom:1.2rem;}
.dp_title {font-size:var(--fs-base); font-weight:700; color:var(--color-text-title);}
.dp_nav {position:relative; width:2.8rem; height:2.8rem; border-radius:var(--radius-md);}
.dp_nav:hover {background:var(--color-bg);}
.dp_nav::before {content:""; position:absolute; top:50%; left:50%; width:.7rem; height:.7rem; border-left:1.5px solid var(--color-text-caption); border-bottom:1.5px solid var(--color-text-caption);}
.dp_prev::before {transform:translate(-30%,-50%) rotate(45deg);}
.dp_next::before {transform:translate(-70%,-50%) rotate(-135deg);}
.dp_grid {display:grid; grid-template-columns:repeat(7, 1fr); gap:.2rem;}
.dp_dow {display:flex; align-items:center; justify-content:center; height:3.2rem; font-size:var(--fs-sm); color:var(--color-text-caption);}
.dp_day {display:flex; align-items:center; justify-content:center; height:3.4rem; border-radius:var(--radius-md); font-size:var(--fs-sm); color:var(--color-text-title);}
.dp_day:hover {background:var(--color-primary-light);}
.dp_empty {visibility:hidden;}
.dp_sun {color:var(--color-red);}
.dp_sat {color:var(--color-primary);}
.dp_day.is_today {font-weight:700; box-shadow:inset 0 0 0 1px var(--color-border);}
.dp_day.is_selected {background:var(--color-primary); color:var(--color-white);}
.dp_day.is_selected:focus-visible {outline-color:var(--color-text-title);} /* 선택된 날짜는 배경이 기본 초점색과 같아 초점 위치가 묻힘 — 어두운 색으로 구분 */
.dp_foot {display:flex; align-items:center; justify-content:space-between; gap:.8rem; margin-top:1.2rem; padding-top:1.2rem; border-top:1px solid var(--color-border);}
.dp_help {font-size:var(--fs-sm); line-height:var(--lh-base); color:var(--color-text-caption);}
.dp_close {flex-shrink:0; height:2.8rem; padding:0 1.2rem; border:1px solid var(--color-border); border-radius:var(--radius-md); font-size:var(--fs-sm); color:var(--color-text-title);}
.dp_close:hover {background:var(--color-bg);}

/* 입력 메시지 */
.field_msg {display:flex; align-items:flex-start; gap:.4rem; font-size:var(--fs-xs); line-height:var(--lh-base); color:var(--color-text-caption);}
.form_field > .field_msg {margin-top:.8rem;}
.field_msg[hidden] {display:none;}
.field_msg.type_hint {color:var(--color-msg-hint);}
.field_msg.type_info {color:var(--color-msg-info);}
.field_msg.type_success {color:var(--color-msg-success);}
.field_msg.type_error {color:var(--color-msg-error);}
.field_msg_mark {flex-shrink:0;}
.field_msg_ico {flex-shrink:0; width:1.6rem; height:1.6rem; margin-top:.2rem; background:no-repeat center / contain;}
.field_msg.type_info .field_msg_ico {background-image:url(../images/icon/ico_system_info.svg);}
.field_msg.type_success .field_msg_ico {background-image:url(../images/icon/ico_system_success.svg);}
.field_msg.type_error .field_msg_ico {background-image:url(../images/icon/ico_system_error.svg);}

/* =========================================================
   내정보 상세 — 정보 표시 폼 (읽기 전용 값 + 변경 액션)
========================================================= */
.info_notice {display:flex; align-items:flex-start; gap:.4rem; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}
.notice_group {display:flex; flex-direction:column; gap:1.6rem;}
.info_notice_mark {flex-shrink:0; color:var(--color-text-caption);}
.info_list {display:flex; flex-direction:column; gap:4rem;}
.info_row {display:flex; align-items:flex-start; gap:6.4rem;}
.info_col {display:flex; flex-direction:column; flex:1 1 0; min-width:0; gap:1.6rem;}
.info_col.is_half {flex:0 1 calc((100% - 6.4rem) / 2);}
.info_label {font-size:var(--fs-lg); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.info_field {display:flex; flex-direction:column; gap:.8rem;}
.info_control {display:flex; gap:.8rem;}
.info_control .btn_act {height:5.6rem;}
.info_value {flex-shrink:0; width:100%; height:5.6rem; padding:0 1.6rem; border:1px solid var(--color-input-border); border-radius:var(--radius-md); background:var(--color-white); font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}
.info_value[readonly],
.info_value:disabled {border-color:var(--color-input-border-disabled); background:var(--color-input-surface-disabled);}
.info_control .info_value {flex:1 1 0; width:auto; min-width:0;}
.info_control .info_value.is_fixed {flex:0 0 120px;}
.info_addr .info_addr_road {order:1;}
.info_addr .info_addr_detail {order:2;}
.info_addr .info_addr_btn {order:3;}
.info_msg {font-size:var(--fs-xs); line-height:var(--lh-base); color:var(--color-text-caption);}

/* 섹션 헤더 */
.section-header.type_tile {display:flex; align-items:center; justify-content:space-between; gap:2.4rem; margin-bottom:2.4rem;}
.section-header.type_tile .section_title,
.section-header.type_tile .section_receipt {flex:1 1 auto; min-width:0; margin-bottom:0;}
.section-header.type_tile .section_receipt {text-align:right;}
.section-header.type_tile .btn_act {flex-shrink:0;}

/* =========================================================
   버튼 — 인라인 액션(변경·출력·보기 등) + 색상 타입
========================================================= */
.btn_act {flex-shrink:0; display:inline-flex; align-items:center; justify-content:center; min-width:7.8rem; height:4.8rem; padding:0 1.6rem; border-radius:var(--radius-md); font-size:var(--fs-lg); line-height:var(--lh-base); transition:background .2s, border-color .2s;}
.btn_act.size_sm {min-width:6.4rem; height:4rem; padding:0 1.2rem; font-size:var(--fs-base);}
.btn_secondary {border:1px solid var(--color-primary); background:var(--color-primary-light); color:var(--color-primary-dark);}
.btn_secondary:hover,
.btn_secondary:focus {background:var(--color-primary-pale);}
.btn_secondary:active {background:var(--color-primary-deeppale);}
.btn_tertiary {border:1px solid var(--color-gray-dark); background:var(--color-white); color:var(--color-text-title);}
.btn_tertiary:hover,
.btn_tertiary:focus {background:var(--color-bg);}
.btn_tertiary:active {background:var(--color-bg-subtle);}
.btn_act:disabled {border-color:transparent; background:var(--color-disabled); color:var(--color-text-title); cursor:not-allowed;}

/* =========================================================
   하단 버튼 영역
========================================================= */
.btn_area {display:flex; justify-content:center; gap:1.6rem; padding-top:4rem;}
.btn_area button {display:inline-flex; align-items:center; justify-content:center; min-width:9.8rem; height:6.4rem; padding:0 2.4rem; border-radius:var(--radius-lg); font-size:var(--fs-19); line-height:var(--lh-base); transition:background .2s, border-color .2s;}
.btn_fill {background:var(--color-primary); color:var(--color-white);}
.btn_fill:hover,
.btn_fill:focus {background:var(--color-primary-dark);}
.btn_fill:active {background:var(--color-primary-deep);}
/* 비활성 상태 */
.btn_fill:disabled {background:var(--color-disabled); color:var(--color-element-gray); cursor:not-allowed;}
.btn_fill:disabled:hover,
.btn_fill:disabled:focus,
.btn_fill:disabled:active {background:var(--color-disabled);}
.btn_line {border:1px solid var(--color-gray-dark); background:var(--color-white); color:var(--color-text-title);}
.btn_line:hover,
.btn_line:focus {background:var(--color-bg);}
.btn_line:active {background:var(--color-bg-subtle);}
.btn_area.type_between {justify-content:space-between;}
.btn_area.type_end {justify-content:flex-end;}
/* btn_area stack 변형 */
.btn_area + .infobox.type_note {margin-top:6.4rem;}
.btn_group {display:flex; gap:1.6rem;}

/* =========================================================
   자격증 신청 체크리스트 (checklist — 질문 + 라디오 네/아니오)
========================================================= */
.checklist {display:flex; flex-direction:column; gap:2.4rem;}
.checklist_item {display:flex; align-items:center; gap:4rem; padding:2.4rem; border-radius:var(--radius-xl); background:var(--color-gray-subtle);}
/* '아니오' 선택 상태 */
.checklist_item.is_disagree {border:2px solid var(--color-input-border-error); background:var(--color-error-subtle);}
.checklist_question {flex:1 1 0; min-width:0; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-title);}
.checklist_answer {flex-shrink:0; display:flex; align-items:center; gap:2.4rem;}
.checklist_answer .form_radio {width:auto;}

/* 체크박스 · 라디오 */
.form_check,
.form_radio {display:inline-block; width:32rem;}
.form_check > input,
.form_radio > input {position:absolute; overflow:hidden; clip:rect(0,0,0,0); width:1px; height:1px; margin:-1px; padding:0; border:0;}
.form_check label,
.form_radio label {display:flex; align-items:flex-start; gap:.8rem; cursor:pointer;}
.form_check .opt_mark,
.form_radio .opt_mark {position:relative; flex-shrink:0; box-sizing:border-box; width:2.4rem; height:2.4rem; margin-top:.2rem; border:1px solid var(--color-input-border); background:var(--color-white);}
.form_check .opt_mark {border-radius:var(--radius-sm);}
.form_radio .opt_mark {border-radius:50%;}
.form_check .opt_text,
.form_radio .opt_text {display:flex; flex-direction:column; gap:.4rem;}
.form_check .opt_tit,
.form_radio .opt_tit {font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-strong);}
.form_check .opt_desc,
.form_radio .opt_desc {font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}

/* 체크박스 */
.form_check > input:checked + label .opt_mark,
.form_check > input:indeterminate + label .opt_mark {border-color:var(--color-primary); background:var(--color-primary);}
.form_check > input:checked + label .opt_mark::after {content:""; position:absolute; left:.8rem; top:.3rem; width:.6rem; height:1.2rem; border:solid var(--color-white); border-width:0 2px 2px 0; transform:rotate(45deg);}
.form_check > input:indeterminate + label .opt_mark::after {content:""; position:absolute; left:50%; top:50%; width:1.2rem; height:0; border-top:2px solid var(--color-white); transform:translate(-50%,-50%);}

/* 라디오 */
.form_radio > input:checked + label .opt_mark {border:1.6px solid var(--color-primary);}
.form_radio > input:checked + label .opt_mark::after {content:""; position:absolute; left:50%; top:50%; width:1.2rem; height:1.2rem; border-radius:50%; background:var(--color-primary); transform:translate(-50%,-50%);}

/* 키보드 포커스 링 (마우스 클릭에는 표시 안 함) */
.form_check > input:focus-visible + label .opt_mark,
.form_radio > input:focus-visible + label .opt_mark {outline:2px solid var(--color-input-border-active); outline-offset:2px;}

/* 비활성 (체크박스 표식 테두리는 border-disabled, 라디오는 gray-dark) */
.form_check > input:disabled + label,
.form_radio > input:disabled + label {cursor:default;}
.form_check > input:disabled + label .opt_tit,
.form_check > input:disabled + label .opt_desc,
.form_radio > input:disabled + label .opt_tit,
.form_radio > input:disabled + label .opt_desc {color:var(--color-gray-charcoal);}
.form_check > input:disabled + label .opt_mark,
.form_check > input:disabled:checked + label .opt_mark,
.form_check > input:disabled:indeterminate + label .opt_mark {border-color:var(--color-input-border-disabled); background:var(--color-gray-light);}
.form_check > input:disabled:checked + label .opt_mark::after,
.form_check > input:disabled:indeterminate + label .opt_mark::after {border-color:var(--color-gray-charcoal);}
.form_radio > input:disabled + label .opt_mark {border-color:var(--color-gray-charcoal); background:var(--color-gray-light);}
.form_radio > input:disabled:checked + label .opt_mark {border:1px solid var(--color-gray-charcoal);}
.form_radio > input:disabled:checked + label .opt_mark::after {background:var(--color-gray-charcoal);}

/* =========================================================
   레이어 팝업 / 다이얼로그
========================================================= */
.popup_layer {display:none; position:fixed; inset:0; z-index:1000; align-items:center; justify-content:center; padding:2rem; background:var(--color-dim);}
.popup_layer.is_open {display:flex;}
.popup {position:relative; display:flex; flex-direction:column; width:760px; max-width:100%; max-height:80vh; padding:4rem; border-radius:var(--radius-4xl); background:var(--color-white);}
.popup.size_sm {width:400px;}
.popup[tabindex]:focus {outline:none;}
.popup_head {display:flex; align-items:center; gap:1.6rem; margin-bottom:2.4rem;}
.popup_title {flex:1 1 auto; min-width:0; font-size:2.4rem; font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.popup_close {flex-shrink:0; width:3.2rem; height:3.2rem; background:url(../images/icon/ico_close.svg) no-repeat center / 2.2rem 2.2rem;}
.popup_body {display:flex; flex-direction:column; gap:4rem; overflow-y:auto; margin:-.4rem; padding:.4rem;}
.popup_body p {font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}
.popup_body .field_msg {font-size:var(--fs-xs);}
.popup_foot {display:flex; justify-content:center; gap:.8rem; padding-top:2.4rem;}
.popup_foot.type_end {justify-content:flex-end;}
.popup_foot button {display:inline-flex; align-items:center; justify-content:center; min-width:9rem; height:5.6rem; padding:0 2rem; border-radius:var(--radius-lg); font-size:var(--fs-19); line-height:var(--lh-base); transition:background .2s, border-color .2s;}
.popup.type_logout {width:520px;}
.popup.type_logout .popup_body {gap:1.6rem;}
.popup.type_logout .popup_foot {justify-content:flex-end; padding-top:4rem;}
.popup.type_logout .popup_foot button {min-width:7.8rem; height:4.8rem; padding:0 1.6rem; border-radius:var(--radius-md); font-size:var(--fs-lg);}
.logout_timer {display:flex; flex-direction:column; gap:.8rem;}
.logout_timer_label {font-size:var(--fs-base); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.logout_timer_count {font-size:var(--fs-title); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.logout_timer_num {color:var(--color-primary);}
.logout_notice {display:flex; flex-direction:column; gap:.8rem;}
.logout_notice li {position:relative; padding-left:1.6rem; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}
.logout_notice li::before {content:""; position:absolute; top:1rem; left:.2rem; width:.6rem; height:.6rem; border-radius:50%; background:var(--color-text-body);}

/* 주소 검색 팝업 */
.popup.type_address .popup_body {gap:2.4rem;}
.addr_search {display:flex; flex-direction:column; gap:1.6rem;}
.addr_search .addr_search_desc {font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-title);}
.tip_box {display:flex; flex-direction:column; gap:.8rem; padding:2.4rem; border-radius:var(--radius-xl); background:var(--color-secondary-subtler);}
.tip_title {font-size:var(--fs-19); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.tip_list {display:flex; flex-direction:column; gap:.8rem; margin:0; padding:0; list-style:none;}
.tip_list li {position:relative; padding-left:1.6rem; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}
.tip_list li::before {content:""; position:absolute; top:1rem; left:.2rem; width:.6rem; height:.6rem; border-radius:50%; background:var(--color-text-body);}
.tip_ex {color:var(--color-primary);}

/* 자격증 출력 팝업 */
.popup.type_cert {gap:2.4rem; overflow-y:auto;}
.cert_top {display:flex; align-items:flex-start; gap:1.6rem;}
.cert_no {flex:1 1 0; min-width:0; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-caption);}
.cert_body {display:flex; flex-direction:column; align-items:center; gap:2.8rem;}
.cert_title_area {display:flex; flex-direction:column; gap:.8rem; width:100%; text-align:center;}
.cert_title {font-size:var(--fs-h2); font-weight:700; line-height:var(--lh-base); color:var(--color-text-strong);}
.cert_org {font-size:var(--fs-base); line-height:var(--lh-base); color:var(--color-text-body);}
.cert_person {display:flex; flex-direction:column; align-items:center; gap:1.6rem; width:100%;}
.cert_photo {width:16.3rem; height:20rem; border:1px solid var(--color-gray-light); object-fit:cover;}
.cert_name {font-size:var(--fs-title); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title); text-align:center;}
.cert_birth {font-size:var(--fs-lg); font-weight:600; line-height:var(--lh-base); color:var(--color-text-body); text-align:center;}
.cert_desc {font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body); text-align:center;}
.cert_sign {display:flex; flex-direction:column; gap:1.2rem; width:100%;}
.cert_date {font-size:var(--fs-base); font-weight:600; line-height:var(--lh-base); color:var(--color-text-body); text-align:center;}
.cert_minister {display:flex; align-items:center; justify-content:center; gap:1.2rem; font-size:var(--fs-19); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.cert_seal {width:3.4rem; height:3.5rem;}
.cert_qr {display:flex; align-items:center; gap:2rem; padding:2.4rem; border-top:1px solid var(--color-primary-subtle); border-radius:var(--radius-lg); background:var(--color-gray-subtler);}
.cert_qr_img {flex-shrink:0; width:6rem; height:6rem;}
.cert_qr_text {font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-title);}

/* 주소 검색 결과 팝업 */
.addr_search_row {display:flex; align-items:flex-start; gap:1.6rem;}
.addr_search_row .field_box {flex:1 1 0; min-width:0;}
.addr_search_row .search_btn {flex-shrink:0;}
.addr_result {display:flex; flex-direction:column; gap:1.6rem;}
.addr_result .addr_result_count {font-size:var(--fs-19); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.addr_result_count strong {font-weight:700; color:var(--color-primary);}
.addr_list {display:flex; flex-direction:column;}
/* 우편번호(좌)와 주소 묶음(우) 배치는 항목이 맡는다 — 도로명·지번을 각각 선택하도록 줄마다 링크를 두기 때문 */
.addr_item {display:flex; align-items:flex-start; gap:2rem; padding:2rem 0; border-top:1px solid var(--color-gray-light);}
.addr_item:last-child {border-bottom:1px solid var(--color-gray-light);}
.addr_zip {flex-shrink:0; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body); white-space:nowrap;}
.addr_detail {flex:1 1 0; min-width:0; display:flex; flex-direction:column; gap:1.6rem;}
.addr_link {display:flex; align-items:flex-start; gap:1.2rem; width:100%;}
.addr_link .badge {flex-shrink:0; min-width:5.5rem;}
.addr_text {flex:1 1 0; min-width:0; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}
.addr_link:hover .addr_text,
.addr_link:focus-visible .addr_text {color:var(--color-primary); text-decoration:underline;}

/* =========================================================
   로그인
========================================================= */
.content-header.type_login,
.pwfind {max-width:80rem; margin:0 auto; width:100%;}
.login {display:flex; flex-direction:column; gap:4rem; margin:0 auto; max-width:120rem; width:100%;}
.content-header.type_login:has(+ .login) {max-width:120rem;}
.login_head {display:flex; flex-direction:column; gap:.8rem;}
.login_title {font-size:var(--fs-h2); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.login_desc {font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}
.login_body {display:flex; align-items:stretch; gap:4rem;}

/* 로그인 폼 카드 (좌측) */
.login_form {flex-shrink:0; display:flex; flex-direction:column; gap:4rem; width:47.2rem; padding:3.6rem; border:1px solid var(--color-gray-light); border-radius:var(--radius-3xl);}
.login_form .form_group {gap:1.6rem;}
.login_fields {display:flex; flex-direction:column; gap:2rem;}
.login_actions {display:flex; flex-direction:column; gap:2rem;}
.login_submit {display:flex; align-items:center; justify-content:center; width:100%; height:5.6rem; border-radius:var(--radius-lg); font-size:var(--fs-19); line-height:var(--lh-base); transition:background .2s;}
.login_links {display:flex; align-items:center; gap:2.4rem; font-size:var(--fs-base); line-height:var(--lh-base); color:var(--color-text-title);}
.login_links_join {flex:1 1 0; min-width:0; color:var(--color-text-title);}
.login_links_find {display:flex; align-items:center; gap:4rem;}
.login_links_find a {color:var(--color-text-title);}
.login_links_find a + a {position:relative;}
.login_links_find a + a::before {content:""; position:absolute; left:-2rem; top:50%; width:1px; height:1.6rem; margin-top:-.8rem; background:var(--color-gray-light);}
.login_links a:hover,
.login_links a:focus {text-decoration:underline;}

/* 안내 + 다른 로그인 (우측) */
.login_side {display:flex; flex:1 1 0; min-width:0; flex-direction:column; gap:2rem;}
.login_notice {flex:1 1 auto; display:flex; flex-direction:column; gap:2rem; padding:3.6rem; border:1px solid var(--color-gray-light); border-radius:var(--radius-3xl);}
.login_notice_head {display:flex; align-items:center; gap:.8rem;}
.login_notice_ico {flex-shrink:0; width:2.4rem; height:2.4rem; background:url(../images/icon/ico_notice.svg) no-repeat center / contain;}
.login_notice_title {font-size:var(--fs-h4); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.login_notice_list {display:flex; flex-direction:column; gap:1.2rem;}
.login_notice_list li {position:relative; padding-left:2.8rem; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}
.login_notice_list li::before {content:""; position:absolute; top:1.2rem; left:.8rem; width:.6rem; height:0; border-top:1px solid var(--color-text-body);}

.login_other {display:flex; flex-direction:column; gap:.8rem; padding:1.6rem 2.4rem; border-radius:var(--radius-xl); background:var(--color-info-subtler);}
.login_other_title {font-size:var(--fs-base); font-weight:600; line-height:var(--lh-base); color:var(--color-text-title);}
.login_other_link {display:inline-flex; align-items:center; gap:.2rem; font-size:var(--fs-base); line-height:var(--lh-base); color:var(--color-primary);}
.login_other_link:hover,
.login_other_link:focus {text-decoration:underline;}
.login_other_arrow {flex-shrink:0; position:relative; width:1.6rem; height:1.6rem;}
.login_other_arrow::before {content:""; position:absolute; left:.3rem; top:50%; width:.7rem; height:.7rem; margin-top:-.45rem; border-top:1.5px solid currentColor; border-right:1.5px solid currentColor; transform:rotate(45deg);}

/* =========================================================
   비밀번호 찾기
========================================================= */
.pwfind_title {margin-bottom:2.4rem;}
.pwfind_card {display:flex; flex-direction:column; gap:4rem; padding:3.6rem 20rem; border:1px solid var(--color-gray-light); border-radius:var(--radius-3xl);}
.form_req {color:var(--color-point-dark);}

/* =========================================================
   비밀번호 재설정
========================================================= */
.pwreset {max-width:80rem; margin:0 auto; width:100%; display:flex; flex-direction:column; gap:4rem;}
.pwreset_notice {display:flex; flex-direction:column; align-items:center; gap:2.4rem;}
.pwreset_notice_ico {width:6.4rem; height:6.4rem; background:url(../images/icon/ico_attention.svg) no-repeat center / contain;}
.pwreset_notice_text {display:flex; flex-direction:column; gap:.8rem; text-align:center;}
.pwreset_notice_title {font-size:2.4rem; font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.pwreset_notice_title em {font-style:normal; color:var(--color-primary);}
.pwreset_notice_desc {font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}
.pwreset_section {display:flex; flex-direction:column; gap:2.4rem;}
.pwreset_subtitle {font-size:2.4rem; font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}

/* =========================================================
   아이디 찾기 완료
========================================================= */
.idfind {max-width:80rem; margin:0 auto; width:100%; display:flex; flex-direction:column; gap:2.4rem;}
.idfind_result {display:flex; flex-direction:column; align-items:center; gap:3.2rem; padding:3.6rem; border:1px solid var(--color-gray-light); border-radius:var(--radius-3xl); text-align:center;}
.idfind_result_text {font-size:var(--fs-19); font-weight:600; line-height:var(--lh-base); color:var(--color-text-title);}
.idfind_result_text strong {font-weight:600; color:var(--color-primary);}
.idfind_login {display:flex; align-items:center; justify-content:center; width:40rem; max-width:100%; height:5.6rem; border-radius:var(--radius-lg); font-size:var(--fs-19); line-height:var(--lh-base); transition:background .2s;}

/* =========================================================
   로그인방식 선택
========================================================= */
.login_select {max-width:120rem; margin:0 auto; width:100%; display:flex; flex-direction:column; gap:4rem;}
.login_select_head {display:flex; flex-direction:column; gap:.8rem;}
.login_select_title {font-size:var(--fs-h2); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.login_select_desc {font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}
.login_sso {position:relative; width:100%;}
.content-header.type_select {max-width:120rem; margin:0 auto; width:100%;}

/* 이용기관 로그인 */
.login_select_org {display:flex; flex-direction:column; gap:2.4rem; padding-top:2.4rem; border-top:1px solid var(--color-gray);}
.login_select_org_title {font-size:var(--fs-h4); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.login_methods {display:grid; grid-template-columns:repeat(3, 1fr); gap:2.4rem;}
.login_method {display:flex; flex-direction:column; gap:.8rem; min-height:16.4rem; padding:3.2rem; border-radius:var(--radius-xl); background:var(--color-gray-subtler);}
.login_method:hover,
.login_method:focus {background:var(--color-gray-subtle);}
.login_method_top {display:flex; align-items:center; gap:2.4rem;}
.login_method_ico {flex-shrink:0; width:4rem; height:4rem; background:url(../images/icon/ico_login_method.svg) no-repeat center / contain;}
.login_method_head {flex:1 1 0; min-width:0; display:flex; align-items:center; gap:.8rem;}
.login_method_title {flex:1 1 0; min-width:0; font-size:var(--fs-h4); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.login_method_arrow {flex-shrink:0; width:3.2rem; height:3.2rem; background:url(../images/icon/ico_arrow_method.svg) no-repeat center / contain;}
.login_method_desc {font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}
.signup {max-width:80rem; margin:0 auto; width: 100%;}
.signup .step_indicator_item {flex:0 0 auto; width:12rem;}
.signup .step_indicator_item.is_done .step_indicator_num {border-color:var(--color-element-gray); background:var(--color-element-gray);}
.signup .step_indicator_item.is_done .step_indicator_line {background:var(--color-element-gray);}

/* =========================================================
   약관·정책 안내 페이지 (이메일수집거부 · 저작권정책)
   메뉴 없이 80rem 중앙 단일 컬럼 — 본문은 .infobox.type_plain 재사용
========================================================= */
.policy {max-width:80rem; margin:0 auto; width:100%;}
/* 섹션 간격 축소 변형 — 이메일수집거부처럼 블록이 적은 화면에 붙인다 */
.policy.type_tight .section + .section {margin-top:4.8rem;}
/* 조문 블록 — 조문이 길게 이어지는 처리방침용. 섹션보다 좁은 간격을 쓴다 */
.policy_article + .policy_article {margin-top:4rem;}
/* 소제목 단위 하위 블록 */
.policy .subsection {margin-top:4rem;}
/* 상단 안내 아이콘 — 장식용(마크업에서 aria-hidden) */
.policy_ico {display:block; width:6.4rem; height:6.4rem; margin:0 auto 2.4rem; background:url(../images/icon/ico_mail_reject.svg) no-repeat center / contain;}
/* 안내 박스 아래 이어지는 조문 설명 */
.policy_desc {margin-top:2.4rem; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}
/* 안내 박스 바로 아래 붙는 참고 메시지 */
.policy .infobox + .field_msg {margin-top:1.6rem;}
/* 공공누리 유형 마크 이미지 */
.kogl_mark {display:block; width:auto; height:3.9rem; margin:0 auto;}
/* 조문 안 소제목 — 섹션 제목보다 한 단계 작은 소제목 (개인정보 처리방침) */
.subsection_title.size_sm {margin-bottom:1.2rem; font-size:var(--fs-body1);}
/* 조문이 촘촘한 화면은 소제목 블록 간격도 좁게 */
.policy.type_tight .subsection {margin-top:2rem;}
/* 소제목 블록(표 포함) 다음에 조문이 이어질 때도 같은 간격을 준다 */
.policy .subsection + .text_list {margin-top:2rem;}
/* 조문 본문 — 긴 법령 문장이 어절 단위로 밀려 줄 끝이 크게 비지 않도록 글자 단위로 채운다 */
.policy .policy_desc,
.policy .text_list li {word-break:normal;}
/* 대시 목록 마커도 숫자 목록과 같은 선에서 시작하도록 왼쪽 끝에 맞춘다 */
.policy ul.text_list > li::before {left:0;}
/* 조문 안 하위 목록 — 상위 항목보다 한 단계 작은 글자 (본문 최소 크기는 지킨다) */
.policy .text_list.type_circle > li,
.policy .text_list .text_list li {font-size:var(--fs-base);}
/* 하위 목록 들여쓰기 — 마커 자리만 남기고 본문 폭을 넓게 쓴다 */
.policy .text_list .text_list {padding-left:0;}
.policy .text_list .text_list li {padding-left:2rem;}
/* 강조 색으로 노출하는 조문 블록 — 소제목·목록 글자와 목록 마커까지 파랑 (쿠키 안내) */
.policy .subsection.type_point .text_list {gap:.8rem;}
.policy .subsection.type_point .subsection_title,
.policy .subsection.type_point .text_list > li {color:var(--color-primary);}
.policy .subsection.type_point .text_list > li::before {border-top-color:var(--color-primary); color:var(--color-primary);}
/* 처리방침 항목 인덱스 카드 — 안내사항 목록 */
.policy_index {display:flex; flex-wrap:wrap; gap:2rem; padding:2.4rem; border:1px solid var(--color-gray-light); border-radius:var(--radius-xl);}
.policy_index_item {display:flex; align-items:center; gap:1.2rem; width:calc((100% - 4rem) / 3); font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}
/* 항목 아이콘 — 장식용(마크업에서 aria-hidden), 항목별 전용 아이콘 */
.policy_index_ico {flex-shrink:0; width:4rem; height:4rem;}
.policy_index_ico.type_general {background:url(../images/icon/ico_person_info.svg) no-repeat 50% / contain;}
.policy_index_ico.type_item {background:url(../images/icon/ico_person_info_item.svg) no-repeat 50% / contain;}
.policy_index_ico.type_rrn {background:url(../images/icon/ico_person_info_rrn.svg) no-repeat 50% / contain;}
.policy_index_ico.type_arn {background:url(../images/icon/ico_person_info_arn.svg) no-repeat 50% / contain;}
.policy_index_ico.type_sensitive {background:url(../images/icon/ico_person_info_sensitive.svg) no-repeat 50% / contain;}
.policy_index_ico.type_health {background:url(../images/icon/ico_person_info_health.svg) no-repeat 50% / contain;}
.policy_index_ico.type_purpose {background:url(../images/icon/ico_person_info_purpose.svg) no-repeat 50% / contain;}
.policy_index_ico.type_period {background:url(../images/icon/ico_person_info_period.svg) no-repeat 50% / contain;}
.policy_index_ico.type_destroy {background:url(../images/icon/ico_person_info_destroy.svg) no-repeat 50% / contain;}
.policy_index_ico.type_third {background:url(../images/icon/ico_person_info_third.svg) no-repeat 50% / contain;}
.policy_index_ico.type_trust {background:url(../images/icon/ico_person_info_trust.svg) no-repeat 50% / contain;}
.policy_index_ico.type_safety {background:url(../images/icon/ico_person_info_safety.svg) no-repeat 50% / contain;}
.policy_index_ico.type_auto {background:url(../images/icon/ico_person_info_auto.svg) no-repeat 50% / contain;}
.policy_index_ico.type_right {background:url(../images/icon/ico_person_info_right.svg) no-repeat 50% / contain;}
.policy_index_ico.type_agent {background:url(../images/icon/ico_person_info_agent.svg) no-repeat 50% / contain;}
.policy_index_ico.type_manager {background:url(../images/icon/ico_person_info_manager.svg) no-repeat 50% / contain;}
.policy_index_ico.type_view {background:url(../images/icon/ico_person_info_view.svg) no-repeat 50% / contain;}
.policy_index_ico.type_relief {background:url(../images/icon/ico_person_info_relief.svg) no-repeat 50% / contain;}
.policy_index_ico.type_report {background:url(../images/icon/ico_person_info_report.svg) no-repeat 50% / contain;}
.policy_index_ico.type_change {background:url(../images/icon/ico_person_info_change.svg) no-repeat 50% / contain;}
/* 조문 제목과 본문 사이 간격 통일 */
.policy .section_title {margin-bottom:2.4rem;}
.policy .section_title + .policy_desc {margin-top:0;}
/* 조문 블록 간 간격 — 목록·표·버튼이 이어질 때 */
.policy .policy_desc + .text_list,
.policy .policy_desc + .table_wrap,
.policy .text_list + .table_wrap,
.policy .table_wrap + .text_list,
.policy .table_wrap + .policy_desc {margin-top:1.2rem;}
.policy .policy_desc + .policy_index {margin-top:2.4rem;}
/* 조문 안 단독 버튼 줄 */
.policy_btn {margin-top:1.2rem;}
/* 기관 연락처 줄 — 전화번호 + 누리집 링크 */
.policy_contact {display:flex; flex-wrap:wrap; align-items:center; gap:.8rem; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}
/* 새 창 링크 — 밑줄 + 새 창 아이콘 */
.link_blank {display:inline-flex; align-items:center; gap:.4rem; color:var(--color-primary); text-decoration:underline;}
.link_blank::after {content:""; flex-shrink:0; width:2rem; height:2rem; background:url(../images/icon/ico_link_blank.svg) no-repeat 50% / 1.5rem auto;}

/* =========================================================
   자격증 신청 위저드 — 진행단계(step_nav) · 약관동의(agree)
========================================================= */
.step_nav {margin-bottom:4.8rem;}
.step_nav_list {display:flex; width:100%;}
.step_nav_item {flex:1 1 0; min-width:0; display:flex; flex-direction:column; gap:.8rem;}
.step_nav_item:last-child {flex:0 0 auto;}
.step_nav_head {display:flex; align-items:center; height:2rem;}
.step_nav_mark {flex-shrink:0; position:relative; z-index:1; display:inline-flex; align-items:center; justify-content:center; width:2.4rem; height:2.4rem; border-radius:50%; border:1.2px solid var(--color-gray-light); background:var(--color-gray-subtle); font-size:var(--fs-xs); font-weight:700; line-height:var(--lh-base); color:var(--color-text-caption);}
.step_nav_line {flex:1 1 0; min-width:0; height:.2rem; margin-left:-1px; background:var(--color-gray-light);}
.step_nav_label {padding-right:2.4rem; font-size:var(--fs-base); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.step_nav_item.is_done .step_nav_mark {border-color:var(--color-element-gray); background:var(--color-element-gray); color:var(--color-white);}
.step_nav_item.is_done .step_nav_line {background:var(--color-element-gray);}
.step_nav_item.is_current .step_nav_mark {border-color:var(--color-primary); background:var(--color-primary); color:var(--color-white);}
.apply_terms .step_nav {max-width:80rem;}
.apply_terms .step_nav_item,
.apply_terms .step_nav_item:last-child {flex:0 0 20%;}
.signup .step_nav_item,
.signup .step_nav_item:last-child {flex:0 0 12rem;}
.signup .step_nav_item:last-child .step_nav_line {display:none;}
.step_phase {margin-bottom:.8rem; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}
.step_phase strong {font-weight:700; color:var(--color-primary-dark);}
.section-header:has(> .section_title.blind) .step_phase {margin-bottom:2.4rem;}
.apply_terms .content_title {margin-bottom:5.6rem;}
.apply_terms .section_title {margin-bottom:4rem;}

/* 약관동의 */
.agree {display:flex; flex-direction:column; gap:2.4rem;}
.agree_all {display:flex;}
.agree_all .form_check {width:100%;}
.agree_all .form_check label {align-items:center; gap:1.6rem;}
.agree_all .opt_mark {margin-top:0;}
.agree_all .opt_tit {font-weight:700;}
.agree_group {display:flex; flex-direction:column; gap:1.6rem;}
.agree_card {display:flex; flex-direction:column; gap:4rem; padding:4rem; border:1px solid var(--color-gray-light); border-radius:var(--radius-3xl); background:var(--color-white);}
.agree_item {display:flex; flex-direction:column; gap:1.6rem;}
.agree_desc {font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}
.agree_item .data_table th,
.agree_item .data_table td {font-size:var(--fs-lg);}
.agree_item .data_table strong {font-weight:700; color:var(--color-primary-dark); text-decoration:underline;}
.agree_title {font-size:var(--fs-h4); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.agree_title em {font-style:normal; color:var(--color-point-dark);}
.agree_more {align-self:flex-start; display:inline-flex; align-items:center; justify-content:center; gap:.4rem; min-width:9.6rem; height:4rem; padding:0 1.2rem; border:1px solid var(--color-primary); border-radius:var(--radius-md); background:var(--color-primary-light); font-size:var(--fs-base); line-height:var(--lh-base); color:var(--color-primary-dark); transition:background .2s;}
.agree_more_text {flex:1 1 0; min-width:0; text-align:center;}
.agree_more::after {content:""; flex-shrink:0; width:1.6rem; height:1.6rem; background:url(../images/icon/ico_arrow_down_primary.svg) no-repeat 50% / contain;}
.agree_more:hover,
.agree_more:focus {background:var(--color-primary-pale);}
.agree_more:active {background:var(--color-primary-deeppale);}
.agree_box {display:flex; align-items:center; gap:4rem; padding:2.4rem; border-radius:var(--radius-xl); background:var(--color-gray-subtle);}
.agree_box.is_disagree {border:2px solid var(--color-input-border-error); background:var(--color-error-subtle);}
.agree_box_text {flex:1 1 0; min-width:0; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-title);}
.agree_radios {flex-shrink:0; display:flex; align-items:center; gap:2.4rem;}
.agree_radios .form_radio {width:auto;}
.agree_radios .opt_tit {font-size:var(--fs-lg);}
.agree_more.is_open::after {transform:rotate(180deg);}
.agree_detail {display:none; flex-direction:column; gap:1.6rem; padding:2.4rem; border-radius:var(--radius-xl); background:var(--color-gray-subtler);}
.agree_detail.is_open {display:flex;}
.agree_detail.type_plain {padding:0; border-radius:0; background:none;}
.agree_detail_title {font-size:var(--fs-h4); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.agree_detail_title em {font-style:normal; color:var(--color-point-dark);}
.agree_detail_lead {font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}
.agree_detail_list {display:flex; flex-direction:column; gap:1.2rem; margin:0; padding:0; list-style:none; counter-reset:agreeitem;}
.agree_detail_list > li {position:relative; counter-increment:agreeitem; padding-left:2.4rem; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}
.agree_detail_list > li::before {content:counter(agreeitem) "."; position:absolute; top:0; left:0;}
.agree_detail_sublist {display:flex; flex-direction:column; gap:.8rem; margin:1.2rem 0 0; padding:0; list-style:none;}
.agree_detail_sublist > li {position:relative; padding-left:2.4rem; font-size:var(--fs-base); line-height:var(--lh-base);}
.agree_detail_sublist > li::before {position:absolute; top:0; left:.8rem; font-size:var(--fs-xs);}
.agree_detail_sublist > li:nth-child(1)::before {content:"\2460";}
.agree_detail_sublist > li:nth-child(2)::before {content:"\2461";}
.agree_detail_sublist > li:nth-child(3)::before {content:"\2462";}
.agree_detail_warn {display:flex; align-items:flex-start; gap:.4rem; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-msg-error);}
.agree_detail_warn_ico {flex-shrink:0;}
.agree_detail_warn_ico::before {content:"\203B";}

/* 경고 알림 (alert — danger) */
.alert {display:flex; align-items:flex-start; gap:.8rem; padding:1.6rem; border:1px solid #fcdfd9; border-radius:var(--radius-lg); background:#fdefec;}
.alert_ico {flex-shrink:0; width:2.4rem; height:2.4rem; background:url(../images/icon/ico_system_danger.svg) no-repeat center / contain;}
.alert_text {flex:1 1 0; min-width:0; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}
.alert.type_toggle {display:none;}
.alert.type_toggle.is_show {display:flex;}
.btn_area.type_split {justify-content:space-between;}

/* =========================================================
   서비스 상세 안내
========================================================= */
.content-header.type_tile {display:flex; align-items:center; justify-content:space-between; gap:2.4rem; margin-bottom:4.8rem;}
.content-header.type_tile .content_title {margin-bottom:0;}
.content-header.type_tile .btn_fill,
.content-header.type_tile .btn_line {flex-shrink:0; display:inline-flex; align-items:center; justify-content:center; min-width:9.8rem; height:6.4rem; padding:0 2.4rem; border-radius:var(--radius-lg); font-size:var(--fs-19); line-height:var(--lh-base); transition:background .2s, border-color .2s;}
.anchor_tab {display:flex; margin-bottom:4rem;}
.anchor_tab_item {flex:1 1 0; min-width:8rem; height:5.6rem; display:flex; align-items:center; justify-content:center; padding:0 .8rem; border-bottom:2px solid var(--color-gray); font-size:var(--fs-h4); font-weight:700; line-height:var(--lh-base); color:var(--color-text-body); text-align:center; text-decoration:none;}
.anchor_tab_item.is_active {border-bottom:4px solid var(--color-secondary); color:var(--color-secondary-dark);}
.lead_box {padding:2.4rem; border-radius:var(--radius-xl); background:var(--color-gray-subtler); font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-title);}
.lead_box.type_primary {background:var(--color-primary-subtler);}
.content-header.type_tile.has_detail {flex-wrap:wrap;}
.content-header.type_tile.has_detail .lead_box {flex:0 0 100%;}
.text_para {font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body); word-break:break-all;}
#extra .text_para {color:var(--color-text-title);}

/* 자격증 발급 절차 */
.step_flow {display:flex; flex-direction:column; width:58.8rem; max-width:100%; margin:0; padding:3.2rem; border:1px solid var(--color-gray-light); border-radius:var(--radius-3xl); background:var(--color-white); list-style:none;}
.step_flow_item {position:relative; display:flex; gap:1.6rem; padding-left:.8rem;}
.step_flow_item:not(:last-child) {padding-bottom:3.2rem;}
.step_flow_item:not(:last-child)::before {content:""; position:absolute; left:2rem; top:2.4rem; bottom:0; width:1px; background:var(--color-secondary-light);}
.step_flow_num {position:relative; z-index:1; flex-shrink:0; display:inline-flex; align-items:center; justify-content:center; min-width:2.4rem; height:2.4rem; padding:0 .4rem; border-radius:var(--radius-sm); background:var(--color-secondary); font-size:var(--fs-base); font-weight:700; line-height:var(--lh-base); color:var(--color-white);}
.step_flow_body {flex:1 1 0; min-width:0; display:flex; flex-direction:column; gap:.4rem;}
.step_flow_title {font-size:var(--fs-lg); font-weight:700; line-height:var(--lh-base); color:var(--color-secondary);}
.step_flow_desc {margin:0; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}

/* =========================================================
   진행 단계 표시 (step indicator)
========================================================= */
.step_indicator {display:flex; align-items:flex-start; max-width:60rem; margin-bottom:4.8rem;}
.step_indicator_item {flex:1 1 0; min-width:0; display:flex; flex-direction:column; gap:.8rem;}
.step_indicator_track {display:flex; align-items:center; height:2.4rem;}
.step_indicator_num {flex-shrink:0; display:inline-flex; align-items:center; justify-content:center; width:2.4rem; height:2.4rem; border-radius:50%; border:1.2px solid var(--color-gray-light); background:var(--color-gray-subtle); font-size:var(--fs-xs); font-weight:700; line-height:var(--lh-base); color:var(--color-text-caption);}
.step_indicator_line {flex:1 1 0; min-width:0; height:2px; background:var(--color-gray-light);}
.step_indicator_label {padding-right:2.4rem; font-size:var(--fs-base); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.step_indicator_item.is_current .step_indicator_num,
.step_indicator_item.is_done .step_indicator_num {border-color:var(--color-primary); background:var(--color-primary); color:var(--color-white);}
.step_indicator_item.is_done .step_indicator_line {background:var(--color-primary);}

/* =========================================================
   발급 유형 선택 카드 (issue type)
========================================================= */
.issue_type {display:flex; gap:2.4rem;}
.issue_type_item {flex:1 1 0; min-width:0; display:flex;}
.issue_card {flex:1 1 0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.8rem; padding:4rem 2.4rem; border:1px solid var(--color-gray-light); border-radius:var(--radius-3xl); background:var(--color-white); text-align:center; transition:border-color .2s, background .2s;}
.issue_card_ico {flex-shrink:0; width:6.4rem; height:6.4rem; background-repeat:no-repeat; background-position:center; background-size:contain;}
.issue_card_ico_license {background-image:url(../images/icon/ico_license.png);}
.issue_card_ico_reissuance {background-image:url(../images/icon/ico_reissuance.png);}
.issue_card_body {display:flex; flex-direction:column; align-items:center; gap:.8rem;}
.issue_card_title {font-size:2.4rem; font-weight:700; line-height:var(--lh-base); color:var(--color-text-strong);}
.issue_card_desc {font-size:var(--fs-body2); line-height:var(--lh-base); color:var(--color-text-body);}
.issue_card.is_primary,
.issue_card:hover,
.issue_card:focus-visible {border-width:2px; border-color:var(--color-primary); background:var(--color-primary-subtler); margin:-1px;}
/* 신고 유형 선택(휴업/폐업/업무재개) — issue_card 재사용, 간격·아이콘만 추가 */
.issue_card.type_report {gap:1.6rem;}
.issue_card_ico_cert {background-image:url(../images/icon/ico_report_cert.svg);}
.issue_card_ico_doc {background-image:url(../images/icon/ico_report_doc.svg);}

/* =========================================================
   회원정보 입력
========================================================= */
.step_count {margin-bottom:.8rem; font-size:var(--fs-body2); line-height:var(--lh-base); color:var(--color-text-body);}
.step_count_now {font-weight:700; color:var(--color-primary-dark);}
.form_opt {color:var(--color-msg-info);}
.join_section {display:flex; flex-direction:column;}
.join_card {display:flex; flex-direction:column; gap:4rem; padding:4rem; border:1px solid var(--color-gray-light); border-radius:var(--radius-3xl); background:var(--color-white);}
/* 회원가입 유형 선택 (U-PR-01-00) — 아이콘+라벨 카드, 선택 시 파란 강조 */
.join_group {display:flex; flex-direction:column; gap:4rem;}
.join_type {display:flex; gap:2.4rem;}
.join_type_item {flex:1 1 0; min-width:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1.6rem; padding:4rem 2.4rem; border:1px solid var(--color-gray-light); border-radius:var(--radius-3xl); background:var(--color-white);}
.join_type_item:hover,
.join_type_item:focus {border-color:var(--color-primary);}
.join_type_item.is_active {border:2px solid var(--color-primary); background:var(--color-primary-light);}
.join_type_ico {flex-shrink:0; width:6.4rem; height:6.4rem; background:no-repeat center / contain;}
.join_type_ico.type_normal {background-image:url(../images/icon/ico_join_normal.svg);}
.join_type_ico.type_worker {background-image:url(../images/icon/ico_join_worker.svg);}
.join_type_ico.type_manager {background-image:url(../images/icon/ico_join_manager.svg);}
.join_type_label {font-size:var(--fs-h3); font-weight:700; line-height:var(--lh-base); color:var(--color-text-strong); text-align:center;}
.btn_act.size_lg {min-width:9rem; height:5.6rem; padding:0 2rem; font-size:var(--fs-19);}
.field_inline {display:flex; align-items:flex-start; gap:1.6rem;}
.field_inline > .field_box,
.field_inline > .field_split {flex:1 1 0; min-width:0;}
.field_split {display:flex; align-items:center; gap:.8rem;}
.field_split > .field_box {flex:1 1 0; min-width:0;}
.field_split_sep {flex-shrink:0; font-size:var(--fs-19); line-height:var(--lh-base); color:var(--color-text-muted);}
.field_email {display:flex; align-items:flex-start; gap:1.6rem; max-width:72rem;}
.field_email > .field_split {flex:1 1 0; min-width:0;}
.field_email_domain {flex-shrink:0; width:18.3rem;}
.email_cert_w183 {width:18.3rem; min-width:0; padding:0 1rem; white-space:nowrap;}
.form_field.type_email .field_inline,
.form_field.type_email .field_msg {max-width:72rem;}
.form_field.type_email .field_inline > .field_box {flex:0 0 36rem;}
.radio_group {display:flex; flex-wrap:wrap; gap:1.2rem 4rem;}
.radio_group .form_radio {width:auto;}
.radio_group.type_stack {flex-direction:column; flex-wrap:nowrap; gap:2.4rem;}

/* =========================================================
   발급 신청서 작성
========================================================= */
.apply_form {display:flex; flex-direction:column; gap:4rem;}
.apply_form .field_box.size_half {max-width:50.6rem;}
.apply_form .field_inline.size_half {max-width:none;}
.apply_form .field_inline.size_half > .field_box {flex:0 0 50.6rem; max-width:100%;}
.apply_form .radio_group[aria-labelledby="eduCourseLabel"] {margin-top:.8rem; margin-bottom:1.6rem;}
.apply_form .check_group + .file_attach {margin-top:2.4rem;}
.subfield {display:flex; flex-direction:column; gap:.8rem;}
.subfield + .subfield {margin-top:3.2rem;}
.subfield_label {font-size:var(--fs-base); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.subfield_row {display:flex; gap:1.6rem; margin-top:1.6rem;}
.subfield_row > .subfield {flex:1 1 0; min-width:0;}
.subfield_row > .subfield + .subfield {margin-top:0;}

/* 대상구분 */
.check_group + .check_group {margin-top:3.2rem;}
.check_group_title {display:flex; align-items:center; gap:1.6rem; margin-bottom:1.6rem; font-size:var(--fs-lg); font-weight:700; line-height:var(--lh-base); color:var(--color-text-strong);}
.check_group_name {flex:0 0 auto; font-size:1.5rem;}
.check_group_toggle {display:inline-flex; align-items:center; gap:.4rem; padding:0; border:0; background:transparent; font-size:var(--fs-base); font-weight:400; line-height:var(--lh-base); color:var(--color-text-caption); cursor:pointer;}
.check_group_toggle_text {color:#1e2124;}
.check_group_toggle:focus-visible {outline:2px solid var(--color-input-border-active); outline-offset:2px;}
.check_group_toggle_arrow {position:relative; width:2rem; height:2rem;}
.check_group_toggle_arrow::before {content:""; position:absolute; left:5px; top:5px; width:.8rem; height:.8rem; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg);}
.check_group_toggle.is_open .check_group_toggle_arrow::before {top:8px; transform:rotate(-135deg);}
.check_group:not(.is_open) .check_grid,
.check_group:not(.is_open) .field_msg {display:none;}
.check_grid {display:flex; flex-wrap:wrap; column-gap:2.4rem; row-gap:1.6rem; align-items:flex-start;}
.check_grid[hidden] {display:none;}
.check_grid .form_check {width:auto; min-width:20rem;}
.check_grid .form_check.is_wide {flex:1 1 100%; min-width:0;}
.check_grid.type_stack {flex-direction:column;}
.check_grid.type_stack .form_check {min-width:0;}
.check_grid + .field_msg {margin-top:2rem;}
.check_etc {flex:1 1 100%; min-width:0; display:flex; align-items:center; gap:1.6rem;}
.check_etc .form_check {flex-shrink:0; width:auto; min-width:0;}
.check_etc .field_box {flex:1 1 0; min-width:0; width:auto;}

/* 입력 안내 */
.field_notes {display:flex; flex-direction:column; gap:.4rem; margin:0; padding:0 0 0 1.6rem; list-style:none;}
.field_notes_item {position:relative; padding-left:1.2rem; font-size:var(--fs-xs); line-height:var(--lh-base); color:var(--color-msg-info);}
.field_notes_item::before {content:"-"; position:absolute; left:0;}
.field_notes_item.type_mark {padding-left:0;}
.field_notes_item.type_mark::before {content:none;}

/* 파일 첨부 박스 */
.file_attach {padding:2.4rem; border-radius:var(--radius-xl); background:var(--color-gray-subtle);}
.file_attach_title {display:block; margin-bottom:1.2rem; font-size:var(--fs-lg); font-weight:400; line-height:var(--lh-base); color:var(--color-text-title);}
.file_attach_row {display:flex; align-items:center; gap:1.6rem;}
.file_attach_row > .field_box {flex:1 1 0; min-width:0; background:var(--color-white);}
.file_attach_row > .btn_act {flex-shrink:0;}
/* 파일선택 */
.file_select {cursor:pointer;}
.file_select:focus-within {outline:2px solid var(--color-input-border-active); outline-offset:2px;}
.file_input {position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); border:0;}
/* 미입력(필수 누락) 경고 상태 */
.file_attach.is_error {border:2px solid var(--color-input-border-error); background:var(--color-error-subtle);}
/* 첨부 박스 바로 아래 업로드 파일행 간격 (U-PR-07-03-01) */
.form_field > .file_attach + .doc_filelist {margin-top:.8rem;}
/* 첨부 박스 아래 안내 메시지는 위아래 1.6rem 간격 — form_field의 세로 간격을 보정한다 */
.form_field > .file_attach + .field_msg {margin-top:.8rem;}
.form_field > .field_msg + .doc_filelist {margin-top:.8rem;}

/* 증명사진 미리보기 */
.photo_preview {width:12rem; height:16rem; border:1px solid var(--color-text-title); background:var(--color-white); overflow:hidden;}
.photo_preview img {display:block; width:100%; height:100%; object-fit:cover;}

/* 첨부 파일행 */
.doc_file.is_error {flex-direction:column; align-items:stretch; gap:1.2rem; border:2px solid var(--color-input-border-error); background:var(--color-error-subtle);}
.doc_file_main {display:flex; align-items:center; gap:1.6rem;}
.doc_file_main .doc_filename {flex:1 1 0; min-width:0;}
.doc_file_msg {display:flex; align-items:flex-start; gap:.4rem; margin:0; padding-top:1.2rem; border-top:1px solid var(--color-gray-charcoal); font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-msg-error);}
.doc_file_msg_ico {flex-shrink:0; width:2rem; height:2rem; margin-top:.4rem; background:url(../images/icon/ico_system_danger.svg) no-repeat center / contain;}

/* =========================================================
   마이페이지 나의현황
========================================================= */
.mypage_top {display:flex; gap:2.4rem; align-items:flex-start;}
.mypage_top.type_even {align-items:stretch;}
.mypage_status {flex:1 1 0; min-width:0; display:flex; flex-direction:column; gap:2.4rem;}
.mypage_status .infobox {border-width:0;}
.mypage_status .infobox.is_bordered {border-width:1px;}
.mypage_top.type_even .status_card {flex:0 0 auto; height:21.5rem;}
.mypage_top.type_even .infobox {flex:1 1 auto;}

/* 자격 소지 카드 (파란 카드) */
.cert_card {flex-shrink:0; display:flex; flex-direction:column; gap:1.6rem; width:30rem; padding:2.8rem; border-radius:var(--radius-3xl); background:var(--color-primary); color:var(--color-white);}
.cert_card_lead {font-size:var(--fs-lg); font-weight:700; line-height:var(--lh-base);}
.cert_card_name {font-weight:700;}
.cert_card_status {font-size:var(--fs-h3); font-weight:700; line-height:var(--lh-base);}
.cert_card_info {display:flex; flex-direction:column; gap:1.6rem; margin:0; padding:1.2rem 1.6rem; border-radius:var(--radius-lg); background:var(--color-primary-subtler); color:var(--color-text-title);}
.cert_card_info_row {display:flex; flex-direction:column; gap:.4rem; margin:0;}
.cert_card_info_row dt {font-size:var(--fs-base); font-weight:600; line-height:var(--lh-base);}
.cert_card_info_row dd {margin:0; font-size:var(--fs-base); line-height:var(--lh-base);}
.cert_card_btns {display:flex; gap:.8rem; margin-top:auto;}
.cert_card_btn {flex:1 1 0; min-width:0; display:inline-flex; align-items:center; justify-content:center; gap:.4rem; height:4rem; padding:0 1.2rem; border:1px solid var(--color-primary); border-radius:var(--radius-md); background:var(--color-white); font-size:var(--fs-base); line-height:var(--lh-base); color:var(--color-primary-dark); cursor:pointer;}
.cert_card_btn_ico {flex-shrink:0; width:.7rem; height:.7rem; border-top:1.5px solid var(--color-primary-dark); border-right:1.5px solid var(--color-primary-dark); transform:rotate(45deg);}

/* 등록신청 기관기본정보 (U-PR-07-03) — 복합입력 고정폭 + 단위 접미 */
.field_suffix {flex-shrink:0; align-self:center; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body); white-space:nowrap;}
.field_inline > .field_box.field_area {flex:0 0 29.1rem;}
/* 폼 내 라디오(같은 행 입력칸과 세로 정렬): 라벨 gap(16) + 8 */
.apply_form .radio_group[aria-labelledby="orgTypeLabel"],
.apply_form .radio_group[aria-labelledby="counselRoomLabel"] {margin-top:.8rem;}

/* 기관검색 팝업 (U-PR-07-03-01) */
.popup.size_lg {width:1100px;}
.org_search {display:flex; flex-direction:column; gap:1.6rem; padding:4rem; border-radius:var(--radius-2xl); background:var(--color-secondary-subtler);}
.org_search_fields {display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1.6rem 3.2rem;}
.org_search_field {display:flex; align-items:center; gap:1.6rem;}
.org_search_label {flex-shrink:0; font-size:var(--fs-lg); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title); white-space:nowrap;}
.org_search_field .field_box {width:22rem;}
.org_search_checks {display:flex; align-items:center; gap:1.6rem;}
.org_search_checks .form_check {width:auto;}
.org_search_actions {display:flex; justify-content:flex-end;}
.org_result {display:flex; flex-direction:column; gap:1.6rem;}
.field_inline > .field_tel_head {flex:0 0 14rem;}
.field_inline.field_addr > .field_zip {flex:0 0 12rem;}
.field_inline.field_addr > .btn_act {flex-shrink:0;}

/* 종사자 정보 표 (U-PR-07-03) */
.staff_block {display:flex; flex-direction:column; gap:1.6rem;}
.staff_block + .staff_block {margin-top:2.4rem;}
.staff_title {font-size:var(--fs-lg); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.staff_table {table-layout:fixed; border-top:1px solid var(--color-text-title); border-bottom:1px solid var(--color-border);}
/* 헤더: 회색 블록, 세로 구분선 없음, 첫 헤더행·헤더 하단에 얇은 표 선(#d6e0eb) */
.staff_table thead th {border:0; background:var(--color-gray-subtler); text-align:center; vertical-align:middle;}
.staff_table thead tr:first-child th,
.staff_table thead tr:last-child th {border-bottom:1px solid var(--color-border);}
/* 데이터 셀: 기본 테두리 제거 후 필요한 선만 재부여 */
.staff_table td {border:0; padding:.8rem 1.2rem; text-align:left; vertical-align:middle;}
.staff_table td.cell_num {text-align:center; color:var(--color-text-title);}
.staff_table td.cell_center {text-align:center;}
.staff_table td.cell_del {padding:0; text-align:center;}
/* 세로 그룹 구분선(데이터 영역만) — 번호|성명 사이는 없음 */
.staff_table tbody tr:nth-child(odd) td:nth-child(n+3),
.staff_table tbody tr:nth-child(even) td:nth-child(n+2) {border-left:1px solid var(--color-border);}
/* 한 사람(2행): 1행 아래 얇은 표 선 / 사람 사이: 진한 선 / 표 마지막 줄: 얇은 표 선 */
.staff_table tbody tr:nth-child(odd) td {border-bottom:1px solid var(--color-border);}
.staff_table tbody tr:nth-child(even) td {border-bottom:1px solid var(--color-text-title);}
.staff_table tbody tr:last-child td {border-bottom:1px solid var(--color-border);}
/* 셀 내부 입력요소 */
.staff_table td > .field_box {width:100%;}
.staff_table .cell_flex {display:flex; align-items:center; gap:.8rem;}
.staff_table .cell_flex .field_box {flex:1 1 0; min-width:0;}
.staff_table .cell_flex .radio_group {flex-shrink:0; gap:.8rem 1.6rem;}
.staff_table .cell_flex .field_nation {flex:0 0 10rem;}
.staff_table .cell_file {display:flex; align-items:center; gap:.4rem; min-width:0; font-size:var(--fs-base); line-height:var(--lh-base); color:var(--color-text-body);}
.staff_table .cell_file_name {overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0;}
.staff_table .cell_file_size {flex-shrink:0; color:var(--color-text-caption);}
.staff_del {display:inline-flex; align-items:center; justify-content:center; width:2.4rem; height:2.4rem;}
.staff_del .ico_delete {flex-shrink:0; width:2.4rem; height:2.4rem; background:url(../images/icon/ico_delete.svg) no-repeat center / contain;}

/* 종사자 추가 버튼 (전체폭) */
.staff_add {display:flex; align-items:center; justify-content:center; gap:.8rem; width:100%; height:5.8rem; border:0; border-radius:var(--radius-md); background:var(--color-gray-subtle); font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body); cursor:pointer;}
.staff_add:hover,
.staff_add:focus {background:var(--color-gray-light);}
/* 전체폭 추가 버튼은 바로 위 요소와 2rem 간격 — 부모의 세로 간격을 보정한다 */
.staff_block > .staff_add {margin-top:.4rem;}
.section-body > .btn_add_file {margin-top:-2rem;}
/* 전체폭 추가 버튼 배경은 gray-subtle로 통일 — .staff_add와 같은 톤 (admin.css의 gray-subtler 보정) */
button.btn_add_file {background:var(--color-gray-subtle);}
.staff_add_ico {position:relative; flex-shrink:0; width:2.4rem; height:2.4rem;}
.staff_add_ico::before,
.staff_add_ico::after {content:""; position:absolute; left:50%; top:50%; background:currentColor;}
.staff_add_ico::before {width:1.6rem; height:2px; transform:translate(-50%,-50%);}
.staff_add_ico::after {width:2px; height:1.6rem; transform:translate(-50%,-50%);}

/* 자격신청 진행 현황 카드 */
/* 진행 현황 카드 + 안내 박스 세로 묶음 */
.status_group {display:flex; flex-direction:column; gap:2.4rem;}
.status_card {display:flex; flex-direction:column; gap:2.4rem; padding:2.8rem; border-radius:var(--radius-3xl); background:var(--color-secondary-subtler);}
.status_card_head {display:flex; align-items:center; gap:2rem;}
.status_card_title {flex:1 1 0; min-width:0; font-size:var(--fs-h3); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.status_card_no {flex-shrink:0; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}
.status_card .step_indicator {max-width:none; margin:0; padding-left:3rem;}
.card .step_indicator {max-width:none; margin:0; padding:0 3rem 0 5.6rem;}
.card .step_indicator_item:last-child {flex:0 0 auto;}

/* 진행 현황 */
.status_empty {flex:1 1 0; display:flex; align-items:center; gap:2.4rem;}
.status_empty_ico {flex-shrink:0; width:5.6rem; height:5.6rem; background:url(../images/icon/ico_no_target.svg) no-repeat 50% / contain;}
.status_empty_text {flex:1 1 0; min-width:0;}
.status_empty_title {font-size:var(--fs-19); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.status_empty_desc {margin-top:.8rem; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}
.step_indicator.type_status .step_indicator_item.is_done .step_indicator_num {border-color:var(--color-element-gray); background:var(--color-element-gray); color:var(--color-white);}
.step_indicator.type_status .step_indicator_item.is_done .step_indicator_line {background:var(--color-element-gray);}
/* 자주 발생하지 않는 단계 (보완요청·보완완료 등) */
.step_indicator.type_status .step_indicator_item.is_disabled .step_indicator_num {border-color:var(--color-gray-subtle); background:var(--color-gray-subtler); color:var(--color-text-muted);}
.step_indicator.type_status .step_indicator_item.is_disabled:has(+ .step_indicator_item.is_disabled) .step_indicator_line {background:var(--color-gray-light);}

/* 교육 이수현황 */
.ready_grid {display:flex; gap:2.4rem;}
.ready_col {flex:1 1 0; min-width:0; display:flex; flex-direction:column; gap:2.4rem;}
.ready_title {font-size:var(--fs-h3); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.ready_card {flex:1 1 0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1.6rem; min-height:20rem; padding:3.2rem; border-radius:var(--radius-xl); background:var(--color-gray-subtler);}
.ready_img {width:auto; height:7.2rem;}
.ready_text {font-size:var(--fs-19); font-weight:700; line-height:var(--lh-base); color:var(--color-text-muted);}

/* 더보기 링크 (섹션 머리 우측) */
.more_link {flex-shrink:0; display:inline-flex; align-items:center; gap:.4rem; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-title);}
.more_link_ico {width:2rem; height:2rem; background:url(../images/icon/ico_expand_more.svg) no-repeat center / contain;}

/* =========================================================
   1:1 문의 상세 — Q&A 스레드
========================================================= */
.qa_thread {display:flex; flex-direction:column; gap:2.4rem;}
.qa_block {display:flex; flex-direction:column; gap:2.4rem;}
.qa_block.type_q {padding-top:2.4rem; border-top:1px solid var(--color-text-title);}
.qa_block.type_a {gap:2.4rem; padding:3.2rem; border-radius:var(--radius-3xl); background:var(--color-gray-subtler);}
.qa_main {display:flex; flex-direction:column; gap:1.6rem;}
.qa_head {display:flex; align-items:center; gap:1.6rem;}
.qa_label {font-size:var(--fs-h3); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.qa_head .badge {flex-shrink:0;}
.qa_date {flex-shrink:0; margin-left:auto; font-size:var(--fs-base); line-height:var(--lh-base); color:var(--color-text-body);}
.qa_head .btn_act {flex-shrink:0; min-width:6rem; height:3.2rem; padding:0 1rem; border-radius:var(--radius-sm); font-size:var(--fs-base);}
.qa_head .qa_date + .btn_act {margin-left:0;}
.qa_text {font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}
.qa_block.type_q .qa_text {font-weight:700; color:var(--color-text-title);}
.qa_files {display:flex; flex-direction:column; gap:1.6rem;}
.qa_block.type_a .qa_files {padding-top:2.4rem; border-top:1px solid var(--color-gray-light);}
.qa_files_title {font-size:var(--fs-19); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.qa_reply {display:flex; gap:4rem;}
.qa_reply_ico {flex-shrink:0; width:2.4rem; height:2.4rem; margin-top:2.4rem; background:url(../images/icon/ico_arrow_curve.svg) no-repeat center / contain;}
.qa_reply_body {flex:1 1 0; min-width:0; display:flex; flex-direction:column; gap:2.4rem;}
.qa_write_area {display:flex; flex-direction:column; gap:4rem; margin-top:1.6rem;}
.qa_write {display:flex; flex-direction:column; gap:1.6rem;}
.qa_write_body {display:flex; flex-direction:column; gap:2.4rem;}
.qa_write_file {display:flex; flex-direction:column; gap:1.6rem;}
.qa_write .field_textarea {height:12rem; padding:2.4rem; border-color:var(--color-gray-light); border-radius:var(--radius-xl); font-size:var(--fs-lg);}

/* =========================================================
   제도안내
========================================================= */
.guidebox {padding:2.4rem; border:1px solid var(--color-gray-light); border-radius:var(--radius-xl); background:var(--color-gray-subtler);}
.guidebox > p {font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}
.guidebox > p + p {margin-top:.8rem;}
.guidebox > .text_list {margin:0;}
.guidebox_title {font-size:var(--fs-base); font-weight:600; line-height:var(--lh-base); color:var(--color-text-title);}
.guidebox_title + p {margin-top:.8rem;}
.guidebox.type_point {border-color:var(--color-secondary-light); background:var(--color-primary-subtler);}
.guidebox.type_point > p {color:var(--color-text-title);}
.guidebox.type_info {padding:1.6rem 2.4rem; border-color:transparent; background:var(--color-info-subtler);}
.guidebox.type_info > p {font-size:var(--fs-base);}
.guidebox_link {color:var(--color-primary);}
.guidebox_link:hover,
.guidebox_link:focus {text-decoration:underline;}
.guidebox_link_url {text-decoration:underline;}
.guidebox_link_arrow {display:inline-block; position:relative; width:1.6rem; height:1.6rem; vertical-align:middle;}
.guidebox_link_arrow::before {content:""; position:absolute; left:.3rem; top:50%; width:.7rem; height:.7rem; margin-top:-.45rem; border-top:1.5px solid currentColor; border-right:1.5px solid currentColor; transform:rotate(45deg);}

/* 신청 대상 카드 */
.target_card {display:inline-flex; flex-direction:column; align-items:center; gap:1.6rem; width:24rem; padding:2.4rem; border:1px solid var(--color-gray-light); border-radius:var(--radius-3xl); background:var(--color-white);}
.target_card_ico {flex-shrink:0; width:8rem; height:8rem; background:url(../images/icon/ico_user_target.svg) no-repeat center / contain;}
.target_card_text {font-size:var(--fs-lg); font-weight:600; line-height:var(--lh-base); color:var(--color-text-title); text-align:center;}

/* 발급 절차 */
.process_list {display:flex; flex-direction:column; margin:0; padding:0; list-style:none;}
.process_item {display:flex; gap:2rem;}
.process_rail {flex-shrink:0; display:flex; flex-direction:column; align-items:center; align-self:stretch;}
.process_num {flex-shrink:0; display:inline-flex; align-items:center; justify-content:center; width:4rem; height:4rem; border-radius:50%; background:var(--color-primary); font-size:var(--fs-base); font-weight:700; line-height:var(--lh-base); color:var(--color-white);}
.process_line {flex:1 1 0; width:0; margin:.4rem 0; border-left:2px dotted var(--color-primary);}
.process_item:last-child .process_line {display:none;}
.process_body {flex:1 1 0; min-width:0; display:flex; flex-direction:column; gap:.8rem; padding-bottom:4rem;}
.process_item:last-child .process_body {padding-bottom:0;}
.process_title {display:flex; align-items:center; min-height:4rem; font-size:var(--fs-19); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.process_desc {display:flex; flex-direction:column; gap:1.2rem; padding:2rem; border:1px solid var(--color-gray-light); border-radius:var(--radius-xl); background:var(--color-gray-subtler);}
.process_desc p {font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}
.process_desc .text_list.type_circle > li {font-size:var(--fs-lg);}
.process_desc .text_list + p {margin-top:1.2rem;}

/* 교육 과정 표 */
.course_table {display:flex; gap:2.4rem; margin:0;}
.course_col {flex:1 1 0; min-width:0; display:flex; flex-direction:column;}
.course_th {display:flex; align-items:center; justify-content:center; min-height:5.8rem; padding:1.6rem; border-radius:var(--radius-xl) var(--radius-xl) 0 0; background:var(--color-secondary); font-size:var(--fs-19); font-weight:700; line-height:var(--lh-base); color:var(--color-white); text-align:center;}
.course_td {flex:1 1 0; margin:0; display:flex; align-items:center; justify-content:center; padding:1.6rem; border:1px solid var(--color-gray-charcoal); border-top:0; border-radius:0 0 var(--radius-xl) var(--radius-xl); font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body); text-align:center;}
.course_td .text_list {display:block; flex:1 1 0; text-align:left;}
.course_td .text_list > li {margin-bottom:1.2rem; break-inside:avoid;}
.course_td .text_list.type_2col {columns:2; column-gap:1.6rem;}
.course_td .text_list.type_2col > li:nth-child(4) {break-before:column;}
.course_table.type_top .course_td {align-items:flex-start;}
.course_table + .infobox {margin-top:2.4rem;}

/* =========================================================
   서비스정보(사업계획)등록 (U-PR-07-04)
========================================================= */
/* 서비스 제공가능 지역 — 범위 라디오(전국·시군구) + 시/도 셀렉트, 아래 시군구 체크 목록 */
.region_field {display:flex; flex-direction:column;}
.region_scope {display:flex; align-items:center; gap:4rem;}
.region_scope .field_box {width:20rem; margin:-1.5rem 0;} /* 셀렉트가 라디오 줄 높이를 넘지 않게 상쇄 — 노출 시에도 라벨과의 간격 유지 */
.region_check {display:flex; flex-wrap:wrap; row-gap:1.6rem; margin-top:2rem; padding-top:2rem; border-top:1px solid var(--color-gray-light);} /* 구분선은 목록에 붙여 숨김 상태에서 선이 남지 않게 함 */
.region_check .form_check {flex:0 0 calc(100% / 7); width:auto; min-width:0;} /* 한 줄 7개 균등 배치 */

/* 2열 체크/라디오 (제공 내용·부가서비스·돌봄인력 고용·겸업여부) */
.check_cols {display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); column-gap:4rem; row-gap:1.6rem; align-items:center;}
.check_cols .form_check,
.check_cols .form_radio {width:auto;}
/* 선택항목 + 직접입력(+단위)이 한 셀에 들어가는 경우 */
.check_inline {display:flex; align-items:center; gap:4rem;}
.check_inline > .form_check,
.check_inline > .form_radio {flex-shrink:0; width:auto;}
.check_inline > .field_box {flex:1 1 0; min-width:0;}
.check_inline_field {flex:1 1 0; min-width:0; display:flex; align-items:center; gap:.8rem;}
.check_inline_field > .field_box {flex:1 1 0; min-width:0;}
.guidebox + .btn_area {padding-top:2rem; justify-content:flex-start;}

/* 등록신청 접수확인 팝업 (U-PR-07-05) */
.popup.type_receipt .popup_body {gap:1.6rem;}
.receipt_card {padding:4rem; border-radius:var(--radius-3xl); background:var(--color-gray-subtler);}
.receipt_list {margin:0; display:flex; flex-direction:column;}
.receipt_row {display:flex; align-items:center; gap:1.6rem; min-height:5.6rem;}
.receipt_term {flex-shrink:0; width:13rem; font-size:var(--fs-lg); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.receipt_desc {margin:0; flex:1 1 0; min-width:0; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}

/* 만족도 항목 등록/수정 (U-PR-10-03) */
/* on/off 토글 스위치 (답변필수 등) */
.switch {display:inline-flex; align-items:center;}
.switch_input {position:absolute; overflow:hidden; clip:rect(0,0,0,0); width:1px; height:1px; margin:-1px; padding:0; border:0;}
.switch_label {display:inline-flex; align-items:center; gap:.8rem; cursor:pointer;}
.switch_track {flex-shrink:0; position:relative; width:4rem; height:2.4rem; border-radius:1000px; background:var(--color-element-gray); transition:background .2s;}
.switch_thumb {position:absolute; top:.2rem; left:.2rem; width:2rem; height:2rem; border-radius:50%; background:var(--color-white) url(../images/icon/ico_switch_off.svg) no-repeat center / 1rem; transition:left .2s;}
.switch_input:checked + .switch_label .switch_track {background:var(--color-primary);}
.switch_input:checked + .switch_label .switch_thumb {left:1.8rem; background-image:url(../images/icon/ico_switch_on.svg);}
.switch_input:focus-visible + .switch_label .switch_track {outline:2px solid var(--color-input-border-active); outline-offset:2px;}
.switch_text {font-size:var(--fs-19); line-height:var(--lh-base); color:var(--color-text-title);}

/* 문항 카드 목록 + 우측 상단 삭제 */
.survey_list {display:flex; flex-direction:column; gap:4rem; margin-top:4rem;}
.survey_item {position:relative;}
.survey_del {position:absolute; top:4rem; right:4rem; width:3.2rem; height:3.2rem; background:url(../images/icon/ico_close.svg) no-repeat center / 2.4rem; cursor:pointer;}

/* 객관식 답변 보기 입력 */
.answer_area {display:flex; flex-direction:column; gap:2rem;}
.answer_list {display:flex; flex-direction:column; gap:2rem;}
.answer_row {display:flex; align-items:center; gap:1.6rem;}
.answer_num {flex-shrink:0; width:2.4rem; font-size:var(--fs-lg); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.answer_row > .field_box {flex:1 1 0; min-width:0;}
.answer_del {flex-shrink:0; display:inline-flex; align-items:center; gap:.4rem; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-title); cursor:pointer;}
.answer_del_ico {position:relative; flex-shrink:0; width:2rem; height:2rem; border-radius:50%; background:var(--color-gray-light);}
.answer_del_ico::before,
.answer_del_ico::after {content:""; position:absolute; top:50%; left:50%; width:1rem; height:.15rem; background:#33363d; transform:translate(-50%,-50%) rotate(45deg);}
.answer_del_ico::after {transform:translate(-50%,-50%) rotate(-45deg);}
.answer_add {align-self:flex-start; display:inline-flex; align-items:center; gap:.8rem; height:5.8rem; padding:0 2.4rem; border-radius:var(--radius-lg); background:var(--color-gray-subtle); font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-title); cursor:pointer;}
.answer_add .ico_plus {position:relative; flex-shrink:0; width:2.4rem; height:2.4rem;}
.answer_add .ico_plus::before,
.answer_add .ico_plus::after {content:""; position:absolute; top:50%; left:50%; width:1.6rem; height:.2rem; border-radius:.1rem; background:currentColor; transform:translate(-50%,-50%);}
.answer_add .ico_plus::after {transform:translate(-50%,-50%) rotate(90deg);}

/* 기관 평가 항목 상세 — 평가지표 좌우 2단 (U-PR-10-08) */
.eval_cols {display:flex; align-items:stretch; gap:4.8rem;}
.eval_cols > .eval_preview,
.eval_cols > .eval_edit {flex:1 1 0; min-width:0;}
.eval_preview {display:flex; flex-direction:column;}
.eval_edit {display:flex; flex-direction:column; gap:2.4rem;}
.eval_edit .form_cols {gap:4rem;}
/* 편집 컬럼 안 하단 버튼 — 좌측 미리보기 컬럼 높이에 맞춰 상단 여백을 줄인다 */
.eval_edit > .btn_area {padding-top:1.6rem;}
/* 개발 단계 미리보기 영역 (좌측 컬럼 남은 높이 = 우측 버튼까지 확장) */
.preview_box {flex:1 1 auto; min-height:40rem; padding:4rem; border:1px solid var(--color-gray-light); border-radius:var(--radius-3xl); background:var(--color-white);}
.preview_box_label {font-size:var(--fs-lg); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
/* 기관평가결과 통계 카드 아이콘 (문서형) — 다른 화면 stat_card 영향 없이 이 화면만 (U-PR-10-09) */
.stat_cards.type_doc .stat_card_ico::before {background-image:url(../images/icon/ico_stat_doc.svg);}
/* 회원관리 통계 카드 아이콘 (회원 구분별) (U-PR-11-01) */
.stat_card_ico.type_member::before {background-image:url(../images/icon/ico_member.svg);}
.stat_card_ico.type_member_worker::before {background-image:url(../images/icon/ico_member_worker.svg);}
.stat_card_ico.type_member_head::before {background-image:url(../images/icon/ico_member_head.svg);}

/* 기관평가결과 상세 (U-PR-10-11) */
/* 진행상태 + 저장 바 (표 위/아래) */
.eval_bar {display:flex; align-items:center; justify-content:flex-end; gap:.8rem;}
.eval_status {display:flex; align-items:center; gap:.8rem; width:36rem;}
.eval_status_label {flex-shrink:0; width:13rem; font-size:var(--fs-base); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.eval_status .field_box {flex:1 1 0; min-width:0;}
.eval_bar_btn {flex-shrink:0; display:inline-flex; align-items:center; justify-content:center; min-width:6.4rem; height:4rem; padding:0 1.2rem; border-radius:var(--radius-md); font-size:var(--fs-base); line-height:var(--lh-base);}
.eval_bar + .table_wrap {margin-top:2.4rem;}
.table_wrap + .eval_bar {margin-top:2.4rem;}
/* 평가내용 셀 제목 + 감점 목록 */
.eval_content_title {margin-bottom:.8rem; font-size:var(--fs-base); font-weight:600; line-height:var(--lh-base); color:var(--color-text-title);}
/* 점수 입력 셀 (입력 + "점") */
.score_field {display:inline-flex; align-items:center; justify-content:center; gap:.8rem;}
.score_field .field_box {width:6rem;}
.score_unit {flex-shrink:0; font-size:var(--fs-base); line-height:var(--lh-base); color:var(--color-text-body);}
/* 소계 / 합계 행 */
.data_table .row_subtotal td {background:var(--color-gray-subtler); font-weight:400; color:var(--color-text-title);}
.data_table .row_total td {background:var(--color-primary-pale); font-weight:700; color:var(--color-text-body);}
.popup_notes {display:flex; flex-direction:column; gap:.4rem;}

/* =========================================================
   제도안내 업무 안내 카드 (U-PR-05-01)
========================================================= */
/* 메인 화면 안내 카드(main.css .guide_card)와 클래스명이 겹쳐 뒤에 로드되는 main.css에 덮이므로 .guide_cards 하위로 한정한다 */
.guide_cards {display:flex; gap:2.4rem; margin:4rem 0 0; padding:0; list-style:none;}
.guide_cards .guide_card {flex:1 1 0; min-width:0; display:flex; flex-direction:column; gap:1.6rem; min-height:27.6rem; padding:2rem; border-radius:var(--radius-3xl); background:var(--color-secondary-subtler); box-shadow:none;}
.guide_cards .guide_card_ico {flex-shrink:0; width:6.4rem; height:6.4rem; border-radius:50%; background:var(--color-white) no-repeat 50% / 4rem;}
.guide_cards .guide_card_ico.type_apply {background-image:url(../images/icon/ico_guide_apply.svg);}
.guide_cards .guide_card_ico.type_change {background-image:url(../images/icon/ico_guide_change.svg);}
.guide_cards .guide_card_ico.type_dq {background-image:url(../images/icon/ico_guide_dq.svg);}
.guide_cards .guide_card_ico.type_close {background-image:url(../images/icon/ico_guide_close.svg);}
.guide_cards .guide_card_body {display:flex; flex-direction:column; gap:.4rem;}
.guide_cards .guide_card_title {font-size:var(--fs-lg); font-weight:700; line-height:var(--lh-base); letter-spacing:0; color:var(--color-text-title);}
.guide_cards .guide_card_desc {font-size:var(--fs-lg); font-weight:400; line-height:var(--lh-base); color:var(--color-text-title);}
.guide_cards .guide_card_link {align-self:flex-end; margin-top:auto; display:inline-flex; align-items:center; gap:.4rem; min-height:3.2rem; padding:0 .2rem; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-title);}
.guide_cards .guide_card_link:hover,
.guide_cards .guide_card_link:focus {text-decoration:underline;}
.guide_cards .guide_card_link_arrow {position:relative; flex-shrink:0; width:2rem; height:2rem;}
.guide_cards .guide_card_link_arrow::before {content:""; position:absolute; left:.5rem; top:50%; width:.8rem; height:.8rem; margin-top:-.4rem; border-top:1.5px solid currentColor; border-right:1.5px solid currentColor; transform:rotate(45deg);}

/* =========================================================
   제도안내 상세 — 탭 링크 · 세로 절차 스텝 (U-PR-05-01-01)
========================================================= */
/* 세로 절차 스텝 */
.proc_steps {display:flex; flex-direction:column; margin:0; padding:0; list-style:none;}
.proc_step {display:flex; gap:2rem;}
.proc_step_aside {flex-shrink:0; display:flex; flex-direction:column; align-items:center; width:4rem;}
.proc_step_num {flex-shrink:0; display:inline-flex; align-items:center; justify-content:center; width:4rem; height:4rem; border-radius:50%; background:var(--color-primary); font-size:var(--fs-lg); font-weight:700; line-height:1; color:var(--color-white);}
.proc_step_line {flex:1 1 auto; width:0; margin:.4rem 0; border-left:2px dashed var(--color-gray-light);}
.proc_step_body {flex:1 1 0; min-width:0; display:flex; flex-direction:column; gap:.8rem; padding-bottom:4rem;}
.proc_step:last-child .proc_step_body {padding-bottom:0;}
.proc_step_title {display:flex; align-items:center; min-height:4rem; font-size:var(--fs-19); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.proc_step_box {padding:2rem; border:1px solid var(--color-gray-light); border-radius:var(--radius-xl); background:var(--color-gray-subtler);}
.proc_step_box p {font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}
/* 필요서류 표 — 서류명 셀(문서명 + 서식 버튼) */
.doc_cell {display:flex; align-items:center; justify-content:space-between; gap:.8rem;}
.doc_cell > span:first-child {flex:1 1 auto; min-width:0;}
/* 제도안내 안내 표 — 셀 본문 17px·패딩 16px(디자인 body/medium). 행 높이가 디자인(58/64/84px)과 맞도록 */
.data_table.type_guide th,
.data_table.type_guide td {padding:1.6rem; font-size:var(--fs-lg);}
/* 서류명 셀 서식 태그 버튼 — 디자인 32px 컴팩트 폼 */
.data_table.type_guide .btn_act.size_sm {min-width:6rem; height:3.2rem; padding:0 1rem; border-radius:var(--radius-sm);}

/* 노출/비노출 세그먼트 버튼 — 글자 수와 무관하게 두 항목 폭을 같게 (U-PR-11-10) */
.seg_toggle .seg_item label {width:8.2rem; padding:0;}

/* FAQ 질문행 수정·삭제 버튼 좌우 간격 (U-PR-09-07) */
.faq_head_wrap .faq_actions {gap:1.6rem;}

/* 정보 표시 박스 행 높이 변형 — 항목이 많아 행을 넉넉히 잡는 상세 (U-PR-06-02 기관 기본정보) */
.detail_list.type_h56 {gap:1.3rem;}
.detail_list.type_h56 .detail_item {min-height:5.6rem;}

/* =========================================================
   포털(07·09번대)·공통 사용 컴포넌트
========================================================= */

/* 그리드 목록 (TOAST UI Grid) — 기본 스킨 → 프로젝트 표(data_table) 톤 맞춤 (grid_test.html 전용 — 구 grid 실험 잔재) */
.table_wrap .tui-grid-container {border-top:1px solid var(--color-text-title); font-family:inherit; font-size:var(--fs-lg);}
.table_wrap .tui-grid-cell {font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body);}
.table_wrap .tui-grid-cell .tui-grid-cell-content {padding:0 1.6rem;}
.table_wrap .tui-grid-cell-header {font-weight:700; color:var(--color-text-title);}
.table_wrap .tui-grid-cell .badge {vertical-align:middle;}

/* 휴폐업 신고 폼 — 카드 안 2열 폼 행  */
.btn_area + .section {margin-top:8rem;}
.form_cols {display:flex; gap:6.4rem;}
.form_cols > .form_group {flex:1 1 0; min-width:0;}
.form_cols.type_half::after {content:""; flex:1 1 0;}
.field_addr > .field_box:first-child {flex:0 0 12rem;}

/* 진행현황 빈 상태 아이콘 — 흰 원 + 유형별 아이콘 (U-PR-07-00 신청, U-PR-07-09-01 변경, U-PR-07-14-01 휴폐업) */
.status_empty_ico.type_apply,
.status_empty_ico.type_change,
.status_empty_ico.type_close {display:inline-flex; align-items:center; justify-content:center; border-radius:50%; background:var(--color-white);}
.status_empty_ico.type_apply::before,
.status_empty_ico.type_change::before,
.status_empty_ico.type_close::before {content:""; width:3.2rem; height:3.2rem; background:no-repeat center / contain;}
.status_empty_ico.type_apply::before {background-image:url(../images/icon/ico_apply.svg);}
.status_empty_ico.type_change::before {background-image:url(../images/icon/ico_change.svg);}
.status_empty_ico.type_close::before {background-image:url(../images/icon/ico_business_close.svg);}

/* 휴폐업신고 유형 선택 아이콘 (U-PR-07-14-02) */
.issue_card_ico_pause {background-image:url(../images/icon/ico_report_pause.svg);}
.issue_card_ico_close {background-image:url(../images/icon/ico_report_close.svg);}
.issue_card_ico_resume {background-image:url(../images/icon/ico_report_resume.svg);}

/* 민간기관 등록신청 상세 (U-PR-07-08) — 제목 우측 동작 버튼·상세 라벨 폭·파일 아이콘 */
.content-header.type_action {display:flex; align-items:flex-start; justify-content:space-between; gap:2.4rem;}
.detail_list.type_w140 .detail_label {width:14rem;}
.detail_list.type_w180 .detail_label {width:18rem;}
.detail_list.type_w200 .detail_label {width:20rem;}
.detail_box + .field_msg {margin-top:1.6rem;}
.doc_download .ico_preview {flex-shrink:0; width:2rem; height:2rem; background:url(../images/icon/ico_arrow_right.svg) no-repeat center / contain;}
.file_down_btn {display:inline-flex; align-items:center; justify-content:center; width:2.4rem; height:2.4rem; background:url(../images/icon/ico_attach.svg) no-repeat center / contain; vertical-align:middle;}
/* 2행 1인 레코드 경계 진한 선 — collapse 색 충돌은 위 셀이 이기므로 짝수 행 하단선에 지정 (마지막 레코드 하단은 표선 색 유지) */
.data_table.type_pair tbody tr:nth-child(even) td,
.data_table.type_pair tbody tr:nth-child(odd) td[rowspan] {border-bottom-color:var(--color-text-title);}
.data_table.type_pair tbody tr:last-child td,
.data_table.type_pair tbody tr:nth-last-child(2) td[rowspan] {border-bottom-color:var(--color-gray-light);}
.data_table.type_pair thead td {border-right:0; border-bottom:0; border-left:0; border-top-color:var(--color-text-title); background:var(--color-gray-subtler);} /* 머리글 행의 빈 칸도 머리글과 동일하게 */
.data_table.type_pair thead tr + tr th {border-top-color:var(--color-gray-light);} /* 머리글 1행-2행 사이 선은 표선 색 */

/* 열 많은 목록 표 (U-PR-07-16) — 표에 최소폭을 줘 셀이 짜부라지지 않게 하고 table_wrap 가로 스크롤로 노출 */
.data_table.type_wide {min-width:138rem;}

/* 라벨형 다열 검색 필터 (U-PR-07-07) — search_box 변형 */
.search_box.type_label .search_row {align-items:flex-start; gap:4rem;}
.search_item {flex:1 1 0; min-width:0; display:flex; align-items:center; gap:.8rem;}
.search_label {flex-shrink:0; width:13rem; font-size:var(--fs-lg); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.search_item > .field_box,
.search_item > .field_split {flex:1 1 0; min-width:0;}
/* 기관종류 체크박스 (U-PR-07-07) — 필드 높이(4.8rem) 기준 세로 가운데 정렬로 같은 행 select와 높이 맞춤 */
.search_item > .search_checks {display:flex; flex:1 1 0; align-items:center; gap:1.6rem; min-width:0; min-height:4.8rem;}
.search_checks .form_check {width:auto;}
.search_actions {display:flex; justify-content:flex-end; gap:1.6rem;}

/* 섹션 간 간격 축소 변형 — 참고 안내 다음 검색 필터 */
.section + .section.mt40 {margin-top:4rem;}

/* 목록 하단 — 가운데 페이지네이션 + 우측 동작 버튼 (목록 화면 공통) */
.list_foot {display:flex; position:relative; align-items:center; justify-content:center; min-height:6.4rem; margin-top:4rem;}
.list_foot .list_foot_btn {display:inline-flex; position:absolute; top:50%; right:0; align-items:center; justify-content:center; min-width:9.8rem; height:6.4rem; padding:0 2.4rem; border-radius:var(--radius-lg); font-size:var(--fs-19); line-height:var(--lh-base); transform:translateY(-50%);}

/* 자료실 상세 (U-PR-09-05) — 본문 이미지 폭 디자인 600px (기본 480px 확장) */
.board_view_img {max-width:600px;}

/* 자료실 등록 (U-PR-09-06) — 첨부파일 박스 아래 안내 메시지 margin-top 제거 (.form_field > .field_msg .8rem 해제) */
.file_attach + .field_msg {margin-top:0;}

/* 1:1 문의 목록 (U-PR-09-11) — 문의번호 검색: 번호 입력은 고정폭, 검색어 입력은 가변 (field_split의 flex:1 확장 해제) */
.field_split > .field_box.field_w140 {flex:0 0 auto;}

/* 1:1 문의 상세 (U-PR-09-09-01) — 답변 대기 상태 안내문 (답변 카드 안 중앙 정렬) */
.qa_pending {padding:1.6rem 0 3.2rem; font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-body); text-align:center;}

/* 변경등록 신청 (U-PR-07-10) — 카드 밖 동의 제목은 그룹 제목(24px) 크기 */
.agree_title.size_lg {font-size:var(--fs-h3);}

/* FAQ 등록 (U-PR-09-08) — 노출 순서 select 고정폭 (field_inline의 flex:1 확장을 해제해 고정폭 유지) */
.field_w352 {width:352px;}
.field_inline > .field_box.field_w352 {flex:0 0 auto;}

/* 기관검색 팝업 (U-PR-07-03-02) — 기관유형 체크 항목은 내용 폭 고정(좁은 폭에서 개인/법인 줄바꿈 방지)·행 높이 기준 세로 가운데, 나머지 입력 항목이 남은 폭 분배 */
.search_item.type_fit {flex:0 0 auto; align-self:center;}
.search_item.type_fit .opt_tit {white-space:nowrap;}

/* FAQ 목록 순서 팝업 (U-PR-09-08-01) — 번호 + Q 질문 나열 목록 */
.faq_order_list {display:flex; flex-direction:column; margin:0; padding:0; border-top:1px solid var(--color-text-title); border-bottom:1px solid var(--color-gray-light); list-style:none;}
.faq_order_item {display:flex; align-items:center; gap:2.8rem; padding:2.4rem; font-size:var(--fs-lg); line-height:var(--lh-base);}
.faq_order_item + .faq_order_item {border-top:1px solid var(--color-gray-light);}
.faq_order_num {flex-shrink:0; font-weight:700; color:var(--color-text-title);}
.faq_order_q {flex:1 1 0; min-width:0; font-weight:700; color:var(--color-secondary);}
.faq_order_mark {margin-right:.4rem; color:var(--color-primary);}

/* FAQ 관리 목록 (U-PR-09-07) — 질문 행 우측 수정·삭제 버튼(아코디언 질문 버튼과 중첩 불가라 절대배치) + 도움 박스 간격 */
.faq_head_wrap {position:relative;}
.faq_head_wrap .faq_q_text {padding-right:16rem;}
.faq_actions {display:flex; position:absolute; top:50%; right:6.4rem; gap:.8rem; transform:translateY(-50%);}
.faq_list + .faq_help {margin-top:4rem;}

/* 변경등록 신청 (U-PR-07-10) — 첨부서류 추가 버튼 */
.btn_add_file {display:flex; align-items:center; justify-content:center; gap:.8rem; width:100%; height:5.6rem; border-radius:var(--radius-lg); background:var(--color-gray-subtler); font-size:var(--fs-lg); line-height:var(--lh-base); color:var(--color-text-title);}
.btn_add_file .ico_plus {position:relative; flex-shrink:0; width:1.6rem; height:1.6rem;}
.btn_add_file .ico_plus::before,
.btn_add_file .ico_plus::after {content:""; position:absolute; top:50%; left:50%; width:1.6rem; height:.2rem; border-radius:.1rem; background:currentColor; transform:translate(-50%,-50%);}
.btn_add_file .ico_plus::after {transform:translate(-50%,-50%) rotate(90deg);}

/* 변경등록 신청 (U-PR-07-10) — 변경사항 비교 폼 (체크박스로 변경 항목 선택 + 변경 전/후 입력 비교) */
.chg_form {display:flex; flex-direction:column; gap:4rem;}
.chg_row {display:flex; align-items:center; gap:6.4rem;}
.chg_label {flex:0 0 18rem;}
.chg_label .form_check {display:block; width:auto;} /* form_check 기본 32rem 고정폭 해제 — 라벨 영역(18rem) 안에 수납 */
.chg_label .opt_tit {font-weight:700;}
.chg_col {flex:1 1 0; min-width:0;}
.chg_col_title {font-size:var(--fs-lg); font-weight:700; line-height:var(--lh-base); color:var(--color-text-title);}
.chg_col_title.type_after {color:var(--color-point);}

/* 결격사유 조회신청 완료 (U-PR-07-19) — 진행 단계 항목 고정폭 변형 (디자인 120px, 회원가입 12rem과 동일) */
.step_nav.type_fixed .step_nav_item,
.step_nav.type_fixed .step_nav_item:last-child {flex:0 0 12rem;}