v3.26.1
Revenue Recognition - Other (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2026
Dec. 31, 2025
Contract Liabilities    
Deferred revenue $ 37,276 $ 38,307
Uncompleted Performance Obligations    
Amount remaining on uncompleted performance obligations $ 600,700  
Expected timing of satisfaction of performance obligations over the next 18 months  
Receivables, net    
Contract Assets    
Receivables, unbilled $ 91,125 73,968
Uncompleted Performance Obligations    
Retainage receivables 78,800 81,600
Accrued liabilities    
Contract Liabilities    
Deferred revenue $ 37,276 $ 38,307