v3.26.3
Consolidated Statements of Shareholders' Equity - USD ($)
$ in Thousands
Total
Common Stock
Additional Paid-In Capital
Retained Earnings
Accumulated Other Comprehensive Loss
Beginning balance (in shares) at Dec. 31, 2024   24,226,088      
Balance at beginning of period at Dec. 31, 2024 $ 670,151 $ 24 $ 453,705 $ 244,406 $ (27,984)
Increase (Decrease) in Stockholders' Equity [Roll Forward]          
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (in shares)   58,291      
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (961)   (961)    
Stock-based compensation expense 3,992   3,992    
Repurchases of common stock and other (in shares)   (513,739)      
Repurchases of common stock and other (21,073) $ (1) (9,621) (11,451)  
Net income 3,599     3,599  
Other comprehensive income          
Foreign currency translation adjustment 1,003       1,003
Net unrealized (loss) gains on investments in securities 90       90
Comprehensive income 4,692        
Ending balance (in shares) at Mar. 31, 2025   23,770,640      
Balance at end of period at Mar. 31, 2025 656,801 $ 23 447,115 236,554 (26,891)
Beginning balance (in shares) at Dec. 31, 2024   24,226,088      
Balance at beginning of period at Dec. 31, 2024 670,151 $ 24 453,705 244,406 (27,984)
Increase (Decrease) in Stockholders' Equity [Roll Forward]          
Net income 15,242        
Other comprehensive income          
Comprehensive income 18,502        
Ending balance (in shares) at Sep. 30, 2025   23,677,746      
Balance at end of period at Sep. 30, 2025 664,719 $ 23 450,852 238,568 (24,724)
Beginning balance (in shares) at Mar. 31, 2025   23,770,640      
Balance at beginning of period at Mar. 31, 2025 656,801 $ 23 447,115 236,554 (26,891)
Increase (Decrease) in Stockholders' Equity [Roll Forward]          
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (in shares)   179,393      
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (58)   (58)    
Stock-based compensation expense 4,259   4,259    
Repurchases of common stock and other (in shares)   (75,432)      
Repurchases of common stock and other (3,050)   (1,413) (1,637)  
Net income 4,427     4,427  
Other comprehensive income          
Foreign currency translation adjustment 2,300       2,300
Net unrealized (loss) gains on investments in securities 28       28
Comprehensive income 6,755        
Ending balance (in shares) at Jun. 30, 2025   23,874,601      
Balance at end of period at Jun. 30, 2025 664,707 $ 23 449,903 239,344 (24,563)
Increase (Decrease) in Stockholders' Equity [Roll Forward]          
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (in shares)   61,599      
Common shares issued on exercise of options and other, net of shares withheld for tax obligations 2,112   2,112    
Stock-based compensation expense 3,677   3,677    
Repurchases of common stock and other (in shares)   (258,454)      
Repurchases of common stock and other (12,832)   (4,840) (7,992)  
Net income 7,216     7,216  
Other comprehensive income          
Foreign currency translation adjustment (227)       (227)
Net unrealized (loss) gains on investments in securities 66       66
Comprehensive income 7,055        
Ending balance (in shares) at Sep. 30, 2025   23,677,746      
Balance at end of period at Sep. 30, 2025 $ 664,719 $ 23 450,852 238,568 (24,724)
Beginning balance (in shares) at Dec. 31, 2025 23,627,422 23,627,422      
Balance at beginning of period at Dec. 31, 2025 $ 673,932 $ 24 454,120 240,764 (20,976)
Increase (Decrease) in Stockholders' Equity [Roll Forward]          
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (in shares)   165,066      
Common shares issued on exercise of options and other, net of shares withheld for tax obligations 375   375    
Stock-based compensation expense 3,219   3,219    
Net income 8,111     8,111  
Other comprehensive income          
Foreign currency translation adjustment (2,382)       (2,382)
Net unrealized (loss) gains on investments in securities (129)       (129)
Comprehensive income 5,600        
Ending balance (in shares) at Mar. 31, 2026   23,792,488      
Balance at end of period at Mar. 31, 2026 $ 683,126 $ 24 457,714 248,875 (23,487)
Beginning balance (in shares) at Dec. 31, 2025 23,627,422 23,627,422      
Balance at beginning of period at Dec. 31, 2025 $ 673,932 $ 24 454,120 240,764 (20,976)
Increase (Decrease) in Stockholders' Equity [Roll Forward]          
Net income 29,025        
Other comprehensive income          
Comprehensive income $ 26,065        
Ending balance (in shares) at Sep. 30, 2026 23,871,875 23,871,875      
Balance at end of period at Sep. 30, 2026 $ 701,804 $ 24 463,464 262,252 (23,936)
Beginning balance (in shares) at Mar. 31, 2026   23,792,488      
Balance at beginning of period at Mar. 31, 2026 683,126 $ 24 457,714 248,875 (23,487)
Increase (Decrease) in Stockholders' Equity [Roll Forward]          
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (in shares)   197,962      
Common shares issued on exercise of options and other, net of shares withheld for tax obligations 204   204    
Stock-based compensation expense 4,088   4,088    
Repurchases of common stock and other (in shares)   (68,553)      
Repurchases of common stock and other (5,036)   (1,335) (3,701)  
Net income 9,152     9,152  
Other comprehensive income          
Foreign currency translation adjustment 289       289
Net unrealized (loss) gains on investments in securities (90)       (90)
Comprehensive income 9,351        
Ending balance (in shares) at Jun. 30, 2026   23,921,897      
Balance at end of period at Jun. 30, 2026 691,733 $ 24 460,671 254,326 (23,288)
Increase (Decrease) in Stockholders' Equity [Roll Forward]          
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (in shares)   10,639      
Common shares issued on exercise of options and other, net of shares withheld for tax obligations 608   608    
Stock-based compensation expense 3,351   3,351    
Repurchases of common stock and other (in shares)   (60,661)      
Repurchases of common stock and other (5,002)   (1,166) (3,836)  
Net income 11,762     11,762  
Other comprehensive income          
Foreign currency translation adjustment (434)       (434)
Net unrealized (loss) gains on investments in securities (214)       (214)
Comprehensive income $ 11,114        
Ending balance (in shares) at Sep. 30, 2026 23,871,875 23,871,875      
Balance at end of period at Sep. 30, 2026 $ 701,804 $ 24 $ 463,464 $ 262,252 $ (23,936)