Contract Assets - Summary of Changes in Contract Assets (Details) - USD ($) $ in Thousands |
3 Months Ended | 9 Months Ended | ||
|---|---|---|---|---|
Sep. 30, 2026 |
Sep. 30, 2025 |
Sep. 30, 2026 |
Sep. 30, 2025 |
|
| Change in Contract with Customer, Asset and Liability [Abstract] | ||||
| Balance at beginning of the period | $ 6,361 | $ 6,487 | $ 9,790 | $ 8,486 |
| Revenue earned on new and existing contracts | 14,248 | 15,148 | 40,868 | 46,602 |
| Satisfaction of existing contracts | (14,136) | (12,565) | (44,148) | (46,359) |
| Other, primarily changes in foreign currency exchange rates | (45) | (165) | (82) | 176 |
| Balance at end of the period | $ 6,428 | $ 8,905 | $ 6,428 | $ 8,905 |