v3.26.1
Note 9 - Stock-based Compensation (Tables)
6 Months Ended
Jun. 30, 2026
Notes Tables  
Share-Based Payment Arrangement, Cost by Plan [Table Text Block]
  

Three Months Ended

  

Six Months Ended

 
  

June 30,

  

June 30,

 
  

2026

  

2025

  

2026

  

2025

 

Cost of revenue

 $65  $47  $130  $110 

Selling, general and administrative

  533   476   1,336   949 

Research and development

  164   110   331   220 

Net effect on net income (loss)

 $762  $633  $1,797  $1,279 
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, 2026

  835  $5.33   2.61  $9,194 

Granted

              

Exercised

  (367)  5.38         

Canceled and expired

              

Balance as of June 30, 2026

  468  $5.30   2.59  $31,254 

Options exercisable as of June 30, 2026

  468  $5.30   2.59  $31,254 
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, 2026

  1,766  $4.23 

Granted

  59  $68.95 

Vested

  (410) $2.23 

Forfeited

  (38) $2.45 

Non-vested as of June 30, 2026

  1,377  $7.71 
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, 2026

  444  $2.25 

Granted

    $ 

Vested

  (73) $2.23 

Forfeited

    $ 

Non-vested as of June 30, 2026

  371  $2.25