Calls & messages renders through the same SettingsTopicPage as Leasing & tours and Maintenance: one header row with the tabs and the info i, always full width, Company always first. TEST company only.
2 Oct 2026 · branch settings-portfolio/topic-page-s4b · captured against propflow-stage · at 38af2683034
Data note. Every name and balance below comes from propflow-stage, which is anonymized by construction (ADR-0097/0110 — phones in the impossible +1000 NPA, emails @example.test). The identical capture against prod would carry real tenants' names and balances and is not safe to attach anywhere, which is why the generator refuses to run against one.
The same frame as Leasing & tours and Maintenance: the tabs and the info i on one 48px row, the grid captioning its columns, full width. The Company column says the phones are set per property and shows the company's Talk to a person list read-only. Under the grid are the company's call routing cards.
Asserted in the captured DOM — Company · Property · Office phone · Emergency phone · Talk to a person · Set per property
The pick adds the building's column beside Company and focuses it. Company stays where it was; under the grid are the building's own cards, saving with the grid in one bar.
Asserted in the captured DOM — Company · Office phone · Talk to a person
Same columns; the header and the grid did not move. An edit in the building's box here saves to that building only, and only the edited field (pinned in the DOM test).
Asserted in the captured DOM — Company · Office phone
Below md each row stacks Company first, then the building, each captioned; the header row keeps its height.
Asserted in the captured DOM — Company · Office phone
Collections and Renewals follow onto the same page; the save bar is still hosted by the focused body until slice 3 makes it one.