/* =====================================================================
   Sticky "Acciones" column for all data grids
   ---------------------------------------------------------------------
   Fija la última columna (Acciones) de las grillas cuando el usuario
   hace scroll horizontal dentro del contenedor .table-responsive-md.
   Se activa por id de tabla para no afectar otras grillas sin acciones.

   Colores respetados:
   - Header:   #32464d (fondo)  / #fff (texto)   -> mismo del thead
   - Fila par:      #ffffff                       -> mismo de la tabla
   - Fila impar:    #f2f2f2                       -> Bootstrap .table-striped
   - Hover:         #ececec                       -> ligeramente más oscuro
   ===================================================================== */

/* --- 1. Contenedor: gestiona el scroll horizontal.
   overflow-y: visible evita que se corten tooltips / dropdowns
   dentro de la celda fija. */
.table-responsive-md:has(#TblConsultaContratos),
.table-responsive-md:has(#TblConsultaSolicitudesPago),
.table-responsive-md:has(#TblConsultaSolicitudesPagoContabilidad),
.table-responsive-md:has(#TblActalizarSolicitudPagoContabilidad),
.table-responsive-md:has(#TblConsultaAnexos),
.table-responsive-md:has(#TblConsultaUsuarios) {
    overflow-x: auto;
    overflow-y: visible;
}

/* border-collapse: separate hace que position: sticky funcione
   consistentemente en celdas TD/TH en todos los navegadores modernos. */
#TblConsultaContratos,
#TblConsultaSolicitudesPago,
#TblConsultaSolicitudesPagoContabilidad,
#TblActalizarSolicitudPagoContabilidad,
#TblConsultaAnexos,
#TblConsultaUsuarios {
    border-collapse: separate !important;
    border-spacing: 0;
}

/* --- 2. Última columna fija (Acciones) ---
   Se usa !important para vencer estilos que DataTables aplica
   dinámicamente después de inicializar. */
#TblConsultaContratos > thead > tr > th:last-child,
#TblConsultaContratos > tbody > tr > td:last-child,
#TblConsultaContratos > tr > td:last-child,
#TblConsultaSolicitudesPago > thead > tr > th:last-child,
#TblConsultaSolicitudesPago > tbody > tr > td:last-child,
#TblConsultaSolicitudesPago > tr > td:last-child,
#TblConsultaSolicitudesPagoContabilidad > thead > tr > th:last-child,
#TblConsultaSolicitudesPagoContabilidad > tbody > tr > td:last-child,
#TblConsultaSolicitudesPagoContabilidad > tr > td:last-child,
#TblActalizarSolicitudPagoContabilidad > thead > tr > th:last-child,
#TblActalizarSolicitudPagoContabilidad > tbody > tr > td:last-child,
#TblConsultaAnexos > thead > tr > th:last-child,
#TblConsultaAnexos > tbody > tr > td:last-child,
#TblConsultaAnexos > tr > td:last-child,
#TblConsultaUsuarios > thead > tr > th:last-child,
#TblConsultaUsuarios > tbody > tr > td:last-child {
    position: sticky !important;
    right: 0 !important;
    z-index: 2 !important;
    background-color: #ffffff !important;
    box-shadow: -6px 0 6px -4px rgba(0, 0, 0, 0.12);
    min-width: 110px;
    text-align: center;
    white-space: nowrap;
}

/* Header de la columna fija: mismo color que el thead general */
#TblConsultaContratos > thead > tr > th:last-child,
#TblConsultaSolicitudesPago > thead > tr > th:last-child,
#TblConsultaSolicitudesPagoContabilidad > thead > tr > th:last-child,
#TblActalizarSolicitudPagoContabilidad > thead > tr > th:last-child,
#TblConsultaAnexos > thead > tr > th:last-child,
#TblConsultaUsuarios > thead > tr > th:last-child {
    z-index: 3 !important;
    background-color: #32464d !important;
    color: #ffffff !important;
    padding: 0 8px !important;
}

/* Mantener el efecto "striped" de Bootstrap para la celda fija.
   Bootstrap aplica rgba(0,0,0,0.05) que sobre blanco ≈ #f2f2f2 */
#TblConsultaContratos > tbody > tr:nth-of-type(odd) > td:last-child,
#TblConsultaContratos > tr:nth-of-type(odd) > td:last-child,
#TblConsultaSolicitudesPago > tbody > tr:nth-of-type(odd) > td:last-child,
#TblConsultaSolicitudesPago > tr:nth-of-type(odd) > td:last-child,
#TblConsultaSolicitudesPagoContabilidad > tbody > tr:nth-of-type(odd) > td:last-child,
#TblConsultaSolicitudesPagoContabilidad > tr:nth-of-type(odd) > td:last-child,
#TblActalizarSolicitudPagoContabilidad > tbody > tr:nth-of-type(odd) > td:last-child,
#TblConsultaAnexos > tbody > tr:nth-of-type(odd) > td:last-child,
#TblConsultaAnexos > tr:nth-of-type(odd) > td:last-child,
#TblConsultaUsuarios > tbody > tr:nth-of-type(odd) > td:last-child {
    background-color: #f2f2f2 !important;
}

/* Mantener el efecto hover sobre la celda fija */
#TblConsultaContratos > tbody > tr:hover > td:last-child,
#TblConsultaContratos > tr:hover > td:last-child,
#TblConsultaSolicitudesPago > tbody > tr:hover > td:last-child,
#TblConsultaSolicitudesPago > tr:hover > td:last-child,
#TblConsultaSolicitudesPagoContabilidad > tbody > tr:hover > td:last-child,
#TblConsultaSolicitudesPagoContabilidad > tr:hover > td:last-child,
#TblActalizarSolicitudPagoContabilidad > tbody > tr:hover > td:last-child,
#TblConsultaAnexos > tbody > tr:hover > td:last-child,
#TblConsultaAnexos > tr:hover > td:last-child,
#TblConsultaUsuarios > tbody > tr:hover > td:last-child {
    background-color: #ececec !important;
}

