Income Taxes - Carry Forwards (Details) - USD ($) $ in Thousands  | 
Dec. 31, 2024  | 
Dec. 31, 2023  | 
|---|---|---|
| Operating Loss Carryforwards [Line Items] | ||
| Bad debt reserves | $ 4,448 | $ 3,318 | 
| Stock-based compensation | 1,806 | 1,812 | 
| Net operating loss | 3,434 | 6,400 | 
| Operating lease liabilities | 1,548 | 1,864 | 
| Accrued compensation | 801 | 792 | 
| Inventories | 713 | 626 | 
| Research & development credits | 555 | 555 | 
| Other credits | 23 | 102 | 
| Other | 1,128 | 616 | 
| Total deferred Federal, state and local tax assets | 14,456 | 16,085 | 
| Depreciation and asset basis differences | (4,792) | (4,131) | 
| Goodwill and intangible assets | (737) | (768) | 
| Right-of-use assets | (1,377) | (1,718) | 
| Derivative financial instruments | (362) | (353) | 
| Total deferred Federal, state and local tax liabilities | (7,268) | (6,970) | 
| Net deferred tax assets | 7,188 | 9,115 | 
| State and Local Jurisdiction | ||
| Operating Loss Carryforwards [Line Items] | ||
| Operating loss carryforwards, total | $ 400 | $ 800 | 
| X | ||||||||||
- Definition Amount before allocation of valuation allowances of deferred tax asset attributable to operating lease liabilities. No definition available. 
  | 
| X | ||||||||||
- Definition Amount of deferred tax liability attributable to right-of-use assets. No definition available. 
  | 
| X | ||||||||||
- Definition Amount of deferred tax liability attributable to taxable temporary differences. Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef 
  | 
| X | ||||||||||
- Definition Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards. Reference 1: http://www.xbrl.org/2003/role/disclosureRef 
  | 
| X | ||||||||||
- Definition Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from inventory. Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef 
  | 
| X | ||||||||||
- Definition Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, without jurisdictional netting. Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef 
  | 
| X | ||||||||||
- Definition Amount before allocation of valuation allowances of deferred tax asset attributable to deductible operating loss carryforwards. Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef 
  | 
| X | ||||||||||
- Definition Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary differences, classified as other. Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef 
  | 
| X | ||||||||||
- Definition Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible tax credit carryforwards, classified as other. Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef 
  | 
| X | ||||||||||
- Definition Amount before allocation of valuation allowances of deferred tax asset attributable to deductible research tax credit carryforwards. Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef 
  | 
| X | ||||||||||
- Definition Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from employee compensation. Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef 
  | 
| X | ||||||||||
- Definition Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from share-based compensation. Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef 
  | 
| X | ||||||||||
- Definition Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary difference from allowance for credit loss on accounts receivable. Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef 
  | 
| X | ||||||||||
- Definition Amount of deferred tax liability attributable to taxable temporary differences from derivatives. Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef 
  | 
| X | ||||||||||
- Definition Amount of deferred tax liability attributable to taxable temporary differences from intangible assets including goodwill. Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef 
  | 
| X | ||||||||||
- Definition Amount of deferred tax liability attributable to taxable temporary differences from property, plant, and equipment. Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef 
  | 
| X | ||||||||||
- Definition Amount of operating loss carryforward, before tax effects, available to reduce future taxable income under enacted tax laws. Reference 1: http://www.xbrl.org/2003/role/disclosureRef 
  | 
| X | ||||||||||
- Definition Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table. Reference 1: http://www.xbrl.org/2003/role/disclosureRef 
  | 
| X | ||||||||||
- Details 
  |