v3.26.1
Note 3 - Stock Option Activity (Details) - USD ($)
$ / shares in Units, $ in Thousands
3 Months Ended
Mar. 31, 2026
Mar. 31, 2025
Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding [Roll Forward]    
Outstanding-Number of options (in shares) 176,145 137,275
Granted-Number of options (in shares) 37,000 68,975
Exercised-Number of options (in shares) (24,750) (5,225)
Forfeited-Number of options (in shares) (1,950) (19,150)
Outstanding ending-Number of options (in shares) 186,445 181,875
Exercisable-Number of options (in shares) 58,085 60,380
Outstanding-Weighted average exercise price (in dollars per share) $ 31.07 $ 30.51
Granted-Weighted average exercise price (in dollars per share) 38 33.5
Exercised-Weighted average exercise price (in dollars per share) 31.42 29.81
Forfeited-Weighted average exercise price (in dollars per share) 32.5 36.5
Outstanding ending-Weighted average exercise price (in dollars per share) 32.38 31.04
Exercisable-Weighted average exercise price (in dollars per share) $ 32.11 $ 32.79
Outstanding ending-Weighted average remaining contractual term 7 years 7 months 6 days 7 years 4 months 20 days
Exercisable-Weighted average remaining contractual term 5 years 18 days 3 years 6 months 29 days
Outstanding Beginning-Aggregate intrinsic value $ 1,569 $ 723
Granted-Aggregate intrinsic value 73 121
Exercised-Aggregate intrinsic value 212 28
Forfeited -Aggregate intrinsic value 15  
Outstanding ending-Aggregate intrinsic value 1,416 816
Exercisable-Aggregate intrinsic value $ 457 $ 198