/* --- 3. Caso especial: Administración de Usuarios ---
   Esta tabla tiene DOS columnas de acciones (Editar y Acciones),
   por lo que se fijan las dos últimas columnas. */
#TblConsultaUsuarios > thead > tr > th:nth-last-child(2),
#TblConsultaUsuarios > tbody > tr > td:nth-last-child(2) {
    position: sticky !important;
    z-index: 2 !important;
    background-color: #ffffff !important;
    text-align: center;
    white-space: nowrap;
}

#TblConsultaUsuarios > thead > tr > th:nth-last-child(2) {
    z-index: 3 !important;
    background-color: #32464d !important;
    color: #ffffff !important;
}

#TblConsultaUsuarios > tbody > tr:nth-of-type(odd) > td:nth-last-child(2) {
    background-color: #f2f2f2 !important;
}

#TblConsultaUsuarios > tbody > tr:hover > td:nth-last-child(2) {
    background-color: #ececec !important;
}

/* Sombra solo en la columna más a la izquierda del grupo fijo */
#TblConsultaUsuarios > thead > tr > th:nth-last-child(2),
#TblConsultaUsuarios > tbody > tr > td:nth-last-child(2) {
    box-shadow: -6px 0 6px -4px rgba(0, 0, 0, 0.12);
}

#TblConsultaUsuarios > thead > tr > th:last-child,
#TblConsultaUsuarios > tbody > tr > td:last-child {
    box-shadow: none;
}

/* Anchos fijos para poder calcular el "right" de la penúltima columna */
#TblConsultaUsuarios > thead > tr > th:last-child,
#TblConsultaUsuarios > tbody > tr > td:last-child {
    min-width: 110px !important;
    width: 110px !important;
    right: 0 !important;
}

#TblConsultaUsuarios > thead > tr > th:nth-last-child(2),
#TblConsultaUsuarios > tbody > tr > td:nth-last-child(2) {
    min-width: 80px !important;
    width: 80px !important;
    right: 110px !important;
}

/* --- 3b. Caso especial: columna Seleccionar (Auxiliar Administrativo) ---
   Incluye dropdown de asignación; requiere más ancho que Acciones. */
#TblActalizarSolicitudPagoContabilidad {
    min-width: 1420px;
}

