ec7bbb229d
The upcoming meeting alert's details panel was grouping attendees by the `attendanceType` field, but in practice every attendee is stored as type=internal regardless of their actual group. Users define groups via subheading rows in the schedule editor (e.g. "الحضور الخارجي", "الحضور الداخلي"), but the alert stripped subheadings and lumped everyone under "داخلي". Fix: Rewrote the grouping logic in DetailsPanel to walk through the attendees array in order, using subheading rows as natural group separators. Each subheading becomes a bold, clearly visible group header (text-xs font-bold) instead of the old tiny 10px/60% opacity labels. Person rows are listed under their preceding subheading. Edge cases handled: - Persons before any subheading: shown without a group header - No subheadings at all: flat list without misleading "داخلي" label - Empty subheading groups (heading with no persons): skipped - Person count still counts only persons, not subheadings Changed file: - artifacts/tx-os/src/components/executive-meetings/upcoming-meeting-alert.tsx (DetailsPanel component, lines ~1744-1885)