/* ══════════════════════════════════════════════════════════════════════════
   가입 화면 전용 — 로그인 셸(login.css) 위에 얹는 한 가지 예외.

   🔴왜 필요한가 (실측):
     login.css 에 `@media (min-width:1024px) and (min-height:720px)` 에서
     `.login-shell { height:100dvh; overflow:hidden }` 이 걸려 있다.
     로그인·비밀번호 재설정은 칸이 1~2개라 카드가 짧아 이 규칙에 걸린 적이 없다.
     가입은 칸이 6개다 — 1024×768 에서 카드가 821px 라 **가입 버튼과 링크가 잘리고,
     셸이 overflow:hidden 이라 스크롤로 되찾을 수도 없다**(실측: 버튼 하단 779 > 화면 768).

   처방: 이 화면에서만 셸의 높이 고정을 푼다. 페이지가 평범하게 스크롤된다.
     ⛔login.css 를 고치지 않는다 — 형제 화면(로그인·재설정·비번변경)의 거동이 같이 바뀐다.
     ⛔카드를 억지로 줄이지 않는다 — 칸 수는 화면의 요구지 스타일 문제가 아니다.
   ══════════════════════════════════════════════════════════════════════════ */

@media (min-width: 1024px) and (min-height: 720px) {
	.signup-page .login-shell {
		height: auto;
		overflow: visible;
	}
}

/* ── 세로 압축 (2026-08-11 PM 지적: 쓸데없는 Y 스크롤) ──────────────────────
   먼저 **칸을 없앴다** — 비밀번호·비밀번호 확인 두 개(V520). 승인제에선 신청 때 비밀번호를
   안 받는다. 그것만으로 카드가 154px 줄었다. ⛔스타일로 때우기 전에 «필요 없는 것»부터 뺀다.

   그래도 1440×900 에서 독일어가 60px 넘쳤다(라벨이 길어 줄이 늘어난다).
   남은 60px 은 **여백에서만** 걷는다 — 칸 높이(48px)는 손대지 않는다. 누르는 자리이기 때문이다.
   전부 `.signup-page` 스코프다. ⛔login.css 를 고치지 않는다(형제 화면이 같이 바뀐다).

   실측(독일어·가장 긴 축):  panel 40/40→26/26(-28) · card 28/28→22/22(-12)
                            card-head mb 22→14(-8) · label mt 14→10(×4 -16)
                            card-links mt18+pt16→12+10(-12)   합계 -76px
   ────────────────────────────────────────────────────────────────────────── */
.signup-page .login-panel { padding-top: 26px; padding-bottom: 26px; }
.signup-page .login-card { padding-top: 22px; padding-bottom: 22px; }
.signup-page .card-head { margin-bottom: 14px; }
.signup-page .field-label { margin-top: 10px; }
.signup-page .card-links { margin-top: 12px; padding-top: 10px; }

/* ── 약관 동의 ────────────────────────────────────────────────────────────
   🔴«읽을 수 있어야» 동의다. 체크박스 옆에 전문 링크를 나란히 둔다 —
     링크 없이 체크만 받으면 그건 동의가 아니라 형식이다.
   로그인 셸에는 체크박스 스킨이 없다(앱 셸의 .sw-check 는 여기까지 안 온다) → 이 대역에서 최소로 준다. */
.card-consent {
	margin-top: 14px;
	padding-top: 12px;
	border-top: 1px solid #e2e8f0;
}
.consent-line {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-bottom: 6px;
	font-size: 12.5px;
	color: var(--ink-soft);
	cursor: pointer;
}
.consent-line input[type="checkbox"] {
	flex: 0 0 auto;
	width: 15px; height: 15px;
	accent-color: var(--navy);   /* 네이비 = 주조색. 브라우저 기본 파랑을 그대로 두지 않는다 */
	cursor: pointer;
}
/* 전문 링크는 오른쪽 끝으로 — 문장을 끊지 않고, 눈이 문구를 먼저 읽게 */
.consent-line > a {
	margin-left: auto;
	flex: 0 0 auto;
	font-size: 11.5px;
	color: var(--navy);
	text-decoration: underline;
}
.card-consent .field-hint { margin-top: 2px; }
