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 | | | | | | 816 |
Net income | | | | | | 25,014 |
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 | | | | |
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 | | | | |
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 | | | | | | $ (6,439) |
Common stock issued upon exercise of stock options (in shares) | | | | | | 363 |
Net income | | | | | | $ 14,630 |
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 | | | | |
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 | | | | |