v3.26.1
Net Income Per Share - Schedule of Basic and Diluted Net Income Per Share (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 $ 52,405 $ 50,643 $ 47,290 $ 47,534 $ 103,048 $ 94,824
Denominator:            
Basic weighted average shares (in shares) 34,989   36,253   35,297 36,359
Effect of potentially dilutive shares:            
Stock options (in shares) 20   172   30 191
Retired stock units (in shares) 21   94   23 99
Employee stock purchase plan (in shares) 0   0   3 2
Diluted weighted average shares (in shares) 35,030   36,519   35,353 36,651
Net income per share:            
Basic (in USD per share) $ 1.50   $ 1.30   $ 2.92 $ 2.61
Diluted (in USD per share) $ 1.50   $ 1.29   $ 2.91 $ 2.59