This is the screen you sent, read against AccountHubScreen at screen_account.jsx:459–559 and the persistent top bar at app.jsx:424–446. It is a good screen — the grouping is right, the rows are the right rows, the meta text is doing real work. The problem is that six things on it are stated twice, and three of those pairs link to the byte-identical route.
None of it is sloppy in isolation. The identity row wants to be a profile, the strip wants to be an inbox, and the groups want to be a directory — and each of the three independently decided that Following, Orders and verification were important enough to carry. Put them on one screen and you get the same number twice, 300px apart, with the same chevron next to it. Fourteen rows and a three-up strip become twelve rows and a two-up strip, and nothing is lost, because nothing that gets deleted was the only route to anything.
push('selling',{tab:'sold'}) with the same badge.Identicalc.verify.label, twice.Identicalapp.jsx:432 draws a 28px avatar and rings it in ink because isAccountScreen (:433). Sixty pixels below, :488 draws the same person at 46px. The ring has already said which tab you are on.app.jsx:436 puts a red dot on that avatar when notifUnread > 0. screen_account.jsx:467 reads the same variable and prints 6 on the strip below. On this screen the dot adds nothing the badge does not already say more precisely.:492 and hub row :525. Same integer, same noun, and both call push('following', {tab:'following'}) — the identical route with the identical tab.:475 pushes selling {tab:'sold'} — byte for byte what the Orders row at :536 does, with the same c.awaiting badge. For a buyer it pushes purchases, which is the Purchases row at :521, with the same c.purchasesInTransit. Every persona, a duplicate.:497 and the Verification row at :539 both render c.verify.label and both push verify. One is an alert, one is a directory entry, and they are the same sentence.HubRow:448 renders a red pill or the meta text, never both. So Active listings shows 5 as grey text while Orders shows 1 as a red pill four rows apart — and Orders loses its words the moment there is work to do. var(--down) is the destructive colour in this system. An order waiting to be posted is work, not a fault.:482 at 22px and :545 at 11px, four hundred pixels apart. The rows under it are Personal details, Shipping addresses and Security & login.var(--shadow-1), matching the back button in AccHeader — one round-control treatment in the account area instead of two.HubRow keeps meta and loses count. 5 active, 1 to dispatch, 2 pending — each says what it counts, so the right-hand column reads as one kind of thing all the way down. Red badges survive only in the strip, where an unread count genuinely is an inbox badge.prompt-account-bars.md and it is unchanged.:529), no Verification row, no Following row: seven rows, a two-up strip and the pitch card at :553. Every rule above is persona-independent, so nothing needs a second code path.