html {
    height: 100%;
    overflow-y: visible; 
}
body {
    height: 100%;
    width: 100%;
    background-repeat: no-repeat;
    background-size: cover;
    background-attachment: fixed;
    font-family: 'Lato', 'Helvetica Neue', Helvetica, Arial, sans-serif;
}
body:before, body:after {
    width: 100%;
    position: static;
    content: normal;
}
h3 {
    margin: 0;
}
.page-back {
    padding: 50px 0;
    min-height: 100%;
    overflow: hidden;
    background-size: cover;
    position: relative;
    box-shadow: inset 0 3px 3px -3px rgba(0, 0, 0, 0.3);
}
.login-page .login-form-div {
    width: 100%;
    max-width: 360px;
    margin: 0 auto;
}
.login-page .login-content,
.login-page .reg-content {
    background-color: white;
    padding-bottom: 20px;
}
.login-page .div-title {
    margin: 20px 0;
}

.login-page .input-group .input-group-addon {
    border-radius: 0;
}
.login-page .custom-checkbox {
    float: left;
}
.login-page .checkbox {
    display: inline-block;
    margin-bottom: 0;
    margin-top: 6px;
    padding-left: 1px;
}
.login-page .checkbox-text {
    line-height: 22px;
}
.login-page .checkbox label {
    cursor: pointer;
    font-weight: 400;
    margin-bottom: 0;
    padding-left: 0px;
    margin-top: 0;
}
.login-page .input-group .input-group-addon i, .login-page input[type="checkbox"] {
    width: 30px;
}
.login-page .input-group .input-group-addon i {
    padding-left: 10px;
    padding-right: 10px;
}

.login-page .registration-form-action {
    background-color: white;
    padding: 20px;
}
.login-page .registration-form-div {
    max-width: 620px;
    margin: 0 auto;
    width: 100%;
    background: #FFF;
}

.login-page .registration-left-div {
    padding-left: 0;
    padding-right: 0px;
}
.login-page .registration-right-div {
    padding-left: 0;
    padding-right: 0;
}
.login-page .reg-content {
    padding-bottom: 20px;
}
.login-page .btn, .login-page .form-control {
    border-radius: 0 !important;
}
.login-page .login-form-links {
    padding: 20px;
    margin-top: 5px;
    box-shadow: 0 0 4px rgba(0, 0, 0, 0.4);
    background-color: white;
}
.div-captcha-left {
    padding-right: 0;
}
.div-captcha-right {
    padding-left: 0;
}
@media (max-width: 767px) {
    .login-page .registration-left-div {
        padding-right: 0px;
    }
    .login-page .registration-right-div {
        padding-left: 0px;
    }
    .div-captcha-left {
        width: 50%;
        float: left;
    }
    .div-captcha-left img {
        width: 100%;
        height: 34px;
    }
    .div-captcha-right {
        width: 50%;
        float: left;
    }
}
/* ==========================================================================
   SMI LOGIN v15 - ETAPA 1: FONDO + PARTICULAS REFORZADAS
   - Reduce el brillo solo de la imagen rotativa de fondo.
   - Refuerza exclusivamente las particulas existentes.
   - No aplica filtros, opacidad ni capas al logo, formulario, textos o botones.
   ========================================================================== */

/* Fondo aplicado directamente al body o al contenedor .page-back.
   background-blend-mode afecta solo sus capas de fondo, nunca a los hijos. */
body.login-page,
body.login-page .page-back {
    background-color: #c2c2c2 !important;
    background-blend-mode: multiply !important;
}

/* Variantes donde el rotador crea una imagen o slide independiente. */
body.login-page .backstretch img,
body.login-page .vegas-slide-inner,
body.login-page img.smi-login-background,
body.login-page .smi-login-background img,
body.login-page img[class*="login-bg"],
body.login-page img[id*="login-bg"] {
    -webkit-filter: brightness(.76) saturate(.94) !important;
    filter: brightness(.76) saturate(.94) !important;
}

/* Refuerzo visual del canvas de partículas, sin tocar ningún contenido frontal. */
body.login-page #particles-js > canvas,
body.login-page #particles > canvas,
body.login-page #smi-particles > canvas,
body.login-page #smi-login-particles > canvas,
body.login-page canvas.particles-js-canvas-el,
body.login-page canvas[id*="particle"],
body.login-page canvas[class*="particle"] {
    opacity: 1 !important;
    mix-blend-mode: screen;
    -webkit-filter:
        brightness(1.52)
        contrast(1.16)
        saturate(1.18)
        drop-shadow(0 0 2px rgba(255, 255, 255, .92))
        drop-shadow(0 0 6px rgba(65, 225, 255, .72));
    filter:
        brightness(1.52)
        contrast(1.16)
        saturate(1.18)
        drop-shadow(0 0 2px rgba(255, 255, 255, .92))
        drop-shadow(0 0 6px rgba(65, 225, 255, .72));
}

