/* Manager login — extensiones sobre ynex signin-cover (sin bridge legacy) */

.authentication .authentication-brand.desktop-logo,
.authentication .authentication-brand.desktop-dark {
	max-height: 5rem;
	max-width: min(100%, 320px);
	width: auto;
	height: auto;
	object-fit: contain;
}

.authentication .form-switch {
	padding-left: 0;
	min-height: 1.5rem;
	display: flex;
	align-items: center;
	margin-bottom: 0;
}

.authentication .form-switch .form-check-input {
	cursor: pointer;
	float: none;
	width: 2.5rem !important;
	height: 1.35rem !important;
	margin: 0 !important;
	border-radius: 2rem !important;
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e") !important;
	background-position: left center !important;
	background-repeat: no-repeat !important;
	background-size: contain !important;
	background-color: rgba(0, 0, 0, 0.15) !important;
	border: 1px solid transparent !important;
	box-shadow: none !important;
	transition: background-position 0.15s ease-in-out, background-color 0.15s ease-in-out;
	appearance: none;
	-webkit-appearance: none;
}

.authentication .form-switch .form-check-input:focus {
	box-shadow: 0 0 0 0.15rem rgba(var(--primary-rgb), 0.2) !important;
	border-color: transparent !important;
}

.authentication .form-switch .form-check-input:checked {
	background-position: right center !important;
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e") !important;
}

