﻿:root {
    --auth-blur: 10px;
    --auth-glass: rgba(255,255,255,.72);
    --auth-border: rgba(255,255,255,.55);
    --brand: var(--brand-700, #5aa027);
    --brand-ink: #0f1d2d;
}

/* Fondo con brillos verdes */
.auth-page {
    min-height: 100svh; /* mejor en móviles que 100vh */
    display: grid;
    place-items: center;
    position: relative;
    /* FIX: permitir scroll vertical */
    overflow-x: hidden;
    overflow-y: auto;
    padding: 16px;
    background: radial-gradient(1200px 600px at 20% 0%, rgba(90,160,39,.18), transparent 60%), radial-gradient(1000px 500px at 80% 100%, rgba(90,160,39,.15), transparent 60%), #0f1d2d;
}

/* Host de partículas: capa fija detrás del card */
.auth-particles {
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100vh;
    z-index: 1; /* debajo del card, encima del fondo */
    pointer-events: none; /* no bloquea clics */
    display: block;
}

    /* Línea de escaneo: puedes mantener tu efecto tal cual */
    .auth-particles::after {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(to bottom, transparent 0%, rgba(124,255,124,.06) 50%, transparent 100%);
        mix-blend-mode: screen;
        animation: scan 6s linear infinite;
    }

@keyframes scan {
    0% {
        transform: translateY(-100%)
    }

    100% {
        transform: translateY(100%)
    }
}

/* El contenido (card/login) va encima */
.auth-container {
    z-index: 2;
    position: relative;
}

/* Contenido encima del fondo */
.auth-container {
    position: relative;
    z-index: 20;
}
/* (Opcional: solo para depurar, luego borra) */
.tsparticles-canvas-el {
    /* background: rgba(255,255,255,.04) !important; */
}
/* Glass card */
.auth-card {
    backdrop-filter: blur(var(--auth-blur));
    -webkit-backdrop-filter: blur(var(--auth-blur));
    background: var(--auth-glass);
    border: 1px solid var(--auth-border);
    border-radius: 16px;
    overflow: hidden;
    max-width: 980px;
    margin-inline: auto;
}

/* Marca */
.brand-col {
    background: linear-gradient(180deg, rgba(13,34,55,.85), rgba(13,34,55,.65));
    border-right: 1px solid rgba(255,255,255,.22);
    min-height: 460px;
    text-align: center;
}

.brand-mark {
    width: 120px;
    height: auto;
    filter: drop-shadow(0 6px 18px rgba(0,0,0,.25));
}

.brand-name {
    color: #fff;
    letter-spacing: .3px;
}

.brand-sub {
    color: #d7e3ff;
    opacity: .85;
}

.brand-mark-sm {
    width: 72px;
    height: auto;
}

/* Formulario */
.form-col {
    background: linear-gradient(180deg, rgba(255,255,255,.85), rgba(255,255,255,.75));
}

    .form-col .form-control {
        padding-block: .65rem;
        border-radius: .8rem;
    }

    .form-col .input-group-text {
        background: #f3f6fb;
        border-top-left-radius: .8rem;
        border-bottom-left-radius: .8rem;
    }

    .form-col .btn-success {
        background: var(--brand);
        border-color: var(--brand);
        transition: filter .15s ease, transform .05s ease;
    }

        .form-col .btn-success:hover {
            filter: brightness(.95);
        }

        .form-col .btn-success:active {
            transform: translateY(1px);
        }
    /* Focus ring verde */
    .form-col .form-control:focus {
        box-shadow: 0 0 0 3px rgba(90,160,39,.20);
        border-color: rgba(90,160,39,.65);
    }

/* Divider (si lo usas) */
.divider {
    position: relative;
    text-align: center;
}

    .divider::before {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        top: 50%;
        height: 1px;
        background: rgba(0,0,0,.12);
    }

    .divider span {
        position: relative;
        padding: 0 .5rem;
        font-size: .9rem;
        color: #667085;
    }

/* Responsive */
@media (max-width: 991.98px) {
    .auth-card {
        max-width: 560px;
    }

    .form-col {
        padding: 1.25rem !important;
    }
}

@media (max-width: 575.98px) {

    .brand-col {
        display: none !important;
    }
    .auth-card {
        margin: 0 12px;
    }
}

/* Accesibilidad */
@media (prefers-reduced-motion: reduce) {
    .auth-particles {
        display: none;
    }

        .auth-particles::after {
            display: none;
        }
}

@media (max-width: 575.98px) {
    .auth-page {
        place-items: start center; /* para que no quede “encerrado” */
        padding-top: 18px;
        padding-bottom: 18px;
    }
}
