CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY - USD ($)  shares in Thousands, $ in Thousands  | 
Common Stock  | 
Additional Paid-In Capital  | 
Accumulated Deficit  | 
Treasury Stock  | 
Accumulated Other Comprehensive Loss  | 
Total  | 
| Balance at Dec. 31, 2022 | 
$ 4
 | 
$ 679,339
 | 
$ (336,843)
 | 
$ (32,707)
 | 
$ (17,685)
 | 
$ 292,108
 | 
| Balance, shares at Dec. 31, 2022 | 
41,637
 | 
 
 | 
 
 | 
 
 | 
 
 | 
 
 | 
| Balance, shares at Dec. 31, 2022 | 
 
 | 
 
 | 
 
 | 
(4,589)
 | 
 
 | 
 
 | 
| Net income (loss) | 
 
 | 
 
 | 
1,598
 | 
 
 | 
 
 | 
1,598
 | 
| Other comprehensive income (loss) | 
 
 | 
 
 | 
 
 | 
 
 | 
(1,100)
 | 
(1,100)
 | 
| Cash dividends ($0.025 per share) | 
 
 | 
 
 | 
(930)
 | 
 
 | 
 
 | 
(930)
 | 
| Purchase of treasury stock | 
 
 | 
 
 | 
 
 | 
$ (118)
 | 
 
 | 
(118)
 | 
| Purchase of treasury stock, shares | 
 
 | 
 
 | 
 
 | 
(12)
 | 
 
 | 
 
 | 
| Stock-based compensation expense | 
 
 | 
1,334
 | 
 
 | 
 
 | 
 
 | 
1,334
 | 
| Proceeds from exercise of options, shares | 
154
 | 
 
 | 
 
 | 
 
 | 
 
 | 
 
 | 
| Balance at Mar. 31, 2023 | 
$ 4
 | 
680,673
 | 
(336,175)
 | 
$ (32,825)
 | 
(18,785)
 | 
292,892
 | 
| Balance, shares at Mar. 31, 2023 | 
41,791
 | 
 
 | 
 
 | 
 
 | 
 
 | 
 
 | 
| Balance, shares at Mar. 31, 2023 | 
 
 | 
 
 | 
 
 | 
(4,601)
 | 
 
 | 
 
 | 
| Balance at Dec. 31, 2022 | 
$ 4
 | 
679,339
 | 
(336,843)
 | 
$ (32,707)
 | 
(17,685)
 | 
292,108
 | 
| Balance, shares at Dec. 31, 2022 | 
41,637
 | 
 
 | 
 
 | 
 
 | 
 
 | 
 
 | 
| Balance, shares at Dec. 31, 2022 | 
 
 | 
 
 | 
 
 | 
(4,589)
 | 
 
 | 
 
 | 
| Net income (loss) | 
 
 | 
 
 | 
 
 | 
 
 | 
 
 | 
(1,757)
 | 
| Other comprehensive income (loss) | 
 
 | 
 
 | 
 
 | 
 
 | 
 
 | 
(5,602)
 | 
| Balance at Sep. 30, 2023 | 
$ 4
 | 
688,878
 | 
(341,396)
 | 
$ (32,929)
 | 
(23,287)
 | 
291,270
 | 
| Balance, shares at Sep. 30, 2023 | 
42,582
 | 
 
 | 
 
 | 
 
 | 
 
 | 
 
 | 
| Balance, shares at Sep. 30, 2023 | 
 
 | 
 
 | 
 
 | 
(4,612)
 | 
 
 | 
 
 | 
| Balance at Mar. 31, 2023 | 
$ 4
 | 
680,673
 | 
(336,175)
 | 
$ (32,825)
 | 
(18,785)
 | 
292,892
 | 
| Balance, shares at Mar. 31, 2023 | 
41,791
 | 
 
 | 
 
 | 
 
 | 
 
 | 
 
 | 
| Balance, shares at Mar. 31, 2023 | 
 
 | 
 
 | 
 
 | 
(4,601)
 | 
 
 | 
 
 | 
| Net income (loss) | 
 
 | 
 
 | 
(2,091)
 | 
 
 | 
 
 | 
(2,091)
 | 
| Other comprehensive income (loss) | 
 
 | 
 
 | 
 
 | 
 
 | 
(1,364)
 | 
(1,364)
 | 
| Cash dividends ($0.025 per share) | 
 
 | 
 
 | 
(930)
 | 
 
 | 
 
 | 
(930)
 | 
| Purchase of treasury stock | 
 
 | 
 
 | 
 
 | 
