| Schedule of Earnings Per Share, Basic and Diluted [Table Text Block] |
| | Three Months Ended June 30, | | | Six Months Ended June 30, | |
| | 2026 | | | 2025 | | | 2026 | | | 2025 | |
Numerator: | | | | | | | | | | | | | | | | |
Net loss | | $ | (6,177 | ) | | $ | (7,223 | ) | | $ | (11,531 | ) | | $ | (15,492 | ) |
Denominator: | | | | | | | | | | | | | | | | |
Weighted average shares outstanding | | | 31,252,003 | | | | 23,840,664 | | | | 31,176,650 | | | | 22,378,144 | |
Weighted average restricted shares vested not delivered | | | 292,931 | | | | 221,139 | | | | 288,160 | | | | 283,807 | |
Total basic weighted average shares outstanding | | | 31,544,934 | | | | 24,061,803 | | | | 31,464,810 | | | | 22,661,951 | |
Dilutive effect of assumed conversion of restricted stock units | | | — | | | | — | | | | — | | | | — | |
Total diluted weighted average shares outstanding | | | 31,544,934 | | | | 24,061,803 | | | | 31,464,810 | | | | 22,661,951 | |
Basic and diluted loss per share: | | | | | | | | | | | | | | | | |
Basic | | $ | (0.20 | ) | | $ | (0.30 | ) | | $ | (0.37 | ) | | $ | (0.68 | ) |
Diluted | | $ | (0.20 | ) | | $ | (0.30 | ) | | $ | (0.37 | ) | | $ | (0.68 | ) |
|
| Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table Text Block] |
| | Three Months Ended June 30, | | | Six Months Ended June 30, | |
| | 2026 | | | 2025 | | | 2026 | | | 2025 | |
Restricted stock units | | | 1,836,203 | | | | 836,393 | | | | 1,836,203 | | | | 836,393 | |
Stock options | | | 331,667 | | | | 331,667 | | | | 331,667 | | | | 331,667 | |
Common stock warrants | | | 7,701,383 | | | | 1,829,956 | | | | 7,701,383 | | | | 1,829,956 | |
Total anti-dilutive securities | | | 9,869,253 | | | | 2,998,016 | | | | 9,869,253 | | | | 2,998,016 | |
|