/* Presentación común para exploradores, con extensiones de Asiento/CFactura/FPago.
   CustomizeElement añade las clases sin sustituir el grid, las columnas o sus eventos.
   No se alteran anchos, scroll, tamaño de página ni carga/virtualización de datos.
   Los !important acotados compensan las reglas globales anteriores de site.css. */
.amedida-layout .amedida-content .suite-data-grid {
    --dxbl-grid-border-radius: 12px;
    --dxbl-grid-font-size: var(--suite-control-font-size, 14px);
    --dxbl-grid-header-font-weight: 500;
    --suite-data-grid-cell-x: 12px;
    --suite-data-grid-separator: color-mix(in srgb, var(--suite-shell-border) 55%, var(--suite-shell-surface));
    color: var(--suite-shell-text);
    background: var(--suite-shell-surface);
    border: 1px solid var(--suite-shell-border);
    border-radius: 12px;
    font-size: var(--suite-control-font-size, 14px);
    line-height: 1.4;
}

/* Sin separadores verticales entre columnas. No se tocan los tiradores de ancho. */
.amedida-layout .amedida-content .suite-data-grid :is(.suite-data-grid-header-cell,
    .suite-data-grid-cell, .suite-data-grid-control-cell, .suite-data-grid-filter-cell,
    .suite-data-grid-group-cell, .suite-data-grid-footer-cell, .suite-data-grid-empty-cell) {
    border-inline-width: 0 !important;
    border-block-start-width: 0 !important;
    border-block-end: 1px solid var(--suite-data-grid-separator) !important;
    vertical-align: middle;
}

/* Distinguir el límite de un bloque fijado sin recuperar líneas entre columnas. */
.amedida-layout .amedida-content .suite-data-grid :is(.suite-data-grid-header-cell,
    .suite-data-grid-cell, .suite-data-grid-control-cell).dxbl-grid-last-fixed-left-cell {
    --suite-data-grid-fixed-divider: inset -3px 0 3px -3px var(--suite-shell-muted);
    box-shadow: var(--suite-data-grid-fixed-divider);
}

.amedida-layout .amedida-content .suite-data-grid .suite-data-grid-header-cell {
    height: var(--suite-data-grid-header-height);
    box-sizing: border-box;
    padding: 4px var(--suite-data-grid-cell-x) !important;
    background-color: var(--suite-shell-bg) !important;
    color: var(--suite-shell-muted);
    font-size: 13px;
    font-weight: 500;
}

/* The same header density applies to nested and lookup grids without the
   appearance controller. Keep filter rows and data rows independent. */
.suite-ui .dxbl-grid:not(.suite-data-grid) .dxbl-grid-table > thead > tr:not(.dxbl-grid-filter-row) > th {
    height: var(--suite-data-grid-header-height);
    box-sizing: border-box;
    padding-block: 4px !important;
}

.amedida-layout .amedida-content .suite-data-grid .suite-data-grid-header-cell[aria-sort="ascending"],
.amedida-layout .amedida-content .suite-data-grid .suite-data-grid-header-cell[aria-sort="descending"] {
    color: var(--suite-shell-text);
    box-shadow: inset 0 -2px var(--suite-shell-focus), var(--suite-data-grid-fixed-divider, 0 0 transparent);
}

.amedida-layout .amedida-content .suite-data-grid .suite-data-grid-cell {
    height: var(--suite-data-grid-row-height);
    box-sizing: border-box;
    padding: 6px var(--suite-data-grid-cell-x) !important;
    line-height: 20px;
}

.amedida-layout .amedida-content .suite-data-grid :is(.suite-data-grid-control-cell, .suite-data-grid-filter-cell) {
    height: var(--suite-data-grid-row-height);
    box-sizing: border-box;
    padding: 3px var(--suite-data-grid-cell-x) !important;
}

/* Nested/lookup grids may not use SuiteDataGridAppearance. Match only ordinary
   body cells: virtual spacers, empty rows and expanded detail/edit forms retain
   their native sizing. Height is a baseline; multiline content can still grow. */
