.nv-auth { display:flex; align-items:center; justify-content:center; padding: 48px 0; }
.nv-auth-card { width: 100%; max-width: 520px; padding: 28px; }
.nv-auth-title { margin: 0 0 6px; font-size: 28px; font-weight: 800; }
.nv-auth-sub { margin: 0 0 16px; color: var(--nv-text-2); }
.nv-field { display:flex; flex-direction:column; gap: 8px; margin-bottom: 12px; }
.nv-label { color: var(--nv-text-2); font-weight: 600; }
/* Normalize bootstrap .form-control to match theme and improve contrast */
.form-control,
input[type="text"], input[type="email"], input[type="password"] {
	background: var(--nv-card-2);
	border: 1px solid var(--nv-border);
	color: var(--nv-text);
	padding: 14px;
	border-radius: 12px;
	box-shadow: none;
}
.form-control::placeholder,
input::placeholder { color: color-mix(in srgb, var(--nv-text-2) 92%, transparent); opacity: 1; }
/* Focus: keep dark surface, highlight border with accent and subtle glow; avoid white */
.form-control:focus,
input[type="text"]:focus, input[type="email"]:focus, input[type="password"]:focus {
	background: #141b2a;
	border-color: color-mix(in srgb, var(--nv-accent) 50%, var(--nv-accent-2) 50%);
	outline: none;
	box-shadow: 0 0 0 3px rgba(124,92,255,0.15);
	color: var(--nv-text);
}
/* Error state helper */
.nv-error { color: var(--nv-error); font-size: 14px; }
.has-error .form-control { border-color: rgba(239, 68, 68, 0.7); box-shadow: 0 0 0 2px rgba(239,68,68,0.15); }
.has-error .nv-label { color: var(--nv-error); }
/* Autofill fix (Chrome/WebKit) */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus {
	-webkit-text-fill-color: var(--nv-text);
	transition: background-color 5000s ease-in-out 0s;
	box-shadow: 0 0 0px 1000px #141b2a inset;
}
.nv-error { color: var(--nv-error); font-size: 14px; }
.nv-hint { color: var(--nv-text-2); font-size: 13px; }
.nv-forgot { text-align: right; margin-top: 4px; }
.nv-check { display:flex; gap: 10px; align-items:center; margin: 6px 0 10px; color: var(--nv-text-2); }
.nv-check-label a { color: var(--nv-text); }
.nv-auth-link { margin-top: 16px; color: var(--nv-text-2); }

/* Убираем нижний градиент под контентом для auth-страниц (login/register) */
html, body { background: var(--nv-bg) !important; }

@media (max-width: 576px) {
	/* Смещаем форму чуть ниже к центру экрана на мобильных, одновременно опуская футер */
	.nv-auth { padding: 12vh 0 8vh; }
	.nv-auth-card { padding: 22px; }
	.nv-auth-title { font-size: 24px; }
	.form-control { padding: 12px; border-radius: 12px; }
}
