        /* ===== DISEÑO PREMIUM GALÁCTICO CON CARD BLANCO ===== */
        :root {
            /* Fondo galáctico profundo */
--bg-gradient: linear-gradient(135deg, #eaf3fb 0%, #ffffff 48%, #fff3e6 100%);

--card-bg: rgba(255, 255, 255, 0.96);
--card-border: rgba(214, 226, 240, 0.95);

--text-primary: #17255c;
--text-secondary: #5f6f89;
--text-muted: #8a98ad;

--pit-primary: #17255c;
--pit-secondary: #263b7a;
--pit-green: #8cc63f;

--dominos-blue: #006491;
--dominos-red: #E31837;
--anfora-orange: #f5663a;
--anfora-brown: #3a2418;

--pizza-red: rgba(227, 24, 55, 0.38);
--pizza-blue: rgba(0, 100, 145, 0.38);
--muffin-orange: rgba(245, 102, 58, 0.46);

--input-bg: #ffffff;
--input-border: #ccd7e5;
--input-focus-border: #006491;

--unified-gradient: linear-gradient(135deg, #17255c 0%, #006491 52%, #263b7a 100%);
            
            --transition-smooth: cubic-bezier(0.25, 0.8, 0.25, 1);
        }

        /* ===== RESET & BASE ===== */
        *, *::before, *::after {
            box-sizing: border-box;
            margin: 0;
            padding: 0;
        }

        body {
            font-family: 'Inter', sans-serif;
            min-height: 100vh;
            background: var(--bg-gradient);
            color: var(--text-primary);
            display: flex;
            flex-direction: column;
            overflow-x: hidden;
            position: relative;
        }

        /* ===== FONDO DINÁMICO GALÁCTICO EN ROTACIÓN ===== */
        .animated-bg {
            position: fixed;
            top: 0;
            left: 0;
            width: 100vw;
            height: 100vh;
            overflow: hidden;
            z-index: 0;
            pointer-events: none;
        }

        .animated-bg::after {
            content: '';
            position: absolute;
            inset: 0;
            background:
                radial-gradient(circle at 18% 20%, rgba(0, 100, 145, 0.10), transparent 32%),
                radial-gradient(circle at 82% 62%, rgba(245, 102, 58, 0.10), transparent 36%),
                linear-gradient(180deg, rgba(255, 255, 255, 0.38), rgba(255, 255, 255, 0.08));
            z-index: 1;
        }

        /* Estrellas estáticas en contenedores rotatorios (efecto espiral) */
        .stars, .stars2, .stars3 {
            position: absolute;
            top: 50%;
            left: 50%;
            width: 150vmax;
            height: 150vmax;
            transform: translate(-50%, -50%);
            border-radius: 50%;
            pointer-events: none;
            background: transparent;
            will-change: transform;
        }

        /* Capa 1: Estrellas pequeñas lentas */
        .stars {
            box-shadow: 
                -40vmax -20vmax #fff, 15vmax -45vmax #fff, -30vmax 35vmax #fff, 20vmax 40vmax #fff,
                -10vmax 45vmax #fff, 45vmax -20vmax #fff, 5vmax -15vmax #fff, -25vmax -10vmax #fff,
                10vmax 20vmax #fff, -15vmax 30vmax #fff, 35vmax -45vmax #fff, -35vmax -35vmax #fff,
                40vmax 10vmax #fff, -45vmax 25vmax #fff, -5vmax 15vmax #fff, 25vmax 15vmax #fff,
                -15vmax -30vmax #fff, 30vmax -15vmax #fff, -20vmax 25vmax #fff, 15vmax 30vmax #fff,
                -50vmax -5vmax #fff, 50vmax -35vmax #fff, -25vmax 55vmax #fff, 40vmax 20vmax #fff,
                -5vmax -50vmax #fff, 35vmax 50vmax #fff, -45vmax -45vmax #fff, 15vmax -15vmax #fff,
                5vmax 35vmax #fff, -35vmax -5vmax #fff, 20vmax -25vmax #fff, -20vmax -20vmax #fff;
            opacity: 0.28;
            animation: galaxy-rotate-slow 160s linear infinite;
        }

        /* Capa 2: Estrellas medianas en sentido inverso */
        .stars2 {
            box-shadow: 
                -25vmax -35vmax #fff, 35vmax -25vmax #fff, -15vmax 45vmax #fff, 45vmax 15vmax #fff,
                -5vmax 25vmax #fff, 25vmax -5vmax #fff, 15vmax -35vmax #fff, -35vmax -15vmax #fff,
                -45vmax 5vmax #fff, 5vmax -45vmax #fff, -30vmax -30vmax #fff, 30vmax 30vmax #fff,
                -20vmax 10vmax #fff, 20vmax -10vmax #fff, 10vmax 40vmax #fff, -40vmax -10vmax #fff,
                -12vmax -12vmax #fff, 18vmax 18vmax #fff, -8vmax 28vmax #fff, 28vmax -8vmax #fff;
            opacity: 0.48;
            animation: galaxy-rotate-medium 220s linear infinite reverse;
        }

        /* Capa 3: Planetas y estrellas brillantes más rápidas */
        .stars3 {
            box-shadow: 
                -10vmax -15vmax #fff, 20vmax -30vmax #fff, -35vmax 5vmax #fff, 15vmax 35vmax #fff,
                -5vmax 40vmax #fff, 40vmax -5vmax #fff, 5vmax -25vmax #fff, -25vmax -5vmax #fff,
                -30vmax 20vmax #fff, 30vmax -20vmax #fff, -45vmax -25vmax #fff, 25vmax -45vmax #fff,
                -55vmax 15vmax #fff, 55vmax -15vmax #fff, 15vmax 55vmax #fff, -15vmax -55vmax #fff;
            opacity: 0.65;
            animation: galaxy-rotate-fast 100s linear infinite;
        }

        /* Estrellas fugaces */
        .shooting-star {
            position: absolute;
            width: 120px;
            height: 1.5px;
            background: linear-gradient(90deg, rgba(255, 255, 255, 0.85), transparent);
            transform: rotate(-45deg);
            opacity: 0;
            pointer-events: none;
        }

        .star-1 {
            top: 5%;
            right: 15%;
            animation: shoot-star-1 12s linear infinite;
        }

        .star-2 {
            top: 25%;
            right: -5%;
            animation: shoot-star-2 15s linear infinite;
            animation-delay: 4s;
        }

        .star-3 {
            top: 45%;
            right: 25%;
            animation: shoot-star-3 18s linear infinite;
            animation-delay: 8s;
        }

        @keyframes shoot-star-1 {
            0% { transform: translate(0, 0) rotate(-45deg); opacity: 0; }
            5% { opacity: 1; }
            15% { transform: translate(-400px, 400px) rotate(-45deg); opacity: 0; }
            100% { transform: translate(-400px, 400px) rotate(-45deg); opacity: 0; }
        }

        @keyframes shoot-star-2 {
            0% { transform: translate(0, 0) rotate(-45deg); opacity: 0; }
            4% { opacity: 1; }
            12% { transform: translate(-500px, 500px) rotate(-45deg); opacity: 0; }
            100% { transform: translate(-500px, 500px) rotate(-45deg); opacity: 0; }
        }

        @keyframes shoot-star-3 {
            0% { transform: translate(0, 0) rotate(-45deg); opacity: 0; }
            6% { opacity: 1; }
            16% { transform: translate(-350px, 350px) rotate(-45deg); opacity: 0; }
            100% { transform: translate(-350px, 350px) rotate(-45deg); opacity: 0; }
        }


        /* Esferas ambientales de fondo (Nebulosas con pulsaciones y movimiento) */
        .ambient-sphere {
            position: absolute;
            border-radius: 50%;
            filter: blur(120px);
            opacity: 0.65;
            will-change: transform;
        }

        .sphere-1 {
            width: 45vw;
            height: 45vw;
            min-width: 320px;
            background: radial-gradient(circle, rgba(14, 165, 233, 0.15) 0%, rgba(14, 165, 233, 0.02) 70%, transparent 100%);
            top: -15%;
            left: -10%;
            animation: nebula-pulse-1 25s ease-in-out infinite alternate;
        }

        .sphere-2 {
            width: 50vw;
            height: 50vw;
            min-width: 380px;
            background: radial-gradient(circle, rgba(59, 130, 246, 0.12) 0%, rgba(59, 130, 246, 0.02) 70%, transparent 100%);
            bottom: -15%;
            right: -10%;
            animation: nebula-pulse-2 30s ease-in-out infinite alternate;
        }

        .sphere-3 {
            width: 38vw;
            height: 38vw;
            min-width: 280px;
            background: radial-gradient(circle, rgba(139, 92, 246, 0.1) 0%, rgba(139, 92, 246, 0.01) 70%, transparent 100%);
            top: 15%;
            right: 15%;
            animation: nebula-pulse-1 28s ease-in-out infinite alternate;
        }

        .sphere-4 {
            width: 42vw;
            height: 42vw;
            min-width: 300px;
            background: radial-gradient(circle, rgba(236, 72, 153, 0.08) 0%, rgba(236, 72, 153, 0.01) 70%, transparent 100%);
            bottom: 20%;
            left: 10%;
            animation: nebula-pulse-2 32s ease-in-out infinite alternate;
        }

        /* ===== ICONOS FLOTANTES ===== */
        .floating-object {
            position: absolute;
            pointer-events: none;
            will-change: transform;
            z-index: 1;
        }

        /* Pizzas (Rojas y Azules Aleatorias) */
        .pizza-red {
            color: var(--pizza-red);
        }

        .pizza-blue {
            color: var(--pizza-blue);
        }

        .object-pizza-1 {
            top: 12%;
            left: 10%;
            animation: drift-rotate-clockwise 14s linear infinite;
        }

        .object-pizza-2 {
            top: 50%;
            right: 12%;
            animation: drift-simple-2 11s ease-in-out infinite alternate;
        }

        .object-pizza-3 {
            bottom: 35%;
            left: 28%;
            animation: drift-simple-1 12s ease-in-out infinite alternate;
        }

        .object-pizza-4 {
            top: 32%;
            right: 28%;
            animation: drift-rotate-counter 15s linear infinite;
        }

        .object-pizza-5 {
            bottom: 18%;
            left: 45%;
            animation: drift-simple-2 14s ease-in-out infinite alternate;
        }

        .object-pizza-6 {
            top: 62%;
            left: 18%;
            animation: drift-rotate-clockwise 16s linear infinite;
        }

        /* Muffins Flotantes (Naranja Más Opaco / Sólido) */
        .muffin-orange {
            color: var(--muffin-orange);
        }

        .object-muffin-1 {
            top: 10%;
            right: 15%;
            animation: drift-rotate-counter 16s linear infinite;
        }

        .object-muffin-2 {
            top: 42%;
            left: 8%;
            animation: drift-simple-1 10s ease-in-out infinite alternate;
        }

        .object-muffin-3 {
            bottom: 22%;
            left: 14%;
            animation: drift-rotate-clockwise 15s linear infinite;
        }

        .object-muffin-4 {
            bottom: 15%;
            right: 8%;
            animation: drift-rotate-counter 13s linear infinite;
        }

        .object-muffin-5 {
            top: 8%;
            left: 45%;
            animation: drift-simple-2 13s ease-in-out infinite alternate;
        }

        .object-muffin-6 {
            top: 65%;
            right: 30%;
            animation: drift-simple-1 15s ease-in-out infinite alternate;
        }

       
        /* ===== KEYFRAMES DE ROTACIÓN GALÁCTICA Y DRIVINGS ===== */
        @keyframes galaxy-rotate-slow {
            from { transform: translate(-50%, -50%) rotate(0deg); }
            to { transform: translate(-50%, -50%) rotate(360deg); }
        }

        @keyframes galaxy-rotate-medium {
            from { transform: translate(-50%, -50%) rotate(0deg); }
            to { transform: translate(-50%, -50%) rotate(-360deg); }
        }

        @keyframes galaxy-rotate-fast {
            from { transform: translate(-50%, -50%) rotate(0deg); }
            to { transform: translate(-50%, -50%) rotate(360deg); }
        }

        @keyframes float-slow-1 {
            0% { transform: translate(0, 0) scale(1) rotate(0deg); }
            50% { transform: translate(6%, 8%) scale(1.06) rotate(40deg); }
            100% { transform: translate(-3%, 12%) scale(0.96) rotate(80deg); }
        }

        @keyframes float-slow-2 {
            0% { transform: translate(0, 0) scale(1) rotate(0deg); }
            50% { transform: translate(-8%, -6%) scale(0.94) rotate(-45deg); }
            100% { transform: translate(4%, -12%) scale(1.04) rotate(-90deg); }
        }

        @keyframes float-slow-3 {
            0% { transform: translate(0, 0) scale(1); }
            50% { transform: translate(-8%, 6%) scale(1.04); }
            100% { transform: translate(6%, -6%) scale(0.96); }
        }

        @keyframes float-slow-4 {
            0% { transform: translate(0, 0) scale(1); }
            50% { transform: translate(8%, -8%) scale(0.95); }
            100% { transform: translate(-6%, 4%) scale(1.05); }
        }

        @keyframes nebula-pulse-1 {
            0% { transform: scale(1) translate(0, 0); opacity: 0.6; }
            50% { transform: scale(1.15) translate(3%, 5%); opacity: 0.8; }
            100% { transform: scale(1) translate(0, 0); opacity: 0.6; }
        }

        @keyframes nebula-pulse-2 {
            0% { transform: scale(1.1) translate(0, 0); opacity: 0.5; }
            50% { transform: scale(0.95) translate(-4%, -3%); opacity: 0.75; }
            100% { transform: scale(1.1) translate(0, 0); opacity: 0.5; }
        }

        @keyframes drift-rotate-clockwise {
            0% { transform: translate(0, 0) rotate(0deg) scale(1); }
            50% { transform: translate(20px, -25px) rotate(180deg) scale(1.06); }
            100% { transform: translate(0, 0) rotate(360deg) scale(1); }
        }

        @keyframes drift-rotate-counter {
            0% { transform: translate(0, 0) rotate(360deg) scale(1); }
            50% { transform: translate(-25px, 20px) rotate(180deg) scale(0.94); }
            100% { transform: translate(0, 0) rotate(0deg) scale(1); }
        }

        @keyframes drift-simple-1 {
            0% { transform: translate(0, 0) scale(1) rotate(0deg); }
            50% { transform: translate(-15px, 15px) scale(1.12) rotate(30deg); }
            100% { transform: translate(12px, -12px) scale(0.88) rotate(-30deg); }
        }

        @keyframes drift-simple-2 {
            0% { transform: translate(0, 0) scale(0.88) rotate(0deg); }
            50% { transform: translate(15px, 12px) scale(1.08) rotate(-25deg); }
            100% { transform: translate(-15px, -15px) scale(0.92) rotate(25deg); }
        }

        @keyframes drift-rocket {
            0% { transform: translate(0, 0) rotate(15deg) scale(1); }
            50% { transform: translate(15px, -20px) rotate(20deg) scale(1.05); }
            100% { transform: translate(0, 0) rotate(15deg) scale(1); }
        }

        @keyframes drift-rocket-2 {
            0% { transform: translate(0, 0) rotate(-35deg) scale(0.95); }
            50% { transform: translate(-10px, -25px) rotate(-30deg) scale(1.02); }
            100% { transform: translate(0, 0) rotate(-35deg) scale(0.95); }
        }

        @keyframes stealth-letter-drift {
            0% { transform: translate3d(0, 0, 0) rotate(-8deg); opacity: 0.16; }
            35% { opacity: 0.32; }
            70% { transform: translate3d(22px, -18px, 0) rotate(9deg); opacity: 0.22; }
            100% { transform: translate3d(-16px, 14px, 0) rotate(-4deg); opacity: 0.36; }
        }

        /* ===== CONTENEDOR PRINCIPAL ===== */
        main {
            flex: 1;
            display: flex;
            justify-content: center;
            align-items: center;
            padding: 2.5rem 1.5rem;
            position: relative;
            z-index: 2;
        }

        /* ===== TARJETA DE LOGIN EN BLANCO PREMIUM ===== */
        .login-card {
            width: 100%;
            max-width: 430px;
            background:
                linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 250, 252, 0.96));
            backdrop-filter: blur(24px);
            -webkit-backdrop-filter: blur(24px);
            border: 1px solid rgba(255, 255, 255, 0.78);
            border-radius: 20px;
            padding: 3rem 2.5rem;
            box-shadow: 
                0 28px 70px rgba(0, 0, 0, 0.42),
                0 1px 0 rgba(255, 255, 255, 0.9) inset,
                0 0 0 1px rgba(15, 23, 42, 0.03) inset;
            position: relative;
            overflow: hidden;
            animation: cardEntrance 0.6s var(--transition-smooth) forwards;
        }

        .login-card::before {
            content: '';
            position: absolute;
            inset: 0;
            background: linear-gradient(135deg, rgba(0, 100, 145, 0.06), transparent 35%, rgba(27, 42, 74, 0.05));
            pointer-events: none;
        }

        .login-card > * {
            position: relative;
            z-index: 1;
        }

        /* Barra decorativa superior en degradado azul */
        .card-top-bar {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 5px;
            display: flex;
        }

        .bar-dominos {
            flex: 1;
            background: linear-gradient(to right, var(--anfora-navy), var(--dominos-blue));
        }

        .bar-anfora {
            flex: 1;
            background: linear-gradient(to right, var(--dominos-blue), var(--accent-blue));
        }

        @keyframes cardEntrance {
            from {
                opacity: 0;
                transform: translateY(20px) scale(0.98);
            }
            to {
                opacity: 1;
                transform: translateY(0) scale(1);
            }
        }

        .brand-header {
            text-align: center;
            margin-bottom: 2.5rem;
        }

        .portal-title {
            font-size: 1.6rem;
            font-weight: 800;
            color: var(--text-primary);
            letter-spacing: 0;
            margin-bottom: 0.4rem;
        }

        .portal-subtitle {
            font-size: 0.88rem;
            color: var(--text-secondary);
            font-weight: 400;
        }

        /* ===== ESTILOS DE FORMULARIO EN MODO CLARO (CARD BLANCA) ===== */
        .form-group-custom {
            margin-bottom: 1.5rem;
            position: relative;
        }

        .form-group-custom label {
            display: block;
            font-size: 0.75rem;
            font-weight: 700;
            color: var(--text-secondary);
            margin-bottom: 0.6rem;
            text-transform: uppercase;
            letter-spacing: 0.05em;
        }

        .form-group-custom label .req {
            color: var(--dominos-blue);
            margin-left: 2px;
        }

        .input-wrapper {
            position: relative;
        }

        .input-field {
            width: 100%;
            padding: 14px 16px 14px 46px;
            background: var(--input-bg);
            border: 1px solid var(--input-border);
            border-radius: 10px;
            color: var(--text-primary);
            font-family: inherit;
            font-size: 0.95rem;
            outline: none;
            transition: all 0.25s var(--transition-smooth);
        }

        .input-field::placeholder {
            color: var(--text-muted);
            opacity: 0.8;
        }

        .input-field:hover {
            border-color: #cbd5e1;
        }

        .input-field:focus {
            border-color: var(--input-focus-border);
            box-shadow: 
                0 0 0 3px rgba(0, 100, 145, 0.08),
                0 8px 18px rgba(0, 100, 145, 0.06);
            background: #ffffff;
        }

        .input-icon-left {
            position: absolute;
            left: 16px;
            top: 50%;
            transform: translateY(-50%);
            color: var(--text-secondary);
            pointer-events: none;
            transition: color 0.25s ease;
        }

        .input-field:focus ~ .input-icon-left {
            color: var(--dominos-blue);
        }

        .btn-toggle-pass {
            position: absolute;
            right: 14px;
            top: 50%;
            transform: translateY(-50%);
            background: none;
            border: none;
            color: var(--text-secondary);
            cursor: pointer;
            padding: 4px;
            display: flex;
            align-items: center;
            justify-content: center;
            transition: color 0.2s ease;
        }

        .btn-toggle-pass:hover {
            color: var(--text-primary);
        }

        /* ===== BOTÓN SUBMIT PREMIUM ===== */
        .btn-submit-premium {
            width: 100%;
            padding: 15px;
            border: none;
            border-radius: 10px;
            font-size: 0.98rem;
            font-weight: 700;
            color: #ffffff;
            cursor: pointer;
            position: relative;
            overflow: hidden;
            background: var(--unified-gradient);
            box-shadow: 0 10px 24px rgba(27, 42, 74, 0.22);
            transition: all 0.3s var(--transition-smooth);
            letter-spacing: 0.02em;
            margin-top: 0.5rem;
        }

        .btn-submit-premium::before {
            content: '';
            position: absolute;
            inset: 0;
            background: linear-gradient(95deg, transparent, rgba(255, 255, 255, 0.15), transparent);
            transform: translateX(-100%);
            transition: transform 0.5s ease;
        }

        .btn-submit-premium:hover {
            transform: translateY(-1px);
            box-shadow: 0 8px 25px rgba(27, 42, 74, 0.25);
        }

        .btn-submit-premium:hover::before {
            transform: translateX(100%);
        }

        .btn-submit-premium:active {
            transform: translateY(0);
        }

        /* Spinner Loading */
        .btn-submit-premium.loading {
            pointer-events: none;
            color: transparent;
        }

        .btn-submit-premium.loading::after {
            content: '';
            position: absolute;
            width: 20px;
            height: 20px;
            top: calc(50% - 10px);
            left: calc(50% - 10px);
            border: 2px solid rgba(255, 255, 255, 0.3);
            border-top-color: #ffffff;
            border-radius: 50%;
            animation: btnSpinner 0.6s linear infinite;
        }

        @keyframes btnSpinner {
            to { transform: rotate(360deg); }
        }

        /* ===== ALERTAS MODERNAS EN CARD BLANCO ===== */
        .alert-modern {
            background: #fef2f2;
            border: 1px solid #fee2e2;
            color: #b91c1c;
            padding: 12px 16px;
            border-radius: 12px;
            font-size: 0.84rem;
            margin-bottom: 1.5rem;
            display: flex;
            align-items: center;
            gap: 10px;
            animation: shakeError 0.5s ease-in-out;
        }

        @keyframes shakeError {
            0%, 100% { transform: translateX(0); }
            20%, 60% { transform: translateX(-4px); }
            40%, 80% { transform: translateX(4px); }
        }

        /* ===== FOOTER OSCURO COMPATIBLE ===== */
        .footer-modern {
            background: rgba(255, 255, 255, 0.86);
            backdrop-filter: blur(10px);
            color: var(--text-secondary);
            text-align: center;
            padding: 16px 20px;
            font-size: 0.78rem;
            border-top: 1px solid rgba(203, 213, 225, 0.85);
            z-index: 10;
            letter-spacing: 0.02em;
        }

        .footer-modern a {
            color: var(--pit-primary);
            text-decoration: none;
            font-weight: 700;
        }

        .footer-modern a:hover {
            color: var(--dominos-blue);
        }

        /* ===== RESPONSIVE ===== */
        @media (max-width: 480px) {
            main {
                padding: 1.5rem 1rem;
            }

            .login-card {
                padding: 2.2rem 1.5rem;
                border-radius: 20px;
            }

            .portal-title {
                font-size: 1.4rem;
            }
        }
