UNAUDITED CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY - USD ($) $ in Thousands | Total | Cumulative Effect, Period of Adoption, Adjustment | Common Stock | Additional Paid-In Capital | Common Shares Held in Treasury | Accumulated Deficit | Accumulated Deficit Cumulative Effect, Period of Adoption, Adjustment | Accumulated Other Comprehensive Income (Loss) |
Beginning balance (in shares) at Dec. 31, 2021 | | | 95,746,975 | | | | | |
Beginning balance at Dec. 31, 2021 | $ 709,624 | $ (198) | $ 68 | $ 916,578 | $ (897) | $ (206,218) | $ (198) | $ 93 |
Beginning balance (in shares) at Dec. 31, 2021 | | | | | 107,820 | | | |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | | | |
Issuance of common stock (in shares) | | | 1,112 | | | | | |
Common stock issued for exercise of employee stock options (in shares) | | | 8,486 | | | | | |
Common stock issued for exercise of employee stock options | 80 | | | 80 | | | | |
Issuance of restricted shares, net of forfeitures (in shares) | | | 533,095 | | | | | |
Issuance of restricted shares, net of forfeitures | 0 | | $ 5 | (5) | | | | |
Stock-based compensation | 5,108 | | | 5,108 | | | | |
Net income | 6,236 | | | | | 6,236 | | |
Foreign currency translation adjustment, net of tax | | | | (8) | | | | 283 |
Foreign currency translation adjustment, net of tax | 275 | | | | | | | |
Ending Balance (in shares) at Mar. 31, 2022 | | | 96,289,668 | | | | | |
Ending Balance at Mar. 31, 2022 | 721,125 | | $ 73 | 921,753 | $ (897) | (200,180) | | 376 |
Ending balance (in shares) at Mar. 31, 2022 | | | | | 107,820 | | | |
Beginning balance (in shares) at Dec. 31, 2021 | | | 95,746,975 | | | | | |
Beginning balance at Dec. 31, 2021 | 709,624 | $ (198) | $ 68 | 916,578 | $ (897) | (206,218) | $ (198) | 93 |
Beginning balance (in shares) at Dec. 31, 2021 | | | | | 107,820 | | | |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | | | |
Net income | 27,110 | | | | | | | |
Unrealized gain (loss) on hedged transactions, net of tax | 0 | | | | | | | |
Foreign currency translation adjustment, net of tax | (7,990) | | | | | | | |
Ending Balance (in shares) at Sep. 30, 2022 | | | 96,548,066 | | | | | |
Ending Balance at Sep. 30, 2022 | 748,214 | | $ 75 | 936,239 | $ (897) | (179,306) | | (7,897) |
Ending balance (in shares) at Sep. 30, 2022 | | | | | 107,820 | | | |
Beginning balance (in shares) at Mar. 31, 2022 | | | 96,289,668 | | | | | |
Beginning balance at Mar. 31, 2022 | 721,125 | | $ 73 | 921,753 | $ (897) | (200,180) | | 376 |
Beginning balance (in shares) at Mar. 31, 2022 | | | | | 107,820 | | | |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | | | |
Issuance of common stock (in shares) | | | 1,812 | | | | | |
Common stock issued for exercise of employee stock options (in shares) | | | 76,399 | | | | | |
Common stock issued for exercise of employee stock options | 734 | | | 734 | | | | |
Issuance of restricted shares, net of forfeitures (in shares) | | | 42,388 | | | | | |
Stock-based compensation | 6,023 | | | 6,023 | | | | |
Net income | 11,571 | | | | | 11,571 | | |
Foreign currency translation adjustment, net of tax | | | | (24) | | | | (3,483) |
Foreign currency translation adjustment, net of tax | (3,507) | | | | | | | |
Ending Balance (in shares) at Jun. 30, 2022 | | | 96,410,267 | | | | | |
Ending Balance at Jun. 30, 2022 | 735,946 | | $ 73 | 928,486 | $ (897) | (188,609) | | (3,107) |
Ending balance (in shares) at Jun. 30, 2022 | | | | | 107,820 | | | |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | | | |
Issuance of common stock (in shares) | | | 1,604 | | | | | |
Common stock issued for exercise of employee stock options (in shares) | | | 159,350 | | | | | |
Common stock issued for exercise of employee stock options | 1,479 | | $ 2 | 1,477 | | | | |
Issuance of restricted shares, net of forfeitures (in shares) | | | (23,155) | | | | | |
Stock-based compensation | 6,293 | | | 6,293 | | | | |
Net income | 9,303 | | | | | 9,303 | | |
Unrealized gain (loss) on hedged transactions, net of tax | 0 | | | | | | | |
Foreign currency translation adjustment, net of tax | (4,790) | | | (17) | | | | (4,790) |
Foreign currency translation adjustment, net of tax | (4,807) | | | | | | | |
Ending Balance (in shares) at Sep. 30, 2022 | | | 96,548,066 | | | | | |
Ending Balance at Sep. 30, 2022 | $ 748,214 | | $ 75 | 936,239 | $ (897) | (179,306) | | (7,897) |
Ending balance (in shares) at Sep. 30, 2022 | | | | | 107,820 | | | |
Beginning balance (in shares) at Dec. 31, 2022 | 96,717,883 | | 96,717,883 | | | | | |
Beginning balance at Dec. 31, 2022 | $ 736,646 | | $ 76 | 942,789 | $ (14,859) | (186,448) | | (4,912) |
Beginning balance (in shares) at Dec. 31, 2022 | 1,047,237 | | | | 1,047,237 | | | |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | | | |
Issuance of common stock (in shares) | | | 4,567 | | | | | |
Repurchases of common stock (in shares) | | | 493,926 | | 493,926 | | | |
Repurchases of common stock | $ (7,712) | | | | $ (7,712) | | | |
Issuance of restricted shares, net of forfeitures (in shares) | | | 1,894,310 | | | | | |
Issuance of restricted shares, net of forfeitures | 0 | | $ 19 | (19) | | | | |
Shares withheld to cover restricted share vesting tax (in shares) | | | (37,128) | | (37,128) | | | |
Shares withheld to cover restricted share vesting tax | (487) | | | | $ (487) | | | |
Stock-based compensation | 8,043 | | | 8,043 | | | | |
Net income | 591 | | | | | 591 | | |
Unrealized gain (loss) on hedged transactions, net of tax | (5,159) | | | | | | | (5,159) |
Foreign currency translation adjustment, net of tax | 682 | | | | | | | 682 |
Ending Balance (in shares) at Mar. 31, 2023 | | | 98,085,706 | | | | | |
Ending Balance at Mar. 31, 2023 | $ 732,604 | | $ 95 | 950,813 | $ (23,058) | (185,857) | | (9,389) |
Ending balance (in shares) at Mar. 31, 2023 | | | | | 1,578,291 | | | |
Beginning balance (in shares) at Dec. 31, 2022 | 96,717,883 | | 96,717,883 | | | | | |
Beginning balance at Dec. 31, 2022 | $ 736,646 | | $ 76 | 942,789 | $ (14,859) | (186,448) | | (4,912) |
Beginning balance (in shares) at Dec. 31, 2022 | 1,047,237 | | | | 1,047,237 | | | |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | | | |
Repurchases of common stock (in shares) | 3,523,838 | | | | | | | |
Repurchases of common stock | $ (46,000) | | | | | | | |
Net income | 3,268 | | | | | | | |
Unrealized gain (loss) on hedged transactions, net of tax | 1,554 | | | | | | | |
Foreign currency translation adjustment, net of tax | $ (269) | | | | | | | |
Ending Balance (in shares) at Sep. 30, 2023 | 95,045,289 | | 95,045,289 | | | | | |
Ending Balance at Sep. 30, 2023 | $ 720,741 | | $ 97 | 971,950 | $ (64,499) | (183,180) | | (3,627) |
Ending balance (in shares) at Sep. 30, 2023 | 4,843,938 | | | | 4,843,938 | | | |
Beginning balance (in shares) at Mar. 31, 2023 | | | 98,085,706 | | | | | |
Beginning balance at Mar. 31, 2023 | $ 732,604 | | $ 95 | 950,813 | $ (23,058) | (185,857) | | (9,389) |
Beginning balance (in shares) at Mar. 31, 2023 | | | | | 1,578,291 | | | |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | | | |
Issuance of common stock (in shares) | | | 2,363 | | | | | |
Repurchases of common stock (in shares) | | | 1,465,893 | | 1,465,893 | | | |
Repurchases of common stock | (17,630) | | | | $ (17,630) | | | |
Common stock issued for exercise of employee stock options (in shares) | | | 63,336 | | | | | |
Common stock issued for exercise of employee stock options | 611 | | | 611 | | | | |
Issuance of restricted shares, net of forfeitures (in shares) | | | 80,331 | | | | | |
Issuance of restricted shares, net of forfeitures | 0 | | $ 1 | (1) | | | | |
Shares withheld to cover restricted share vesting tax (in shares) | | | (7,181) | | (7,181) | | | |
Shares withheld to cover restricted share vesting tax | (85) | | | | $ (85) | | | |
Stock-based compensation | 9,358 | | | 9,358 | | | | |
Net income | 323 | | | | | 323 | | |
Unrealized gain (loss) on hedged transactions, net of tax | 4,751 | | | | | | | 4,751 |
Foreign currency translation adjustment, net of tax | 955 | | | | | | | 955 |
Ending Balance (in shares) at Jun. 30, 2023 | | | 96,758,662 | | | | | |
Ending Balance at Jun. 30, 2023 | $ 730,887 | | $ 96 | 960,781 | $ (40,773) | (185,534) | | (3,683) |
Ending balance (in shares) at Jun. 30, 2023 | | | | | 3,051,365 | | | |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | | | |
Repurchases of common stock (in shares) | 1,564,019 | | 1,564,019 | | 1,564,019 | | | |
Repurchases of common stock | $ (20,701) | | | | $ (20,701) | | | |
Common stock issued for exercise of employee stock options (in shares) | | | 165,422 | | | | | |
Common stock issued for exercise of employee stock options | 1,387 | | $ 2 | 1,385 | | | | |
Issuance of restricted shares, net of forfeitures (in shares) | | | (86,222) | | | | | |
Issuance of restricted shares, net of forfeitures | 0 | | $ (1) | 1 | | | | |
Shares withheld to cover restricted share vesting tax (in shares) | | | (228,554) | | (228,554) | | | |
Shares withheld to cover restricted share vesting tax | (3,025) | | | | $ (3,025) | | | |
Stock-based compensation | 9,783 | | | 9,783 | | | | |
Net income | 2,354 | | | | | 2,354 | | |
Unrealized gain (loss) on hedged transactions, net of tax | 1,962 | | | | | | | 1,962 |
Foreign currency translation adjustment, net of tax | $ (1,906) | | | | | | | (1,906) |
Ending Balance (in shares) at Sep. 30, 2023 | 95,045,289 | | 95,045,289 | | | | | |
Ending Balance at Sep. 30, 2023 | $ 720,741 | | $ 97 | $ 971,950 | $ (64,499) | $ (183,180) | | $ (3,627) |
Ending balance (in shares) at Sep. 30, 2023 | 4,843,938 | | | | 4,843,938 | | | |