/**
 * VHYNX Admin Customizer — page de connexion (wp-login.php uniquement).
 * Toutes les règles sont limitées à body.vhynx-ac-login.
 */

/* Arrière-plan -------------------------------------------------------- */
body.login.vhynx-ac-login {
	min-height: 100%;
	color: var(--vx-text);
	background-color: var(--vx-bg);
	background-attachment: fixed;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}

body.login.vhynx-ac-bg-gradient {
	background-image: linear-gradient(135deg, var(--vx-bg) 0%, var(--vx-bg2) 100%);
	background-size: 200% 200%;
}

body.login.vhynx-ac-bg-image::before {
	content: "";
	position: fixed;
	inset: 0;
	background: var(--vx-overlay);
	pointer-events: none;
	z-index: 0;
}

body.vhynx-ac-login #login,
body.vhynx-ac-login .language-switcher,
body.vhynx-ac-login .privacy-policy-page-link {
	position: relative;
	z-index: 1;
}

/* Conteneur ----------------------------------------------------------- */
body.vhynx-ac-login #login {
	width: 400px;
	max-width: calc(100% - 32px);
	padding: 7vh 0 24px;
}

body.vhynx-ac-login.interim-login #login {
	padding: 0;
}

/* Formulaire ---------------------------------------------------------- */
body.vhynx-ac-login form {
	margin: 16px 0 0;
	padding: 32px 30px 28px;
	color: var(--vx-text);
	background: var(--vx-form-bg);
	border: 0;
	border-radius: var(--vx-radius);
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06), 0 24px 60px -12px rgba(0, 0, 0, 0.35);
}

body.vhynx-ac-login label {
	font-size: 13px;
	font-weight: 600;
	color: var(--vx-text);
	margin-bottom: 6px;
}

body.vhynx-ac-login form .input,
body.vhynx-ac-login input[type="text"],
body.vhynx-ac-login input[type="email"],
body.vhynx-ac-login input[type="password"] {
	font-size: 15px;
	line-height: 1.4;
	min-height: 48px;
	padding: 10px 14px 10px 44px;
	margin: 0 0 18px;
	color: var(--vx-text);
	background-color: var(--vx-input-bg);
	background-position: 14px center;
	background-repeat: no-repeat;
	background-size: 18px 18px;
	border: 1.5px solid var(--vx-input-border);
	border-radius: var(--vx-radius-sm);
	box-shadow: none;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

body.vhynx-ac-login input.password-input {
	font-family: inherit;
	letter-spacing: 0.02em;
}

body.vhynx-ac-login.js input.password-input,
body.vhynx-ac-login .vhynx-ac-pwd input {
	padding-right: 52px;
}

body.vhynx-ac-login form .input:focus,
body.vhynx-ac-login input[type="text"]:focus,
body.vhynx-ac-login input[type="email"]:focus,
body.vhynx-ac-login input[type="password"]:focus {
	border-color: var(--vx-btn);
	box-shadow: 0 0 0 4px rgba(var(--vx-btn-rgb), 0.18);
	outline: 2px solid transparent;
}

/* Champs sans icône (ex. code de vérification d'autres extensions) */
body.vhynx-ac-login form .input:not(#user_login):not(#user_email):not(#user_pass):not(#pass1) {
	padding-left: 14px;
}

/* Bouton afficher / masquer le mot de passe */
body.vhynx-ac-login .button.wp-hide-pw {
	width: 48px;
	height: 48px;
	min-height: 48px;
	color: var(--vx-muted);
	background: transparent;
	border: 0;
	border-radius: var(--vx-radius-sm);
	box-shadow: none;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
}

body.vhynx-ac-login .button.wp-hide-pw:hover {
	color: var(--vx-btn);
	background: transparent;
}

body.vhynx-ac-login .button.wp-hide-pw:focus {
	color: var(--vx-btn);
	border: 0;
	box-shadow: inset 0 0 0 2px rgba(var(--vx-btn-rgb), 0.45);
}

body.vhynx-ac-login .button.wp-hide-pw .dashicons {
	top: 0;
	width: 20px;
	height: 20px;
	font-size: 20px;
}

/* Se souvenir de moi */
body.vhynx-ac-login form .forgetmenot {
	margin-top: 6px;
}

body.vhynx-ac-login form .forgetmenot label {
	font-weight: 400;
}

body.vhynx-ac-login input[type="checkbox"] {
	border-radius: 4px;
	border-color: var(--vx-input-border);
}

body.vhynx-ac-login input[type="checkbox"]:checked {
	background-color: var(--vx-btn);
	border-color: var(--vx-btn);
}

body.vhynx-ac-login input[type="checkbox"]:focus {
	border-color: var(--vx-btn);
	box-shadow: 0 0 0 3px rgba(var(--vx-btn-rgb), 0.25);
}

/* Bouton principal */
body.vhynx-ac-login .button-primary,
body.vhynx-ac-login #wp-submit {
	min-height: 44px;
	padding: 0 22px;
	font-size: 14px;
	font-weight: 600;
	line-height: 42px;
	color: var(--vx-btn-text);
	background: var(--vx-btn);
	border: 1px solid var(--vx-btn);
	border-radius: var(--vx-radius-sm);
	box-shadow: 0 6px 16px -6px rgba(var(--vx-btn-rgb), 0.6);
	text-shadow: none;
	transition: background-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

body.vhynx-ac-login .button-primary:hover,
body.vhynx-ac-login #wp-submit:hover {
	color: var(--vx-btn-text);
	background: var(--vx-btn-hover);
	border-color: var(--vx-btn-hover);
}

