XML 79 R45.htm IDEA: XBRL DOCUMENT v3.24.3
Revenue from Customers - Narrative (Details) - USD ($)
$ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2024
Sep. 30, 2023
Sep. 30, 2024
Sep. 30, 2023
Dec. 31, 2023
Disaggregation of Revenue [Line Items]          
Contracts receivable unpaid project contract price $ 5,000   $ 5,000   $ 5,225
Revenue from performance obligations satisfied in previous period $ 46,890 $ 19,822 $ 99,241 $ 36,557  
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2024-10-01          
Disaggregation of Revenue [Line Items]          
Remaining performance obligation expected to be recognized over next twelve months 60.00%   60.00%    
Remaining performance obligation period 12 months   12 months