1 Contacted tab — four minimalist layouts

All four carry the same changes: message previews at --fs-body (16px, up from 14px), 52px avatars in Conversations to match Invited, rating and location on every PRO, and no card plates — hairlines and whitespace only. In 1a1c the section titles are promoted from micro-caps to real 20px headings; 1d drops headings altogether. What differs is how the two groups relate.

Shown at 840px — the real right column at the page's 1560px max-width.

1aTwo named sections, one rhythm

Pending invitations

{{ invitedCount }}
{{ p.init }}
{{ p.name }}
{{ p.rating }}{{ p.reviews }} {{ p.loc }} {{ p.when }}
Revoke Send a reminder

Conversations

{{ convCount }}
{{ c.init }}
{{ c.name }} {{ c.kind }} {{ c.when }}
{{ c.rating }}{{ c.reviews }} {{ c.loc }}

{{ c.prefix }}{{ c.msg }}

Both groups share one row rhythm — same 52px avatar, same 18px name, same hairline. Section titles are real 20px headings with a count beside them, so the two groups read as sections rather than labels. Rating and location sit on the meta line under the name in both. Weakness: the two groups look so alike that the difference between "invited, silent" and "actively talking" rests entirely on the actions column.

1bUnread first, one list

Contacted

{{ mergedSummary }}
{{ r.init }}
{{ r.name }} {{ r.kind }} {{ r.tag }}

{{ r.prefix }}{{ r.msg }}

{{ r.rating }}{{ r.reviews }} {{ r.loc }} {{ r.when }}

One list, ordered by what needs you. Unread threads lead, then invitations awaiting a proposal, then settled conversations — the group becomes a small tag on the row rather than a heading, and rating / location / time stack in a right-hand column so the eye finds them at a fixed x. Fewest rules of the three. Weakness: without headings you lose the "Pending invitations" scent, and the tag has to carry all the state.

1cSticky group headers, message-first rows

Conversations

{{ unreadThreadLabel }}
{{ c.init }}

{{ c.prefix }}{{ c.msg }}

{{ c.name }} {{ c.kind }} {{ c.rating }} {{ c.loc }} {{ c.when }}

Pending invitations

{{ invitedCount }}
{{ p.init }}
{{ p.name }}
{{ p.rating }} {{ p.loc }} {{ p.when }}
Revoke Send a reminder

The message is the row; the PRO is its byline. Conversations lead, and each row opens with the message itself at 16px — unread in ink medium, read in muted regular — with name, rating, location and time as a single quiet meta line beneath, the way mail clients handle a thread you already know. Unread is a 9px dot at the right edge, no pill. Weakness: scanning for a specific PRO is slower, since the name is no longer the first thing on the row — and the read-state preview trades contrast to recede (--text-muted at 16px is ≈4.25:1, just under AA), so if 1c ships the read state should recede by weight alone.

1dOne list, no titles — invitations as message rows
{{ r.init }}
{{ r.name }} {{ r.kind }} Pending invitation
{{ r.rating }}{{ r.reviews }} {{ r.loc }}

{{ r.prefix }}{{ r.msg }}

Revoke Send a reminder
{{ r.when }}

One list, no headings — an invitation is just a thread that hasn't started. Every row uses the Conversations format: 52px avatar, 18px name, rating and location, then the message. A pending invitation carries a quiet Pending invitation chip and reads “Invited — waiting for acceptance” in muted type, with Revoke and Send a reminder on the right; live threads show the real message and no actions, since tapping the row opens it. Unread badges are gone entirely — recency ordering does that work. Weakness: with no headings you can't see at a glance how many invitations are outstanding, and an invitation row's surface is no longer safely clickable end-to-end the way a thread row's is, since Revoke and Send a reminder sit inside it.

My pick: 1a — the two groups genuinely differ in what you can do about them (chase vs reply), so they deserve headings rather than a tag, and one shared row rhythm keeps the tab easy to scan without inventing a second visual language. Take 1d if the tab should read as a single inbox — it drops both headings and treats an invitation as a thread that has not started, which is the least chrome of the four. Take 1b if the list will grow past ~12 PROs, where ordering by urgency beats grouping; 1c only if this tab is expected to behave like an inbox rather than a roster.