/* Filas de las grillas con columna de acciones (2026-10-18): se resaltan al pasar el mouse para indicar que tienen un menú contextual
   (click derecho, o mantener apretado en pantallas táctiles: utilities/rowContextMenu.js). Las que además tienen acción de doble click
   llevan la manito (más abajo); las demás, cursor normal. */
.gridjs-tbody tr:has(.dataGridActionsButtons) > td {
    transition: background-color .12s ease, box-shadow .12s ease;
}

/* Un único color SÓLIDO para todas las filas (al pasar el mouse y mientras su menú está abierto): un color semitransparente se
   mezclaba con lo que hubiera detrás, y un tono distinto para la fila del menú abierto hacía que unas filas se vieran más oscuras
   que otras (2026-10-18). */
.gridjs-tbody tr:has(.dataGridActionsButtons):hover > td,
.gridjs-tbody tr.rowContextMenuActive > td {
    background-color: #e3ecff;
}

/* Línea de acento azul de 3px a la izquierda de la fila: se ve bien qué fila está marcada aun en pantallas muy claras, sin tapar
   ningún dato. */
.gridjs-tbody tr:has(.dataGridActionsButtons):hover > td:first-child,
.gridjs-tbody tr.rowContextMenuActive > td:first-child {
    box-shadow: inset 3px 0 0 var(--bs-primary, #4680ff);
}

/* Filas con acción de doble click (`.rowDefaultAction`): la manito. `touch-action: manipulation` asegura el doble toque en celulares
   (sin zoom por doble toque). */
.gridjs-tbody tr:has(.rowDefaultAction) {
    cursor: pointer;
    touch-action: manipulation;
}

/* Ayuda discreta arriba de las grillas con acciones (se cierra con "Entendido" y no vuelve a aparecer en ese navegador). */
.gridRowTip {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .25rem .5rem;
    margin: 0 0 .6rem;
    padding: .35rem .75rem;
    border: 1px solid #dbe5ff;
    border-radius: .5rem;
    background-color: #f5f8ff;
    color: #44546a;
    font-size: .8rem;
}

.gridRowTip > i {
    color: #4680ff;
}

.gridRowTip > span {
    flex: 1 1 14rem;
    min-width: 0;
}

.gridRowTip .gridRowTipClose {
    padding: 0 .25rem;
    font-size: .8rem;
    text-decoration: none;
    box-shadow: none;
}

/* En pantallas táctiles, mantener apretada la fila no debe seleccionar texto ni abrir el menú del sistema. */
@media (pointer: coarse) {
    .gridjs-tbody tr:has(.dataGridActionsButtons) {
        -webkit-user-select: none;
        user-select: none;
        -webkit-touch-callout: none;
    }
}

/* El menú (usa también `.menuCompact`, utilities/buttons.css). Por encima de los modales del template (1081). */
.rowContextMenu {
    position: fixed;
    z-index: 1095;
    max-width: min(280px, calc(100vw - 16px));
}

/* La primera opción recibe el foco al abrir el menú (para el teclado), pero el template pinta `:focus` igual que `:hover`: con el
   mouse o el dedo parecía una opción ya elegida. Solo se resalta si el foco es "visible" (menú abierto con el teclado) o con el
   mouse encima (2026-10-18). Los colores de texto de cada opción (`text-*`) no cambian. */
.rowContextMenu .dropdown-item:focus:not(:focus-visible):not(:hover) {
    background: transparent;
    color: var(--bs-dropdown-link-color);
}

.rowContextMenu .rowContextMenuTitle {
    padding: .3rem .6rem .4rem;
    margin-bottom: .2rem;
    border-bottom: 1px solid #eef1f4;
    font-size: .75rem;
    font-weight: 600;
    color: #5b6b79;
    overflow-wrap: anywhere;
}
