v3.26.1
Note 13 - Shareholders' Equity - Stock Option Activity (Details) - USD ($)
12 Months Ended
Dec. 31, 2025
Dec. 31, 2024
Dec. 31, 2023
Options cancelled, Shares (in shares) (3,200)    
Options cancelled, Weighted average exercise price (in dollars per share) $ 22.19    
Options outstanding, Weighted average remaining contractual term in years (Year) 1 year 2 months 12 days    
Options outstanding, Intrinsic value $ 1,840,328    
Options exercisable, Weighted average remaining contractual term in years (Year) 1 year 2 months 12 days    
Options granted (in shares) 30,803 107,200 0
Stock Option Plan 2022 [Member]      
Options outstanding, Shares (in shares) 210,200 105,500 117,200
Options outstanding, Weighted average exercise price (in dollars per share) $ 32.55 $ 31 $ 31
Options exercised, Shares (in shares) (5,100) (1,300) (1,300)
Options exercised, Weighted average exercise price (in dollars per share) $ 31.36 $ 31 $ 31
Options cancelled, Shares (in shares) (21,980) (1,200) (10,400)
Options cancelled, Weighted average exercise price (in dollars per share) $ 32.41 $ 34.07 $ 31
Options outstanding, Shares (in shares) 213,923 210,200 105,500
Options outstanding, Weighted average exercise price (in dollars per share) $ 32.38 $ 32.55 $ 31
Options outstanding, Weighted average remaining contractual term in years (Year) 7 years 2 months 12 days    
Options outstanding, Intrinsic value $ 2,633,200    
Options exercisable, Shares (in shares) 100,278    
Options exercisable, Weighted average exercise price (in dollars per share) $ 31.6    
Options exercisable, Weighted average remaining contractual term in years (Year) 6 years 8 months 12 days    
Options exercisable, Intrinsic value $ 1,312,809    
Options granted (in shares) 30,803 107,200 0
Options granted, Weighted average exercise price (in dollars per share) $ 31.09 $ 34.07  
Expected to vest, Shares (in shares) 95,936    
Expected to vest, Weighted average exercise price (in dollars per share) $ 33.16    
Expected to vest, Weighted average remaining contractual term in years (Year) 7 years 7 months 6 days    
Expected to vest, Intrinsic value $ 1,106,111    
Stock Option Plan 2013 [Member]      
Options outstanding, Shares (in shares) 131,847 165,517 189,917
Options outstanding, Weighted average exercise price (in dollars per share) $ 22.58 $ 21.52 $ 21.14
Options exercised, Shares (in shares) (45,505) (32,070) (24,400)
Options exercised, Weighted average exercise price (in dollars per share) $ 22.64 $ 17.03 $ 18.59
Options cancelled, Shares (in shares)   (1,600)  
Options cancelled, Weighted average exercise price (in dollars per share)   $ 24.4  
Options outstanding, Shares (in shares) 83,142 131,847 165,517
Options outstanding, Weighted average exercise price (in dollars per share) $ 22.56 $ 22.58 $ 21.52
Options exercisable, Shares (in shares) 83,142    
Options exercisable, Weighted average exercise price (in dollars per share) $ 22.56    
Options exercisable, Intrinsic value $ 1,840,328