/* Sombreado rojo más notorio para filas con analitos fuera de rango (solo listados) */

/* Cubrir los tipos de tablas usados por SENAITE */
table.listing tbody tr.row-flag-alert,
table.listing-table tbody tr.row-flag-alert,
table#listing tbody tr.row-flag-alert,
table.table tbody tr.row-flag-alert,
#content table.listing tbody tr.row-flag-alert,
#content-core table.listing tbody tr.row-flag-alert,
.contentstable tbody tr.row-flag-alert {
  background-color: #ffe5e3 !important; /* rojo suave, más visible que #fff1f0 */
}

/* Pintar también las celdas (algunos temas aplican fondo en <td>, no en <tr>) */
table.listing tbody tr.row-flag-alert > td,
table.listing-table tbody tr.row-flag-alert > td,
table#listing tbody tr.row-flag-alert > td,
table.table tbody tr.row-flag-alert > td,
#content table.listing tbody tr.row-flag-alert > td,
#content-core table.listing tbody tr.row-flag-alert > td,
.contentstable tbody tr.row-flag-alert > td {
  background-color: #ffe5e3 !important;
  border-top-color: #ffbdb8 !important; /* sutil separación */
}

/* Soporte alterno: si el adapter añade data-row-alert="1" */
tr[data-row-alert="1"],
tr[data-row-alert="1"] > td {
  background-color: #ffe5e3 !important;
  border-top-color: #ffbdb8 !important;
}

/* ======== AJUSTES DE COMPATIBILIDAD ======== */

/* DataTables/Listing de SENAITE: asegurar el mismo fondo */
table.dataTable tbody tr.row-flag-alert,
table.dataTable tbody tr.row-flag-alert > td {
  background-color: #ffe5e3 !important;
  border-top-color: #ffbdb8 !important;
}

/* Zebra (.table-striped) y hover (.table-hover): mantener la alerta visible */
table.table-striped tbody tr.row-flag-alert,
table.table-hover tbody tr.row-flag-alert:hover,
table.table-hover tbody tr.row-flag-alert:hover > td,
.contentstable.table-hover tbody tr.row-flag-alert:hover,
.contentstable.table-hover tbody tr.row-flag-alert:hover > td {
  background-color: #ffe5e3 !important;
}

/* Aún con zebra odd/even, forzar el mismo rojo en la fila marcada */
table.table-striped tbody tr.row-flag-alert:nth-of-type(odd) > td,
table.table-striped tbody tr.row-flag-alert:nth-of-type(even) > td,
.contentstable.table-striped tbody tr.row-flag-alert:nth-of-type(odd) > td,
.contentstable.table-striped tbody tr.row-flag-alert:nth-of-type(even) > td {
  background-color: #ffe5e3 !important;
}

/* Cuando hay selección de fila (algunos temas usan .selected) mantener color y resaltar borde */
tbody tr.row-flag-alert.selected > td,
tbody tr.row-flag-alert.is-selected > td,
.contentstable tbody tr.row-flag-alert.selected > td,
.contentstable tbody tr.row-flag-alert.is-selected > td {
  background-color: #ffd6d3 !important; /* un pelín más marcado en selección */
  box-shadow: inset 0 0 0 2px #ffb3ae;   /* contorno suave para indicar selección */
}

/* ✅ Mantener el borde izquierdo tal como lo tenías */
tbody tr.row-flag-alert > td:first-child,
tbody tr[data-row-alert="1"] > td:first-child {
  box-shadow: inset 4px 0 0 #ffb3ad; /* línea vertical suave (sin cambios) */
}

/* Si el tema pinta hover por <td>, forzamos coherencia */
tbody tr.row-flag-alert > td:hover,
.contentstable tbody tr.row-flag-alert > td:hover {
  background-color: #ffd6d3 !important;
}

