v3.26.1
Note 4 - Stock Option Activity (Details) - USD ($)
$ / shares in Units, $ in Thousands
6 Months Ended
Jun. 30, 2026
Jun. 30, 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) (31,520) (5,325)
Forfeited-Number of options (in shares) (1,950) (21,050)
Outstanding ending-Number of options (in shares) 179,675 179,875
Exercisable-Number of options (in shares) 51,315 60,280
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) 32 29.69
Forfeited-Weighted average exercise price (in dollars per share) 32.5 36.04
Outstanding ending-Weighted average exercise price (in dollars per share) 32.32 31.04
Exercisable-Weighted average exercise price (in dollars per share) $ 31.85 $ 32.8
Outstanding ending-Weighted average remaining contractual term 7 years 6 months 3 days 7 years 1 month 9 days
Exercisable-Weighted average remaining contractual term 4 years 11 months 26 days 3 years 3 months 25 days
Outstanding Beginning-Aggregate intrinsic value $ 2,251 $ 578
Granted-Aggregate intrinsic value 216 13
Exercised-Aggregate intrinsic value 373 21
Forfeited -Aggregate intrinsic value 22  
Outstanding ending-Aggregate intrinsic value 2,072 565
Exercisable-Aggregate intrinsic value $ 616 $ 141