Opportunity and calendar cards now isolate item rendering behind memoized components. This preserves the current action grouping and copy while preventing selection or parent dashboard updates from re-rendering every dense card body.
Constraint: Do not change ranking, grouping, or product wording in this performance pass.
Rejected: Introduce virtual list dependency | the current list size can benefit from memo boundaries first without new dependencies.
Confidence: high
Scope-risk: narrow
Reversibility: clean
Tested: TypeScript diagnostics for CalendarView and OpportunityOverview
Tested: npm run build
Not-tested: Browser profiler capture with a large production city set.