v3.26.1
Revenue - Narrative (Details)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2026
USD ($)
Jun. 30, 2025
USD ($)
Jun. 30, 2026
USD ($)
performance_obligation
Jun. 30, 2025
USD ($)
Dec. 31, 2025
USD ($)
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]          
Number of revenue recognition performance obligations | performance_obligation     2    
Revenue recognition for software updates, period     5 years    
Variable consideration related to previously recognized sales $ 0 $ 0 $ 0 $ 0  
Refund asset 219   219   $ 298
Refund liability 247   247   326
Contract liability, current 367   367   662
Contract liability, non-current 388   388   $ 410
Contract liability, revenue recognized $ 133 $ 31 $ 280 $ 61  
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2026-07-01          
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]          
Revenue recognized over remaining contract term 5 years   5 years