XML 81 R72.htm IDEA: XBRL DOCUMENT v3.24.0.1
Revenue Recognition - Disaggregation of Revenue (Details) - USD ($)
$ in Thousands
3 Months Ended 12 Months Ended
Dec. 31, 2023
Sep. 30, 2023
Jun. 30, 2023
Mar. 31, 2023
Dec. 31, 2022
Sep. 30, 2022
Jun. 30, 2022
Mar. 31, 2022
Dec. 31, 2023
Dec. 31, 2022
Dec. 31, 2021
Disaggregation of Revenue [Line Items]                      
Revenues $ 182,440 $ 186,193 $ 175,858 $ 159,101 $ 147,324 $ 148,009 $ 137,833 $ 132,402 $ 703,592 $ 565,568 $ 505,198
Revenue, remaining performance obligation, percentage                 100.00% 100.00%  
Revenue recognized over time                      
Disaggregation of Revenue [Line Items]                      
Revenues                 $ 44,317 $ 35,695  
Revenue recognized over time | Service Concentration Risk | Revenue Benchmark                      
Disaggregation of Revenue [Line Items]                      
Revenue, remaining performance obligation, percentage                 6.30% 6.30%  
Revenue recognized at a point in time                      
Disaggregation of Revenue [Line Items]                      
Revenues                 $ 659,275 $ 529,873  
Revenue recognized at a point in time | Product Concentration Risk | Revenue Benchmark                      
Disaggregation of Revenue [Line Items]                      
Revenue, remaining performance obligation, percentage                 93.70% 93.70%