v3.26.1
Unaudited Condensed Consolidated Statements of Stockholders' Equity - USD ($)
shares in Thousands, $ in Thousands
Total
Common Stock
Additional Paid-in Capital
Accumulated Deficit
Cumulative Translation Adjustments
Beginning balance (in shares) at Dec. 31, 2024   77,330      
Beginning balance at Dec. 31, 2024 $ 46,094 $ 77 $ 227,931 $ (181,910) $ (4)
Increase (Decrease) in Stockholders' Equity [Roll Forward]          
Exercise of stock options (in shares)   2,024      
Exercise of stock options 6,866 $ 2 6,864    
Issuance of restricted stock (in shares)   232      
Share-based compensation 2,563   2,563    
Net income 8,672     8,672  
Ending balance (in shares) at Jun. 30, 2025   79,586      
Ending balance at Jun. 30, 2025 64,195 $ 79 237,358 (173,238) (4)
Beginning balance (in shares) at Mar. 31, 2025   78,433      
Beginning balance at Mar. 31, 2025 55,345 $ 78 232,119 (176,847) (5)
Increase (Decrease) in Stockholders' Equity [Roll Forward]          
Exercise of stock options (in shares)   1,150      
Exercise of stock options 3,752 $ 1 3,751    
Issuance of restricted stock (in shares)   3      
Share-based compensation 1,488   1,488    
Translation adjustment 1       1
Net income 3,609     3,609  
Ending balance (in shares) at Jun. 30, 2025   79,586      
Ending balance at Jun. 30, 2025 $ 64,195 $ 79 237,358 (173,238) (4)
Beginning balance (in shares) at Dec. 31, 2025 79,714 79,714      
Beginning balance at Dec. 31, 2025 $ 76,533 $ 79 240,991 (164,528) (9)
Increase (Decrease) in Stockholders' Equity [Roll Forward]          
Exercise of stock options (in shares)   171      
Exercise of stock options $ 317   317    
Issuance of restricted stock (in shares)   170      
Issuance of common stock from ESPP (in shares) 26 26      
Issuance of common stock from ESPP $ 72   72    
Share-based compensation 3,439   3,439    
Common stock repurchase (in shares)   (1,173)      
Common stock repurchase (5,121)   (5,121)    
Translation adjustment 7       7
Net income $ 7,281     7,281  
Ending balance (in shares) at Jun. 30, 2026 78,908 78,908      
Ending balance at Jun. 30, 2026 $ 82,528 $ 79 239,698 (157,247) (2)
Beginning balance (in shares) at Mar. 31, 2026   79,457      
Beginning balance at Mar. 31, 2026 82,330 $ 79 240,464 (158,210) (3)
Increase (Decrease) in Stockholders' Equity [Roll Forward]          
Exercise of stock options (in shares)   107      
Exercise of stock options 206   206    
Issuance of restricted stock (in shares)   1      
Issuance of common stock from ESPP (in shares)   26      
Issuance of common stock from ESPP 72   72    
Share-based compensation 1,723   1,723    
Common stock repurchase (in shares)   (683)      
Common stock repurchase (2,767)   (2,767)    
Translation adjustment 1       1
Net income $ 963     963  
Ending balance (in shares) at Jun. 30, 2026 78,908 78,908      
Ending balance at Jun. 30, 2026 $ 82,528 $ 79 $ 239,698 $ (157,247) $ (2)