The grant dialog now says what the backend does
Support Access creation is self-grant only. The dialog, staff detail entry point, and firm detail entry point now frame the action as the signed-in staff account granting itself temporary access.
Copy reframe
The modal title changed from recipient-shaped copy to Grant support access. The body says the grant opens for the signed-in staff account, the firm eligibility hint names the signed-in staff account, and the submit button says Grant access.
The modal no longer accepts a staff recipient prop. It receives eligibleFirms, which is the only data the form needs.
The create path still submits firmId, durationDays, and reason through the existing server action, which converts the values to { expiresAt, reason }.
The Story keeps grant create on createFirmSupportGrant. The generated hook migration remains deferred to pramaan-io/pramaan-spec#1642.
Firm detail cleanup
FirmDetailView no longer manufactures a fake grantStaff from DEFAULT_STAFF_DETAIL. The firm page computes whether the current caller is eligible for that firm, passes that eligible-firms list into the modal, and leaves the backend to bind the grant to the caller.
Design source note
HR-19: no Claude Design URL was provided for this turn, so the canonical fallback was design/v1/. The fallback mock still had the old grantee wording, which conflicts with issue #1398's verified backend evidence and product decision. This Story intentionally applies the issue's self-grant decision while keeping the DESIGN.md direct admin voice.
Regression proof
tests/unit/staff-grant-support-access-modal.test.tsx now asserts the self-grant title, description, eligibility hint, and submit label, and rejects the old Grant support access to and grantee wording.
Nearby action tests were updated so staff row actions and firm action chrome expect Grant support access.
Per pramaan-docs ADR-124, this is presentational copy and prop-shape cleanup around an existing server action. It adds no new executable workflow boundary and is covered by the caller's existing action logging.