v3.26.1
INCOME (LOSS) PER COMMON SHARE - Schedule of Dilutive Shares (Details) - USD ($)
3 Months Ended 6 Months Ended
Jun. 30, 2026
Jun. 30, 2025
Jun. 30, 2026
Jun. 30, 2025
Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]        
Net income (loss) $ (683,915) $ 1,205,068 $ (1,461,438) $ 1,062,268
Weighted average shares outstanding - basic (in shares) 17,450,639 16,947,527 17,484,781 16,980,960
Basic loss per common share (in dollars per share) $ (0.04) $ 0.07 $ (0.08) $ 0.06
Shares offset for in-the-money options (treasury stock method) (in dollars per share) $ 0 $ (78) $ 0 $ (76)
Weighted average shares outstanding - diluted (in shares) 17,450,639 17,817,378 17,484,781 17,827,552
Diluted income (loss) per common share (in dollars per share) $ (0.04) $ 0.07 $ (0.08) $ 0.06
Stock options        
Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]        
Incremental common shares attributable to dilutive effect of contingently issuable shares (in shares) 0 313 0 313
Restricted stock units        
Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]        
Incremental common shares attributable to dilutive effect of contingently issuable shares (in shares) 0 869,616 0 846,355