Revenue - Revenue by Contract Relationship (Details) - USD ($) $ in Thousands |
12 Months Ended | ||
|---|---|---|---|
Dec. 31, 2020 |
Dec. 31, 2019 |
Dec. 31, 2018 |
|
| Disaggregation of Revenue [Line Items] | |||
| Total revenue | $ 1,395,529 | $ 1,382,525 | $ 1,279,036 |
| Prime contractor | |||
| Disaggregation of Revenue [Line Items] | |||
| Total revenue | 1,324,628 | 1,312,928 | 1,200,726 |
| Subcontractor | |||
| Disaggregation of Revenue [Line Items] | |||
| Total revenue | $ 70,901 | $ 69,597 | $ 78,310 |