/**
 * Page loader — personalizable con variables CSS en .inad-page-loader o :root
 *
 * --inad-loader-bg              Fondo del panel central (default: #fff)
 * --inad-loader-backdrop        Velo sobre la ventana (default: rgba blanco)
 * --inad-loader-stroke          Color del arco animado (default: color primario del tema)
 * --inad-loader-stroke-track    Anillo de fondo (default: gris claro)
 * --inad-loader-ring-width      Grosor del trazo SVG (default: 4)
 * --inad-loader-size            Ancho/alto del icono (default: 3rem)
 * --inad-loader-duration        Duración del giro del arco (default: 1.15s)
 * --inad-loader-fade-duration   Salida al terminar carga (default: 0.45s)
 */

.inad-page-loader {
	--inad-loader-bg: #ffffff;
	--inad-loader-backdrop: rgba(255, 255, 255, 0.78);
	--inad-loader-stroke: var(--inadapress-primary, #0d47a1);
	--inad-loader-stroke-track: #e8e8e8;
	--inad-loader-ring-width: 4px;
	--inad-loader-size: 3rem;
	--inad-loader-duration: 1.15s;
	--inad-loader-fade-duration: 0.45s;

	position: fixed;
	inset: 0;
	z-index: 999999;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--inad-loader-backdrop);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	transition:
		opacity var(--inad-loader-fade-duration) ease,
		visibility 0s linear 0s;
}

.inad-page-loader--hidden {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition:
		opacity var(--inad-loader-fade-duration) ease,
		visibility 0s linear var(--inad-loader-fade-duration);
}

.inad-page-loader__inner {
	display: flex;
	align-items: center;
	justify-content: center;
	width: calc(var(--inad-loader-size) + 2.5rem);
	height: calc(var(--inad-loader-size) + 2.5rem);
	border-radius: 50%;
	background: var(--inad-loader-bg);
	box-shadow: 0 8px 32px rgb(0 0 0 / 8%), 0 1px 0 rgb(0 0 0 / 4%);
}

.inad-page-loader__svg {
	width: var(--inad-loader-size);
	height: var(--inad-loader-size);
	display: block;
}

.inad-page-loader__track,
.inad-page-loader__arc {
	fill: none;
	stroke-width: var(--inad-loader-ring-width);
	transform-origin: 50% 50%;
}

.inad-page-loader__track {
	stroke: var(--inad-loader-stroke-track);
}

.inad-page-loader__arc {
	stroke: var(--inad-loader-stroke);
	stroke-linecap: round;
	stroke-dasharray: 22 100;
	animation: inad-page-loader-dash var(--inad-loader-duration) ease-in-out infinite;
}

@keyframes inad-page-loader-dash {
	0% {
		stroke-dasharray: 4 100;
		stroke-dashoffset: 0;
		transform: rotate(0deg);
	}
	50% {
		stroke-dasharray: 42 100;
		stroke-dashoffset: -18;
		transform: rotate(135deg);
	}
	100% {
		stroke-dasharray: 4 100;
		stroke-dashoffset: -100;
		transform: rotate(360deg);
	}
}

@media (prefers-reduced-motion: reduce) {
	.inad-page-loader__arc {
		animation: inad-page-loader-dash-reduced 1.8s ease-in-out infinite;
	}

	@keyframes inad-page-loader-dash-reduced {
		0%,
		100% {
			stroke-dasharray: 28 100;
			stroke-dashoffset: 0;
			transform: rotate(0deg);
		}
		50% {
			stroke-dasharray: 28 100;
			stroke-dashoffset: -50;
			transform: rotate(180deg);
		}
	}

	.inad-page-loader {
		transition-duration: 0.15s;
	}

	.inad-page-loader--hidden {
		transition-duration: 0.15s;
	}
}

body.inad-page-loading {
	overflow: hidden;
}

body.inad-page-loaded {
	overflow: visible;
}
