The firm record now has a persistent masthead and tabbed shell
The long-scroll detail page is reorganized into Overview, Members, Support access, and Billing while preserving the existing panels, modals, and server-confirmed action handlers.
Before / after
FirmDetailView rendered the hero and then every panel in one continuous stack: stats, members, CSM roster, active grants, grant history, activity, billing, provisioning, and danger zone.
The lifecycle actions lived in the hero, but the record did not have stable section navigation or URL-addressable panel state.
The breadcrumb, firm-number chip, lifecycle banner, onboarding stepper, masthead, and tab bar stay constant.
The existing panels now sit behind URL-driven tabs. ?tab=members, ?tab=support, and ?tab=billing reproduce the same view on reload.
Masthead
The masthead now shows the firm reference eyebrow, serif firm name, status badge, and facts line. The primary action still comes from FirmActionsMenu: Resend invite for invite-stage onboarding, Grant support access for active firms, and Reactivate for suspended firms. Reassign CSM remains beside it.
Tabbed frame
The tab bar reuses SegmentedFilter with ariaControls and tokenized count badges for Members and Support access. The tab parser lives in src/lib/parsers.ts, keeping HR-13 URL state out of local component state.
Follow-up tab evidence
The shared admin SegmentedFilter now matches the Firm Record mockup and the pramaan-app settings tab primitive: a white bordered container, dark active pill, light active text, and tokenized count badges.
This intentionally updates every admin surface that uses the shared primitive, including the Firms list Active/Archived scope control and the Support Access expiring-within control, so admin has one consistent tab look.
Preserved behavior
No backend contracts, generated files, or onboarding stepper props changed.
Existing mutation paths remain server-confirmed: CSM reassignment, support grant creation, roster add/remove, provisioning edits, suspend/archive modals, and bulk grant revoke are still wired through their original handlers.
pramaan-docs ADR-124 note: this is presentational shell/navigation work around existing business workflows. It adds no new backend boundary, external provider call, queue, route, job, or state-changing workflow requiring manual instrumentation.
Design source note
HR-19: no Claude Design URL was provided in this turn, so the canonical fallback was design/v1/. The attached PRAMAAN Firm Record.html supplied the masthead and tab-bar reference for issue #2247. The one intentional delta from the fallback is the serif firm name, because the issue and attached design explicitly require it for this masthead.