The heading sat on the right edge of the column and every value on the left.
A specificity collision, not a layout problem: the two were aligned by
different selectors and only one of them won.
.table td (0,1,1) text-align: left <- won for the value
.num (0,1,0) text-align: right <- lost
.table th:last-child (0,2,1) text-align: right <- won for the heading
The heading and the value cell now share one class and one rule, so they
cannot drift apart again whatever else changes around them.
The column also stretched to half the table. It now hugs its content with
width:1% and nowrap, so the school name takes the remaining width — which is
what made the gap read as misalignment on a wide screen, and what crowded the
name column on a narrow one.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015mWQnpye9F299NVRCCSRvj