XML 67 R52.htm IDEA: XBRL DOCUMENT v3.22.4
Revenue - Narrative (Details) - USD ($)
12 Months Ended
Dec. 31, 2022
Dec. 31, 2021
Dec. 31, 2020
Revenue, Initial Application Period Cumulative Effect Transition [Line Items]      
Asset recognized related to incremental costs of obtaining a contract $ 0 $ 0  
Costs in excess of billings 41,732,000 54,437,000 $ 26,915,000
Unearned revenue 4,572,000 3,681,000 21,325,000
Revenue recognized which was in contract liabilities 44,400,000 53,000,000 57,800,000
Billings in excess of cost      
Revenue, Initial Application Period Cumulative Effect Transition [Line Items]      
Unearned revenue $ 35,017,000 $ 46,711,000 $ 34,702,000
Minimum      
Revenue, Initial Application Period Cumulative Effect Transition [Line Items]      
Contract payment terms 30 days    
Maximum      
Revenue, Initial Application Period Cumulative Effect Transition [Line Items]      
Contract payment terms 60 days    
Remaining performance obligation expected timing of satisfaction 1 year