﻿html, body {
    height: 100%;
}

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

.header-logo {
    flex-shrink: 0;
    background-color: currentColor;
    -webkit-mask: url('../images/Logo.svg');
    mask: url('../images/Logo.svg');
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    width: 28px;
    height: 24px;
}

/* Buscador "Ir a…" del header (Components/IrAComponent.razor): su desplegable es
   position:absolute con z-index alto, pero el .header-right-side de XAF lleva
   overflow:hidden y un ancestro con overflow hidden RECORTA al hijo absolute sin importar
   el z-index. La clase isbo-header-right la pone sólo nuestro template
   (Templates/IsboMainWindowTemplateComponent.razor) en ESE contenedor.

   Quitar el overflow ahí es seguro: la elipsis del view caption no depende de él. El propio
   ViewCaptionComponent de XAF ya se recorta solo — su raíz es
   "view-caption-root overflow-hidden" y el texto lleva "xaf-ellipsis"
   (text-overflow:ellipsis + overflow:hidden + white-space:nowrap). El overflow del
   contenedor era una protección redundante.

   No es un override de una clase .dxbl-*: .header-right-side es markup del template de XAF,
   que acá reimplementamos nosotros. Sin !important. */
.isbo-header-right {
    overflow: visible;
}

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

/* Uppercase text input - mimics Windows Forms CharacterCasing.Upper */
.text-uppercase-input {
    text-transform: uppercase !important;
}

/* Cards del Dashboard (plantilla Stretched): evitar el recorte del número grande.
   DevExpress genera una regla inline por elemento con SOLO font-size (11pt para el
   TopValue, 18pt para el MainValue) y nunca el line-height correspondiente, así que
   el elemento sigue heredando el line-height:16px de .dx-flex-card-layout. Con
   font-size:24px el glifo necesita ~22px de caja, pero la fila mide 16px y tiene
   overflow:hidden -> se corta ~6px por abajo.
   No es ajustable desde el XML del dashboard: la plantilla Stretched solo expone
   MinWidth/MaxWidth y la visibilidad de los elementos (FontSize existe únicamente en
   CardCustomLayoutTemplate, que se arma por código). Por eso subir el Weight de las
   filas del LayoutTree nunca lo resolvió: la card crecía, la fila del texto seguía en 16px. */
.dx-flex-card-layout-content [class*="dx-flex-card-layout-row-element-"] {
    line-height: normal;
    overflow: visible;
/* ------------------------------------------------------------------------------------
   Editor custom de parametros de reporte (Components/MultiValueLookupParameterEditor.razor).
   Este host NO carga Bootstrap: solo XAF aporta un par de utilidades (d-flex, w-100), y
   flex-grow-1 / gap-2 / form-control no existen. Por eso el editor define su propio layout:
   una fila flex donde el DxTagBox crece y el enlace "Todos" queda a la derecha sin partirse.
   El viewer ya envuelve el template en .dxbl-fl-ctrl con flex:1 1 auto, asi que el ancho
   exterior no hay que tocarlo.
   ------------------------------------------------------------------------------------ */
.isbo-lookup-editor {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    min-width: 0;
}

.isbo-lookup-editor > .isbo-lookup-editor-grow {
    flex: 1 1 auto;
    min-width: 0;
}

.isbo-lookup-editor .isbo-lookup-editor-tagbox {
    width: 100%;
}

/* Selector de modo "Incluir | Excluir": la opción activa se resalta y no es clicable; la otra es
   un enlace. Botones nativos sin marco para no depender de Bootstrap ni del tema del DxButton. */
.isbo-lookup-editor > .isbo-lookup-editor-mode {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 0.25rem;
    white-space: nowrap;
    font-size: 0.875rem;
}

.isbo-lookup-editor-mode-option {
    background: none;
    border: 0;
    padding: 0;
    font: inherit;
    color: var(--dxbl-link-color, #5F21AD);
    text-decoration: underline;
    cursor: pointer;
}

.isbo-lookup-editor-mode-option.is-active,
.isbo-lookup-editor-mode-option:disabled {
    color: var(--dxbl-text-color, #212529);
    font-weight: 600;
    text-decoration: none;
    cursor: default;
}

.isbo-lookup-editor-mode-sep {
    color: var(--dxbl-text-muted-color, #6c757d);
}

/* Resumen bajo el combo: cuántos items van al reporte según el modo Incluir/Excluir.
   En modo Excluir es el único lugar donde el usuario ve el total efectivo, porque el
   combo muestra las exclusiones (pocas) y no la selección real (casi todas). */
.isbo-lookup-editor-summary {
    font-size: 0.8125rem;
    color: var(--dxbl-text-muted-color, #6c757d);
    margin-top: 0.125rem;
    line-height: 1.4285;
}
