v3.26.1
Revenue Recognition - Narrative (Details) - USD ($)
3 Months Ended 6 Months Ended
Jun. 30, 2026
Jun. 30, 2025
Jun. 30, 2026
Jun. 30, 2025
New Accounting Pronouncements or Change in Accounting Principle [Line Items]        
Contract liability revenue recognized $ 1,800,000   $ 19,100,000  
Impairment losses on contract assets 0 $ 0 0 $ 0
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2026-07-01        
New Accounting Pronouncements or Change in Accounting Principle [Line Items]        
Transaction price allocated to uncompleted contracts $ 170,800,000   $ 170,800,000  
Expected timing of satisfaction, period 18 months   18 months