.suite-ui .dxbl-grid:not(.suite-data-grid) .dxbl-grid-table > tbody
    > tr:not(.dxbl-grid-edit-row):not(.dxbl-grid-empty-row):not(.dxbl-grid-filter-row):not([dxbl-top-virtual-spacer-element]):not([dxbl-bottom-virtual-spacer-element])
    > td:not(.dxbl-grid-detail-cell):not(.dxbl-grid-edit-form):not(.dxbl-grid-empty-cell):not(.dxbl-grid-empty-data-area):not(.dxbl-grid-indent-cell):not(.dxbl-grid-expand-button-cell):not(.dxbl-grid-row-drag-anchor-cell):not(.dxbl-grid-command-cell):not(.dxbl-grid-selection-cell) {
    height: var(--suite-data-grid-row-height);
    box-sizing: border-box;
    padding-block: 6px !important;
    line-height: 20px;
}
.suite-ui .dxbl-grid:not(.suite-data-grid) .dxbl-grid-table > tbody
    > tr:not(.dxbl-grid-edit-row):not(.dxbl-grid-empty-row):not(.dxbl-grid-filter-row):not([dxbl-top-virtual-spacer-element]):not([dxbl-bottom-virtual-spacer-element])
    > :is(.dxbl-grid-command-cell, .dxbl-grid-selection-cell) {
    height: var(--suite-data-grid-row-height);
    box-sizing: border-box;
    padding-block: 3px !important;
}

.amedida-layout .amedida-content .suite-data-grid .suite-data-grid-row > :is(.suite-data-grid-cell, .suite-data-grid-control-cell) {
    background-color: var(--suite-shell-surface);
    color: var(--suite-shell-text);
}

.amedida-layout .amedida-content .suite-data-grid .suite-data-grid-row:hover > :is(.suite-data-grid-cell, .suite-data-grid-control-cell) {
    background-color: var(--suite-shell-bg) !important;
}

/* La selección prevalece sobre hover; el foco de fila sigue siendo distinguible. */
.amedida-layout .amedida-content .suite-data-grid .suite-data-grid-row.suite-data-grid-row--selected > :is(.suite-data-grid-cell, .suite-data-grid-control-cell),
.amedida-layout .amedida-content .suite-data-grid .suite-data-grid-row.suite-data-grid-row--selected:hover > :is(.suite-data-grid-cell, .suite-data-grid-control-cell) {
    background-color: var(--suite-shell-accent-soft) !important;
    color: var(--suite-shell-text);
}

.amedida-layout .amedida-content .suite-data-grid .suite-data-grid-row--selected > :is(td, th):first-child {
    box-shadow: inset 3px 0 var(--suite-shell-focus), var(--suite-data-grid-fixed-divider, 0 0 transparent);
}

.amedida-layout .amedida-content .suite-data-grid .suite-data-grid-row--focused > :is(.suite-data-grid-cell, .suite-data-grid-control-cell) {
    border-block-end-color: var(--suite-shell-focus) !important;
}

/* Columnas monetarias de las vistas opt-in. Asiento no tiene importes.
   Esta clase solo cambia presentación: no establece formato, valor ni columnas nuevas. */
