v3.26.1
Stockholders' Equity - Additional Information (Details) - USD ($)
3 Months Ended 6 Months Ended
Jul. 29, 2026
Jul. 21, 2026
Apr. 10, 2023
Jun. 30, 2026
Mar. 31, 2026
Jun. 30, 2025
Jun. 30, 2026
Jun. 30, 2025
Dec. 31, 2025
Feb. 16, 2022
Jul. 25, 2016
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]                      
Common stock authorized (in shares)       75,000,000     75,000,000        
Common stock par value (in usd per share)       $ 0.0001     $ 0.0001        
Preferred stock authorized (in shares)       25,000,000     25,000,000        
Common stock, shares issued, not disclosed       true     true        
Preferred stock par value (in usd per share)       $ 0.0001     $ 0.0001        
Options outstanding (in shares)       0     0   0    
Common stock outstanding (in shares)       20,905,932     20,905,932   20,610,364    
Preferred stock outstanding (in shares)       0     0   0    
Cash dividends declared per common share (in usd per share)       $ 0.3125 $ 0.3125 $ 0.3125 $ 0.6250 $ 0.6250      
Dividends, common stock       $ 6,774,000 $ 6,794,000   $ 13,568,000        
Common stock repurchase program, authorized amount                   $ 10,000,000  
Additional shares available for issuance under the 2020 Equity Plan (in shares)     1,000,000                
ESPP                      
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]                      
Shares reserved for future issuance (in shares)                     250,000
Award required holding period             2 years        
Issuance of common stock under the Employee Stock Purchase Plan (in shares)             18,922 11,558      
ESPP | Maximum                      
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]                      
Offering period, maximum             6 months        
Restricted Stock | 2020 Equity Plan                      
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]                      
Vesting period             1 year        
Contingent RSUs | 2020 Equity Plan                      
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]                      
Vesting period             3 years        
Non-contingent RSUs | 2020 Equity Plan                      
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]                      
Vesting period             3 years        
Unvested RSUs, DSUs and Restricted Stock | 2020 Equity Plan                      
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]                      
Equity instruments other than options, nonvested (in shares)       887,020     887,020   815,209    
Performance-based RSUs | 2020 Equity Plan Member                      
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]                      
Equity instruments other than options, nonvested (in shares)       432,362     432,362        
Restricted Stock and Restricted Stock Units (RSUs) | 2020 Equity Plan                      
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]                      
Vesting period             1 year 8 months 12 days        
Compensation cost not yet recognized, share-based awards other than options       $ 6,600,000     $ 6,600,000        
Subsequent Event                      
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]                      
Cash dividends declared per common share (in usd per share) $ 0.3125                    
Dividends, common stock $ 6,500,000                    
Additional shares available for issuance under the 2020 Equity Plan (in shares)   1,700,000                  
Shares reserved for future issuance (in shares)   1,778,179