/* Container covering the full viewport */
.loading-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	background-color: rgba(15, 23, 42, 0.9);
	/* Dark semi-transparent background */
	backdrop-filter: blur(4px);
	/* Soft backdrop blur */
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	z-index: 99999;
	/* Sit above all other page content */
	color: #ffffff;
	font-family: system-ui, -apple-system, sans-serif;
	opacity: 1;
	visibility: visible;
	transition: opacity 0.3s ease, visibility 0.3s ease;
}

/* Hide state with smooth transition */
.loading-overlay.hidden {
	opacity: 0;
	visibility: hidden;
}

/* Rotating spinner ring */
.loading-spinner {
	width: 50px;
	height: 50px;
	border: 4px solid rgba(255, 255, 255, 0.15);
	border-top-color: #3b82f6;
	/* Spinner accent color */
	border-radius: 50%;
	animation: spin 0.8s linear infinite;
}

/* Pulsing text */
.loading-text {
	margin-top: 16px;
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: 0.5px;
	animation: pulse 1.5s ease-in-out infinite;
}

/* Keyframe Animations */
@keyframes spin {
	to {
		transform: rotate(360deg);
	}
}

@keyframes pulse {

	0%,
	100% {
		opacity: 0.5;
	}

	50% {
		opacity: 1;
	}
}