﻿/***
Login page
***/
/* bg color */
.login {
    background-color: #364150 !important;
}



    .login .logo {
        margin: 0 auto;
        margin-top: 60px;
        padding: 15px;
        text-align: center;
    }

    .login .content {
        background-color: #eceef1;
        -webkit-border-radius: 7px;
        -moz-border-radius: 7px;
        -ms-border-radius: 7px;
        -o-border-radius: 7px;
        border-radius: 7px;
        width: 400px;
        margin: 40px auto 10px auto;
        padding: 30px;
        padding-top: 10px;
        overflow: hidden;
        position: relative;
    }

        .login .content h3 {
            color: #4db3a5;
            text-align: center;
            font-size: 28px;
            font-weight: 400 !important;
        }

        .login .content h4 {
            color: #555;
        }

        .login .content .hint {
            color: #999;
            padding: 0;
            margin: 15px 0 7px 0;
        }

        .login .content .login-form,
        .login .content .forget-form {
            padding: 0px;
            margin: 0px;
        }

        .login .content .form-control {
            border: none;
            background-color: #dde3ec;
            height: 43px;
            color: #8290a3;
            border: 1px solid #dde3ec;
        }

            .login .content .form-control:focus, .login .content .form-control:active {
                border: 1px solid #c3ccda;
            }

            .login .content .form-control::-moz-placeholder {
                color: #8290a3;
                opacity: 1;
            }

            .login .content .form-control:-ms-input-placeholder {
                color: #8290a3;
            }

            .login .content .form-control::-webkit-input-placeholder {
                color: #8290a3;
            }

        .login .content select.form-control {
            padding-left: 9px;
            padding-right: 9px;
        }

        .login .content .form-title {
            font-weight: 300;
            margin-bottom: 25px;
        }

        .login .content .form-actions {
            clear: both;
            border: 0px;
            border-bottom: 1px solid #eee;
            padding: 0px 30px 25px 30px;
            margin-left: -30px;
            margin-right: -30px;
        }

.login-options {
    margin-bottom: 30px;
    overflow: hidden;
}

    .login-options h4 {
        float: left;
        font-weight: 600;
        font-size: 15px;
        color: #7d91aa !important;
    }

    .login-options .social-icons {
        float: right;
        padding-top: 3px;
    }

.social-icons {
    padding: 0;
    margin: 0;
}

    .social-icons li {
        float: left;
        display: inline;
        list-style: none;
        margin-right: 5px;
        margin-bottom: 5px;
        text-indent: -9999px;
    }

        .social-icons li > a {
            -webkit-border-radius: 2px;
            -moz-border-radius: 2px;
            -ms-border-radius: 2px;
            -o-border-radius: 2px;
            border-radius: 2px;
            width: 28px;
            height: 28px;
            display: block;
            background-position: 0 0;
            background-repeat: no-repeat;
            transition: all 0.3s ease-in-out;
            -o-transition: all 0.3s ease-in-out;
            -ms-transition: all 0.3s ease-in-out;
            -moz-transition: all 0.3s ease-in-out;
            -webkit-transition: all 0.3s ease-in-out;
        }

        .social-icons li:hover > a {
            background-position: 0 -38px;
        }

        .social-icons li .twitter {
            background: url(/Common/Images/social/twitter.png) no-repeat;
        }

        .social-icons li .facebook {
            background: url(/Common/Images/social/facebook.png) no-repeat;
        }

        .social-icons li .google {
            background: url(/Common/Images/social/google.png) no-repeat;
        }

        .social-icons li .microsoft {
            background: url(/Common/Images/social/microsoft.png) no-repeat;
        }

        .social-icons li .openidconnect {
            background: url(/Common/Images/social/open-id-connect.png) no-repeat;
        }

        .social-icons li .wsfederation {
            background: url(/Common/Images/social/ws-federation.png) no-repeat;
        }

.login-options .social-icons li a {
    border-radius: 15px 15px 15px 15px !important;
    -moz-border-radius: 15px 15px 15px 15px !important;
    -webkit-border-radius: 15px 15px 15px 15px !important;
}

