/* File Name: loader.css
Path: wp-content/plugins/navisa-page-loader/assets/css/loader.css
Module: Page Loader Styles
Structure Location: plugins/navisa-page-loader/assets/css/loader.css */

/* ========== Page Loader Styles ========== */
#navisa-page-loader {
position: fixed;
inset: 0;
z-index: 99999;
background: #ffffff;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
transition: opacity 0.4s ease, visibility 0.4s ease;
}

#navisa-page-loader.hidden {
opacity: 0;
visibility: hidden;
pointer-events: none;
}

/* Spinner */
.navisa-loader-spinner {
width: 48px;
height: 48px;
border: 4px solid #e0e0e0;
border-top-color: #1E88E5;
border-radius: 50%;
animation: navisa-spin 0.8s linear infinite;
}

@keyframes navisa-spin {
to { transform: rotate(360deg); }
}

/* Progress Bar */
.navisa-loader-progress {
width: 200px;
height: 6px;
background: #e0e0e0;
border-radius: 3px;
overflow: hidden;
}

.navisa-loader-progress .progress-bar {
height: 100%;
width: 0%;
background: #1E88E5;
border-radius: 3px;
transition: width 0.3s ease;
}

/* Skeleton */
.navisa-loader-skeleton {
display: flex;
flex-direction: column;
gap: 12px;
width: 240px;
}

.navisa-loader-skeleton .skeleton-line {
height: 14px;
background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
background-size: 200% 100%;
animation: shimmer 1.5s infinite;
border-radius: 4px;
}

@keyframes shimmer {
0% { background-position: 200% 0; }
100% { background-position: -200% 0; }
}