/* Neumorphic Styling for DataTables (Supporting both DT v1 and DT v2 CSS classes) */

.dt-container,
.dataTables_wrapper {
    background-color: var(--neu-bg, #e6ecf5) !important;
    box-shadow: 10px 10px 20px #c5d0e0, -10px -10px 20px #ffffff !important;
    padding: 1.5rem !important;
    color: var(--neu-text-main, #2b3a4a) !important;
    font-family: var(--neu-font-family, sans-serif) !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    border-radius: 16px !important;
}

.dt-container .dt-length,
.dt-container .dt-search,
.dt-container .dt-info,
.dt-container .dt-processing,
.dt-container .dt-paging,
.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter,
.dataTables_wrapper .dataTables_info,
.dataTables_wrapper .dataTables_processing,
.dataTables_wrapper .dataTables_paginate {
    color: var(--neu-text-muted, #6c7a89) !important;
    font-size: 0.85rem !important;
    font-weight: 500 !important;
}

/* Length Select Dropdown Neumorphism */
.dt-container .dt-length select,
.dt-container .dt-length select.dt-input,
.dataTables_wrapper .dataTables_length select {
    background-color: var(--neu-bg, #e6ecf5) !important;
    border: none !important;
    border-radius: 10px !important;
    box-shadow: inset 2.5px 2.5px 5px #c5d0e0, inset -2.5px -2.5px 5px #ffffff !important;
    padding: 0.35rem 0.75rem !important;
    outline: none !important;
    color: var(--neu-text-main, #2b3a4a) !important;
    font-size: 0.85rem !important;
    margin: 0 0.4rem !important;
}

/* Search Input Field Neumorphism */
.dt-container .dt-search input,
.dt-container .dt-search input.dt-input,
.dataTables_wrapper .dataTables_filter input {
    background-color: var(--neu-bg, #e6ecf5) !important;
    border: none !important;
    border-radius: 12px !important;
    box-shadow: inset 2.5px 2.5px 5px #c5d0e0, inset -2.5px -2.5px 5px #ffffff !important;
    padding: 0.45rem 0.95rem !important;
    outline: none !important;
    color: var(--neu-text-main, #2b3a4a) !important;
    font-size: 0.85rem !important;
    margin-left: 0.5rem !important;
}

/* Table Styling */
table.dataTable {
    width: 100% !important;
    border-collapse: separate !important;
    border-spacing: 0 10px !important;
    margin-top: 1rem !important;
    margin-bottom: 1rem !important;
    border: none !important;
    background: transparent !important;
}

table.dataTable thead th {
    background: transparent !important;
    border-bottom: none !important;
    border-top: none !important;
    color: var(--neu-text-muted, #6c7a89) !important;
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    padding: 0.75rem 1rem !important;
}

table.dataTable tbody tr {
    background-color: var(--neu-bg, #e6ecf5) !important;
    box-shadow: 4px 4px 8px #c5d0e0, -4px -4px 8px #ffffff !important;
    border-radius: 14px !important;
    transition: all 0.2s ease !important;
}

table.dataTable tbody tr td {
    padding: 0.85rem 1rem !important;
    font-size: 0.86rem !important;
    color: var(--neu-text-main, #2b3a4a) !important;
    border: none !important;
    background: transparent !important;
}

table.dataTable tbody tr td:first-child {
    border-top-left-radius: 14px !important;
    border-bottom-left-radius: 14px !important;
}

table.dataTable tbody tr td:last-child {
    border-top-right-radius: 14px !important;
    border-bottom-right-radius: 14px !important;
}

table.dataTable tbody tr:hover {
    transform: translateY(-1px) !important;
    box-shadow: 6px 6px 12px #c5d0e0, -6px -6px 12px #ffffff !important;
}

/* Pagination Container & Buttons Neumorphism */
.dt-container .dt-paging,
.dataTables_wrapper .dataTables_paginate {
    display: flex !important;
    align-items: center !important;
    gap: 4px !important;
    margin-top: 0.75rem !important;
    padding-top: 0 !important;
}

.dt-container .dt-paging .dt-paging-button,
.dataTables_wrapper .dataTables_paginate .paginate_button {
    border: none !important;
    border-radius: 10px !important;
    background: var(--neu-bg, #e6ecf5) !important;
    box-shadow: 3px 3px 6px #c5d0e0, -3px -3px 6px #ffffff !important;
    color: var(--neu-text-main, #2b3a4a) !important;
    font-size: 0.82rem !important;
    font-weight: 600 !important;
    padding: 0.4rem 0.85rem !important;
    margin: 0 2px !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    text-decoration: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.dt-container .dt-paging .dt-paging-button:hover,
.dt-container .dt-paging .dt-paging-button:active,
.dataTables_wrapper .dataTables_paginate .paginate_button:hover,
.dataTables_wrapper .dataTables_paginate .paginate_button:active {
    color: var(--neu-primary, #005e85) !important;
    box-shadow: 5px 5px 10px #c5d0e0, -5px -5px 10px #ffffff !important;
    background: var(--neu-bg, #e6ecf5) !important;
    border: none !important;
}

.dt-container .dt-paging .dt-paging-button.current,
.dt-container .dt-paging .dt-paging-button.active,
.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
    background: linear-gradient(135deg, #005e85, #004b6a) !important;
    color: #ffffff !important;
    box-shadow: 3px 3px 8px rgba(0, 94, 133, 0.4) !important;
    border: none !important;
}

.dt-container .dt-paging .dt-paging-button.disabled,
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active {
    opacity: 0.45 !important;
    box-shadow: inset 1px 1px 2px #c5d0e0, inset -1px -1px 2px #ffffff !important;
    cursor: not-allowed !important;
    background: var(--neu-bg, #e6ecf5) !important;
    color: var(--neu-text-muted, #6c7a89) !important;
}

/* Responsive DataTables Layout & Mobile Overflow Handling */
.dataTables_wrapper,
.dt-container {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
    border-radius: 16px !important;
}

.dataTables_wrapper .table-responsive,
.dt-container .table-responsive {
    width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    margin-bottom: 0.5rem !important;
}

table.dataTable {
    white-space: nowrap !important;
}

@media (max-width: 767.98px) {
    .dt-container,
    .dataTables_wrapper {
        padding: 1rem 0.75rem !important;
    }

    .dataTables_wrapper .d-flex,
    .dt-container .d-flex {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0.75rem !important;
    }

    .dataTables_wrapper .dataTables_length,
    .dataTables_wrapper .dataTables_filter,
    .dt-container .dt-length,
    .dt-container .dt-search {
        width: 100% !important;
        margin: 0 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
    }

    .dataTables_wrapper .dataTables_filter label,
    .dt-container .dt-search label {
        width: 100% !important;
        display: flex !important;
        align-items: center !important;
        margin: 0 !important;
    }

    .dataTables_wrapper .dataTables_filter input,
    .dt-container .dt-search input {
        flex: 1 !important;
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0.5rem !important;
    }

    .dataTables_wrapper .dataTables_info,
    .dt-container .dt-info {
        text-align: center !important;
        font-size: 0.8rem !important;
    }

    .dataTables_wrapper .dataTables_paginate,
    .dt-container .dt-paging {
        justify-content: center !important;
        flex-wrap: wrap !important;
        gap: 4px !important;
    }
}