XML 60 R47.htm IDEA: XBRL DOCUMENT
v3.22.4

Note 16 - Stock-based Compensation (Tables) | 12 Months Ended
--- | ---
Dec. 31, 2022
Notes Tables |
Stock-based compensation expense | ​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ |  | 2022 |  | 2021 |  | 2020
​ | ​ | (dollars in thousands)
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
Stock options | ​ | $ | 246 | ​ | $ | 270 | ​ | $ | 297
Restricted stock awards | ​ | ​ | 1,967 | ​ | ​ | 1,864 | ​ | ​ | 1,619
Stock purchase plan | ​ |  | 225 | ​ |  | 218 | ​ |  | 234
​ | ​ | $ | 2,438 | ​ | $ | 2,352 | ​ | $ | 2,150
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​
Summary of the stock option plans | ​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | December 31,
​ | ​ | 2022 | ​ | 2021 | ​ | 2020
​ | ​ | ​ | ​ | ​ | Weighted | ​ | ​ | ​ | ​ | Weighted | ​ | ​ | ​ | ​ | Weighted
​ | ​ | ​ | ​ | ​ | Average | ​ | ​ | ​ | ​ | Average | ​ | ​ | ​ | ​ | Average
​ | ​ | ​ | ​ | ​ | Exercise | ​ | ​ | ​ | ​ | Exercise | ​ | ​ | ​ | ​ | Exercise
​ |  | Shares |  | Price |  | Shares |  | Price |  | Shares |  | Price
Outstanding, beginning | ​ | ​ | 367,998 | ​ | $ | 24.46 | ​ | ​ | 407,763 | ​ | $ | 22.24 | ​ | ​ | 426,913 | ​ | $ | 20.14
Granted |  | ​ | 22,400 | ​ |  | 53.87 |  | ​ | 22,150 | ​ |  | 43.61 |  | ​ | 23,350 | ​ |  | 39.12
Exercised |  | ​ | (41,695) | ​ |  | 14.07 |  | ​ | (60,317) | ​ |  | 15.76 |  | ​ | (41,650) | ​ |  | 10.67
Forfeited |  | ​ | (2,025) | ​ |  | 26.72 |  | ​ | (1,598) | ​ |  | 38.50 |  | ​ | (850) | ​ |  | 19.94
Outstanding, ending |  | ​ | 346,678 | ​ |  | 27.60 |  | ​ | 367,998 | ​ |  | 24.46 |  | ​ | 407,763 | ​ |  | 22.24
​ |  | ​ |  | ​ |  |  |  | ​ |  | ​ |  |  |  | ​ |  | ​ |  |
Exercisable, ending |  | ​ | 295,077 | ​ |  |  |  | ​ | 318,266 | ​ |  |  |  | ​ | 354,899 | ​ |  |
​ |  | ​ |  | ​ |  |  |  | ​ |  | ​ |  |  |  | ​ |  | ​ |  |
Weighted average fair value per option granted | ​ | $ | 13.97 | ​ |  |  | ​ | $ | 10.85 | ​ |  |  | ​ | $ | 10.07 | ​ |  |
​
Summary of options outstanding | ​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | Options Outstanding | ​ | ​ | ​ | ​ | ​
​ | ​ | ​ | ​ | Weighted | ​ | ​ | ​ | ​ | Options Exercisable
​ | ​ | ​ | ​ | Average | ​ | Weighted | ​ | ​ | ​ | Weighted
​ | ​ | ​ | ​ | Remaining | ​ | Average | ​ | ​ | ​ | Average
Range of | ​ | Number | ​ | Contractual | ​ | Exercise | ​ | Number | ​ | Exercise
Exercise Prices |  | Outstanding |  | Life |  | Price |  | Exercisable |  | Price
$15.50 to $15.65 | ​ | 57,616 | ​ | 0.25 | ​ | $ | 15.64 | ​ | 57,616 | ​ | $ | 15.64
$17.10 to $18.00 |  | 108,890 |  | 1.57 | ​ |  | 17.32 |  | 108,890 | ​ |  | 17.32
$22.64 to $22.64 |  | 53,316 |  | 3.08 | ​ |  | 22.64 |  | 53,316 | ​ |  | 22.64
$36.00 to $41.95 |  | 36,773 |  | 6.67 | ​ |  | 38.30 |  | 23,060 | ​ |  | 38.06
$42.65 to $48.50 |  | 67,908 |  | 5.63 | ​ |  | 43.76 |  | 51,995 | ​ |  | 43.80
$53.87 to $56.26 |  | 22,175 |  | 9.17 | ​ |  | 53.89 |  | 200 | ​ |  | 53.87
​ |  | 346,678 |  |  | ​ |  |  |  | 295,077 | ​ |  |
​ |  | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ |  |
​
Summary of changes in nonvested restricted stock awards | ​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | ​ | December 31,
​ |  | 2022 |  | 2021 |  | 2020
Outstanding, beginning | ​ | ​ | 97,107 | ​ | ​ | 102,489 | ​ | ​ | 106,826
Granted* | ​ |  | 35,525 | ​ |  | 38,360 | ​ |  | 34,559
Released | ​ |  | (47,766) | ​ |  | (43,691) | ​ |  | (37,296)
Forfeited | ​ |  | (751) | ​ |  | (51) | ​ |  | (1,600)
Outstanding, ending | ​ | ​ | 84,115 | ​ | ​ | 97,107 | ​ | ​ | 102,489
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
Weighted average fair value per share granted | ​ | $ | 54.20 | ​ | $ | 45.18 | ​ | $ | 39.39
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ * At December 31, 2022, includes 8,527 shares of restricted stock, 64,494 restricted stock units. At December 31, 2021, includes 12,412 shares of restricted stock and 25,948 restricted stock units. At December 31, 2020, includes 8,913 shares of restricted stock and 25,646 restricted stock units. ​
Schedule of Stock purchase plan | ​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ |  | 2022 |  | 2021 |  | 2020
Shares granted |  | ​ | 28,421 |  | ​ | 28,396 |  | ​ | 38,738
Shares purchased |  | ​ | 27,103 |  | ​ | 30,543 |  | ​ | 37,114
Weighted average fair value per share granted | ​ | $ | 7.88 | ​ | $ | 7.67 | ​ | $ | 6.03

X
- Definition Tabular disclosure of share-based payment arrangement. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 1 -URI https://asc.fasb.org/extlink&oid=128089324&loc=d3e5047-113901 Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -URI https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901 + Details
Name: | us-gaap_DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of the changes in outstanding nonvested restricted stock shares. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (c) -URI https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901 + Details
Name: | us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of employee stock purchase plan activity. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (g) -URI https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901 + Details
Name: | us-gaap_ScheduleOfShareBasedCompensationEmployeeStockPurchasePlanActivityTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure of option exercise prices, by grouped ranges, including the upper and lower limits of the price range, the number of shares under option, weighted average exercise price and remaining contractual option terms. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -URI https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901 + Details
Name: | us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

X
- Definition Tabular disclosure for stock option plans. Includes, but is not limited to, outstanding awards at beginning and end of year, grants, exercises, forfeitures, and weighted-average grant date fair value. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (d) -URI https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901 Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (e) -URI https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901 Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 718 -SubTopic 10 -Section 50 -Paragraph 2 -Subparagraph (c)(1) -URI https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901 + Details
Name: | us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration

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