/* Generic data table component */
.data-table {
    width: 100%;
    margin-bottom: 1rem;
    background-color: white;
    border-collapse: collapse;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}

.data-table th,
.data-table td {
    padding: 0.75rem;
    vertical-align: middle;
    border-bottom: 1px solid #dee2e6;
}

.data-table th {
    background-color: #f8f9fa;
    font-weight: 600;
    text-align: left;
}

.data-table tr:hover {
    background-color: #f5f5f5;
}

.data-table .btn-group {
    display: flex;
    gap: 0.25rem;
}

/* Dark Mode Overrides for Tables */
[data-theme="dark"] .table {
    color: var(--text-primary) !important;
    background-color: var(--card-bg) !important;
    border-color: var(--border-color) !important;
}

[data-theme="dark"] .table thead th {
    color: var(--text-primary) !important;
    background-color: var(--bg-tertiary) !important;
    border-color: var(--border-color) !important;
}

[data-theme="dark"] .table > :not(caption) > * > * {
    padding: .5rem .5rem;
    background-color: var(--bs-table-bg);
    border-bottom-width: 1px;
    box-shadow: inset 0 0 0 9999px var(--bs-table-accent-bg);
    color: var(--text-primary);
}


[data-theme="dark"] .table-striped > tbody > tr:nth-of-type(odd) > * {
    --bs-table-accent-bg: var(--bg-tertiary);
    color: var(--text-primary);
}

[data-theme="dark"] .table-striped > tbody > tr:nth-of-type(even) > * {
    --bs-table-accent-bg: var(--card-bg);
    color: var(--text-primary);
}

[data-theme="dark"] .data-table {
    background-color: var(--card-bg);
    color: var(--text-primary);
}

[data-theme="dark"] .data-table th,
[data-theme="dark"] .data-table td {
    border-color: var(--border-color);
}

[data-theme="dark"] .data-table th {
    background-color: var(--bg-tertiary);
    color: var(--text-primary);
}

[data-theme="dark"] .data-table tr:hover {
    background-color: var(--bg-secondary);
}
