/* ============================================================
   v2au — 마추 인증 화면 공용 셸 (로그인 · 회원가입 · 가입완료)
   좌: 브랜드 패널(네이비 그라디언트) / 우: 폼 패널(화이트) — 전폭.
   이 페이지들은 jt2.css 가 로드되지 않는 리빌더 기본 레이아웃 위에서
   돌므로 모든 색을 여기서 자급한다. (Pretendard 는 테마 폰트로 로드됨)
   ============================================================ */

/* ── 리빌더 셸 정리 — 헤더/타이틀 숨기고 전폭 확보 ── */
html, body { background: #FFFFFF !important; }
/* ⚠ 스크롤바 2개 문제
   리빌더 mobile.css 의 `html, body { overflow-x: hidden }` 때문에 body 의
   overflow-y 가 visible → auto 로 승격되어(CSS 사양) html·body 가 각각
   스크롤 컨테이너가 됐다. 가로 클리핑은 html 에만 두고 body 는 문서 흐름으로 되돌린다. */
html { overflow-x: hidden; }
body { margin: 0; overflow: visible !important; height: auto !important; }
main, main#main, main#main.co_ffffff { background: #FFFFFF !important; padding: 0 !important; margin: 0 !important; max-width: none !important; }
#header, #container_title, #rb_topvisual { display: none !important; }
.contents_wrap, #contents_wrap { padding: 0 !important; }
.sub { padding-top: 0 !important; }

/* ── 스플릿 셸 ── */
.v2au {
  display: flex; width: 100%; min-height: 100vh;
  font-family: 'Pretendard', -apple-system, BlinkMacSystemFont, 'Malgun Gothic', sans-serif;
  color: #0E1B2C; word-break: keep-all;
}
.v2au *, .v2au *::before, .v2au *::after { box-sizing: border-box; }

/* 좌측 브랜드 패널 */
.v2au-brand {
  flex: 1 1 46%; min-width: 0; position: sticky; top: 0; height: 100vh; align-self: flex-start;
  display: flex; flex-direction: column; justify-content: space-between; gap: 40px;
  padding: 52px 58px 42px; overflow: hidden;
  background:
    radial-gradient(900px 520px at 85% -10%, rgba(37, 99, 235, .50), transparent 62%),
    radial-gradient(700px 480px at -15% 112%, rgba(37, 99, 235, .32), transparent 56%),
    linear-gradient(152deg, #0B1526 0%, #101F3C 55%, #15294E 100%);
  color: #EAF0FB;
}
.v2au-brand::before { /* 미세 그리드 */
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .5;
  background-image:
    linear-gradient(rgba(255, 255, 255, .05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .05) 1px, transparent 1px);
  background-size: 44px 44px;
  -webkit-mask-image: radial-gradient(760px 520px at 32% 36%, #000 28%, transparent 76%);
          mask-image: radial-gradient(760px 520px at 32% 36%, #000 28%, transparent 76%);
}
.v2au-brand::after { /* 워터마크 */
  content: attr(data-mark); position: absolute; right: -44px; bottom: -84px;
  font-size: 330px; font-weight: 800; line-height: 1; letter-spacing: -.04em;
  color: rgba(255, 255, 255, .045); pointer-events: none;
}
.v2au-logo { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; color: #FFFFFF; position: relative; z-index: 1; width: max-content; }
.v2au-logo .bi {
  width: 38px; height: 38px; border-radius: 11px; background: #2563EB; color: #FFFFFF;
  font-size: 17px; font-weight: 800; display: flex; align-items: center; justify-content: center;
  box-shadow: 0 8px 22px rgba(37, 99, 235, .45);
}
.v2au-logo .bt { font-size: 21px; font-weight: 800; letter-spacing: -.02em; }
.v2au-mid { position: relative; z-index: 1; }
.v2au-mid h2 { margin: 0 0 14px; font-size: 33px; line-height: 1.3; font-weight: 800; letter-spacing: -.03em; color: #FFFFFF; }
.v2au-mid .sub { margin: 0 0 28px; font-size: 14.5px; line-height: 1.75; color: #A9B8D6; }
.v2au-feats { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.v2au-feats li { display: flex; align-items: flex-start; gap: 10px; font-size: 13.5px; font-weight: 600; color: #D5DFF2; }
.v2au-feats li i {
  flex: none; width: 20px; height: 20px; margin-top: 1px; border-radius: 6px;
  background: rgba(37, 99, 235, .30); color: #8FB2FF;
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; font-style: normal; font-weight: 800;
}
.v2au-foot { position: relative; z-index: 1; margin: 0; font-size: 12px; color: #5F719A; }

/* 우측 폼 패널 */
.v2au-pane { flex: 1 1 54%; min-width: 0; display: flex; justify-content: center; padding: 48px 44px; background: #FFFFFF; }
.v2au-body { width: 100%; max-width: 424px; margin-top: auto; margin-bottom: auto; } /* auto 마진 세로 중앙 — 콘텐츠가 길어져도 위가 잘리지 않는다 */
.v2au-body--wide { max-width: 486px; }
.v2au-back { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 26px; font-size: 12.5px; font-weight: 700; color: #8B98AC; text-decoration: none; }
.v2au-back:hover { color: #2563EB; text-decoration: none; }
.v2au-title { margin: 0 0 7px; font-size: 27px; font-weight: 800; letter-spacing: -.02em; color: #0E1B2C; }
.v2au-sub { margin: 0 0 26px; font-size: 13.5px; line-height: 1.65; color: #8B98AC; }

/* 입력 요소 */
.v2au-field { margin-bottom: 14px; }
.v2au-field label { display: block; margin-bottom: 7px; font-size: 12.5px; font-weight: 700; color: #5A6A82; }
.v2au-body input[type=text], .v2au-body input[type=password], .v2au-body input[type=email], .v2au-body input[type=tel] {
  width: 100%; height: 50px; border: 1.5px solid #E7EDF6; background: #F8FAFE; border-radius: 13px;
  padding: 0 16px; font-family: inherit; font-size: 14.5px; font-weight: 600; color: #0E1B2C; outline: 0;
  transition: border-color .15s, box-shadow .15s, background .15s;
}
.v2au-body input[type=text]:focus, .v2au-body input[type=password]:focus, .v2au-body input[type=email]:focus, .v2au-body input[type=tel]:focus {
  border-color: #2563EB; background: #FFFFFF; box-shadow: 0 0 0 4px rgba(37, 99, 235, .10);
}
.v2au-body input::placeholder { color: #AAB6C8; font-weight: 500; }
.v2au-btn {
  display: flex; align-items: center; justify-content: center; width: 100%; height: 52px; margin-top: 8px;
  border: 0; border-radius: 13px; cursor: pointer; text-decoration: none;
  background: linear-gradient(180deg, #2E6BF0, #2563EB); color: #FFFFFF;
  font-family: inherit; font-size: 15.5px; font-weight: 800; letter-spacing: -.01em;
  box-shadow: 0 8px 20px rgba(37, 99, 235, .28);
  transition: transform .12s, box-shadow .12s, filter .12s;
}
.v2au-btn:hover { filter: brightness(1.06); box-shadow: 0 10px 24px rgba(37, 99, 235, .34); transform: translateY(-1px); color: #FFFFFF; }
.v2au-btn:active { transform: translateY(0); }
.v2au-row { display: flex; align-items: center; justify-content: space-between; margin-top: 15px; }
.v2au-check { display: flex; align-items: center; gap: 7px; font-size: 13px; font-weight: 600; color: #5A6A82; cursor: pointer; }
.v2au-check input { width: 16px; height: 16px; accent-color: #2563EB; cursor: pointer; }
.v2au-row a { font-size: 13px; font-weight: 700; color: #8B98AC; text-decoration: none; }
.v2au-row a:hover { color: #2563EB; }
.v2au-div { display: flex; align-items: center; gap: 12px; margin: 26px 0 18px; font-size: 12px; font-weight: 700; color: #B8C2D2; white-space: nowrap; }
.v2au-div::before, .v2au-div::after { content: ""; flex: 1; height: 1px; background: #EEF2F8; }
.v2au-joinbox {
  margin-top: 24px; background: #F1F5FE; border: 1px solid #DDE7FB; border-radius: 13px;
  padding: 15px 18px; text-align: center; font-size: 13.5px; color: #5A6A82;
}
.v2au-joinbox a { margin-left: 7px; font-weight: 800; color: #1D4ED8; text-decoration: none; }
.v2au-sec { margin-top: 26px; padding-top: 22px; border-top: 1px solid #EEF2F8; }
.v2au-sec h3 { margin: 0 0 12px; font-size: 16px; font-weight: 800; }
.v2au-note { margin: 8px 0; font-size: 12.5px; line-height: 1.65; color: #8B98AC; }
.v2au-ta {
  max-height: 150px; overflow-y: auto; border: 1.5px solid #E7EDF6; border-radius: 12px;
  padding: 12px 14px; font-size: 12.5px; line-height: 1.7; color: #5A6A82; background: #F8FAFE;
}
.v2au-cancel { display: block; margin-top: 16px; text-align: center; font-size: 13px; font-weight: 700; color: #8B98AC; text-decoration: none; }
.v2au-cancel:hover { color: #2563EB; }

/* 약관 동의 (회원가입 1단계) */
.v2au-agreeall {
  display: flex; align-items: center; gap: 9px; margin-bottom: 14px; cursor: pointer;
  background: #F1F5FE; border: 1.5px solid #BFD3FA; border-radius: 13px; padding: 15px 16px;
  font-size: 14.5px; font-weight: 800; color: #173E9E;
}
.v2au-agreeall input { width: 17px; height: 17px; accent-color: #2563EB; cursor: pointer; }
.v2au-terms { margin-bottom: 12px; background: #FFFFFF; border: 1.5px solid #E7EDF6; border-radius: 13px; padding: 14px 16px 12px; }
.v2au-terms .tt { display: block; margin-bottom: 9px; font-size: 13px; font-weight: 800; color: #0E1B2C; }
.v2au-terms textarea {
  width: 100%; height: 110px; resize: vertical; border: 0; outline: 0;
  background: #F8FAFE; border-radius: 9px; padding: 10px 12px;
  font-family: inherit; font-size: 12px; line-height: 1.65; color: #5A6A82;
}
.v2au-terms .ck { display: flex; align-items: center; gap: 7px; margin-top: 10px; font-size: 12.5px; font-weight: 700; color: #5A6A82; cursor: pointer; }
.v2au-terms .ck input { width: 15px; height: 15px; accent-color: #2563EB; cursor: pointer; }

/* 가입 완료 */
.v2au-done { text-align: center; padding: 8px 0 0; }
.v2au-done .ic {
  width: 64px; height: 64px; margin: 0 auto 18px; border-radius: 50%;
  background: #E9F9F0; color: #12A150; font-size: 28px; font-weight: 800;
  display: flex; align-items: center; justify-content: center;
}
.v2au-done h1 { margin: 0 0 10px; font-size: 24px; font-weight: 800; letter-spacing: -.02em; }
.v2au-done .dsc { margin: 0 0 24px; font-size: 13.5px; line-height: 1.75; color: #8B98AC; }
.v2au-done .dsc b { color: #1D4ED8; }

/* 회원유형(입점사) 라디오 — 파트너 플러그인 사용 시에만 노출 */
.v2au .switch_rb { display: inline-flex; align-items: center; gap: 7px; margin: 0 14px 8px 0; font-size: 13px; font-weight: 700; color: #5A6A82; cursor: pointer; }
.v2au .switch_rb input { width: 16px; height: 16px; accent-color: #2563EB; }
.v2au .help_st1, .v2au .help_st2 { margin-top: 8px; font-size: 12.5px; line-height: 1.6; color: #8B98AC; }

/* SNS 로그인/가입 위젯 최소 보정 */
.v2au #sns_login, .v2au #sns_register { border: 0; padding: 0; margin: 0; }
.v2au #sns_login h3, .v2au #sns_register h2 { display: none; }
.v2au .sns-wrap { display: flex; justify-content: center; gap: 10px; }
.v2au .sns-wrap a { display: inline-flex; border: 0; }

/* ============================================================
   register_form(회원정보 입력 — rb_login_box 마크업)을 v2 로 재스킨
   style.css 가 같이 로드되므로 동일 특이도 + 후순위로 눌러쓴다.
   ============================================================ */
.v2au .rb_login { width: 100%; padding: 0; }
.v2au .rb_login .rb_login_box {
  width: 100%; max-width: none; margin: 0; padding: 0;
  background: transparent; border-radius: 0; list-style: none;
}
.v2au .rb_login .rb_login_box .rb_login_logo { display: none; }
.v2au .rb_login .rb_login_box li { margin-bottom: 16px; list-style: none; }
.v2au .rb_login .rb_login_box li span { font-family: inherit; font-size: 12.5px; font-weight: 700; color: #5A6A82; margin-bottom: 7px; }
.v2au .rb_login .rb_login_box .rb_reg_sub_title { font-size: 13px; line-height: 1.65; color: #8B98AC; margin-bottom: 22px; }
.v2au .rb_login_box .input,
.v2au .rb_login_box input[type=text], .v2au .rb_login_box input[type=password],
.v2au .rb_login_box input[type=email], .v2au .rb_login_box input[type=tel] {
  height: 48px; width: 100%; border: 1.5px solid #E7EDF6; background: #F8FAFE; border-radius: 12px;
  padding: 0 15px; font-family: inherit; font-size: 14px; font-weight: 600; color: #0E1B2C; outline: 0;
  transition: border-color .15s, box-shadow .15s, background .15s;
}
.v2au .rb_login_box .input:focus,
.v2au .rb_login_box input[type=text]:focus, .v2au .rb_login_box input[type=password]:focus,
.v2au .rb_login_box input[type=email]:focus, .v2au .rb_login_box input[type=tel]:focus {
  border-color: #2563EB; background: #FFFFFF; box-shadow: 0 0 0 4px rgba(37, 99, 235, .10);
}
.v2au .rb_login_box .textarea {
  width: 100%; border: 1.5px solid #E7EDF6; background: #F8FAFE; border-radius: 12px;
  padding: 11px 13px; font-family: inherit; font-size: 12.5px; line-height: 1.65; color: #5A6A82; outline: 0;
}
.v2au .rb_login_box .input_wrap { display: flex; align-items: center; gap: 8px; }
.v2au .rb_login_box .input_wrap .input { flex: 1; min-width: 0; }
.v2au .rb_login_box .btn_frmline {
  flex: none; height: 42px; padding: 0 14px; border-radius: 10px; cursor: pointer;
  border: 1.5px solid #BFD3FA; background: #F1F5FE; color: #1D4ED8;
  font-family: inherit; font-size: 12.5px; font-weight: 700;
}
.v2au .rb_login_box .btn_frmline:hover { background: #E3ECFD; }
.v2au .rb_login_box .result_message { display: block; margin-top: 6px; font-size: 12px; }
.v2au .rb_login_box input[type=checkbox], .v2au .rb_login_box input[type=radio] { accent-color: #2563EB; }
.v2au .rb_login .rb_login_box li .btn_submit,
.v2au .rb_login_box .btn_submit {
  width: 100%; height: 52px; border: 0; border-radius: 13px; cursor: pointer;
  background: linear-gradient(180deg, #2E6BF0, #2563EB); color: #FFFFFF;
  font-family: inherit; font-size: 15.5px; font-weight: 800;
  box-shadow: 0 8px 20px rgba(37, 99, 235, .28);
}
.v2au .rb_login_box .btn_submit:hover { filter: brightness(1.06); }
.v2au .rb_login .rb_login_box li.join_links { margin-top: 26px; padding-top: 22px; border-top: 1px solid #EEF2F8; font-size: 13px; color: #8B98AC; text-align: center; }
.v2au .rb_login .rb_login_box li.join_links a { border-bottom: 0; font-weight: 700; color: #5A6A82; text-decoration: none; }
.v2au .rb_login .rb_login_box li.join_links a:hover { color: #2563EB; }
.v2au .rb_login_box #msg_certify { margin-top: 8px; font-size: 12.5px; color: #12A150; }
.v2au .rb_login_box .cert_desc { font-size: 11.5px; color: #AAB6C8; margin-left: 4px; }

/* ============================================================
   체크박스 · 라디오 — form.css 가 네이티브를 전역 숨김(display:none)하고
   input + label(형제)::before/::after 로 장식하는 패턴을 쓴다.
   v2au 안에서는 그 장식을 v2 톤(18px 라운드 · 파랑 체크)으로 재정의한다.
   ⚠ 마크업은 반드시 <input> + <label for=> 형제 순서여야 박스가 보인다.
   ============================================================ */
.v2au input[type=checkbox] + label,
.v2au input[type=radio] + label {
  position: relative; padding-left: 26px; padding-top: 0; margin-right: 0;
  cursor: pointer; vertical-align: middle;
  /* ⚠ 폼 CSS 에서 line-height 40.5px 이 흘러들어와 첫 줄이 아래로 밀리고,
     top:1px 에 고정된 박스만 위로 솟아 10px 어긋나 있었다.
     박스(18px, top 1px → 중심 10px)와 글자 중심이 같아지도록 20px 로 못박는다. */
  line-height: 20px;
}
.v2au input[type=checkbox] + label::before {
  position: absolute; left: 0; top: 2px; /* 첫 줄 기준 정렬 — 라벨이 두 줄로 꺾여도 박스가 떠다니지 않는다.
     2px 은 한글 글리프의 시각적 중심이 줄상자 중심보다 살짝 아래인 것을 보정한 값이다. */
  width: 18px; height: 18px; content: '';
  border: 1.5px solid #C9D5E8; border-radius: 6px; background: #FFFFFF;
  transition: border-color .13s, background .13s;
}
.v2au input[type=checkbox] + label::after { content: none; display: none; }
.v2au input[type=checkbox]:checked + label::before {
  border-color: #2563EB;
  background: #2563EB url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='3.6' stroke-linecap='round' stroke-linejoin='round' d='M5 12.6l4.5 4.5L19 7.8'/%3E%3C/svg%3E") center / 12px 12px no-repeat;
}
.v2au input[type=radio] + label::before {
  position: absolute; left: 0; top: 2px;
  width: 18px; height: 18px; content: '';
  border: 1.5px solid #C9D5E8; border-radius: 50%; background: #FFFFFF;
}
.v2au input[type=radio] + label::after {
  position: absolute; left: 5px; top: 7px;
  width: 8px; height: 8px; border-radius: 50%; background: #2563EB; border: 0;
}
.v2au input[type=radio]:checked + label::before { border-color: #2563EB; }
/* 파트너(입점사) 토글 — label 안에 input 이 든 구형 마크업은 네이티브로 복원 */
.v2au .switch_rb input[type=radio] {
  display: inline-block !important; position: static !important;
  width: 16px !important; height: 16px !important;
  -webkit-appearance: radio !important; appearance: auto !important;
  accent-color: #2563EB; margin: 0 2px 0 0;
}

/* ── 모바일: 상단 컴팩트 히어로 + 폼 전폭 ── */
@media (max-width: 900px) {
  .v2au { flex-direction: column; }
  /* ⚠ 세로 스택에서 두 패널이 컨테이너 폭으로 안 줄어들어(내용 기준 폭) 좁은 기기(360px)에서
     25px 씩 삐져나갔다 — 폭을 명시해 못 박는다 (Z플립4 등 360px 대응) */
  .v2au-brand, .v2au-pane { width: 100%; max-width: 100%; box-sizing: border-box; }
  /* 브랜드 문구가 최소내용폭(줄바꿈 불가 구간)으로 패널을 넓히던 잔여 넘침 차단 */
  .v2au-brand > *, .v2au-mid > * { min-width: 0; max-width: 100%; }
  .v2au-mid .sub, .v2au-mid h2 { overflow-wrap: break-word; }
  .v2au-brand { position: static; height: auto; flex: none; gap: 16px; padding: 24px 20px 22px; }
  .v2au-mid h2 { font-size: 21px; margin-bottom: 8px; }
  .v2au-mid .sub { font-size: 12.5px; margin-bottom: 12px; }
  .v2au-feats { gap: 7px; }
  .v2au-feats li { font-size: 12px; }
  .v2au-feats li i { width: 17px; height: 17px; font-size: 10px; }
  .v2au-brand::after { font-size: 190px; right: -26px; bottom: -56px; }
  .v2au-foot { display: none; }
  /* 좌우 여백 = 사이트 헤더 거터와 동일 (리빌더 style.css 의 rb_login_box 패딩도 무력화) */
  .v2au-pane { padding: 22px var(--jt2-gut, 16px) 48px; }
  .v2au-body, .v2au-body--wide { max-width: none; }
  .v2au .rb_login_box, .v2au .rb_login_box > li { padding-left: 0 !important; padding-right: 0 !important; }
  .v2au-body { margin-top: 0; }
  .v2au-back { margin-bottom: 18px; }
  .v2au-title { font-size: 23px; }
}

/* ── 좁은 기기 (갤럭시 Z플립·A 시리즈 360px, 구형 320px) ── */
@media (max-width: 380px) {
  .v2au-brand { padding: 20px 16px 18px; }
  .v2au-pane { padding: 20px 16px 44px; }
  .v2au-mid h2 { font-size: 19.5px; }
  .v2au-title { font-size: 21px; }
  .v2au-logo img { height: 26px !important; }
  .v2au-brand::after { font-size: 150px; right: -18px; bottom: -44px; }
  .v2au-terms, .v2au-agreeall { padding-left: 13px; padding-right: 13px; }
  .v2au-joinbox { padding: 13px 12px; font-size: 13px; }
  /* 회원정보 입력 — 입력칸 + [중복확인] 이 한 줄에 안 들어가면 버튼을 아래로 */
  .v2au .rb_login_box .input_wrap { flex-wrap: wrap; }
  .v2au .rb_login_box .input_wrap .input { flex: 1 1 100%; }
  .v2au .rb_login_box .btn_frmline { flex: 0 0 auto; }
}

/* ============================================================
   다크 모드 — 이 화면은 jt2.css 를 쓰지 않는 독립 인증 셸이라
   다크 규칙을 여기에 따로 둔다. 색은 jt2 다크 팔레트와 맞췄다.
   ============================================================ */
body.jt-dark .v2au { background: #0E141F; color: #E8EEF7; }
body.jt-dark .v2au-pane,
body.jt-dark .v2au-body { background: #0E141F; }
/* .v2au-mid 는 좌측 브랜드 패널(그라데이션) 위에 얹히는 영역이라
   배경을 칠하면 큰 검은 상자가 덮여버린다 — 배경/테두리는 건드리지 않는다. */

body.jt-dark .v2au-title { color: #EDF3FB; }
body.jt-dark .v2au-sub,
body.jt-dark .v2au-note,
body.jt-dark .v2au-foot { color: #8FA0B8; }
body.jt-dark .v2au-sec { color: #AFBDD2; }
body.jt-dark .v2au-field label { color: #AFBDD2; }

/* 입력창 — 흰 배경이 그대로 남으면 가장 눈에 띈다 */
body.jt-dark .v2au input[type=text],
body.jt-dark .v2au input[type=password],
body.jt-dark .v2au input[type=email],
body.jt-dark .v2au input[type=tel],
body.jt-dark .v2au select,
body.jt-dark .v2au textarea,
body.jt-dark .v2au-ta {
  background: #131B29 !important; border-color: #2A3550 !important; color: #E8EEF7 !important;
}
body.jt-dark .v2au input::placeholder,
body.jt-dark .v2au textarea::placeholder { color: #6B7A93; }
body.jt-dark .v2au input:focus,
body.jt-dark .v2au select:focus,
body.jt-dark .v2au textarea:focus { border-color: #2563EB !important; }

/* 약관 · 박스류 */
body.jt-dark .v2au-terms,
body.jt-dark .v2au-agreeall,
body.jt-dark .v2au-joinbox,
body.jt-dark .v2au-feats,
body.jt-dark .v2au-done { background: #131B29; border-color: #242F44; }
body.jt-dark .v2au-div { background: #242F44; }
body.jt-dark .v2au-row { border-color: #242F44; }

/* 체크박스 · 라디오 장식 */
body.jt-dark .v2au input[type=checkbox] + label::before,
body.jt-dark .v2au input[type=radio] + label::before {
  background: #131B29; border-color: #3A4763;
}
body.jt-dark .v2au input[type=checkbox]:checked + label::before { border-color: #2563EB; }

/* 버튼 */
body.jt-dark .v2au-btn { background: #2563EB; color: #FFFFFF; }
body.jt-dark .v2au-back,
body.jt-dark .v2au-cancel { color: #8FA0B8; }
body.jt-dark .v2au-check { color: #AFBDD2; }

/* 로고 — 어두운 배경에선 흰색 판이 필요하다 */
body.jt-dark .v2au-logo .lg--ink,
body.jt-dark .v2au-brand .lg--ink { display: none !important; }
body.jt-dark .v2au-logo .lg--w,
body.jt-dark .v2au-brand .lg--w { display: block !important; }

/* 그누보드 기본 요소가 섞여 들어오는 자리 */
body.jt-dark .v2au .rb_login_box,
body.jt-dark .v2au table { background: transparent; color: #E8EEF7; }
body.jt-dark .v2au a { color: #7FA6F5; }

/* 어두운 배경에 어두운 글자로 묻히던 자리 (실측 3곳)
   — 약관 제목(.tt), '아래 약관에 모두 동의합니다' 라벨.
     라벨은 잉크/파랑 계열이라 다크 배경과 조도 차이가 거의 없었다. */
body.jt-dark .v2au .tt { color: #EDF3FB !important; }
body.jt-dark .v2au label { color: #E8EEF7 !important; }
body.jt-dark .v2au-agreeall { background: #16233D !important; border-color: #2A3550 !important; }
body.jt-dark .v2au-agreeall label { color: #9FC0FF !important; }
body.jt-dark .v2au-ta { color: #C8D3E4 !important; }
