Note 2 - Revenue Recognition 1 (Details Textual) Pure in Thousands, $ in Thousands |
12 Months Ended | ||
|---|---|---|---|
|
Dec. 31, 2025
USD ($)
|
Dec. 31, 2024
USD ($)
|
Dec. 31, 2023
USD ($)
|
|
| Contract with Customer, Liability, Current | $ 1,026 | $ 721 | $ 1,279 |
| Contract with Customer, Liability, Revenue Recognized | $ 557 | $ 1,276 | |
| Contract with Customer, Contracts in Progress, Number of Contracts Identified as Loss Contracts | 0 | 0 | |
| Revenue, Remaining Performance Obligation, Amount | $ 7,047 | ||
| Air Pollution Control [Member] | |||
| Contract with Customer, Asset, after Allowance for Credit Loss | $ 887 | $ 2,075 | $ 2,285 |
| X | ||||||||||
- Definition The number of contracts in progress identified as loss contracts. No definition available.
|
| X | ||||||||||
- Definition Amount, after allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time. Reference 1: http://www.xbrl.org/2003/role/disclosureRef
|
| X | ||||||||||
- Definition Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current. Reference 1: http://www.xbrl.org/2003/role/disclosureRef
|
| X | ||||||||||
- Definition Amount of revenue recognized that was previously included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due. Reference 1: http://www.xbrl.org/2003/role/disclosureRef
|
| X | ||||||||||
- Definition Amount of transaction price allocated to performance obligation that has not been recognized as revenue. Reference 1: http://www.xbrl.org/2003/role/disclosureRef
|
| X | ||||||||||
- Details
|