/* ==================================
   MODAL DE LOGIN - ESTILOS LIMPIOS
   ================================== */

/* Overlay del modal */
#overlay {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100vh !important;
    background: rgba(0, 0, 0, 0.65) !important;
    backdrop-filter: blur(6px) !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transition: opacity 0.3s ease !important;
    z-index: 10005 !important;
}

#overlay.active {
    opacity: 1 !important;
    pointer-events: all !important;
}

/* Wrapper del modal */
.wrapper {
    position: fixed !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) scale(0) !important;
    width: 400px !important;
    height: 550px !important;
    background: rgba(255, 255, 255, 0.98) !important;
    border: 2px solid rgba(26, 35, 126, 0.15) !important;
    border-radius: 20px !important;
    backdrop-filter: blur(20px) !important;
    box-shadow: 0 0 30px rgba(0, 0, 0, 0.5) !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    overflow: hidden !important;
    transition: transform 0.5s ease, height 0.2s ease !important;
    z-index: 10010 !important;
    pointer-events: none !important;
}

.wrapper.active-popup {
    pointer-events: auto !important;
    transform: translate(-50%, -50%) scale(1) !important;
}

/* Form box */
.wrapper .form-box {
    width: 100% !important;
    padding: 40px !important;
}

.wrapper .form-box h2 {
    font-size: 2em !important;
    color: #1a237e !important;
    text-align: center !important;
    margin-bottom: 25px !important;
}

/* Botón de cerrar */
.wrapper .icon-close {
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    width: 45px !important;
    height: 45px !important;
    background: #1a237e !important;
    font-size: 2em !important;
    color: #fff !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    border-bottom-left-radius: 20px !important;
    cursor: pointer !important;
    z-index: 2 !important;
    transition: background 0.3s ease !important;
}

.wrapper .icon-close:hover {
    background: #303f9f !important;
}

/* Input boxes */
.wrapper .input-box {
    position: relative !important;
    width: 100% !important;
    height: 50px !important;
    border-bottom: 2px solid #1a237e !important;
    margin: 30px 0 !important;
}

.wrapper .input-box.error {
    border-bottom-color: #dc3545 !important;
}

.wrapper .input-box label {
    position: absolute !important;
    top: 50% !important;
    left: 0 !important;
    color: #1a237e !important;
    transform: translateY(-50%) !important;
    font-size: 1.2em !important;
    pointer-events: none !important;
    transition: 0.5s !important;
}

.wrapper .input-box input {
    position: absolute !important;
    top: 50% !important;
    left: 0 !important;
    width: 100% !important;
    color: #1a237e !important;
    font-size: 1.1em !important;
    border: none !important;
    outline: none !important;
    background: transparent !important;
    padding: 0 35px 0 5px !important;
    z-index: 1 !important;
    transform: translateY(-50%) !important;
}

.wrapper .input-box input:focus ~ label,
.wrapper .input-box input:valid ~ label {
    top: -10px !important;
    left: 0 !important;
    color: #1a237e !important;
    font-size: 0.8em !important;
}

/* Iconos */
.wrapper .input-box .icon {
    position: absolute !important;
    right: 0 !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    font-size: 1.2em !important;
    color: #1a237e !important;
}

/* Botón */
.wrapper .btn {
    position: relative !important;
    margin-top: 30px !important;
    width: 200px !important;
    height: 50px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    border: none !important;
    outline: none !important;
    background: #1a237e !important;
    color: #fff !important;
    font-size: 1.1em !important;
    font-weight: 500 !important;
    border-radius: 25px !important;
    cursor: pointer !important;
    transition: background-color 0.3s, box-shadow 0.3s !important;
}

.wrapper .btn:hover {
    background-color: #303f9f !important;
    box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.2) !important;
}

/* Mensajes de error */
.wrapper .error-text {
    display: block !important;
    color: #dc3545 !important;
    font-size: 0.8rem !important;
    margin-top: 5px !important;
    margin-bottom: 10px !important;
    padding-left: 5px !important;
}

.wrapper .error-message-box {
    background: #fee !important;
    border-left: 4px solid #dc3545 !important;
    color: #dc3545 !important;
    padding: 12px 14px !important;
    border-radius: 6px !important;
    margin: 15px 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    font-size: 0.88rem !important;
}

.wrapper .success-message-box {
    background: #d4edda !important;
    border-left: 4px solid #28a745 !important;
    color: #155724 !important;
    padding: 12px 14px !important;
    border-radius: 6px !important;
    margin: 15px 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    font-size: 0.88rem !important;
}

/* Links de recuperación */
.wrapper .recuperar-link {
    text-align: center !important;
    margin-top: 15px !important;
}

.wrapper .recuperar-link a {
    color: #1a237e !important;
    text-decoration: none !important;
    font-size: 14px !important;
    transition: color 0.3s !important;
}

.wrapper .recuperar-link a:hover {
    color: #303f9f !important;
    text-decoration: underline !important;
}

/* Pregunta de seguridad */
.wrapper .pregunta-seguridad-box {
    background: #e3f2fd !important;
    border-left: 4px solid #2196f3 !important;
    padding: 15px !important;
    margin: 20px 0 !important;
    border-radius: 5px !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
}

.wrapper .pregunta-seguridad-box i {
    color: #1565c0 !important;
    font-size: 24px !important;
}

.wrapper .pregunta-seguridad-box p {
    margin: 0 !important;
    color: #1565c0 !important;
    font-weight: 600 !important;
}

/* Requisitos de contraseña */
.wrapper .password-requirements {
    background: #fff3e0 !important;
    padding: 10px !important;
    border-radius: 5px !important;
    margin: 10px 0 !important;
    font-size: 13px !important;
}

/* Responsive */
@media (max-width: 480px) {
    .wrapper {
        width: 95% !important;
        max-width: 340px !important;
    }

    .wrapper .form-box {
        padding: 30px 20px !important;
    }

    .wrapper .form-box h2 {
        font-size: 1.5em !important;
    }

    .wrapper .btn {
        width: 160px !important;
        height: 42px !important;
        font-size: 0.95em !important;
    }
}