/* css/pages/member-join.css — member/join.html 전용 보정 (R24 레이어 간 CSS 오염 보정)
 * 원본 분리 문서에서는 style-21(PC 스킨)과 style-17(m 스킨)이 각자 로드되지만
 * 병합 문서에서는 둘 다 로드되어 서로를 오염시킨다 — 원본 각 스킨의 값으로 되돌린다. */

/* PC 뷰: style-17(m 스킨, 뒤 로드)의 전역 규칙이 PC 본문을 오염 → style-21/base 원본값 복원 */
@media (min-width: 1025px) {
  /* style-17 body,code{13px #1b1b1b}+{font-family:Roboto} 오염 → style-21 원문 body 복원
   * (borderColor=currentColor 라 #contents/#wrap 의 27,27,27 오염도 함께 해소) */
  body {
    font-size: 12px;
    font-family: 'NanumGothic', "맑은고딕", "Malgun Gothic", Dotum, "돋음", sans-serif;
    line-height: 1.2em;
    color: #666;
  }
  /* style-17 .xans-member-join{margin:14px 7px 0;padding:0 0 29px;color:#63666e;font-size:11px}
   * 오염 복원 — 원본 PC(style-21)는 bare 규칙 무 = 전부 초기값/상속(12px #666) */
  .xans-member-join {
    margin: 0;
    padding: 0;
    color: inherit;
    font-size: inherit;
  }
  /* style-17 .ec-base-box{padding:14px;margin:14px;line-height:1.6;color:#757575;background:#fff}
   * 오염 → style-21 원문 복원(.typeThinBg 1px #d7d5d5/#fbfafa 오버라이드는 상위 특이성으로 유지) */
  .ec-base-box {
    padding: 20px;
    margin: 0 auto;
    border: 5px solid #e8e8e8;
    line-height: 1.2em;
    color: #404040;
    background: none;
  }
  /* style-17 #container{z-index:100;position:relative;overflow:hidden;margin:-1px;background:#fff} 가
   * PC GNB(#mononav, absolute top:100 z10)를 덮음 — style-21 원본값(#container{width:80%;margin:0 auto}) 복원 */
  #container {
    position: static;
    z-index: auto;
    overflow: visible;
    margin: 0 auto;
    background-color: transparent;
  }
  /* style-17 #contents{position:relative;background-color:#fff}+{padding:0 0 29px} 오염 →
   * style-21 원본(무선언 = static/투명/패딩 0) 복원 */
  #contents {
    position: static;
    background-color: transparent;
    padding: 0;
  }
  /* froala(R18 미반입) .fr-view p{line-height:1.5} 계산값 복원 — src p lh 18px(member-privacy#1 동형) */
  .fr-view p {
    line-height: 1.5;
  }
  /* style-17(m) bare .ec-base-table{border #d5d5d5;bg #fff;color #353535} 오염 →
   * style-21 원문 복원(래퍼 무보더/투명, 보더는 table 이 소유 — src borderColor currentColor #666) */
  .ec-base-table {
    border: 0;
    background: none;
    color: inherit;
  }
  /* style-17 .ec-base-table table:after(백색 1px 라인)가 style-21 table:before(#d7d5d5)를 덮음 */
  .ec-base-table table:after {
    display: none;
  }
  /* style-17 th,td{border-top #ececec;font-size 13;vertical-align top} 오염 → style-21 원문 */
  .ec-base-table th,
  .ec-base-table td {
    font-size: 12px;
  }
  .ec-base-table td {
    padding: 11px 10px 10px;
    border-top: 1px solid #dfdfdf;
    color: #353535;
    vertical-align: middle;
  }
  /* style-17 .typeWrite td{padding 7px 13px 6px;line-height 27px} 오염 → style-21 원문(8/10/7, lh 1.5=18px) */
  .ec-base-table.typeWrite td {
    padding: 8px 10px 7px;
    line-height: 1.5;
  }
  /* style-17 .xans-member-join .ec-base-table.typeWrite{margin:0 0 7px} 오염 → src marginBottom 0 */
  .xans-member-join .ec-base-table.typeWrite {
    margin: 0;
  }
  /* 첫 typeWrite(회원구분/회원인증): 원본은 컨테이너(DIV+TABLE h1, table mb10)를 남기고
   * Cafe24 join JS 가 행(tr)만 은닉 — src 트리에 DIV.typeWrite/TABLE h1 실존(y229).
   * 전항 display:none(컨테이너 통째)은 노드를 지워 시퀀스 매칭 붕괴(COLGROUP/TBODY extra,
   * fr-view-privacy-required missing) → 행 은닉으로 교체(원본 렌더 동치) */
  #joinForm .xans-member-join > .ec-base-table.typeWrite:first-child tr {
    display: none;
  }
  /* style-17(m) bare input[type=…]{height:29;padding:10;border;radius}·select{h29;lh29;…} 오염 →
   * PC 원문 무규칙(style-21/base 전무 = UA 기본, src input h19) — 행높이 44→40, 하부 +58px 시프트 해소 */
  #contents input[type="text"],
  #contents input[type="password"],
  #contents input[type="number"],
  #contents input[type="tel"],
  #contents select {
    all: revert;
    padding: 0; /* 원본 PC 는 reset input{padding:0} 적용(src h19/w149) — revert 가 UA 기본(1px 2px, h21/w153)으로 되돌림 → 복원 */
  }
  /* 비밀번호 조건 안내(.eTooltip .typeUpper): 원본은 Cafe24 join JS 가 로드 시 상시 노출 + 정적 흐름 배치
   * (src 실측 [309,308,390,144]: display block·position static·margin/pad/border/bg 무) —
   * base .ec-base-tooltip{display:none;absolute;pad15;border;shadow}·style-17 typeUpper{absolute;w200;pad14} 물리침 */
  #contents .eTooltip .ec-base-tooltip.typeUpper {
    display: block;
    position: static;
    width: 390px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: none;
    box-shadow: none;
    text-align: start; /* style-17 .ec-base-tooltip{text-align:left} 오염 — style-21 무선언(start) 복원 */
  }
  /* style-17 .ec-base-help{margin:8px 4px} 오염 — 원본 PC ul 마진 0(src ul [309,326,390,126]);
   * 하단 8px 은 무패딩 tip 밖으로 마진 붕괴돼 행높이 +16 원인 */
  #contents .eTooltip .ec-base-tooltip.typeUpper ul.ec-base-help {
    margin: 0;
  }
  /* style-17 typeUpper:before/:after 말풍선 삼각형 — 원본 PC(style-21)에 없음 */
  #contents .eTooltip .ec-base-tooltip.typeUpper:before,
  #contents .eTooltip .ec-base-tooltip.typeUpper:after {
    display: none;
  }
  /* 원본 Cafe24 join JS 가 은닉하는 행(개인회원 기본): 외국인정보(빈 ssn 행)·상호명·사업자번호·국적 —
   * src 가시 행은 아이디/비밀번호/비밀번호확인/이름/휴대전화/이메일 6행뿐(정답샷·src 트리 실측) */
  #contents tr#companyRow,
  #contents tr#companyNoRow,
  #contents tr#nation,
  #contents tr:has(> th#ssnTitle) {
    display: none;
  }
  /* style-17 .ec-base-table tbody th{padding:12px 0 12px 13px} 오염(행높이 43) →
   * style-21 원문 11px 0 10px 18px 복원(src 행높이 40) */
  .ec-base-table tbody th {
    padding: 11px 0 10px 18px;
  }
  /* style-17 .xans-member-join #phone1,#mobile1{width:33%}(≈334px) 오염 — (1,1,0)이라 all:revert(1,0,1)도 짐 →
   * style-21 원문 width:60px 복원(정답샷 휴대전화 셀렉트 실측) */
  #contents #phone1,
  #contents #mobile1 {
    width: 60px;
  }
  /* style-17(m) bare .ec-base-button{margin:10px auto;text-align:right} 후승 오염 →
   * style-21 원문 복원(margin 무선언=0, text-align:center — src 버튼 x532 센터·footer y +20 근원) */
  #contents .ec-base-button {
    margin: 0;
    text-align: center;
  }
  /* style-17(m) bare label{display:inline-block;margin:0 7px 0 0;min-height:20px;line-height:20px;
   * font-size:13px;vertical-align:middle} 오염 — 원본 PC(style-21/base/reset) bare label 무규칙=UA 기본.
   * gStrong p 의 label 이 14px/lh22 상속 대신 13px/lh20 inline-block 이 돼 h86.5(src 77) → footer +9.5 잔차 근원 */
  #contents label {
    display: inline;
    margin: 0;
    min-height: 0;
    line-height: inherit;
    font-size: inherit;
    vertical-align: baseline;
  }
}

