Revenue Recognition - Roll-Forward of Contract Liabilities, Net (Details) - USD ($) $ in Thousands |
9 Months Ended | |
|---|---|---|
Sep. 30, 2026 |
Sep. 30, 2025 |
|
| Contract Liabilities, Net | ||
| Balance at beginning of period | $ (16,067) | $ (6,076) |
| Revenues recognized that were included in gross contract liabilities | 35,657 | 21,332 |
| Contract assets reclassified to accounts receivable | (31,481) | (13,195) |
| Cash received in advance and remained in net contract liabilities | (772) | (15,848) |
| Contract terminations | (173) | 215 |
| Balance at end of period | $ (12,836) | $ (13,572) |