.amedida-layout .amedida-content .suite-data-grid .suite-data-grid-amount {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.amedida-layout .amedida-content .suite-data-grid :is(.suite-data-grid-group-cell, .suite-data-grid-footer-cell) {
    padding: 8px var(--suite-data-grid-cell-x) !important;
    color: var(--suite-shell-text);
    background-color: var(--suite-shell-bg) !important;
    font-weight: 500;
    font-variant-numeric: tabular-nums;
}

.amedida-layout .amedida-content .suite-data-grid .suite-data-grid-group-row:hover > .suite-data-grid-group-cell {
    background-color: var(--suite-shell-bg) !important;
}

.amedida-layout .amedida-content .suite-data-grid :is(.suite-data-grid-group-panel,
    .suite-data-grid-toolbar, .suite-data-grid-search, .suite-data-grid-pager) {
    padding: 8px var(--suite-data-grid-cell-x);
    border-color: var(--suite-data-grid-separator) !important;
    color: var(--suite-shell-text);
    background-color: var(--suite-shell-surface);
}

/* Filtros nativos 25.2.5: visibles también sin hover y con área táctil ampliada.
   Filled identifica un filtro aplicado; Active, el menú abierto. */
.amedida-layout .amedida-content .suite-data-grid .suite-data-grid-header-cell .dxbl-grid-filter-menu-funnel-btn {
    min-width: 32px;
    min-height: 32px;
    margin-block: 0;
    padding: 6px;
    border-radius: 6px;
}
.amedida-layout .amedida-content .suite-data-grid .suite-data-grid-header-cell
    .dxbl-grid-filter-menu-funnel-btn:not(:disabled):not(.dxbl-disabled):not(.dxbl-grid-filter-menu-funnel-btn-disabled):not([aria-disabled="true"]) {
    color: var(--suite-shell-muted);
    background: transparent;
}
.amedida-layout .amedida-content .suite-data-grid .suite-data-grid-header-cell
    .dxbl-grid-filter-menu-funnel-btn:not(:disabled):not(.dxbl-disabled):not(.dxbl-grid-filter-menu-funnel-btn-disabled):not([aria-disabled="true"]):hover {
    color: var(--suite-shell-text);
    background: var(--suite-shell-hover);
}
.amedida-layout .amedida-content .suite-data-grid .suite-data-grid-header-cell
    .dxbl-grid-filter-menu-funnel-btn:is(.dxbl-grid-filter-menu-funnel-btn-filled, .dxbl-grid-filter-menu-funnel-btn-active):not(:disabled):not(.dxbl-disabled):not(.dxbl-grid-filter-menu-funnel-btn-disabled):not([aria-disabled="true"]) {
    color: var(--suite-shell-focus);
    background: var(--suite-shell-accent-soft);
    box-shadow: inset 0 -2px var(--suite-shell-focus);
}

.amedida-layout .amedida-content .suite-data-grid .suite-data-grid-pager {
    border-top: 1px solid var(--suite-data-grid-separator);
    font-size: 13px;
    font-variant-numeric: tabular-nums;
}

/* Pager dimensions are shared by all views in suite-palette.css. */

.amedida-layout .amedida-content .suite-data-grid .suite-data-grid-pager
    :is(button, a):not(:disabled):not(.dxbl-disabled):not([aria-disabled="true"]):not(.dxbl-pager-active-page-btn):not([aria-current="page"]):not([aria-current="true"]):hover {
    background-color: var(--suite-shell-accent-soft);
    color: var(--suite-shell-text);
}

/* El tema compartido controla la página activa de todos los grids. */

.amedida-layout .amedida-content .suite-data-grid .suite-data-grid-cell a {
    color: var(--suite-shell-link);
    text-underline-offset: 3px;
    text-decoration-color: currentColor;
}

.amedida-layout .amedida-content .suite-data-grid .suite-data-grid-cell a:hover {
    color: var(--suite-shell-link-hover) !important;
    background-color: var(--suite-shell-accent-soft) !important;
    text-decoration: underline !important;
    box-shadow: none !important;
    transform: none !important;
}

/* Fluent presupone fondo primario en la fila enfocada. Aquí su fondo sigue claro:
   conservar el contraste también en acciones de fila renderizadas como botones. */
.amedida-layout .amedida-content .suite-data-grid .suite-data-grid-row--focused
    > :is(.suite-data-grid-cell, .suite-data-grid-control-cell)
    :is(.dxbl-btn-link, .dxbl-btn-outline-link, .dxbl-btn-text-link):not(:disabled):not(.dxbl-disabled):not([aria-disabled="true"]) {
    color: var(--suite-shell-text);
}

.amedida-layout .amedida-content .suite-data-grid :is(a, button, input, select, [tabindex]):focus-visible {
    outline: 2px solid var(--suite-shell-focus);
    /* Fuera del relleno de marca del pager: mantiene el contraste del foco. */
    outline-offset: 2px;
}

@media (max-width: 600px) {
    .amedida-layout .amedida-content .suite-data-grid {
        --suite-data-grid-cell-x: 10px;
    }
    .amedida-layout .amedida-content .suite-data-grid .suite-data-grid-pager {
        padding: 8px 6px;
    }
}

@media (any-pointer: coarse) {
    /* A 44px filter target plus the 1px separator fits the 45px header. */
    .amedida-layout .amedida-content .suite-data-grid .suite-data-grid-header-cell {
        padding-block: 0 !important;
    }
    .amedida-layout .amedida-content .suite-data-grid .suite-data-grid-header-cell .dxbl-grid-filter-menu-funnel-btn {
        min-width: 44px;
        min-height: 44px;
    }
}
