Note 10 - Employee Benefit Plans and Stock-Based Compensation (Tables)
|
12 Months Ended |
Dec. 31, 2025 |
| Notes Tables |
|
| Share-Based Payment Arrangement, Option, Activity [Table Text Block] |
| | | | | | | | | Weighted- | | | | |
| | | | | | | | | average | | | | |
| | | | | | Weighted- | | | Remaining | | | | |
| | | Number of | | | average | | | Contractual | | | Aggregate | |
| | | Options | | | Exercise | | | Life | | | Intrinsic | |
| Stock Options | | Outstanding | | | Price | | | (in years) | | | Value | |
| | | | | | | | | | | | | |
| Balance as of January 1, 2023 | | | 1,206 | | | $ | 5.09 | | | | 5.08 | | | $ | 630 | |
| Granted | | | — | | | | — | | | | | | | |
| Exercised | | | (4 | ) | | | 2.30 | | | | | | | |
| Canceled and expired | | | (4 | ) | | | 4.12 | | | | | | | |
| Balance as of December 31, 2023 | | | 1,198 | | | $ | 5.10 | | | | 4.09 | | | $ | 14 | |
| Granted | | | — | | | | — | | | | | | | |
| Exercised | | | (12 | ) | | | 2.24 | | | | | | | |
| Canceled and expired | | | (11 | ) | | | 2.47 | | | | | | | |
| Balance as of December 31, 2024 | | | 1,175 | | | $ | 5.16 | | | | 3.16 | | | $ | — | |
| Granted | | | — | | | | — | | | | | | | |
| Exercised | | | (339 | ) | | | 4.73 | | | | | | | |
| Canceled and expired | | | (1 | ) | | | 2.18 | | | | | | | |
| Balance as of December 31, 2025 | | | 835 | | | $ | 5.33 | | | | 2.61 | | | $ | 9,194 | |
| Options exercisable as of December 31, 2025 | | | 835 | | | $ | 5.33 | | | | 2.61 | | | $ | 9,194 | |
|
| Share-Based Payment Arrangement, Option, Exercise Price Range [Table Text Block] |
| | | | | | | | | | | | Options Vested and | |
| | | Options Outstanding as of | | | Exercisable as of | |
| | | December 31, 2025 | | | December 31, 2025 | |
| | | | | | | | | Weighted‑ | | | | | | | |
| | | | | | | Weighted‑ | | | average | | | | | | | Weighted‑ | |
| Range of | | | | | average | | | Remaining | | | | | | Average | |
| Exercise Price | | Shares | | | Exercise Price | | | Contractual Life | | | Shares | | | Exercise Price | |
| $3.06 - $3.06 | | | 297 | | | $ | 3.06 | | | | 3.85 | | | | 297 | | | $ | 3.06 | |
| $5.21 - $5.21 | | | 156 | | | $ | 5.21 | | | | 0.82 | | | | 156 | | | $ | 5.21 | |
| $5.77 - $5.77 | | | 228 | | | $ | 5.77 | | | | 2.85 | | | | 228 | | | $ | 5.77 | |
| $7.95 - $7.95 | | | 30 | | | $ | 7.95 | | | | 1.08 | | | | 30 | | | $ | 7.95 | |
| $9.50 - $9.50 | | | 124 | | | $ | 9.50 | | | | 1.82 | | | | 124 | | | $ | 9.50 | |
| | | | 835 | | | $ | 5.33 | | | | 2.61 | | | | 835 | | | $ | 5.33 | |
|
| Share-Based Payment Arrangement, Restricted Stock and Restricted Stock Unit, Activity [Table Text Block] |
| | | | | | Weighted- | |
| | | | | | | Average | |
| | | | | | Grant Date | |
| Stock Awards | | Shares | | | Share Value | |
| Non-vested as of January 1, 2023 | | | 984 | | | $ | 5.55 | |
| Granted | | | 692 | | | $ | 2.20 | |
| Vested | | | (446 | ) | | $ | 5.25 | |
| Forfeited | | | (10 | ) | | $ | 6.37 | |
| Non-vested as of December 31, 2023 | | | 1,220 | | | $ | 3.75 | |
| Granted | | | 811 | | | $ | 2.40 | |
| Vested | | | (485 | ) | | $ | 4.39 | |
| Forfeited | | | (5 | ) | | $ | 2.99 | |
| Non-vested as of December 31, 2024 | | | 1,541 | | | $ | 2.84 | |
| Granted | | | 1,233 | | | $ | 4.75 | |
| Vested | | | (957 | ) | | $ | 2.77 | |
| Forfeited | | | (51 | ) | | $ | 2.13 | |
| Non-vested as of December 31, 2025 | | | 1,766 | | | $ | 4.23 | |
|
| Share-Based Payment Arrangement, Performance Shares, Activity [Table Text Block] |
| | | | | | Weighted- | |
| | | | | | | Average | |
| | | | | | Grant Date | |
| Stock Awards | | Shares | | | Share Value | |
| Non-vested as of January 1, 2024 | | | 38 | | | $ | 15.37 | |
| Granted | | | 301** | | | $ | 2.28 | |
| Vested | | | (38 | ) | | $ | 15.37 | |
| Forfeited | | | — | | | $ | — | |
| Non-vested as of December 31, 2024 | | | 301 | | | $ | 2.28 | |
| Granted | | | 294* | | | $ | 2.23 | |
| Vested | | | (151 | ) | | $ | 2.28 | |
| Forfeited | | | — | | | $ | — | |
| Non-vested as of December 31, 2025 | | | 444 | | | $ | 2.25 | |
|
| Schedule of Share based Compensation, Common Stock Reserved For Future Issuance [Table Text Block] |
| Options outstanding | | | 835 | |
| Restricted stock awards outstanding | | | 2,210 | |
| Stock available for future grant: 2025 Equity Incentive Plan | | | 1,521 | |
| Total | | | 4,566 | |
|
| Share-Based Payment Arrangement, Cost by Plan [Table Text Block] |
| | | Year Ended | |
| | | December 31, | |
| | | 2025 | | | 2024 | | | 2023 | |
| Cost of revenue | | $ | 289 | | | $ | 322 | | | $ | 414 | |
| Selling, general and administrative | | | 2,341 | | | | 2,295 | | | | 2,502 | |
| Research and development | | | 662 | | | | 480 | | | | 624 | |
| Net effect on net loss | | $ | 3,292 | | | $ | 3,097 | | | $ | 3,540 | |
| Shares used in computing basic net income (loss) per share | | | 43,933 | | | | 43,154 | | | | 42,643 | |
| Shares used in computing diluted net income (loss) per share | | | 43,933 | | | | 43,154 | | | | 42,643 | |
| Effect on basic net income (loss) per share | | $ | 0.07 | | | $ | 0.07 | | | $ | 0.08 | |
| Effect on diluted net income (loss) per share | | $ | 0.07 | | | $ | 0.07 | | | $ | 0.08 | |
|