/* ============================================
   FIX PARA BOTONES FANTASMA EN PAGINACIÓN DATATABLES
   Elimina botones duplicados y vacíos que aparecen en la paginación
   ============================================ */

/* Eliminar pseudo-elementos que puedan crear botones fantasma */
.dataTables_paginate::before,
.dataTables_paginate::after,
.dataTables_wrapper::before,
.dataTables_wrapper::after {
    display: none !important;
    content: none !important;
}

/* Eliminar contenido de pseudo-elementos en botones */
.dataTables_paginate .paginate_button::before,
.dataTables_paginate .paginate_button::after {
    display: none !important;
    content: none !important;
}

/* Ocultar contenedores span vacíos que pueden duplicar botones */
.dataTables_paginate > span:empty,
.dataTables_paginate span:empty {
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
}

/* Asegurar que solo haya un contenedor de paginación por wrapper */
.dataTables_wrapper .dataTables_paginate:not(:last-of-type) {
    display: none !important;
    visibility: hidden !important;
}

/* Ocultar botones duplicados que aparecen como contenedores adicionales */
.dataTables_wrapper .dataTables_paginate ~ .dataTables_paginate {
    display: none !important;
    visibility: hidden !important;
}

/* Ocultar elementos span que no son botones pero están en la paginación */
.dataTables_paginate > span:not(.paginate_button):not(.ellipsis) {
    display: none !important;
}

/* Asegurar que los botones de paginación sean elementos directos */
.dataTables_paginate {
    display: inline-block;
    position: relative;
    overflow: hidden;
}

/* Ocultar botones vacíos o con solo espacios */
.dataTables_paginate .paginate_button:empty,
.dataTables_paginate .paginate_button:not(.ellipsis):not([aria-label]):empty {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    visibility: hidden !important;
}

/* Ocultar botones que no tienen contenido visible */
.dataTables_paginate .paginate_button:not(.current):not(.previous):not(.next):not(.first):not(.last):not(.ellipsis) {
    /* Solo mostrar si tienen texto */
}

.dataTables_paginate .paginate_button:not(.ellipsis):empty:not([aria-label]) {
    display: none !important;
}

/* Ocultar botones con ancho o alto cero */
.dataTables_paginate .paginate_button[style*="width: 0"],
.dataTables_paginate .paginate_button[style*="height: 0"],
.dataTables_paginate .paginate_button[style*="width:0"],
.dataTables_paginate .paginate_button[style*="height:0"] {
    display: none !important;
}

/* Fix para eliminar contenedores duplicados que envuelven los botones */
.dataTables_wrapper .dataTables_info ~ .dataTables_paginate + .dataTables_paginate {
    display: none !important;
}

/* Eliminar cualquier wrapper adicional alrededor de la paginación */
.dataTables_wrapper > .dataTables_paginate + .dataTables_paginate {
    display: none !important;
}

/* Ocultar elementos que están fuera del flujo normal (botones fantasma) */
.dataTables_paginate .paginate_button[style*="display: none"],
.dataTables_paginate .paginate_button[style*="display:none"],
.dataTables_paginate .paginate_button.hidden {
    display: none !important;
}

/* Ocultar botones que aparecen después del botón "Siguiente" sin contenido */
.dataTables_paginate .paginate_button:last-of-type + .paginate_button,
.dataTables_paginate .paginate_button:last-of-type ~ span:not(.paginate_button),
.dataTables_paginate .paginate_button:last-of-type ~ * {
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
}

/* Asegurar que solo los elementos válidos sean visibles */
.dataTables_paginate > *:not(.paginate_button):not(.ellipsis) {
    display: none !important;
}

/* Ocultar SOLO elementos VACÍOS que aparecen después del botón "Siguiente" */
.dataTables_paginate .paginate_button.next + *:empty,
.dataTables_paginate .paginate_button.next ~ *:empty,
.dataTables_paginate a.next + *:empty,
.dataTables_paginate a.next ~ *:empty,
.dataTables_paginate [aria-label="Next"] + *:empty,
.dataTables_paginate [aria-label="Next"] ~ *:empty,
.dataTables_paginate [aria-label="Siguiente"] + *:empty,
.dataTables_paginate [aria-label="Siguiente"] ~ *:empty {
    display: none !important;
    visibility: hidden !important;
}

/* Ocultar elementos que aparecen después de cualquier botón que contiene "Siguiente" o "Next" */
.dataTables_paginate > *:contains("Siguiente") ~ *,
.dataTables_paginate > *:contains("Next") ~ * {
    display: none !important;
}

/* Ocultar específicamente elementos vacíos que aparecen después de la paginación */
.dataTables_paginate > *:empty:not(.paginate_button):not(.ellipsis) {
    display: none !important;
}

/* Ocultar elementos que son botones pero no tienen ningún contenido útil */
.dataTables_paginate > .paginate_button:not(.current):not(.previous):not(.next):not(.first):not(.last):not(.ellipsis):empty {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
}

/* Ocultar botones que no tienen contenido visible después del último botón válido */
.dataTables_paginate > .paginate_button:empty,
.dataTables_paginate > span:empty:not(.paginate_button):not(.ellipsis) {
    display: none !important;
}

/* Ocultar cualquier elemento que esté fuera del flujo normal de botones */
.dataTables_paginate > .paginate_button[style*="width"]:empty,
.dataTables_paginate > span[style*="width"]:empty {
    display: none !important;
}

