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 | ||