﻿/* =========================================================
   Mi Red Login - Animación premium de bienvenida
========================================================= */

.mired-login-brand {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

    .mired-login-brand::before {
        content: "";
        position: absolute;
        inset: -35%;
        z-index: -2;
        background: radial-gradient(circle at 72% 20%, rgba(56, 189, 248, 0.22), transparent 28%), radial-gradient(circle at 14% 78%, rgba(37, 99, 235, 0.18), transparent 32%);
        animation: miredLoginGlowDrift 9s ease-in-out infinite alternate;
    }

    .mired-login-brand::after {
        content: "";
        position: absolute;
        inset: 0;
        z-index: -1;
        background: linear-gradient( 120deg, transparent 0%, rgba(255, 255, 255, 0.045) 46%, rgba(255, 255, 255, 0.10) 50%, rgba(255, 255, 255, 0.045) 54%, transparent 100% );
        transform: translateX(-120%);
        animation: miredLoginCardShine 7s ease-in-out infinite;
    }

.mired-login-orbit {
    position: absolute;
    top: 30px;
    right: 30px;
    width: 156px;
    height: 156px;
    z-index: 0;
    display: grid;
    place-items: center;
    opacity: 0.95;
    pointer-events: none;
}

.mired-orbit-ring {
    position: absolute;
    inset: 0;
    border-radius: 999px;
    border: 2px solid rgba(56, 189, 248, 0.44);
    filter: drop-shadow(0 0 18px rgba(56, 189, 248, 0.22));
}

    .mired-orbit-ring.outer {
        border-top-color: transparent;
        border-left-color: rgba(96, 165, 250, 0.12);
        animation: miredOrbitClockwise 16s linear infinite;
    }

    .mired-orbit-ring.middle {
        inset: 18px;
        border-color: rgba(96, 165, 250, 0.42);
        border-right-color: transparent;
        animation: miredOrbitCounter 10s linear infinite;
    }

    .mired-orbit-ring.inner {
        inset: 39px;
        border-color: rgba(125, 211, 252, 0.62);
        border-bottom-color: transparent;
        animation: miredOrbitClockwise 6.5s linear infinite;
    }

.mired-orbit-text {
    width: 86px;
    height: 86px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    color: #a5f3fc;
    background: radial-gradient(circle at top, rgba(56, 189, 248, 0.16), transparent 58%), rgba(2, 6, 23, 0.42);
    border: 1px solid rgba(125, 211, 252, 0.24);
    font-size: 0.72rem;
    font-weight: 950;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    text-align: center;
    text-shadow: 0 0 18px rgba(56, 189, 248, 0.40);
    animation: miredOrbitTextPulse 1.8s ease-in-out infinite alternate;
}

.mired-orbit-dot {
    position: absolute;
    width: 9px;
    height: 9px;
    border-radius: 999px;
    background: #38bdf8;
    box-shadow: 0 0 14px rgba(56, 189, 248, 0.80), 0 0 28px rgba(56, 189, 248, 0.30);
}

    .mired-orbit-dot.dot-1 {
        top: 5px;
        left: 50%;
        animation: miredDotFloat 2.4s ease-in-out infinite;
    }

    .mired-orbit-dot.dot-2 {
        right: 12px;
        top: 58%;
        animation: miredDotFloat 2.8s ease-in-out infinite 0.25s;
    }

    .mired-orbit-dot.dot-3 {
        bottom: 16px;
        left: 24%;
        animation: miredDotFloat 2.6s ease-in-out infinite 0.45s;
    }

    .mired-orbit-dot.dot-4 {
        left: 10px;
        top: 38%;
        animation: miredDotFloat 3s ease-in-out infinite 0.65s;
    }

.mired-login-particles {
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    overflow: hidden;
}

    .mired-login-particles span {
        position: absolute;
        width: 10px;
        height: 10px;
        border-radius: 999px;
        background: rgba(125, 211, 252, 0.22);
        box-shadow: 0 0 24px rgba(56, 189, 248, 0.20);
        animation: miredParticleFloat 8s ease-in-out infinite;
    }

        .mired-login-particles span:nth-child(1) {
            left: 12%;
            top: 22%;
            width: 7px;
            height: 7px;
            animation-delay: 0s;
        }

        .mired-login-particles span:nth-child(2) {
            left: 82%;
            top: 70%;
            width: 16px;
            height: 16px;
            animation-delay: 0.6s;
        }

        .mired-login-particles span:nth-child(3) {
            left: 68%;
            top: 30%;
            width: 8px;
            height: 8px;
            animation-delay: 1.1s;
        }

        .mired-login-particles span:nth-child(4) {
            left: 24%;
            top: 80%;
            width: 13px;
            height: 13px;
            animation-delay: 1.7s;
        }

        .mired-login-particles span:nth-child(5) {
            left: 44%;
            top: 16%;
            width: 6px;
            height: 6px;
            animation-delay: 2.2s;
        }

        .mired-login-particles span:nth-child(6) {
            left: 76%;
            top: 18%;
            width: 12px;
            height: 12px;
            animation-delay: 2.7s;
        }

        .mired-login-particles span:nth-child(7) {
            left: 10%;
            top: 60%;
            width: 14px;
            height: 14px;
            animation-delay: 3.1s;
        }

        .mired-login-particles span:nth-child(8) {
            left: 54%;
            top: 84%;
            width: 8px;
            height: 8px;
            animation-delay: 3.8s;
        }

.mired-login-logo,
.mired-login-brand h1,
.mired-login-brand p,
.mired-brand-points {
    position: relative;
    z-index: 2;
}

@keyframes miredOrbitClockwise {
    to {
        transform: rotate(360deg);
    }
}

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

@keyframes miredOrbitTextPulse {
    from {
        color: #dffbff;
        transform: scale(0.98);
    }

    to {
        color: #38dfff;
        transform: scale(1.02);
    }
}

@keyframes miredDotFloat {
    0%, 100% {
        opacity: 0.45;
        transform: translateY(0) scale(0.85);
    }

    50% {
        opacity: 1;
        transform: translateY(-8px) scale(1.15);
    }
}

@keyframes miredParticleFloat {
    0%, 100% {
        opacity: 0.18;
        transform: translate3d(0, 0, 0) scale(0.85);
    }

    50% {
        opacity: 0.56;
        transform: translate3d(18px, -22px, 0) scale(1.25);
    }
}

@keyframes miredLoginGlowDrift {
    from {
        transform: translate3d(-2%, -2%, 0) scale(1);
    }

    to {
        transform: translate3d(3%, 2%, 0) scale(1.05);
    }
}

@keyframes miredLoginCardShine {
    0%, 58% {
        transform: translateX(-130%);
        opacity: 0;
    }

    68% {
        opacity: 1;
    }

    86%, 100% {
        transform: translateX(130%);
        opacity: 0;
    }
}

/* =========================================================
   Modo claro - Animaciones con mayor contraste
========================================================= */

html.theme-light .mired-login-brand {
    --mired-light-blue: #2563eb;
    --mired-light-cyan: #0ea5e9;
    --mired-light-sky: #38bdf8;
    --mired-light-navy: #0f2f63;
}


    /* ---------------------------------------------------------
   Aura / iluminación del panel izquierdo
--------------------------------------------------------- */

    html.theme-light .mired-login-brand::before {
        background: radial-gradient( circle at 74% 18%, rgba(14, 165, 233, 0.23), transparent 30% ), radial-gradient( circle at 12% 82%, rgba(37, 99, 235, 0.16), transparent 34% ), radial-gradient( circle at 52% 48%, rgba(125, 211, 252, 0.08), transparent 48% );
        animation: miredLoginGlowDrift 9s ease-in-out infinite alternate;
    }


    /* En claro usamos un reflejo azul,
   no uno blanco porque se perdía. */

    html.theme-light .mired-login-brand::after {
        background: linear-gradient( 120deg, transparent 0%, rgba(14, 165, 233, 0.025) 42%, rgba(37, 99, 235, 0.11) 49%, rgba(14, 165, 233, 0.15) 50%, rgba(37, 99, 235, 0.08) 52%, rgba(14, 165, 233, 0.025) 58%, transparent 100% );
        animation: miredLoginCardShine 7s ease-in-out infinite;
    }


/* ---------------------------------------------------------
   Sistema orbital
--------------------------------------------------------- */

html.theme-light .mired-login-orbit {
    opacity: 0.96;
    filter: drop-shadow( 0 8px 18px rgba(37, 99, 235, 0.08) );
}


html.theme-light .mired-orbit-ring {
    border-color: rgba(14, 165, 233, 0.48);
    filter: drop-shadow( 0 0 7px rgba(14, 165, 233, 0.18) );
}


    /* Anillo exterior */

    html.theme-light
    .mired-orbit-ring.outer {
        border-color: rgba(37, 99, 235, 0.40);
        border-top-color: transparent;
        border-left-color: rgba(14, 165, 233, 0.16);
    }


    /* Anillo intermedio */

    html.theme-light
    .mired-orbit-ring.middle {
        border-color: rgba(14, 165, 233, 0.48);
        border-right-color: transparent;
    }


    /* Anillo interior */

    html.theme-light
    .mired-orbit-ring.inner {
        border-color: rgba(37, 99, 235, 0.56);
        border-bottom-color: transparent;
        filter: drop-shadow( 0 0 9px rgba(37, 99, 235, 0.18) );
    }


/* ---------------------------------------------------------
   Centro "BIENVENIDO"
--------------------------------------------------------- */

html.theme-light .mired-orbit-text {
    color: #123b73;
    background: radial-gradient( circle at 35% 25%, rgba(255, 255, 255, 0.95), rgba(224, 242, 254, 0.82) 48%, rgba(186, 230, 253, 0.62) 100% );
    border: 1px solid rgba(37, 99, 235, 0.34);
    box-shadow: 0 8px 24px rgba(37, 99, 235, 0.11), inset 0 0 18px rgba(56, 189, 248, 0.15);
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.95);
    animation: miredOrbitTextPulseLight 1.8s ease-in-out infinite alternate;
}