.login .content .form-actions .checkbox {
    margin-left: 0;
    padding-left: 0;
}

.login .content .forget-form .form-actions {
    border: 0;
    margin-bottom: 0;
    padding-bottom: 20px;
}

.login .content .register-form .form-actions {
    border: 0;
    margin-bottom: 0;
    padding-bottom: 0px;
}

.login .content .form-actions .btn {
    margin-top: 1px;
}

.login .content .form-actions .btn-success {
    font-weight: 600;
    padding: 10px 20px !important;
}

.login .content .form-actions .btn-default {
    font-weight: 600;
    padding: 10px 25px !important;
    color: #6c7a8d;
    background-color: #ffffff;
    border: none;
}

    .login .content .form-actions .btn-default:hover {
        background-color: #fafaff;
        color: #45b6af;
    }

.login .content .forget-password {
    font-size: 14px;
    float: right;
    display: inline-block;
    margin-top: 10px;
}

.login .content .check {
    color: #8290a3;
}

.login .content .rememberme {
    margin-left: 8px;
    margin-top: 10px;
}

.login .content .create-account {
    margin: 0 -40px -40px -40px;
    padding: 15px 0 17px 0;
    text-align: center;
    background-color: #6c7a8d;
    -webkit-border-radius: 0 0 7px 7px;
    -moz-border-radius: 0 0 7px 7px;
    -ms-border-radius: 0 0 7px 7px;
    -o-border-radius: 0 0 7px 7px;
    border-radius: 0 0 7px 7px;
}

    .login .content .create-account p a {
        font-weight: 600;
        font-size: 14px;
        color: #c3cedd;
    }

    .login .content .create-account .pipe-divider {
        color: #c3cedd;
    }

    .login .content .create-account a {
        display: inline-block;
        margin-top: 5px;
    }

.login .content .alert {
    margin-bottom: 10px;
}

    .login .content .alert:last-child {
        margin-bottom: 0;
    }



/* footer copyright */
.login .copyright {
    text-align: center;
    margin: 0 auto 30px 0;
    padding: 10px;
    color: #7a8ca5;
    font-size: 13px;
}

.language-switch-area {
    text-align: center;
    padding: 10px;
}

    .language-switch-area .language-icon {
        -ms-opacity: 0.5;
        opacity: 0.5;
    }

    .language-switch-area .language-icon-current {
        -ms-opacity: 1;
        opacity: 1;
    }

@media (max-width: 440px) {
    /***
  Login page
  ***/
    .login .logo {
        margin-top: 10px;
    }

    .login .content {
        width: 280px;
        margin-top: 10px;
    }

        .login .content h3 {
            font-size: 22px;
        }

    .forget-password {
        display: inline-block;
        margin-top: 20px;
    }

    .login-options .social-icons {
        float: left;
        padding-top: 3px;
    }

    .login .checkbox {
        font-size: 13px;
    }
}

.content.account-forms {
    margin-top: 10px;
}

.content.tenant-change-box {
    padding: 16px;
    text-align: center;
}

/* Estilos Login */

* {
    font-family: 'Poppins', sans-serif !important;
}

body {
    overflow: auto;
    background: #0B071B;
}

.gradient-background {
    background: radial-gradient( closest-side, rgba(30, 42, 141, 1) 19.23%, rgba(11, 7, 27, 1) 100% );
    width: 100vw;
    height: 100vw;
    position: fixed;
    right: -50vw;
    bottom: -50vw;
    border-radius: 50%;
    pointer-events: none;
    z-index: 0;
}

.logo_legax img {
    max-width: min(427px, 90%);
    width: 100%;
    position: fixed;
    top: 0;
    left: 40%;
    right: 0;
    bottom: 0;
    margin: auto;
}

.login-contenedor-custom {
    max-width: 56rem !important;
    width: 100% !important;
    text-align: -webkit-center;
    padding: min(0rem, 5vh) 0 min(0rem, 15vh) 0 !important;
}