body.vhynx-ac-login .button-primary:focus,
body.vhynx-ac-login #wp-submit:focus {
	color: var(--vx-btn-text);
	box-shadow: 0 0 0 3px var(--vx-form-bg), 0 0 0 5px var(--vx-btn);
	outline: 2px solid transparent;
}

body.vhynx-ac-login #loginform p.submit,
body.vhynx-ac-login #lostpasswordform p.submit,
body.vhynx-ac-login #registerform p.submit {
	display: flex;
	justify-content: flex-end;
	margin-top: 8px;
}

body.vhynx-ac-login #loginform .forgetmenot {
	float: left;
	margin-top: 12px;
}

/* Boutons secondaires (ex. génération de mot de passe) */
body.vhynx-ac-login .button:not(.button-primary):not(.wp-hide-pw) {
	color: var(--vx-btn);
	border-color: var(--vx-btn);
	border-radius: var(--vx-radius-sm);
}

/* Messages et erreurs ------------------------------------------------- */
body.vhynx-ac-login #login_error,
body.vhynx-ac-login .message,
body.vhynx-ac-login .notice,
body.vhynx-ac-login .success {
	margin: 16px 0 0;
	padding: 12px 16px;
	color: var(--vx-text);
	background: var(--vx-form-bg);
	border: 0;
	border-left: 4px solid var(--vx-btn);
	border-radius: var(--vx-radius-sm);
	box-shadow: 0 10px 30px -12px rgba(0, 0, 0, 0.35);
}

body.vhynx-ac-login #login_error,
body.vhynx-ac-login .notice-error {
	border-left-color: #d63638;
}

body.vhynx-ac-login .success,
body.vhynx-ac-login .notice-success {
	border-left-color: #00a32a;
}

body.vhynx-ac-login #login_error a,
body.vhynx-ac-login .message a,
body.vhynx-ac-login .notice a,
body.vhynx-ac-login form a {
	color: var(--vx-btn);
}

/* Liens sous le formulaire ------------------------------------------- */
body.vhynx-ac-login #nav,
body.vhynx-ac-login #backtoblog {
	padding: 0;
	text-align: center;
	font-size: 13px;
}

body.vhynx-ac-login #nav {
	margin-top: 22px;
}

