@charset "utf-8";
/* 회원정보 (cd=member) 전용 스타일 */

/* 회원 페이지 본문 래퍼 — 좌우 45px 패딩 */
#main_wrap_body {
	width: 100%;
	padding: 0 45px;
	box-sizing: border-box;
}

/* 페이지 타이틀 — hbil teal/emerald 톤 */
.page_title {
	position: relative;
	margin: 0 0 28px;
	padding: 0 0 14px 14px;
	border-bottom: 2px solid #99F6E4;
	font-size: 22px;
	font-weight: 700;
	color: #064E3B;
	letter-spacing: -0.02em;
}
.page_title:before {
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	bottom: 14px;
	width: 4px;
	border-radius: 2px;
	background: linear-gradient(180deg, #10B981 0%, #0F766E 100%);
}
.page_title > span {
	display: inline-block;
}

/* 폼 컨테이너 */
.member_form {
	width: 100%;
	max-width: 920px;
	margin: 0 auto;
	padding: 0;
}

/* 섹션 카드 — hbil 시그니처: 상단 teal 보더 + teal-soft 보더 */
.form_section {
	margin-bottom: 20px;
	background: #fff;
	border: 1px solid #99F6E4;
	border-top: 3px solid #0F766E;
	border-radius: 12px;
	padding: 24px 28px;
	box-shadow: 0 2px 8px rgba(15, 118, 110, 0.06);
}
.form_section .section-title {
	margin: 0 0 18px;
	padding: 0 0 14px;
	font-size: 16px;
	font-weight: 700;
	color: #064E3B;                   /* dark emerald */
	border-bottom: 1px dashed #99F6E4;
	letter-spacing: -0.01em;
	display: flex;
	align-items: center;
	gap: 10px;
}
.form_section .section-title::before {
	content: '';
	display: inline-block;
	width: 4px;
	height: 18px;
	background: linear-gradient(180deg, #10B981 0%, #0F766E 100%);
	border-radius: 2px;
}

/* ============================================================
   member 전용 테이블 (.tbl_member_set)
   css.basic.css 의 .tbl_set 과 분리 — 셀 보더/배경 없음
   ============================================================ */
.member_form .tbl_member_set {
	width: 100%;
	border: none;
	border-radius: 0;
	background: transparent;
	overflow: visible;
	border-collapse: collapse;
	table-layout: fixed;
}
.member_form .tbl_member_set th {
	width: 140px;
	padding: 14px 16px 14px 0;
	font-size: 13px;
	font-weight: 600;
	color: #374151;
	text-align: left;
	vertical-align: middle;
	background: transparent;
	border: none;
	border-top: 1px solid #F3F4F6;
	letter-spacing: -0.01em;
}
.member_form .tbl_member_set td {
	padding: 14px 0;
	font-size: 13px;
	color: #1F2937;
	vertical-align: middle;
	background: transparent;
	border: none;
	border-top: 1px solid #F3F4F6;
}
/* 첫 행은 상단 보더 없음 */
.member_form .tbl_member_set tr:first-child > th,
.member_form .tbl_member_set tr:first-child > td {
	border-top: none;
}
/* 입력 필드가 있는 행은 top 정렬 + 좀 더 여유 있는 패딩 */
.member_form .tbl_member_set td:has(.d_form),
.member_form .tbl_member_set td:has(.email_group),
.member_form .tbl_member_set td:has(.addr_row),
.member_form .tbl_member_set td:has(.radio_group) {
	vertical-align: top;
	padding-top: 10px;
	padding-bottom: 10px;
}
.member_form .tbl_member_set th:has(+ td .d_form),
.member_form .tbl_member_set th:has(+ td .email_group),
.member_form .tbl_member_set th:has(+ td .addr_row),
.member_form .tbl_member_set th:has(+ td .radio_group) {
	vertical-align: top;
	padding-top: 22px;
}
/* tbl_member_set 내부 label 은 basic.css 의 .tbl_set td label 와 분리됨
   라디오/체크박스 라벨 기본 정렬 (radio_group 이 아닌 단독 label) */
.member_form .tbl_member_set td > label {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-right: 18px;
	font-size: 13px;
	color: #374151;
	cursor: pointer;
}
/* 입력 필드 공통 */
.member_form .tbl_member_set .d_form {
	width: 100%;
	max-width: 420px;
	height: 42px;
	padding: 0 14px;
	font-size: 14px;
	border: 1px solid #D1D5DB;
	border-radius: 6px;
	box-sizing: border-box;
	background: #fff;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.member_form .tbl_member_set .d_form:focus {
	outline: none;
	border-color: #0F766E;
	box-shadow: 0 0 0 3px rgba(15,118,110, 0.12);
}
.member_form .tbl_member_set .d_form[disabled] {
	background: #F9FAFB;
	color: #6B7280;
}
/* 단순 텍스트 표시 (회원아이디/회사명 등 strong-only) */
.member_form .tbl_member_set td > strong:only-child {
	display: inline-block;
	font-weight: 600;
	color: #111827;
}

/* 입력 폭 변형 (member 페이지 내) */
.member_form input.wit_mid { max-width: 260px; }
.member_form input.wit_tin { max-width: 200px; }

/* 검증 메시지 (내용 있을 때만 height 차지) */
.form_msg {
	font-size: 12px;
	line-height: 1.4;
}
.form_msg:empty { display: none; }
.form_msg.is_ok  { margin-top: 6px; color: #15803D; }
.form_msg.is_err { margin-top: 6px; color: #DC2626; }
.form_msg.is_ok::before,
.form_msg.is_err::before {
	content: '';
	display: inline-block;
	width: 12px;
	height: 12px;
	margin-right: 5px;
	vertical-align: -1px;
	background-repeat: no-repeat;
	background-size: contain;
}
.form_msg.is_ok::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2315803D'><path d='M13.78 4.22a.75.75 0 010 1.06L6.53 12.53a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z'/></svg>");
}
.form_msg.is_err::before {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23DC2626'><path d='M8 1a7 7 0 100 14A7 7 0 008 1zm0 3a1 1 0 011 1v4a1 1 0 11-2 0V5a1 1 0 011-1zm0 8a1 1 0 110 2 1 1 0 010-2z'/></svg>");
}
.form_hint {
	margin-top: 6px;
	font-size: 12px;
	color: #6B7280;
	line-height: 1.4;
}

/* 비번 강도 바 */
.pw_strength {
	margin-top: 8px;
	width: 100%;
	max-width: 420px;
	height: 6px;
	background: #F3F4F6;
	border-radius: 3px;
	overflow: hidden;
}
.pw_strength .pw_strength_fill {
	display: block;
	height: 100%;
	width: 0;
	background: #E5E7EB;
	transition: width 0.2s ease, background 0.2s ease;
}
.pw_strength[data-level="1"] .pw_strength_fill { width: 25%;  background: #DC2626; }
.pw_strength[data-level="2"] .pw_strength_fill { width: 50%;  background: #F97316; }
.pw_strength[data-level="3"] .pw_strength_fill { width: 75%;  background: #EAB308; }
.pw_strength[data-level="4"] .pw_strength_fill { width: 100%; background: #15803D; }

/* 라디오 그룹 */
.radio_group {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	padding: 4px 0;
}
.radio_group label {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 10px 24px;
	font-size: 13px;
	color: #374151;
	background: #F9FAFB;
	border: 1px solid #E5E7EB;
	border-radius: 6px;
	cursor: pointer;
	transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
	white-space: nowrap;
}
.radio_group label:hover {
	background: #F0FDFA;
	border-color: #5EEAD4;
}
.radio_group label:has(input:checked) {
	background: #F0FDFA;
	border-color: #0F766E;
	color: #0F766E;
	font-weight: 600;
}
.radio_group input[type="radio"] {
	width: 18px;
	height: 18px;
	margin: 0;
	accent-color: #0F766E;
	cursor: pointer;
}

/* 이메일 입력 */
.email_group {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
}
.member_form .tbl_member_set .email_group .d_form { height: 42px; }
.email_group .txtEmail { width: 180px; max-width: 100%; }
.email_group select.d_form { width: 150px; }
.email_group .email_at {
	font-size: 15px;
	color: #6B7280;
	padding: 0 2px;
}

/* 주소 입력 */
.addr_row {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 8px;
	flex-wrap: wrap;
}
.addr_row:last-child { margin-bottom: 0; }
.addr_row input.d_form { flex: 1; min-width: 200px; }
.addr_row #txtPostNum { flex: 0 0 140px; min-width: 140px; max-width: 140px; }
.addr_row .d_btn {
	height: 42px;
	padding: 0 16px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 13px;
	font-weight: 500;
	background: #fff;
	border: 1px solid #D1D5DB;
	border-radius: 6px;
	color: #374151;
	text-decoration: none;
}
.addr_row .d_btn:hover { background: #F9FAFB; border-color: #9CA3AF; }

/* 폼 액션 (하단 버튼) — hbil teal 그라데이션 */
.form_actions {
	display: flex;
	justify-content: center;
	gap: 12px;
	margin-top: 28px;
	padding: 24px 0 8px;
}
.form_actions .d_btn {
	min-width: 160px;
	height: 48px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 28px;
	font-size: 15px;
	font-weight: 600;
	border-radius: 12px;     /* hbil 라운드 통일 */
	border: 1px solid #D1D5DB;
	background: #fff;
	color: #374151;
	text-decoration: none;
	transition: all 0.15s ease;
}
.form_actions .d_btn:hover {
	background: #F0FDFA;
	border-color: #5EEAD4;
	color: #0F766E;
}
.form_actions .d_btn.type_black {
	background: linear-gradient(135deg, #10B981 0%, #0F766E 100%);
	border-color: #0F766E;
	color: #fff !important;
	box-shadow: 0 4px 12px rgba(15, 118, 110, 0.25);
}
.form_actions .d_btn.type_black:hover {
	background: linear-gradient(135deg, #059669 0%, #115E59 100%);
	border-color: #115E59;
	transform: translateY(-1px);
	box-shadow: 0 6px 16px rgba(15, 118, 110, 0.30);
}
.form_actions .d_btn.type_red {
	background: #DC2626;
	border-color: #DC2626;
	color: #fff !important;
}
.form_actions .d_btn.type_red:hover {
	background: #B91C1C;
	border-color: #B91C1C;
}

/* tab_bar (옛 잔재) */
.tab_bar { margin-bottom: 0; }

/* SMS 인증 타이머 */
.sms_timer {
	display: inline-flex;
	align-items: center;
	padding: 0 10px;
	font-size: 13px;
	font-weight: 500;
	color: #DC2626;
}

/* 비밀번호 재확인 카드 (page_login.html) — hbil teal 그라데이션 헤더 */
.auth_card {
	max-width: 460px;
	margin: 60px auto;
	padding: 40px 32px;
	background: #fff;
	border: 1px solid #99F6E4;
	border-top: 4px solid #0F766E;
	border-radius: 14px;
	box-shadow: 0 6px 24px rgba(15, 118, 110, 0.10);
	text-align: center;
	box-sizing: border-box;
}
.auth_icon {
	width: 72px;
	height: 72px;
	margin: 0 auto 18px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, #10B981 0%, #0F766E 100%);
	color: #fff;
	border-radius: 50%;
	font-size: 28px;
	box-shadow: 0 4px 12px rgba(15, 118, 110, 0.25);
}
.auth_title {
	margin: 0 0 10px;
	font-size: 19px;
	font-weight: 700;
	color: #064E3B;
	letter-spacing: -0.02em;
}
.auth_desc {
	margin: 0 0 26px;
	color: #4B5563;
	font-size: 13.5px;
	line-height: 1.65;
}
.auth_form {
	display: flex;
	justify-content: center;
}
.auth_form .combo { width: 100%; max-width: 320px; }
.auth_form .combo .d_form { flex: 1; }

/* FAQ 스타일 (옛 코드 유지 — 톤만 조정) */
#tab_faq .panels {
	border: 1px solid #E5E7EB;
	border-top: 2px solid #064E3B;
	border-radius: 0 0 8px 8px;
	background: #fff;
	margin: 0;
}
#tab_faq dl {
	width: 100%;
	padding: 12px 16px;
	box-sizing: border-box;
	border-bottom: 1px solid #F3F4F6;
}
#tab_faq dl:last-child { border-bottom: none; }
#tab_faq dt {
	font-size: 14px;
	font-weight: 600;
	color: #111827;
	cursor: pointer;
	line-height: 1.5;
	padding: 4px 0;
}
#tab_faq dd {
	margin: 8px 0 0;
	font-size: 13px;
	color: #6B7280;
	line-height: 1.6;
}
