Condensed Consolidated Statements of Changes in Stockholders' Equity (Unaudited) - USD ($) $ in Thousands |
Stock-based Program [Member]
Common Stock Outstanding [Member]
|
Stock-based Program [Member]
Additional Paid-in Capital [Member]
|
Stock-based Program [Member]
Treasury Stock, Common [Member]
|
Stock-based Program [Member]
AOCI Attributable to Parent [Member]
|
Stock-based Program [Member]
Retained Earnings [Member]
|
Stock-based Program [Member] |
Share Repurchase Program [Member]
Common Stock Outstanding [Member]
|
Share Repurchase Program [Member]
Additional Paid-in Capital [Member]
|
Share Repurchase Program [Member]
Treasury Stock, Common [Member]
|
Share Repurchase Program [Member]
AOCI Attributable to Parent [Member]
|
Share Repurchase Program [Member]
Retained Earnings [Member]
|
Share Repurchase Program [Member] |
Common Stock Outstanding [Member] |
Additional Paid-in Capital [Member] |
Treasury Stock, Common [Member] |
AOCI Attributable to Parent [Member] |
Retained Earnings [Member] |
Total |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Balance (in shares) at Oct. 31, 2024 | 53,273,644 | |||||||||||||||||
| Balance at Oct. 31, 2024 | $ 6 | $ 386,313 | $ (25,881) | $ (483) | $ (38,240) | $ 321,715 | ||||||||||||
| Stock-based compensation expense | $ 0 | 1,431 | 0 | 0 | 0 | 1,431 | ||||||||||||
| Shares issued under stock-based program (in shares) | 416,546 | |||||||||||||||||
| Shares issued under stock-based program | $ 0 | 1,519 | 0 | 0 | 0 | 1,519 | ||||||||||||
| Net income (loss) | 0 | 0 | 0 | 0 | 1,056 | 1,056 | ||||||||||||
| Foreign currency translation adjustment | $ 0 | 0 | 0 | 2,668 | 0 | $ 2,668 | ||||||||||||
| Treasury shares purchased (in shares) | (246,121) | (1,904,041) | (1,904,000) | |||||||||||||||
| Treasury shares purchased | $ 0 | $ 0 | $ (2,166) | $ 0 | $ 0 | $ (2,166) | $ 0 | $ 0 | $ (11,770) | $ 0 | $ 0 | $ (11,770) | ||||||
| Shares issued under stock-based program (in shares) | 416,546 | |||||||||||||||||
| Dividend | $ 0 | 0 | 0 | 0 | (53,132) | $ (53,132) | ||||||||||||
| Balance (in shares) at Jul. 31, 2025 | 51,540,028 | |||||||||||||||||
| Balance at Jul. 31, 2025 | $ 6 | 389,263 | (39,817) | 2,185 | (90,316) | 261,321 | ||||||||||||
| Balance (in shares) at Apr. 30, 2025 | 52,132,683 | |||||||||||||||||
| Balance at Apr. 30, 2025 | $ 6 | 388,737 | (35,972) | 3,089 | (94,015) | 261,845 | ||||||||||||
| Stock-based compensation expense | 0 | 526 | 0 | 0 | 0 | 526 | ||||||||||||
| Net income (loss) | 0 | 0 | 0 | 0 | 3,699 | 3,699 | ||||||||||||
| Foreign currency translation adjustment | $ 0 | 0 | 0 | (904) | 0 | $ (904) | ||||||||||||
| Treasury shares purchased (in shares) | (592,655) | (593,000) | ||||||||||||||||
| Treasury shares purchased | $ 0 | 0 | (3,845) | 0 | 0 | (3,845) | ||||||||||||
| Balance (in shares) at Jul. 31, 2025 | 51,540,028 | |||||||||||||||||
| Balance at Jul. 31, 2025 | $ 6 | 389,263 | (39,817) | 2,185 | (90,316) | $ 261,321 | ||||||||||||
| Balance (in shares) at Oct. 31, 2025 | 51,272,503 | |||||||||||||||||
| Balance at Oct. 31, 2025 | $ 6 | 389,880 | (41,687) | 1,589 | (84,999) | 264,789 | ||||||||||||
| Stock-based compensation expense | $ 0 | 2,922 | 0 | 0 | 0 | 2,922 | ||||||||||||
| Shares issued under stock-based program (in shares) | 243,480 | |||||||||||||||||
| Shares issued under stock-based program | $ 0 | 0 | 0 | 0 | 0 | 0 | ||||||||||||
| Net income (loss) | 0 | 0 | 0 | 0 | 5,037 | 5,037 | ||||||||||||
| Foreign currency translation adjustment | $ 0 | 0 | 0 | 2,325 | 0 | $ 2,325 | ||||||||||||
| Treasury shares purchased (in shares) | (80,448) | (1,042,115) | (1,042,000) | |||||||||||||||
| Treasury shares purchased | $ 0 | $ 0 | $ (520) | $ 0 | $ 0 | $ (520) | $ 0 | $ 0 | $ (6,699) | $ 0 | $ 0 | $ (6,699) | ||||||
| Shares issued under stock-based program (in shares) | 243,480 | |||||||||||||||||
| Balance (in shares) at Jul. 31, 2026 | 50,393,420 | |||||||||||||||||
| Balance at Jul. 31, 2026 | $ 6 | 392,802 | (48,906) | 3,914 | (79,962) | $ 267,854 | ||||||||||||
| Balance (in shares) at Apr. 30, 2026 | 50,392,680 | |||||||||||||||||
| Balance at Apr. 30, 2026 | $ 6 | 391,520 | (48,906) | 4,912 | (84,893) | 262,639 | ||||||||||||
| Stock-based compensation expense | $ 0 | 1,282 | 0 | 0 | 0 | 1,282 | ||||||||||||
| Shares issued under stock-based program (in shares) | 740 | |||||||||||||||||
| Shares issued under stock-based program | $ 0 | 0 | 0 | 0 | 0 | 0 | ||||||||||||
| Net income (loss) | 0 | 0 | 0 | 0 | 4,931 | 4,931 | ||||||||||||
| Foreign currency translation adjustment | $ 0 | 0 | 0 | (998) | 0 | $ (998) | ||||||||||||
| Treasury shares purchased (in shares) | 0 | |||||||||||||||||
| Shares issued under stock-based program (in shares) | 740 | |||||||||||||||||
| Balance (in shares) at Jul. 31, 2026 | 50,393,420 | |||||||||||||||||
| Balance at Jul. 31, 2026 | $ 6 | $ 392,802 | $ (48,906) | $ 3,914 | $ (79,962) | $ 267,854 |
| X | ||||||||||
- Definition Equity impact of the cost of common and preferred stock that were repurchased during the period net of issuances. Recorded using the cost method. No definition available.
|
| X | ||||||||||
- Definition Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement. Reference 1: http://www.xbrl.org/2003/role/disclosureRef
|
| X | ||||||||||
- Definition Amount of paid and unpaid common stock dividends declared with the form of settlement in cash, stock and payment-in-kind (PIK). Reference 1: http://www.xbrl.org/2003/role/disclosureRef
|
| X | ||||||||||
- Definition The portion of profit or loss for the period, net of income taxes, which is attributable to the parent. Reference 1: http://www.xbrl.org/2003/role/disclosureRef
|
| X | ||||||||||
- Definition Amount before tax, after reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature. Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef
|
| X | ||||||||||
- Definition Number of shares issued which are neither cancelled nor held in the treasury. Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef
|
| X | ||||||||||
- Definition Number, after forfeiture, of shares or units issued under share-based payment arrangement. Excludes shares or units issued under employee stock ownership plan (ESOP). Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef
|
| X | ||||||||||
- Definition Value, after forfeiture, of shares issued under share-based payment arrangement. Excludes employee stock ownership plan (ESOP). Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef
|
| X | ||||||||||
- Definition Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest. Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef
|
| X | ||||||||||
- Definition Number of shares that have been repurchased during the period and are being held in treasury. Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef
|