@media (min-width: 1025px){
    .login-contenedor {
        min-height: 100vh;
    }
}

.login-contenedor {
    display: flex !important;
    flex-direction: column;
    /*height: 100vh !important;*/  
    height: auto !important;
    justify-content: center;
    max-width: 47.8rem;
    width: 100% !important;
    padding: 0 1rem;
    box-sizing: border-box;
}

.login-wrapper {
    background-color: #F9F9F9;
    max-width: 47.8rem;
    width: 100%;
    min-height: min(90vh, 51.2rem);
    height: auto;
    border-radius: min(1.8rem, 5vw);
    justify-items: center;
    padding: min(6vh, 6rem) min(18%, 18%) !important;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    box-sizing: border-box;
}

.login-title {
    color: #001F40;
    place-self: center;
    font-weight: 600;
    font-size: min(1.6rem, 6vw);
    line-height: 100%;
    margin-bottom: 0;
}

.tenant-change-box {
    font-weight: 500;
    font-size: min(1rem, 4vw);
    line-height: 150%;
    color: #6B6E75;
}

    .tenant-change-box a {
        color: #007AFF;
    }

.etiqueta-text {
    color: #6B6E75;
    font-weight: 400;
    line-height: 150%;
    font-size: min(0.8rem, 3.5vw);
    margin: 1rem 0px !important;
    display: inline-block;
}

.m-login__form .form-group:first-of-type .etiqueta-text {
    margin: 0 0 1rem 0 !important;
}

.login-input {
    width: 100%;
    height: min(3.5rem, 12vw);
    border-radius: 1rem !important;
    border: 1px solid #D9D9D9 !important;
    font-weight: 400;
    font-size: min(1rem, 4vw);
    line-height: 230%;
    padding: min(1rem, 3vw) !important;
}

    .login-input::placeholder {
        color: #BDBDBD !important;
    }

    .login-input:focus {
        border: 1px solid #007AFF !important;
    }

/* Nuevos estilos para el wrapper y el botón */
.password-wrapper {
    position: relative;
    width: 100%;
}

.password-toggle {
    position: absolute;
    right: min(1rem, 3vw);
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    cursor: pointer;
    padding: 5px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
}

    .password-toggle:focus {
        outline: none;
    }

/* Cuando el input tiene focus, también cambia el color del ícono */
.login-input:focus ~ .password-toggle svg path {
    stroke: #007AFF;
}

/* Ajustar padding del input para el ícono */
.password-wrapper .login-input {
    padding-right: min(3rem, 10vw) !important;
}

/* Cuando el input tiene focus, también cambia el color del ícono */
.login-input:focus ~ .password-toggle svg {
    stroke: #007AFF;
}

.password-wrapper:has(#passwordInput-error) .password-toggle {
    top: 35%;
}

.password-wrapper:has(#PasswordRepeat-error) .password-toggle {
    top: 35%;
}

.password-wrapper:has(#Password-error) .password-toggle {
    top: 35%;
}

.password-wrapper:has(#AdminPassword-error) .password-toggle {
    top: 35%;
}

.password-wrapper:has(#AdminPasswordRepeat-error) .password-toggle {
    top: 35%;
}

.password-wrapper:has(#ClavePrivada-error) .password-toggle {
    top: 35%;
}

.password-wrapper:has(#RegisterPassword-error) .password-toggle {
    top: 35%;
}

.checkBoxRememberMe {
    color: #264BFF;
    font-size: min(0.8rem, 3.5vw);
    font-weight: 400;
}

#forget-password {
    color: #6B6E75;
    font-size: min(0.8rem, 3.5vw);
    font-weight: 400;
    line-height: 100%;
}

.login-btn-container {
    margin: min(2rem, 6vw) 0 min(2rem, 6vw) 0 !important;
}

.login-btn {
    background-color: #007AFF;
    color: #F9F9F9 !important;
    font-weight: 500 !important;
    font-size: min(1rem, 4vw) !important;
    line-height: 150%;
    border-radius: 1.8rem;
    padding: min(1.1rem, 3vw) min(2.2rem, 6vw) !important;
    max-width: 30.8rem;
    height: min(3.5rem, 12vw);
    width: 100%;
}

