XML 40 R30.htm IDEA: XBRL DOCUMENT v3.21.1
Revenue - Narrative (Details) - USD ($)
3 Months Ended
Mar. 31, 2021
Mar. 31, 2020
Revenue from Contract with Customer [Abstract]    
Percentage of revenues derived from services provided 90.00%  
Percentage of revenues derived from other sources 10.00%  
Net increase to revenue for adjustments to fixed price contracts $ 500,000 $ (100,000)
Remaining performance obligations 338,800,000  
Remaining performance obligation expected to be recognized in next 12 months, percentage 0.85  
Disaggregation of Revenue [Line Items]    
Remaining performance obligations 338,800,000  
Contract with Customer, Asset, Cumulative Catch-up Adjustment to Revenue, Change in Estimate of Transaction Price 500,000 (100,000)
Revenue recognized related to contract liabilities $ 4,400,000 $ 8,200,000
Minimum    
Disaggregation of Revenue [Line Items]    
Bill and collection period 60 days  
Maximum    
Disaggregation of Revenue [Line Items]    
Bill and collection period 120 days