v3.25.4
Summary of Significant Accounting Policies - Narrative (Details)
12 Months Ended
Dec. 31, 2025
USD ($)
customer
plant
Dec. 31, 2024
USD ($)
Dec. 31, 2023
USD ($)
Dec. 31, 2025
bank
Dec. 31, 2025
employee
Dec. 31, 2025
salariedEmployee
Dec. 31, 2025
hourlyEmployee
Unusual or Infrequent Item, or Both [Line Items]              
Number of banks | bank       4      
Cash and cash equivalents $ 38,058,000 $ 41,803,000          
Allowance for doubtful accounts 58,000            
Accounts receivable for chargebacks 212,000 227,000          
Allowance for slow moving and obsolete inventory 1,137,000 1,392,000          
Contract assets 59,000 758,000          
Contract liabilities 5,018,000 2,286,000          
Amount of revenue from contract liabilities related to open jobs outstanding 11,592,000 6,069,000          
Impairment of long-lived assets 0 0 $ 0        
Loss on disposal of assets 563,000 241,000 80,000        
Goodwill impairment 0 0          
Liability for self insurance reserve 845,000 1,087,000          
Liability for post retirement healthcare benefits $ 3,287,000 3,298,000          
Number of major customers | customer 5            
Number of employees         1,239 307 932
Number major plants | plant 4            
Research and development costs $ 1,400,000 1,900,000 1,700,000        
Net foreign current translation and transaction expense $ 456,000 $ 1,045,000 $ 291,000        
United States              
Unusual or Infrequent Item, or Both [Line Items]              
Number of employees | employee         339    
Mexico              
Unusual or Infrequent Item, or Both [Line Items]              
Number of employees | employee         727    
Canada              
Unusual or Infrequent Item, or Both [Line Items]              
Number of employees | employee         173    
Workforce Subject to Collective Bargaining Arrangements | Geographic Concentration Risk | United States, Canada and Mexico              
Unusual or Infrequent Item, or Both [Line Items]              
concentration risk percentage 65.80%            
Five Largest Customers | Revenue Benchmark | Customer Concentration Risk              
Unusual or Infrequent Item, or Both [Line Items]              
concentration risk percentage 65.00% 69.00% 68.00%        
Five Largest Customers | Accounts Receivable | Customer Concentration Risk              
Unusual or Infrequent Item, or Both [Line Items]              
concentration risk percentage 68.00% 71.00%          
Contract-Based Intangible Assets              
Unusual or Infrequent Item, or Both [Line Items]              
Impairment on contract assets $ 0 $ 0