.authentication .recover-password-rule.is-valid {
	color: var(--success, #198754);
}

.authentication .recover-password-rule.is-valid i {
	color: var(--success, #198754);
}

.authentication .recover-password-rule.is-invalid-active {
	color: var(--danger, #dc3545);
}

.authentication .recover-password-rule.is-invalid-active i {
	color: var(--danger, #dc3545);
}

/* Login — modo oscuro (plantilla-login no carga manager-ynex-bridge.css) */
[data-theme-mode="dark"] body.bg-white {
	background-color: var(--default-body-bg-color, rgb(var(--body-bg-rgb2, 37, 39, 41))) !important;
}

[data-theme-mode="dark"] .authentication .form-label,
[data-theme-mode="dark"] .authentication .h5,
[data-theme-mode="dark"] .authentication .text-default {
	color: var(--default-text-color, rgba(255, 255, 255, 0.9)) !important;
}

[data-theme-mode="dark"] .authentication .text-muted,
[data-theme-mode="dark"] .authentication .op-7,
[data-theme-mode="dark"] .authentication .fs-12.text-muted {
	color: var(--text-muted, rgba(255, 255, 255, 0.55)) !important;
}

[data-theme-mode="dark"] .authentication .form-control,
[data-theme-mode="dark"] .authentication .form-control-lg {
	background-color: var(--form-control-bg, #232628) !important;
	border-color: var(--input-border, #313335) !important;
	color: var(--default-text-color, rgba(255, 255, 255, 0.9)) !important;
	caret-color: var(--default-text-color, rgba(255, 255, 255, 0.9));
}

[data-theme-mode="dark"] .authentication .form-control::placeholder,
[data-theme-mode="dark"] .authentication .form-control-lg::placeholder {
	color: var(--text-muted, rgba(255, 255, 255, 0.45)) !important;
	opacity: 1;
}

[data-theme-mode="dark"] .authentication .form-control:focus,
[data-theme-mode="dark"] .authentication .form-control-lg:focus {
	background-color: var(--form-control-bg, #2a2e32) !important;
	border-color: var(--primary-color) !important;
	color: var(--default-text-color, rgba(255, 255, 255, 0.95)) !important;
	box-shadow: 0 0 0 0.15rem rgba(var(--primary-rgb), 0.25) !important;
}

/* Chrome/Safari autofill: evita el recuadro blanco/azul al seleccionar credenciales */
[data-theme-mode="dark"] .authentication .form-control:-webkit-autofill,
[data-theme-mode="dark"] .authentication .form-control:-webkit-autofill:hover,
[data-theme-mode="dark"] .authentication .form-control:-webkit-autofill:focus,
[data-theme-mode="dark"] .authentication .form-control:-webkit-autofill:active,
[data-theme-mode="dark"] .authentication .form-control-lg:-webkit-autofill,
[data-theme-mode="dark"] .authentication .form-control-lg:-webkit-autofill:hover,
[data-theme-mode="dark"] .authentication .form-control-lg:-webkit-autofill:focus,
[data-theme-mode="dark"] .authentication .form-control-lg:-webkit-autofill:active,
[data-theme-mode="dark"] .authentication .form-control:-internal-autofill-selected,
[data-theme-mode="dark"] .authentication .form-control-lg:-internal-autofill-selected {
	-webkit-text-fill-color: var(--default-text-color, rgba(255, 255, 255, 0.9)) !important;
	caret-color: var(--default-text-color, rgba(255, 255, 255, 0.9));
	-webkit-box-shadow: 0 0 0 1000px var(--form-control-bg, #232628) inset !important;
	box-shadow: 0 0 0 1000px var(--form-control-bg, #232628) inset !important;
	transition: background-color 99999s ease-out 0s;
}

[data-theme-mode="dark"] .authentication .form-control:-webkit-autofill:focus,
[data-theme-mode="dark"] .authentication .form-control-lg:-webkit-autofill:focus,
[data-theme-mode="dark"] .authentication .form-control:-internal-autofill-selected:focus,
[data-theme-mode="dark"] .authentication .form-control-lg:-internal-autofill-selected:focus {
	-webkit-box-shadow: 0 0 0 1000px var(--form-control-bg, #2a2e32) inset, 0 0 0 0.15rem rgba(var(--primary-rgb), 0.25) !important;
	box-shadow: 0 0 0 1000px var(--form-control-bg, #2a2e32) inset, 0 0 0 0.15rem rgba(var(--primary-rgb), 0.25) !important;
}

[data-theme-mode="dark"] .authentication .input-group .btn-light {
	background-color: var(--form-control-bg, #232628) !important;
	border-color: var(--input-border, #313335) !important;
	color: var(--default-text-color, rgba(255, 255, 255, 0.75)) !important;
}

[data-theme-mode="dark"] .authentication .input-group .btn-light:hover {
	background-color: var(--list-hover-focus-bg, rgba(255, 255, 255, 0.08)) !important;
	color: var(--default-text-color, #fff) !important;
}

[data-theme-mode="dark"] .authentication .input-group .form-control,
[data-theme-mode="dark"] .authentication .input-group .form-control-lg {
	border-right: 0 !important;
}

[data-theme-mode="dark"] .authentication .form-switch .form-check-input {
	background-color: rgba(255, 255, 255, 0.18) !important;
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.55%29'/%3e%3c/svg%3e") !important;
}

[data-theme-mode="dark"] .authentication .authentication-barrier span {
	background: var(--default-body-bg-color, rgb(var(--body-bg-rgb2, 37, 39, 41)));
	color: var(--text-muted, rgba(255, 255, 255, 0.55));
}

[data-theme-mode="dark"] .authentication .btn-light,
[data-theme-mode="dark"] .authentication .btn-icon.btn-light {
	background-color: var(--form-control-bg, #232628) !important;
	border-color: var(--input-border, #313335) !important;
	color: var(--default-text-color, rgba(255, 255, 255, 0.85)) !important;
}

[data-theme-mode="dark"] .authentication .alert-danger {
	background-color: rgba(220, 53, 69, 0.2);
	border-color: rgba(220, 53, 69, 0.35);
	color: #ffb3b8;
}

/* SweetAlert (manager-swal.js) — overlay centrado; plantilla-login no carga ynex-bridge/compat */
.agent-swal-overlay {
	position: fixed;
	inset: 0;
	z-index: 10060;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
	pointer-events: none;
	visibility: hidden;
}

.agent-swal-overlay.is-visible {
	pointer-events: auto;
	visibility: visible;
}

.agent-swal-overlay__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(15, 23, 42, 0.55);
	opacity: 0;
	transition: opacity 0.28s ease;
}

.agent-swal-overlay.is-visible .agent-swal-overlay__backdrop {
	opacity: 1;
}

.agent-swal-overlay__dialog {
	position: relative;
	z-index: 1;
	width: min(24rem, 100%);
	transform: translateY(0.75rem) scale(0.94);
	opacity: 0;
	transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.28s ease;
}

.agent-swal-overlay.is-visible .agent-swal-overlay__dialog {
	transform: translateY(0) scale(1);
	opacity: 1;
}

.agent-swal-overlay .agent-swal-alert {
	box-shadow: 0 0.75rem 2rem rgba(15, 23, 42, 0.2);
	border-radius: 0.5rem;
	background-color: var(--custom-white, #fff);
}

.agent-swal-overlay .agent-swal-alert .btn-close {
	padding: 0;
	margin-block-end: 0.35rem;
	background: transparent;
	opacity: 0.65;
	box-shadow: none;
}

.agent-swal-overlay .agent-swal-alert .btn-close:hover {
	opacity: 1;
}

.agent-swal-overlay .agent-swal-alert .btn-close i {
	font-size: 1.1rem;
	line-height: 1;
	color: var(--primary-color, #845adf);
}

.agent-swal-overlay .agent-swal-alert h5 {
	color: var(--default-text-color);
}

.agent-swal-overlay .agent-swal-alert p {
	margin-block-end: 1.25rem;
	color: var(--text-muted, #6c757d);
	font-size: 0.8rem;
}

.agent-swal-overlay .agent-swal-alert [data-agent-swal-actions] {
	padding-bottom: 0.35rem;
}

body.agent-swal-open {
	overflow: hidden !important;
}

.sweet-overlay,
.sweet-alert {
	display: none !important;
}

@media (prefers-reduced-motion: reduce) {
	.agent-swal-overlay__backdrop,
	.agent-swal-overlay__dialog {
		transition: none !important;
	}
}

/* Panel derecho: vitrina rotativa (órbita, operación en vivo, editorial). Usa el color de la marca. */
.login-vitrina {
	position: relative;
	height: 100%;
	min-height: 100vh;
	overflow: hidden;
	color: #fff;
	background-color: #1c1917;
	background-image:
		radial-gradient(circle at 70% 30%, rgba(var(--primary-rgb), 0.28), transparent 55%),
		radial-gradient(circle at 15% 85%, rgba(var(--primary-rgb), 0.16), transparent 50%),
		linear-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px);
	background-size: auto, auto, 32px 32px, 32px 32px;
}
.login-vitrina .lv-escena {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 2.5rem;
	padding: 3rem 3rem 5rem;
	opacity: 0;
	visibility: hidden;
	transform: translateY(12px);
	transition: opacity .6s ease, transform .6s ease, visibility 0s linear .6s;
}
.login-vitrina .lv-escena.activa {
	opacity: 1;
	visibility: visible;
	transform: none;
	transition: opacity .6s ease, transform .6s ease, visibility 0s;
}
.login-vitrina .lv-texto { text-align: center; max-width: 26rem; }
.login-vitrina .lv-texto h5 { color: #fff; font-weight: 600; margin-bottom: .5rem; }
.login-vitrina .lv-texto p { color: rgba(255, 255, 255, 0.7); font-size: .9rem; margin: 0; }
.login-vitrina .lv-acento { color: rgb(var(--primary-rgb)); filter: brightness(1.25); }
.login-vitrina .lv-puntos-logo { width: 100%; height: 100%; fill: rgb(var(--primary-rgb)); }

/* Escena 1: órbita */
.login-vitrina .lv-orbita { position: relative; width: 17rem; height: 17rem; }
.login-vitrina .lv-orbita-aro { position: absolute; inset: 0; border: 1px dashed rgba(var(--primary-rgb), 0.55); border-radius: 50%; }
.login-vitrina .lv-orbita-aro-int { inset: 4rem; border: 1px solid rgba(255, 255, 255, 0.1); }
.login-vitrina .lv-orbita-centro {
	position: absolute; left: 50%; top: 50%; width: 5.5rem; height: 5.5rem; padding: 1.1rem;
	transform: translate(-50%, -50%); border-radius: 50%; background: rgba(var(--primary-rgb), 0.16);
}
.login-vitrina .lv-orbita-giro { position: absolute; inset: 0; animation: lvGiro 30s linear infinite; }
.login-vitrina .lv-orbita-giro span {
	position: absolute; left: 50%; top: 50%; width: 3rem; height: 3rem; margin: -1.5rem 0 0 -1.5rem;
	transform: rotate(var(--a)) translateY(-8.5rem) rotate(calc(-1 * var(--a)));
}
.login-vitrina .lv-orbita-giro i {
	display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;
	border-radius: 50%; background: #2a2420; border: 1px solid rgba(255, 255, 255, 0.15);
	color: rgb(var(--primary-rgb)); font-size: 1.25rem; animation: lvGiroInv 30s linear infinite;
}

/* Escena 2: operación en vivo */
.login-vitrina .lv-tablero {
	width: min(24rem, 85%); padding: 1.25rem; border-radius: .75rem;
	background: rgba(255, 255, 255, 0.07); border: 1px solid rgba(255, 255, 255, 0.12);
	backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
}
.login-vitrina .lv-tablero-cab { display: flex; justify-content: space-between; font-size: .75rem; color: rgba(255, 255, 255, 0.6); margin-bottom: 1rem; }
.login-vitrina .lv-envivo { display: flex; align-items: center; gap: .35rem; color: #8fd16a; }
.login-vitrina .lv-envivo i { width: .45rem; height: .45rem; border-radius: 50%; background: #8fd16a; animation: lvParpadeo 1.4s infinite; }
.login-vitrina .lv-kpis { display: grid; grid-template-columns: repeat(4, 1fr); text-align: center; gap: .5rem; }
.login-vitrina .lv-kpis b { display: block; font-size: 1.5rem; font-weight: 600; color: #fff; }
.login-vitrina .lv-kpis small { color: rgba(255, 255, 255, 0.6); font-size: .72rem; }
.login-vitrina .lv-barras { display: flex; align-items: flex-end; gap: 4px; height: 4rem; margin-top: 1.25rem; }
.login-vitrina .lv-barras i { flex: 1; border-radius: 3px 3px 0 0; background: rgb(var(--primary-rgb)); opacity: .85; transition: height .6s ease; }
.login-vitrina .lv-aviso {
	display: flex; align-items: center; gap: .6rem; margin-top: -1.5rem; padding: .6rem .9rem; border-radius: .6rem;
	background: #fff; color: #2b1d14; font-size: .8rem; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
	transition: opacity .35s ease, transform .35s ease;
}
.login-vitrina .lv-aviso.oculto { opacity: 0; transform: translateY(8px); }
.login-vitrina .lv-aviso i { font-size: 1.1rem; }

/* Escena 3: editorial */
.login-vitrina .lv-escena-editorial { align-items: flex-start; justify-content: center; padding-left: 4rem; }
.login-vitrina .lv-trama { position: absolute; right: -6rem; bottom: -6rem; width: 26rem; height: 26rem; fill: rgb(var(--primary-rgb)); }
.login-vitrina .lv-editorial { position: relative; max-width: 24rem; }
.login-vitrina .lv-editorial > small { color: rgb(var(--primary-rgb)); filter: brightness(1.25); font-size: .8rem; }
.login-vitrina .lv-editorial-titulo { font-size: 2.6rem; font-weight: 600; line-height: 1.2; margin: .5rem 0 1rem; min-height: 6.3rem; }
.login-vitrina .lv-editorial p { color: rgba(255, 255, 255, 0.7); font-size: .95rem; margin-bottom: 2.5rem; }
.login-vitrina .lv-cursor { color: rgb(var(--primary-rgb)); animation: lvParpadeo 1s infinite; }
.login-vitrina .lv-cifras { display: flex; gap: 2.25rem; }
.login-vitrina .lv-cifras b { display: block; font-size: 1.5rem; font-weight: 600; }
.login-vitrina .lv-cifras small { color: rgba(255, 255, 255, 0.6); font-size: .75rem; }

/* Progreso tipo historias */
.login-vitrina .lv-progreso { position: absolute; left: 50%; bottom: 2.5rem; transform: translateX(-50%); display: flex; gap: .5rem; z-index: 2; }
.login-vitrina .lv-progreso button { width: 3rem; height: 1rem; padding: 0; border: 0; background: transparent; cursor: pointer; display: flex; align-items: center; }
.login-vitrina .lv-progreso button i { position: relative; display: block; width: 100%; height: 3px; border-radius: 3px; background: rgba(255, 255, 255, 0.2); overflow: hidden; }
.login-vitrina .lv-progreso button i::after { content: ""; position: absolute; inset: 0; width: var(--p, 0%); background: #fff; border-radius: 3px; }

@keyframes lvGiro { to { transform: rotate(360deg); } }
@keyframes lvGiroInv { to { transform: rotate(-360deg); } }
@keyframes lvParpadeo { 0%, 100% { opacity: .35; } 50% { opacity: 1; } }

@media (prefers-reduced-motion: reduce) {
	.login-vitrina *, .login-vitrina .lv-escena { animation: none !important; transition: none !important; }
}
