v3.26.3
Revenue - Narrative (Details) - USD ($)
$ in Millions
9 Months Ended
Sep. 30, 2026
Sep. 30, 2025
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]    
Revenue recognized that was included in contract liability balance at the beginning of the year $ 7.6 $ 6.8
Revenue, practical expedient, incremental cost of obtaining a contract, maximum period 1 year  
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2026-10-01    
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]    
Revenue, remaining performance obligation, expected timing of satisfaction period 1 year