Summary of Significant Accounting Policies - Accounts Receivable (Details) - USD ($) |
12 Months Ended | ||
|---|---|---|---|
Dec. 31, 2022 |
Dec. 31, 2021 |
Dec. 31, 2020 |
|
| Accounts Receivable, Allowance for Credit Loss [Roll Forward] | |||
| Allowance for credit loss, beginning of period | $ 2,263,000 | $ 2,266,000 | $ 2,260,000 |
| (Recoveries of) charges to costs and expenses, net | (382,000) | 187,000 | 282,000 |
| Account write-offs and other | (970,000) | (190,000) | (276,000) |
| Allowance for credit loss, end of period | 911,000 | 2,263,000 | $ 2,266,000 |
| Accounts receivable retainage reserve | $ 0 | $ 0 | |
| Minimum | |||
| Accounts Receivable, Allowance for Credit Loss [Roll Forward] | |||
| Accounts receivable retainage | 5.00% | ||
| Maximum | |||
| Accounts Receivable, Allowance for Credit Loss [Roll Forward] | |||
| Accounts receivable retainage | 10.00% | ||