v3.26.1
Revenue Recognition - Schedule of Disaggregation of Revenue (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2026
Mar. 31, 2025
Disaggregation of Revenue [Line Items]    
Total revenues $ 345,759 $ 329,642
Contract Services    
Disaggregation of Revenue [Line Items]    
Total revenues 306,985 288,956
Other Services    
Disaggregation of Revenue [Line Items]    
Total revenues 38,774 40,686
Services provided over time    
Disaggregation of Revenue [Line Items]    
Total revenues 322,457 306,472
Services provided over time | Contract Services    
Disaggregation of Revenue [Line Items]    
Total revenues 306,985 288,956
Services provided over time | Other Services    
Disaggregation of Revenue [Line Items]    
Total revenues 15,472 17,516
Services provided or goods transferred at a point in time    
Disaggregation of Revenue [Line Items]    
Total revenues 23,302 23,170
Services provided or goods transferred at a point in time | Contract Services    
Disaggregation of Revenue [Line Items]    
Total revenues 0 0
Services provided or goods transferred at a point in time | Other Services    
Disaggregation of Revenue [Line Items]    
Total revenues $ 23,302 $ 23,170