Map ArgumentException from datePreset=custom without dates to BadRequest so the endpoint matches the Phase 4 contract.