Commitments and Contingencies - Environmental liabilities (Details) - USD ($) $ in Thousands |
3 Months Ended | 6 Months Ended | |||
|---|---|---|---|---|---|
Jun. 30, 2026 |
Jun. 30, 2025 |
Jun. 30, 2026 |
Jun. 30, 2025 |
Dec. 31, 2025 |
|
| Commitments and Contingencies Disclosure [Abstract] | |||||
| Undiscounted estimated liability | $ 3,153 | $ 3,153 | $ 3,262 | ||
| Environmental remediation and maintenance expense | $ 730 | $ 646 | $ 1,281 | $ 1,197 | |
| Environmental Remediation Expense, before Recovery, Statement of Income or Comprehensive Income [Extensible Enumeration] | Selling General And Administrative Expense Excluding Salaries And Employee Benefits | Selling General And Administrative Expense Excluding Salaries And Employee Benefits | Selling General And Administrative Expense Excluding Salaries And Employee Benefits | Selling General And Administrative Expense Excluding Salaries And Employee Benefits | |