/* ==========================================================================
   DISEÑO EN DOS COLUMNAS CON INTEGRACIÓN DE IMAGEN CORPORATIVA
   ========================================================================== */

.login-layout-body {
    margin: 0;
    padding: 0;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    background-color: #f8fafc;
}

.login-split-container {
    display: flex;
    width: 100vw;
    min-height: 100vh;
    overflow: hidden;
    background-color: #ffffff;
}

/* --------------------------------------------------------------------------
   COLUMNA IZQUIERDA: Color azul original plano + Foto integrada
   -------------------------------------------------------------------------- */
.login-visual-column-flat {
    flex: 1 !important;
    background-color: #0288d1 !important;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 80px;
    color: #ffffff;
    
    position: relative !important; 
    box-sizing: border-box !important;
    overflow: hidden !important;
    z-index: 1 !important;
}

.visual-content {
    position: relative;
    z-index: 2;
    max-width: 500px;
    margin: 0 auto;
}

.visual-slogan {
    font-size: 2.25rem;
    font-weight: 800;
    line-height: 1.2;
    margin-bottom: 16px;
    letter-spacing: -0.5px;
}

.visual-description {
    font-size: 1.1rem;
    color: rgba(255, 255, 255, 0.9);
    line-height: 1.6;
}

/* Contenedor de la foto original */
.login-girl-image {
    width: 100%;
    max-width: 480px;
    height: 50vh; /* Ocupa la mitad inferior en pantallas medianas/grandes */
    margin: 20px auto 0 auto;
    background: url("") no-repeat center bottom / contain; /* Enlaza la foto original aquí */
    z-index: 2;
    position: relative;
}

/* --------------------------------------------------------------------------
   COLUMNA DERECHA: Componentes estilizados con #03A9F4
   -------------------------------------------------------------------------- */
.login-form-column {
    width: 540px; /* Incrementado para dar más aire al formulario */
    min-width: 480px;
    background-color: #f8fafc; /* Fondo ligeramente gris para contrastar la tarjeta */
    display: flex;
    flex-direction: column;
    box-shadow: -10px 0 30px rgba(0, 0, 0, 0.05);
}

.form-scroll-wrapper {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 60px 50px;
}

.login-box {
    width: 100%;
    max-width: 400px;
    margin: 0 auto;
    background: #ffffff !important; /* Tarjeta blanca explícita */
    padding: 40px 35px !important;
    border-radius: 16px !important;
    box-shadow: 0 10px 25px rgba(15, 23, 42, 0.08) !important; /* Sombra de elevación */
}

.form-header {
    margin-bottom: 28px;
    text-align: left;
}

.form-main-title {
    font-size: 1.8rem !important;
    font-weight: 700 !important;
    color: #0f172a !important;
    margin: 0 0 8px 0 !important;
}

.form-subtitle {
    font-size: 0.95rem !important;
    color: #64748b !important;
    margin: 0 !important;
}

.field-label {
    display: block;
    font-size: 0.88rem;
    font-weight: 600;
    color: #475569;
    margin-bottom: 6px;
}

/* Cajas de texto con bordes en #03A9F4 */
.ui-inputgroup.brand-bordered-group {
    border: 1px solid #03A9F4 !important;
    border-radius: 8px !important;
    background-color: #ffffff !important;
    height: 48px !important; /* Altura más cómoda */
    display: flex;
    align-items: center;
    box-sizing: border-box;
}

.ui-inputgroup.brand-bordered-group:focus-within {
    box-shadow: 0 0 0 3px rgba(3, 169, 244, 0.15) !important;
}

.ui-inputgroup.brand-bordered-group .ui-inputgroup-addon {
    background: transparent !important;
    border: none !important;
    padding: 0 4px 0 14px !important;   
}

.ui-inputgroup.brand-bordered-group .ui-inputgroup-addon i {
    font-size: 1.15rem; 
    color: #03A9F4 !important;     
    margin: 20px 0 12px 0 !important;
}

/* Sincronización fija para los inputs en PrimeFaces 10 */
.ui-inputgroup.brand-bordered-group .ui-inputfield,
.ruc-container .ui-inputnumber,
.ruc-container .ui-inputnumber input {
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 14px 0 10px !important;
    font-size: 0.95rem !important;
    color: #1e293b !important;
    height: 100% !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

/* Checkbox */
.form-actions-row {
    display: flex;
    align-items: center;
    margin: 18px 0 24px 0;
}

.form-actions-row .ui-selectbooleancheckbox {
    margin-right: 8px !important;
}

.custom-brand-checkbox .ui-chkbox-box.ui-state-active {
    background-color: #03A9F4 !important;
    border-color: #03A9F4 !important;
}

.checkbox-label {
    color: #475569;
    font-size: 0.9rem;
    cursor: pointer;
}

/* Botón principal en color #03A9F4 */
#loginButton {
    background: #03A9F4 !important;
    border: none !important;
    border-radius: 8px !important;
    height: 48px !important;
    font-weight: 600 !important;
    font-size: 1rem !important;
    color: #ffffff !important;
    box-shadow: 0 4px 12px rgba(3, 169, 244, 0.25) !important;
    width: 100%;
}

