v3.25.2
Revenue Recognition - Receivables, Contract Assets and Contract Liabilities (Details) - USD ($)
$ in Thousands
6 Months Ended
Jun. 30, 2025
Dec. 31, 2024
Revenue Recognition    
Contract Receivables $ 591,942 $ 433,562
Contract Assets (Current) 20,907 17,510
Contract Assets (Long-term) 8,231 9,742
Contract Liabilities (Current) 50,022 24,002
Contract Liabilities (Long-term) $ 10,879 $ 13,424
Contract liability balance    
Percentage of contract liability balance at the beginning of the period recognized as revenue during the period 30.00%  
Contract asset balance    
Percentage of contract asset balance at the beginning of the period recognized as expense 19.00%  
Percentage of contract asset balance at the beginning of the year expected to be recognized as expense during 2025 36.00%  
Percentage of contract asset balance at the beginning of the year expected to be recognized as expense during 2026 30.00%  
Percentage of contract asset balance at the beginning of the year expected to be recognized as expense during 2027 or later 34.00%  
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2025-01-01    
Contract liability balance    
Percentage of remaining performance obligation to be recognized 42.00%  
Recognition period for remaining performance obligation 12 months  
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2026-01-01    
Contract liability balance    
Percentage of remaining performance obligation to be recognized 17.00%  
Recognition period for remaining performance obligation 12 months  
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2027-01-01    
Contract liability balance    
Percentage of remaining performance obligation to be recognized 41.00%  
Recognition period for remaining performance obligation 12 months