/* ── Data table ─────────────────────────────────────────────── */
.table-wrapper {
  width: 100%;
  overflow-x: auto;
  border-radius: var(--radius-lg);
  border: 1px solid var(--clr-border);
  background: var(--clr-surface);
}

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

.table thead {
  background: var(--clr-bg);
  border-bottom: 1px solid var(--clr-border);
}
.table th {
  padding: var(--sp-3) var(--sp-4);
  text-align: left;
  font-size: var(--text-xs);
  font-weight: var(--font-semibold);
  color: var(--clr-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.4px;
  white-space: nowrap;
  user-select: none;
}
.table th.sortable { cursor: pointer; }
.table th.sortable:hover { color: var(--clr-text-primary); }
.table th .sort-icon { display: inline-block; margin-left: 4px; opacity: 0.4; }
.table th.sort-asc  .sort-icon,
.table th.sort-desc .sort-icon { opacity: 1; color: var(--clr-primary); }

.table td {
  padding: var(--sp-4);
  color: var(--clr-text-primary);
  vertical-align: middle;
  border-bottom: 1px solid var(--clr-border);
}
.table tbody tr:last-child td { border-bottom: none; }
.table tbody tr:hover td { background: var(--clr-surface-2); }

/* Column helpers */
.table .col-mono {
  font-family: 'Courier New', monospace;
  font-size: var(--text-xs);
  color: var(--clr-text-secondary);
}
.table .col-muted { color: var(--clr-text-muted); }
.table .col-right  { text-align: right; }
.table .col-center { text-align: center; }
.table .col-actions {
  text-align: right;
  white-space: nowrap;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--sp-2);
}

/* Row action menu */
.row-actions { display: flex; align-items: center; gap: var(--sp-2); }

/* Pagination */
.pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--sp-3) var(--sp-4);
  border-top: 1px solid var(--clr-border);
  background: var(--clr-bg);
  border-radius: 0 0 var(--radius-lg) var(--radius-lg);
  font-size: var(--text-sm);
  color: var(--clr-text-muted);
}
.pagination__controls { display: flex; gap: var(--sp-2); }

/* Table toolbar (search + filters + actions row) */
.table-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-4);
  padding: var(--sp-4) 0 var(--sp-4);
  flex-wrap: wrap;
}
.table-toolbar__left  { display: flex; align-items: center; gap: var(--sp-3); flex: 1; min-width: 0; }
.table-toolbar__right { display: flex; align-items: center; gap: var(--sp-2); flex-shrink: 0; }
