/* Balui · Pantalla de acceso (/portal/) */
body.login {
	--bl-bg: #F4F7FA;
	--bl-border: #E1E8EF;
	--bl-border-strong: #C9D5E1;
	--bl-text: #232735;
	--bl-muted: #5B6475;
	--bl-navy: #214462;
	--bl-navy-dark: #17324A;
	--bl-teal: #02CFAA;
	--bl-teal-ink: #007A64;
	--bl-orange: #B84300;
	--bl-link: #2F5C8A;
	display: flex;
	align-items: stretch;
	min-height: 100vh;
	margin: 0;
	background: var(--bl-bg);
	color: var(--bl-text);
	font-family: "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	font-size: 15px;
}

/* Panel de marca */
.balui-login-brand {
	position: relative;
	flex: 0 0 min(44vw, 560px);
	display: flex;
	align-items: center;
	padding: 56px clamp(32px, 5vw, 72px);
	overflow: hidden;
	background: linear-gradient(160deg, #E3F8F3 0%, #EDF4F8 55%, #F4F7FA 100%);
	border-right: 1px solid var(--bl-border);
}
.balui-login-brand::before {
	content: "";
	position: absolute;
	right: -160px;
	bottom: -160px;
	width: 420px;
	height: 420px;
	border-radius: 50%;
	border: 56px solid rgba(2, 207, 170, .12);
}
.balui-login-brand::after {
	content: "";
	position: absolute;
	right: 64px;
	top: 64px;
	width: 14px;
	height: 14px;
	border-radius: 50%;
	background: #FF7A1A;
	box-shadow: -28px 20px 0 -3px rgba(66, 98, 145, .5);
}
.balui-login-brand__in { position: relative; max-width: 420px; }
.balui-switch {
	display: block;
	width: 72px;
	height: 38px;
	margin-bottom: 28px;
	border-radius: 999px;
	background: var(--bl-navy);
	position: relative;
}
.balui-switch span {
	position: absolute;
	right: 5px;
	top: 5px;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--bl-teal);
}
.balui-login-kicker {
	margin: 0 0 10px;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--bl-teal-ink);
}
.balui-login-h {
	margin: 0 0 22px;
	font-size: clamp(28px, 3vw, 40px);
	line-height: 1.12;
	font-weight: 800;
	letter-spacing: -.02em;
	color: var(--bl-navy);
}
.balui-login-list { margin: 0 0 32px; padding: 0; list-style: none; }
.balui-login-list li {
	position: relative;
	margin: 0 0 10px;
	padding-left: 30px;
	font-size: 16px;
	color: var(--bl-text);
}
.balui-login-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 3px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: #fff url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2020%2020%27%3E%3Cpath%20d%3D%27M8.2%2013.6%204.6%2010l1.3-1.3%202.3%202.3%205.9-5.9%201.3%201.3z%27%20fill%3D%27%23007A64%27%2F%3E%3C%2Fsvg%3E") center / 14px no-repeat;
	box-shadow: 0 0 0 1px rgba(0, 122, 100, .25);
}
.balui-login-client {
	margin: 0;
	padding: 14px 18px;
	border-radius: 12px;
	background: rgba(255, 255, 255, .75);
	border: 1px solid var(--bl-border);
	color: var(--bl-muted);
}
.balui-login-client a { color: var(--bl-navy); font-weight: 700; }

