Root cause: rowBase was much narrower than the other rows. When we did
Width(dispW).Align(Center).Render(rawGrid) the vertical join produced
a non-rectangular block, so the panel's bottom border was drawn around
the centered narrow line (chopped + shifted under BASE) and the bg 234
had large empty side regions on the bottom row.
Fix:
- Compute fullRowWidth from a complete row.
- Render the BASE key centered inside a string of that exact width.
- Now rawGrid is a true rectangle (all 5 rows same width).
- Render the backing panel *tightly* to rawGrid first (no forced width).
- Then center the resulting compact panel under the display with
Width(dispW).Align(Center).
Result:
- Clean, straight bottom border under the BASE button.
- The black keypad background now exactly matches the bounding box
of the actual keys (including the centered BASE row).
- No more dangling empty black space on the sides at the bottom.
The rest of the tactile key styles, per-key pressed flash, and wide
integrated display row are unchanged.