v3.26.1
Stockholders' Equity - Summary of Stock Options Outstanding and Exercisable (Details)
12 Months Ended
Apr. 30, 2026
$ / shares
shares
Share-Based Payment Arrangement, Option, Exercise Price Range [Line Items]  
Number of Options Outstanding | shares 1,970,650
Options Outstanding, Weighted Average Exercise Price $ 3.9
Options Outstanding, Weighted Average Remaining Contractual Life (years) 2 years 2 months 8 days
Number of Options Exercisable | shares 1,782,382
Options Exercisable, Weighted Average Exercise Price $ 3.72
Options Exercisable, Weighted Average Remaining Contractual Life (years) 1 year 11 months 12 days
2.00 to 2.99  
Share-Based Payment Arrangement, Option, Exercise Price Range [Line Items]  
Exercise Price, Lower Range Limit $ 2
Exercise Price, Upper Range Limit $ 2.99
Number of Options Outstanding | shares 383,300
Options Outstanding, Weighted Average Exercise Price $ 2.92
Options Outstanding, Weighted Average Remaining Contractual Life (years) 2 years 3 months 21 days
Number of Options Exercisable | shares 383,300
Options Exercisable, Weighted Average Exercise Price $ 2.92
Options Exercisable, Weighted Average Remaining Contractual Life (years) 2 years 3 months 21 days
3.00 to 3.99  
Share-Based Payment Arrangement, Option, Exercise Price Range [Line Items]  
Exercise Price, Lower Range Limit $ 3
Exercise Price, Upper Range Limit $ 3.99
Number of Options Outstanding | shares 1,130,088
Options Outstanding, Weighted Average Exercise Price $ 3.57
Options Outstanding, Weighted Average Remaining Contractual Life (years) 1 year 7 months 9 days
Number of Options Exercisable | shares 1,113,294
Options Exercisable, Weighted Average Exercise Price $ 3.57
Options Exercisable, Weighted Average Remaining Contractual Life (years) 1 year 6 months 25 days
4.00 to 4.99  
Share-Based Payment Arrangement, Option, Exercise Price Range [Line Items]  
Exercise Price, Lower Range Limit $ 4
Exercise Price, Upper Range Limit $ 4.99
Number of Options Outstanding | shares 73,000
Options Outstanding, Weighted Average Exercise Price $ 4.13
Options Outstanding, Weighted Average Remaining Contractual Life (years) 10 months 17 days
Number of Options Exercisable | shares 73,000
Options Exercisable, Weighted Average Exercise Price $ 4.13
Options Exercisable, Weighted Average Remaining Contractual Life (years) 10 months 17 days
5.00 and above  
Share-Based Payment Arrangement, Option, Exercise Price Range [Line Items]  
Exercise Price, Lower Range Limit $ 5
Number of Options Outstanding | shares 384,262
Options Outstanding, Weighted Average Exercise Price $ 5.82
Options Outstanding, Weighted Average Remaining Contractual Life (years) 4 years 3 days
Number of Options Exercisable | shares 212,788
Options Exercisable, Weighted Average Exercise Price $ 5.78
Options Exercisable, Weighted Average Remaining Contractual Life (years) 3 years 8 months 1 day