/* Formulario */
.login #login {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	justify-content: center;
	width: 100%;
	max-width: 400px;
	margin: 0 auto;
	padding: 48px 24px;
	box-sizing: border-box;
}
.login h1.wp-login-logo,
.login #login > h1 { margin-bottom: 8px; text-align: left; }
.login h1 a {
	width: 150px;
	height: 75px;
	margin: 0 0 16px;
	background-size: contain;
	background-position: left center;
}
.balui-login-intro { margin: 0 0 16px; }
.balui-login-intro strong { display: block; font-size: 24px; font-weight: 800; color: var(--bl-navy); letter-spacing: -.01em; }
.balui-login-intro span { color: var(--bl-muted); }
.login form {
	margin: 0;
	padding: 28px;
	border: 1px solid var(--bl-border);
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 14px 40px rgba(33, 68, 98, .08);
	overflow: visible;
}
.login label { font-size: 14px; font-weight: 600; color: var(--bl-navy); }
.login form .input,
.login input[type="text"],
.login input[type="email"],
.login input[type="password"] {
	min-height: 46px;
	margin: 6px 0 18px;
	padding: 8px 12px;
	font-size: 16px;
	border: 1px solid var(--bl-border-strong);
	border-radius: 10px;
	background: #fff;
	box-shadow: none;
}
.login form .input:focus,
.login input[type="text"]:focus,
.login input[type="password"]:focus {
	border-color: var(--bl-navy);
	box-shadow: 0 0 0 3px rgba(2, 207, 170, .4);
	outline: none;
}
.login .wp-pwd { margin-bottom: 0; }
.login .button.wp-hide-pw { height: 46px; min-height: 46px; margin-top: 6px; color: var(--bl-navy); }
.login .button.wp-hide-pw:focus { border-color: var(--bl-navy); box-shadow: 0 0 0 2px var(--bl-teal); }
.login .forgetmenot { float: none; margin: 0 0 16px; }
.login .forgetmenot label { font-weight: 500; color: var(--bl-text); }
.login input[type="checkbox"] { border-color: var(--bl-border-strong); border-radius: 4px; }
.login input[type="checkbox"]:focus { border-color: var(--bl-navy); box-shadow: 0 0 0 2px rgba(2, 207, 170, .5); }
.login input[type="checkbox"]:checked::before { content: url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2020%2020%27%3E%3Cpath%20d%3D%27M14.83%204.89l1.34.94-5.81%208.38H9.02L5.78%209.67l1.34-1.25%202.57%202.4z%27%20fill%3D%27%23214462%27%2F%3E%3C%2Fsvg%3E"); }
.login .submit { clear: both; }
.wp-core-ui.login .button-primary,
.login .button-primary {
	float: none;
	width: 100%;
	min-height: 48px;
	padding: 0 18px;
	border: 0;
	border-radius: 10px;
	background: var(--bl-navy);
	color: #fff;
	font-size: 16px;
	font-weight: 700;
	text-shadow: none;
	box-shadow: none;
}
.wp-core-ui.login .button-primary:hover,
.login .button-primary:hover { background: var(--bl-navy-dark); }
.wp-core-ui.login .button-primary:focus,
.login .button-primary:focus { background: var(--bl-navy-dark); box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--bl-teal); outline: none; }
.login #nav,
.login #backtoblog { margin: 16px 0 0; padding: 0; text-align: center; font-size: 14px; }
.login #nav a,
.login #backtoblog a,
.login .privacy-policy-page-link a { color: var(--bl-link); font-weight: 600; text-decoration: none; }
.login #nav a:hover,
.login #backtoblog a:hover { color: var(--bl-navy); text-decoration: underline; }
.login a:focus { color: var(--bl-navy); box-shadow: 0 0 0 2px var(--bl-teal); outline: none; border-radius: 3px; }
.login .privacy-policy-page-link { margin: 16px 0 0; text-align: center; }
.login .message,
.login .notice,
.login .success,
.login #login_error {
	margin: 0 0 16px;
	padding: 12px 16px;
	border: 1px solid var(--bl-border);
	border-left: 4px solid var(--bl-teal-ink);
	border-radius: 10px;
	background: #fff;
	box-shadow: none;
}
.login #login_error,
.login .notice-error { border-left-color: #C8102E; }
.login .notice-warning { border-left-color: var(--bl-orange); }
.login .language-switcher { display: none; }

/* Sesión caducada (ventana dentro del panel) */
.interim-login .balui-login-brand { display: none; }
.interim-login.login #login { padding: 20px; max-width: 100%; }

@media (max-width: 860px) {
	body.login { flex-direction: column; }
	.balui-login-brand { flex: none; padding: 28px 24px; border-right: 0; border-bottom: 1px solid var(--bl-border); }
	.balui-login-brand::before { width: 220px; height: 220px; border-width: 32px; right: -90px; bottom: -110px; }
	.balui-login-brand::after { right: 28px; top: 28px; }
	.balui-switch { width: 52px; height: 28px; margin-bottom: 14px; }
	.balui-switch span { width: 20px; height: 20px; top: 4px; right: 4px; }
	.balui-login-h { font-size: 24px; margin-bottom: 12px; }
	.balui-login-list { display: none; }
	.balui-login-client { padding: 10px 14px; font-size: 14px; }
	.login #login { padding: 28px 16px 40px; }
	.login form { padding: 22px 18px; }
}
@media (prefers-reduced-motion: reduce) {
	* { transition: none !important; }
}
