Consolidated Statements of Stockholders' Equity (Unaudited) - USD ($) $ in Thousands |
Common Stock [Member]
Restricted Stock Units (RSUs) [Member]
|
Common Stock [Member]
Performance-based Restricted Units [Member]
|
Common Stock [Member] |
Additional Paid-in Capital [Member] |
Retained Earnings [Member] |
AOCI Attributable to Parent [Member] |
Treasury Stock, Common [Member] |
Restricted Stock Units (RSUs) [Member] |
Performance-based Restricted Units [Member] |
Total |
Balance (in shares) at Dec. 31, 2023 |
|
|
23,911,760
|
|
|
|
|
|
|
|
Balance at Dec. 31, 2023 |
|
|
$ 239
|
$ 200,755
|
$ 115,430
|
$ (4,625)
|
$ (13,899)
|
|
|
$ 297,900
|
Balance (in shares) at Dec. 31, 2023 |
|
|
|
|
|
|
1,584,512
|
|
|
|
Net income |
|
|
|
|
9,887
|
|
|
|
|
9,887
|
Other comprehensive income (loss) |
|
|
|
|
|
(933)
|
|
|
|
(933)
|
Issuance of common stock for stock options exercised (in shares) |
|
|
107,930
|
|
|
|
|
|
|
|
Issuance of common stock for stock options exercised |
|
|
$ 1
|
3,985
|
|
|
|
|
|
3,986
|
Vested restricted stock units (in shares) |
|
7,063
|
9,547
|
|
|
|
|
|
|
|
Vested restricted stock units |
|
$ 0
|
$ 0
|
|
|
|
|
|
$ 0
|
0
|
Repurchase of common stock for net settlement of equity awards (in shares) |
|
|
|
|
|
|
5,850
|
|
|
|
Repurchase of common stock for net settlement of equity awards |
|
|
|
|
|
|
$ (358)
|
|
|
(358)
|
Stock-based compensation expense |
|
|
|
1,610
|
|
|
|
|
|
1,610
|
Common stock dividend paid |
|
|
|
|
(3,589)
|
|
|
|
|
(3,589)
|
Other comprehensive income (loss) |
|
|
|
|
|
(933)
|
|
|
|
(933)
|
Balance (in shares) at Mar. 31, 2024 |
|
|
24,036,300
|
|
|
|
|
|
|
|
Balance at Mar. 31, 2024 |
|
|
$ 240
|
206,350
|
121,728
|
(5,558)
|
$ (14,257)
|
|
|
308,503
|
Balance (in shares) at Mar. 31, 2024 |
|
|
|
|
|
|
1,590,362
|
|
|
|
Balance (in shares) at Dec. 31, 2023 |
|
|
23,911,760
|
|
|
|
|
|
|
|
Balance at Dec. 31, 2023 |
|
|
$ 239
|
200,755
|
115,430
|
(4,625)
|
$ (13,899)
|
|
|
297,900
|
Balance (in shares) at Dec. 31, 2023 |
|
|
|
|
|
|
1,584,512
|
|
|
|
Net income |
|
|
|
|
|
|
|
|
|
21,713
|
Other comprehensive income (loss) |
|
|
|
|
|
|
|
|
|
(469)
|
Other comprehensive income (loss) |
|
|
|
|
|
|
|
|
|
(469)
|
Balance (in shares) at Jun. 30, 2024 |
|
|
24,059,300
|
|
|
|
|
|
|
|
Balance at Jun. 30, 2024 |
|
|
$ 240
|
208,689
|
129,961
|
(5,094)
|
$ (14,264)
|
|
|
319,532
|
Balance (in shares) at Jun. 30, 2024 |
|
|
|
|
|
|
1,590,457
|
|
|
|
Balance (in shares) at Mar. 31, 2024 |
|
|
24,036,300
|
|
|
|
|
|
|
|
Balance at Mar. 31, 2024 |
|
|
$ 240
|
206,350
|
121,728
|
(5,558)
|
$ (14,257)
|
|
|
308,503
|
Balance (in shares) at Mar. 31, 2024 |
|
|
|
|
|
|
1,590,362
|
|
|
|
Net income |
|
|
|
|
11,826
|
|
|
|
|
11,826
|
Other comprehensive income (loss) |
|
|
|
|
|
464
|
|
|
|
464
|
Issuance of common stock for stock options exercised (in shares) |
|
|
22,700
|
|
|
|
|
|
|
|
Issuance of common stock for stock options exercised |
|
|
$ 0
|
730
|
|
|
|
|
|
730
|
Vested restricted stock units (in shares) |
|
77
|
223
|
|
|
|
|
|
|
|
Vested restricted stock units |
|
$ 0
|
$ 0
|
|
|
|
|
|
0
|
0
|
Repurchase of common stock for net settlement of equity awards (in shares) |
|
|
|
|
|
|
95
|
|
|
|
Repurchase of common stock for net settlement of equity awards |
|
|
|
|
|
|
$ (7)
|
|
|
(7)
|
Stock-based compensation expense |
|
|
|
1,609
|
|
|
|
|
|
1,609
|
Common stock dividend paid |
|
|
|
|
(3,593)
|
|
|
|
|
(3,593)
|
Other comprehensive income (loss) |
|
|
|
|
|
464
|
|
|
|
464
|
Balance (in shares) at Jun. 30, 2024 |
|
|
24,059,300
|
|
|
|
|
|
|
|
Balance at Jun. 30, 2024 |
|
|
$ 240
|
208,689
|
129,961
|
(5,094)
|
$ (14,264)
|
|
|
319,532
|
Balance (in shares) at Jun. 30, 2024 |
|
|
|
|
|
|
1,590,457
|
|
|
|
Balance (in shares) at Dec. 31, 2024 |
|
|
24,153,165
|
|
|
|
|
|
|
|
Balance at Dec. 31, 2024 |
|
|
$ 242
|
213,760
|
145,090
|
(6,184)
|
$ (15,618)
|
|
|
$ 337,290
|
Balance (in shares) at Dec. 31, 2024 |
|
|
|
|
|
|
1,603,825
|
|
|
1,603,825
|
Net income |
|
|
|
|
11,011
|
|
|
|
|
$ 11,011
|
Other comprehensive income (loss) |
|
|
|
|
|
1,031
|
|
|
|
1,031
|
Issuance of common stock for stock options exercised (in shares) |
|
|
33,465
|
|
|
|
|
|
|
|
Issuance of common stock for stock options exercised |
|
|
$ 0
|
1,312
|
|
|
|
|
|
1,312
|
Vested restricted stock units (in shares) |
9,638
|
7,923
|
|
|
|
|
|
|
|
|
Vested restricted stock units |
$ 0
|
$ 0
|
|
|
|
|
|
$ 0
|
0
|
|
Repurchase of common stock for net settlement of equity awards (in shares) |
|
|
|
|
|
|
6,065
|
|
|
|
Repurchase of common stock for net settlement of equity awards |
|
|
|
|
|
|
$ (601)
|
|
|
(601)
|
Stock-based compensation expense |
|
|
|
2,046
|
|
|
|
|
|
2,046
|
Common stock dividend paid |
|
|
|
|
(4,517)
|
|
|
|
|
(4,517)
|
Other comprehensive income (loss) |
|
|
|
|
|
1,031
|
|
|
|
1,031
|
Balance (in shares) at Mar. 31, 2025 |
|
|
24,204,191
|
|
|
|
|
|
|
|
Balance at Mar. 31, 2025 |
|
|
$ 242
|
217,118
|
151,584
|
(5,153)
|
$ (16,219)
|
|
|
347,572
|
Balance (in shares) at Mar. 31, 2025 |
|
|
|
|
|
|
1,609,890
|
|
|
|
Balance (in shares) at Dec. 31, 2024 |
|
|
24,153,165
|
|
|
|
|
|
|
|
Balance at Dec. 31, 2024 |
|
|
$ 242
|
213,760
|
145,090
|
(6,184)
|
$ (15,618)
|
|
|
$ 337,290
|
Balance (in shares) at Dec. 31, 2024 |
|
|
|
|
|
|
1,603,825
|
|
|
1,603,825
|
Net income |
|
|
|
|
|
|
|
|
|
$ 24,790
|
Other comprehensive income (loss) |
|
|
|
|
|
|
|
|
|
3,186
|
Other comprehensive income (loss) |
|
|
|
|
|
|
|
|
|
3,186
|
Balance (in shares) at Jun. 30, 2025 |
|
|
24,246,823
|
|
|
|
|
|
|
|
Balance at Jun. 30, 2025 |
|
|
$ 242
|
220,822
|
160,843
|
(2,998)
|
$ (16,223)
|
|
|
$ 362,686
|
Balance (in shares) at Jun. 30, 2025 |
|
|
|
|
|
|
1,609,942
|
|
|
1,609,942
|
Balance (in shares) at Mar. 31, 2025 |
|
|
24,204,191
|
|
|
|
|
|
|
|
Balance at Mar. 31, 2025 |
|
|
$ 242
|
217,118
|
151,584
|
(5,153)
|
$ (16,219)
|
|
|
$ 347,572
|
Balance (in shares) at Mar. 31, 2025 |
|
|
|
|
|
|
1,609,890
|
|
|
|
Net income |
|
|
|
|
13,779
|
|
|
|
|
13,779
|
Other comprehensive income (loss) |
|
|
|
|
|
2,155
|
|
|
|
2,155
|
Issuance of common stock for stock options exercised (in shares) |
|
|
42,485
|
|
|
|
|
|
|
|
Issuance of common stock for stock options exercised |
|
|
$ 0
|
1,760
|
|
|
|
|
|
1,760
|
Vested restricted stock units (in shares) |
|
0
|
147
|
|
|
|
|
|
|
|
Vested restricted stock units |
|
$ 0
|
$ 0
|
|
|
|
|
|
$ 0
|
0
|
Repurchase of common stock for net settlement of equity awards (in shares) |
|
|
|
|
|
|
52
|
|
|
|
Repurchase of common stock for net settlement of equity awards |
|
|
|
|
|
|
$ (4)
|
|
|
(4)
|
Stock-based compensation expense |
|
|
|
1,944
|
|
|
|
|
|
1,944
|
Common stock dividend paid |
|
|
|
|
(4,520)
|
|
|
|
|
(4,520)
|
Other comprehensive income (loss) |
|
|
|
|
|
2,155
|
|
|
|
2,155
|
Balance (in shares) at Jun. 30, 2025 |
|
|
24,246,823
|
|
|
|
|
|
|
|
Balance at Jun. 30, 2025 |
|
|
$ 242
|
$ 220,822
|
$ 160,843
|
$ (2,998)
|
$ (16,223)
|
|
|
$ 362,686
|
Balance (in shares) at Jun. 30, 2025 |
|
|
|
|
|
|
1,609,942
|
|
|
1,609,942
|