Revenue Recognition - Roll-Forward of Netted Contract Assets and Contract Liabilities (Details) - USD ($) $ in Thousands |
6 Months Ended | |
|---|---|---|
Jun. 30, 2026 |
Jun. 30, 2025 |
|
| Contract (Liabilities) Assets, Net | ||
| Balance at beginning of period | $ (16,067) | $ (6,076) |
| Revenues recognized that were included in gross contract liabilities | 23,826 | 15,082 |
| Contract assets reclassified to accounts receivable | (18,165) | (6,185) |
| Cash received in advance and remained in net contract liabilities | (481) | (508) |
| Contract terminations | 39 | 143 |
| Balance at end of period | $ (10,848) | $ 2,456 |