v3.25.4

Earnings Per Share (Tables) | 12 Months Ended
--- | ---
Nov. 30, 2025
Earnings Per Share [Abstract] |
Schedule of Calculation of Basic and Diluted Earnings Per Share | The following table sets forth the calculation of basic and diluted earnings per share:
| Fiscal Year Ended
(in thousands, except per share data) | November 30, 2025 |  | November 30, 2024 |  | November 30, 2023
Net income | $ | 73,133 |  |  | $ | 68,438 |  |  | $ | 70,197 |
Weighted average shares outstanding | 42,996 |  |  | 43,268 |  |  | 43,456 |
Effect of dilution from common stock equivalents | 891 |  |  | 992 |  |  | 1,158 |
Effect of dilution from if-converted convertible notes | 132 |  |  | 167 |  |  | 44 |
Diluted weighted average shares outstanding | 44,019 |  |  | 44,427 |  |  | 44,658 |
Earnings per share: |  |  |  |  |
Basic | $ | 1.70 |  |  | $ | 1.58 |  |  | $ | 1.62 |
Diluted | $ | 1.66 |  |  | $ | 1.54 |  |  | $ | 1.57 |

X
- References No definition available. + Details
Name: | us-gaap_EarningsPerShareAbstract
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of an entity's basic and diluted earnings per share calculations, including a reconciliation of numerators and denominators of the basic and diluted per-share computations for income from continuing operations. + References Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef -Topic 260 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 1 -Subparagraph (a) -Publisher FASB -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1 + Details
Name: | us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration