v3.26.1
Net Income per Share - Reconciliation of Numerators and Denominators of Basic and Dilutive Net Income per Common Share Computations (Details) - USD ($)
$ / shares in Units, $ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2026
Mar. 31, 2026
Jun. 30, 2025
Mar. 31, 2025
Jun. 30, 2026
Jun. 30, 2025
Earnings Per Share, Basic, by Common Class, Including Two Class Method [Line Items]            
Net Income (Loss) $ 14,682 $ 7,315 $ 34,907 $ 25,682 $ 21,997 $ 60,589
Add: Interest expense, net of tax, attributable to assumed conversion of convertible senior notes 1,835   2,354   0 4,699
Net income, diluted $ 16,517   $ 37,261   $ 21,997 $ 65,288
Weighted average common shares outstanding, basic 34,579,980   33,912,669   34,482,634 33,817,664
Weighted average common shares outstanding, diluted 40,709,227   40,558,953   36,003,677 40,238,501
Net income per share, basic $ 0.42   $ 1.03   $ 0.64 $ 1.79
Net income per share, diluted $ 0.41   $ 0.92   $ 0.61 $ 1.62
Employee stock purchase plan [Member]            
Earnings Per Share, Basic, by Common Class, Including Two Class Method [Line Items]            
Effect of dilutive securities 10,533   15,280   8,265 7,682
Convertible senior notes [Member]            
Earnings Per Share, Basic, by Common Class, Including Two Class Method [Line Items]            
Effect of dilutive securities 4,893,805   4,893,805   0 4,893,805
Options to purchase common stock [Member]            
Earnings Per Share, Basic, by Common Class, Including Two Class Method [Line Items]            
Effect of dilutive securities 1,127,400   1,489,855   1,310,695 1,346,155
Restricted stock units [Member]            
Earnings Per Share, Basic, by Common Class, Including Two Class Method [Line Items]            
Effect of dilutive securities 97,012   246,718   201,577 172,880
Restricted stock awards [Member]            
Earnings Per Share, Basic, by Common Class, Including Two Class Method [Line Items]            
Effect of dilutive securities 497   626   506 315