v3.26.1
Net Income Per Share - Schedule of Reconciliation of the Numerators and the Denominators of the Basic and Dilutive Net Income per Common Share Computations (Details) - USD ($)
$ / shares in Units, shares in Thousands, $ 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
Numerator:            
Net income $ 17,050 $ 15,679 $ 13,779 $ 11,011 $ 32,729 $ 24,790
Effect of dilutive shares on net income            
Interest expense on convertible senior notes, net of tax 1,001   0   2,035 0
Net income - diluted $ 18,051   $ 13,779   $ 34,764 $ 24,790
Denominator:            
Weighted average basic common shares outstanding 22,858   22,614   22,830 22,592
Effect of dilutive securities:            
Total weighted average shares of common shares outstanding - diluted 24,531   22,892   24,505 22,896
Net income per share:            
Basic $ 0.75   $ 0.61   $ 1.43 $ 1.1
Diluted $ 0.74   $ 0.6   $ 1.42 $ 1.08
Employee Stock Option [Member]            
Effect of dilutive securities:            
Weighted average dilutive, adjustments 160   210   168 235
Restricted Stock Units (RSUs) [Member]            
Effect of dilutive securities:            
Weighted average dilutive, adjustments 34   40   30 39
Performance Shares [Member]            
Effect of dilutive securities:            
Weighted average dilutive, adjustments 36   28   34 30
Convertible Senior Notes [Member]            
Effect of dilutive shares on net income            
Interest expense on convertible senior notes, net of tax $ 1,000       $ 2,000  
Effect of dilutive securities:            
Weighted average dilutive, adjustments 1,443   0   1,443 0