    /*
     * Global .hidden — must beat component display:flex rules
     * (.ds-stack-normal, .ds-modal-footer, .ds-alert chrome, etc.).
     * Without !important, resume-gate and empty error strips stay visible.
     */
    .hidden {
      display: none !important;
    }

    /* App shell layout (was Tailwind max-w-[1400px] mx-auto) */
    .ds-app-shell {
      max-width: 1400px;
      margin-left: auto;
      margin-right: auto;
    }

    /* Holdings table cell helpers (were Tailwind utilities) */
    .ds-td-num {
      padding: 0.375rem 0.5rem;
      text-align: right;
      font-variant-numeric: tabular-nums;
    }
    .ds-td-muted {
      padding: 0.375rem 0.5rem;
      color: var(--ds-text-secondary);
    }
    .ds-history-error {
      padding: 1.5rem;
      font-size: var(--ds-text-body);
      color: var(--ds-text-muted);
    }
