Note 9 - Stock-based Compensation - Options Outstanding (Details) | 12 Months Ended |
Dec. 31, 2020$ / sharesshares |
Options outstanding (in shares) | shares | 2,137,499 |
Options outstanding, weighted average remaining contractual life (Year) | 7 years 105 days |
Options outstanding, weighted average exercise price (in dollars per share) | $ 6.773 |
Options excercisable (in shares) | shares | 1,636,413 |
Options excercisable, weighted average remaining contractual life (Year) | 6 years 266 days |
Exercise Price Range 1 [Member] | |
Per share exercise price, lower limit (in dollars per share) | $ 0.875 |
Per share exercise price, upper limit (in dollars per share) | $ 1.10 |
Options outstanding (in shares) | shares | 22,000 |
Options outstanding, weighted average remaining contractual life (Year) | 1 year 335 days |
Options outstanding, weighted average exercise price (in dollars per share) | $ 1.018 |
Options excercisable (in shares) | shares | 22,000 |
Options excercisable, weighted average remaining contractual life (Year) | 1 year 335 days |
Exercise Price Range 2 [Member] | |
Per share exercise price, lower limit (in dollars per share) | $ 2.275 |
Per share exercise price, upper limit (in dollars per share) | $ 2.50 |
Options outstanding (in shares) | shares | 22,000 |
Options outstanding, weighted average remaining contractual life (Year) | 3 years 73 days |
Options outstanding, weighted average exercise price (in dollars per share) | $ 2.439 |
Options excercisable (in shares) | shares | 22,000 |
Options excercisable, weighted average remaining contractual life (Year) | 3 years 73 days |
Exercise Price Range 3 [Member] | |
Per share exercise price, lower limit (in dollars per share) | $ 2.95 |
Per share exercise price, upper limit (in dollars per share) | $ 3.70 |
Options outstanding (in shares) | shares | 762,100 |
Options outstanding, weighted average remaining contractual life (Year) | 7 years 135 days |
Options outstanding, weighted average exercise price (in dollars per share) | $ 3.038 |
Options excercisable (in shares) | shares | 600,650 |
Options excercisable, weighted average remaining contractual life (Year) | 7 years 32 days |
Exercise Price Range 4 [Member] | |
Per share exercise price, lower limit (in dollars per share) | $ 4.50 |
Per share exercise price, upper limit (in dollars per share) | $ 8.10 |
Options outstanding (in shares) | shares | 751,900 |
Options outstanding, weighted average remaining contractual life (Year) | 7 years 248 days |
Options outstanding, weighted average exercise price (in dollars per share) | $ 6.241 |
Options excercisable (in shares) | shares | 571,300 |
Options excercisable, weighted average remaining contractual life (Year) | 7 years 54 days |
Exercise Price Range 5 [Member] | |
Per share exercise price, lower limit (in dollars per share) | $ 9.99 |
Per share exercise price, upper limit (in dollars per share) | $ 10.10 |
Options outstanding (in shares) | shares | 266,048 |
Options outstanding, weighted average remaining contractual life (Year) | 8 years 339 days |
Options outstanding, weighted average exercise price (in dollars per share) | $ 9.994 |
Options excercisable (in shares) | shares | 107,012 |
Options excercisable, weighted average remaining contractual life (Year) | 8 years 10 days |
Exercise Price Range 6 [Member] | |
Per share exercise price, lower limit (in dollars per share) | $ 15.10 |
Options outstanding (in shares) | shares | 313,451 |
Options outstanding, weighted average remaining contractual life (Year) | 5 years 149 days |
Options outstanding, weighted average exercise price (in dollars per share) | $ 15.10 |
Options excercisable (in shares) | shares | 313,451 |
Options excercisable, weighted average remaining contractual life (Year) | 5 years 149 days |