#TblConsultaSolicitudesPagoContabilidad > thead > tr > th.sticky-seleccionar-col,
#TblConsultaSolicitudesPagoContabilidad > tbody > tr > td.sticky-seleccionar-col,
#TblActalizarSolicitudPagoContabilidad > thead > tr > th.sticky-seleccionar-col,
#TblActalizarSolicitudPagoContabilidad > tbody > tr > td.sticky-seleccionar-col {
    min-width: 220px !important;
    width: 220px !important;
    text-align: left !important;
    white-space: normal !important;
    vertical-align: middle;
}

#TblConsultaSolicitudesPagoContabilidad > thead > tr > th.sticky-seleccionar-col,
#TblActalizarSolicitudPagoContabilidad > thead > tr > th.sticky-seleccionar-col {
    text-align: center !important;
}

#TblConsultaSolicitudesPagoContabilidad .sticky-seleccionar-col label.dropdown,
#TblActalizarSolicitudPagoContabilidad .sticky-seleccionar-col label.dropdown {
    height: auto;
    margin: 0;
    width: 100%;
}

#TblConsultaSolicitudesPagoContabilidad .sticky-seleccionar-col .form-DropDownList,
#TblActalizarSolicitudPagoContabilidad .sticky-seleccionar-col .form-DropDownList,
#TblConsultaSolicitudesPagoContabilidad .sticky-seleccionar-col select,
#TblActalizarSolicitudPagoContabilidad .sticky-seleccionar-col select {
    width: 100% !important;
    max-width: 100%;
    box-sizing: border-box;
}

#TblConsultaSolicitudesPagoContabilidad .sticky-seleccionar-col .input-group,
#TblActalizarSolicitudPagoContabilidad .sticky-seleccionar-col .input-group {
    width: 100%;
}

/* --- 4. DataTables Responsive: evitar que la columna Acciones se
   oculte automáticamente. La clase .dtr-control queda intacta,
   pero la última columna nunca colapsa. */
table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control,
table.dataTable.dtr-column > tbody > tr > td.control,
table.dataTable.dtr-column > tbody > tr > th.control {
    position: static !important;
}

/* --- 5. Fallback para navegadores sin soporte de :has() --- */
.table-responsive-md {
    overflow-x: auto;
}

/* --- 6. Responsive: en pantallas pequeñas conservamos el sticky
   pero reducimos padding/tamaño del header para que quepa mejor. */
@media (max-width: 768px) {
    #TblConsultaContratos > thead > tr > th:last-child,
    #TblConsultaSolicitudesPago > thead > tr > th:last-child,
    #TblConsultaSolicitudesPagoContabilidad > thead > tr > th:last-child,
    #TblActalizarSolicitudPagoContabilidad > thead > tr > th:last-child,
    #TblConsultaSolicitudesPagoContabilidad > thead > tr > th.sticky-seleccionar-col,
    #TblActalizarSolicitudPagoContabilidad > thead > tr > th.sticky-seleccionar-col,
    #TblConsultaAnexos > thead > tr > th:last-child,
    #TblConsultaUsuarios > thead > tr > th:last-child,
    #TblConsultaUsuarios > thead > tr > th:nth-last-child(2) {
        font-size: 0.85rem;
        padding: 4px 6px !important;
    }

    #TblConsultaContratos > tbody > tr > td:last-child,
    #TblConsultaSolicitudesPago > tbody > tr > td:last-child,
    #TblConsultaAnexos > tbody > tr > td:last-child,
    #TblConsultaUsuarios > tbody > tr > td:last-child,
    #TblConsultaUsuarios > tbody > tr > td:nth-last-child(2),
    #TblConsultaSolicitudesPagoContabilidad > tbody > tr > td:last-child:not(.sticky-seleccionar-col),
    #TblActalizarSolicitudPagoContabilidad > tbody > tr > td:last-child:not(.sticky-seleccionar-col) {
        min-width: 90px;
    }

    #TblConsultaSolicitudesPagoContabilidad > tbody > tr > td.sticky-seleccionar-col,
    #TblActalizarSolicitudPagoContabilidad > tbody > tr > td.sticky-seleccionar-col {
        min-width: 200px !important;
        width: 200px !important;
    }
}
