v3.26.1
Note 8 - Stock Plans (Tables)
6 Months Ended
Jun. 30, 2026
Notes Tables  
Share-Based Payment Arrangement, Option, Activity [Table Text Block]
              

Weighted

 
      

Weighted

      

Average

 
      

Average

  

Aggregate

  

Remaining

 
  

Number of

  

Exercise

  

Intrinsic

  

Contractual

 
  

Shares

  

Price

  

Value

  

Term (in years)

 

Options outstanding at Beginning of Period

  369,975  $8.21         

Granted

              

Expired

              

Cancelled / Forfeited

              

Exercised

              

Options outstanding at End of Period

  369,975  $8.21  $3,601,400   3.00 

Exercisable (vested) at End of Period

  369,975  $8.21  $3,601,400   3.00 
              

Weighted

 
      

Weighted

      

Average

 
      

Average

  

Aggregate

  

Remaining

 
  

Number of

  

Exercise

  

Intrinsic

  

Contractual

 
  

Shares

  

Price

  

Value

  

Term (in years)

 

Options outstanding at Beginning of Period

  422,527  $7.80         

Granted

              

Expired

              

Cancelled / Forfeited

              

Exercised

  (52,552)  4.90         

Options outstanding at End of Period

  369,975  $8.21  $3,601,400   3.00 

Exercisable (vested) at End of Period

  369,975  $8.21  $3,601,400   3.00 
Share-Based Payment Arrangement, Restricted Stock and Restricted Stock Unit, Activity [Table Text Block]
              

Weighted

 
      

Weighted

      

Average

 
      

Average

  

Aggregate

  

Remaining

 
  

Number of

  

Grant Date

  

Intrinsic

  

Contractual

 
  

Shares

  

Fair Value

  

Value

  

Term (in years)

 

Non-vested Restricted stock outstanding at Beginning of Period

  286,274  $9.21         

Granted

  500   17.55         

Cancelled / Forfeited

  (800)  12.29         

Exercised/Released/Vested

  (1,820)  7.60         

Non-vested restricted stock outstanding at End of Period

  284,154  $9.23  $5,097,723   3.00 
              

Weighted

 
      

Weighted

      

Average

 
      

Average

  

Aggregate

  

Remaining

 
  

Number of

  

Grant Date

  

Intrinsic

  

Contractual

 
  

Shares

  

Fair Value

  

Value

  

Term (in years)

 

Non-vested Restricted stock outstanding at Beginning of Period

  283,907  $8.05         

Granted

  60,579   14.02         

Cancelled / Forfeited

  (8,736)  8.63         

Exercised/Released/Vested

  (51,596)  8.46         

Non-vested restricted stock outstanding at End of Period

  284,154  $9.23  $5,097,723   3.00 
Schedule of Share-Based Payment Award, Employee Stock Purchase Plan, Valuation Assumptions [Table Text Block]
  

Three months ended

  

Six months ended

 
  

June 30, 2026

  

June 30, 2026

 

Risk Free Interest Rate

  3.59%  3.59%
         

Expected Dividend Yield

  0.00%  0.00%
         

Expected Life in Years

  1.00   1.00 
         

Expected Price Volatility

  13.67%  13.67%