v3.26.3
Net Income (Loss) Per Common Share - Schedule of Net Income (Loss) Per Common Share (Details) - USD ($)
$ / shares in Units, shares in Thousands, $ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2026
Jun. 30, 2026
Mar. 31, 2026
Sep. 30, 2025
Jun. 30, 2025
Mar. 31, 2025
Sep. 30, 2026
Sep. 30, 2025
Net Income (Loss) Attributable to Parent [Abstract]                
Net income (loss) $ 14,161 $ 2,206 $ (6,302) $ 5,074 $ (553) $ (11,246) $ 10,065 $ (6,725)
Basic weighted-average common shares outstanding (in shares) 51,186     50,489     51,013 50,256
Effect of dilutive stock options and restricted stock units (in shares) 1,776     1,419     1,446 0
Diluted weighted-average common shares outstanding (in shares) 52,962     51,908     52,459 50,256
Basic income (loss) per common share (in USD per share) $ 0.28     $ 0.10     $ 0.20 $ (0.13)
Diluted income (loss) per common share (in USD per share) $ 0.27     $ 0.10     $ 0.19 $ (0.13)
Stock options                
Anti-dilutive shares excluded from diluted net income (loss) per common share:                
Anti-dilutive shares excluded from diluted net income (loss) per common share (in shares) 2,883     2,996     3,070 5,586
Restricted stock units                
Anti-dilutive shares excluded from diluted net income (loss) per common share:                
Anti-dilutive shares excluded from diluted net income (loss) per common share (in shares) 3     1,185     10 1,185