/* Compatibilidad si las partículas se generan como elementos HTML. */
body.login-page #particles-js .particle,
body.login-page #particles .particle,
body.login-page #smi-particles .particle,
body.login-page #smi-login-particles .particle {
    opacity: 1 !important;
    box-shadow:
        0 0 3px rgba(255, 255, 255, .95),
        0 0 8px rgba(65, 225, 255, .78) !important;
}

@media (max-width: 767px) {
    body.login-page #particles-js > canvas,
    body.login-page #particles > canvas,
    body.login-page #smi-particles > canvas,
    body.login-page #smi-login-particles > canvas,
    body.login-page canvas.particles-js-canvas-el,
    body.login-page canvas[id*="particle"],
    body.login-page canvas[class*="particle"] {
        -webkit-filter:
            brightness(1.42)
            contrast(1.12)
            drop-shadow(0 0 2px rgba(255, 255, 255, .88))
            drop-shadow(0 0 5px rgba(65, 225, 255, .66));
        filter:
            brightness(1.42)
            contrast(1.12)
            drop-shadow(0 0 2px rgba(255, 255, 255, .88))
            drop-shadow(0 0 5px rgba(65, 225, 255, .66));
    }
}

/* ==========================================================================
   SMI LOGIN v15 - ETAPA 2 ACUMULATIVA SIN BORDE EN EL LOGIN
   Mantiene la animación continua del logo, el fondo y las partículas.
   El cuadro de login no recibe línea, contorno, halo ni resplandor adicional.
   ========================================================================== */

.page-back > .text-center {
    position: relative;
    z-index: 3;
    width: min(520px, 92vw);
    margin-left: auto;
    margin-right: auto;
    isolation: isolate;
}

.page-back > .text-center::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: min(380px, 74vw);
    height: 105px;
    z-index: -1;
    pointer-events: none;
    border-radius: 50%;
    background: radial-gradient(ellipse, rgba(47, 232, 255, .30) 0%, rgba(126, 84, 255, .17) 43%, rgba(255, 47, 190, .06) 60%, transparent 75%);
    filter: blur(14px);
    animation: smiLogoHalo 3.8s ease-in-out infinite;
}

.page-back > .text-center img,
.login-page img[src*="/logos/"],
.login-page img[src*="logo"] {
    position: relative;
    z-index: 2;
    transform-origin: 50% 50%;
    will-change: transform, filter;
    animation: smiLogoFloat 4.6s ease-in-out infinite, smiLogoGlow 3.2s ease-in-out infinite;
}

.login-page .login-form-div {
    position: relative;
    z-index: 3;
    isolation: isolate;
}

/* Sin efectos adicionales sobre el cuadro de login. */
.login-page .login-form-div::before,
.login-page .login-form-div::after {
    content: none !important;
    display: none !important;
}

@keyframes smiLogoFloat {
    0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
    50% { transform: translate3d(0, -6px, 0) scale(1.02); }
}

@keyframes smiLogoGlow {
    0%, 100% {
        filter: drop-shadow(0 0 4px rgba(49, 230, 255, .36)) drop-shadow(0 0 10px rgba(116, 88, 255, .20));
    }
    50% {
        filter: drop-shadow(0 0 8px rgba(49, 230, 255, .76)) drop-shadow(0 0 19px rgba(255, 55, 191, .42));
    }
}

@keyframes smiLogoHalo {
    0%, 100% { opacity: .48; transform: translate(-50%, -50%) scale(.93) rotate(0deg); }
    50% { opacity: .92; transform: translate(-50%, -50%) scale(1.07) rotate(7deg); }
}


@media (max-width: 575px) {
    .page-back > .text-center::before {
        height: 88px;
        filter: blur(11px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .page-back > .text-center::before,
    .page-back > .text-center img,
    .login-page img[src*="/logos/"],
    .login-page img[src*="logo"] {
        animation-duration: 10s !important;
    }
}


/* ==========================================================================
   SMI LOGIN v15 - AJUSTE DE TITULO EN AMBOS LOGIN
   Unifica el tamaño del texto "Por favor, ingrese a su cuenta." para
   /admin/login y /login privado, evitando que sobresalga en móviles.
   ========================================================================== */
.login-page .div-title h3,
.login-page .div-title h4 {
    margin: 0;
    line-height: 1.08;
    white-space: normal;
    overflow-wrap: anywhere;
}

@media (max-width: 767px) {
    .login-page .div-title {
        margin: 12px 0 14px !important;
        padding-right: 0 !important;
        padding-left: 0 !important;
    }
    .login-page .div-title h3,
    .login-page .div-title h4 {
        font-size: 18px !important;
        line-height: 1.08 !important;
        letter-spacing: 0 !important;
    }
}
