v3.26.1
Net Income Per Share - Anti-dilutive Net Income Per Share (Details) - shares
shares in Thousands
3 Months Ended
Mar. 31, 2026
Mar. 31, 2025
Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]    
Total anti-dilutive shares (in shares) 1,633 1,034
Stock options    
Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]    
Total anti-dilutive shares (in shares) 1,021 813
Restricted stock units    
Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]    
Total anti-dilutive shares (in shares) 612 220
Employee stock purchase plan    
Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]    
Total anti-dilutive shares (in shares) 0 1