Quarterly report [Sections 13 or 15(d)]

Stock Options (Details - Option activity)

v3.25.2
Stock Options (Details - Option activity) - Share-Based Payment Arrangement, Option [Member] - $ / shares
6 Months Ended
Jun. 30, 2025
Jun. 30, 2024
Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]    
Number of options outstanding, beginning balance 952,140  
Weighted average remaining contractual life 4 years 6 months 29 days 4 years 9 months 14 days
Weighted average exercise price per share, beginning balance $ 12.72  
Number of options, granted 0 0
Weighted average exercise price per share, granted $ 0  
Number of options, exercised 0  
Weighted average exercise price per share, exercised $ 0  
Number of options, forfeited/cancelled (25,547)  
Weighted average exercise price per share, forfeited/cancelled $ 7.70  
Number of options, expired (44,280)  
Weighted average exercise price per share, expired $ 16.45  
Number of options outstanding, ending balance 882,313  
Weighted average exercise price per share, ending balance $ 12.68  
Number of options, unvested 0  
Weighted average exercise price per share, unvested $ 0  
Number of options, vested and exercisable 882,313  
Weighted- average remaining contractual life, vested and exercisable 4 years 6 months 29 days  
Weighted average exercise price per share, vested and exercisable $ 12.68