fix(web): refuse proportional faces in the terminal grid

A proportional family draws each glyph on its own advance while the cursor
and selection sit on the grid's single cell width, so the text drifts left
of its cells and the cursor strands to the right - the ragged gaps and
misplaced cursor seen with Helvetica Neue.

The renderer now measures the requested family and falls back to the default
when it is not monospace, so a value stored before the picker was restricted
cannot leave the terminal in that state. Unmeasurable environments and
absent faces are treated as monospace, leaving the normal fallback chain in
charge.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2977bae3baWout Stiens committed on 8/1/2026, 7:58:50 AMparented70fa4
3 files changedLine totals unavailable