Adoption of ASU 606 - Effects of the Adoption of ASU Topic 606 (Details) - USD ($)
$ in Thousands
Dec. 31, 2017
Dec. 31, 2016
Revenue, Initial Application Period Cumulative Effect Transition [Line Items]    
Receivables (unbilled) $ 121,601  
Costs incurred in excess of billings 12,751 $ 11,002
Billings in excess of costs 3,766 1,421
Impact to contract liabilities 0  
Retained earnings 117,415 $ 0
Accounting Standards Update 2014-09 | Pro forma    
Revenue, Initial Application Period Cumulative Effect Transition [Line Items]    
Receivables (unbilled) 132,058  
Costs incurred in excess of billings 0  
Billings in excess of costs 0  
Impact to contract liabilities 1,621  
Retained earnings 117,317  
Accounting Standards Update 2014-09 | Difference between Revenue Guidance in Effect before and after Topic 606 | Pro forma    
Revenue, Initial Application Period Cumulative Effect Transition [Line Items]    
Receivables (unbilled) 10,457  
Costs incurred in excess of billings (12,751)  
Billings in excess of costs (3,766)  
Impact to contract liabilities 1,621  
Retained earnings $ (98)