- ContactsPage: drop whiteSpace:nowrap on the action cell; wrap the
Edit/History/Delete/⋮ buttons in a flex container with flex-wrap so they
reflow instead of forcing the table wider than the viewport; allow the
name/number/email cell to break long strings.
- index.css: td word-break:break-word + table max-width:100% as a guard.
- Sync the UI repo (ContactsPage/ContactHistory/MessagesPage implicit-any
annotations that unblock npm run build) into the frontend/ mirror.
- use flexbox space-between in .who
- name/number truncates with ellipsis
- menu pinned right with flex-shrink:0
- tighter button padding and dropdown gap
- ⋮ button beside contact name/number
- Call back uses tel: link with sanitised digits
- Lookup number opens Google search in new tab
- dropdown closes on outside click
- extract E.164 from angle brackets when present
- show 'Number: ...' at top of modal instead of readonly input
- use same sanitiseNumber() for message list callback links