/* DEEP SQUARE 공통 폼 상태 스타일 (Phase 1A) — 기존 .alert_text 서체 유지, 색만 상태별로.
   색 근거: 보강설계서 V1.2 "공통 상태 색상 규칙" (오류 #C62828 / 브랜드 블루 #0B5FD8 / 딥 네이비 #021838) */

.alert_text.ds-error > span { color: #C62828 !important; }
.alert_text.ds-success > span { color: #0B5FD8 !important; }
li.ds-is-error .input_con input,
li.ds-is-error .input_con select,
li.ds-is-error .input_con textarea,
.list_div.ds-is-error .input_con input { border-color: #C62828 !important; }
li.ds-is-success .input_con input { border-color: #0B5FD8 !important; }
.alert_text.ds-dyn > span { font-size: min(14px, 0.73vw); font-weight: 500; line-height: normal; display: inline-block; margin-top: 6px; }
@media (max-width: 768px) { .alert_text.ds-dyn > span { font-size: 3.89vw; } }

/* 처리 중 버튼 */
.ds-busy { opacity: .6; pointer-events: none; }

/* 전체 오류 토스트 */
.ds-toast { position: fixed; left: 50%; top: 24px; transform: translate(-50%, -20px); background: #021838; color: #FFF;
  padding: 12px 20px; border-radius: 10px; font-size: 14px; line-height: 1.4; max-width: calc(100vw - 32px); box-shadow: 0 6px 24px rgba(2,24,56,.25);
  opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s; z-index: 10000; }
.ds-toast.on { opacity: 1; transform: translate(-50%, 0); }

/* 다음 우편번호 레이어 — PC 중앙 / 모바일 전체화면 */
.ds-postcode-layer { display: none; position: fixed; inset: 0; z-index: 9999; }
.ds-postcode-layer.on { display: block; }
.ds-postcode-bg { position: absolute; inset: 0; background: rgba(2,24,56,.55); }
.ds-postcode-box { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 500px; height: 560px; max-width: calc(100vw - 32px); max-height: calc(100vh - 32px);
  background: #FFF; border-radius: 12px; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 12px 40px rgba(0,0,0,.3); }
.ds-postcode-head { display: flex; align-items: center; justify-content: space-between; padding: 0 16px; height: 48px; background: #021838; color: #FFF; font-size: 15px; font-weight: 600; flex: 0 0 auto; }
.ds-postcode-close { background: none; border: 0; color: #FFF; font-size: 26px; line-height: 1; cursor: pointer; padding: 0 4px; }
.ds-postcode-body { flex: 1 1 auto; min-height: 0; }
body.ds-postcode-open { overflow: hidden; }
@media (max-width: 768px) {
  .ds-postcode-box { left: 0; top: 0; transform: none; width: 100vw; height: 100vh; height: 100dvh; max-width: none; max-height: none; border-radius: 0; }
}

/* 강사 가입·마이페이지 수정 — 종목별 "자격 갱신 만료일" 3칸 (생년월일 컴포넌트 재사용, teacher_con 범위에 스타일 적용) */
.join_common_con .teacher_con .birth_con , .personal_sub01_con .teacher_con .birth_con { display: flex; align-items: center; gap: min(8px, 0.42vw); flex-wrap: nowrap; }
.join_common_con .teacher_con .birth_con input , .personal_sub01_con .teacher_con .birth_con input { width: min(80px, 4.2vw); height: min(44px, 2.29vw); border: 1px solid #EBEBEB; background: #FFF; padding: 0 min(10px, 0.52vw); font-size: min(18px, 0.94vw); color: #1A1A1A; text-align: center; }
.join_common_con .teacher_con .birth_con input:first-child , .personal_sub01_con .teacher_con .birth_con input:first-child { width: min(100px, 5.2vw); }
.join_common_con .teacher_con .birth_con > span , .personal_sub01_con .teacher_con .birth_con > span { font-size: min(16px, 0.83vw); color: #373737; margin-right: min(10px, 0.52vw); }
/* 라벨(-자격 갱신 만료일)과 3칸 사이 여백 — 아래 '-자격증'과 파일 입력란 사이(.file_con margin-top)와 동일 */
.join_common_con .teacher_con .list_div > .input_con , .personal_sub01_con .teacher_con .list_div > .input_con { margin: min(10px, 0.52vw) 0 0; }
@media (max-width: 768px) {
  .join_common_con .teacher_con .birth_con , .personal_sub01_con .teacher_con .birth_con { gap: 1.5vw; }
  .join_common_con .teacher_con .birth_con input , .personal_sub01_con .teacher_con .birth_con input { width: 18vw; height: 12.22vw; font-size: 4.4vw; padding: 0 2vw; }
  .join_common_con .teacher_con .birth_con input:first-child , .personal_sub01_con .teacher_con .birth_con input:first-child { width: 24vw; }
  .join_common_con .teacher_con .birth_con > span , .personal_sub01_con .teacher_con .birth_con > span { font-size: 4vw; margin-right: 1vw; }
  .join_common_con .teacher_con .list_div > .input_con , .personal_sub01_con .teacher_con .list_div > .input_con { margin: 2.78vw 0 0; }
}

/* 1:1 문의 — 이메일 "직접 입력" 도메인 칸(Phase 2 추가 요소).
   한 줄에 안 들어가면 아래 줄로 내리고(제목 칸이 줄어들어 왼쪽이 밀리던 문제), 제목 칸 폭은 고정한다. 모바일은 아래 줄 전체 폭 */
.customer_inquiry_con > .contents_con > .list_con > ul > li > .list_div > .title_con { flex-shrink: 0; }
.customer_inquiry_con .email_con { flex-wrap: wrap; row-gap: min(8px, 0.42vw); }
.customer_inquiry_con .email_con input[name="email_domain_custom"] { flex: 0 0 auto; width: min(150px, 7.81vw); min-width: 0; }
@media (max-width: 768px) {
  .customer_inquiry_con .email_con { flex-wrap: wrap; }
  .customer_inquiry_con .email_con input[name="email_domain_custom"] { flex: 1 1 100% !important; width: 100% !important; min-width: 0; margin-top: 1.39vw; }   /* 퍼블리싱 규칙(flex:1)보다 우선 — 아래 줄로 내린다 */
}
