v3.25.2
Revenue Recognition - Narrative (Details) - USD ($)
$ in Millions
6 Months Ended
Jun. 30, 2025
Dec. 31, 2024
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]    
Contract assets $ 1.8 $ 1.7
Revenue recognized previously unearned 1.2  
Remaining performance obligations $ 54.0  
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2025-07-01    
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]    
Percent of remaining performance obligation expected to be recognized (as a percent) 44.00%  
Revenue, remaining performance obligation, period (in months) 12 months  
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2026-07-01 | Minimum    
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]    
Revenue, remaining performance obligation, period (in months) 24 months  
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2026-07-01 | Maximum    
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]    
Revenue, remaining performance obligation, period (in months) 48 months