    .ds-history-loading,
    .ds-portfolio-loading {
      display: flex;
      flex-direction: column;
      gap: var(--ds-chart-row-gap);
      padding: var(--ds-space-2) 0;
    }
    .ds-portfolio-loading-caption {
      margin: var(--ds-space-2) 0 0;
      font-size: var(--ds-text-caption);
      color: var(--ds-text-muted);
      text-align: center;
    }
    /* While loading, hide real holdings chrome so skeleton is the only signal */
    #holdings-table-container.ds-holdings--loading > :not(#portfolio-loading) {
      display: none !important;
    }
    #holdings-table-container.ds-holdings--loading > #portfolio-loading {
      display: flex;
    }
    .ds-skeleton-row {
      height: 1.25rem;
      border-radius: 0.35rem;
      background: linear-gradient(90deg, var(--ds-surface-inset) 0%, #e8edf4 50%, var(--ds-surface-inset) 100%);
      background-size: 200% 100%;
      animation: ds-shimmer 1.2s ease-in-out infinite;
    }
    .ds-skeleton-row--tall { height: 5rem; }
    @keyframes ds-shimmer {
      0% { background-position: 100% 0; }
      100% { background-position: -100% 0; }
    }
