v3.25.2
Contract Assets and Liabilities - Summary of Contract Assets and Liabilities (Details) - USD ($)
$ in Thousands
Jun. 30, 2025
Dec. 31, 2024
Jan. 01, 2024
Contract with Customer, Asset, after Allowance for Credit Loss, Current [Abstract]      
Costs and estimated earnings in excess of billings on uncompleted contracts $ 91,262 $ 69,889 $ 66,600
Billings in excess of costs and estimated earnings on uncompleted contracts $ 93,045 $ 81,501 $ 56,900