XML 66 R49.htm IDEA: XBRL DOCUMENT v3.25.0.1
Revenue Recognition - Narrative (Details) - USD ($)
12 Months Ended
Dec. 31, 2024
Dec. 31, 2023
Dec. 31, 2022
Disaggregation of Revenue [Line Items]      
Impairment charges related to contract assets $ 0 $ 0 $ 0
Short-Term Unbilled Receivables      
Disaggregation of Revenue [Line Items]      
Unbilled receivables, not billable 2,800,000 9,100,000  
Long-Term Unbilled Receivables      
Disaggregation of Revenue [Line Items]      
Unbilled receivables, not billable $ 500,000 $ 800,000  
Minimum | Accounts Receivable      
Disaggregation of Revenue [Line Items]      
Payment terms 30 days    
Maximum | Accounts Receivable      
Disaggregation of Revenue [Line Items]      
Payment terms 90 days