CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (UNAUDITED) - USD ($) shares in Thousands, $ in Thousands | Common Stock | Treasury Stock | Additional Paid-in Capital | Retained Earnings | Accumulated Other Comprehensive (Loss) Income Net of Income Taxes | Total |
Balance at Dec. 31, 2022 | $ 165 | $ (796) | $ 756,299 | $ 127,517 | $ (6,326) | $ 876,859 |
Balance (in shares) at Dec. 31, 2022 | 165,448 | 31 | | | | |
Foreign currency translation adjustment | | | | | 1,193 | 1,193 |
Shares repurchased for settlement of employee tax withholdings | | $ (787) | | | | (787) |
Shares repurchased for settlement of employee tax withholdings (in shares) | | 30 | | | | |
Stock-based compensation expense | | | 11,992 | | | 11,992 |
Common stock issued upon exercise of stock options | $ 1 | | 1,765 | | | 1,766 |
Common stock issued upon exercise of stock options (in shares) | 527 | | | | | |
Common stock issued upon vesting of restricted stock units (in shares) | 182 | | | | | |
Treasury stock reissued upon settlement of equity awards | | $ 914 | (914) | | | |
Treasury stock reissued upon settlement of equity awards (in shares) | | (35) | | | | |
Net income | | | | 12,175 | | 12,175 |
Balance at Mar. 31, 2023 | $ 166 | $ (669) | 769,142 | 139,692 | (5,133) | 903,198 |
Balance (in shares) at Mar. 31, 2023 | 166,157 | 26 | | | | |
Balance at Dec. 31, 2022 | $ 165 | $ (796) | 756,299 | 127,517 | (6,326) | 876,859 |
Balance (in shares) at Dec. 31, 2022 | 165,448 | 31 | | | | |
Foreign currency translation adjustment | | | | | | (5,601) |
Net income | | | | | | 38,361 |
Balance at Sep. 30, 2023 | $ 170 | $ (397) | 857,561 | 165,878 | (11,927) | 1,011,285 |
Balance (in shares) at Sep. 30, 2023 | 169,918 | 13 | | | | |
Balance at Mar. 31, 2023 | $ 166 | $ (669) | 769,142 | 139,692 | (5,133) | 903,198 |
Balance (in shares) at Mar. 31, 2023 | 166,157 | 26 | | | | |
Foreign currency translation adjustment | | | | | (377) | (377) |
Shares repurchased for settlement of employee tax withholdings | | $ (1,966) | | | | (1,966) |
Shares repurchased for settlement of employee tax withholdings (in shares) | | 57 | | | | |
Stock-based compensation expense | | | 15,399 | | | 15,399 |
Common stock issued upon exercise of stock options | $ 1 | | 3,990 | | | 3,991 |
Common stock issued upon exercise of stock options (in shares) | 711 | | | | | |
Common stock issued upon vesting of restricted stock units (in shares) | 333 | | | | | |
Treasury stock reissued upon settlement of equity awards | | $ 2,107 | (2,107) | | | |
Treasury stock reissued upon settlement of equity awards (in shares) | | (67) | | | | |
Common stock issued under employee purchase plan | | | 1,138 | | | 1,138 |
Common stock issued under employee purchase plan (in shares) | 49 | | | | | |
Net income | | | | 12,839 | | 12,839 |
Balance at Jun. 30, 2023 | $ 167 | $ (528) | 787,562 | 152,531 | (5,510) | 934,222 |
Balance (in shares) at Jun. 30, 2023 | 167,250 | 16 | | | | |
Foreign currency translation adjustment | | | | | (6,417) | (6,417) |
Shares repurchased for settlement of employee tax withholdings | | $ (945) | | | | (945) |
Shares repurchased for settlement of employee tax withholdings (in shares) | | 28 | | | | |
Issuance of common stock as consideration for acquisition | $ 2 | | 52,935 | | | 52,937 |
Issuance of common stock as consideration for acquisition (in shares) | 1,642 | | | | | |
Stock-based compensation expense | | | 16,088 | | | 16,088 |
Common stock issued upon exercise of stock options | $ 1 | | 2,052 | | | 2,053 |
Common stock issued upon exercise of stock options (in shares) | 653 | | | | | |
Common stock issued upon vesting of restricted stock units (in shares) | 373 | | | | | |
Treasury stock reissued upon settlement of equity awards | | $ 1,076 | (1,076) | | | |
Treasury stock reissued upon settlement of equity awards (in shares) | | (31) | | | | |
Net income | | | | 13,347 | | 13,347 |
Balance at Sep. 30, 2023 | $ 170 | $ (397) | 857,561 | 165,878 | (11,927) | 1,011,285 |
Balance (in shares) at Sep. 30, 2023 | 169,918 | 13 | | | | |
Balance at Dec. 31, 2023 | $ 171 | $ (743) | 878,331 | 198,983 | (2,803) | 1,073,939 |
Balance (in shares) at Dec. 31, 2023 | 171,168 | 22 | | | | |
Foreign currency translation adjustment | | | | | (4,625) | (4,625) |
Shares repurchased for settlement of employee tax withholdings | | $ (1,792) | | | | (1,792) |
Shares repurchased for settlement of employee tax withholdings (in shares) | | 48 | | | | |
Stock-based compensation expense | | | 20,718 | | | 20,718 |
Common stock issued upon exercise of stock options | | | 1,695 | | | 1,695 |
Common stock issued upon exercise of stock options (in shares) | 153 | | | | | |
Common stock issued upon vesting of restricted stock units | $ 1 | | (1) | | | |
Common stock issued upon vesting of restricted stock units (in shares) | 435 | | | | | |
Treasury stock reissued upon settlement of equity awards | | $ 1,389 | (1,389) | | | |
Treasury stock reissued upon settlement of equity awards (in shares) | | (38) | | | | |
Net income | | | | 7,156 | | 7,156 |
Balance at Mar. 31, 2024 | $ 172 | $ (1,146) | 899,354 | 206,139 | (7,428) | 1,097,091 |
Balance (in shares) at Mar. 31, 2024 | 171,756 | 32 | | | | |
Balance at Dec. 31, 2023 | $ 171 | $ (743) | 878,331 | 198,983 | (2,803) | 1,073,939 |
Balance (in shares) at Dec. 31, 2023 | 171,168 | 22 | | | | |
Foreign currency translation adjustment | | | | | | $ 2,640 |
Common stock issued upon exercise of stock options (in shares) | | | | | | 432 |
Net income | | | | | | $ 32,831 |
Balance at Sep. 30, 2024 | $ 173 | $ (50,700) | 949,456 | 231,814 | (163) | 1,130,580 |
Balance (in shares) at Sep. 30, 2024 | 173,288 | 2,657 | | | | |
Balance at Mar. 31, 2024 | $ 172 | $ (1,146) | 899,354 | 206,139 | (7,428) | 1,097,091 |
Balance (in shares) at Mar. 31, 2024 | 171,756 | 32 | | | | |
Foreign currency translation adjustment | | | | | (1,814) | (1,814) |
Shares repurchased for settlement of employee tax withholdings | | $ (660) | | | | (660) |
Shares repurchased for settlement of employee tax withholdings (in shares) | | 30 | | | | |
Stock-based compensation expense | | | 25,315 | | | 25,315 |
Common stock issued upon exercise of stock options | | | 870 | | | 870 |
Common stock issued upon exercise of stock options (in shares) | 126 | | | | | |
Common stock issued upon vesting of restricted stock units | $ 1 | | (1) | | | |
Common stock issued upon vesting of restricted stock units (in shares) | 628 | | | | | |
Shares repurchased under the Repurchase Program | | $ (25,027) | | | | (25,027) |
Share repurchase program, shares repurchased | | 1,369 | | | | |
Treasury stock reissued upon settlement of equity awards | | $ 1,390 | (1,390) | | | |
Treasury stock reissued upon settlement of equity awards (in shares) | | (41) | | | | |
Common stock issued under employee purchase plan | | | 1,914 | | | 1,914 |
Common stock issued under employee purchase plan (in shares) | 124 | | | | | |
Net income | | | | 7,474 | | 7,474 |
Balance at Jun. 30, 2024 | $ 173 | $ (25,443) | 926,062 | 213,613 | (9,242) | 1,105,163 |
Balance (in shares) at Jun. 30, 2024 | 172,634 | 1,390 | | | | |
Foreign currency translation adjustment | | | | | 9,079 | 9,079 |
Shares repurchased for settlement of employee tax withholdings | | $ (636) | | | | (636) |
Shares repurchased for settlement of employee tax withholdings (in shares) | | 34 | | | | |
Stock-based compensation expense | | | 23,474 | | | 23,474 |
Common stock issued upon exercise of stock options | | | 324 | | | 324 |
Common stock issued upon exercise of stock options (in shares) | 53 | | | | | |
Common stock issued upon vesting of restricted stock units (in shares) | 601 | | | | | |
Shares repurchased under the Repurchase Program | | $ (25,025) | | | | (25,025) |
Share repurchase program, shares repurchased | | 1,254 | | | | |
Treasury stock reissued upon settlement of equity awards | | $ 404 | (404) | | | |
Treasury stock reissued upon settlement of equity awards (in shares) | | (21) | | | | |
Net income | | | | 18,201 | | 18,201 |
Balance at Sep. 30, 2024 | $ 173 | $ (50,700) | $ 949,456 | $ 231,814 | $ (163) | $ 1,130,580 |
Balance (in shares) at Sep. 30, 2024 | 173,288 | 2,657 | | | | |