/* Skeleton loading — navigation & initial paint */
.mr-nav-progress {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    z-index: 9999;
    background: #e2e8f0;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.15s;
}

html.mr-is-loading .mr-nav-progress {
    opacity: 1;
}

.mr-nav-progress__bar {
    height: 100%;
    width: 35%;
    background: linear-gradient(90deg, var(--mr-primary-hover, #1151d3), var(--mr-primary, #202f5b));
    animation: mr-nav-progress 1s ease-in-out infinite;
}

@keyframes mr-nav-progress {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(350%); }
}

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

.mr-skel {
    background: linear-gradient(90deg, #e8ecf1 25%, #f4f6f8 50%, #e8ecf1 75%);
    background-size: 200% 100%;
    animation: mr-skeleton-shimmer 1.2s ease-in-out infinite;
    border-radius: 6px;
}

.mr-skel--dark {
    background: linear-gradient(90deg, #dce3eb 25%, #eef2f6 50%, #dce3eb 75%);
    background-size: 200% 100%;
}

html.mr-is-loading .mr-page-real {
    visibility: hidden;
    position: absolute;
    width: 100%;
    left: 0;
    pointer-events: none;
    opacity: 0;
}

html.mr-is-loading .mr-page-skeleton {
    display: block !important;
}

.mr-page-skeleton {
    display: none;
}

/* —— Home skeleton —— */
.mr-skeleton-home__slider {
    height: min(42vw, 420px);
    max-height: 420px;
    margin-bottom: 1.5rem;
    border-radius: 0;
}

.mr-skeleton-home__grid-4 {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.65rem;
    margin-bottom: 2rem;
}

@media (max-width: 640px) {
    .mr-skeleton-home__grid-4 {
        grid-template-columns: repeat(2, 1fr);
    }
}

.mr-skeleton-home__thumb {
    aspect-ratio: 4 / 3;
}

.mr-skeleton-home__cards {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}

.mr-skeleton-home__card {
    height: 200px;
    border-radius: 8px;
}

/* —— CMS skeleton —— */
.mr-skeleton-cms__stats {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr));
    margin-bottom: 1.5rem;
}

.mr-skeleton-cms__stat {
    height: 4.5rem;
    border-radius: 10px;
}

.mr-skeleton-cms__card {
    height: 12rem;
    border-radius: 12px;
    margin-bottom: 1rem;
}

.mr-skeleton-cms__rows .mr-skel {
    height: 3.5rem;
    margin-bottom: 0.5rem;
    border-radius: 8px;
}

.mr-skeleton-cms__form .mr-skel {
    height: 2.5rem;
    margin-bottom: 1rem;
}

.mr-skeleton-cms__form .mr-skel--area {
    height: 8rem;
}

/* —— Public list / content pages —— */
.mr-skeleton-public__hero {
    height: 6rem;
    margin-bottom: 1.5rem;
}

.mr-skeleton-public__block {
    height: 14rem;
    border-radius: 8px;
    margin-bottom: 1rem;
}
