v3.26.1
General - Schedule of Earnings (Loss) Per Share (Details) - USD ($)
$ / shares in Units, shares in Thousands, $ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2026
Jun. 30, 2025
Jun. 30, 2026
Jun. 30, 2025
Numerator:        
Net earnings (loss) $ 15,844 $ 7,321 $ 491 $ (9,495)
Denominator (in thousands):        
Denominator for basic EPS (in shares) 30,733 31,304 30,707 31,453
Effect of dilutive employee stock options (in shares) 212 47 146 0
Effect of restricted stock units (in shares) 104 80 98 0
Diluted weighted-average shares outstanding (in shares) 31,049 31,431 30,951 31,453
Weighted-average number of anti-dilutive shares excluded from denominator (in thousands):        
Antidilutive securities excluded from computation of earnings per share (in shares) 1,885 2,453 1,871 2,114
Employee stock options        
Weighted-average number of anti-dilutive shares excluded from denominator (in thousands):        
Antidilutive securities excluded from computation of earnings per share (in shares) 1,510 2,215 1,527 1,829
Restricted stock units        
Weighted-average number of anti-dilutive shares excluded from denominator (in thousands):        
Antidilutive securities excluded from computation of earnings per share (in shares) 0 0 0 72
Performance stock units        
Weighted-average number of anti-dilutive shares excluded from denominator (in thousands):        
Antidilutive securities excluded from computation of earnings per share (in shares) 375 238 344 213
Common Stock        
Net earnings (loss) per share - basic:        
Common stock (in dollars per share) $ 0.53 $ 0.24 $ 0.02 $ (0.31)
Net earnings (loss) per share - diluted:        
Common stock (in dollars per share) 0.51 0.23 0.02 (0.31)
Class B Common Stock        
Net earnings (loss) per share - basic:        
Common stock (in dollars per share) 0.48 0.22 0.02 (0.28)
Net earnings (loss) per share - diluted:        
Common stock (in dollars per share) $ 0.48 $ 0.22 $ 0.02 $ (0.28)