Revenue - Revenue by Contract Relationship (Details) - USD ($) $ in Thousands |
12 Months Ended | ||
|---|---|---|---|
Dec. 31, 2021 |
Dec. 31, 2020 |
Dec. 31, 2019 |
|
| Disaggregation of Revenue [Line Items] | |||
| Total revenue | $ 1,783,665 | $ 1,395,529 | $ 1,382,525 |
| Prime contractor | |||
| Disaggregation of Revenue [Line Items] | |||
| Total revenue | 1,663,828 | 1,324,628 | 1,312,928 |
| Subcontractor | |||
| Disaggregation of Revenue [Line Items] | |||
| Total revenue | $ 119,837 | $ 70,901 | $ 69,597 |