.login-newAcc {
    color: #6B6E75;
    font-weight: 400;
    font-size: min(0.8rem, 3.5vw);
    line-height: 100%;
    padding-right: 1rem;
}

.m-login__account a {
    color: #007AFF !important;
    font-weight: 400;
    font-size: min(0.8rem, 3.5vw) !important;
    line-height: 100%;
}

.login-datos {
    margin-top: min(1rem, 4vw) !important;
}

.content.tenant-change-box {
    padding: min(1rem, 4vw) !important;
}

.m-login__head {
    margin-top: 0 !important;
}

.login-singin-custom {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: min(1rem, 3vw);
    margin-bottom: min(5rem, 10vw);
}

.login-form-custom {
    margin: 0 !important;
    display: flex;
    flex-direction: column;
    gap: min(1rem, 3vw);
    justify-content: space-between
}

.login-forgot-btns {
    gap: min(1rem, 3vw);
}

/* Wizard básico */
.kt-wizard-v1__form .wizard-step { display: none; }
.kt-wizard-v1__form .wizard-step.active { display: block; }

.login-cancel-btn {
    color: #007AFF !important;
    background-color: transparent !important;
    border: 1px solid #007AFF !important;
}

.m-login.m-login--1 .m-login__wrapper .m-login__form .m-login__form-action .btn{
    align-self: center;
}

.login-reset-pass-btn {
    margin: min(1rem, 3vw) 0 min(1rem, 3vw) 0 !important;
}

.btn.btn-outline-primary.login-cancel-btn:hover:not(:disabled) {
    color: #007AFF !important;
}

@media (max-width: 1080px) {
    body {
        overflow: visible;
    }
}

/* Tablets (429px - 768px) */
@media (min-width: 429px) and (max-width: 768px) {
    .login-wrapper {
        padding: 3rem 2rem !important;
        min-height: min(85vh, 45rem);
    }

    .login-contenedor-custom {
        padding: 1.5rem 0 5rem 0 !important;
    }

    .logo_legax img {
        max-width: 300px;
    }
}

/* Laptops/Desktops pequeños (769px - 1024px) */
@media (min-width: 769px) and (max-width: 1024px) {
    .login-wrapper {
        padding: min(6vh, 4rem) min(12%, 7rem) !important;
    }

    .login-contenedor {
        padding: 0 2rem;
    }
}

/* Desktops estándar (1025px - 1440px) */
@media (min-width: 1025px) and (max-width: 1440px) {
    /* Contenedor principal */
    .login-contenedor-custom {
        max-width: 50rem !important;
        padding: 1.5rem 0 8rem 0 !important;
    }

    /* Wrapper del formulario */
    .login-wrapper {
        max-width: 42rem;
        min-height: 40rem;
        padding: 5% 8% !important;
        border-radius: 1.5rem;
    }

    /* Logo */
    .logo_legax img {
        max-width: 320px;
    }

    /* Título */
    .login-title {
        font-size: 1.4rem;
    }

    /* Campos de entrada */
    .login-input {
        height: 3.2rem;
        padding: 0.8rem !important;
        font-size: 0.95rem;
    }

    /* Botón de login */
    .login-btn {
        height: 3.2rem;
        padding: 0.9rem 2rem !important;
        font-size: 0.95rem !important;
    }

    /* Textos secundarios */
    .etiqueta-text,
    .checkBoxRememberMe,
    #forget-password,
    .login-newAcc,
    .m-login__account a {
        font-size: 0.75rem;
    }

    /* Espaciado */
    .login-btn-container {
        margin: 1.5rem 0 !important;
    }

    .login-singin-custom {
        margin-bottom: 3rem;
        gap: 0.8rem;
    }
}

/* Pantallas grandes (1441px+) */
@media (min-width: 1441px) {
    .login-wrapper {
        padding: min(8vh, 6.1rem) min(18%, 8.4rem) !important;
    }

    .login-title {
        font-size: 1.8rem;
    }

    .login-input, .login-btn {
        font-size: 1.1rem !important;
    }
}