/* Impresión: conservar el marcado en reportes impresos */
@media print {
  tr.row-flag-alert,
  tr.row-flag-alert > td,
  tr[data-row-alert="1"],
  tr[data-row-alert="1"] > td {
    background-color: #ffe5e3 !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
}

/* 🔹 Ocultar el marcador oculto que inyecta el adapter (si existiera) */
.oob-flag { display: none !important; }

/* Refuerzo extra contra selectores muy específicos de Bootstrap */
.table.table-striped > tbody > tr.row-flag-alert > td,
.contentstable.table.table-striped > tbody > tr.row-flag-alert > td {
  background-color: #ffe5e3 !important;
}

/* Extra: algunas vistas aplican el fondo en celdas con .sorting_1 (DataTables) */
table.dataTable tbody tr.row-flag-alert > td.sorting_1,
.contentstable.dataTable tbody tr.row-flag-alert > td.sorting_1 {
  background-color: #ffe5e3 !important;
}

/* Accesibilidad: asegurar contraste de texto en celdas clave (opcional, no invasivo) */
tbody tr.row-flag-alert td.state_title,
tbody tr.row-flag-alert td.Service,
tbody tr.row-flag-alert td.getId,
.contentstable tbody tr.row-flag-alert td.state_title,
.contentstable tbody tr.row-flag-alert td.Service,
.contentstable tbody tr.row-flag-alert td.getId {
  color: #6b1f1a; /* texto ligeramente más oscuro para legibilidad */
}

/* Modo oscuro: ajustar tonos para que se perciba el alert en dark themes */
@media (prefers-color-scheme: dark) {
  table.listing tbody tr.row-flag-alert,
  table.listing-table tbody tr.row-flag-alert,
  table#listing tbody tr.row-flag-alert,
  table.table tbody tr.row-flag-alert,
  #content table.listing tbody tr.row-flag-alert,
  #content-core table.listing tbody tr.row-flag-alert,
  .contentstable tbody tr.row-flag-alert,
  tr[data-row-alert="1"],
  tr[data-row-alert="1"] > td {
    background-color: #4a1f1c !important; /* rojo oscuro para dark */
    border-top-color: #7a3a35 !important;
  }
  tbody tr.row-flag-alert.selected > td,
  .contentstable tbody tr.row-flag-alert.selected > td {
    background-color: #5a2723 !important;
    box-shadow: inset 0 0 0 2px #8a4741;
  }
  tbody tr.row-flag-alert > td:first-child,
  tbody tr[data-row-alert="1"] > td:first-child {
    box-shadow: inset 4px 0 0 #a4524b;
  }
  tbody tr.row-flag-alert td.state_title,
  .contentstable tbody tr.row-flag-alert td.state_title {
    color: #ffd7d4;
  }
}

/* === Fallback extra con :has() (se aplica sólo si el navegador lo soporta) === */
@supports selector(:has(*)) {
  /* Si por algún motivo la fila NO recibe la clase .row-flag-alert,
     pero el adapter inyecta el marcador oculto .oob-flag[data-oor="1"],
     pintamos la fila usando :has(). */
  .contentstable tbody tr:has(.oob-flag[data-oor="1"]),
  .contentstable tbody tr:has(.oob-flag[data-oor="1"]) > td,
  table.table tbody tr:has(.oob-flag[data-oor="1"]),
  table.table tbody tr:has(.oob-flag[data-oor="1"]) > td {
    background-color: #ffe5e3 !important;
    border-top-color: #ffbdb8 !important;
  }

  /* Mantener la línea izquierda con el fallback :has() */
  .contentstable tbody tr:has(.oob-flag[data-oor="1"]) > td:first-child,
  table.table tbody tr:has(.oob-flag[data-oor="1"]) > td:first-child {
    box-shadow: inset 4px 0 0 #ffb3ad;
  }

  /* Pintar fila si contiene el ícono de fuera de rango (fallback sin JS) */
  table.contentstable tr:has(img[src*="exclamation_red.svg"]),
  table.table tr:has(img[src*="exclamation_red.svg"]),
  #content table tr:has(img[src*="exclamation_red.svg"]) {
    background-color: #ffe5e3 !important;
  }
  table.contentstable tr:has(img[src*="exclamation_red.svg"]) > td:first-child,
  table.table tr:has(img[src*="exclamation_red.svg"]) > td:first-child,
  #content table tr:has(img[src*="exclamation_red.svg"]) > td:first-child {
    box-shadow: inset 4px 0 0 #ffb3ad !important;
  }
}

/* DEBUG opcional: sólo si el <body> tiene .oor-debug */
body.oor-debug .contentstable tbody tr:first-child > td {
  outline: 3px solid fuchsia !important; /* antes: TEST TEMPORAL siempre activo */
}

/* Unificación visual en contenedor genérico (#content) para evitar overrides ámbar */
#content table tr.row-flag-alert {
  background-color: #ffe5e3 !important; /* mismo rojo suave que el resto */
}
#content table tr.row-flag-alert > td:first-child {
  box-shadow: inset 4px 0 0 #ffb3ad !important;
}
