Condensed menu — default
primary
Reach: any authenticated page (shown here on Overview)
All groups closed — the typical-user landing state. Desktop: 5-item sidebar, top bar unchanged. Mobile: unchanged bottom tabs. (The 'Talk to an advisor' entry point replacing Power Ups is separate work, not in this branch.)
Spend group open
state
Reach: click 'Spend' in the sidebar (or land on a Spend child route)
Spend unfolds to Transactions / Spend Overview / Entities / My Budget / My Rules with the animated fold; every other group is closed (accordion).
Save group open
state
Reach: click 'Save' in the sidebar (or land on a Save child route)
Save unfolds to Subscriptions / Cashflow (BETA superscript preserved) / My Goals; opening Save folds the others closed.
Collapsed rail
state
Reach: click the « chevron below the logo
Sidebar collapsed to the icon-only 4rem rail (AuthLayout.tsx toggleSidebar): TinyLogo, labels hidden, hover tooltips with item names on EVERY row including sub-items, chevron flipped to ». Shown with Spend open: sub-items carry a 1px 30%-white guide line on the left so they read as children of the group above.
Net Worth notification/recommendation
state
Reach: data-driven: an active advice recommendation bucketed to Net Worth
Grow shown open: coral notification/recommendation count on the Net Worth child row AND rolled up onto the Grow group row (master badge), so it stays visible when the group folds closed. No advice category maps to Net Worth yet — illustrates the rule.
Mortgage notification/recommendation
state
Reach: data-driven: an active mortgage advice recommendation (adviceBadges.mortgage)
Grow shown open: coral notification/recommendation count on the Mortgage child row AND rolled up onto the Grow group row. Unlike Net Worth, Mortgage has a real badge mapping in prod today, so this mirrors live behaviour.
With pending actions (page context)
state
Reach: data-driven: user has pending actions (AI income, subscriptions to sort)
Page-context state, unrelated to the menu change: the Action Needed gradient card (default_visible: false in the region manifest) in its triggering state. Menu behaves identically.
New user (page context)
state
Reach: first-run: onboarding not yet completed/dismissed
Page-context state: the one-time Getting started card in its triggering state (typical prod user has dismissed it). Confirms the condensed menu reads fine for a brand-new user too.