$ (104)
 | 
 
 | 
(104)
 | 
| Purchase of treasury stock, shares | 
 
 | 
 
 | 
 
 | 
(11)
 | 
 
 | 
 
 | 
| Stock-based compensation expense | 
 
 | 
1,535
 | 
 
 | 
 
 | 
 
 | 
1,535
 | 
| Proceeds from exercise of options | 
 
 | 
35
 | 
 
 | 
 
 | 
 
 | 
35
 | 
| Proceeds from exercise of options, shares | 
42
 | 
 
 | 
 
 | 
 
 | 
 
 | 
 
 | 
| Balance at Jun. 30, 2023 | 
$ 4
 | 
682,243
 | 
(339,196)
 | 
$ (32,929)
 | 
(20,149)
 | 
289,973
 | 
| Balance, shares at Jun. 30, 2023 | 
41,833
 | 
 
 | 
 
 | 
 
 | 
 
 | 
 
 | 
| Balance, shares at Jun. 30, 2023 | 
 
 | 
 
 | 
 
 | 
(4,612)
 | 
 
 | 
 
 | 
| Net income (loss) | 
 
 | 
 
 | 
(1,264)
 | 
 
 | 
 
 | 
(1,264)
 | 
| Other comprehensive income (loss) | 
 
 | 
 
 | 
 
 | 
 
 | 
(3,138)
 | 
(3,138)
 | 
| Cash dividends ($0.025 per share) | 
 
 | 
 
 | 
(936)
 | 
 
 | 
 
 | 
(936)
 | 
| Stock-based compensation expense | 
 
 | 
1,168
 | 
 
 | 
 
 | 
 
 | 
1,168
 | 
| Proceeds from exercise of options | 
 
 | 
3,400
 | 
 
 | 
 
 | 
 
 | 
3,400
 | 
| Proceeds from exercise of options, shares | 
500
 | 
 
 | 
 
 | 
 
 | 
 
 | 
 
 | 
| Shares issued in business acquisition | 
 
 | 
2,067
 | 
 
 | 
 
 | 
 
 | 
2,067
 | 
| Shares issued in business acquisition, shares | 
249
 | 
 
 | 
 
 | 
 
 | 
 
 | 
 
 | 
| Balance at Sep. 30, 2023 | 
$ 4
 | 
688,878
 | 
(341,396)
 | 
$ (32,929)
 | 
(23,287)
 | 
291,270
 | 
| Balance, shares at Sep. 30, 2023 | 
42,582
 | 
 
 | 
 
 | 
 
 | 
 
 | 
 
 | 
| Balance, shares at Sep. 30, 2023 | 
 
 | 
 
 | 
 
 | 
(4,612)
 | 
 
 | 
 
 | 
| Balance at Dec. 31, 2023 | 
$ 4
 | 
691,198
 | 
(350,739)
 | 
$ (32,929)
 | 
(15,414)
 | 
292,120
 | 
| Balance, shares at Dec. 31, 2023 | 
42,761
 | 
 
 | 
 
 | 
 
 | 
 
 | 
 
 | 
| Balance, shares at Dec. 31, 2023 | 
 
 | 
 
 | 
 
 | 
(4,612)
 | 
 
 | 
 
 | 
| Net income (loss) | 
 
 | 
 
 | 
21,884
 | 
 
 | 
 
 | 
21,884
 | 
| Other comprehensive income (loss) | 
 
 | 
 
 | 
 
 | 
 
 | 
(3,671)
 | 
(3,671)
 | 
| Cash dividends ($0.025 per share) | 
 
 | 
 
 | 
(956)
 | 
 
 | 
 
 | 
(956)
 | 
| Purchase of treasury stock | 
 
 | 
 
 | 
 
 | 
$ (185)
 | 
 
 | 
(185)
 | 
| Purchase of treasury stock, shares | 
 
 | 
 
 | 
 
 | 
(30)
 | 
 
 | 
 
 | 
| Stock-based compensation expense | 
 
 | 
1,183
 | 
 
 | 
 
 | 
 
 | 
1,183
 | 
| Proceeds from exercise of options, shares | 
117
 | 
 
 | 
 
 | 
 
 | 
 
 | 
 
 | 
| Balance at Mar. 31, 2024 | 
$ 4
 | 
692,381
 | 
(329,811)
 | 
$ (33,114)
 | 
(19,085)
 | 
310,375
 | 
| Balance, shares at Mar. 31, 2024 | 
42,878
 | 
 
 | 
 
 | 
 
 | 
 
 | 
 
 | 
