v3.26.1
Stock Option Plan - Narrative (Details)
1 Months Ended 6 Months Ended
May 31, 2026
measurementWindow
shares
Jun. 30, 2026
USD ($)
$ / shares
shares
Jun. 30, 2025
USD ($)
$ / shares
shares
Jan. 01, 2026
shares
Dec. 31, 2025
shares
Jan. 01, 2025
shares
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]            
Granted (in shares)   433,700 169,570      
Weighted-average grant date fair value (in dollars per share) | $ / shares   $ 2.69 $ 3.50      
Exercise of stock options (in shares)   0        
Aggregate intrinsic value of options exercised | $     $ 0      
Stock options, unrecognized compensation cost | $   $ 1,300,000        
Shares were issued under the ESPP (in shares)   96,023        
Stock options            
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]            
Stock options, cost not yet recognized, remaining weighted average vesting period   2 years 1 month 6 days        
Stock options | 2019 Incentive Award Plan            
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]            
Stock options, expiration period   10 years        
Stock options, vesting period   4 years        
Increase (decrease) in number of shares authorized (in shares)       916,463    
Employee stock purchase plan            
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]            
Shares authorized, percentage   1.00%        
Increase (decrease) in number of shares authorized (in shares)           229,115
Common stock reserved for future issuance (in shares)   675,900        
Maximum employee payroll deduction percentage   20.00%        
Employee stock purchase plan | 2019 Incentive Award Plan            
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]            
Shares authorized, percentage   4.00%        
Common Shares Available For Grant Under The 2019 Plan            
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]            
Common stock reserved for future issuance (in shares)   1,427,318        
Restricted stock units            
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]            
Unvested shares outstanding (in shares)   1,973,952     1,795,639  
Grant date fair value of RSUs vested | $   $ 1,400,000 $ 1,300,000      
Awards granted (in dollars per share) | $ / shares   $ 3.18 $ 3.97      
Unrecognized compensation cost | $   $ 6,400,000        
Stock options, cost not yet recognized, remaining weighted average vesting period   2 years 7 months 6 days        
Awards granted (in shares)   656,384        
Performance stock units            
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]            
Stock options, vesting period   3 years        
Unvested shares outstanding (in shares)   800,000        
Awards granted (in dollars per share) | $ / shares   $ 5.64        
Stock options, cost not yet recognized, remaining weighted average vesting period   2 years 10 months 24 days        
Awards granted (in shares) 800,000          
Number of measurement windows | measurementWindow 3          
Number of shares authorized (in shares) 1,600,000          
Share-based payment arrangement, nonvested award, excluding option, cost not yet recognized, amount | $   $ 4,300,000        
Performance stock units | Minimum            
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]            
Performance payout target, percentage   0.00%        
Performance stock units | Maximum            
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]            
Performance payout target, percentage   200.00%