XML 83 R71.htm IDEA: XBRL DOCUMENT v3.22.0.1
Revenue Recognition - Disaggregation of Revenue (Details) - USD ($)
$ in Thousands
3 Months Ended 12 Months Ended
Dec. 31, 2021
Sep. 30, 2021
Jun. 30, 2021
Mar. 31, 2021
Dec. 31, 2020
Sep. 30, 2020
Jun. 30, 2020
Mar. 31, 2020
Dec. 31, 2021
Dec. 31, 2020
Dec. 31, 2019
Disaggregation of Revenue [Line Items]                      
Revenues $ 135,748 $ 128,738 $ 122,869 $ 117,842 $ 112,329 $ 113,587 $ 91,119 $ 108,508 $ 505,198 $ 425,544 $ 424,625
Revenue, remaining performance obligation, percentage                 100.00% 100.00%  
Revenue recognized over time                      
Disaggregation of Revenue [Line Items]                      
Revenues                 $ 28,524 $ 21,479  
Revenue recognized over time | Service Concentration Risk | Revenue Benchmark                      
Disaggregation of Revenue [Line Items]                      
Revenue, remaining performance obligation, percentage                 5.60% 5.00%  
Revenue recognized at a point in time                      
Disaggregation of Revenue [Line Items]                      
Revenues                 $ 476,674 $ 404,065  
Revenue recognized at a point in time | Product Concentration Risk | Revenue Benchmark                      
Disaggregation of Revenue [Line Items]                      
Revenue, remaining performance obligation, percentage                 94.40% 95.00%