/* DataTables theme overrides to match design system */

/* Table base */
table.dataTable {
    border-collapse: separate !important;
    border-spacing: 0;
    width: 100% !important;
}

table.dataTable thead th {
    background-color: var(--color-bg) !important;
    color: var(--color-text-secondary) !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 10px 12px !important;
    border-bottom: none !important;
}

table.dataTable thead th:first-child {
    border-radius: 6px 0 0 6px;
}

table.dataTable thead th:last-child {
    border-radius: 0 6px 6px 0;
}

/* Sort indicators — ensure room and proper positioning */
table.dataTable > thead > tr > th.dt-orderable-asc,
table.dataTable > thead > tr > th.dt-orderable-desc {
    padding-right: 26px !important;
    position: relative !important;
    cursor: pointer;
}

/* Sort arrows via span.dt-column-order (DT 2.x) */
table.dataTable > thead > tr > th span.dt-column-order {
    position: absolute !important;
    right: 8px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    font-size: 9px !important;
    opacity: 0.25;
    line-height: 1;
    display: inline-block;
}

table.dataTable > thead > tr > th.dt-ordering-asc span.dt-column-order,
table.dataTable > thead > tr > th.dt-ordering-desc span.dt-column-order {
    opacity: 0.9;
    color: var(--color-primary) !important;
}

/* Sort arrows via ::before/::after pseudo-elements (DT 2.x BS5) */
table.dataTable > thead > tr > th.dt-orderable-asc::before,
table.dataTable > thead > tr > th.dt-orderable-asc::after,
table.dataTable > thead > tr > th.dt-orderable-desc::before,
table.dataTable > thead > tr > th.dt-orderable-desc::after {
    position: absolute !important;
    right: 8px !important;
    font-size: 9px !important;
    line-height: 1;
    opacity: 0.25;
}

table.dataTable > thead > tr > th.dt-orderable-asc::before,
table.dataTable > thead > tr > th.dt-orderable-desc::before {
    top: calc(50% - 6px) !important;
}

table.dataTable > thead > tr > th.dt-orderable-asc::after,
table.dataTable > thead > tr > th.dt-orderable-desc::after {
    top: calc(50% + 1px) !important;
}

table.dataTable > thead > tr > th.dt-ordering-asc::before,
table.dataTable > thead > tr > th.dt-ordering-desc::after {
    opacity: 0.9 !important;
    color: var(--color-primary) !important;
}

/* Non-orderable columns (like Actions) — no extra padding */
table.dataTable > thead > tr > th:not(.dt-orderable-asc):not(.dt-orderable-desc) {
    cursor: default;
}

table.dataTable tbody td {
    padding: 12px !important;
    border-top: none !important;
    border-bottom: 1px solid var(--color-border-light) !important;
    font-size: 14px;
    color: var(--color-text);
    vertical-align: middle;
}

table.dataTable tbody tr:last-child td {
    border-bottom: none !important;
}

table.dataTable tbody tr:hover {
    background-color: var(--color-bg) !important;
}

table.dataTable tbody tr.selected {
    background-color: #eef2ff !important;
    color: var(--color-text) !important;
}

/* Remove default DataTables border */
table.dataTable.no-footer {
    border-bottom: none !important;
}

table.dataTable.table-striped > tbody > tr:nth-of-type(odd) > * {
    box-shadow: none;
}

/* Search input */
div.dataTables_filter input {
    background-color: var(--color-bg) !important;
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-input) !important;
    padding: 6px 12px !important;
    font-size: 13px !important;
    color: var(--color-text) !important;
    outline: none !important;
}

div.dataTables_filter input:focus {
    border-color: var(--color-primary) !important;
    box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.15) !important;
}

/* Pagination */
div.dataTables_paginate {
    margin-top: 16px !important;
}

div.dataTables_paginate .paginate_button {
    padding: 4px 10px !important;
    border-radius: var(--radius-btn) !important;
    border: 1px solid var(--color-border) !important;
    color: var(--color-text-secondary) !important;
    font-size: 13px !important;
    margin: 0 2px !important;
    background: var(--color-surface) !important;
}

div.dataTables_paginate .paginate_button:hover {
    background: var(--color-bg) !important;
    color: var(--color-text) !important;
    border-color: var(--color-border) !important;
}

div.dataTables_paginate .paginate_button.current {
    background: var(--color-primary) !important;
    color: #ffffff !important;
    border-color: var(--color-primary) !important;
}

div.dataTables_paginate .paginate_button.current:hover {
    background: var(--color-primary-hover) !important;
    color: #ffffff !important;
    border-color: var(--color-primary-hover) !important;
}

div.dataTables_paginate .paginate_button.disabled {
    color: var(--color-text-muted) !important;
    opacity: 0.5;
}

/* Info text */
div.dataTables_info {
    font-size: 13px !important;
    color: var(--color-text-secondary) !important;
    padding-top: 12px !important;
}

/* Length select */
div.dataTables_length select {
    background-color: var(--color-bg) !important;
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-input) !important;
    padding: 4px 8px !important;
    font-size: 13px !important;
    color: var(--color-text) !important;
}

/* Export buttons */
div.dt-buttons {
    margin-bottom: 12px;
}

div.dt-buttons .dt-button {
    background-color: var(--color-surface) !important;
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-btn) !important;
    color: var(--color-text-secondary) !important;
    font-size: 12px !important;
    padding: 6px 12px !important;
    margin-right: 4px !important;
    font-weight: 500;
}

div.dt-buttons .dt-button:hover {
    background-color: var(--color-bg) !important;
    color: var(--color-text) !important;
    border-color: var(--color-border) !important;
}

div.dt-buttons .dt-button.active {
    background-color: var(--color-primary) !important;
    color: #ffffff !important;
    border-color: var(--color-primary) !important;
}

/* Processing indicator */
div.dataTables_processing {
    background-color: var(--color-surface) !important;
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-card) !important;
    color: var(--color-text-secondary) !important;
}

/* Fixed layout so Title column absorbs remaining space */
table.dataTable {
    table-layout: fixed !important;
}

table.dataTable td:first-child {
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Responsive / scrollX */
div.dataTables_scrollHead table.dataTable {
    margin-bottom: 0 !important;
}

/* Remove Bootstrap table borders that conflict */
.card-ds table.dataTable,
.card-ds-compact table.dataTable {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* Ensure DataTables wrapper respects parent container width */
.card-ds .dataTables_wrapper,
.card-ds-compact .dataTables_wrapper {
    width: 100% !important;
    overflow-x: auto;
}
