v3.26.1
Stock-based compensation - Schedule of Stock Options Activity (Details)
$ / shares in Units, $ in Thousands
3 Months Ended
Mar. 31, 2026
USD ($)
$ / shares
shares
Shares  
Options outstanding, beginning balance (in shares) | shares 1,377,054
Granted (in shares) | shares 8,775
Forfeited (in shares) | shares (59,520)
Expired (in shares) | shares (20,400)
Options outstanding, ending balance (in shares) | shares 1,305,909
Options exercisable (in shares) | shares 538,481
Weighted-average exercise price per share  
Options outstanding, beginning balance (in dollars per share) | $ / shares $ 7.83
Granted (in dollars per share) | $ / shares 7.88
Forfeited (in dollars per share) | $ / shares 6.80
Expired (in dollars per share) | $ / shares 10.62
Options outstanding, ending balance (in dollars per share) | $ / shares 7.84
Options exercisable (in dollars per share) | $ / shares $ 9.47
Share-based Compensation Arrangement by Share-based Payment Award, Options, Additional Disclosures [Abstract]  
Weighted average remaining contractual term, options outstanding 4 years 10 months 24 days
Weighted average remaining contractual term, options exercisable 3 years 2 months 12 days
Aggregate intrinsic value, options outstanding | $ $ 0
Aggregate intrinsic value, options exercisable | $ $ 0