XML 121 R107.htm IDEA: XBRL DOCUMENT v3.24.0.1
Stock-Based Compensation - Stock Option Activity (Details) - USD ($)
$ / shares in Units, $ in Thousands
12 Months Ended
Dec. 31, 2023
Dec. 31, 2022
Dec. 31, 2021
Number of Options      
Beginning balance (in shares) 1,186,651    
Granted (in shares) 237,400 184,500 143,700
Exercised (in shares) (140,952)    
Forfeited (in shares) (11,571)    
Expired (in shares) (750)    
Ending balance (in shares) 1,270,778 1,186,651  
Weighted Average Exercise Price Per Share      
Beginning balance (USD per share) $ 40.60    
Granted (USD per share) 52.56    
Exercised (USD per share) 13.87    
Forfeited (USD per share) 38.57    
Expired (USD per share) 4.00    
Ending balance (USD per share) $ 45.84 $ 40.60  
Weighted Average Remaining Contractual Life and Aggregate Intrinsic Value      
Outstanding, weighted average remaining contractual life (in years) 5 years 10 months 24 days 5 years 7 months 6 days  
Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Intrinsic Value [Roll Forward]      
Outstanding, beginning balance, aggregate intrinsic value $ 18,309    
Aggregate intrinsic value of stock options exercised during period 5,595 $ 5,700 $ 21,900
Outstanding, ending balance, aggregate intrinsic value $ 26,360 $ 18,309  
Vested and expected to vest (in shares) 1,270,778    
Vested and expected to vest, weighted average exercise (USD per share) $ 45.84    
Vested and expected to vest, weighted average remaining contractual life (in years) 5 years 10 months 24 days    
Vested and expected to vest, aggregate intrinsic value $ 26,360    
Exercisable (in shares) 743,664    
Exercisable, weighted average exercise (USD per share) $ 36.94    
Exercisable, weighted average remaining contractual life (in years) 4 years 2 months 12 days    
Exercisable, aggregate intrinsic value $ 21,590