/* Modal */

.swal-icon--warning {
    background-image: url("data:image/svg+xml,%3Csvg width='64' height='64' viewBox='0 0 64 64' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect y='64' width='64' height='64' rx='32' transform='rotate(-90 0 64)' fill='%23FFCC00' fill-opacity='0.55'/%3E%3Cpath d='M32 17L32 39' stroke='%23F9F9F9' stroke-width='2.99' stroke-linecap='round'/%3E%3Crect x='30' y='45' width='4' height='4' rx='2' fill='%23F9F9F9'/%3E%3C/svg%3E");
    background-repeat: no-repeat !important;
    background-size: contain !important;
    width: 80px !important;
    height: 80px !important;
    display: inline-block;
    border: none !important;
}

.swal-icon--warning__body, .swal-icon--warning__dot {
    background-color: transparent !important;
}

.swal-modal {
    background-color: #F9F9F9 !important;
    border-radius: 30px !important;
    color: #001F40 !important;
    font-family: 'Poppins', sans-serif !important;
}

.swal-title {
    color: #001F40 !important;
    font-weight: 600;
}

.swal-text {
    color: #001F40 !important;
}

.swal-button {
    border-radius: 30px !important;
    font-weight: 500 !important;
    line-height: 150% !important;
    font-family: 'Poppins', sans-serif !important;
    padding: 10px 60px !important;
}

.swal-button--cancel {
    color: #001F40 !important;
}

.swal-button--confirm {
    background-color: #007AFF !important;
    color: #FFFFFF !important;
}

.swal-icon--error {
    background-color: #FF3B308C !important;
    border-color: transparent !important;
}

.swal-icon--error__line {
    background-color: #F9F9F9 !important;
}

.cc-btn {
    border-radius: 30px;
    font-family: 'Poppins', sans-serif !important;
    font-weight: 500 !important;
    color: #F9F9F9 !important;
    padding: 10px 37px 10px 29px !important;
}

.modal-dialog {
    display: flex;
    align-items: center;
    min-height: calc(100% - 1rem);
    margin: 1.75rem auto;
}

.modal-content {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    pointer-events: auto;
    background-color: #fff;
    background-clip: padding-box;
    border: 1px solid rgba(0, 0, 0, 0.2);
    border-radius: 30px !important;
    outline: 0;
}

.modal {
    transition-delay: 0.3s;
}

.modal-backdrop {
    background-color: rgba(0, 122, 255, 0.05) !important;
    backdrop-filter: blur(25px);
    -webkit-backdrop-filter: blur(25px);
    position: fixed;
    right: 0;
    bottom: 0;
    transition-delay: 0.3s;
}

    .modal-backdrop.show {
        opacity: 1 !important;
    }

.modal-header {
    border: none !important;
}

.modal .modal-content .modal-header {
    padding: 25px 25px 10px 25px !important;
}

.modal-title span {
    color: #001F40 !important;
    font-size: 26px !important;
    font-weight: 600 !important;
}

.modal-body {
    padding: 25px 25px 10px 25px !important;
}

.modal-footer {
    border: none !important;
    padding: 10px 25px 25px 25px !important;
    gap: 20px;
}

    .modal-footer > :not(:last-child) {
        position: relative;
        background-color: transparent !important;
        border: 1px solid #007AFF !important;
        color: #007AFF !important;
        border-radius: 30px !important;
        transition: background-color ease 0.3s !important;
        z-index: 2;
        gap: 12px;
        padding: 10px 37px 10px 29px !important;
        align-items: self-end;
        font-weight: 600 !important;
    }

    .modal-footer > :last-child {
        position: relative;
        background-color: #007AFF !important;
        color: #FFFFFF !important;
        border-radius: 30px !important;
        transition: background-color ease 0.3s !important;
        padding: 10px 37px 10px 29px !important;
        align-items: self-end;
    }


/* Modal */

