v3.26.1
Note 3 - Revenue 1 (Details Textual)
Pure in Thousands, $ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2026
USD ($)
Jun. 30, 2025
USD ($)
Jun. 30, 2026
USD ($)
Jun. 30, 2025
USD ($)
Dec. 31, 2025
USD ($)
Dec. 31, 2024
USD ($)
Contract with Customer, Liability, Current $ 960   $ 960   $ 1,026 $ 721
Contract with Customer, Liability, Revenue Recognized $ 155 $ 171 $ 607 $ 543    
Contract with Customer, Contracts in Progress, Number of Contracts Identified as Loss Contracts 0   0   0  
Revenue, Remaining Performance Obligation, Amount $ 14,308   $ 14,308      
Air Pollution Control [Member]            
Contract with Customer, Asset, after Allowance for Credit Loss $ 1,223   $ 1,223   $ 887 $ 2,075