data_table: Update horizontal row separators to end at the last column (#63367)

## Problem

Row border lived on the outer row div, which always spans full width —
so on `Resizable`-width tables the separator ran past the last column
into empty space.

##  Solution

Moved border into a `render_section` wrapper around just the cells; that
wrapper hugs cell width (`flex_shrink_0`) only when all columns are
absolute-width, else stays `size_full()` so percentage/flex columns
still resolve correctly.

Also extracted the pinned/scrollable cell-mapping logic into
`render_section` to dedupe.

## Testing

- `cargo check -p ui`, `./script/clippy` clean.
- Verified visually: resizable, percentage, and pinned-column tables —
border stops at last column.

Before:
<img width="742" height="400" alt="image"
src="https://github.com/user-attachments/assets/6ee19825-868e-436d-be86-3503a0686d5e"
/>


After:
<img width="756" height="439" alt="image"
src="https://github.com/user-attachments/assets/e30a2b9a-2d06-44c4-8d46-46c391ebb0e6"
/>

Note, other table modes are unaffected (keymap editor as example)
<img width="790" height="691" alt="image"
src="https://github.com/user-attachments/assets/8bd4f68d-4905-408f-b35b-47585a1076b8"
/>


## Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [x] UI standards followed
- [ ] Tests cover the new/changed behavior
- [x] Performance impact considered, acceptable

Release Notes:

- UI: Fixed row separator lines in the data table extending past the
last column
2c4bc2d7b2Oleksandr Kholiavko committed on 9/24/2026, 3:15:42 PM· committed by GitHubparentd528c66
1 file changedLine totals unavailable