The checked-state dot used bg-primary-foreground behind an unfilled,
stroke-only CircleIcon (fill="none" by default) -- relying on the
stroke and background happening to share the same color to look like
a solid dot. That's fragile and, combined with a size-2 box (50% of
the outer ring), reads as an oversized hole rather than a normal radio
dot. Fill the icon's own path directly (fill-primary-foreground) and
size it down to a more typical proportion (size-1.5, ~40% of the
ring). Verified centered and correctly proportioned in both themes via
headless Chromium (pixel-precise marker overlay + zoomed screenshots).