XML 50 R39.htm IDEA: XBRL DOCUMENT
v3.26.1

EARNINGS PER SHARE (Tables) | 6 Months Ended
--- | ---
Jun. 30, 2026
EARNINGS PER SHARE |
Schedule of basic and diluted weighted-average shares outstanding | ​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | Three months ended | ​ | Six months ended | ​
​ | ​ | June 30, | ​ | June 30, | ​
​ | ​ ​ | 2026 | ​ ​ ​ | 2025 | ​ ​ ​ | 2026 | ​ ​ ​ | 2025 | ​ ​ ​
Basic weighted average shares outstanding |  | 16,798 |  | 16,687 |  | 16,756 |  | 16,639 |
Dilutive effect of potential common shares |  | 77 |  | 26 |  | 184 |  | 32 |
Diluted weighted average shares outstanding |  | 16,875 |  | 16,713 |  | 16,940 |  | 16,671 |
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​

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 the weighted average number of shares used in calculating basic net earnings per share (or unit) and diluted earnings per share (or unit). + 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_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration