- Add dynamic "Hardware max ≈ N fps" recommendation below FPS slider, computed from LED count (WLED: protocol timing) or baud rate (serial). Reuses shared _computeMaxFps from devices.js with named constants. - Fix gradient looking different across targets sharing the same stream: configure() now uses max LED count across all consumers; _fit_to_device uses np.interp linear interpolation instead of truncate/tile. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>