html, body {
    height: 100%;
}

app {
    display: block;
    height: 100%;
}

/* El logo del header vive en lexta-components.css (cambia con el modo claro/oscuro). */

#blazor-error-ui {
    background: inherit;
    bottom: 0;
    display: none;
    position: fixed;
    width: 100%;
    height: 100%;
    z-index: 100001;
}

/* ==========================================================================
   Login de marca
   --------------------------------------------------------------------------
   Re-estilado del formulario de login ESTÁNDAR de XAF: no se reemplaza la
   página ni el flujo de autenticación, solo su presentación. El markup que se
   engancha acá lo genera XAF (#logon-template-component > .logon-template-header
   + .logon-template-body). Al actualizar DevExpress, verificar que esas clases
   sigan existiendo.

   Layout: panel de marca a la izquierda (gradiente púrpura → cyan con el
   isotipo L-Scan) + formulario a la derecha. Ver LEXTA-BRAND.md §3 y §4.
   ========================================================================== */

#logon-template-component {
    display: flex;
    flex-direction: row;
    height: 100%;
    background: var(--lx-surface);
}

/* El header del template pasa a ser el panel de marca lateral. */
#logon-template-component .logon-template-header {
    flex: 1 1 50%;
    max-width: 50%;
    margin: 0;
    padding: 3rem;
    border: none;
    border-radius: 0;
    background: var(--lx-brand-gradient);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
}

/* Halo suave, sin glow sobre el logo (LEXTA-BRAND.md §8). */
#logon-template-component .logon-template-header::before {
    content: '';
    position: absolute;
    inset: -50%;
    background: radial-gradient(circle, rgba(255,255,255,0.10) 0%, transparent 70%);
    pointer-events: none;
}

/* Dentro del panel el lockup va en blanco y a gran tamaño. */
#logon-template-component .logon-template-header .header-logo {
    position: relative;
    z-index: 1;
    background-image: url('../images/brand/lexta-horizontal-white.svg');
    background-position: center;
    background-size: contain;
    width: min(340px, 70%);
    height: 96px;
}

/* Columna derecha: el formulario, centrado. */
#logon-template-component .logon-template-body {
    flex: 1 1 50%;
    max-width: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
    background: var(--lx-surface);
    overflow-y: auto;
}

/* XAF estira este contenedor a toda la altura; se centra el contenido acá para no
   depender de cómo reparta el alto internamente. */
#logon-template-component .logon-main-container {
    width: 100%;
    max-width: 380px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* La tarjeta pierde el marco: sobre fondo blanco el borde sobra. */
#logon-template-component .logon-main.card {
    border: none;
    box-shadow: none;
    background: transparent;
}

#logon-template-component .logon-main.card > .card-header {
    background: transparent;
    border: none;
    padding: 0 0 1.5rem 0;
    text-align: left !important;
    font-family: var(--lx-font-brand);
    font-size: 1.75rem;
    font-weight: 600; /* DESIGN.md §2: nunca 700+ fuera del wordmark */
    letter-spacing: -0.02em;
    color: var(--lx-text);
}

#logon-template-component .logon-main.card > .card-body {
    padding: 0;
}

/* En pantallas chicas el panel de marca se colapsa a una franja superior. */
@media (max-width: 768px) {
    #logon-template-component {
        flex-direction: column;
    }

    #logon-template-component .logon-template-header,
    #logon-template-component .logon-template-body {
        flex: 0 0 auto;
        max-width: 100%;
        width: 100%;
    }

    #logon-template-component .logon-template-header {
        padding: 2rem 1.5rem;
    }

    #logon-template-component .logon-template-header .header-logo {
        width: min(220px, 70%);
        height: 56px;
    }

    #logon-template-component .logon-template-body {
        flex: 1 1 auto;
        align-items: flex-start;
        padding: 2rem 1.5rem;
    }
}