v3.24.0.1
Revenue Recognition - Narrative (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2023
Dec. 31, 2022
Dec. 31, 2021
Revenue from Contract with Customer [Abstract]      
Billed accounts receivable $ 102,232 $ 48,571 $ 26,700
Unbilled receivables 40,136 16,713 13,500
Retainage $ 4,886 $ 2,004 $ 4,800
Contract with customer, liability, revenue recognized, percentage 95.00% 100.00%  
Deferred revenue $ 22,100 $ 1,800