Run and bike efficiency charts include full history, which overcrowds x-axis labels and makes recent-year points hard to see. Limit EF chart series to a recent window (180 days) anchored to latest training activity date, and update chart headings/messages to reflect the window.
Added a 3m/6m/all EF window toggle on /health/training and wired it to both bike and run EF charts. Implemented client-side windowing in efChartScript so points + 7-session rolling mean recompute per selected window. Added matching styles in Omni/Health/Style.hs (.ef-window-toggle, .ef-window-btn, active state). Validation: typecheck.sh Omni/Health/Style.hs passes. typecheck.sh Omni/Health/Web.hs still blocked by pre-existing Omni/Health/Intervals.hs ambiguous Data.ByteString.Base64 import (tracked separately as t-782).
Implemented in Omni/Health/Web.hs: run/bike EF charts now use a 180-day window anchored to latest training activity. Updated chart headers and empty-state copy to show the window. typecheck.sh Omni/Health/Web.hs currently fails in Omni/Health/Intervals.hs due pre-existing ambiguous import of Data.ByteString.Base64 (base64 vs base64-bytestring), unrelated to this change.