CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY - USD ($) shares in Thousands, $ in Thousands | Total | Common Stock | Treasury - Common Stock | Additional Paid-In Capital | Retained Earnings | Accumulated Other Comprehensive Income (Loss) |
Beginning balance (in shares) at Dec. 31, 2022 | | 39,726 | | | | |
Beginning balance at Dec. 31, 2022 | $ 203,311 | $ 40 | $ (18,222) | $ 107,305 | $ 128,738 | $ (14,550) |
Beginning balance, treasury stock (in shares) at Dec. 31, 2022 | | | 1,038 | | | |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | |
Net income (loss) | (8,356) | | | | (8,356) | |
Foreign currency translation adjustment, net of tax | 1,715 | | | | | 1,715 |
Share-based compensation | 3,812 | | | 3,812 | | |
Vesting of restricted stock awards (in shares) | | 329 | | | | |
Tax payments for stock issuances (in shares) | | (105) | | | | |
Tax payments for stock issuances | (1,098) | | | (1,098) | | |
Unrealized gain (loss) on available-for-sale securities | 7 | | | | | 7 |
Pension adjustment, net of tax | (60) | | | | | (60) |
Ending balance (in shares) at Mar. 31, 2023 | | 39,950 | | | | |
Ending balance at Mar. 31, 2023 | 199,331 | $ 40 | $ (18,222) | 110,019 | 120,382 | (12,888) |
Ending balance, treasury stock (in shares) at Mar. 31, 2023 | | | 1,038 | | | |
Beginning balance (in shares) at Dec. 31, 2022 | | 39,726 | | | | |
Beginning balance at Dec. 31, 2022 | 203,311 | $ 40 | $ (18,222) | 107,305 | 128,738 | (14,550) |
Beginning balance, treasury stock (in shares) at Dec. 31, 2022 | | | 1,038 | | | |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | |
Net income (loss) | (30,240) | | | | | |
Foreign currency translation adjustment, net of tax | 93 | | | | | |
Unrealized gain (loss) on available-for-sale securities | 6 | | | | | |
Ending balance (in shares) at Sep. 30, 2023 | | 39,816 | | | | |
Ending balance at Sep. 30, 2023 | 177,318 | $ 40 | $ (21,749) | 115,162 | 98,498 | (14,633) |
Ending balance, treasury stock (in shares) at Sep. 30, 2023 | | | 1,343 | | | |
Beginning balance (in shares) at Mar. 31, 2023 | | 39,950 | | | | |
Beginning balance at Mar. 31, 2023 | 199,331 | $ 40 | $ (18,222) | 110,019 | 120,382 | (12,888) |
Beginning balance, treasury stock (in shares) at Mar. 31, 2023 | | | 1,038 | | | |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | |
Net income (loss) | (17,751) | | | | (17,751) | |
Foreign currency translation adjustment, net of tax | 1,025 | | | | | 1,025 |
Share-based compensation | 4,503 | | | 4,503 | | |
Vesting of restricted stock awards (in shares) | | 44 | | | | |
Tax payments for stock issuances (in shares) | | (15) | | | | |
Tax payments for stock issuances | (449) | | | (449) | | |
Unrealized gain (loss) on available-for-sale securities | 1 | | | | | 1 |
Pension adjustment, net of tax | (61) | | | | | (61) |
Ending balance (in shares) at Jun. 30, 2023 | | 39,979 | | | | |
Ending balance at Jun. 30, 2023 | 186,599 | $ 40 | $ (18,222) | 114,073 | 102,631 | (11,923) |
Ending balance, treasury stock (in shares) at Jun. 30, 2023 | | | 1,038 | | | |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | |
Net income (loss) | (4,133) | | | | (4,133) | |
Foreign currency translation adjustment, net of tax | (2,647) | | | | | (2,647) |
Share-based compensation | 1,878 | | | 1,878 | | |
Vesting of restricted stock awards (in shares) | | 226 | | | | |
Tax payments for stock issuances (in shares) | | (84) | | | | |
Tax payments for stock issuances | (789) | | | (789) | | |
Unrealized gain (loss) on available-for-sale securities | (2) | | | | | (2) |
Share repurchases (in shares) | | 305 | 305 | | | |
Share repurchases | (3,527) | | $ (3,527) | | | |
Pension adjustment, net of tax | (61) | | | | | (61) |
Ending balance (in shares) at Sep. 30, 2023 | | 39,816 | | | | |
Ending balance at Sep. 30, 2023 | $ 177,318 | $ 40 | $ (21,749) | 115,162 | 98,498 | (14,633) |
Ending balance, treasury stock (in shares) at Sep. 30, 2023 | | | 1,343 | | | |
Beginning balance (in shares) at Dec. 31, 2023 | 37,519 | 37,519 | | | | |
Beginning balance at Dec. 31, 2023 | $ 159,141 | $ 38 | $ (47,377) | 118,620 | 98,939 | (11,079) |
Beginning balance, treasury stock (in shares) at Dec. 31, 2023 | 3,724 | | 3,724 | | | |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | |
Net income (loss) | $ 13,468 | | | | 13,468 | |
Foreign currency translation adjustment, net of tax | (1,655) | | | | | (1,655) |
Share-based compensation | 1,540 | | | 1,540 | | |
Vesting of restricted stock awards (in shares) | | 402 | | | | |
Tax payments for stock issuances (in shares) | | (153) | | | | |
Tax payments for stock issuances | (1,595) | | | (1,595) | | |
Pension adjustment, net of tax | (30) | | | | | (30) |
Ending balance (in shares) at Mar. 31, 2024 | | 37,768 | | | | |
Ending balance at Mar. 31, 2024 | $ 170,869 | $ 38 | $ (47,377) | 118,565 | 112,407 | (12,764) |
Ending balance, treasury stock (in shares) at Mar. 31, 2024 | | | 3,724 | | | |
Beginning balance (in shares) at Dec. 31, 2023 | 37,519 | 37,519 | | | | |
Beginning balance at Dec. 31, 2023 | $ 159,141 | $ 38 | $ (47,377) | 118,620 | 98,939 | (11,079) |
Beginning balance, treasury stock (in shares) at Dec. 31, 2023 | 3,724 | | 3,724 | | | |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | |
Net income (loss) | $ 28,294 | | | | | |
Foreign currency translation adjustment, net of tax | 3,764 | | | | | |
Unrealized gain (loss) on available-for-sale securities | $ 0 | | | | | |
Ending balance (in shares) at Sep. 30, 2024 | 37,910 | 37,910 | | | | |
Ending balance at Sep. 30, 2024 | $ 194,586 | $ 38 | $ (47,377) | 122,098 | 127,233 | (7,406) |
Ending balance, treasury stock (in shares) at Sep. 30, 2024 | 3,724 | | 3,724 | | | |
Beginning balance (in shares) at Mar. 31, 2024 | | 37,768 | | | | |
Beginning balance at Mar. 31, 2024 | $ 170,869 | $ 38 | $ (47,377) | 118,565 | 112,407 | (12,764) |
Beginning balance, treasury stock (in shares) at Mar. 31, 2024 | | | 3,724 | | | |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | |
Net income (loss) | 6,553 | | | | 6,553 | |
Foreign currency translation adjustment, net of tax | (488) | | | | | (488) |
Share-based compensation | 1,908 | | | 1,908 | | |
Vesting of restricted stock awards (in shares) | | 29 | | | | |
Tax payments for stock issuances (in shares) | | (11) | | | | |
Tax payments for stock issuances | (236) | | | (236) | | |
Unrealized gain (loss) on available-for-sale securities | 2 | | | | | 2 |
Pension adjustment, net of tax | (29) | | | | | (29) |
Ending balance (in shares) at Jun. 30, 2024 | | 37,786 | | | | |
Ending balance at Jun. 30, 2024 | 178,579 | $ 38 | $ (47,377) | 120,237 | 118,960 | (13,279) |
Ending balance, treasury stock (in shares) at Jun. 30, 2024 | | | 3,724 | | | |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | |
Net income (loss) | 8,273 | | | | 8,273 | |
Foreign currency translation adjustment, net of tax | 5,907 | | | | | 5,907 |
Share-based compensation | 2,662 | | | 2,662 | | |
Vesting of restricted stock awards (in shares) | | 205 | | | | |
Tax payments for stock issuances (in shares) | | (81) | | | | |
Tax payments for stock issuances | (801) | | | (801) | | |
Unrealized gain (loss) on available-for-sale securities | (2) | | | | | (2) |
Pension adjustment, net of tax | $ (32) | | | | | (32) |
Ending balance (in shares) at Sep. 30, 2024 | 37,910 | 37,910 | | | | |
Ending balance at Sep. 30, 2024 | $ 194,586 | $ 38 | $ (47,377) | $ 122,098 | $ 127,233 | $ (7,406) |
Ending balance, treasury stock (in shares) at Sep. 30, 2024 | 3,724 | | 3,724 | | | |