v3.26.1
Stock-Based Compensation - Option Activity (Details)
$ / shares in Units, $ in Thousands
6 Months Ended
Jun. 30, 2026
USD ($)
$ / shares
shares
Dec. 31, 2025
USD ($)
Options    
Outstanding, beginning of period (in shares) | shares 239,533  
Exercised (in shares) | shares (118,533)  
Expired (in shares) | shares 0  
Outstanding, end of period (in shares) | shares 121,000  
Exercisable (in shares) | shares 121,000  
Weighted Average Exercise Price    
Outstanding, beginning of period (in dollars per share) | $ / shares $ 16.11  
Exercised (in dollars per share) | $ / shares 16.51  
Expired (in dollars per share) | $ / shares 0  
Outstanding, end of period (in dollars per share) | $ / shares 15.72  
Exercisable, Weighted Average Exercise Price | $ / shares $ 15.72  
Outstanding, weighted average remaining term 1 year 9 months 18 days  
Exercisable, weighted average remaining term 1 year 9 months 18 days  
Outstanding, aggregate intrinsic value | $ $ 386 $ 339
Exercised, aggregate intrinsic value | $ 346  
Exercisable, aggregate intrinsic value | $ $ 386  
Employee Stock Option | 2016 Long Term Incentive Plan    
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]    
Option expiration period 10 years  
Vesting period 3 years