/*
   IMPORTANTE:
   Animación independiente para modo claro.

   La animación anterior cambiaba el texto
   a colores casi blancos y por eso desaparecía.
*/

@keyframes miredOrbitTextPulseLight {

    from {
        color: #173f78;
        transform: scale(0.98);
        box-shadow: 0 7px 20px rgba(37, 99, 235, 0.10), inset 0 0 14px rgba(56, 189, 248, 0.12);
    }

    to {
        color: #075985;
        transform: scale(1.025);
        box-shadow: 0 9px 28px rgba(14, 165, 233, 0.18), inset 0 0 22px rgba(56, 189, 248, 0.22);
    }
}


/* ---------------------------------------------------------
   Puntos de las órbitas
--------------------------------------------------------- */

html.theme-light .mired-orbit-dot {
    background: #0ea5e9;
    border: 1px solid rgba(255, 255, 255, 0.75);
    box-shadow: 0 0 8px rgba(14, 165, 233, 0.65), 0 0 18px rgba(37, 99, 235, 0.28);
}


    /* Punto principal algo más intenso */

    html.theme-light
    .mired-orbit-dot.dot-1 {
        background: #0284c7;
        box-shadow: 0 0 10px rgba(2, 132, 199, 0.65), 0 0 24px rgba(37, 99, 235, 0.26);
    }


/* ---------------------------------------------------------
   Partículas del fondo
--------------------------------------------------------- */

html.theme-light
.mired-login-particles span {
    background: rgba(37, 99, 235, 0.19);
    border: 1px solid rgba(14, 165, 233, 0.08);
    box-shadow: 0 0 12px rgba(14, 165, 233, 0.12), 0 0 28px rgba(37, 99, 235, 0.08);
}


    /* Algunas partículas más azules para dar profundidad */

    html.theme-light
    .mired-login-particles
    span:nth-child(2),
    html.theme-light
    .mired-login-particles
    span:nth-child(4),
    html.theme-light
    .mired-login-particles
    span:nth-child(7) {
        background: rgba(37, 99, 235, 0.14);
    }


    html.theme-light
    .mired-login-particles
    span:nth-child(1),
    html.theme-light
    .mired-login-particles
    span:nth-child(5),
    html.theme-light
    .mired-login-particles
    span:nth-child(8) {
        background: rgba(14, 165, 233, 0.20);
    }