/* ========================================
   LOADER PERSONALIZADO PARA ABP
   ======================================== */

/* Variables para el loader personalizado */
:root {
    --loader-size: 90px;
    --loader-stroke-width: 6px;
    --loader-radius: 40px;
    --loader-cx: 45px;
    --loader-cy: 45px;
    --loader-dasharray: 250 400;
    --loader-linecap: round;
    --loader-d: 3.5s;
    --loader-angle: 0deg;
    --loader-color1: #00FFD0;
    --loader-color2: #264BFF;
    --loader-color3: #210F40;
}

@property --loader-angle {
    syntax: '<angle>';
    initial-value: 0deg;
    inherits: true;
}

/* Ocultar el spinner original de ABP y spin.js */
.spinner-border,
.spin-js,
body > .spinner-border,
div[data-spinner="true"],
.spinner,
body > .spinner,
div.spinner,
.abp-busy-indicator-small,
.abp-busy-indicator-small.abp-dock-left,
.abp-busy-indicator-small.abp-dock-right,
svg.spinner,
svg[data-spinner],
div[style*="position: absolute"][style*="z-index"] > svg,
body > div[style*="position: absolute"] > svg {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
}

/* Cuando el body tiene el busy state aplicado */
body.m-page--loading::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(11, 7, 27, 0.8);
    z-index: 9998;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Loader personalizado que aparece cuando el body está busy */
body.m-page--loading::after {
    content: '';
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: var(--loader-size);
    height: var(--loader-size);
    border-radius: 50%;
    background: conic-gradient( from var(--loader-angle), var(--loader-color1), var(--loader-color2) 0.3turn, var(--loader-color3) 0.6turn, var(--loader-color1) 1turn );
    mask-image: url('data:image/svg+xml;utf8,<svg%20xmlns="http://www.w3.org/2000/svg"%20width="90"%20height="90"%20viewBox="0%200%2090%2090"><circle%20cx="45"%20cy="45"%20r="40"%20fill="none"%20stroke="white"%20stroke-width="6"%20stroke-dasharray="250%20400"%20stroke-linecap="round"/></svg>');
    mask-mode: alpha;
    mask-repeat: no-repeat;
    mask-size: 100% 100%;
    mask-position: center;
    z-index: 9999;
    animation: loaderBorderRotate var(--loader-d) linear infinite, loaderShapeRotate 1s linear infinite;
}

/* Para contenedores específicos con busy indicator */
.abp-busy-indicator {
    position: relative !important;
}

    .abp-busy-indicator::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: rgba(11, 7, 27, 0.6);
        z-index: 998;
        border-radius: inherit;
    }

    .abp-busy-indicator::after {
        content: '';
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 60px;
        height: 60px;
        border-radius: 50%;
        background: conic-gradient( from var(--loader-angle), var(--loader-color1), var(--loader-color2) 0.3turn, var(--loader-color3) 0.6turn, var(--loader-color1) 1turn );
        mask-image: url('data:image/svg+xml;utf8,<svg%20xmlns="http://www.w3.org/2000/svg"%20width="60"%20height="60"%20viewBox="0%200%2060%2060"><circle%20cx="30"%20cy="30"%20r="25"%20fill="none"%20stroke="white"%20stroke-width="4"%20stroke-dasharray="150%20250"%20stroke-linecap="round"/></svg>');
        mask-mode: alpha;
        mask-repeat: no-repeat;
        mask-size: 100% 100%;
        mask-position: center;
        z-index: 999;
        animation: loaderBorderRotate var(--loader-d) linear infinite, loaderShapeRotateSmall 1s linear infinite;
    }

/* Animaciones del loader personalizado */
@keyframes loaderBorderRotate {
    100% {
        --loader-angle: 360deg;
    }
}

@keyframes loaderShapeRotate {
    100% {
        transform: translate(-50%, -50%) rotate(360deg);
    }
}

@keyframes loaderShapeRotateSmall {
    100% {
        transform: translate(-50%, -50%) rotate(360deg);
    }
}

