Revenue Recognition - Narrative (Details) - USD ($) |
3 Months Ended | 6 Months Ended | |||
|---|---|---|---|---|---|
Jun. 30, 2026 |
Jun. 30, 2025 |
Jun. 30, 2026 |
Jun. 30, 2025 |
Dec. 31, 2025 |
|
| Disaggregation of Revenue [Line Items] | |||||
| Impairment charges related to contract assets | $ 0 | $ 0 | $ 0 | $ 0 | |
| Performance obligation | 900,000 | 900,000 | |||
| Short-Term Unbilled Receivables | |||||
| Disaggregation of Revenue [Line Items] | |||||
| Unbilled receivables, not billable | 800,000 | 800,000 | $ 1,500,000 | ||
| Long-Term Unbilled Receivables | |||||
| Disaggregation of Revenue [Line Items] | |||||
| Unbilled receivables, not billable | $ 600,000 | $ 600,000 | $ 300,000 | ||
| X | ||||||||||
- Definition Amount of expense (reversal of expense) for expected credit loss on 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 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 | ||||||||||
- 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 | ||||||||||
- Definition Amount of unbilled receivables under long-term contracts that have not been billed and were not billable. Reference 1: http://www.xbrl.org/2003/role/disclosureRef
|
| X | ||||||||||
- Details
|
| X | ||||||||||
- Details
|