body.vhynx-ac-login #nav a,
body.vhynx-ac-login #backtoblog a,
body.vhynx-ac-login .privacy-policy-page-link a {
	color: var(--vx-link);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: border-color 0.2s ease, opacity 0.2s ease;
}

body.vhynx-ac-login #nav a:hover,
body.vhynx-ac-login #backtoblog a:hover,
body.vhynx-ac-login .privacy-policy-page-link a:hover,
body.vhynx-ac-login #nav a:focus,
body.vhynx-ac-login #backtoblog a:focus {
	color: var(--vx-link);
	border-bottom-color: currentcolor;
	box-shadow: none;
}

body.vhynx-ac-login .language-switcher {
	color: var(--vx-link);
}

body.vhynx-ac-login .language-switcher label .dashicons {
	color: var(--vx-link);
}

body.vhynx-ac-login .language-switcher select {
	border-radius: var(--vx-radius-sm);
}

/* Indicateur de robustesse du mot de passe */
body.vhynx-ac-login #pass-strength-result {
	border-radius: var(--vx-radius-sm);
	margin-right: 0;
}

/* RTL ----------------------------------------------------------------- */
body.rtl.vhynx-ac-login form .input,
body.rtl.vhynx-ac-login input[type="text"],
body.rtl.vhynx-ac-login input[type="email"],
body.rtl.vhynx-ac-login input[type="password"] {
	padding-right: 44px;
	padding-left: 14px;
	background-position: calc(100% - 14px) center;
}

body.rtl.vhynx-ac-login #loginform .forgetmenot {
	float: right;
}

/* Animations (désactivables) ----------------------------------------- */
@media (prefers-reduced-motion: no-preference) {
	body.vhynx-ac-anim #login {
		animation: vhynx-ac-rise 0.6s cubic-bezier(0.22, 1, 0.36, 1) both;
	}

	body.vhynx-ac-anim h1 a {
		animation: vhynx-ac-pop 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.1s both;
	}

	body.vhynx-ac-anim.vhynx-ac-bg-gradient {
		animation: vhynx-ac-gradient 18s ease infinite;
	}

	body.vhynx-ac-anim .button-primary:hover,
	body.vhynx-ac-anim #wp-submit:hover {
		transform: translateY(-1px);
		box-shadow: 0 10px 22px -8px rgba(var(--vx-btn-rgb), 0.7);
	}

	body.vhynx-ac-anim .button-primary:active,
	body.vhynx-ac-anim #wp-submit:active {
		transform: translateY(0);
	}

	body.vhynx-ac-anim form {
		transition: box-shadow 0.3s ease, transform 0.3s ease;
	}

	body.vhynx-ac-anim form:focus-within {
		box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06), 0 30px 70px -14px rgba(0, 0, 0, 0.42);
	}

	body.vhynx-ac-anim #login_error,
	body.vhynx-ac-anim .message,
	body.vhynx-ac-anim .notice,
	body.vhynx-ac-anim .success {
		animation: vhynx-ac-fade 0.45s ease both;
	}
}

@keyframes vhynx-ac-rise {
	from {
		opacity: 0;
		transform: translateY(18px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes vhynx-ac-pop {
	from {
		opacity: 0;
		transform: scale(0.9);
	}

	to {
		opacity: 1;
		transform: scale(1);
	}
}

@keyframes vhynx-ac-fade {
	from {
		opacity: 0;
		transform: translateY(-6px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes vhynx-ac-gradient {
	0% {
		background-position: 0% 50%;
	}

	50% {
		background-position: 100% 50%;
	}

	100% {
		background-position: 0% 50%;
	}
}

/* Mobile -------------------------------------------------------------- */
@media screen and (max-width: 480px) {
	body.vhynx-ac-login #login {
		padding-top: 32px;
	}

	body.vhynx-ac-login form {
		padding: 24px 20px 22px;
	}

	body.vhynx-ac-login #loginform .forgetmenot {
		float: none;
		margin: 0 0 14px;
	}

	body.vhynx-ac-login #loginform p.submit .button-primary {
		width: 100%;
	}
}