/* Ocultar cualquier elemento SVG generado por spin.js */
body svg,
div svg,
.spinner svg,
svg[viewBox*="0 0"],
svg[style*="animation"],
svg circle[stroke-dasharray],
svg line[stroke-dasharray] {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
}

body #lottie-animation svg,
div #lottie-animation svg,
#lottie-animation svg[viewBox*="0 0"] {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* Excepción: permitir SVGs dentro de iconos personalizados */
[class*="icon-custom"] svg,
.icon-custom svg,
.btn svg,
.dropdown svg,
.password-toggle svg {
    display: inline-block !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* Sobreescribir los estilos de blockUI si se usa */
.blockUI {
    background-color: rgba(11, 7, 27, 0.8) !important;
}

    .blockUI h1 {
        display: none !important;
    }

    /* Ocultar el blockMsg para que no aparezca el loader duplicado */
    .blockUI.blockMsg {
        display: none !important;
    }

    /* Solo aplicar el loader al overlay principal, no al blockMsg */
    .blockUI.blockOverlay::after {
        content: '';
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: var(--loader-size);
        height: var(--loader-size);
        border-radius: 50%;
        background: conic-gradient( from var(--loader-angle), var(--loader-color1), var(--loader-color2) 0.3turn, var(--loader-color3) 0.6turn, var(--loader-color1) 1turn );
        mask-image: url('data:image/svg+xml;utf8,<svg%20xmlns="http://www.w3.org/2000/svg"%20width="90"%20height="90"%20viewBox="0%200%2090%2090"><circle%20cx="45"%20cy="45"%20r="40"%20fill="none"%20stroke="white"%20stroke-width="6"%20stroke-dasharray="250%20400"%20stroke-linecap="round"/></svg>');
        mask-mode: alpha;
        mask-repeat: no-repeat;
        mask-size: 100% 100%;
        mask-position: center;
        z-index: 99999;
        animation: loaderBorderRotate var(--loader-d) linear infinite, loaderShapeRotate 1s linear infinite;
    }

.logo_legax_mobile {
    display: none;
}

    @media (max-width: 1024px) {
        .m-login__content {
            height: 10vh !important;
        }
        .logo_legax {
            display: none;
        }

        .logo_legax_mobile {
            display: block;
            margin-bottom: 0 !important;
        }

        .logo_legax_mobile img {
            width: 50vw;
        }

        .login-contenedor{
        min-height: 80vh !important;
        }

        .login-contenedor-custom{
            padding-top: 0 !important;
            padding-bottom: 0 !important;
        }


    }

.login-btn-1 {
    border: 1px solid #007AFF !important;
    color: #007AFF !important;
    font-weight: 500 !important;
    font-size: min(1rem, 4vw) !important;
    line-height: 150%;
    border-radius: 1.8rem;
    padding: min(1.1rem, 3vw) min(2.2rem, 6vw) !important;
    max-width: 30.8rem;
    height: min(3.5rem, 12vw);
}

.login-btn-2 {
    background-color: #007AFF;
    color: #F9F9F9 !important;
    font-weight: 500 !important;
    font-size: min(1rem, 4vw) !important;
    line-height: 150%;
    border-radius: 1.8rem;
    padding: min(1.1rem, 3vw) min(2.2rem, 6vw) !important;
    max-width: 30.8rem;
    height: min(3.5rem, 12vw);
}

.animated-dots::after {
    content: '';
    animation: dotsAnimation 1.5s infinite;
}

@keyframes dotsAnimation {
    0% {
        content: '';
    }

    25% {
        content: '.';
    }

    50% {
        content: '..';
    }

    75% {
        content: '...';
    }

    100% {
        content: '';
    }
}

.icon-custom-completado {
    background-image: url('data:image/svg+xml,<svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg"><rect y="64" width="64" height="64" rx="32" transform="rotate(-90 0 64)" fill="%2300C48C" fill-opacity="0.55"/><path d="M42.3877 25.0771L28.5433 38.9216L21.6211 31.9994" stroke="%23F9F9F9" stroke-width="3.29497" stroke-linecap="round" stroke-linejoin="round"/></svg>');
    background-repeat: no-repeat;
    background-size: contain;
    width: 64px;
    height: 64px;
    display: inline-block;
    vertical-align: middle;
    align-self: center;
}

.datosRegisterResult {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 15px;
    padding: 20px 30px 0;
}

.datosRegisterResult li{
    border: 1px solid #001F40;
    border-radius: 12px;
    line-height: 230%;
    padding: 4px 21px;
}

.registerResultHead{
    display: flex;
    flex-direction: column;
    gap: 10px;
}

@media(max-width: 428px){
    .datosRegisterResult {
        padding: 20px 0 0 !important;
    }

        .datosRegisterResult li {
            font-size: 11px !important;
        }
}

/* Splash Screen */
@keyframes moveGradient {
    0% {
        right: 50vw;
        bottom: -50vw;
    }

    25% {
        right: -50vw;
        bottom: -50vw;
    }

    50% {
        right: -50vw;
        bottom: 0vw;
    }

    75% {
        right: 50vw;
        bottom: 0vw;
    }

    100% {
        right: 50vw;
        bottom: -50vw;
    }
}

/* Animación específica para mobile */
@media (max-width: 768px) {
    .gradient-backgroundSplash {
        animation: moveGradientMobile 8s linear infinite !important;
    }

    @keyframes moveGradientMobile {
        0% {
            right: 100vw;
            bottom: -100vw;
            transform: scale(1.5);
        }

        25% {
            right: -100vw;
            bottom: -100vw;
            transform: scale(1.5);
        }

        50% {
            right: -100vw;
            bottom: 100vw;
            transform: scale(1.5);
        }

        75% {
            right: 100vw;
            bottom: 100vw;
            transform: scale(1.5);
        }

        100% {
            right: 100vw;
            bottom: -100vw;
            transform: scale(1.5);
        }
    }
}

/* Para móviles muy pequeños */
@media (max-width: 480px) {
    .gradient-backgroundSplash {
        animation: moveGradientSmallMobile 6s linear infinite !important;
    }

    @keyframes moveGradientSmallMobile {
        0% {
            right: 120vw;
            bottom: -120vw;
            transform: scale(2);
        }

        33% {
            right: -120vw;
            bottom: 120vw;
            transform: scale(2);
        }

        66% {
            right: 120vw;
            bottom: 120vw;
            transform: scale(2);
        }

        100% {
            right: 120vw;
            bottom: -120vw;
            transform: scale(2);
        }
    }
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

.loading-message {
    font-size: 1.5rem;
    opacity: 0.7;
    animation: pulse 2s ease-in-out infinite;
}

.disclaimer-message {
    font-size: 1rem;
    color: #FFFFFF;
}

@keyframes pulse {
    0%, 100% {
        opacity: 0.7;
    }

    50% {
        opacity: 1;
    }
}

/* Responsive styles */
@media (max-width: 768px) {
    #lottie-animation {
        width: 150px !important;
        max-width: 60vw !important;
    }

    .splash-logo {
        width: 300px !important;
        max-width: 80vw !important;
    }

    .loading-message {
        font-size: 0.9rem !important;
    }

    .disclaimer-message {
        font-size: 0.7rem;
    }
}

@media (max-width: 480px) {
    #lottie-animation {
        width: 120px !important;
        max-width: 50vw !important;
    }

    .splash-logo {
        width: 250px !important;
        max-width: 85vw !important;
    }

    .loading-message {
        font-size: 0.8rem !important;
    }

    .disclaimer-message {
        font-size: 0.6rem;
    }
}

@media (max-width: 320px) {
    #lottie-animation {
        width: 100px !important;
        max-width: 40vw !important;
    }

    .splash-logo {
        width: 200px !important;
        max-width: 90vw !important;
    }

    .loading-message {
        font-size: 0.7rem !important;
    }
}

/* Para pantallas muy grandes */
@media (min-width: 1200px) {
    #lottie-animation {
        width: 250px !important;
    }

    .splash-logo {
        width: 852px !important;
    }
}