/* Marjaa page loading — frosted veil + tri-color ring spinner */

.loading-overlay {
    --mj-load-blur: 18px;
    --mj-load-veil: rgba(255, 255, 255, 0.42);
    /* Marjaa logo: white + vivid purple (j) — rings use violet scale only */
    --mj-load-ring-outer: #c4b5fd;
    --mj-load-ring-mid: #8338ec;
    --mj-load-ring-inner: #6d28d9;

    position: fixed !important;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 999999 !important;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 1;
    pointer-events: auto;
    background:
        radial-gradient(
            ellipse 130% 90% at 50% 38%,
            rgba(237, 233, 254, 0.72) 0%,
            rgba(255, 255, 255, 0.52) 42%,
            var(--mj-load-veil) 100%
        );
    -webkit-backdrop-filter: blur(var(--mj-load-blur)) saturate(1.12);
    backdrop-filter: blur(var(--mj-load-blur)) saturate(1.12);
    transition: opacity 0.38s ease, visibility 0.38s ease;
}

.loading-overlay.hiding {
    opacity: 0;
    pointer-events: none;
}

.loading-overlay.hidden {
    display: none !important;
    visibility: hidden;
}

.loading-logo-container {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

.loader-wrap {
    position: relative;
    width: 4.5rem;
    height: 4.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

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

@keyframes mj-load-spin-reverse {
    to {
        transform: rotate(-360deg);
    }
}

.ring-outer,
.ring-mid,
.ring-inner {
    position: absolute;
    border-radius: 50%;
    border-style: solid;
    border-color: transparent;
    box-sizing: border-box;
}

.ring-outer {
    inset: -1.65rem;
    border-width: 2.5px;
    border-top-color: var(--mj-load-ring-outer);
    border-right-color: color-mix(in srgb, var(--mj-load-ring-outer) 55%, transparent);
    animation: mj-load-spin 2.1s cubic-bezier(0.45, 0.05, 0.55, 0.95) infinite;
}

.ring-mid {
    inset: -1rem;
    border-width: 2px;
    border-bottom-color: var(--mj-load-ring-mid);
    border-left-color: color-mix(in srgb, var(--mj-load-ring-mid) 50%, transparent);
    animation: mj-load-spin-reverse 1.55s cubic-bezier(0.45, 0.05, 0.55, 0.95) infinite;
}

.ring-inner {
    inset: -0.35rem;
    border-width: 2px;
    border-top-color: var(--mj-load-ring-inner);
    border-right-color: color-mix(in srgb, var(--mj-load-ring-inner) 45%, transparent);
    animation: mj-load-spin 1.05s cubic-bezier(0.45, 0.05, 0.55, 0.95) infinite;
}

.loading-overlay__label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

@media (prefers-reduced-motion: reduce) {
    .ring-outer,
    .ring-mid,
    .ring-inner {
        animation-duration: 4s;
    }

    .loading-overlay {
        transition: opacity 0.2s ease;
    }
}

@media (prefers-color-scheme: dark) {
    .loading-overlay {
        --mj-load-veil: rgba(15, 23, 42, 0.38);
        background:
            radial-gradient(
                ellipse 130% 90% at 50% 38%,
                rgba(88, 28, 135, 0.28) 0%,
                rgba(15, 23, 42, 0.52) 55%,
                var(--mj-load-veil) 100%
            );
    }
}
