/* 로그인·암호 찾기 화면 공통(2026-11-06): 화면 전체 남색 바탕(화면 틀 왼쪽 메뉴 색 #1d273b) + 가운데 흰 상자. 폰에서도 가운데 */
*, *::after, *::before { box-sizing: border-box; }
html, body { margin:0; padding:0; height:100%; }
body {
	font-family:'Nanum Gothic', 'Malgun Gothic', sans-serif; color:#1e293b;
	background:
		radial-gradient(circle at 15% 20%, rgba(32,107,196,.45), transparent 42%),
		radial-gradient(circle at 85% 85%, rgba(73,83,144,.55), transparent 48%),
		#1d273b;
	background-attachment: fixed;
}
.bg-grid, .bg-ring { position:fixed; pointer-events:none; }
.bg-grid {   /* 옅은 격자 */
	inset:0; opacity:.07;
	background-image: linear-gradient(#fff 1px, transparent 1px), linear-gradient(90deg, #fff 1px, transparent 1px);
	background-size: 44px 44px;
}
.bg-ring {   /* 큰 원 테 */
	width:560px; height:560px; right:-200px; top:-180px; border-radius:50%;
	border:1px solid rgba(255,255,255,.12);
	box-shadow: 0 0 0 80px rgba(255,255,255,.025), 0 0 0 160px rgba(255,255,255,.02);
}
.login-wrap {
	position:relative; z-index:1; min-height:100vh; min-height:100dvh;
	display:flex; flex-direction:column; align-items:center; justify-content:center; padding:24px 16px;
}
.login-form {
	width:100%; max-width:400px; padding:40px 36px 36px; background:#fff; border-radius:14px;
	box-shadow: 0 20px 50px rgba(0,0,0,.35);
}
.login-form .logo { display:block; height:52px; margin:0 auto 26px; }
.login-form h1 { margin:0 0 20px; font-size:20px; font-weight:800; letter-spacing:-.3px; text-align:center; }
.login-input + .login-input { margin-top:10px; }
.login-input input {
	display:block; width:100%; height:46px; padding:0 14px;
	border:1px solid #d6dbe3; border-radius:8px; background:#f8fafc; outline:none;
	font-family:inherit; font-size:15px; color:#1e293b; transition:border-color .15s, box-shadow .15s, background .15s;
}
.login-input input::placeholder { color:#94a3b8; }
.login-input input:focus { border-color:#206bc4; background:#fff; box-shadow:0 0 0 3px rgba(32,107,196,.15); }
.login-input input:disabled { color:#94a3b8; background:#f1f5f9; }
.login-code { display:none; }
.login-code.show { display:flex; gap:8px; }
.login-code input { flex:1; min-width:0; }
.login-code input:not(:placeholder-shown) { letter-spacing:3px; }
.login-code button {
	flex:0 0 104px; height:46px; border:1px solid #1d273b; border-radius:8px; background:#fff; color:#1d273b;
	font-family:inherit; font-size:14px; font-weight:700; cursor:pointer;
}
.login-code button:hover { background:#f1f5f9; }
.login-email { display:none; }
.login-email.show { display:block; }
.login-email p { margin:12px 0 6px; font-size:13px; color:#d9480f; }
.login-button { margin-top:20px; }
.login-button button {
	width:100%; height:50px; border:0; border-radius:8px; background:#1d273b; color:#fff;
	font-family:inherit; font-size:16px; font-weight:700; cursor:pointer; transition:background .15s;
}
.login-button button:hover { background:#2a3852; }
.login-note { margin-top:14px; font-size:12px; line-height:1.7; color:#94a3b8; text-align:center; word-break:keep-all; }   /* 잠금 규칙(login_sec.py MAX_FAIL·LOCK_MIN)과 같게 */
.login-foot { margin-top:22px; font-size:12px; font-weight:700; letter-spacing:5px; color:rgba(255,255,255,.55); }

@media all and (max-width: 480px) {
	.login-form { padding:32px 22px 28px; border-radius:12px; }
	.login-form .logo { height:46px; margin-bottom:22px; }
	.bg-ring { width:360px; height:360px; right:-160px; top:-140px; }
}
.login-link { margin-top:12px; text-align:center; font-size:13px; }
.login-link a { color:#206bc4; text-decoration:underline; }
.login-msg { margin:0 0 12px; font-size:13px; line-height:1.6; color:#64748b; word-break:keep-all; }
