Contract Assets - Summary of Changes in Contract Assets (Details) - USD ($) $ in Thousands |
3 Months Ended | |
|---|---|---|
Mar. 31, 2026 |
Mar. 31, 2025 |
|
| Change in Contract with Customer, Asset and Liability [Abstract] | ||
| Balance at beginning of the period | $ 9,790 | $ 8,486 |
| Satisfaction of existing contracts | (18,705) | (16,323) |
| Additional revenue earned on new and existing contracts | 16,267 | 13,236 |
| Other, primarily changes in foreign currency exchange rates | (37) | 90 |
| Balance at end of the period | $ 7,315 | $ 5,489 |