Note 12 - Share-based Compensation - Information Regarding Stock Options Outstanding (Details)
12 Months Ended
Dec. 31, 2021
$ / shares
shares
Exercise Price Range One [Member]  
Lower range (in dollars per share) $ 1.50
Number outstanding (in shares) | shares 652,750
Options outstanding, weighted average remaining contractual term (Year) 1 year 3 months 25 days
Options outstanding, weighted average exercise price (in dollars per share) $ 1.61
Options exercisable, number of shares (in shares) | shares 652,750
Options exercisable, weighted average exercise price (in dollars per share) $ 1.61
Exercise Price Range Two [Member]  
Lower range (in dollars per share) $ 3.85
Number outstanding (in shares) | shares 2,638,133
Options outstanding, weighted average remaining contractual term (Year) 5 years 9 months 29 days
Options outstanding, weighted average exercise price (in dollars per share) $ 5.20
Options exercisable, number of shares (in shares) | shares 1,373,564
Options exercisable, weighted average exercise price (in dollars per share) $ 5.33
Exercise Price Range Three [Member]  
Lower range (in dollars per share) $ 5.88
Number outstanding (in shares) | shares 295,000
Options outstanding, weighted average remaining contractual term (Year) 8 years 5 months 12 days
Options outstanding, weighted average exercise price (in dollars per share) $ 6.58
Options exercisable, number of shares (in shares) | shares 38,749
Options exercisable, weighted average exercise price (in dollars per share) $ 6.34
Exercise Price Range Four [Member]  
Upper range (in dollars per share) $ 11.22
Number outstanding (in shares) | shares 350,000
Options outstanding, weighted average remaining contractual term (Year) 3 months 29 days
Options outstanding, weighted average exercise price (in dollars per share) $ 11.22
Options exercisable, number of shares (in shares) | shares 350,000
Options exercisable, weighted average exercise price (in dollars per share) $ 11.22