v3.24.2.u1
Share-Based Compensation - Narrative (Details) - USD ($)
3 Months Ended 6 Months Ended
Jun. 30, 2024
Mar. 31, 2024
Jun. 30, 2023
Jun. 30, 2024
Jun. 30, 2023
Dec. 31, 2023
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]            
Options outstanding (in shares) 1,837 1,853   1,837   22,512
Aggregate intrinsic value of options exercised $ 115 $ 141,076 $ 179,000 $ 141,000 $ 180,000  
Options, granted (in shares) 0   0 0 0  
Stock-based compensation expense $ 1,634,000   $ 2,054,000 $ 3,640,000 $ 4,066,000  
Unamortized stock-based compensation 6,600,000     $ 6,600,000    
Unamortized stock-based compensation, weighted average remaining amortization period       2 years 1 month 17 days    
Restricted stock units            
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]            
Vested in period, intrinsic value $ 2,120,841 $ 848,522   $ 3,000,000.0    
2018 Stock Plan            
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]            
Number of shares available for issuance (in shares) 0     0    
Options outstanding (in shares) 1,837     1,837    
Expiration period (in years)       10 years    
Vesting period (in years and month)       4 years    
2018 Stock Plan | Share-based Payment Arrangement, Tranche One            
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]            
Vesting (as a percent)       25.00%    
2018 Stock Plan | Share-based Payment Arrangement, Tranche Two            
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]            
Vesting period (in years and month)       36 months    
2021 Equity Plan            
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]            
Common stock, capital shares reserved for future issuance (in shares) 371,857     371,857