/* 모바일 뷰: style-21(PC 스킨) 오염 보정 — 원본 m 스킨(style-17) 계산값 복원 */
@media (max-width: 1024px) {
  #container { width: 100%; }             /* style-21 #container{width:80%} 오염 */
  #contents { float: none; }              /* style-21 #contents{float:right} 오염 */
  /* 원본 m 문서는 footer 가 #wrap 내부라 #wrap{min-height:100%}(style-17)가 무해했으나
   * 병합 문서는 footer 가 #wrap 밖(PC 구조) — 그대로 두면 본문 아래 뷰포트만큼 공백 발생 */
  #wrap { min-height: 0; }
  /* 원본 m 은 .mainNav 가 float:left #header 내부 — 병합 문서에선 헤더 밖 조각(nav-m)이라
   * 헤더 float 에 밀려 첫 ul(BFC, overflow:hidden)이 폭 0 으로 붕괴 → float 해제+전폭 복원 */
  .m-only .mainNav { clear: both; }
  .m-only .mainNav ul { width: 100%; }
}

/* --- member-join 존 배선(2026-08-06): API 상태/메시지 스타일 --- */
.joinStateNotice {
  margin: 10px 0;
  padding: 8px 12px;
  border: 1px solid #f0dcb2;
  background: #fdf6e3;
  color: #8a6d3b;
  font-size: 12px;
  line-height: 1.5;
}
.joinStateError {
  margin: 10px 0;
  padding: 8px 12px;
  border: 1px solid #efc7c7;
  background: #fdf0f0;
  color: #c0392b;
  font-size: 12px;
  line-height: 1.5;
}
#idMsg.txtOk,
#emailMsg.txtOk,
#emailCodeMsg.txtOk { color: #2e7d32; }
#idMsg.txtWarn,
#emailMsg.txtWarn,
#emailCodeMsg.txtWarn,
#pwConfirmMsg.txtWarn { color: #c0392b; }
button[data-id-check],
button[data-email-send],
button[data-email-verify] {
  display: inline-block;
  padding: 2px 8px;
  border: 1px solid #d5d5d5;
  background: #fafafa;
  color: #333;
  font-size: 12px;
  line-height: 18px;
  vertical-align: middle;
  cursor: pointer;
}
button[data-join-submit]:disabled,
button[data-id-check]:disabled,
button[data-email-send]:disabled,
button[data-email-verify]:disabled { opacity: 0.6; cursor: default; }
