    .data-table {
      width: 100%;
      font-size: var(--ds-text-body);
      border-collapse: collapse;
      border-radius: 0;
    }
    .data-table thead tr {
      border-bottom: 1px solid var(--ds-border-subtle);
    }
    .data-table tbody {
      color: var(--ds-text);
    }
    .data-table tbody tr {
      border-bottom: 1px solid var(--ds-border-subtle);
    }
    .data-table tbody tr:last-child {
      border-bottom: none;
    }
    .data-table th {
      font-size: var(--ds-text-min);
      letter-spacing: 0.01em;
      color: var(--ds-text-muted);
      font-weight: 600;
      background: var(--ds-surface);
      padding: 0.5rem;
      text-align: left;
      border-radius: 0;
      /* Headers are for sort taps only — no text selection chrome on mobile */
      user-select: none;
      -webkit-user-select: none;
    }
    .data-table th:first-child {
      padding-left: 1rem;
    }
    .data-table th[data-sort-holdings],
    .data-table th[data-draft-sort] {
      cursor: pointer;
    }
    .data-table th[data-sort-holdings]:hover,
    .data-table th[data-draft-sort]:hover {
      background: var(--ds-surface-inset);
    }
    .data-table th[data-sort-holdings="amount"],
    .data-table th[data-sort-holdings="value"],
    .data-table th.ds-col-num,
    .data-table th[data-draft-sort="amount"],
    .data-table th[data-draft-sort="value"] {
      text-align: right;
    }
    .data-table .ds-col-action {
      width: 2rem;
    }
    #no-holdings,
    .ds-empty-state {
      text-align: center;
      padding: 2rem 0;
      color: var(--ds-text-muted);
    }
    .data-table tbody tr:nth-child(even) { background: var(--ds-surface-section); }
    .thin-scroll::-webkit-scrollbar { height: 6px; width: 6px; }
    .thin-scroll::-webkit-scrollbar-thumb { background-color: #cbd5e1; border-radius: 20px; }
