Note 5 - Stock-based Compensation (Tables)
|
12 Months Ended |
Dec. 31, 2025 |
| Notes Tables |
|
| Schedule of Share-Based Payment Award, Employee Stock Purchase Plan, Valuation Assumptions [Table Text Block] |
| | | Year Ended December 31, | |
| | | 2025 | |
| Stock price | | | $8.00 - $12.52 | |
| Risk-free interest rate | | | 3.5% - 4.3% | |
| Expected volatility | | | 69.5% - 105.8% | |
| Expected term | | | 0.5 - 1.5 | |
|
| Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block] |
| | | Year Ended December 31, | |
| | | 2025 | | | 2024 | |
| Stock-based compensation: | | | | | | | | |
| Cost of revenue | | $ | 1,112 | | | $ | 706 | |
| Sales and marketing | | | 2,295 | | | | 2,788 | |
| Research, development and engineering | | | 3,953 | | | | 2,522 | |
| General and administrative | | | 4,606 | | | | 4,013 | |
| Stock-based compensation expense | | | 11,966 | | | | 10,029 | |
| Capitalized to software and patent costs | | | 115 | | | | 30 | |
| Total stock-based compensation | | $ | 12,081 | | | $ | 10,059 | |
|
| Share-Based Payment Arrangement, Nonvested Award, Cost [Table Text Block] |
| | | December 31, | | | December 31, | |
| | | 2025 | | | 2024 | |
| Total unrecognized compensation costs | | $ | 13,110 | | | $ | 16,226 | |
|
| Employee Service Share Based Compensation Non Vested Awards Compensation Cost Not Yet Recognized Period for Recognition [Table Text Block] |
| | | | | | | | | | | | | | | | | |
| | | RSAs | | | RSUs | | | PRSUs | | | ESPP | |
| Weighted average period (in years) | | | 0.87 | | | | 1.38 | | | | 1.14 | | | | 0.95 | |
|
| Nonvested Restricted Stock Shares Activity [Table Text Block] |
| | | | | | | Weighted | |
| | | | | | | Average | |
| | | Number of | | | Grant Date | |
| | | Shares | | | Fair Value | |
| Unvested balance, December 31, 2023 | | | 105 | | | $ | 29.89 | |
| Granted | | | 45 | | | $ | 28.37 | |
| Vested | | | (84 | ) | | $ | 29.20 | |
| Forfeited | | | (7 | ) | | $ | 27.57 | |
| Unvested balance, December 31, 2024 | | | 59 | | | $ | 29.98 | |
| Granted | | | 69 | | | $ | 12.69 | |
| Vested | | | (43 | ) | | $ | 30.50 | |
| Forfeited | | | — | | | $ | — | |
| Unvested balance at December 31, 2025 | | | 85 | | | $ | 15.77 | |
|
| Schedule of Fair Value of Restricted Stock Awards Vested [Table Text Block] |
| | | Year Ended December 31, | |
| | | 2025 | | | 2024 | |
| Fair value of RSAs vested | | $ | 724 | | | $ | 2,234 | |
|
| Share-Based Payment Arrangement, Restricted Stock Unit, Activity [Table Text Block] |
| | | | | | | Weighted | |
| | | | | | | Average | |
| | | Number of | | | Grant Date | |
| | | Units | | | Fair Value | |
| Unvested balance, December 31, 2023 | | | 442 | | | $ | 23.77 | |
| Granted | | | 228 | | | $ | 35.29 | |
| Vested | | | (197 | ) | | $ | 26.86 | |
| Forfeited | | | (67 | ) | | $ | 26.58 | |
| Unvested balance, December 31, 2024 | | | 406 | | | $ | 28.27 | |
| Granted | | | 792 | | | $ | 12.30 | |
| Vested | | | (409 | ) | | $ | 16.80 | |
| Forfeited | | | (205 | ) | | $ | 26.32 | |
| Unvested balance, December 31, 2025 | | | 584 | | | $ | 15.32 | |
|
| Schedule of Fair Value of Restricted Stock Units Vested [Table Text Block] |
| | | Year Ended December 31, | |
| | | 2025 | | | 2024 | |
| Fair value of RSU awards vested | | $ | 5,237 | | | $ | 5,747 | |
|
| Share-Based Payment Arrangement, Performance Shares, Activity [Table Text Block] |
| | | | | | | Weighted | |
| | | | | | | Average | |
| | | Number of | | | Grant Date | |
| | | Units | | | Fair Value | |
| Unvested balance, December 31, 2022 | | | 67 | | | $ | 31.92 | |
| Change in units based on performance expectations | | | (6 | ) | | $ | 32.02 | |
| Granted | | | 134 | | | $ | 27.75 | |
| Vested | | | (2 | ) | | $ | 32.02 | |
| Forfeited | | | (1 | ) | | $ | 32.02 | |
| Unvested balance, December 31, 2023 | | | 192 | | | $ | 29.01 | |
| Change in units based on performance expectations | | | 30 | | | $ | 22.37 | |
| Granted | | | 73 | | | $ | 36.77 | |
| Vested | | | (60 | ) | | $ | 22.37 | |
| Forfeited | | | (20 | ) | | $ | 34.17 | |
| Unvested balance, December 31, 2024 | | | 215 | | | $ | 32.08 | |
| Change in units based on performance expectations | | | (5 | ) | | $ | 24.71 | |
| Granted | | | 429 | | | $ | 15.06 | |
| Vested | | | (49 | ) | | $ | 44.17 | |
| Forfeited | | | (57 | ) | | $ | 25.47 | |
| Unvested balance, December 31, 2025 | | | 533 | | | $ | 20.70 | |
|
| Schedule of Fair Value of Performance Stock Units Vested [Table Text Block] |
| | | Year Ended December 31, | |
| | | 2025 | | | 2024 | |
| Fair value of PRSU awards vested | | $ | 1,707 | | | $ | 2,370 | |
|
| Schedule of Share-Based Compensation, Employee Stock Purchase Plan, Activity [Table Text Block] |
| | | Year Ended December 31, | |
| | | 2025 | |
| Shares Issued | | | 61 | |
| Weighted Average Purchase Price | | $ | 8.00 | |
| Weighted Average Fair Value of Purchase Rights | | $ | 5.59 | |
|
| Performance Shares [Member] |
|
| Notes Tables |
|
| Schedule of Share-Based Payment Award, Valuation Assumptions [Table Text Block] |
| | | Year Ended December 31, | |
| | | 2025 | | | 2024 | |
| Stock price | | $13.14 - $13.73 | | | $25.39 - $39.49 | |
| Expected volatility | | | 70.9 | % | | | 66.3 | % |
| Risk-free interest rate | | | 3.8 | % | | | 4.3 | % |
|