Condensed Consolidated Statements of Stockholders’ Equity - USD ($) $ in Thousands | Total | Cumulative Effect, Period of Adoption, Adjustment | Common Stock | Additional Paid-In Capital | Additional Paid-In Capital Cumulative Effect, Period of Adoption, Adjustment | Retained Earnings | Retained Earnings Cumulative Effect, Period of Adoption, Adjustment | Accumulated Other Comprehensive Loss |
Beginning balance (in shares) at Nov. 30, 2021 | | | 44,146,000 | | | | | |
Beginning balance at Nov. 30, 2021 | $ 412,489 | $ (42,563) | $ 441 | $ 354,235 | $ (47,456) | $ 90,256 | $ 4,893 | $ (32,443) |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | | | |
Issuance of stock under employee stock purchase plan (in shares) | | | 246,000 | | | | | |
Issuance of stock under employee stock purchase plan | 7,237 | | $ 2 | 7,235 | | | | |
Exercise of stock options (in shares) | | | 78,000 | | | | | |
Exercise of stock options | 2,879 | | $ 1 | 2,878 | | | | |
Vesting of restricted stock units and release of deferred stock units (in shares) | | | 188,000 | | | | | |
Vesting of restricted stock units and release of deferred stock units | 0 | | $ 2 | (2) | | | | |
Withholding tax payments related to net issuance of RSUs | (5,405) | | | (5,405) | | | | |
Stock-based compensation | 26,110 | | | 26,110 | | | | |
Dividends declared | $ (23,525) | | | | | (23,525) | | |
Treasury stock repurchases and retirements (in shares) | (1,700,000) | | (1,660,000) | | | | | |
Treasury stock repurchases and retirements | $ (75,524) | | $ (16) | (19,036) | | (56,472) | | |
Net income | 71,361 | | | | | 71,361 | | |
Other comprehensive income (loss) | (6,086) | | | | | | | (6,086) |
Ending balance (in shares) at Aug. 31, 2022 | | | 42,998,000 | | | | | |
Ending balance at Aug. 31, 2022 | 366,973 | | $ 430 | 318,559 | | 86,513 | | (38,529) |
Beginning balance (in shares) at May. 31, 2022 | | | 43,454,000 | | | | | |
Beginning balance at May. 31, 2022 | 372,146 | | $ 435 | 309,913 | | 93,885 | | (32,087) |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | | | |
Issuance of stock under employee stock purchase plan (in shares) | | | 68,000 | | | | | |
Issuance of stock under employee stock purchase plan | 2,024 | | | 2,024 | | | | |
Exercise of stock options (in shares) | | | 18,000 | | | | | |
Exercise of stock options | 643 | | | 643 | | | | |
Stock-based compensation | 8,639 | | | 8,639 | | | | |
Dividends declared | $ (7,783) | | | | | (7,783) | | |
Treasury stock repurchases and retirements (in shares) | (500,000) | | (542,000) | | | | | |
Treasury stock repurchases and retirements | $ (24,051) | | $ (5) | (2,660) | | (21,386) | | |
Net income | 21,797 | | | | | 21,797 | | |
Other comprehensive income (loss) | (6,442) | | | | | | | (6,442) |
Ending balance (in shares) at Aug. 31, 2022 | | | 42,998,000 | | | | | |
Ending balance at Aug. 31, 2022 | $ 366,973 | | $ 430 | 318,559 | | 86,513 | | (38,529) |
Beginning balance (in shares) at Nov. 30, 2022 | 43,257,008 | | 43,257,000 | | | | | |
Beginning balance at Nov. 30, 2022 | $ 398,504 | | $ 433 | 331,650 | | 101,656 | | (35,235) |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | | | |
Issuance of stock under employee stock purchase plan (in shares) | | | 212,000 | | | | | |
Issuance of stock under employee stock purchase plan | 7,769 | | $ 3 | 7,766 | | | | |
Exercise of stock options (in shares) | | | 400,000 | | | | | |
Exercise of stock options | 12,161 | | $ 4 | 12,157 | | | | |
Vesting of restricted stock units and release of deferred stock units (in shares) | | | 378,000 | | | | | |
Vesting of restricted stock units and release of deferred stock units | 0 | | $ 4 | (4) | | | | |
Withholding tax payments related to net issuance of RSUs (in shares) | | | (147,000) | | | | | |
Withholding tax payments related to net issuance of RSUs | (8,101) | | $ (1) | (8,100) | | | | |
Stock-based compensation | 30,111 | | | 30,111 | | | | |
Dividends declared | $ (23,908) | | | | | (23,908) | | |
Treasury stock repurchases and retirements (in shares) | (500,000) | | (535,000) | | | | | |
Treasury stock repurchases and retirements | $ (30,000) | | $ (5) | (12,518) | | (17,477) | | |
Net income | 54,862 | | | | | 54,862 | | |
Other comprehensive income (loss) | $ 3,648 | | | | | | | 3,648 |
Ending balance (in shares) at Aug. 31, 2023 | 43,565,346 | | 43,565,000 | | | | | |
Ending balance at Aug. 31, 2023 | $ 445,046 | | $ 438 | 361,062 | | 115,133 | | (31,587) |
Beginning balance (in shares) at May. 31, 2023 | | | 43,358,000 | | | | | |
Beginning balance at May. 31, 2023 | 418,815 | | $ 436 | 347,101 | | 103,995 | | (32,717) |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | | | |
Issuance of stock under employee stock purchase plan (in shares) | | | 67,000 | | | | | |
Issuance of stock under employee stock purchase plan | 2,499 | | $ 1 | 2,498 | | | | |
Exercise of stock options (in shares) | | | 140,000 | | | | | |
Exercise of stock options | 1,392 | | $ 1 | 1,391 | | | | |
Stock-based compensation | 10,072 | | | 10,072 | | | | |
Dividends declared | $ (7,960) | | | | | (7,960) | | |
Treasury stock repurchases and retirements (in shares) | 0 | | | | | | | |
Net income | $ 19,098 | | | | | 19,098 | | |
Other comprehensive income (loss) | $ 1,130 | | | | | | | 1,130 |
Ending balance (in shares) at Aug. 31, 2023 | 43,565,346 | | 43,565,000 | | | | | |
Ending balance at Aug. 31, 2023 | $ 445,046 | | $ 438 | $ 361,062 | | $ 115,133 | | $ (31,587) |