Contract Assets and Liabilities - Narrative (Details) - USD ($) $ in Thousands |
3 Months Ended | 9 Months Ended | |||
|---|---|---|---|---|---|
Sep. 30, 2026 |
Sep. 30, 2025 |
Sep. 30, 2026 |
Sep. 30, 2025 |
Dec. 31, 2025 |
|
| Product Information [Line Items] | |||||
| Claim recovery estimates | $ 19,000 | $ 19,000 | $ 19,400 | ||
| Contract retention | 177,989 | 177,989 | $ 163,800 | ||
| Revenue recognized | 26,000 | $ 28,500 | 354,800 | $ 341,400 | |
| Performance Obligations | |||||
| Product Information [Line Items] | |||||
| Revenue adjustment | $ 71,300 | $ 47,300 | $ 219,800 | $ 165,600 | |