| Inventory | 3 Months Ended | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Mar. 31, 2025 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Inventory Disclosure [Abstract] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Inventory | 
 Inventory consists of the following as of March 31, 2025 and December 31, 2024: 
 
 Inventory balances are presented net of an excess and obsolete reserve totaling $2.5 million and $2.3 million at March 31, 2025 and December 31, 2024, respectively. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||