	.jh-auth { display:flex; justify-content:center; align-items:center; min-height:58vh; padding:40px 0; }
.jh-auth > form { width:100%; max-width:400px; }
.login-card { background:white; border:1px solid #e2e5ea; border-radius:12px; box-shadow:0 3px 14px #0000000a; }
	.login-wrap { max-width:400px; width:100%; }
	.auth-description { font-size:14px; color:#666; line-height:1.7; margin-bottom:22px; text-align:center; }
	.auth-label { display:block; margin-bottom:7px; font-size:14px; font-weight:700; }
	.login-card { max-width:400px; }
	.login-title { font-size:1.7rem; font-weight:800; text-align:center; margin:4px 0 22px; letter-spacing:-.5px; }
	.login-field { margin-bottom:10px; }
	.login-card .form-control { border:1px solid #c2c7cf; padding:.7rem .8rem; background:#fdfdfd; font-size:15px; }
	.login-card .form-control::placeholder { color:#9aa0a8; }
	.login-card .form-control:focus { border-color:#e74c3c; background:#fff; box-shadow:0 0 0 .18rem rgba(231,76,60,.15); }
.jh-auth .form-control:focus-visible { outline:none; }
	.login-btn { width:100%; padding:.7rem; font-size:1.05rem; font-weight:700; }
	.login-links { display:flex; align-items:center; justify-content:center; gap:12px; margin-top:16px; font-size:.92em; }
	.login-links .sep { color:#ccc; }
	.login-help { color:#666; text-decoration:none; transition:color .15s ease; white-space:nowrap; }
	.login-help:hover { color:#e74c3c !important; text-decoration:underline !important; }
	.login-sns { margin-top:24px; }
	.login-sns-label { display:flex; align-items:center; text-align:center; color:#aaa; font-size:.85em; margin-bottom:12px; }
	.login-sns-label::before, .login-sns-label::after { content:""; flex:1; height:1px; background:#e5e5e5; }
	.login-sns-label span { padding:0 12px; }
