Revenue - Revenue by Contract Type (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 |
| Cost-plus and cost-reimbursable | |||
| Disaggregation of Revenue [Line Items] | |||
| Total revenue | 991,535 | 1,048,015 | 995,415 |
| Firm-fixed-price | |||
| Disaggregation of Revenue [Line Items] | |||
| Total revenue | $ 403,994 | $ 334,510 | $ 283,621 |