XML 51 R34.htm IDEA: XBRL DOCUMENT v3.24.0.1
Note 14 - Stock-based Compensation (Tables)
12 Months Ended
Dec. 31, 2023
Notes Tables  
Share-Based Payment Arrangement, Restricted Stock and Restricted Stock Unit, Activity [Table Text Block]
  

Number of Shares

  

Weighted Average Grant Date Fair Value

 

Outstanding at December 31, 2022

  147,317  $40.88 

Issued

  152,446  $25.26 

Vested

  (51,638) $33.51 

Forfeited

  (3,900) $37.51 

Outstanding at December 31, 2023

  244,225  $32.75 
Share-Based Payment Arrangement, Option, Activity [Table Text Block]
  

Number of Shares

  

Weighted Average Exercise Price

  

Weighted Average of Remaining Contractual Life (in years)

  

Aggregate Intrinsic Value

 

Outstanding at December 31, 2022

  802,163  $12.23         

Issued

    $         

Exercised

  (576,758) $5.90         

Expired/Forfeited

  (1,999) $15.30         

Outstanding at December 31, 2023

  223,406  $28.52   2.2  $2,502,824 

Exercisable at December 31, 2023

  178,790  $26.31   2.1  $2,366,192 
Schedule of Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Grant Date Intrinsic Value [Table Text Block]
  

Year ended December 31,

 
   2023   2022 

Weighted average fair value per share of options granted

  N/A   N/A 

Cash received from options exercised, net

 $3,405  $3,731 

Aggregate intrinsic value of options exercised

 $15,497  $74,296 

Grant date fair value of shares vested

 $1,435  $1,802