v3.26.3
Stockholders' Equity - Summary of Stock Options Outstanding and Exercisable (Details)
3 Months Ended
Jul. 31, 2026
$ / shares
shares
Share-Based Payment Arrangement, Option, Exercise Price Range [Line Items]  
Number of Options Outstanding | shares 1,521,356
Options Outstanding, Weighted Average Exercise Price $ 4
Options Outstanding, Weighted Average Remaining Contractual Life (years) 2 years 6 months 3 days
Number of Options Exercisable | shares 1,349,882
Options Exercisable, Weighted Average Exercise Price $ 3.77
Options Exercisable, Weighted Average Remaining Contractual Life (years) 2 years 3 months 18 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 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 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 730,794
Options Outstanding, Weighted Average Exercise Price $ 3.61
Options Outstanding, Weighted Average Remaining Contractual Life (years) 2 years 1 month 2 days
Number of Options Exercisable | shares 730,794
Options Exercisable, Weighted Average Exercise Price $ 3.61
Options Exercisable, Weighted Average Remaining Contractual Life (years) 2 years 1 month 2 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 23,000
Options Outstanding, Weighted Average Exercise Price $ 4.21
Options Outstanding, Weighted Average Remaining Contractual Life (years) 2 years 6 months 18 days
Number of Options Exercisable | shares 23,000
Options Exercisable, Weighted Average Exercise Price $ 4.21
Options Exercisable, Weighted Average Remaining Contractual Life (years) 2 years 6 months 18 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) 3 years 9 months 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 5 months 1 day