v3.26.1
Stockholders' Equity - Stock Options and Restricted Stock (Details)
$ / shares in Units, $ in Thousands
3 Months Ended 6 Months Ended 12 Months Ended
Jun. 30, 2026
USD ($)
$ / shares
shares
Mar. 31, 2026
USD ($)
$ / shares
shares
Jun. 30, 2025
USD ($)
$ / shares
shares
Mar. 31, 2025
USD ($)
Jun. 30, 2026
USD ($)
item
$ / shares
shares
Jun. 30, 2025
USD ($)
$ / shares
shares
Dec. 31, 2025
USD ($)
$ / shares
shares
Stock-based compensation, general disclosures.              
Stock-based compensation expense | $ $ 2,260   $ 1,939   $ 4,040 $ 4,005  
Employee Stock Option              
Stock-based compensation, general disclosures.              
Stock-based compensation expense | $   $ 0   $ 0      
Total unrecognized pre-tax compensation expense related to nonvested stock option awards | $ $ 0       $ 0    
Options Outstanding              
Outstanding at beginning of period   225,448     225,448    
Exercised         (11,884)    
Cancelled/Expired         (15,003)    
Outstanding at end of period 198,561       198,561   225,448
Weighted Average Exercise Price Per Share              
Outstanding at beginning of period | $ / shares   $ 43.87     $ 43.87    
Exercised | $ / shares         16.55    
Cancelled/Expired | $ / shares         54.95    
Outstanding at end of period | $ / shares $ 44.67       $ 44.67   $ 43.87
Other information              
Weighted average remaining contractual life (in years)         1 year 4 months 24 days   1 year 9 months 18 days
Aggregate Intrinsic Value, Options outstanding | $ $ 191       $ 191   $ 316
Options exercisable number of shares exercisable 198,561   272,690   198,561 272,690  
Options exercisable, weighted-average exercise price | $ / shares $ 44.67   $ 41.45   $ 44.67 $ 41.45  
Options exercisable, weighted-average remaining contractual life         1 year 4 months 24 days    
Aggregate Intrinsic Value, Options exercisable | $ $ 191       $ 191    
Employee Stock Option | Minimum              
Stock-based compensation, general disclosures.              
Vesting period (in years)         3 years    
Term (in years)         7 years    
Employee Stock Option | Maximum              
Stock-based compensation, general disclosures.              
Vesting period (in years)         4 years    
Term (in years)         10 years    
Performance-based stock-settled restricted stock units              
Stock-based compensation, general disclosures.              
Stock-based compensation expense | $ 500   $ 300   $ 800 $ 700  
Total unrecognized pre-tax compensation expense related to awards | $ $ 3,200       $ 3,200    
Weighted-average period over which unrecognized compensation cost is expected to be recognized         2 years 3 months 18 days    
Units Outstanding              
Restricted stock unit awards outstanding at the beginning of the period (in shares)   310,296     310,296    
Granted (in shares)         108,846    
Adjusted (in shares)         12,705    
Vested (in shares)         (95,377)    
Restricted stock unit awards outstanding at the end of the period (in shares) 336,470       336,470   310,296
Weighted Average Grant Date Fair Value Per Unit              
Restricted stock unit awards outstanding at the beginning of the period (in dollars per share) | $ / shares   $ 14.76     $ 14.76    
Granted (in dollars per share) | $ / shares         28.25    
Vested (in dollars per share) | $ / shares         14.16    
Restricted stock unit awards outstanding at the end of the period (in dollars per share) | $ / shares $ 19.33       $ 19.33   $ 14.76
Aggregate Intrinsic Value              
Restricted stock unit awards, Average Intrinsic Value | $ $ 10,020       $ 10,020   $ 8,999
2025 PSUs              
Stock-based compensation, general disclosures.              
Number of performance awards under share-based payment arrangement | item         3    
2026 PSUs              
Stock-based compensation, general disclosures.              
Number of performance awards under share-based payment arrangement | item         3    
Tranche one | 2025 PSUs              
Stock-based compensation, general disclosures.              
Award vesting percentage         33.33%    
Tranche one | 2025 PSUs | Minimum              
Stock-based compensation, general disclosures.              
Performance goals revenue change and adjusted EBITDA margin         25.00%    
Tranche one | 2025 PSUs | Maximum              
Stock-based compensation, general disclosures.              
Performance goals revenue change and adjusted EBITDA margin         175.00%    
Tranche one | 2026 PSUs              
Stock-based compensation, general disclosures.              
Award vesting percentage         33.33%    
Tranche one | 2026 PSUs | Minimum              
Stock-based compensation, general disclosures.              
Performance goals revenue change and adjusted EBITDA margin         25.00%    
Tranche one | 2026 PSUs | Maximum              
Stock-based compensation, general disclosures.              
Performance goals revenue change and adjusted EBITDA margin         175.00%    
Tranche two | 2025 PSUs              
Stock-based compensation, general disclosures.              
Award vesting percentage         33.33%    
Tranche two | 2025 PSUs | Minimum              
Stock-based compensation, general disclosures.              
Performance goals revenue change and adjusted EBITDA margin         25.00%    
Tranche two | 2025 PSUs | Maximum              
Stock-based compensation, general disclosures.              
Performance goals revenue change and adjusted EBITDA margin         175.00%    
Tranche two | 2026 PSUs              
Stock-based compensation, general disclosures.              
Award vesting percentage         33.33%    
Tranche two | 2026 PSUs | Minimum              
Stock-based compensation, general disclosures.              
Performance goals revenue change and adjusted EBITDA margin         25.00%    
Tranche two | 2026 PSUs | Maximum              
Stock-based compensation, general disclosures.              
Performance goals revenue change and adjusted EBITDA margin         175.00%    
Tranche three | 2025 PSUs              
Stock-based compensation, general disclosures.              
Award vesting percentage         33.33%    
Tranche three | 2025 PSUs | Minimum              
Stock-based compensation, general disclosures.              
Performance goals revenue change and adjusted EBITDA margin         25.00%    
Tranche three | 2025 PSUs | Maximum              
Stock-based compensation, general disclosures.              
Performance goals revenue change and adjusted EBITDA margin         175.00%    
Tranche three | 2026 PSUs              
Stock-based compensation, general disclosures.              
Award vesting percentage         33.33%    
Tranche three | 2026 PSUs | Minimum              
Stock-based compensation, general disclosures.              
Performance goals revenue change and adjusted EBITDA margin         25.00%    
Tranche three | 2026 PSUs | Maximum              
Stock-based compensation, general disclosures.              
Performance goals revenue change and adjusted EBITDA margin         175.00%    
2016 and 2025 Plan | Time-Based Restricted Stock Units              
Stock-based compensation, general disclosures.              
Stock-based compensation expense | $ 1,600   $ 1,400   $ 2,900 $ 2,900  
Total unrecognized pre-tax compensation expense related to awards | $ $ 10,400       $ 10,400    
Weighted-average period over which unrecognized compensation cost is expected to be recognized         2 years    
Units Outstanding              
Restricted stock unit awards outstanding at the beginning of the period (in shares)   718,621     718,621    
Granted (in shares)         284,660    
Vested (in shares)         (350,810)    
Cancelled (in shares)         (36,581)    
Restricted stock unit awards outstanding at the end of the period (in shares) 615,890       615,890   718,621
Weighted Average Grant Date Fair Value Per Unit              
Restricted stock unit awards outstanding at the beginning of the period (in dollars per share) | $ / shares   $ 13.92     $ 13.92    
Granted (in dollars per share) | $ / shares         27.5    
Vested (in dollars per share) | $ / shares         13.25    
Cancelled (in dollars per share) | $ / shares         16.37    
Restricted stock unit awards outstanding at the end of the period (in dollars per share) | $ / shares $ 20.44       $ 20.44   $ 13.92
Aggregate Intrinsic Value              
Restricted stock unit awards, Average Intrinsic Value | $ $ 18,341       $ 18,341   $ 20,840
2016 and 2025 Plan | Time-Based Restricted Stock Units | Minimum              
Stock-based compensation, general disclosures.              
Vesting period (in years)         1 year    
2016 and 2025 Plan | Time-Based Restricted Stock Units | Maximum              
Stock-based compensation, general disclosures.              
Vesting period (in years)         3 years