v3.26.1
Note 11 - Stock-based Compensation - Summary of Stock Options Outstanding and Exercisable (Details) - $ / shares
9 Months Ended
Apr. 30, 2026
Jul. 31, 2025
Options Outstanding (in shares) 3,435,312 4,594,207
Options Outstanding, Weighted Average Exercise Price (in dollars per share) $ 2.78 $ 2.71
Options Outstanding, Remaining Term (Year) 5 years 7 months 9 days  
Options Exercisable (in shares) 3,230,535  
Options Exercisable, Weighted Average Exercise Price (in dollars per share) $ 2.58  
Options Exercisable, Remaining Term (Year) 5 years 5 months 8 days  
Exercise Price Range 1 [Member]    
Range of Exercise Prices, Lower Limit (in dollars per share) $ 0.91  
Range of Exercise Prices, Upper Limit (in dollars per share) $ 0.99  
Options Outstanding (in shares) 847,750  
Options Outstanding, Weighted Average Exercise Price (in dollars per share) $ 0.92  
Options Outstanding, Remaining Term (Year) 4 years 10 days  
Options Exercisable (in shares) 847,750  
Options Exercisable, Weighted Average Exercise Price (in dollars per share) $ 0.92  
Options Exercisable, Remaining Term (Year) 4 years 10 days  
Exercise Price Range 2 [Member]    
Range of Exercise Prices, Lower Limit (in dollars per share) $ 1  
Range of Exercise Prices, Upper Limit (in dollars per share) $ 1.99  
Options Outstanding (in shares) 475,000  
Options Outstanding, Weighted Average Exercise Price (in dollars per share) $ 1.1  
Options Outstanding, Remaining Term (Year) 4 years 2 months 15 days  
Options Exercisable (in shares) 475,000  
Options Exercisable, Weighted Average Exercise Price (in dollars per share) $ 1.1  
Options Exercisable, Remaining Term (Year) 4 years 2 months 15 days  
Exercise Price Range 3 [Member]    
Range of Exercise Prices, Lower Limit (in dollars per share) $ 2  
Range of Exercise Prices, Upper Limit (in dollars per share) $ 2.99  
Options Outstanding (in shares) 434,649  
Options Outstanding, Weighted Average Exercise Price (in dollars per share) $ 2.28  
Options Outstanding, Remaining Term (Year) 5 years 2 months 1 day  
Options Exercisable (in shares) 434,649  
Options Exercisable, Weighted Average Exercise Price (in dollars per share) $ 2.28  
Options Exercisable, Remaining Term (Year) 5 years 2 months 1 day  
Exercise Price Range 4 [Member]    
Range of Exercise Prices, Lower Limit (in dollars per share) $ 3  
Range of Exercise Prices, Upper Limit (in dollars per share) $ 3.99  
Options Outstanding (in shares) 1,209,255  
Options Outstanding, Weighted Average Exercise Price (in dollars per share) $ 3.63  
Options Outstanding, Remaining Term (Year) 6 years 4 months 13 days  
Options Exercisable (in shares) 1,159,132  
Options Exercisable, Weighted Average Exercise Price (in dollars per share) $ 3.62  
Options Exercisable, Remaining Term (Year) 6 years 3 months 29 days  
Exercise Price Range 5 [Member]    
Range of Exercise Prices, Lower Limit (in dollars per share) $ 4  
Range of Exercise Prices, Upper Limit (in dollars per share) $ 4.99  
Options Outstanding (in shares) 14,000  
Options Outstanding, Weighted Average Exercise Price (in dollars per share) $ 4.36  
Options Outstanding, Remaining Term (Year) 8 years 5 months 23 days  
Options Exercisable (in shares) 9,000  
Options Exercisable, Weighted Average Exercise Price (in dollars per share) $ 4.44  
Options Exercisable, Remaining Term (Year) 8 years 2 months 23 days  
Exercise Price Range 6 [Member]    
Range of Exercise Prices, Lower Limit (in dollars per share) $ 5  
Range of Exercise Prices, Upper Limit (in dollars per share) $ 5.99  
Options Outstanding (in shares) 313,768  
Options Outstanding, Weighted Average Exercise Price (in dollars per share) $ 5.49  
Options Outstanding, Remaining Term (Year) 8 years 2 months 23 days  
Options Exercisable (in shares) 219,963  
Options Exercisable, Weighted Average Exercise Price (in dollars per share) $ 5.48  
Options Exercisable, Remaining Term (Year) 8 years 2 months 23 days  
Exercise Price Range 7 [Member]    
Range of Exercise Prices, Lower Limit (in dollars per share) $ 6  
Range of Exercise Prices, Upper Limit (in dollars per share) $ 6.99  
Options Outstanding (in shares) 64,558  
Options Outstanding, Weighted Average Exercise Price (in dollars per share) $ 6.51  
Options Outstanding, Remaining Term (Year) 8 years 1 month 2 days  
Options Exercisable (in shares) 58,455  
Options Exercisable, Weighted Average Exercise Price (in dollars per share) $ 6.54  
Options Exercisable, Remaining Term (Year) 8 years 21 days  
Exercise Price Range 8 [Member]    
Range of Exercise Prices, Lower Limit (in dollars per share) $ 7  
Range of Exercise Prices, Upper Limit (in dollars per share) $ 7.99  
Options Outstanding (in shares) 10,000  
Options Outstanding, Weighted Average Exercise Price (in dollars per share) $ 7.63  
Options Outstanding, Remaining Term (Year) 7 years 8 months 23 days  
Options Exercisable (in shares) 10,000  
Options Exercisable, Weighted Average Exercise Price (in dollars per share) $ 7.63  
Options Exercisable, Remaining Term (Year) 7 years 8 months 23 days  
Exercise Price Range 9 [Member]    
Range of Exercise Prices, Lower Limit (in dollars per share) $ 8  
Range of Exercise Prices, Upper Limit (in dollars per share) $ 8.68  
Options Outstanding (in shares) 66,332  
Options Outstanding, Weighted Average Exercise Price (in dollars per share) $ 8.68  
Options Outstanding, Remaining Term (Year) 9 years 3 months  
Options Exercisable (in shares) 16,586  
Options Exercisable, Weighted Average Exercise Price (in dollars per share) $ 8.68  
Options Exercisable, Remaining Term (Year) 9 years 3 months