.data-table-wrap {
  overflow-x: auto;
  border-radius: var(--radius-xl);
  border: 1px solid var(--color-border);
}

.data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--font-size-sm);
}

.data-table thead {
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--color-bg-secondary);
}

.data-table th {
  padding: 12px 16px;
  text-align: left;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-tertiary);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border-bottom: 1px solid var(--color-border);
  white-space: nowrap;
  user-select: none;
}

.data-table th[data-sortable] { cursor: pointer; }
.data-table th[data-sortable]:hover { color: var(--color-text-primary); }
.data-table th.sorted-asc::after { content: " \2191"; }
.data-table th.sorted-desc::after { content: " \2193"; }

.data-table td {
  padding: 12px 16px;
  color: var(--color-text-secondary);
  border-bottom: 1px solid var(--color-border);
}

.data-table tbody tr:hover {
  background: rgba(255, 255, 255, 0.02);
}

.data-table tbody tr[data-href]:hover {
  background: rgba(255, 255, 255, 0.04);
}

.data-table--compact th,
.data-table--compact td { padding: 6px 12px; }

.data-table--comfortable th,
.data-table--comfortable td { padding: 16px 20px; }

.data-table__controls {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 8px 12px;
  border-bottom: 1px solid var(--color-border);
  background: var(--color-bg-secondary);
}

.data-table__controls [data-density] {
  padding: 4px 10px;
  border-radius: var(--radius-md);
  font-size: var(--font-size-xs);
  color: var(--color-text-tertiary);
  background: transparent;
  border: 1px solid transparent;
  cursor: pointer;
  transition: all var(--transition-fast);
}

.data-table__controls [data-density]:hover {
  color: var(--color-text-secondary);
}

.data-table__controls [data-density].active {
  color: var(--color-text-primary);
  border-color: var(--color-border-strong);
  background: var(--color-bg-tertiary);
}
