Condensed Consolidated Statements of Shareholders' Equity (Unaudited) - USD ($) $ in Thousands |
Common Stock Including Additional Paid in Capital [Member] |
Retained Earnings [Member] |
AOCI Attributable to Parent [Member] |
Total |
| Balance |
$ 252,432
|
$ 108,972
|
$ (2,049)
|
$ 359,355
|
| Common stock, shares outstanding (in shares) |
30,432,000
|
|
|
|
| Balance (in shares) at Dec. 31, 2024 |
30,432,000
|
|
|
|
| Balance at Dec. 31, 2024 |
$ 252,432
|
108,972
|
(2,049)
|
359,355
|
| Net income |
0
|
4,332
|
0
|
4,332
|
| Comprehensive income (loss) |
0
|
0
|
30
|
30
|
| Dividends declared on common stock |
0
|
(943)
|
0
|
(943)
|
| Stock-based compensation |
$ 1,104
|
0
|
0
|
1,104
|
| Common stock issued under stock plans, net of shares withheld for employee taxes (in shares) |
93,000
|
|
|
|
| Common stock issued under stock plans, net of shares withheld for employee taxes |
$ (1,070)
|
|
0
|
(1,070)
|
| Balance at Mar. 31, 2025 |
252,466
|
112,361
|
(2,019)
|
362,808
|
| Common stock issued under stock plans, net of shares withheld for employee taxes |
$ 1,070
|
|
(0)
|
1,070
|
| Balance (in shares) at Mar. 31, 2025 |
30,525,000
|
|
|
|
| Balance (in shares) at Dec. 31, 2024 |
30,432,000
|
|
|
|
| Balance at Dec. 31, 2024 |
$ 252,432
|
108,972
|
(2,049)
|
359,355
|
| Net income |
|
|
|
15,808
|
| Comprehensive income (loss) |
|
|
|
517
|
| Balance at Sep. 30, 2025 |
$ 228,753
|
121,972
|
(1,532)
|
349,193
|
| Balance (in shares) at Sep. 30, 2025 |
29,652,000
|
|
|
|
| Balance |
$ 252,466
|
112,361
|
(2,019)
|
362,808
|
| Common stock, shares outstanding (in shares) |
30,525,000
|
|
|
|
| Balance (in shares) at Mar. 31, 2025 |
30,525,000
|
|
|
|
| Balance at Mar. 31, 2025 |
$ 252,466
|
112,361
|
(2,019)
|
362,808
|
| Net income |
0
|
5,389
|
0
|
5,389
|
| Comprehensive income (loss) |
0
|
0
|
741
|
741
|
| Dividends declared on common stock |
0
|
(946)
|
0
|
(946)
|
| Stock-based compensation |
$ 836
|
0
|
0
|
836
|
| Common stock issued under stock plans, net of shares withheld for employee taxes (in shares) |
22,000
|
|
|
|
| Common stock issued under stock plans, net of shares withheld for employee taxes |
$ 5
|
|
0
|
5
|
| Excise tax on repurchases of common stock |
$ (135)
|
0
|
0
|
(135)
|
| Repurchases of common stock (in shares) |
(650,000)
|
|
|
|
| Repurchases of common stock |
$ (18,121)
|
0
|
0
|
(18,121)
|
| Balance at Jun. 30, 2025 |
235,041
|
116,804
|
(1,278)
|
350,567
|
| Common stock issued under stock plans, net of shares withheld for employee taxes |
$ (5)
|
|
0
|
(5)
|
| Balance (in shares) at Jun. 30, 2025 |
29,897,000
|
|
|
|
| Balance |
$ 235,041
|
116,804
|
(1,278)
|
350,567
|
| Common stock, shares outstanding (in shares) |
29,897,000
|
|
|
|
| Net income |
$ 0
|
6,086
|
0
|
6,086
|
| Comprehensive income (loss) |
0
|
0
|
(254)
|
(254)
|
| Dividends declared on common stock |
0
|
(918)
|
0
|
(918)
|
| Stock-based compensation |
$ 794
|
0
|
0
|
794
|
| Common stock issued under stock plans, net of shares withheld for employee taxes (in shares) |
11,000
|
|
|
|
| Common stock issued under stock plans, net of shares withheld for employee taxes |
$ 121
|
0
|
0
|
121
|
| Excise tax on repurchases of common stock |
$ (64)
|
|
|
(64)
|
| Repurchases of common stock (in shares) |
(256,000)
|
|
|
|
| Repurchases of common stock |
$ (6,897)
|
|
|
(6,897)
|
| Balance at Sep. 30, 2025 |
228,753
|
121,972
|
(1,532)
|
349,193
|
| Common stock issued under stock plans, net of shares withheld for employee taxes |
$ (121)
|
0
|
0
|
(121)
|
| Balance (in shares) at Sep. 30, 2025 |
29,652,000
|
|
|
|
| Balance |
$ 228,753
|
121,972
|
(1,532)
|
349,193
|
| Common stock, shares outstanding (in shares) |
29,652,000
|
|
|
|
| Balance |
$ 231,797
|
123,587
|
(1,361)
|
$ 354,023
|
| Common stock, shares outstanding (in shares) |
29,579,000
|
|
|
29,579,000
|
| Balance (in shares) at Dec. 31, 2025 |
29,579,000
|
|
|
29,579,000
|
| Balance at Dec. 31, 2025 |
$ 231,797
|
123,587
|
(1,361)
|
$ 354,023
|
| Net income |
0
|
5,910
|
0
|
5,910
|
| Comprehensive income (loss) |
0
|
0
|
(205)
|
(205)
|
| Dividends declared on common stock |
0
|
(1,028)
|
0
|
(1,028)
|
| Stock-based compensation |
$ 1,309
|
0
|
0
|
1,309
|
| Common stock issued under stock plans, net of shares withheld for employee taxes (in shares) |
68,000
|
|
|
|
| Common stock issued under stock plans, net of shares withheld for employee taxes |
$ (582)
|
|
0
|
(582)
|
| Excise tax on repurchases of common stock |
$ 72
|
0
|
0
|
72
|
| Repurchases of common stock (in shares) |
(342,000)
|
|
|
|
| Repurchases of common stock |
$ (7,507)
|
0
|
0
|
(7,507)
|
| Balance at Mar. 31, 2026 |
225,089
|
128,469
|
(1,566)
|
351,992
|
| Common stock issued under stock plans, net of shares withheld for employee taxes |
$ 582
|
|
(0)
|
$ 582
|
| Balance (in shares) at Mar. 31, 2026 |
29,305,000
|
|
|
|
| Balance (in shares) at Dec. 31, 2025 |
29,579,000
|
|
|
29,579,000
|
| Balance at Dec. 31, 2025 |
$ 231,797
|
123,587
|
(1,361)
|
$ 354,023
|
| Repurchases of common stock (in shares) |
|
|
|
(432,476)
|
| Repurchases of common stock |
|
|
|
$ (9,300)
|
| Balance at Jun. 30, 2026 |
$ 224,384
|
134,111
|
(1,890)
|
$ 356,605
|
| Balance (in shares) at Jun. 30, 2026 |
29,240,000
|
|
|
|
| Balance (in shares) at Dec. 31, 2025 |
29,579,000
|
|
|
29,579,000
|
| Balance at Dec. 31, 2025 |
$ 231,797
|
123,587
|
(1,361)
|
$ 354,023
|
| Net income |
|
|
|
17,951
|
| Comprehensive income (loss) |
|
|
|
(433)
|
| Balance at Sep. 30, 2026 |
$ 265,266
|
138,468
|
(1,794)
|
$ 401,940
|
| Balance (in shares) at Sep. 30, 2026 |
30,615,000
|
|
|
30,615,000
|
| Balance |
$ 225,089
|
128,469
|
(1,566)
|
$ 351,992
|
| Common stock, shares outstanding (in shares) |
29,305,000
|
|
|
|
| Balance (in shares) at Mar. 31, 2026 |
29,305,000
|
|
|
|
| Balance at Mar. 31, 2026 |
$ 225,089
|
128,469
|
(1,566)
|
351,992
|
| Net income |
0
|
6,669
|
0
|
6,669
|
| Comprehensive income (loss) |
0
|
0
|
(324)
|
(324)
|
| Dividends declared on common stock |
0
|
(1,027)
|
0
|
(1,027)
|
| Stock-based compensation |
$ 1,106
|
0
|
0
|
1,106
|
| Common stock issued under stock plans, net of shares withheld for employee taxes (in shares) |
25,000
|
|
|
|
| Common stock issued under stock plans, net of shares withheld for employee taxes |
$ 0
|
|
0
|
0
|
| Excise tax on repurchases of common stock |
$ (12)
|
0
|
0
|
(12)
|
| Repurchases of common stock (in shares) |
(90,000)
|
|
|
|
| Repurchases of common stock |
$ (1,799)
|
0
|
0
|
(1,799)
|
| Balance at Jun. 30, 2026 |
224,384
|
134,111
|
(1,890)
|
356,605
|
| Common stock issued under stock plans, net of shares withheld for employee taxes |
$ (0)
|
|
(0)
|
(0)
|
| Balance (in shares) at Jun. 30, 2026 |
29,240,000
|
|
|
|
| Balance |
$ 224,384
|
134,111
|
(1,890)
|
356,605
|
| Common stock, shares outstanding (in shares) |
29,240,000
|
|
|
|
| Net income |
$ 0
|
5,373
|
0
|
5,373
|
| Comprehensive income (loss) |
0
|
0
|
96
|
96
|
| Dividends declared on common stock |
0
|
(1,016)
|
0
|
(1,016)
|
| Stock-based compensation |
$ 1,196
|
0
|
0
|
1,196
|
| Common stock issued under stock plans, net of shares withheld for employee taxes (in shares) |
19,000
|
|
|
|
| Common stock issued under stock plans, net of shares withheld for employee taxes |
$ (204)
|
0
|
0
|
(204)
|
| Excise tax on repurchases of common stock |
$ 8
|
0
|
0
|
8
|
| Issuance of common stock (in shares) |
1,356,000
|
|
|
|
| Issuance of common stock |
$ 39,882
|
0
|
0
|
39,882
|
| Balance at Sep. 30, 2026 |
265,266
|
138,468
|
(1,794)
|
401,940
|
| Common stock issued under stock plans, net of shares withheld for employee taxes |
$ 204
|
(0)
|
(0)
|
$ 204
|
| Balance (in shares) at Sep. 30, 2026 |
30,615,000
|
|
|
30,615,000
|
| Balance |
$ 265,266
|
$ 138,468
|
$ (1,794)
|
$ 401,940
|
| Common stock, shares outstanding (in shares) |
30,615,000
|
|
|
30,615,000
|