The radar circle is a square, so it is limited by the shorter side of
the card it is drawn in: the small-window layout gave the radar card a
height of ~156dp in a 411x450 window, which shrank the circle to ~36% of
the page width while the full-screen layout shows ~84%.
- measure the real window with BoxWithConstraints instead of trusting the
window size class, which can still report the full screen while the app
runs in a split/floating window
- when the classic 1:1 split would give the radar less than 75% of the
page width, use a fill layout: the radar takes the largest square that
fits, a usable pager block is reserved under it while that keeps the
circle at its full-screen share, otherwise the pager collapses into a
48dp translucent tab strip with a tappable panel
- keep the normal two-row top area in the vertical layout: TimerRow and
NextPassRow both carry weight(1f) internally, so putting them in a
single row splits that row into two 50% blocks
- extract the geometry into pure Dp functions (useFillRadarLayout,
radarFillSizes) covered by unit tests
- Fix cubic Bezier control points (proper Catmull-Rom to Bezier conversion)
- Refine AOS/LOS more robustly by walking from edge into the pass window
- Still 5s sampling for smooth curves