Note 5 - Stock-based Compensation - Stock Options Outstanding and Exercisable (Details) | 9 Months Ended |
Sep. 30, 2024 USD ($) $ / shares shares |
Share-Based Payment Arrangement, Option, Exercise Price Range, Lower Range Limit (in dollars per share) | $ 3.5 |
Share-Based Payment Arrangement, Option, Exercise Price Range, Upper Range Limit (in dollars per share) | $ 39.11 |
Share-Based Payment Arrangement, Options, Outstanding, Number (in shares) | shares | 59,000 |
Share-Based Payment Arrangement, Options, Outstanding, Weighted Average Remaining Contractual Term (Year) | 3 years 10 months 24 days |
Share-Based Payment Arrangement, Options, Outstanding, Weighted Average Exercise Price (in dollars per share) | $ 17.35 |
Share-Based Payment Arrangement, Options, Outstanding, Intrinsic Value | $ | $ 193,780 |
Share-Based Payment Arrangement, Option, Exercise Price Range, Upper Range Limit | $ 39.11 |
Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number | shares | 59,000 |
Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Remaining Contractual Term | 3 years 10 months 24 days |
Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price | $ 17.35 |
Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Intrinsic Value | $ | $ 193,780 |
Options Outstanding Exercise Price Range1 [Member] | |
Share-Based Payment Arrangement, Option, Exercise Price Range, Lower Range Limit (in dollars per share) | $ 3.5 |
Share-Based Payment Arrangement, Option, Exercise Price Range, Upper Range Limit (in dollars per share) | $ 3.86 |
Share-Based Payment Arrangement, Options, Outstanding, Number (in shares) | shares | 13,000 |
Share-Based Payment Arrangement, Options, Outstanding, Weighted Average Remaining Contractual Term (Year) | 2 years 6 months |
Share-Based Payment Arrangement, Options, Outstanding, Weighted Average Exercise Price (in dollars per share) | $ 3.75 |
Share-Based Payment Arrangement, Options, Outstanding, Intrinsic Value | $ | $ 140,020 |
Share-Based Payment Arrangement, Option, Exercise Price Range, Upper Range Limit | $ 3.86 |
Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number | shares | 13,000 |
Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Remaining Contractual Term | 2 years 6 months |
Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price | $ 3.75 |
Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Intrinsic Value | $ | $ 140,020 |
Options Outstanding Exercise Price Range2 [Member] | |
Share-Based Payment Arrangement, Option, Exercise Price Range, Upper Range Limit (in dollars per share) | $ 7.8 |
Share-Based Payment Arrangement, Options, Outstanding, Number (in shares) | shares | 8,000 |
Share-Based Payment Arrangement, Options, Outstanding, Weighted Average Remaining Contractual Term (Year) | 3 years 8 months 12 days |
Share-Based Payment Arrangement, Options, Outstanding, Weighted Average Exercise Price (in dollars per share) | $ 7.8 |
Share-Based Payment Arrangement, Options, Outstanding, Intrinsic Value | $ | $ 53,760 |
Share-Based Payment Arrangement, Option, Exercise Price Range, Upper Range Limit | $ 7.8 |
Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number | shares | 8,000 |
Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Remaining Contractual Term | 3 years 8 months 12 days |
Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price | $ 7.8 |
Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Intrinsic Value | $ | $ 53,760 |
Options Outstanding Exercise Price Range 3 [Member] | |
Share-Based Payment Arrangement, Option, Exercise Price Range, Upper Range Limit (in dollars per share) | $ 19.99 |
Share-Based Payment Arrangement, Options, Outstanding, Number (in shares) | shares | 30,000 |
Share-Based Payment Arrangement, Options, Outstanding, Weighted Average Remaining Contractual Term (Year) | 4 years 3 months 18 days |
Share-Based Payment Arrangement, Options, Outstanding, Weighted Average Exercise Price (in dollars per share) | $ 19.99 |
Share-Based Payment Arrangement, Options, Outstanding, Intrinsic Value | $ | $ 0 |
Share-Based Payment Arrangement, Option, Exercise Price Range, Upper Range Limit | $ 19.99 |
Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number | shares | 30,000 |
Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Remaining Contractual Term | 4 years 3 months 18 days |
Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price | $ 19.99 |
Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Intrinsic Value | $ | $ 0 |
Options Outstanding Exercise Price Range 4 [Member] | |
Share-Based Payment Arrangement, Option, Exercise Price Range, Upper Range Limit (in dollars per share) | $ 39.11 |
Share-Based Payment Arrangement, Options, Outstanding, Number (in shares) | shares | 8,000 |
Share-Based Payment Arrangement, Options, Outstanding, Weighted Average Remaining Contractual Term (Year) | 4 years 8 months 12 days |
Share-Based Payment Arrangement, Options, Outstanding, Weighted Average Exercise Price (in dollars per share) | $ 39.11 |
Share-Based Payment Arrangement, Option, Exercise Price Range, Upper Range Limit | $ 39.11 |
Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number | shares | 8,000 |
Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Remaining Contractual Term | 4 years 8 months 12 days |
Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price | $ 39.11 |