XML 31 R20.htm IDEA: XBRL DOCUMENT
v3.25.3

Net Income per Common Share (Tables) | 9 Months Ended
--- | ---
Sep. 30, 2025
Earnings Per Share [Abstract] |
Schedule of Computation Of Basic and Diluted Net Income Per Share | The table below sets forth the computation of basic and diluted net income per share:
| Three Months Ended September 30, |  | Nine Months Ended September 30,
(in thousands, except share and per share amounts) | 2025 |  | 2024 |  | 2025 |  | 2024
Net income | $ | 7,216 |  |  | $ | 7,189 |  |  | $ | 15,242 |  |  | $ | 16,997 |
Basic - weighted-average shares outstanding: | 23,889,157 |  | 24,980,536 |  | 23,974,054 |  | 25,304,985
Effect of dilutive securities: |  |  |  |  |  |  |
Employee stock options and other | 301,882 |  | 41,949 |  | 275,615 |  | 77,295
Diluted - weighted-average shares outstanding: | 24,191,039 |  | 25,022,485 |  | 24,249,669 |  | 25,382,280
Net income per share: |  |  |  |  |  |  |
Basic | $ | 0.30 |  |  | $ | 0.29 |  |  | $ | 0.64 |  |  | $ | 0.67 |
Diluted | $ | 0.30 |  |  | $ | 0.29 |  |  | $ | 0.63 |  |  | $ | 0.67 |

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