#loginButton:hover {
    background: #039be5 !important;
}

/* Pie de página */
.split-footer {
    margin-top: 35px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-top: 1px solid #f1f5f9;
    padding-top: 15px;
}

.footer-link {
    color: #03A9F4 !important;
    text-decoration: none !important;
    font-weight: 600;
    font-size: 0.88rem;
}

.footer-copy {
    color: #94a3b8;
    font-size: 0.82rem;
}

/* ==========================================================================
   AJUSTE DE ESPACIADOS - FORMULARIO DE INICIO DE SESIÓN
   ========================================================================== */

/* Incrementa la separación vertical entre cada bloque de campo (Input + Label) */
.custom-split-page .form-group {
    margin-bottom: 15px !important; /* Separación entre campos aumentada */
    width: 100% !important;
}

/* Incrementa el espacio específico entre la etiqueta (texto) y su caja de entrada */
.custom-split-page .field-label {
    display: block !important;
    font-size: 0.92rem !important;
    font-weight: 600 !important;
    color: #475569 !important;
    margin-bottom: 12px !important; /* Más separación entre la etiqueta y el inputbox */
}

/* Espaciado del contenedor de alertas por si aparecen mensajes de error */
.custom-split-page .login-notifications {
    margin-top: 25px !important;
}

/* 1. Modificar en la sección general de escritorio (Línea ~124) */
.custom-split-page .form-options-row {
    display: flex !important;
    align-items: center !important;
    margin: 20px 0 32px 0 !important; /* Incrementado a 32px abajo para separar del botón */
}

.custom-split-page .login-cloud-bottom-graphic {
    position: absolute !important;
    bottom: 0 !important; /* Fijado de forma estricta en el fondo inferior */
    top: auto !important;
    left: 0 !important;
    width: 100% !important;
    height: 50vh !important; /* Controla la altura que abarcará la ilustración */
    background: url("/emitecomprobante/javax.faces.resource/images/fondo_2.jpg.xhtml") no-repeat center bottom / cover !important;
    z-index: 2 !important;
    pointer-events: none !important;
    opacity: 0.65 !important; /* Intensidad sutil de la gráfica */
    
    /* MÁSCARA INVERTIDA: Se desvanece de abajo hacia arriba de forma fluida */
    -webkit-mask-image: linear-gradient(to top, rgba(0,0,0,1) 50%, rgba(0,0,0,0) 100%) !important;
    mask-image: linear-gradient(to top, rgba(0,0,0,1) 50%, rgba(0,0,0,0) 100%) !important;
    
 
}



/* ==========================================================================
   COMPORTAMIENTO RESPONSIVO ADAPTATIVO
   ========================================================================== */

/* Ajuste para pantallas tipo Laptop / Escritorios Medianos */
@media (max-height: 750px) {
    .login-girl-image {
        height: 40vh; /* Reduce sutilmente el tamaño de la foto si la pantalla es baja */
    }
    .visual-slogan {
        font-size: 1.85rem;
    }
}

/* Optimización exhaustiva para Tablets y Smartphones */
@media (max-width: 992px) {
    .login-visual-column-flat {
        display: none !important; /* Remueve la columna azul en móviles */
    }

    .login-form-column {
        width: 100% !important;     /* El formulario toma el ancho completo real */
        min-width: 0px !important;    /* ANULA el min-width de 480px que rompía el responsive */
        background-color: #f1f5f9 !important; /* Fondo gris de soporte */
        flex: 1 1 auto !important;
    }

    .form-scroll-wrapper {
        padding: 24px 16px !important; /* Espaciado equilibrado para pantallas delgadas */
        width: 100% !important;
        box-sizing: border-box !important;
    }

    .login-box {
        width: 100% !important;
        max-width: 420px !important;  /* Evita que se estire en exceso en pantallas intermedias */
        padding: 30px 20px !important; /* Más aire interno para los campos */
        border-radius: 12px !important;
        box-sizing: border-box !important;
    }

    .form-header {
        margin-bottom: 24px !important;
        text-align: center !important; /* Centra el título en dispositivos móviles */
    }

    .form-main-title {
        font-size: 1.6rem !important; /* Escala el título de bienvenida */
    }

    /* Corrige los textos inferiores para que no colapsen en pantallas chicas */
    .split-footer {
        flex-direction: column !important;
        gap: 10px !important;
        text-align: center !important;
        margin-top: 25px !important;
    }

    .custom-split-page .form-options-row {
        display: flex !important;
        align-items: center !important;
        margin: 20px 0 32px 2px !important; /* Separación móvil garantizada */
    }
}

 .ui-fluid .ui-password {    
  height: 100% !important;  
}

.ui-inputgroup .ui-inputtext, .ui-inputgroup .ui-inputtextarea, .ui-inputgroup .ui-password, .ui-inputgroup .ui-autocomplete-input, .ui-inputgroup .ui-chips-container, .ui-inputgroup .ui-spinner-input {
  padding-left: 0 !important;
}