| Balance, shares at Mar. 31, 2024 | 
 
 | 
 
 | 
 
 | 
(4,642)
 | 
 
 | 
 
 | 
| Balance at Dec. 31, 2023 | 
$ 4
 | 
691,198
 | 
(350,739)
 | 
$ (32,929)
 | 
(15,414)
 | 
292,120
 | 
| Balance, shares at Dec. 31, 2023 | 
42,761
 | 
 
 | 
 
 | 
 
 | 
 
 | 
 
 | 
| Balance, shares at Dec. 31, 2023 | 
 
 | 
 
 | 
 
 | 
(4,612)
 | 
 
 | 
 
 | 
| Net income (loss) | 
 
 | 
 
 | 
 
 | 
 
 | 
 
 | 
13,234
 | 
| Other comprehensive income (loss) | 
 
 | 
 
 | 
 
 | 
 
 | 
 
 | 
1,354
 | 
| Balance at Sep. 30, 2024 | 
$ 4
 | 
696,021
 | 
(340,377)
 | 
$ (33,114)
 | 
(14,060)
 | 
308,474
 | 
| Balance, shares at Sep. 30, 2024 | 
43,004
 | 
 
 | 
 
 | 
 
 | 
 
 | 
 
 | 
| Balance, shares at Sep. 30, 2024 | 
 
 | 
 
 | 
 
 | 
(4,642)
 | 
 
 | 
 
 | 
| Balance at Mar. 31, 2024 | 
$ 4
 | 
692,381
 | 
(329,811)
 | 
$ (33,114)
 | 
(19,085)
 | 
310,375
 | 
| Balance, shares at Mar. 31, 2024 | 
42,878
 | 
 
 | 
 
 | 
 
 | 
 
 | 
 
 | 
| Balance, shares at Mar. 31, 2024 | 
 
 | 
 
 | 
 
 | 
(4,642)
 | 
 
 | 
 
 | 
| Net income (loss) | 
 
 | 
 
 | 
(5,493)
 | 
 
 | 
 
 | 
(5,493)
 | 
| Other comprehensive income (loss) | 
 
 | 
 
 | 
 
 | 
 
 | 
1,545
 | 
1,545
 | 
| Cash dividends ($0.025 per share) | 
 
 | 
 
 | 
(957)
 | 
 
 | 
 
 | 
(957)
 | 
| Stock-based compensation expense | 
 
 | 
1,528
 | 
 
 | 
 
 | 
 
 | 
1,528
 | 
| Proceeds from exercise of options | 
 
 | 
285
 | 
 
 | 
 
 | 
 
 | 
285
 | 
| Proceeds from exercise of options, shares | 
62
 | 
 
 | 
 
 | 
 
 | 
 
 | 
 
 | 
| Balance at Jun. 30, 2024 | 
$ 4
 | 
694,194
 | 
(336,261)
 | 
$ (33,114)
 | 
(17,540)
 | 
307,283
 | 
| Balance, shares at Jun. 30, 2024 | 
42,940
 | 
 
 | 
 
 | 
 
 | 
 
 | 
 
 | 
| Balance, shares at Jun. 30, 2024 | 
 
 | 
 
 | 
 
 | 
(4,642)
 | 
 
 | 
 
 | 
| Net income (loss) | 
 
 | 
 
 | 
(3,157)
 | 
 
 | 
 
 | 
(3,157)
 | 
| Other comprehensive income (loss) | 
 
 | 
 
 | 
 
 | 
 
 | 
3,480
 | 
3,480
 | 
| Cash dividends ($0.025 per share) | 
 
 | 
 
 | 
(959)
 | 
 
 | 
 
 | 
(959)
 | 
| Stock-based compensation expense | 
 
 | 
1,547
 | 
 
 | 
 
 | 
 
 | 
1,547
 | 
| Proceeds from exercise of options | 
 
 | 
280
 | 
 
 | 
 
 | 
 
 | 
280
 | 
| Proceeds from exercise of options, shares | 
64
 | 
 
 | 
 
 | 
 
 | 
 
 | 
 
 | 
| Balance at Sep. 30, 2024 | 
$ 4
 | 
$ 696,021
 | 
$ (340,377)
 | 
$ (33,114)
 | 
$ (14,060)
 | 
$ 308,474
 | 
| Balance, shares at Sep. 30, 2024 | 
43,004
 | 
 
 | 
 
 | 
 
 | 
 
 | 
 
 | 
| Balance, shares at Sep. 30, 2024 | 
 
 | 
 
 | 
 
 | 
(4,642)
 | 
 
 | 
 
 |