Contract Assets and Liabilities - Changes in Short-term and Long-term Contracts (Details) - USD ($) $ in Thousands |
6 Months Ended | |
|---|---|---|
Jun. 30, 2026 |
Dec. 31, 2025 |
|
| Contract Assets | ||
| Billings or revenue recognized that was included in the beginning balance | $ (15,316) | |
| Changes in contract assets or contract liabilities, net of reclassification to receivables | 11,341 | |
| Cumulative catch-up adjustment arising from changes in estimates to complete during the period | 1,405 | |
| Changes in costs to fulfill and amortization of commission costs | (215) | |
| Contract Liabilities | ||
| Contract Liability, Beginning balance | 31,021 | |
| Billings or revenue recognized that was included in the beginning balance | (2,023) | |
| Changes in contract assets or contract liabilities, net of reclassification to receivables | (5,688) | |
| Cumulative catch-up adjustment arising from changes in estimates to complete during the period | (244) | |
| Changes in contract commission costs | (66) | |
| Contract assets | 26,490 | $ 29,275 |
| Contract Liability, Ending balance | $ 23,000 |