Contracts in Progress - Additional Information (Details) - USD ($) $ in Millions |
Jun. 30, 2026 |
Dec. 31, 2025 |
|---|---|---|
| Location, Statement of Financial Position, Balance [Axis]: us-gaap:ContractWithCustomerAssetNetCurrent | ||
| Unbilled contract claims and change orders | ||
| Claims and unapproved change orders | $ 13.2 | $ 7.1 |