Revenue Recognition - Narrative (Details) - USD ($) $ in Millions |
3 Months Ended | 6 Months Ended | |||
|---|---|---|---|---|---|
Jun. 30, 2026 |
Jun. 30, 2025 |
Jun. 30, 2026 |
Jun. 30, 2025 |
Dec. 31, 2025 |
|
| Revenue Recognition | |||||
| Amount of revenue recognized | $ 14.3 | $ 5.6 | $ 22.2 | $ 11.2 | |
| Remaining performance obligations | $ 85.8 | $ 85.8 | $ 99.6 | ||
| Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2026-07-01 | |||||
| Revenue Recognition | |||||
| Percentage of remaining performance obligations as revenue | 60.00% | 60.00% | |||
| Performance obligation period (in months) | 12 months | 12 months | |||
| Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2027-07-01 | |||||
| Revenue Recognition | |||||
| Percentage of remaining performance obligations as revenue | 40.00% | 40.00% | |||
| Performance obligation period (in months) | |||||
| Minimum | |||||
| Revenue Recognition | |||||
| Payment terms (in days) | 30 days | ||||
| Maximum | |||||
| Revenue Recognition | |||||
| Payment terms (in days) | 90 days | ||||