{"documentInfo":{"documentType":"https://xbrl.org/PWD/2026-09-01/compiled","namespaces":{"xbrl":"https://xbrl.org/PWD/2026-09-01","xbrlr":"https://xbrl.org/PWD/2026-09-01/report","xbrla":"https://xbrl.org/PWD/2026-09-01/accounting","xs":"http://www.w3.org/2001/XMLSchema","iso4217":"http://www.xbrl.org/2003/iso4217","utr":"https://xbrl.org/PWD/2026-09-01/utr","rpt":"https://robosystems.ai/tavi/report/0001406666-21-000029","cik":"http://www.sec.gov/CIK","dei":"http://xbrl.sec.gov/dei/2020-01-31","us-gaap":"http://fasb.org/us-gaap/2020-01-31","srt-types":"http://fasb.org/srt-types/2020-01-31","calx":"http://www.calix.com/20201231","srt":"http://fasb.org/srt/2020-01-31","nonnum":"http://www.xbrl.org/dtr/type/non-numeric","xbrli":"http://www.xbrl.org/2003/instance","country":"http://xbrl.sec.gov/country/2020-01-31"},"description":"10-K 0001406666-21-000029 (CIK 0001406666) projected from XBRL by xbrlkit"},"xbrlModel":{"name":"rpt:Report","modelType":"xbrl:report","properties":[{"property":"xbrl:reportFilingDate","value":"2021-02-22"}],"entities":[{"name":"cik:0001406666"}],"units":[{"name":"iso4217:USD","dataType":"xbrlr:monetary"},{"name":"xbrla:shares","dataType":"xbrla:sharesType"},{"name":"rpt:unit-3","dataType":"xbrlr:perShare","compositeUnitRepresentation":["iso4217:USD/xbrla:shares"]},{"name":"calx:Plan","dataType":"xs:decimal"},{"name":"calx:period","dataType":"xs:decimal"}],"dataTypes":[{"name":"xbrli:gMonthDayItemType","baseType":"xs:gMonthDay"},{"name":"dei:fiscalPeriodItemType","baseType":"xs:token"},{"name":"dei:submissionTypeItemType","baseType":"xs:string"},{"name":"dei:stateOrProvinceItemType","baseType":"xs:string"},{"name":"dei:centralIndexKeyItemType","baseType":"xs:token"},{"name":"dei:yesNoItemType","baseType":"xs:token"},{"name":"dei:fileNumberItemType","baseType":"xs:string"},{"name":"dei:filerCategoryItemType","baseType":"xs:string"},{"name":"dei:edgarStateCountryItemType","baseType":"xs:string"},{"name":"dei:employerIdItemType","baseType":"xs:token"},{"name":"dei:securityTitleItemType","baseType":"xs:normalizedString"},{"name":"dei:edgarExchangeCodeItemType","baseType":"xs:normalizedString"},{"name":"dei:tradingSymbolItemType","baseType":"xs:normalizedString"},{"name":"srt-types:extensibleListItemType","baseType":"xs:token"}],"concepts":[{"name":"calx:AccruedCommonAreasMaintenanceFeesAndPropertyTaxesWriteOff","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"calx:AccruedCustomerRebates","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"calx:AccruedEquipmentFinancingArrangementsCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"calx:AccruedExcessAndObsoleteInventoryAtContractManufacturer","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"calx:AccruedFreight","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"calx:AssetWriteOff","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"calx:CashCashEquivalentsAndMarketableSecuritiesPolicyPolicyTextBlockPolicyTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"calx:CashCashEquivalentsRestrictedCashAndMarketableSecurities","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"calx:ChangeInCapitalExpendituresIncurredButNotYetPaid","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"calx:ContractWithCustomerAssetExpectedToBeBilledRemainderOfYearPercent","dataType":"xbrlr:percent","periodType":"instant","nillable":true},{"name":"calx:ContractualTermStockOptions","dataType":"xbrlr:duration","periodType":"duration","nillable":true},{"name":"calx:ContractwithCustomerAssetPriorPeriodNotRecognized","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"calx:DebtInstrumentCovenantComplianceMinimumAvailability","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"calx:DisposalGroupPeriodOfNewOrdersSolicitation","dataType":"xbrlr:duration","periodType":"duration","nillable":true},{"name":"calx:EffectiveIncomeTaxRateReconciliationForeignIncomeInclusionPercent","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"calx:EffectiveIncomeTaxRateReconciliationTopic606AdjustmentPercent","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"calx:EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationCostNotyetRecognizedToBeRecognizedInYearFour","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"calx:EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationCostNotyetRecognizedToBeRecognizedInYearThree","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"calx:EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationCostNotyetRecognizedToBeRecognizedInYearTwo","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"calx:EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationCostNotyetRecognizedToBeRecognizedNextTwelveMonth","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"calx:FinancingArrangementsNonCashInvestingActivities","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"calx:GainLossOnSaleOfProductLine","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"calx:LineOfCreditFacilityCovenantComplianceMinimumFixedChargeCoverageRatio","dataType":"xbrlr:pureType","periodType":"instant","nillable":true},{"name":"calx:MinimumExercisePriceOfStockOptionPercent","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"calx:NumberOfEmployeeStockPurchasePlans","dataType":"xs:integer","periodType":"instant","nillable":true},{"name":"calx:OperationsLiabilityCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"calx:OtherAssetsCapitalizedCloudImplementationCosts","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"calx:PaymentsForFinancingArrangements","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"calx:PaymentsToSettlePurchaseObligations","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"calx:PercentOfHistoricalVolatility","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"calx:PercentOfImpliedVolatility","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"calx:ProceedsFromSaleOfProductLine","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"calx:ProductReturnReserveCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"calx:ProductWarrantyPeriod","dataType":"xbrlr:duration","periodType":"duration","nillable":true},{"name":"calx:RoyaltyGuaranteesCommitmentsPaymentPeriod","dataType":"xbrlr:duration","periodType":"duration","nillable":true},{"name":"calx:ScheduleOfGrantDateFairValuesTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardRequisiteServicePeriodSubsequentPeriod","dataType":"xbrlr:duration","periodType":"duration","nillable":true},{"name":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardsEarnedPercentage","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardBookingsTargetAchievementPerformanceThresholdPercent","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEmployeeTerminationPeriodFollowingPurchaseDateToReceiveSharesSubjectToRiskOfForfeiture","dataType":"xbrlr:duration","periodType":"duration","nillable":true},{"name":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumContributionPercent","dataType":"xbrlr:percent","periodType":"instant","nillable":true},{"name":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNetIncomePerShareTargetAchievementPerformanceThresholdPercent","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfOfferingPeriods","dataType":"xs:integer","periodType":"instant","nillable":true},{"name":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorizedPerPurchasePeriod","dataType":"xbrla:sharesType","periodType":"instant","nillable":true},{"name":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrantAdditionalShares","dataType":"xbrla:sharesType","periodType":"instant","nillable":true},{"name":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesGrantedIfTargetAchievementPerformanceThresholdNotMet","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOfferingPeriod","dataType":"xbrlr:duration","periodType":"duration","nillable":true},{"name":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardPercentOfSharesReceivedUponMeetingTargets","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesAwardTargetAchievementPerformanceThresholdPercent","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesAwardWeightingPercentForTargetAchievementPerformanceThresholdPercent","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"calx:SharebasedCompensationArrangementbySharebasedPaymentAwardEquityInstrumentsOtherthanOptionsConvertedintoCommonStock","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"calx:SharebasedCompensationArrangementbySharebasedPaymentAwardOptionsOutstandingIntrinsicValueAmountPerShare","dataType":"xbrlr:perShare","periodType":"instant","nillable":true},{"name":"calx:SharebasedCompensationArrangementbySharebasedPaymentAwardPurchasePriceofCommonStockOfferingPeriod","dataType":"xbrlr:duration","periodType":"duration","nillable":true},{"name":"calx:SharesReservedForFutureIssuanceTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"calx:StockIssuedDuringPeriodSharesPerformanceRestrictedStockAwardNetofForfeitures","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"calx:StockIssuedDuringPeriodValuePerformanceRestrictedStockAwardNetofForfeitures","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"calx:TaxesPayableCurrentExcludingAccruedIncomeTaxes","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"dei:AmendmentFlag","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"dei:CityAreaCode","dataType":"xs:normalizedString","periodType":"duration","nillable":true},{"name":"dei:CurrentFiscalYearEndDate","dataType":"xbrli:gMonthDayItemType","periodType":"duration","nillable":true},{"name":"dei:DocumentAnnualReport","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"dei:DocumentFiscalPeriodFocus","dataType":"dei:fiscalPeriodItemType","periodType":"duration","nillable":true},{"name":"dei:DocumentFiscalYearFocus","dataType":"xs:gYear","periodType":"duration","nillable":true},{"name":"dei:DocumentPeriodEndDate","dataType":"xs:date","periodType":"duration","nillable":true},{"name":"dei:DocumentTransitionReport","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"dei:DocumentType","dataType":"dei:submissionTypeItemType","periodType":"duration","nillable":true},{"name":"dei:DocumentsIncorporatedByReferenceTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"dei:EntityAddressAddressLine1","dataType":"xs:normalizedString","periodType":"duration","nillable":true},{"name":"dei:EntityAddressCityOrTown","dataType":"xs:normalizedString","periodType":"duration","nillable":true},{"name":"dei:EntityAddressPostalZipCode","dataType":"xs:normalizedString","periodType":"duration","nillable":true},{"name":"dei:EntityAddressStateOrProvince","dataType":"dei:stateOrProvinceItemType","periodType":"duration","nillable":true},{"name":"dei:EntityCentralIndexKey","dataType":"dei:centralIndexKeyItemType","periodType":"duration","nillable":true},{"name":"dei:EntityCommonStockSharesOutstanding","dataType":"xbrla:sharesType","periodType":"instant","nillable":true},{"name":"dei:EntityCurrentReportingStatus","dataType":"dei:yesNoItemType","periodType":"duration","nillable":true},{"name":"dei:EntityEmergingGrowthCompany","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"dei:EntityFileNumber","dataType":"dei:fileNumberItemType","periodType":"duration","nillable":true},{"name":"dei:EntityFilerCategory","dataType":"dei:filerCategoryItemType","periodType":"duration","nillable":true},{"name":"dei:EntityIncorporationStateCountryCode","dataType":"dei:edgarStateCountryItemType","periodType":"duration","nillable":true},{"name":"dei:EntityInteractiveDataCurrent","dataType":"dei:yesNoItemType","periodType":"duration","nillable":true},{"name":"dei:EntityPublicFloat","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"dei:EntityRegistrantName","dataType":"xs:normalizedString","periodType":"duration","nillable":true},{"name":"dei:EntityShellCompany","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"dei:EntitySmallBusiness","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"dei:EntityTaxIdentificationNumber","dataType":"dei:employerIdItemType","periodType":"duration","nillable":true},{"name":"dei:EntityVoluntaryFilers","dataType":"dei:yesNoItemType","periodType":"duration","nillable":true},{"name":"dei:EntityWellKnownSeasonedIssuer","dataType":"dei:yesNoItemType","periodType":"duration","nillable":true},{"name":"dei:IcfrAuditorAttestationFlag","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"dei:LocalPhoneNumber","dataType":"xs:normalizedString","periodType":"duration","nillable":true},{"name":"dei:Security12bTitle","dataType":"dei:securityTitleItemType","periodType":"duration","nillable":true},{"name":"dei:SecurityExchangeName","dataType":"dei:edgarExchangeCodeItemType","periodType":"duration","nillable":true},{"name":"dei:TradingSymbol","dataType":"dei:tradingSymbolItemType","periodType":"duration","nillable":true},{"name":"srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:AccountingStandardsUpdateExtensibleList","dataType":"srt-types:extensibleListItemType","periodType":"duration","nillable":true},{"name":"us-gaap:AccountsPayableCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:AccountsReceivableGrossCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:AccountsReceivableNetCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:AccruedLiabilitiesCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:AccruedProfessionalFeesCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:AdditionalPaidInCapitalCommonStock","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:AllocatedShareBasedCompensationExpense","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"us-gaap:Assets","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:AssetsCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:AssetsFairValueDisclosure","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:AvailableForSaleSecuritiesDebtSecurities","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:BasisOfAccountingPolicyPolicyTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:BusinessDescriptionAndAccountingPoliciesTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:CapitalizedContractCostAmortization","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:CapitalizedContractCostAmortizationPeriod","dataType":"xbrlr:duration","periodType":"instant","nillable":true},{"name":"us-gaap:CapitalizedContractCostGross","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:CapitalizedContractCostNet","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:Cash","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:CashAndCashEquivalentsAtCarryingValue","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:CashAndCashEquivalentsFairValueDisclosure","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:CashCashEquivalentsAndMarketableSecuritiesTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:CommitmentsAndContingencies","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:CommitmentsAndContingenciesDisclosureTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:CommitmentsAndContingenciesPolicyTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:CommonStockCapitalSharesReservedForFutureIssuance","dataType":"xbrla:sharesType","periodType":"instant","nillable":true},{"name":"us-gaap:CommonStockDividendsPerShareDeclared","dataType":"xbrlr:perShare","periodType":"duration","nillable":true},{"name":"us-gaap:CommonStockParOrStatedValuePerShare","dataType":"xbrlr:perShare","periodType":"instant","nillable":true},{"name":"us-gaap:CommonStockSharesAuthorized","dataType":"xbrla:sharesType","periodType":"instant","nillable":true},{"name":"us-gaap:CommonStockSharesIssued","dataType":"xbrla:sharesType","periodType":"instant","nillable":true},{"name":"us-gaap:CommonStockSharesOutstanding","dataType":"xbrla:sharesType","periodType":"instant","nillable":true},{"name":"us-gaap:CommonStockValue","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:CompensationAndEmployeeBenefitPlansTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:ComprehensiveIncomeNoteTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ConcentrationRiskCreditRisk","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ConcentrationRiskPercentage1","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ContractWithCustomerAssetNet","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:ContractWithCustomerLiability","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:ContractWithCustomerLiabilityCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:ContractWithCustomerLiabilityNoncurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:ContractWithCustomerLiabilityRevenueRecognized","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:CostOfGoodsAndServicesSold","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:CostOfSalesPolicyTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:CurrentForeignTaxExpenseBenefit","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:CurrentIncomeTaxExpenseBenefit","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:CurrentStateAndLocalTaxExpenseBenefit","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:DebtDisclosureTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:DebtInstrumentBasisSpreadOnVariableRate1","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"us-gaap:DebtInstrumentInterestRateEffectivePercentage","dataType":"xbrlr:percent","periodType":"instant","nillable":true},{"name":"us-gaap:DebtWeightedAverageInterestRate","dataType":"xbrlr:percent","periodType":"instant","nillable":true},{"name":"us-gaap:DeferredForeignIncomeTaxExpenseBenefit","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:DeferredTaxAssetsDeferredIncome","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:DeferredTaxAssetsGross","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:DeferredTaxAssetsOperatingLossCarryforwards","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:DeferredTaxAssetsOther","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:DeferredTaxAssetsValuationAllowance","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:DeferredTaxLiabilities","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:DefinedContributionPlanCostRecognized","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:Depreciation","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:DisposalGroupIncludingDiscontinuedOperationConsideration","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:DisposalGroupIncludingDiscontinuedOperationDeferredRevenue","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:DisposalGroupIncludingDiscontinuedOperationInventory1","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:DisposalGroupNotDiscontinuedOperationGainLossOnDisposal","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:EarningsPerShareBasic","dataType":"xbrlr:perShare","periodType":"duration","nillable":true},{"name":"us-gaap:EarningsPerShareBasicAndDiluted","dataType":"xbrlr:perShare","periodType":"duration","nillable":true},{"name":"us-gaap:EarningsPerShareDiluted","dataType":"xbrlr:perShare","periodType":"duration","nillable":true},{"name":"us-gaap:EarningsPerShareTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseOther","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"us-gaap:EffectiveIncomeTaxRateReconciliationPriorYearIncomeTaxes","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"us-gaap:EffectiveIncomeTaxRateReconciliationTaxCutsAndJobsActOf2017Percent","dataType":"xbrlr:pureType","periodType":"duration","nillable":true},{"name":"us-gaap:EmployeeRelatedLiabilitiesCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1","dataType":"xbrlr:duration","periodType":"duration","nillable":true},{"name":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:FairValueDisclosuresTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:FairValueOfFinancialInstrumentsPolicy","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:FiniteLivedIntangibleAssetUsefulLife","dataType":"xbrlr:duration","periodType":"duration","nillable":true},{"name":"us-gaap:GainLossOnDispositionOfAssets","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:GainLossOnDispositionOfAssets1","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:GeneralAndAdministrativeExpense","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:Goodwill","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:GoodwillImpairmentLoss","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:GrossProfit","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:ImpairmentOfIntangibleAssetsFinitelived","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:IncomeTaxDisclosureTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:IncomeTaxExpenseBenefit","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:IncomeTaxPolicyTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:IncomeTaxReconciliationRepatriationOfForeignEarnings","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:IncomeTaxesPaidNet","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:IncreaseDecreaseInAccountsPayable","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:IncreaseDecreaseInAccountsReceivable","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:IncreaseDecreaseInAccruedLiabilities","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:IncreaseDecreaseInDeferredRevenue","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:IncreaseDecreaseInInventories","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"us-gaap:IntangibleAssetsCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:IntangibleAssetsNetExcludingGoodwill","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:InterestPaidNet","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:InventoryFinishedGoodsNetOfReserves","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:InventoryNet","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:InventoryPolicyTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:InventoryRawMaterialsNetOfReserves","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:InvestmentIncomeNet","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:LesseeOperatingLeaseTermOfContract","dataType":"xbrlr:duration","periodType":"instant","nillable":true},{"name":"us-gaap:LesseeOperatingLeasesTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:Liabilities","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:LiabilitiesAndStockholdersEquity","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:LiabilitiesCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:LinesOfCreditCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:NetCashProvidedByUsedInFinancingActivities","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:NetCashProvidedByUsedInInvestingActivities","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:NetCashProvidedByUsedInOperatingActivities","dataType":"xbrlr:monetary","periodType":"duration","nillable":true},{"name":"us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:NonoperatingIncomeExpense","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:OperatingExpenses","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:OperatingIncomeLoss","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:OperatingLeaseCost","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:OperatingLeaseLiability","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:OperatingLeaseLiabilityCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList","dataType":"srt-types:extensibleListItemType","periodType":"instant","nillable":true},{"name":"us-gaap:OperatingLeaseLiabilityNoncurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:OperatingLeasePayments","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:OperatingLeaseRightOfUseAsset","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent","dataType":"xbrlr:percent","periodType":"instant","nillable":true},{"name":"us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1","dataType":"xbrlr:duration","periodType":"instant","nillable":true},{"name":"us-gaap:OperatingLossCarryforwards","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:OtherAccruedLiabilitiesCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:OtherAssetsMiscellaneousNoncurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:OtherAssetsNoncurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:OtherComprehensiveIncomeLossNetOfTax","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:OtherLiabilities","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:OtherLiabilitiesNoncurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:OtherNonoperatingIncomeExpense","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:PaymentsForRestructuring","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:PaymentsOfDebtIssuanceCosts","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:PaymentsToAcquireMarketableSecurities","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:PaymentsToAcquirePropertyPlantAndEquipment","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:PreferredStockParOrStatedValuePerShare","dataType":"xbrlr:perShare","periodType":"instant","nillable":true},{"name":"us-gaap:PreferredStockSharesAuthorized","dataType":"xbrla:sharesType","periodType":"instant","nillable":true},{"name":"us-gaap:PreferredStockSharesIssued","dataType":"xbrla:sharesType","periodType":"instant","nillable":true},{"name":"us-gaap:PreferredStockSharesOutstanding","dataType":"xbrla:sharesType","periodType":"instant","nillable":true},{"name":"us-gaap:PreferredStockValue","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:PrepaidExpenseAndOtherAssetsCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:ProceedsFromIssuanceOfCommonStock","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:ProceedsFromLinesOfCredit","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:ProceedsFromStockOptionsExercised","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:ProductWarrantyAccrual","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:ProductWarrantyAccrualClassifiedCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:ProductWarrantyAccrualPayments","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:ProductWarrantyAccrualWarrantiesIssued","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:ProfitLoss","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:PropertyPlantAndEquipmentGross","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:PropertyPlantAndEquipmentNet","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:PropertyPlantAndEquipmentPolicyTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:PropertyPlantAndEquipmentTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:PropertyPlantAndEquipmentUsefulLife","dataType":"xbrlr:duration","periodType":"duration","nillable":true},{"name":"us-gaap:PurchaseCommitmentRemainingMinimumAmountCommitted","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:PurchaseObligation","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:QuarterlyFinancialInformationTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:RepaymentsOfLinesOfCredit","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:ResearchAndDevelopmentExpense","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:RestrictedCashCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:RestructuringCharges","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:RestructuringReserve","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:RestructuringReserveSettledWithoutCash2","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:RetainedEarningsAccumulatedDeficit","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:RevenueFromContractWithCustomerPolicyTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:RevenueFromExternalCustomersByGeographicAreasTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:RevenueRecognitionPolicyTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:RevenueRemainingPerformanceObligation","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1","dataType":"xbrlr:duration","periodType":"instant","nillable":true},{"name":"us-gaap:RevenueRemainingPerformanceObligationPercentage","dataType":"xbrlr:percent","periodType":"instant","nillable":true},{"name":"us-gaap:RoyaltyGuaranteesCommitmentsAmount","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:SaleOfStockConsiderationReceivedOnTransaction","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:SaleOfStockNumberOfSharesIssuedInTransaction","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ScheduleOfCashAndCashEquivalentsTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ScheduleOfInventoryCurrentTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ScheduleOfOtherAssetsNoncurrentTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ScheduleOfRestructuringAndRelatedCostsTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ScheduleOfUnrecognizedCompensationCostNonvestedAwardsTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:SegmentReportingDisclosureTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:SellingAndMarketingExpense","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:ShareBasedCompensation","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardRequisiteServicePeriod1","dataType":"xbrlr:duration","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1","dataType":"xbrlr:duration","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue","dataType":"xbrlr:perShare","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","dataType":"xbrlr:perShare","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber","dataType":"xbrla:sharesType","periodType":"instant","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue","dataType":"xbrlr:perShare","periodType":"instant","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue","dataType":"xbrlr:perShare","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate","dataType":"xbrlr:percent","periodType":"instant","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumNumberOfSharesPerEmployee","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized","dataType":"xbrla:sharesType","periodType":"instant","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant","dataType":"xbrla:sharesType","periodType":"instant","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber","dataType":"xbrla:sharesType","periodType":"instant","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice","dataType":"xbrlr:perShare","periodType":"instant","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","dataType":"xbrlr:perShare","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber","dataType":"xbrla:sharesType","periodType":"instant","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice","dataType":"xbrlr:perShare","periodType":"instant","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber","dataType":"xbrla:sharesType","periodType":"instant","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice","dataType":"xbrlr:perShare","periodType":"instant","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesPurchasedForAward","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice","dataType":"xbrlr:perShare","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice","dataType":"xbrlr:perShare","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice","dataType":"xbrlr:perShare","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1","dataType":"xbrlr:duration","periodType":"duration","nillable":true},{"name":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1","dataType":"xbrlr:duration","periodType":"duration","nillable":true},{"name":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2","dataType":"xbrlr:duration","periodType":"duration","nillable":true},{"name":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1","dataType":"xbrlr:duration","periodType":"duration","nillable":true},{"name":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:ShareholdersEquityAndShareBasedPaymentsTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:StandardProductWarrantyPolicy","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:StockIssuedDuringPeriodSharesEmployeeStockOwnershipPlan","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"us-gaap:StockIssuedDuringPeriodSharesNewIssues","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:StockIssuedDuringPeriodValueNewIssues","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:StockRepurchasedAndRetiredDuringPeriodValue","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:StockholdersEquity","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:SummaryOfIncomeTaxContingenciesTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:SupplementalBalanceSheetDisclosuresTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:TaxCreditCarryforwardAmount","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:TreasuryStockRetiredCostMethodAmount","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:TreasuryStockShares","dataType":"xbrla:sharesType","periodType":"instant","nillable":true},{"name":"us-gaap:TreasuryStockSharesRetired","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"us-gaap:TreasuryStockValue","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:UnrecognizedTaxBenefits","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:UseOfEstimates","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:ValuationAllowancesAndReservesBalance","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:ValuationAllowancesAndReservesDeductions","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasic","dataType":"xbrla:sharesType","periodType":"duration","nillable":true}],"headings":[{"name":"calx:IncomeTaxesLineItems"},{"name":"calx:IncomeTaxesTable"},{"name":"calx:ScheduleOfCertainTermsLineItemsLineItems"},{"name":"calx:ScheduleOfCertainTermsTableTable"},{"name":"dei:CoverAbstract"},{"name":"srt:ValuationAndQualifyingAccountsDisclosureLineItems"},{"name":"srt:ValuationAndQualifyingAccountsDisclosureTable"},{"name":"us-gaap:AccountingPoliciesAbstract"},{"name":"us-gaap:AccountsReceivableNetCurrentAbstract"},{"name":"us-gaap:AccruedLiabilitiesCurrentAbstract"},{"name":"us-gaap:AccumulatedOtherComprehensiveIncomeLossLineItems"},{"name":"us-gaap:AccumulatedOtherComprehensiveIncomeLossTable"},{"name":"us-gaap:AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract"},{"name":"us-gaap:AssetsAbstract"},{"name":"us-gaap:AssetsCurrentAbstract"},{"name":"us-gaap:BalanceSheetRelatedDisclosuresAbstract"},{"name":"us-gaap:CapitalizedContractCostLineItems"},{"name":"us-gaap:CapitalizedContractCostTable"},{"name":"us-gaap:CashAndCashEquivalentsAbstract"},{"name":"us-gaap:CashAndCashEquivalentsLineItems"},{"name":"us-gaap:CommitmentsAndContingenciesDisclosureAbstract"},{"name":"us-gaap:CompensationAndRetirementDisclosureAbstract"},{"name":"us-gaap:ConcentrationRiskLineItems"},{"name":"us-gaap:ConcentrationRiskTable"},{"name":"us-gaap:CostOfRevenueAbstract"},{"name":"us-gaap:DebtInstrumentLineItems"},{"name":"us-gaap:DebtInstrumentTable"},{"name":"us-gaap:DeferredTaxAssetsGrossAbstract"},{"name":"us-gaap:DisaggregationOfRevenueLineItems"},{"name":"us-gaap:DisaggregationOfRevenueTable"},{"name":"us-gaap:DiscontinuedOperationsAndDisposalGroupsAbstract"},{"name":"us-gaap:EarningsPerShareAbstract"},{"name":"us-gaap:EarningsPerShareBasicAbstract"},{"name":"us-gaap:EarningsPerShareBasicAndDilutedAbstract"},{"name":"us-gaap:EarningsPerShareDilutedOtherDisclosuresAbstract"},{"name":"us-gaap:EquityAbstract"},{"name":"us-gaap:FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems"},{"name":"us-gaap:FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable"},{"name":"us-gaap:FairValueDisclosuresAbstract"},{"name":"us-gaap:FiniteLivedIntangibleAssetsLineItems"},{"name":"us-gaap:IncomeStatementAbstract"},{"name":"us-gaap:IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems"},{"name":"us-gaap:IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsTable"},{"name":"us-gaap:IncomeTaxDisclosureAbstract"},{"name":"us-gaap:IncreaseDecreaseInOperatingCapitalAbstract"},{"name":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward"},{"name":"us-gaap:InventoryNetAbstract"},{"name":"us-gaap:LiabilitiesAndStockholdersEquityAbstract"},{"name":"us-gaap:LiabilitiesCurrentAbstract"},{"name":"us-gaap:LineOfCreditFacilityAbstract"},{"name":"us-gaap:LossContingenciesLineItems"},{"name":"us-gaap:LossContingenciesTable"},{"name":"us-gaap:MovementInStandardAndExtendedProductWarrantyIncreaseDecreaseRollForward"},{"name":"us-gaap:MovementInValuationAllowancesAndReservesRollForward"},{"name":"us-gaap:NetCashProvidedByUsedInFinancingActivitiesAbstract"},{"name":"us-gaap:NetCashProvidedByUsedInInvestingActivitiesAbstract"},{"name":"us-gaap:NetCashProvidedByUsedInOperatingActivitiesAbstract"},{"name":"us-gaap:NetIncomeLossAbstract"},{"name":"us-gaap:NoncashInvestingAndFinancingItemsAbstract"},{"name":"us-gaap:NonoperatingIncomeExpenseAbstract"},{"name":"us-gaap:OperatingExpensesAbstract"},{"name":"us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract"},{"name":"us-gaap:OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract"},{"name":"us-gaap:PropertyPlantAndEquipmentLineItems"},{"name":"us-gaap:QuarterlyFinancialInformationDisclosureAbstract"},{"name":"us-gaap:ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward"},{"name":"us-gaap:RestructuringCostAndReserveLineItems"},{"name":"us-gaap:RestructuringReserveRollForward"},{"name":"us-gaap:RevenueFromContractWithCustomerAbstract"},{"name":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems"},{"name":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable"},{"name":"us-gaap:RevenuesAbstract"},{"name":"us-gaap:RevenuesFromExternalCustomersAndLongLivedAssetsLineItems"},{"name":"us-gaap:ScheduleOfCashAndCashEquivalentsTable"},{"name":"us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTable"},{"name":"us-gaap:ScheduleOfPropertyPlantAndEquipmentTable"},{"name":"us-gaap:ScheduleOfRestructuringAndRelatedCostsTable"},{"name":"us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable"},{"name":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward"},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward"},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract"},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward"},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward"},{"name":"us-gaap:StatementLineItems"},{"name":"us-gaap:StatementOfCashFlowsAbstract"},{"name":"us-gaap:StatementOfFinancialPositionAbstract"},{"name":"us-gaap:StatementOfStockholdersEquityAbstract"},{"name":"us-gaap:StatementTable"},{"name":"us-gaap:StockholdersEquityAbstract"},{"name":"us-gaap:StockholdersEquityNoteAbstract"},{"name":"us-gaap:SupplementalCashFlowInformationAbstract"},{"name":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasicAbstract"}],"dimensions":[{"name":"srt:ConsolidatedEntitiesAxis","domainClass":"srt:ConsolidatedEntitiesDomain"},{"name":"srt:CounterpartyNameAxis","domainClass":"srt:RepurchaseAgreementCounterpartyNameDomain"},{"name":"srt:CumulativeEffectPeriodOfAdoptionAxis","domainClass":"srt:CumulativeEffectPeriodOfAdoptionDomain"},{"name":"srt:MajorCustomersAxis","domainClass":"srt:NameOfMajorCustomerDomain"},{"name":"srt:ProductOrServiceAxis","domainClass":"srt:ProductsAndServicesDomain"},{"name":"srt:RangeAxis","domainClass":"srt:RangeMember"},{"name":"srt:StatementGeographicalAxis","domainClass":"srt:SegmentGeographicalDomain"},{"name":"srt:TitleOfIndividualAxis","domainClass":"srt:TitleOfIndividualWithRelationshipToEntityDomain"},{"name":"us-gaap:AdjustmentsForNewAccountingPronouncementsAxis","domainClass":"us-gaap:TypeOfAdoptionMember"},{"name":"us-gaap:AwardTypeAxis","domainClass":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"},{"name":"us-gaap:CapitalizedContractCostAxis","domainClass":"us-gaap:CapitalizedContractCostDomain"},{"name":"us-gaap:CashAndCashEquivalentsAxis","domainClass":"us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember"},{"name":"us-gaap:ConcentrationRiskByBenchmarkAxis","domainClass":"us-gaap:ConcentrationRiskBenchmarkDomain"},{"name":"us-gaap:ConcentrationRiskByTypeAxis","domainClass":"us-gaap:ConcentrationRiskTypeDomain"},{"name":"us-gaap:CreditFacilityAxis","domainClass":"us-gaap:CreditFacilityDomain"},{"name":"us-gaap:DeferredRevenueArrangementTypeAxis","domainClass":"us-gaap:DeferredRevenueArrangementTypeDomain"},{"name":"us-gaap:FairValueByFairValueHierarchyLevelAxis","domainClass":"us-gaap:FairValueMeasurementsFairValueHierarchyDomain"},{"name":"us-gaap:FairValueByMeasurementFrequencyAxis","domainClass":"us-gaap:FairValueMeasurementFrequencyDomain"},{"name":"us-gaap:FinancialInstrumentAxis","domainClass":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"},{"name":"us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis","domainClass":"us-gaap:FiniteLivedIntangibleAssetsMajorClassNameDomain"},{"name":"us-gaap:IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis","domainClass":"us-gaap:DisposalGroupsIncludingDiscontinuedOperationsNameDomain"},{"name":"us-gaap:IncomeStatementLocationAxis","domainClass":"us-gaap:IncomeStatementLocationDomain"},{"name":"us-gaap:IncomeTaxAuthorityAxis","domainClass":"us-gaap:IncomeTaxAuthorityDomain"},{"name":"us-gaap:LineOfCreditFacilityAxis","domainClass":"us-gaap:LineOfCreditFacilityLenderDomain"},{"name":"us-gaap:PlanNameAxis","domainClass":"us-gaap:PlanNameDomain"},{"name":"us-gaap:PropertyPlantAndEquipmentByTypeAxis","domainClass":"us-gaap:PropertyPlantAndEquipmentTypeDomain"},{"name":"us-gaap:RestructuringCostAndReserveAxis","domainClass":"us-gaap:TypeOfRestructuringDomain"},{"name":"us-gaap:RestructuringPlanAxis","domainClass":"us-gaap:RestructuringPlanDomain"},{"name":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"},{"name":"us-gaap:StatementEquityComponentsAxis","domainClass":"us-gaap:EquityComponentDomain"},{"name":"us-gaap:SubsequentEventTypeAxis","domainClass":"us-gaap:SubsequentEventTypeDomain"},{"name":"us-gaap:SubsidiarySaleOfStockAxis","domainClass":"us-gaap:SaleOfStockNameOfTransactionDomain"},{"name":"us-gaap:ValuationAllowancesAndReservesTypeAxis","domainClass":"us-gaap:ValuationAllowancesAndReservesDomain"},{"name":"us-gaap:VariableRateAxis","domainClass":"us-gaap:VariableRateDomain"},{"name":"us-gaap:VestingAxis","domainClass":"us-gaap:VestingDomain"}],"domainClasses":[{"name":"srt:ConsolidatedEntitiesDomain"},{"name":"srt:CumulativeEffectPeriodOfAdoptionDomain"},{"name":"srt:NameOfMajorCustomerDomain"},{"name":"srt:ProductsAndServicesDomain"},{"name":"srt:RangeMember"},{"name":"srt:RepurchaseAgreementCounterpartyNameDomain"},{"name":"srt:SegmentGeographicalDomain"},{"name":"srt:TitleOfIndividualWithRelationshipToEntityDomain"},{"name":"us-gaap:CapitalizedContractCostDomain"},{"name":"us-gaap:ConcentrationRiskBenchmarkDomain"},{"name":"us-gaap:ConcentrationRiskTypeDomain"},{"name":"us-gaap:CreditFacilityDomain"},{"name":"us-gaap:DeferredRevenueArrangementTypeDomain"},{"name":"us-gaap:DisposalGroupsIncludingDiscontinuedOperationsNameDomain"},{"name":"us-gaap:EquityComponentDomain"},{"name":"us-gaap:FairValueMeasurementFrequencyDomain"},{"name":"us-gaap:FairValueMeasurementsFairValueHierarchyDomain"},{"name":"us-gaap:FiniteLivedIntangibleAssetsMajorClassNameDomain"},{"name":"us-gaap:IncomeStatementLocationDomain"},{"name":"us-gaap:IncomeTaxAuthorityDomain"},{"name":"us-gaap:LineOfCreditFacilityLenderDomain"},{"name":"us-gaap:PlanNameDomain"},{"name":"us-gaap:PropertyPlantAndEquipmentTypeDomain"},{"name":"us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember"},{"name":"us-gaap:RestructuringPlanDomain"},{"name":"us-gaap:SaleOfStockNameOfTransactionDomain"},{"name":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"},{"name":"us-gaap:SubsequentEventTypeDomain"},{"name":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"},{"name":"us-gaap:TypeOfAdoptionMember"},{"name":"us-gaap:TypeOfRestructuringDomain"},{"name":"us-gaap:ValuationAllowancesAndReservesDomain"},{"name":"us-gaap:VariableRateDomain"},{"name":"us-gaap:VestingDomain"}],"domainNetworks":[{"name":"rpt:domain-0","root":"us-gaap:EquityComponentDomain","relationships":[{"source":"us-gaap:EquityComponentDomain","target":"us-gaap:AccumulatedTranslationAdjustmentMember"},{"source":"us-gaap:EquityComponentDomain","target":"us-gaap:AccumulatedOtherComprehensiveIncomeMember"}]},{"name":"rpt:domain-1","root":"us-gaap:ValuationAllowancesAndReservesDomain","relationships":[{"source":"us-gaap:ValuationAllowancesAndReservesDomain","target":"us-gaap:AllowanceForCreditLossMember"},{"source":"us-gaap:ValuationAllowancesAndReservesDomain","target":"calx:ProductReturnReserveMember"}]},{"name":"rpt:domain-2","root":"us-gaap:CapitalizedContractCostDomain","relationships":[{"source":"us-gaap:CapitalizedContractCostDomain","target":"calx:CloudImplementationCostsMember"}]},{"name":"rpt:domain-3","root":"us-gaap:FiniteLivedIntangibleAssetsMajorClassNameDomain","relationships":[{"source":"us-gaap:FiniteLivedIntangibleAssetsMajorClassNameDomain","target":"us-gaap:ComputerSoftwareIntangibleAssetMember"}]},{"name":"rpt:domain-4","root":"us-gaap:PropertyPlantAndEquipmentTypeDomain","relationships":[{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"us-gaap:EquipmentMember"},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"calx:SoftwareMember"},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"us-gaap:ComputerEquipmentMember"},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"us-gaap:FurnitureAndFixturesMember"},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"us-gaap:LeaseholdImprovementsMember"}]},{"name":"rpt:domain-5","root":"us-gaap:TypeOfRestructuringDomain","relationships":[{"source":"us-gaap:TypeOfRestructuringDomain","target":"us-gaap:FacilityClosingMember"},{"source":"us-gaap:TypeOfRestructuringDomain","target":"us-gaap:EmployeeSeveranceMember"}]},{"name":"rpt:domain-6","root":"us-gaap:RestructuringPlanDomain","relationships":[{"source":"us-gaap:RestructuringPlanDomain","target":"calx:AllPlatformFutureAndWorkFromAnywhereCultureAlignmentMember"}]},{"name":"rpt:domain-7","root":"srt:SegmentGeographicalDomain","relationships":[{"source":"srt:SegmentGeographicalDomain","target":"calx:RichardsonTexasAndSanJoseCaliforniaMember"}]},{"name":"rpt:domain-8","root":"us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember","relationships":[{"source":"us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember","target":"us-gaap:CashMember"},{"source":"us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember","target":"us-gaap:MoneyMarketFundsMember"},{"source":"us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember","target":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember"}]},{"name":"rpt:domain-9","root":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","relationships":[{"source":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","target":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember"}]},{"name":"rpt:domain-10","root":"srt:SegmentGeographicalDomain","relationships":[{"source":"srt:SegmentGeographicalDomain","target":"calx:SanJoseCaliforniaMember"},{"source":"srt:SegmentGeographicalDomain","target":"calx:PetalumaCAMember"}]},{"name":"rpt:domain-11","root":"srt:ProductsAndServicesDomain","relationships":[{"source":"srt:ProductsAndServicesDomain","target":"calx:SystemsProductMember"},{"source":"srt:ProductsAndServicesDomain","target":"us-gaap:TechnologyServiceMember"}]},{"name":"rpt:domain-12","root":"us-gaap:EquityComponentDomain","relationships":[{"source":"us-gaap:EquityComponentDomain","target":"us-gaap:CommonStockMember"},{"source":"us-gaap:EquityComponentDomain","target":"us-gaap:AdditionalPaidInCapitalMember"},{"source":"us-gaap:EquityComponentDomain","target":"us-gaap:AccumulatedOtherComprehensiveIncomeMember"},{"source":"us-gaap:EquityComponentDomain","target":"us-gaap:RetainedEarningsMember"},{"source":"us-gaap:EquityComponentDomain","target":"us-gaap:TreasuryStockMember"}]},{"name":"rpt:domain-13","root":"srt:CumulativeEffectPeriodOfAdoptionDomain","relationships":[{"source":"srt:CumulativeEffectPeriodOfAdoptionDomain","target":"srt:CumulativeEffectPeriodOfAdoptionAdjustmentMember"}]},{"name":"rpt:domain-14","root":"srt:ProductsAndServicesDomain","relationships":[{"source":"srt:ProductsAndServicesDomain","target":"calx:ConsultingServicesMember"}]},{"name":"rpt:domain-15","root":"us-gaap:PropertyPlantAndEquipmentTypeDomain","relationships":[{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"calx:ResearchAndDevelopmentEquipmentMember"}]},{"name":"rpt:domain-16","root":"us-gaap:LineOfCreditFacilityLenderDomain","relationships":[{"source":"us-gaap:LineOfCreditFacilityLenderDomain","target":"calx:BankOfAmericaMember"}]},{"name":"rpt:domain-17","root":"us-gaap:VariableRateDomain","relationships":[{"source":"us-gaap:VariableRateDomain","target":"us-gaap:LondonInterbankOfferedRateLIBORMember"},{"source":"us-gaap:VariableRateDomain","target":"us-gaap:PrimeRateMember"}]},{"name":"rpt:domain-18","root":"srt:RangeMember","relationships":[{"source":"srt:RangeMember","target":"srt:MinimumMember"},{"source":"srt:RangeMember","target":"srt:MaximumMember"}]},{"name":"rpt:domain-19","root":"us-gaap:CreditFacilityDomain","relationships":[{"source":"us-gaap:CreditFacilityDomain","target":"us-gaap:RevolvingCreditFacilityMember"},{"source":"us-gaap:CreditFacilityDomain","target":"us-gaap:LetterOfCreditMember"}]},{"name":"rpt:domain-20","root":"srt:ConsolidatedEntitiesDomain","relationships":[{"source":"srt:ConsolidatedEntitiesDomain","target":"srt:SubsidiariesMember"}]},{"name":"rpt:domain-21","root":"srt:SegmentGeographicalDomain","relationships":[{"source":"srt:SegmentGeographicalDomain","target":"calx:BrazilChinaAndUnitedKingdomMember"}]},{"name":"rpt:domain-22","root":"us-gaap:TypeOfAdoptionMember","relationships":[{"source":"us-gaap:TypeOfAdoptionMember","target":"us-gaap:AccountingStandardsUpdate201602Member"}]},{"name":"rpt:domain-23","root":"us-gaap:ConcentrationRiskTypeDomain","relationships":[{"source":"us-gaap:ConcentrationRiskTypeDomain","target":"us-gaap:CustomerConcentrationRiskMember"}]},{"name":"rpt:domain-24","root":"us-gaap:ConcentrationRiskBenchmarkDomain","relationships":[{"source":"us-gaap:ConcentrationRiskBenchmarkDomain","target":"us-gaap:AccountsReceivableMember"}]},{"name":"rpt:domain-25","root":"us-gaap:PropertyPlantAndEquipmentTypeDomain","relationships":[{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"us-gaap:ComputerEquipmentMember"},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"us-gaap:ComputerSoftwareIntangibleAssetMember"},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"us-gaap:EquipmentMember"},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"us-gaap:FurnitureAndFixturesMember"}]},{"name":"rpt:domain-26","root":"us-gaap:FairValueMeasurementFrequencyDomain","relationships":[{"source":"us-gaap:FairValueMeasurementFrequencyDomain","target":"us-gaap:FairValueMeasurementsRecurringMember"}]},{"name":"rpt:domain-27","root":"us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember","relationships":[{"source":"us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember","target":"us-gaap:MoneyMarketFundsMember"}]},{"name":"rpt:domain-28","root":"us-gaap:FairValueMeasurementsFairValueHierarchyDomain","relationships":[{"source":"us-gaap:FairValueMeasurementsFairValueHierarchyDomain","target":"us-gaap:FairValueInputsLevel1Member"}]},{"name":"rpt:domain-29","root":"us-gaap:IncomeTaxAuthorityDomain","relationships":[{"source":"us-gaap:IncomeTaxAuthorityDomain","target":"us-gaap:DomesticCountryMember"},{"source":"us-gaap:IncomeTaxAuthorityDomain","target":"us-gaap:StateAndLocalJurisdictionMember"},{"source":"us-gaap:IncomeTaxAuthorityDomain","target":"calx:CaliforniaStateMember"},{"source":"us-gaap:IncomeTaxAuthorityDomain","target":"calx:OtherStateMember"}]},{"name":"rpt:domain-30","root":"srt:RepurchaseAgreementCounterpartyNameDomain","relationships":[{"source":"srt:RepurchaseAgreementCounterpartyNameDomain","target":"calx:ClearfieldInc.Member"}]},{"name":"rpt:domain-31","root":"us-gaap:DisposalGroupsIncludingDiscontinuedOperationsNameDomain","relationships":[{"source":"us-gaap:DisposalGroupsIncludingDiscontinuedOperationsNameDomain","target":"calx:OutdoorCabinetProductLineMember"}]},{"name":"rpt:domain-32","root":"srt:NameOfMajorCustomerDomain","relationships":[{"source":"srt:NameOfMajorCustomerDomain","target":"calx:CenturyLinkDomain"}]},{"name":"rpt:domain-33","root":"us-gaap:ConcentrationRiskBenchmarkDomain","relationships":[{"source":"us-gaap:ConcentrationRiskBenchmarkDomain","target":"us-gaap:AccountsReceivableMember"},{"source":"us-gaap:ConcentrationRiskBenchmarkDomain","target":"us-gaap:RevenueFromContractWithCustomerMember"}]},{"name":"rpt:domain-34","root":"us-gaap:DeferredRevenueArrangementTypeDomain","relationships":[{"source":"us-gaap:DeferredRevenueArrangementTypeDomain","target":"calx:ProductAndServicesMember"},{"source":"us-gaap:DeferredRevenueArrangementTypeDomain","target":"calx:ExtendedWarrantyMember"}]},{"name":"rpt:domain-35","root":"srt:SegmentGeographicalDomain","relationships":[{"source":"srt:SegmentGeographicalDomain","target":"country:US"},{"source":"srt:SegmentGeographicalDomain","target":"country:CN"}]},{"name":"rpt:domain-36","root":"srt:SegmentGeographicalDomain","relationships":[{"source":"srt:SegmentGeographicalDomain","target":"country:US"},{"source":"srt:SegmentGeographicalDomain","target":"us-gaap:MiddleEastMember"},{"source":"srt:SegmentGeographicalDomain","target":"country:CA"},{"source":"srt:SegmentGeographicalDomain","target":"srt:EuropeMember"},{"source":"srt:SegmentGeographicalDomain","target":"calx:CaribbeanMember"},{"source":"srt:SegmentGeographicalDomain","target":"calx:SegmentGeographicalOtherCountriesMember"}]},{"name":"rpt:domain-37","root":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","relationships":[{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:EmployeeStockOptionMember"},{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:EmployeeStockMember"}]},{"name":"rpt:domain-38","root":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","relationships":[{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:EmployeeStockMember"}]},{"name":"rpt:domain-39","root":"us-gaap:PlanNameDomain","relationships":[{"source":"us-gaap:PlanNameDomain","target":"calx:A2017NonqualifiedEmployeeStockPurchasePlanMember"},{"source":"us-gaap:PlanNameDomain","target":"calx:EmployeeStockPurchasePlanMember"}]},{"name":"rpt:domain-40","root":"us-gaap:PlanNameDomain","relationships":[{"source":"us-gaap:PlanNameDomain","target":"calx:A2019EquityIncentiveAwardPlanMember"},{"source":"us-gaap:PlanNameDomain","target":"calx:A2020PerformanceTargetsMember"}]},{"name":"rpt:domain-41","root":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","relationships":[{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:EmployeeStockOptionMember"},{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:RestrictedStockUnitsRSUMember"},{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"calx:PerformanceBasedStockOptionsMember"}]},{"name":"rpt:domain-42","root":"us-gaap:VestingDomain","relationships":[{"source":"us-gaap:VestingDomain","target":"us-gaap:ShareBasedCompensationAwardTrancheOneMember"},{"source":"us-gaap:VestingDomain","target":"us-gaap:ShareBasedCompensationAwardTrancheTwoMember"}]},{"name":"rpt:domain-43","root":"srt:TitleOfIndividualWithRelationshipToEntityDomain","relationships":[{"source":"srt:TitleOfIndividualWithRelationshipToEntityDomain","target":"srt:ExecutiveOfficerMember"}]},{"name":"rpt:domain-44","root":"us-gaap:SubsequentEventTypeDomain","relationships":[{"source":"us-gaap:SubsequentEventTypeDomain","target":"us-gaap:SubsequentEventMember"}]},{"name":"rpt:domain-45","root":"us-gaap:PlanNameDomain","relationships":[{"source":"us-gaap:PlanNameDomain","target":"calx:A2017NonqualifiedEmployeeStockPurchasePlanMember"}]},{"name":"rpt:domain-46","root":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","relationships":[{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:RestrictedStockUnitsRSUMember"},{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:EmployeeStockMember"}]},{"name":"rpt:domain-47","root":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","relationships":[{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:RestrictedStockUnitsRSUMember"}]},{"name":"rpt:domain-48","root":"us-gaap:PlanNameDomain","relationships":[{"source":"us-gaap:PlanNameDomain","target":"calx:A2017NonqualifiedEmployeeStockPurchasePlanMember"},{"source":"us-gaap:PlanNameDomain","target":"calx:A2019PlanMember"}]},{"name":"rpt:domain-49","root":"us-gaap:IncomeStatementLocationDomain","relationships":[{"source":"us-gaap:IncomeStatementLocationDomain","target":"calx:CostOfRevenueProductsMember"},{"source":"us-gaap:IncomeStatementLocationDomain","target":"calx:CostOfRevenueServicesMember"},{"source":"us-gaap:IncomeStatementLocationDomain","target":"us-gaap:ResearchAndDevelopmentExpenseMember"},{"source":"us-gaap:IncomeStatementLocationDomain","target":"us-gaap:SellingAndMarketingExpenseMember"},{"source":"us-gaap:IncomeStatementLocationDomain","target":"us-gaap:GeneralAndAdministrativeExpenseMember"}]},{"name":"rpt:domain-50","root":"us-gaap:SaleOfStockNameOfTransactionDomain","relationships":[{"source":"us-gaap:SaleOfStockNameOfTransactionDomain","target":"calx:PublicStockOfferingMember"},{"source":"us-gaap:SaleOfStockNameOfTransactionDomain","target":"us-gaap:OverAllotmentOptionMember"}]},{"name":"rpt:domain-51","root":"us-gaap:EquityComponentDomain","relationships":[{"source":"us-gaap:EquityComponentDomain","target":"us-gaap:CommonStockMember"},{"source":"us-gaap:EquityComponentDomain","target":"us-gaap:RetainedEarningsMember"}]},{"name":"rpt:domain-52","root":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","relationships":[{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:EmployeeStockOptionMember"},{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:RestrictedStockUnitsRSUMember"},{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:EmployeeStockMember"}]}],"members":[{"name":"calx:A2017NonqualifiedEmployeeStockPurchasePlanMember","domainClasses":["us-gaap:PlanNameDomain"]},{"name":"calx:A2019EquityIncentiveAwardPlanMember","domainClasses":["us-gaap:PlanNameDomain"]},{"name":"calx:A2019PlanMember","domainClasses":["us-gaap:PlanNameDomain"]},{"name":"calx:A2020PerformanceTargetsMember","domainClasses":["us-gaap:PlanNameDomain"]},{"name":"calx:AllPlatformFutureAndWorkFromAnywhereCultureAlignmentMember","domainClasses":["us-gaap:RestructuringPlanDomain"]},{"name":"calx:BankOfAmericaMember","domainClasses":["us-gaap:LineOfCreditFacilityLenderDomain"]},{"name":"calx:BrazilChinaAndUnitedKingdomMember","domainClasses":["srt:SegmentGeographicalDomain"]},{"name":"calx:CaliforniaStateMember","domainClasses":["us-gaap:IncomeTaxAuthorityDomain"]},{"name":"calx:CaribbeanMember","domainClasses":["srt:SegmentGeographicalDomain"]},{"name":"calx:CenturyLinkDomain","domainClasses":["srt:NameOfMajorCustomerDomain"]},{"name":"calx:ClearfieldInc.Member","domainClasses":["srt:RepurchaseAgreementCounterpartyNameDomain"]},{"name":"calx:CloudImplementationCostsMember","domainClasses":["us-gaap:CapitalizedContractCostDomain"]},{"name":"calx:ConsultingServicesMember","domainClasses":["srt:ProductsAndServicesDomain"]},{"name":"calx:CostOfRevenueProductsMember","domainClasses":["us-gaap:IncomeStatementLocationDomain"]},{"name":"calx:CostOfRevenueServicesMember","domainClasses":["us-gaap:IncomeStatementLocationDomain"]},{"name":"calx:EmployeeStockPurchasePlanMember","domainClasses":["us-gaap:PlanNameDomain"]},{"name":"calx:ExtendedWarrantyMember","domainClasses":["us-gaap:DeferredRevenueArrangementTypeDomain"]},{"name":"calx:OtherStateMember","domainClasses":["us-gaap:IncomeTaxAuthorityDomain"]},{"name":"calx:OutdoorCabinetProductLineMember","domainClasses":["us-gaap:DisposalGroupsIncludingDiscontinuedOperationsNameDomain"]},{"name":"calx:PerformanceBasedStockOptionsMember","domainClasses":["us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"]},{"name":"calx:PetalumaCAMember","domainClasses":["srt:SegmentGeographicalDomain"]},{"name":"calx:ProductAndServicesMember","domainClasses":["us-gaap:DeferredRevenueArrangementTypeDomain"]},{"name":"calx:ProductReturnReserveMember","domainClasses":["us-gaap:ValuationAllowancesAndReservesDomain"]},{"name":"calx:PublicStockOfferingMember","domainClasses":["us-gaap:SaleOfStockNameOfTransactionDomain"]},{"name":"calx:ResearchAndDevelopmentEquipmentMember","domainClasses":["us-gaap:PropertyPlantAndEquipmentTypeDomain"]},{"name":"calx:RichardsonTexasAndSanJoseCaliforniaMember","domainClasses":["srt:SegmentGeographicalDomain"]},{"name":"calx:SanJoseCaliforniaMember","domainClasses":["srt:SegmentGeographicalDomain"]},{"name":"calx:SegmentGeographicalOtherCountriesMember","domainClasses":["srt:SegmentGeographicalDomain"]},{"name":"calx:SoftwareMember","domainClasses":["us-gaap:PropertyPlantAndEquipmentTypeDomain"]},{"name":"calx:SystemsProductMember","domainClasses":["srt:ProductsAndServicesDomain"]},{"name":"country:CA","domainClasses":["srt:SegmentGeographicalDomain"]},{"name":"country:CN","domainClasses":["srt:SegmentGeographicalDomain"]},{"name":"country:US","domainClasses":["srt:SegmentGeographicalDomain"]},{"name":"srt:CumulativeEffectPeriodOfAdoptionAdjustmentMember","domainClasses":["srt:CumulativeEffectPeriodOfAdoptionDomain"]},{"name":"srt:EuropeMember","domainClasses":["srt:SegmentGeographicalDomain"]},{"name":"srt:ExecutiveOfficerMember","domainClasses":["srt:TitleOfIndividualWithRelationshipToEntityDomain"]},{"name":"srt:MaximumMember","domainClasses":["srt:RangeMember"]},{"name":"srt:MinimumMember","domainClasses":["srt:RangeMember"]},{"name":"srt:SubsidiariesMember","domainClasses":["srt:ConsolidatedEntitiesDomain"]},{"name":"us-gaap:AccountingStandardsUpdate201602Member","domainClasses":["us-gaap:TypeOfAdoptionMember"]},{"name":"us-gaap:AccountsReceivableMember","domainClasses":["us-gaap:ConcentrationRiskBenchmarkDomain"]},{"name":"us-gaap:AccumulatedOtherComprehensiveIncomeMember","domainClasses":["us-gaap:EquityComponentDomain"]},{"name":"us-gaap:AccumulatedTranslationAdjustmentMember","domainClasses":["us-gaap:EquityComponentDomain"]},{"name":"us-gaap:AdditionalPaidInCapitalMember","domainClasses":["us-gaap:EquityComponentDomain"]},{"name":"us-gaap:AllowanceForCreditLossMember","domainClasses":["us-gaap:ValuationAllowancesAndReservesDomain"]},{"name":"us-gaap:CashMember","domainClasses":["us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember"]},{"name":"us-gaap:CommonStockMember","domainClasses":["us-gaap:EquityComponentDomain"]},{"name":"us-gaap:ComputerEquipmentMember","domainClasses":["us-gaap:PropertyPlantAndEquipmentTypeDomain"]},{"name":"us-gaap:ComputerSoftwareIntangibleAssetMember","domainClasses":["us-gaap:FiniteLivedIntangibleAssetsMajorClassNameDomain","us-gaap:PropertyPlantAndEquipmentTypeDomain"]},{"name":"us-gaap:CustomerConcentrationRiskMember","domainClasses":["us-gaap:ConcentrationRiskTypeDomain"]},{"name":"us-gaap:DomesticCountryMember","domainClasses":["us-gaap:IncomeTaxAuthorityDomain"]},{"name":"us-gaap:EmployeeSeveranceMember","domainClasses":["us-gaap:TypeOfRestructuringDomain"]},{"name":"us-gaap:EmployeeStockMember","domainClasses":["us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"]},{"name":"us-gaap:EmployeeStockOptionMember","domainClasses":["us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"]},{"name":"us-gaap:EquipmentMember","domainClasses":["us-gaap:PropertyPlantAndEquipmentTypeDomain"]},{"name":"us-gaap:FacilityClosingMember","domainClasses":["us-gaap:TypeOfRestructuringDomain"]},{"name":"us-gaap:FairValueInputsLevel1Member","domainClasses":["us-gaap:FairValueMeasurementsFairValueHierarchyDomain"]},{"name":"us-gaap:FairValueMeasurementsRecurringMember","domainClasses":["us-gaap:FairValueMeasurementFrequencyDomain"]},{"name":"us-gaap:FurnitureAndFixturesMember","domainClasses":["us-gaap:PropertyPlantAndEquipmentTypeDomain"]},{"name":"us-gaap:GeneralAndAdministrativeExpenseMember","domainClasses":["us-gaap:IncomeStatementLocationDomain"]},{"name":"us-gaap:LeaseholdImprovementsMember","domainClasses":["us-gaap:PropertyPlantAndEquipmentTypeDomain"]},{"name":"us-gaap:LetterOfCreditMember","domainClasses":["us-gaap:CreditFacilityDomain"]},{"name":"us-gaap:LondonInterbankOfferedRateLIBORMember","domainClasses":["us-gaap:VariableRateDomain"]},{"name":"us-gaap:MiddleEastMember","domainClasses":["srt:SegmentGeographicalDomain"]},{"name":"us-gaap:MoneyMarketFundsMember","domainClasses":["us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember"]},{"name":"us-gaap:OverAllotmentOptionMember","domainClasses":["us-gaap:SaleOfStockNameOfTransactionDomain"]},{"name":"us-gaap:PrimeRateMember","domainClasses":["us-gaap:VariableRateDomain"]},{"name":"us-gaap:ResearchAndDevelopmentExpenseMember","domainClasses":["us-gaap:IncomeStatementLocationDomain"]},{"name":"us-gaap:RestrictedStockUnitsRSUMember","domainClasses":["us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"]},{"name":"us-gaap:RetainedEarningsMember","domainClasses":["us-gaap:EquityComponentDomain"]},{"name":"us-gaap:RevenueFromContractWithCustomerMember","domainClasses":["us-gaap:ConcentrationRiskBenchmarkDomain"]},{"name":"us-gaap:RevolvingCreditFacilityMember","domainClasses":["us-gaap:CreditFacilityDomain"]},{"name":"us-gaap:SellingAndMarketingExpenseMember","domainClasses":["us-gaap:IncomeStatementLocationDomain"]},{"name":"us-gaap:ShareBasedCompensationAwardTrancheOneMember","domainClasses":["us-gaap:VestingDomain"]},{"name":"us-gaap:ShareBasedCompensationAwardTrancheTwoMember","domainClasses":["us-gaap:VestingDomain"]},{"name":"us-gaap:StateAndLocalJurisdictionMember","domainClasses":["us-gaap:IncomeTaxAuthorityDomain"]},{"name":"us-gaap:SubsequentEventMember","domainClasses":["us-gaap:SubsequentEventTypeDomain"]},{"name":"us-gaap:TechnologyServiceMember","domainClasses":["srt:ProductsAndServicesDomain"]},{"name":"us-gaap:TreasuryStockMember","domainClasses":["us-gaap:EquityComponentDomain"]},{"name":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember","domainClasses":["us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember","us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"]}],"cubes":[{"name":"rpt:cube-0","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"us-gaap:StatementEquityComponentsAxis","domainNetwork":"rpt:domain-0","optional":true}]},{"name":"rpt:cube-1","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"us-gaap:ValuationAllowancesAndReservesTypeAxis","domainNetwork":"rpt:domain-1","optional":true}]},{"name":"rpt:cube-2","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"us-gaap:CapitalizedContractCostAxis","domainNetwork":"rpt:domain-2","optional":true}]},{"name":"rpt:cube-3","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis","domainNetwork":"rpt:domain-3","optional":true}]},{"name":"rpt:cube-4","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"us-gaap:PropertyPlantAndEquipmentByTypeAxis","domainNetwork":"rpt:domain-4","optional":true}]},{"name":"rpt:cube-5","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"us-gaap:RestructuringCostAndReserveAxis","domainNetwork":"rpt:domain-5","optional":true},{"dimension":"us-gaap:RestructuringPlanAxis","domainNetwork":"rpt:domain-6","optional":true},{"dimension":"srt:StatementGeographicalAxis","domainNetwork":"rpt:domain-7","optional":true}]},{"name":"rpt:cube-6","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"us-gaap:CashAndCashEquivalentsAxis","domainNetwork":"rpt:domain-8","optional":true},{"dimension":"us-gaap:FinancialInstrumentAxis","domainNetwork":"rpt:domain-9","optional":true}]},{"name":"rpt:cube-7","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"srt:StatementGeographicalAxis","domainNetwork":"rpt:domain-10","optional":true}]},{"name":"rpt:cube-8","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"srt:ProductOrServiceAxis","domainNetwork":"rpt:domain-11","optional":true}]},{"name":"rpt:cube-9","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"us-gaap:StatementEquityComponentsAxis","domainNetwork":"rpt:domain-12","optional":true},{"dimension":"srt:CumulativeEffectPeriodOfAdoptionAxis","domainNetwork":"rpt:domain-13","optional":true}]},{"name":"rpt:cube-10","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"srt:ProductOrServiceAxis","domainNetwork":"rpt:domain-14","optional":true},{"dimension":"us-gaap:PropertyPlantAndEquipmentByTypeAxis","domainNetwork":"rpt:domain-15","optional":true}]},{"name":"rpt:cube-11","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"us-gaap:LineOfCreditFacilityAxis","domainNetwork":"rpt:domain-16","optional":true},{"dimension":"us-gaap:VariableRateAxis","domainNetwork":"rpt:domain-17","optional":true},{"dimension":"srt:RangeAxis","domainNetwork":"rpt:domain-18","optional":true},{"dimension":"us-gaap:CreditFacilityAxis","domainNetwork":"rpt:domain-19","optional":true}]},{"name":"rpt:cube-12","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"srt:RangeAxis","domainNetwork":"rpt:domain-18","optional":true},{"dimension":"srt:ConsolidatedEntitiesAxis","domainNetwork":"rpt:domain-20","optional":true},{"dimension":"srt:StatementGeographicalAxis","domainNetwork":"rpt:domain-21","optional":true},{"dimension":"us-gaap:AdjustmentsForNewAccountingPronouncementsAxis","domainNetwork":"rpt:domain-22","optional":true}]},{"name":"rpt:cube-13","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"srt:RangeAxis","domainNetwork":"rpt:domain-18","optional":true}]},{"name":"rpt:cube-14","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"us-gaap:ConcentrationRiskByTypeAxis","domainNetwork":"rpt:domain-23","optional":true},{"dimension":"us-gaap:ConcentrationRiskByBenchmarkAxis","domainNetwork":"rpt:domain-24","optional":true}]},{"name":"rpt:cube-15","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"us-gaap:PropertyPlantAndEquipmentByTypeAxis","domainNetwork":"rpt:domain-25","optional":true},{"dimension":"srt:RangeAxis","domainNetwork":"rpt:domain-18","optional":true}]},{"name":"rpt:cube-16","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"us-gaap:FairValueByMeasurementFrequencyAxis","domainNetwork":"rpt:domain-26","optional":true},{"dimension":"us-gaap:CashAndCashEquivalentsAxis","domainNetwork":"rpt:domain-27","optional":true},{"dimension":"us-gaap:FinancialInstrumentAxis","domainNetwork":"rpt:domain-9","optional":true},{"dimension":"us-gaap:FairValueByFairValueHierarchyLevelAxis","domainNetwork":"rpt:domain-28","optional":true}]},{"name":"rpt:cube-17","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"us-gaap:IncomeTaxAuthorityAxis","domainNetwork":"rpt:domain-29","optional":true}]},{"name":"rpt:cube-18","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"srt:CounterpartyNameAxis","domainNetwork":"rpt:domain-30","optional":true},{"dimension":"us-gaap:IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis","domainNetwork":"rpt:domain-31","optional":true}]},{"name":"rpt:cube-19","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"srt:MajorCustomersAxis","domainNetwork":"rpt:domain-32","optional":true},{"dimension":"us-gaap:ConcentrationRiskByTypeAxis","domainNetwork":"rpt:domain-23","optional":true},{"dimension":"us-gaap:ConcentrationRiskByBenchmarkAxis","domainNetwork":"rpt:domain-33","optional":true}]},{"name":"rpt:cube-20","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"us-gaap:DeferredRevenueArrangementTypeAxis","domainNetwork":"rpt:domain-34","optional":true}]},{"name":"rpt:cube-21","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"}]},{"name":"rpt:cube-22","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true}]},{"name":"rpt:cube-23","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"srt:StatementGeographicalAxis","domainNetwork":"rpt:domain-35","optional":true}]},{"name":"rpt:cube-24","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"srt:StatementGeographicalAxis","domainNetwork":"rpt:domain-36","optional":true}]},{"name":"rpt:cube-25","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"us-gaap:AwardTypeAxis","domainNetwork":"rpt:domain-37","optional":true}]},{"name":"rpt:cube-26","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"us-gaap:AwardTypeAxis","domainNetwork":"rpt:domain-38","optional":true},{"dimension":"us-gaap:PlanNameAxis","domainNetwork":"rpt:domain-39","optional":true}]},{"name":"rpt:cube-27","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"us-gaap:PlanNameAxis","domainNetwork":"rpt:domain-40","optional":true},{"dimension":"us-gaap:AwardTypeAxis","domainNetwork":"rpt:domain-41","optional":true},{"dimension":"us-gaap:VestingAxis","domainNetwork":"rpt:domain-42","optional":true},{"dimension":"srt:TitleOfIndividualAxis","domainNetwork":"rpt:domain-43","optional":true},{"dimension":"us-gaap:SubsequentEventTypeAxis","domainNetwork":"rpt:domain-44","optional":true}]},{"name":"rpt:cube-28","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"us-gaap:PlanNameAxis","domainNetwork":"rpt:domain-45","optional":true},{"dimension":"us-gaap:AwardTypeAxis","domainNetwork":"rpt:domain-46","optional":true}]},{"name":"rpt:cube-29","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"us-gaap:AwardTypeAxis","domainNetwork":"rpt:domain-47","optional":true}]},{"name":"rpt:cube-30","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"us-gaap:PlanNameAxis","domainNetwork":"rpt:domain-48","optional":true},{"dimension":"us-gaap:AwardTypeAxis","domainNetwork":"rpt:domain-46","optional":true}]},{"name":"rpt:cube-31","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"us-gaap:IncomeStatementLocationAxis","domainNetwork":"rpt:domain-49","optional":true}]},{"name":"rpt:cube-32","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"us-gaap:SubsidiarySaleOfStockAxis","domainNetwork":"rpt:domain-50","optional":true},{"dimension":"us-gaap:StatementEquityComponentsAxis","domainNetwork":"rpt:domain-51","optional":true}]},{"name":"rpt:cube-33","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true},{"dimension":"us-gaap:AwardTypeAxis","domainNetwork":"rpt:domain-52","optional":true}]},{"name":"rpt:cube-undimensioned","cubeDimensions":[{"dimension":"xbrl:concept"},{"dimension":"xbrl:period","optional":true},{"dimension":"xbrl:entity","optional":true},{"dimension":"xbrl:unit","optional":true},{"dimension":"xbrl:language","optional":true}]}],"labels":[{"forObject":"calx:A2017NonqualifiedEmployeeStockPurchasePlanMember","labelType":"xbrl:terseLabel","value":"2017 Nonqualified Employee Stock Purchase Plan","language":"en-US"},{"forObject":"calx:A2017NonqualifiedEmployeeStockPurchasePlanMember","labelType":"xbrl:label","value":"2017 Nonqualified Employee Stock Purchase Plan [Member]","language":"en-US"},{"forObject":"calx:A2017NonqualifiedEmployeeStockPurchasePlanMember","labelType":"xbrl:documentation","value":"2017 Nonqualified Employee Stock Purchase Plan","language":"en-US"},{"forObject":"calx:A2019EquityIncentiveAwardPlanMember","labelType":"xbrl:terseLabel","value":"2019 Equity Incentive Award Plan","language":"en-US"},{"forObject":"calx:A2019EquityIncentiveAwardPlanMember","labelType":"xbrl:label","value":"2019 Equity Incentive Award Plan [Member]","language":"en-US"},{"forObject":"calx:A2019EquityIncentiveAwardPlanMember","labelType":"xbrl:documentation","value":"2019 Equity Incentive Award Plan [Member]","language":"en-US"},{"forObject":"calx:A2019PlanMember","labelType":"xbrl:terseLabel","value":"2019 Plan","language":"en-US"},{"forObject":"calx:A2019PlanMember","labelType":"xbrl:label","value":"2019 Plan [Member]","language":"en-US"},{"forObject":"calx:A2019PlanMember","labelType":"xbrl:documentation","value":"2019 Plan","language":"en-US"},{"forObject":"calx:A2020PerformanceTargetsMember","labelType":"xbrl:terseLabel","value":"2020 Performance Targets","language":"en-US"},{"forObject":"calx:A2020PerformanceTargetsMember","labelType":"xbrl:label","value":"2020 Performance Targets [Member]","language":"en-US"},{"forObject":"calx:A2020PerformanceTargetsMember","labelType":"xbrl:documentation","value":"2020 Performance Targets [Member]","language":"en-US"},{"forObject":"calx:AccruedCommonAreasMaintenanceFeesAndPropertyTaxesWriteOff","labelType":"xbrl:terseLabel","value":"Accrued common areas maintenance fees and property taxes, write-off","language":"en-US"},{"forObject":"calx:AccruedCommonAreasMaintenanceFeesAndPropertyTaxesWriteOff","labelType":"xbrl:label","value":"Accrued Common Areas Maintenance Fees And Property Taxes, Write Off","language":"en-US"},{"forObject":"calx:AccruedCommonAreasMaintenanceFeesAndPropertyTaxesWriteOff","labelType":"xbrl:documentation","value":"Accrued Common Areas Maintenance Fees And Property Taxes, Write Off","language":"en-US"},{"forObject":"calx:AccruedCustomerRebates","labelType":"xbrl:terseLabel","value":"Customer advances or rebates","language":"en-US"},{"forObject":"calx:AccruedCustomerRebates","labelType":"xbrl:label","value":"Accrued Customer Rebates","language":"en-US"},{"forObject":"calx:AccruedCustomerRebates","labelType":"xbrl:documentation","value":"Accrued customer rebates.","language":"en-US"},{"forObject":"calx:AccruedEquipmentFinancingArrangementsCurrent","labelType":"xbrl:terseLabel","value":"Current portion of financing arrangements","language":"en-US"},{"forObject":"calx:AccruedEquipmentFinancingArrangementsCurrent","labelType":"xbrl:label","value":"Accrued Equipment Financing Arrangements, Current","language":"en-US"},{"forObject":"calx:AccruedEquipmentFinancingArrangementsCurrent","labelType":"xbrl:documentation","value":"Accrued Equipment Financing Arrangements, Current","language":"en-US"},{"forObject":"calx:AccruedExcessAndObsoleteInventoryAtContractManufacturer","labelType":"xbrl:terseLabel","value":"Component inventory held by suppliers","language":"en-US"},{"forObject":"calx:AccruedExcessAndObsoleteInventoryAtContractManufacturer","labelType":"xbrl:verboseLabel","value":"Accrued professional and consulting fees","language":"en-US"},{"forObject":"calx:AccruedExcessAndObsoleteInventoryAtContractManufacturer","labelType":"xbrl:label","value":"Accrued Excess and Obsolete Inventory At Contract Manufacturer","language":"en-US"},{"forObject":"calx:AccruedExcessAndObsoleteInventoryAtContractManufacturer","labelType":"xbrl:documentation","value":"Accrued excess and obsolete inventory at contract manufacturer.","language":"en-US"},{"forObject":"calx:AccruedFreight","labelType":"xbrl:terseLabel","value":"Freight","language":"en-US"},{"forObject":"calx:AccruedFreight","labelType":"xbrl:label","value":"Accrued Freight","language":"en-US"},{"forObject":"calx:AccruedFreight","labelType":"xbrl:documentation","value":"Accrued Freight","language":"en-US"},{"forObject":"calx:AllPlatformFutureAndWorkFromAnywhereCultureAlignmentMember","labelType":"xbrl:terseLabel","value":"All Platform Future And Work-From-Anywhere Culture Alignment","language":"en-US"},{"forObject":"calx:AllPlatformFutureAndWorkFromAnywhereCultureAlignmentMember","labelType":"xbrl:label","value":"All Platform Future And Work-From-Anywhere Culture Alignment [Member]","language":"en-US"},{"forObject":"calx:AllPlatformFutureAndWorkFromAnywhereCultureAlignmentMember","labelType":"xbrl:documentation","value":"All Platform Future And Work-From-Anywhere Culture Alignment","language":"en-US"},{"forObject":"calx:AssetWriteOff","labelType":"xbrl:terseLabel","value":"Asset, write-off","language":"en-US"},{"forObject":"calx:AssetWriteOff","labelType":"xbrl:label","value":"Asset Write Off","language":"en-US"},{"forObject":"calx:AssetWriteOff","labelType":"xbrl:documentation","value":"Asset Write Off","language":"en-US"},{"forObject":"calx:BankOfAmericaMember","labelType":"xbrl:terseLabel","value":"Bank Of America","language":"en-US"},{"forObject":"calx:BankOfAmericaMember","labelType":"xbrl:label","value":"Bank Of America [Member]","language":"en-US"},{"forObject":"calx:BankOfAmericaMember","labelType":"xbrl:documentation","value":"Bank Of America [Member]","language":"en-US"},{"forObject":"calx:BrazilChinaAndUnitedKingdomMember","labelType":"xbrl:terseLabel","value":"Brazil, China And United Kingdom","language":"en-US"},{"forObject":"calx:BrazilChinaAndUnitedKingdomMember","labelType":"xbrl:label","value":"Brazil, China And United Kingdom [Member]","language":"en-US"},{"forObject":"calx:BrazilChinaAndUnitedKingdomMember","labelType":"xbrl:documentation","value":"Brazil, China And United Kingdom","language":"en-US"},{"forObject":"calx:CaliforniaStateMember","labelType":"xbrl:terseLabel","value":"California State","language":"en-US"},{"forObject":"calx:CaliforniaStateMember","labelType":"xbrl:label","value":"California State [Member]","language":"en-US"},{"forObject":"calx:CaliforniaStateMember","labelType":"xbrl:documentation","value":"California State [Member]","language":"en-US"},{"forObject":"calx:CaribbeanMember","labelType":"xbrl:terseLabel","value":"Middle East","language":"en-US"},{"forObject":"calx:CaribbeanMember","labelType":"xbrl:label","value":"Caribbean [Member]","language":"en-US"},{"forObject":"calx:CaribbeanMember","labelType":"xbrl:documentation","value":"Caribbean [Member]","language":"en-US"},{"forObject":"calx:CashCashEquivalentsAndMarketableSecuritiesPolicyPolicyTextBlockPolicyTextBlock","labelType":"xbrl:terseLabel","value":"Cash, Cash Equivalents, and Marketable Securities","language":"en-US"},{"forObject":"calx:CashCashEquivalentsAndMarketableSecuritiesPolicyPolicyTextBlockPolicyTextBlock","labelType":"xbrl:label","value":"Cash, Cash Equivalents, and Marketable Securities, Policy [Policy Text Block] [Policy Text Block]","language":"en-US"},{"forObject":"calx:CashCashEquivalentsAndMarketableSecuritiesPolicyPolicyTextBlockPolicyTextBlock","labelType":"xbrl:documentation","value":"Disclosure of accounting policy for cash and cash equivalents, and for investments in debt and equity securities that have readily determinable fair values (marketable securities).","language":"en-US"},{"forObject":"calx:CashCashEquivalentsRestrictedCashAndMarketableSecurities","labelType":"xbrl:totalLabel","value":"Cash, Cash Equivalents, Restricted Cash And Marketable Securities","language":"en-US"},{"forObject":"calx:CashCashEquivalentsRestrictedCashAndMarketableSecurities","labelType":"xbrl:label","value":"Cash, Cash Equivalents, Restricted Cash And Marketable Securities","language":"en-US"},{"forObject":"calx:CashCashEquivalentsRestrictedCashAndMarketableSecurities","labelType":"xbrl:documentation","value":"Cash, Cash Equivalents, Restricted Cash And Marketable Securities","language":"en-US"},{"forObject":"calx:CenturyLinkDomain","labelType":"xbrl:terseLabel","value":"Lumen Technologies, Inc. (formerly CenturyLink, Inc.)","language":"en-US"},{"forObject":"calx:CenturyLinkDomain","labelType":"xbrl:label","value":"Century Link [Domain]","language":"en-US"},{"forObject":"calx:CenturyLinkDomain","labelType":"xbrl:documentation","value":"Century Link [Domain]","language":"en-US"},{"forObject":"calx:ChangeInCapitalExpendituresIncurredButNotYetPaid","labelType":"xbrl:terseLabel","value":"Changes in accounts payable and accrued liabilities related to purchases of property and equipment","language":"en-US"},{"forObject":"calx:ChangeInCapitalExpendituresIncurredButNotYetPaid","labelType":"xbrl:label","value":"Change In Capital Expenditures Incurred But Not Yet Paid","language":"en-US"},{"forObject":"calx:ChangeInCapitalExpendituresIncurredButNotYetPaid","labelType":"xbrl:documentation","value":"Change In Capital Expenditures Incurred But Not Yet Paid","language":"en-US"},{"forObject":"calx:ClearfieldInc.Member","labelType":"xbrl:terseLabel","value":"Clearfield, Inc.","language":"en-US"},{"forObject":"calx:ClearfieldInc.Member","labelType":"xbrl:label","value":"Clearfield, Inc. [Member]","language":"en-US"},{"forObject":"calx:ClearfieldInc.Member","labelType":"xbrl:documentation","value":"Clearfield, Inc. [Member]","language":"en-US"},{"forObject":"calx:CloudImplementationCostsMember","labelType":"xbrl:terseLabel","value":"Cloud Implementation Costs","language":"en-US"},{"forObject":"calx:CloudImplementationCostsMember","labelType":"xbrl:label","value":"Cloud Implementation Costs [Member]","language":"en-US"},{"forObject":"calx:CloudImplementationCostsMember","labelType":"xbrl:documentation","value":"Cloud Implementation Costs [Member]","language":"en-US"},{"forObject":"calx:ConsultingServicesMember","labelType":"xbrl:terseLabel","value":"Consulting Services","language":"en-US"},{"forObject":"calx:ConsultingServicesMember","labelType":"xbrl:label","value":"Consulting Services [Member]","language":"en-US"},{"forObject":"calx:ConsultingServicesMember","labelType":"xbrl:documentation","value":"Consulting Services [Member]","language":"en-US"},{"forObject":"calx:ContractWithCustomerAssetExpectedToBeBilledRemainderOfYearPercent","labelType":"xbrl:terseLabel","value":"Contract with customer, asset, expected to be billed remainder of year, percent","language":"en-US"},{"forObject":"calx:ContractWithCustomerAssetExpectedToBeBilledRemainderOfYearPercent","labelType":"xbrl:label","value":"Contract With Customer, Asset, Expected To Be Billed Remainder Of Year, Percent","language":"en-US"},{"forObject":"calx:ContractWithCustomerAssetExpectedToBeBilledRemainderOfYearPercent","labelType":"xbrl:documentation","value":"Contract With Customer, Asset, Expected To Be Billed Remainder Of Year, Percent","language":"en-US"},{"forObject":"calx:ContractualTermStockOptions","labelType":"xbrl:terseLabel","value":"Contractual term, stock options","language":"en-US"},{"forObject":"calx:ContractualTermStockOptions","labelType":"xbrl:label","value":"Contractual Term, Stock Options","language":"en-US"},{"forObject":"calx:ContractualTermStockOptions","labelType":"xbrl:documentation","value":"Contractual Term, Stock Options","language":"en-US"},{"forObject":"calx:ContractwithCustomerAssetPriorPeriodNotRecognized","labelType":"xbrl:terseLabel","value":"Contract with customer, asset, prior period, not recognized","language":"en-US"},{"forObject":"calx:ContractwithCustomerAssetPriorPeriodNotRecognized","labelType":"xbrl:label","value":"Contract with Customer, Asset, Prior Period, Not Recognized","language":"en-US"},{"forObject":"calx:ContractwithCustomerAssetPriorPeriodNotRecognized","labelType":"xbrl:documentation","value":"Contract with Customer, Asset, Prior Period, Not Recognized","language":"en-US"},{"forObject":"calx:CostOfRevenueProductsMember","labelType":"xbrl:terseLabel","value":"Products","language":"en-US"},{"forObject":"calx:CostOfRevenueProductsMember","labelType":"xbrl:label","value":"Cost Of Revenue, Products [Member]","language":"en-US"},{"forObject":"calx:CostOfRevenueProductsMember","labelType":"xbrl:documentation","value":"Cost Of Revenue, Products [Member]","language":"en-US"},{"forObject":"calx:CostOfRevenueServicesMember","labelType":"xbrl:verboseLabel","value":"Services","language":"en-US"},{"forObject":"calx:CostOfRevenueServicesMember","labelType":"xbrl:label","value":"Cost Of Revenue, Services [Member]","language":"en-US"},{"forObject":"calx:CostOfRevenueServicesMember","labelType":"xbrl:documentation","value":"Cost Of Revenue, Services [Member]","language":"en-US"},{"forObject":"calx:DebtInstrumentCovenantComplianceMinimumAvailability","labelType":"xbrl:terseLabel","value":"Covenant compliance, minimum availability","language":"en-US"},{"forObject":"calx:DebtInstrumentCovenantComplianceMinimumAvailability","labelType":"xbrl:label","value":"Debt Instrument, Covenant Compliance, Minimum Availability","language":"en-US"},{"forObject":"calx:DebtInstrumentCovenantComplianceMinimumAvailability","labelType":"xbrl:documentation","value":"Debt Instrument, Covenant Compliance, Minimum Availability","language":"en-US"},{"forObject":"calx:DisposalGroupPeriodOfNewOrdersSolicitation","labelType":"xbrl:terseLabel","value":"Period of new orders solicitation","language":"en-US"},{"forObject":"calx:DisposalGroupPeriodOfNewOrdersSolicitation","labelType":"xbrl:label","value":"Disposal Group, Period Of New Orders Solicitation","language":"en-US"},{"forObject":"calx:DisposalGroupPeriodOfNewOrdersSolicitation","labelType":"xbrl:documentation","value":"Disposal Group, Period Of New Orders Solicitation","language":"en-US"},{"forObject":"calx:EffectiveIncomeTaxRateReconciliationForeignIncomeInclusionPercent","labelType":"xbrl:terseLabel","value":"Foreign income inclusion","language":"en-US"},{"forObject":"calx:EffectiveIncomeTaxRateReconciliationForeignIncomeInclusionPercent","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, Foreign Income Inclusion, Percent","language":"en-US"},{"forObject":"calx:EffectiveIncomeTaxRateReconciliationForeignIncomeInclusionPercent","labelType":"xbrl:documentation","value":"Effective Income Tax Rate Reconciliation, Foreign Income Inclusion, Percent","language":"en-US"},{"forObject":"calx:EffectiveIncomeTaxRateReconciliationTopic606AdjustmentPercent","labelType":"xbrl:terseLabel","value":"ASC 606 adjustment","language":"en-US"},{"forObject":"calx:EffectiveIncomeTaxRateReconciliationTopic606AdjustmentPercent","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, Topic 606 Adjustment, Percent","language":"en-US"},{"forObject":"calx:EffectiveIncomeTaxRateReconciliationTopic606AdjustmentPercent","labelType":"xbrl:documentation","value":"Effective Income Tax Rate Reconciliation, Topic 606 Adjustment, Percent","language":"en-US"},{"forObject":"calx:EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationCostNotyetRecognizedToBeRecognizedInYearFour","labelType":"xbrl:terseLabel","value":"Stock-based compensation expense to be recognized in 2021","language":"en-US"},{"forObject":"calx:EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationCostNotyetRecognizedToBeRecognizedInYearFour","labelType":"xbrl:label","value":"Employee Service Share-based Compensation, Nonvested Awards, Compensation Cost Not yet Recognized, To Be Recognized In Year Four","language":"en-US"},{"forObject":"calx:EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationCostNotyetRecognizedToBeRecognizedInYearFour","labelType":"xbrl:documentation","value":"Employee Service Share-based Compensation, Nonvested Awards, Compensation Cost Not yet Recognized, To Be Recognized In Year Four","language":"en-US"},{"forObject":"calx:EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationCostNotyetRecognizedToBeRecognizedInYearThree","labelType":"xbrl:terseLabel","value":"Stock-based compensation expense to be recognized in 2020","language":"en-US"},{"forObject":"calx:EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationCostNotyetRecognizedToBeRecognizedInYearThree","labelType":"xbrl:label","value":"Employee Service Share-based Compensation, Nonvested Awards, Compensation Cost Not yet Recognized, To Be Recognized In Year Three","language":"en-US"},{"forObject":"calx:EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationCostNotyetRecognizedToBeRecognizedInYearThree","labelType":"xbrl:documentation","value":"Employee Service Share-based Compensation, Nonvested Awards, Compensation Cost Not yet Recognized, To Be Recognized In Year Three","language":"en-US"},{"forObject":"calx:EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationCostNotyetRecognizedToBeRecognizedInYearTwo","labelType":"xbrl:terseLabel","value":"Stock-based compensation expense to be recognized in 2019","language":"en-US"},{"forObject":"calx:EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationCostNotyetRecognizedToBeRecognizedInYearTwo","labelType":"xbrl:label","value":"Employee Service Share-based Compensation, Nonvested Awards, Compensation Cost Not yet Recognized, To Be Recognized In Year Two","language":"en-US"},{"forObject":"calx:EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationCostNotyetRecognizedToBeRecognizedInYearTwo","labelType":"xbrl:documentation","value":"Employee Service Share-based Compensation, Nonvested Awards, Compensation Cost Not yet Recognized, To Be Recognized In Year Two","language":"en-US"},{"forObject":"calx:EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationCostNotyetRecognizedToBeRecognizedNextTwelveMonth","labelType":"xbrl:terseLabel","value":"Stock-based compensation expense to be recognized in 2018","language":"en-US"},{"forObject":"calx:EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationCostNotyetRecognizedToBeRecognizedNextTwelveMonth","labelType":"xbrl:label","value":"Employee Service Share-based Compensation, Nonvested Awards, Compensation Cost Not yet Recognized, To Be Recognized Next Twelve Month","language":"en-US"},{"forObject":"calx:EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationCostNotyetRecognizedToBeRecognizedNextTwelveMonth","labelType":"xbrl:documentation","value":"Employee Service Share-based Compensation, Nonvested Awards, Compensation Cost Not yet Recognized, To Be Recognized Next Twelve Month","language":"en-US"},{"forObject":"calx:EmployeeStockPurchasePlanMember","labelType":"xbrl:terseLabel","value":"Employee Stock Purchase Plan","language":"en-US"},{"forObject":"calx:EmployeeStockPurchasePlanMember","labelType":"xbrl:label","value":"Employee Stock Purchase Plan [Member]","language":"en-US"},{"forObject":"calx:EmployeeStockPurchasePlanMember","labelType":"xbrl:documentation","value":"Employee Stock Purchase Plan","language":"en-US"},{"forObject":"calx:ExtendedWarrantyMember","labelType":"xbrl:terseLabel","value":"Extended warranty","language":"en-US"},{"forObject":"calx:ExtendedWarrantyMember","labelType":"xbrl:label","value":"Extended Warranty [Member]","language":"en-US"},{"forObject":"calx:ExtendedWarrantyMember","labelType":"xbrl:documentation","value":"Extended Warranty","language":"en-US"},{"forObject":"calx:FinancingArrangementsNonCashInvestingActivities","labelType":"xbrl:terseLabel","value":"Financing arrangements, non-cash investing activities","language":"en-US"},{"forObject":"calx:FinancingArrangementsNonCashInvestingActivities","labelType":"xbrl:label","value":"Financing Arrangements, Non Cash Investing Activities","language":"en-US"},{"forObject":"calx:FinancingArrangementsNonCashInvestingActivities","labelType":"xbrl:documentation","value":"Financing Arrangements, Non Cash Investing Activities","language":"en-US"},{"forObject":"calx:GainLossOnSaleOfProductLine","labelType":"xbrl:negatedTerseLabel","value":"Gain on sale of product line","language":"en-US"},{"forObject":"calx:GainLossOnSaleOfProductLine","labelType":"xbrl:label","value":"Gain (Loss) On Sale Of Product Line","language":"en-US"},{"forObject":"calx:GainLossOnSaleOfProductLine","labelType":"xbrl:documentation","value":"Gain (Loss) On Sale Of Product Line","language":"en-US"},{"forObject":"calx:IncomeTaxesLineItems","labelType":"xbrl:terseLabel","value":"Income Taxes [Line Items]","language":"en-US"},{"forObject":"calx:IncomeTaxesLineItems","labelType":"xbrl:label","value":"Income Taxes [Line Items]","language":"en-US"},{"forObject":"calx:IncomeTaxesLineItems","labelType":"xbrl:documentation","value":"Income Taxes [Line Items]","language":"en-US"},{"forObject":"calx:IncomeTaxesTable","labelType":"xbrl:terseLabel","value":"Income Taxes","language":"en-US"},{"forObject":"calx:IncomeTaxesTable","labelType":"xbrl:label","value":"Income Taxes [Table]","language":"en-US"},{"forObject":"calx:IncomeTaxesTable","labelType":"xbrl:documentation","value":"Income Taxes [Table]","language":"en-US"},{"forObject":"calx:LineOfCreditFacilityCovenantComplianceMinimumFixedChargeCoverageRatio","labelType":"xbrl:terseLabel","value":"Covenant compliance, minimum fixed charge coverage ratio","language":"en-US"},{"forObject":"calx:LineOfCreditFacilityCovenantComplianceMinimumFixedChargeCoverageRatio","labelType":"xbrl:label","value":"Line Of Credit Facility, Covenant Compliance, Minimum Fixed Charge Coverage Ratio","language":"en-US"},{"forObject":"calx:LineOfCreditFacilityCovenantComplianceMinimumFixedChargeCoverageRatio","labelType":"xbrl:documentation","value":"Line Of Credit Facility, Covenant Compliance, Minimum Fixed Charge Coverage Ratio","language":"en-US"},{"forObject":"calx:MinimumExercisePriceOfStockOptionPercent","labelType":"xbrl:terseLabel","value":"Minimum exercise price of stock option, percentage","language":"en-US"},{"forObject":"calx:MinimumExercisePriceOfStockOptionPercent","labelType":"xbrl:label","value":"Minimum Exercise Price Of Stock Option Percent","language":"en-US"},{"forObject":"calx:MinimumExercisePriceOfStockOptionPercent","labelType":"xbrl:documentation","value":"Minimum exercise price of stock options expressed as a percentage of the fair market value of the Company\u2019s common stock at grant date.","language":"en-US"},{"forObject":"calx:NumberOfEmployeeStockPurchasePlans","labelType":"xbrl:terseLabel","value":"Number of employee stock purchase plans","language":"en-US"},{"forObject":"calx:NumberOfEmployeeStockPurchasePlans","labelType":"xbrl:label","value":"Number Of Employee Stock Purchase Plans","language":"en-US"},{"forObject":"calx:NumberOfEmployeeStockPurchasePlans","labelType":"xbrl:documentation","value":"Number Of Employee Stock Purchase Plans","language":"en-US"},{"forObject":"calx:OperationsLiabilityCurrent","labelType":"xbrl:terseLabel","value":"Operations","language":"en-US"},{"forObject":"calx:OperationsLiabilityCurrent","labelType":"xbrl:label","value":"Operations Liability, Current","language":"en-US"},{"forObject":"calx:OperationsLiabilityCurrent","labelType":"xbrl:documentation","value":"Operations Liability, Current","language":"en-US"},{"forObject":"calx:OtherAssetsCapitalizedCloudImplementationCosts","labelType":"xbrl:terseLabel","value":"Capitalized cloud implementation costs","language":"en-US"},{"forObject":"calx:OtherAssetsCapitalizedCloudImplementationCosts","labelType":"xbrl:label","value":"Other Assets, Capitalized Cloud Implementation Costs","language":"en-US"},{"forObject":"calx:OtherAssetsCapitalizedCloudImplementationCosts","labelType":"xbrl:documentation","value":"Other Assets, Capitalized Cloud Implementation Costs","language":"en-US"},{"forObject":"calx:OtherStateMember","labelType":"xbrl:terseLabel","value":"Other State","language":"en-US"},{"forObject":"calx:OtherStateMember","labelType":"xbrl:label","value":"Other State [Member]","language":"en-US"},{"forObject":"calx:OtherStateMember","labelType":"xbrl:documentation","value":"Other State [Member]","language":"en-US"},{"forObject":"calx:OutdoorCabinetProductLineMember","labelType":"xbrl:terseLabel","value":"Outdoor Cabinet Product Line","language":"en-US"},{"forObject":"calx:OutdoorCabinetProductLineMember","labelType":"xbrl:label","value":"Outdoor Cabinet Product Line [Member]","language":"en-US"},{"forObject":"calx:OutdoorCabinetProductLineMember","labelType":"xbrl:documentation","value":"Outdoor Cabinet Product Line [Member]","language":"en-US"},{"forObject":"calx:PaymentsForFinancingArrangements","labelType":"xbrl:negatedTerseLabel","value":"Payments related to financing arrangements","language":"en-US"},{"forObject":"calx:PaymentsForFinancingArrangements","labelType":"xbrl:label","value":"Payments For Financing Arrangements","language":"en-US"},{"forObject":"calx:PaymentsForFinancingArrangements","labelType":"xbrl:documentation","value":"Payments For Financing Arrangements","language":"en-US"},{"forObject":"calx:PaymentsToSettlePurchaseObligations","labelType":"xbrl:terseLabel","value":"Payments to settle purchase obligations","language":"en-US"},{"forObject":"calx:PaymentsToSettlePurchaseObligations","labelType":"xbrl:label","value":"Payments To Settle Purchase Obligations","language":"en-US"},{"forObject":"calx:PaymentsToSettlePurchaseObligations","labelType":"xbrl:documentation","value":"Payments To Settle Purchase Obligations","language":"en-US"},{"forObject":"calx:PercentOfHistoricalVolatility","labelType":"xbrl:terseLabel","value":"Percent of historical volatility","language":"en-US"},{"forObject":"calx:PercentOfHistoricalVolatility","labelType":"xbrl:label","value":"Percent of Historical Volatility","language":"en-US"},{"forObject":"calx:PercentOfHistoricalVolatility","labelType":"xbrl:documentation","value":"Percent of Historical Volatility","language":"en-US"},{"forObject":"calx:PercentOfImpliedVolatility","labelType":"xbrl:terseLabel","value":"Percent of implied volatility","language":"en-US"},{"forObject":"calx:PercentOfImpliedVolatility","labelType":"xbrl:label","value":"Percent of Implied Volatility","language":"en-US"},{"forObject":"calx:PercentOfImpliedVolatility","labelType":"xbrl:documentation","value":"Percent of Implied Volatility","language":"en-US"},{"forObject":"calx:PerformanceBasedStockOptionsMember","labelType":"xbrl:terseLabel","value":"Performance Based Stock Options","language":"en-US"},{"forObject":"calx:PerformanceBasedStockOptionsMember","labelType":"xbrl:label","value":"Performance Based Stock Options [Member]","language":"en-US"},{"forObject":"calx:PerformanceBasedStockOptionsMember","labelType":"xbrl:documentation","value":"Performance Based Stock Options","language":"en-US"},{"forObject":"calx:PetalumaCAMember","labelType":"xbrl:terseLabel","value":"Petaluma, CA","language":"en-US"},{"forObject":"calx:PetalumaCAMember","labelType":"xbrl:label","value":"Petaluma, CA [Member]","language":"en-US"},{"forObject":"calx:PetalumaCAMember","labelType":"xbrl:documentation","value":"Petaluma, CA [Member]","language":"en-US"},{"forObject":"calx:ProceedsFromSaleOfProductLine","labelType":"xbrl:terseLabel","value":"Proceeds from sale of product line","language":"en-US"},{"forObject":"calx:ProceedsFromSaleOfProductLine","labelType":"xbrl:label","value":"Proceeds From Sale Of Product Line","language":"en-US"},{"forObject":"calx:ProceedsFromSaleOfProductLine","labelType":"xbrl:documentation","value":"Proceeds From Sale Of Product Line","language":"en-US"},{"forObject":"calx:ProductAndServicesMember","labelType":"xbrl:terseLabel","value":"Products and services","language":"en-US"},{"forObject":"calx:ProductAndServicesMember","labelType":"xbrl:label","value":"Product and Services [Member]","language":"en-US"},{"forObject":"calx:ProductAndServicesMember","labelType":"xbrl:documentation","value":"Product and Services","language":"en-US"},{"forObject":"calx:ProductReturnReserveCurrent","labelType":"xbrl:terseLabel","value":"Product returns","language":"en-US"},{"forObject":"calx:ProductReturnReserveCurrent","labelType":"xbrl:label","value":"Product Return Reserve, Current","language":"en-US"},{"forObject":"calx:ProductReturnReserveCurrent","labelType":"xbrl:documentation","value":"Product Return Reserve, Current","language":"en-US"},{"forObject":"calx:ProductReturnReserveMember","labelType":"xbrl:terseLabel","value":"Product return liability","language":"en-US"},{"forObject":"calx:ProductReturnReserveMember","labelType":"xbrl:label","value":"Product Return Reserve [Member]","language":"en-US"},{"forObject":"calx:ProductReturnReserveMember","labelType":"xbrl:documentation","value":"Reserve established for amounts due that are unlikely to be received due to customer's return of products.","language":"en-US"},{"forObject":"calx:ProductWarrantyPeriod","labelType":"xbrl:terseLabel","value":"Product warranty period","language":"en-US"},{"forObject":"calx:ProductWarrantyPeriod","labelType":"xbrl:label","value":"Product Warranty Period","language":"en-US"},{"forObject":"calx:ProductWarrantyPeriod","labelType":"xbrl:documentation","value":"Represents the general warranty period for the Company's hardware products from the date of shipment.","language":"en-US"},{"forObject":"calx:PublicStockOfferingMember","labelType":"xbrl:terseLabel","value":"Public Stock Offering","language":"en-US"},{"forObject":"calx:PublicStockOfferingMember","labelType":"xbrl:label","value":"Public Stock Offering [Member]","language":"en-US"},{"forObject":"calx:PublicStockOfferingMember","labelType":"xbrl:documentation","value":"Public Stock Offering","language":"en-US"},{"forObject":"calx:ResearchAndDevelopmentEquipmentMember","labelType":"xbrl:terseLabel","value":"Research And Development Equipment","language":"en-US"},{"forObject":"calx:ResearchAndDevelopmentEquipmentMember","labelType":"xbrl:label","value":"Research And Development Equipment [Member]","language":"en-US"},{"forObject":"calx:ResearchAndDevelopmentEquipmentMember","labelType":"xbrl:documentation","value":"Research And Development Equipment [Member]","language":"en-US"},{"forObject":"calx:RichardsonTexasAndSanJoseCaliforniaMember","labelType":"xbrl:terseLabel","value":"Richardson, Texas and San Jose, California","language":"en-US"},{"forObject":"calx:RichardsonTexasAndSanJoseCaliforniaMember","labelType":"xbrl:label","value":"Richardson, Texas And San Jose, California [Member]","language":"en-US"},{"forObject":"calx:RichardsonTexasAndSanJoseCaliforniaMember","labelType":"xbrl:documentation","value":"Richardson, Texas And San Jose, California","language":"en-US"},{"forObject":"calx:RoyaltyGuaranteesCommitmentsPaymentPeriod","labelType":"xbrl:terseLabel","value":"Royalty payment commitment period","language":"en-US"},{"forObject":"calx:RoyaltyGuaranteesCommitmentsPaymentPeriod","labelType":"xbrl:label","value":"Royalty Guarantees, Commitments, Payment Period","language":"en-US"},{"forObject":"calx:RoyaltyGuaranteesCommitmentsPaymentPeriod","labelType":"xbrl:documentation","value":"Royalty Guarantees, Commitments, Payment Period","language":"en-US"},{"forObject":"calx:SanJoseCaliforniaMember","labelType":"xbrl:terseLabel","value":"San Jose, California","language":"en-US"},{"forObject":"calx:SanJoseCaliforniaMember","labelType":"xbrl:label","value":"San Jose, California [Member]","language":"en-US"},{"forObject":"calx:SanJoseCaliforniaMember","labelType":"xbrl:documentation","value":"San Jose, California","language":"en-US"},{"forObject":"calx:ScheduleOfCertainTermsLineItemsLineItems","labelType":"xbrl:terseLabel","value":"Schedule of Certain Terms [Line Items]","language":"en-US"},{"forObject":"calx:ScheduleOfCertainTermsLineItemsLineItems","labelType":"xbrl:label","value":"Schedule of Certain Terms [Line Items] [Line Items]","language":"en-US"},{"forObject":"calx:ScheduleOfCertainTermsLineItemsLineItems","labelType":"xbrl:documentation","value":"Schedule of Certain Terms [Line Items]","language":"en-US"},{"forObject":"calx:ScheduleOfCertainTermsTableTable","labelType":"xbrl:terseLabel","value":"Schedule of Certain Terms [Table]","language":"en-US"},{"forObject":"calx:ScheduleOfCertainTermsTableTable","labelType":"xbrl:label","value":"Schedule of Certain Terms [Table] [Table]","language":"en-US"},{"forObject":"calx:ScheduleOfCertainTermsTableTable","labelType":"xbrl:documentation","value":"Schedule of ranges of cutomer payment term and warranty term.","language":"en-US"},{"forObject":"calx:ScheduleOfGrantDateFairValuesTableTextBlock","labelType":"xbrl:terseLabel","value":"Schedule of Grant Date Fair Values","language":"en-US"},{"forObject":"calx:ScheduleOfGrantDateFairValuesTableTextBlock","labelType":"xbrl:label","value":"Schedule of Grant Date Fair Values [Table Text Block]","language":"en-US"},{"forObject":"calx:ScheduleOfGrantDateFairValuesTableTextBlock","labelType":"xbrl:documentation","value":"Schedule of Grant Date Fair Values [Table Text Block]","language":"en-US"},{"forObject":"calx:SegmentGeographicalOtherCountriesMember","labelType":"xbrl:terseLabel","value":"Other","language":"en-US"},{"forObject":"calx:SegmentGeographicalOtherCountriesMember","labelType":"xbrl:label","value":"Segment, Geographical, Other Countries [Member]","language":"en-US"},{"forObject":"calx:SegmentGeographicalOtherCountriesMember","labelType":"xbrl:documentation","value":"Segment, Geographical, Other Countries [Member]","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardRequisiteServicePeriodSubsequentPeriod","labelType":"xbrl:terseLabel","value":"Subsequent performance period","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardRequisiteServicePeriodSubsequentPeriod","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Award Requisite Service Period, Subsequent Period","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardRequisiteServicePeriodSubsequentPeriod","labelType":"xbrl:documentation","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Award Requisite Service Period, Subsequent Period","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardsEarnedPercentage","labelType":"xbrl:terseLabel","value":"PSOs earned, percent","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardsEarnedPercentage","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Awards Earned, Percentage","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardsEarnedPercentage","labelType":"xbrl:documentation","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Awards Earned, Percentage","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardBookingsTargetAchievementPerformanceThresholdPercent","labelType":"xbrl:terseLabel","value":"Bookings target achievement performance threshold, percent","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardBookingsTargetAchievementPerformanceThresholdPercent","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Bookings, Target Achievement Performance Threshold, Percent","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardBookingsTargetAchievementPerformanceThresholdPercent","labelType":"xbrl:documentation","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Bookings, Target Achievement Performance Threshold, Percent","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEmployeeTerminationPeriodFollowingPurchaseDateToReceiveSharesSubjectToRiskOfForfeiture","labelType":"xbrl:terseLabel","value":"Employee termination period following purchase date to receive shares subject to risk of forfeiture","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEmployeeTerminationPeriodFollowingPurchaseDateToReceiveSharesSubjectToRiskOfForfeiture","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Employee Termination Period Following Purchase Date To Receive Shares Subject To Risk Of Forfeiture","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEmployeeTerminationPeriodFollowingPurchaseDateToReceiveSharesSubjectToRiskOfForfeiture","labelType":"xbrl:documentation","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Employee Termination Period Following Purchase Date To Receive Shares Subject To Risk Of Forfeiture","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumContributionPercent","labelType":"xbrl:terseLabel","value":"Maximum contribution percent","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumContributionPercent","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Maximum Contribution Percent","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumContributionPercent","labelType":"xbrl:documentation","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Maximum Contribution Percent","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNetIncomePerShareTargetAchievementPerformanceThresholdPercent","labelType":"xbrl:terseLabel","value":"Target achievement performance threshold, percent","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNetIncomePerShareTargetAchievementPerformanceThresholdPercent","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Net Income Per Share, Target Achievement Performance Threshold, Percent","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNetIncomePerShareTargetAchievementPerformanceThresholdPercent","labelType":"xbrl:documentation","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Net Income Per Share, Target Achievement Performance Threshold, Percent","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfOfferingPeriods","labelType":"xbrl:terseLabel","value":"Number of offering periods","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfOfferingPeriods","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Number Of Offering Periods","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfOfferingPeriods","labelType":"xbrl:documentation","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Number Of Offering Periods","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorizedPerPurchasePeriod","labelType":"xbrl:terseLabel","value":"Number of shares authorized per purchase period","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorizedPerPurchasePeriod","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Number Of Shares Authorized Per Purchase Period","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorizedPerPurchasePeriod","labelType":"xbrl:documentation","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Number Of Shares Authorized Per Purchase Period","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrantAdditionalShares","labelType":"xbrl:terseLabel","value":"Shares available for issuance, additional shares (in shares)","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrantAdditionalShares","labelType":"xbrl:label","value":"Share Based Compensation Arrangement By Share Based Payment Award Number Of Shares Available For Grant, Additional Shares","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrantAdditionalShares","labelType":"xbrl:documentation","value":"Share Based Compensation Arrangement By Share Based Payment Award Number Of Shares Available For Grant, Additional Shares","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesGrantedIfTargetAchievementPerformanceThresholdNotMet","labelType":"xbrl:terseLabel","value":"Number of shares granted if target achievement performance threshold not met (in shares)","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesGrantedIfTargetAchievementPerformanceThresholdNotMet","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Number Of Shares Granted If Target Achievement Performance Threshold Not Met","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesGrantedIfTargetAchievementPerformanceThresholdNotMet","labelType":"xbrl:documentation","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Number Of Shares Granted If Target Achievement Performance Threshold Not Met","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOfferingPeriod","labelType":"xbrl:terseLabel","value":"Offering period","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOfferingPeriod","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Offering Period","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOfferingPeriod","labelType":"xbrl:documentation","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Offering Period","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardPercentOfSharesReceivedUponMeetingTargets","labelType":"xbrl:terseLabel","value":"Percent of shares received upon meeting targets","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardPercentOfSharesReceivedUponMeetingTargets","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Percent Of Shares Received Upon Meeting Targets","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardPercentOfSharesReceivedUponMeetingTargets","labelType":"xbrl:documentation","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Percent Of Shares Received Upon Meeting Targets","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesAwardTargetAchievementPerformanceThresholdPercent","labelType":"xbrl:terseLabel","value":"Shares award target achievement performance threshold, percent","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesAwardTargetAchievementPerformanceThresholdPercent","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Shares Award Target Achievement Performance Threshold, Percent","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesAwardTargetAchievementPerformanceThresholdPercent","labelType":"xbrl:documentation","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Shares Award Target Achievement Performance Threshold, Percent","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesAwardWeightingPercentForTargetAchievementPerformanceThresholdPercent","labelType":"xbrl:terseLabel","value":"Shares award weighting percent for target achievement performance threshold, percent","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesAwardWeightingPercentForTargetAchievementPerformanceThresholdPercent","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Shares Award Weighting Percent For Target Achievement Performance Threshold, Percent","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesAwardWeightingPercentForTargetAchievementPerformanceThresholdPercent","labelType":"xbrl:documentation","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Shares Award Weighting Percent For Target Achievement Performance Threshold, Percent","language":"en-US"},{"forObject":"calx:SharebasedCompensationArrangementbySharebasedPaymentAwardEquityInstrumentsOtherthanOptionsConvertedintoCommonStock","labelType":"xbrl:terseLabel","value":"RSU granted converted into common stock","language":"en-US"},{"forObject":"calx:SharebasedCompensationArrangementbySharebasedPaymentAwardEquityInstrumentsOtherthanOptionsConvertedintoCommonStock","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Converted into Common Stock","language":"en-US"},{"forObject":"calx:SharebasedCompensationArrangementbySharebasedPaymentAwardEquityInstrumentsOtherthanOptionsConvertedintoCommonStock","labelType":"xbrl:documentation","value":"Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Converted into Common Stock","language":"en-US"},{"forObject":"calx:SharebasedCompensationArrangementbySharebasedPaymentAwardOptionsOutstandingIntrinsicValueAmountPerShare","labelType":"xbrl:terseLabel","value":"Stock options, intrinsic value per share (in dollars per share)","language":"en-US"},{"forObject":"calx:SharebasedCompensationArrangementbySharebasedPaymentAwardOptionsOutstandingIntrinsicValueAmountPerShare","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Intrinsic Value, Amount Per Share","language":"en-US"},{"forObject":"calx:SharebasedCompensationArrangementbySharebasedPaymentAwardOptionsOutstandingIntrinsicValueAmountPerShare","labelType":"xbrl:documentation","value":"Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Intrinsic Value, Amount Per Share","language":"en-US"},{"forObject":"calx:SharebasedCompensationArrangementbySharebasedPaymentAwardPurchasePriceofCommonStockOfferingPeriod","labelType":"xbrl:terseLabel","value":"Offering period","language":"en-US"},{"forObject":"calx:SharebasedCompensationArrangementbySharebasedPaymentAwardPurchasePriceofCommonStockOfferingPeriod","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Purchase Price of Common Stock, Offering Period","language":"en-US"},{"forObject":"calx:SharebasedCompensationArrangementbySharebasedPaymentAwardPurchasePriceofCommonStockOfferingPeriod","labelType":"xbrl:documentation","value":"Share-based Compensation Arrangement by Share-based Payment Award, Purchase Price of Common Stock, Offering Period","language":"en-US"},{"forObject":"calx:SharesReservedForFutureIssuanceTableTextBlock","labelType":"xbrl:terseLabel","value":"Shares Reserved For Future Issuance","language":"en-US"},{"forObject":"calx:SharesReservedForFutureIssuanceTableTextBlock","labelType":"xbrl:label","value":"Shares Reserved For Future Issuance [Table Text Block]","language":"en-US"},{"forObject":"calx:SharesReservedForFutureIssuanceTableTextBlock","labelType":"xbrl:documentation","value":"Represents the schdule to summarize the number of common shares reserved for future issuance. [Table Text Block]","language":"en-US"},{"forObject":"calx:SoftwareMember","labelType":"xbrl:terseLabel","value":"Software","language":"en-US"},{"forObject":"calx:SoftwareMember","labelType":"xbrl:label","value":"Software [Member]","language":"en-US"},{"forObject":"calx:SoftwareMember","labelType":"xbrl:documentation","value":"Software","language":"en-US"},{"forObject":"calx:StockIssuedDuringPeriodSharesPerformanceRestrictedStockAwardNetofForfeitures","labelType":"xbrl:terseLabel","value":"Issuance of vested performance restricted stock units and restricted stock units, net of taxes withheld, shares","language":"en-US"},{"forObject":"calx:StockIssuedDuringPeriodSharesPerformanceRestrictedStockAwardNetofForfeitures","labelType":"xbrl:label","value":"Stock Issued During Period, Shares, Performance Restricted Stock Award, Net of Forfeitures","language":"en-US"},{"forObject":"calx:StockIssuedDuringPeriodSharesPerformanceRestrictedStockAwardNetofForfeitures","labelType":"xbrl:documentation","value":"Stock Issued During Period, Shares, Performance Restricted Stock Award, Net of Forfeitures","language":"en-US"},{"forObject":"calx:StockIssuedDuringPeriodValuePerformanceRestrictedStockAwardNetofForfeitures","labelType":"xbrl:terseLabel","value":"Issuance of vested performance restricted stock units and restricted stock units, net of taxes withheld","language":"en-US"},{"forObject":"calx:StockIssuedDuringPeriodValuePerformanceRestrictedStockAwardNetofForfeitures","labelType":"xbrl:label","value":"Stock Issued During Period, Value, Performance Restricted Stock Award, Net of Forfeitures","language":"en-US"},{"forObject":"calx:StockIssuedDuringPeriodValuePerformanceRestrictedStockAwardNetofForfeitures","labelType":"xbrl:documentation","value":"Stock Issued During Period, Value, Performance Restricted Stock Award, Net of Forfeitures","language":"en-US"},{"forObject":"calx:SystemsProductMember","labelType":"xbrl:terseLabel","value":"Systems","language":"en-US"},{"forObject":"calx:SystemsProductMember","labelType":"xbrl:label","value":"Systems Product [Member]","language":"en-US"},{"forObject":"calx:SystemsProductMember","labelType":"xbrl:documentation","value":"Systems Product [Member]","language":"en-US"},{"forObject":"calx:TaxesPayableCurrentExcludingAccruedIncomeTaxes","labelType":"xbrl:terseLabel","value":"Taxes payable","language":"en-US"},{"forObject":"calx:TaxesPayableCurrentExcludingAccruedIncomeTaxes","labelType":"xbrl:label","value":"Taxes Payable, Current, Excluding Accrued Income Taxes","language":"en-US"},{"forObject":"calx:TaxesPayableCurrentExcludingAccruedIncomeTaxes","labelType":"xbrl:documentation","value":"Taxes Payable, Current, Excluding Accrued Income Taxes","language":"en-US"},{"forObject":"country:CA","labelType":"xbrl:terseLabel","value":"Canada","language":"en-US"},{"forObject":"country:CA","labelType":"xbrl:label","value":"CANADA","language":"en-US"},{"forObject":"country:CN","labelType":"xbrl:terseLabel","value":"China","language":"en-US"},{"forObject":"country:CN","labelType":"xbrl:label","value":"CHINA","language":"en-US"},{"forObject":"country:US","labelType":"xbrl:terseLabel","value":"United States","language":"en-US"},{"forObject":"country:US","labelType":"xbrl:label","value":"UNITED STATES","language":"en-US"},{"forObject":"dei:AmendmentFlag","labelType":"xbrl:terseLabel","value":"Amendment Flag","language":"en-US"},{"forObject":"dei:AmendmentFlag","labelType":"xbrl:label","value":"Amendment Flag","language":"en-US"},{"forObject":"dei:CityAreaCode","labelType":"xbrl:terseLabel","value":"City Area Code","language":"en-US"},{"forObject":"dei:CityAreaCode","labelType":"xbrl:label","value":"City Area Code","language":"en-US"},{"forObject":"dei:CoverAbstract","labelType":"xbrl:terseLabel","value":"Cover [Abstract]","language":"en-US"},{"forObject":"dei:CoverAbstract","labelType":"xbrl:label","value":"Cover [Abstract]","language":"en-US"},{"forObject":"dei:CurrentFiscalYearEndDate","labelType":"xbrl:terseLabel","value":"Current Fiscal Year End Date","language":"en-US"},{"forObject":"dei:CurrentFiscalYearEndDate","labelType":"xbrl:label","value":"Current Fiscal Year End Date","language":"en-US"},{"forObject":"dei:DocumentAnnualReport","labelType":"xbrl:terseLabel","value":"Document Annual Report","language":"en-US"},{"forObject":"dei:DocumentAnnualReport","labelType":"xbrl:label","value":"Document Annual Report","language":"en-US"},{"forObject":"dei:DocumentFiscalPeriodFocus","labelType":"xbrl:terseLabel","value":"Document Fiscal Period Focus","language":"en-US"},{"forObject":"dei:DocumentFiscalPeriodFocus","labelType":"xbrl:label","value":"Document Fiscal Period Focus","language":"en-US"},{"forObject":"dei:DocumentFiscalYearFocus","labelType":"xbrl:terseLabel","value":"Document Fiscal Year Focus","language":"en-US"},{"forObject":"dei:DocumentFiscalYearFocus","labelType":"xbrl:label","value":"Document Fiscal Year Focus","language":"en-US"},{"forObject":"dei:DocumentPeriodEndDate","labelType":"xbrl:terseLabel","value":"Document Period End Date","language":"en-US"},{"forObject":"dei:DocumentPeriodEndDate","labelType":"xbrl:label","value":"Document Period End Date","language":"en-US"},{"forObject":"dei:DocumentTransitionReport","labelType":"xbrl:terseLabel","value":"Document Transition Report","language":"en-US"},{"forObject":"dei:DocumentTransitionReport","labelType":"xbrl:label","value":"Document Transition Report","language":"en-US"},{"forObject":"dei:DocumentType","labelType":"xbrl:terseLabel","value":"Document Type","language":"en-US"},{"forObject":"dei:DocumentType","labelType":"xbrl:label","value":"Document Type","language":"en-US"},{"forObject":"dei:DocumentsIncorporatedByReferenceTextBlock","labelType":"xbrl:terseLabel","value":"Documents Incorporated by Reference","language":"en-US"},{"forObject":"dei:DocumentsIncorporatedByReferenceTextBlock","labelType":"xbrl:label","value":"Documents Incorporated by Reference [Text Block]","language":"en-US"},{"forObject":"dei:EntityAddressAddressLine1","labelType":"xbrl:terseLabel","value":"Entity Address, Address Line One","language":"en-US"},{"forObject":"dei:EntityAddressAddressLine1","labelType":"xbrl:label","value":"Entity Address, Address Line One","language":"en-US"},{"forObject":"dei:EntityAddressCityOrTown","labelType":"xbrl:terseLabel","value":"Entity Address, City or Town","language":"en-US"},{"forObject":"dei:EntityAddressCityOrTown","labelType":"xbrl:label","value":"Entity Address, City or Town","language":"en-US"},{"forObject":"dei:EntityAddressPostalZipCode","labelType":"xbrl:terseLabel","value":"Entity Address, Postal Zip Code","language":"en-US"},{"forObject":"dei:EntityAddressPostalZipCode","labelType":"xbrl:label","value":"Entity Address, Postal Zip Code","language":"en-US"},{"forObject":"dei:EntityAddressStateOrProvince","labelType":"xbrl:terseLabel","value":"Entity Address, State or Province","language":"en-US"},{"forObject":"dei:EntityAddressStateOrProvince","labelType":"xbrl:label","value":"Entity Address, State or Province","language":"en-US"},{"forObject":"dei:EntityCentralIndexKey","labelType":"xbrl:terseLabel","value":"Entity Central Index Key","language":"en-US"},{"forObject":"dei:EntityCentralIndexKey","labelType":"xbrl:label","value":"Entity Central Index Key","language":"en-US"},{"forObject":"dei:EntityCommonStockSharesOutstanding","labelType":"xbrl:terseLabel","value":"Entity Common Stock, Shares Outstanding","language":"en-US"},{"forObject":"dei:EntityCommonStockSharesOutstanding","labelType":"xbrl:label","value":"Entity Common Stock, Shares Outstanding","language":"en-US"},{"forObject":"dei:EntityCurrentReportingStatus","labelType":"xbrl:terseLabel","value":"Entity Current Reporting Status","language":"en-US"},{"forObject":"dei:EntityCurrentReportingStatus","labelType":"xbrl:label","value":"Entity Current Reporting Status","language":"en-US"},{"forObject":"dei:EntityEmergingGrowthCompany","labelType":"xbrl:terseLabel","value":"Entity Emerging Growth Company","language":"en-US"},{"forObject":"dei:EntityEmergingGrowthCompany","labelType":"xbrl:label","value":"Entity Emerging Growth Company","language":"en-US"},{"forObject":"dei:EntityFileNumber","labelType":"xbrl:terseLabel","value":"Entity File Number","language":"en-US"},{"forObject":"dei:EntityFileNumber","labelType":"xbrl:label","value":"Entity File Number","language":"en-US"},{"forObject":"dei:EntityFilerCategory","labelType":"xbrl:terseLabel","value":"Entity Filer Category","language":"en-US"},{"forObject":"dei:EntityFilerCategory","labelType":"xbrl:label","value":"Entity Filer Category","language":"en-US"},{"forObject":"dei:EntityIncorporationStateCountryCode","labelType":"xbrl:terseLabel","value":"Entity Incorporation, State or Country Code","language":"en-US"},{"forObject":"dei:EntityIncorporationStateCountryCode","labelType":"xbrl:label","value":"Entity Incorporation, State or Country Code","language":"en-US"},{"forObject":"dei:EntityInteractiveDataCurrent","labelType":"xbrl:terseLabel","value":"Entity Interactive Data Current","language":"en-US"},{"forObject":"dei:EntityInteractiveDataCurrent","labelType":"xbrl:label","value":"Entity Interactive Data Current","language":"en-US"},{"forObject":"dei:EntityPublicFloat","labelType":"xbrl:terseLabel","value":"Entity Public Float","language":"en-US"},{"forObject":"dei:EntityPublicFloat","labelType":"xbrl:label","value":"Entity Public Float","language":"en-US"},{"forObject":"dei:EntityRegistrantName","labelType":"xbrl:terseLabel","value":"Entity Registrant Name","language":"en-US"},{"forObject":"dei:EntityRegistrantName","labelType":"xbrl:label","value":"Entity Registrant Name","language":"en-US"},{"forObject":"dei:EntityShellCompany","labelType":"xbrl:terseLabel","value":"Entity Shell Company","language":"en-US"},{"forObject":"dei:EntityShellCompany","labelType":"xbrl:label","value":"Entity Shell Company","language":"en-US"},{"forObject":"dei:EntitySmallBusiness","labelType":"xbrl:terseLabel","value":"Entity Small Business","language":"en-US"},{"forObject":"dei:EntitySmallBusiness","labelType":"xbrl:label","value":"Entity Small Business","language":"en-US"},{"forObject":"dei:EntityTaxIdentificationNumber","labelType":"xbrl:terseLabel","value":"Entity Tax Identification Number","language":"en-US"},{"forObject":"dei:EntityTaxIdentificationNumber","labelType":"xbrl:label","value":"Entity Tax Identification Number","language":"en-US"},{"forObject":"dei:EntityVoluntaryFilers","labelType":"xbrl:terseLabel","value":"Entity Voluntary Filers","language":"en-US"},{"forObject":"dei:EntityVoluntaryFilers","labelType":"xbrl:label","value":"Entity Voluntary Filers","language":"en-US"},{"forObject":"dei:EntityWellKnownSeasonedIssuer","labelType":"xbrl:terseLabel","value":"Entity Well-known Seasoned Issuer","language":"en-US"},{"forObject":"dei:EntityWellKnownSeasonedIssuer","labelType":"xbrl:label","value":"Entity Well-known Seasoned Issuer","language":"en-US"},{"forObject":"dei:IcfrAuditorAttestationFlag","labelType":"xbrl:terseLabel","value":"ICFR Auditor Attestation Flag","language":"en-US"},{"forObject":"dei:IcfrAuditorAttestationFlag","labelType":"xbrl:label","value":"ICFR Auditor Attestation Flag","language":"en-US"},{"forObject":"dei:LocalPhoneNumber","labelType":"xbrl:terseLabel","value":"Local Phone Number","language":"en-US"},{"forObject":"dei:LocalPhoneNumber","labelType":"xbrl:label","value":"Local Phone Number","language":"en-US"},{"forObject":"dei:Security12bTitle","labelType":"xbrl:terseLabel","value":"Title of 12(b) Security","language":"en-US"},{"forObject":"dei:Security12bTitle","labelType":"xbrl:label","value":"Title of 12(b) Security","language":"en-US"},{"forObject":"dei:SecurityExchangeName","labelType":"xbrl:terseLabel","value":"Security Exchange Name","language":"en-US"},{"forObject":"dei:SecurityExchangeName","labelType":"xbrl:label","value":"Security Exchange Name","language":"en-US"},{"forObject":"dei:TradingSymbol","labelType":"xbrl:terseLabel","value":"Trading Symbol","language":"en-US"},{"forObject":"dei:TradingSymbol","labelType":"xbrl:label","value":"Trading Symbol","language":"en-US"},{"forObject":"srt:ConsolidatedEntitiesAxis","labelType":"xbrl:terseLabel","value":"Consolidated Entities [Axis]","language":"en-US"},{"forObject":"srt:ConsolidatedEntitiesAxis","labelType":"xbrl:label","value":"Consolidated Entities [Axis]","language":"en-US"},{"forObject":"srt:ConsolidatedEntitiesDomain","labelType":"xbrl:terseLabel","value":"Consolidated Entities [Domain]","language":"en-US"},{"forObject":"srt:ConsolidatedEntitiesDomain","labelType":"xbrl:label","value":"Consolidated Entities [Domain]","language":"en-US"},{"forObject":"srt:CounterpartyNameAxis","labelType":"xbrl:terseLabel","value":"Counterparty Name [Axis]","language":"en-US"},{"forObject":"srt:CounterpartyNameAxis","labelType":"xbrl:label","value":"Counterparty Name [Axis]","language":"en-US"},{"forObject":"srt:CumulativeEffectPeriodOfAdoptionAdjustmentMember","labelType":"xbrl:terseLabel","value":"Cumulative Effect, Period of Adoption, Adjustment [Member]","language":"en-US"},{"forObject":"srt:CumulativeEffectPeriodOfAdoptionAdjustmentMember","labelType":"xbrl:label","value":"Cumulative Effect, Period of Adoption, Adjustment [Member]","language":"en-US"},{"forObject":"srt:CumulativeEffectPeriodOfAdoptionAxis","labelType":"xbrl:terseLabel","value":"Cumulative Effect, Period of Adoption [Axis]","language":"en-US"},{"forObject":"srt:CumulativeEffectPeriodOfAdoptionAxis","labelType":"xbrl:label","value":"Cumulative Effect, Period of Adoption [Axis]","language":"en-US"},{"forObject":"srt:CumulativeEffectPeriodOfAdoptionDomain","labelType":"xbrl:terseLabel","value":"Cumulative Effect, Period of Adoption [Domain]","language":"en-US"},{"forObject":"srt:CumulativeEffectPeriodOfAdoptionDomain","labelType":"xbrl:label","value":"Cumulative Effect, Period of Adoption [Domain]","language":"en-US"},{"forObject":"srt:EuropeMember","labelType":"xbrl:terseLabel","value":"Europe","language":"en-US"},{"forObject":"srt:EuropeMember","labelType":"xbrl:label","value":"Europe [Member]","language":"en-US"},{"forObject":"srt:ExecutiveOfficerMember","labelType":"xbrl:terseLabel","value":"Executive Officer","language":"en-US"},{"forObject":"srt:ExecutiveOfficerMember","labelType":"xbrl:label","value":"Executive Officer [Member]","language":"en-US"},{"forObject":"srt:MajorCustomersAxis","labelType":"xbrl:terseLabel","value":"Customer [Axis]","language":"en-US"},{"forObject":"srt:MajorCustomersAxis","labelType":"xbrl:label","value":"Customer [Axis]","language":"en-US"},{"forObject":"srt:MaximumMember","labelType":"xbrl:terseLabel","value":"Maximum","language":"en-US"},{"forObject":"srt:MaximumMember","labelType":"xbrl:label","value":"Maximum [Member]","language":"en-US"},{"forObject":"srt:MinimumMember","labelType":"xbrl:terseLabel","value":"Minimum","language":"en-US"},{"forObject":"srt:MinimumMember","labelType":"xbrl:label","value":"Minimum [Member]","language":"en-US"},{"forObject":"srt:NameOfMajorCustomerDomain","labelType":"xbrl:terseLabel","value":"Customer [Domain]","language":"en-US"},{"forObject":"srt:NameOfMajorCustomerDomain","labelType":"xbrl:label","value":"Customer [Domain]","language":"en-US"},{"forObject":"srt:ProductOrServiceAxis","labelType":"xbrl:terseLabel","value":"Product and Service [Axis]","language":"en-US"},{"forObject":"srt:ProductOrServiceAxis","labelType":"xbrl:label","value":"Product and Service [Axis]","language":"en-US"},{"forObject":"srt:ProductsAndServicesDomain","labelType":"xbrl:terseLabel","value":"Product and Service [Domain]","language":"en-US"},{"forObject":"srt:ProductsAndServicesDomain","labelType":"xbrl:label","value":"Product and Service [Domain]","language":"en-US"},{"forObject":"srt:RangeAxis","labelType":"xbrl:terseLabel","value":"Statistical Measurement [Axis]","language":"en-US"},{"forObject":"srt:RangeAxis","labelType":"xbrl:label","value":"Statistical Measurement [Axis]","language":"en-US"},{"forObject":"srt:RangeMember","labelType":"xbrl:terseLabel","value":"Statistical Measurement [Domain]","language":"en-US"},{"forObject":"srt:RangeMember","labelType":"xbrl:label","value":"Statistical Measurement [Domain]","language":"en-US"},{"forObject":"srt:RepurchaseAgreementCounterpartyNameDomain","labelType":"xbrl:terseLabel","value":"Counterparty Name [Domain]","language":"en-US"},{"forObject":"srt:RepurchaseAgreementCounterpartyNameDomain","labelType":"xbrl:label","value":"Counterparty Name [Domain]","language":"en-US"},{"forObject":"srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock","labelType":"xbrl:terseLabel","value":"Changes In Allowance For Doubtful Accounts And Product Reserve","language":"en-US"},{"forObject":"srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock","labelType":"xbrl:label","value":"SEC Schedule, 12-09, Schedule of Valuation and Qualifying Accounts Disclosure [Text Block]","language":"en-US"},{"forObject":"srt:SegmentGeographicalDomain","labelType":"xbrl:terseLabel","value":"Geographical [Domain]","language":"en-US"},{"forObject":"srt:SegmentGeographicalDomain","labelType":"xbrl:label","value":"Geographical [Domain]","language":"en-US"},{"forObject":"srt:StatementGeographicalAxis","labelType":"xbrl:terseLabel","value":"Geographical [Axis]","language":"en-US"},{"forObject":"srt:StatementGeographicalAxis","labelType":"xbrl:label","value":"Geographical [Axis]","language":"en-US"},{"forObject":"srt:SubsidiariesMember","labelType":"xbrl:terseLabel","value":"Subsidiaries","language":"en-US"},{"forObject":"srt:SubsidiariesMember","labelType":"xbrl:label","value":"Subsidiaries [Member]","language":"en-US"},{"forObject":"srt:TitleOfIndividualAxis","labelType":"xbrl:terseLabel","value":"Title of Individual [Axis]","language":"en-US"},{"forObject":"srt:TitleOfIndividualAxis","labelType":"xbrl:label","value":"Title of Individual [Axis]","language":"en-US"},{"forObject":"srt:TitleOfIndividualWithRelationshipToEntityDomain","labelType":"xbrl:terseLabel","value":"Title of Individual [Domain]","language":"en-US"},{"forObject":"srt:TitleOfIndividualWithRelationshipToEntityDomain","labelType":"xbrl:label","value":"Title of Individual [Domain]","language":"en-US"},{"forObject":"srt:ValuationAndQualifyingAccountsDisclosureLineItems","labelType":"xbrl:terseLabel","value":"SEC Schedule, 12-09, Valuation and Qualifying Accounts Disclosure [Line Items]","language":"en-US"},{"forObject":"srt:ValuationAndQualifyingAccountsDisclosureLineItems","labelType":"xbrl:label","value":"SEC Schedule, 12-09, Valuation and Qualifying Accounts Disclosure [Line Items]","language":"en-US"},{"forObject":"srt:ValuationAndQualifyingAccountsDisclosureTable","labelType":"xbrl:terseLabel","value":"SEC Schedule, 12-09, Valuation and Qualifying Accounts Disclosure [Table]","language":"en-US"},{"forObject":"srt:ValuationAndQualifyingAccountsDisclosureTable","labelType":"xbrl:label","value":"SEC Schedule, 12-09, Valuation and Qualifying Accounts Disclosure [Table]","language":"en-US"},{"forObject":"us-gaap:AccountingPoliciesAbstract","labelType":"xbrl:terseLabel","value":"Accounting Policies [Abstract]","language":"en-US"},{"forObject":"us-gaap:AccountingPoliciesAbstract","labelType":"xbrl:label","value":"Accounting Policies [Abstract]","language":"en-US"},{"forObject":"us-gaap:AccountingStandardsUpdate201602Member","labelType":"xbrl:terseLabel","value":"Accounting Standards Update 2016-02","language":"en-US"},{"forObject":"us-gaap:AccountingStandardsUpdate201602Member","labelType":"xbrl:label","value":"Accounting Standards Update 2016-02 [Member]","language":"en-US"},{"forObject":"us-gaap:AccountingStandardsUpdateExtensibleList","labelType":"xbrl:terseLabel","value":"Accounting Standards Update [Extensible List]","language":"en-US"},{"forObject":"us-gaap:AccountingStandardsUpdateExtensibleList","labelType":"xbrl:label","value":"Accounting Standards Update [Extensible List]","language":"en-US"},{"forObject":"us-gaap:AccountsPayableCurrent","labelType":"xbrl:verboseLabel","value":"Accounts payable","language":"en-US"},{"forObject":"us-gaap:AccountsPayableCurrent","labelType":"xbrl:label","value":"Accounts Payable, Current","language":"en-US"},{"forObject":"us-gaap:AccountsReceivableGrossCurrent","labelType":"xbrl:verboseLabel","value":"Accounts receivable","language":"en-US"},{"forObject":"us-gaap:AccountsReceivableGrossCurrent","labelType":"xbrl:label","value":"Accounts Receivable, before Allowance for Credit Loss, Current","language":"en-US"},{"forObject":"us-gaap:AccountsReceivableMember","labelType":"xbrl:terseLabel","value":"Percentage of Accounts Receivable","language":"en-US"},{"forObject":"us-gaap:AccountsReceivableMember","labelType":"xbrl:label","value":"Accounts Receivable [Member]","language":"en-US"},{"forObject":"us-gaap:AccountsReceivableNetCurrent","labelType":"xbrl:verboseLabel","value":"Accounts receivable, net","language":"en-US"},{"forObject":"us-gaap:AccountsReceivableNetCurrent","labelType":"xbrl:totalLabel","value":"Accounts receivable, net","language":"en-US"},{"forObject":"us-gaap:AccountsReceivableNetCurrent","labelType":"xbrl:label","value":"Accounts Receivable, after Allowance for Credit Loss, Current","language":"en-US"},{"forObject":"us-gaap:AccountsReceivableNetCurrentAbstract","labelType":"xbrl:verboseLabel","value":"Summary of accounts receivable, net","language":"en-US"},{"forObject":"us-gaap:AccountsReceivableNetCurrentAbstract","labelType":"xbrl:label","value":"Accounts Receivable, after Allowance for Credit Loss, Current [Abstract]","language":"en-US"},{"forObject":"us-gaap:AccruedLiabilitiesCurrent","labelType":"xbrl:verboseLabel","value":"Accrued liabilities","language":"en-US"},{"forObject":"us-gaap:AccruedLiabilitiesCurrent","labelType":"xbrl:totalLabel","value":"Total accrued liabilities","language":"en-US"},{"forObject":"us-gaap:AccruedLiabilitiesCurrent","labelType":"xbrl:label","value":"Accrued Liabilities, Current","language":"en-US"},{"forObject":"us-gaap:AccruedLiabilitiesCurrentAbstract","labelType":"xbrl:verboseLabel","value":"Summary of accrued liabilities","language":"en-US"},{"forObject":"us-gaap:AccruedLiabilitiesCurrentAbstract","labelType":"xbrl:label","value":"Accrued Liabilities, Current [Abstract]","language":"en-US"},{"forObject":"us-gaap:AccruedProfessionalFeesCurrent","labelType":"xbrl:terseLabel","value":"Professional and consulting fees","language":"en-US"},{"forObject":"us-gaap:AccruedProfessionalFeesCurrent","labelType":"xbrl:label","value":"Accrued Professional Fees, Current","language":"en-US"},{"forObject":"us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment","labelType":"xbrl:negatedLabel","value":"Accumulated depreciation and amortization","language":"en-US"},{"forObject":"us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment","labelType":"xbrl:label","value":"Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment","language":"en-US"},{"forObject":"us-gaap:AccumulatedOtherComprehensiveIncomeLossLineItems","labelType":"xbrl:terseLabel","value":"Accumulated Other Comprehensive Income (Loss) [Line Items]","language":"en-US"},{"forObject":"us-gaap:AccumulatedOtherComprehensiveIncomeLossLineItems","labelType":"xbrl:label","value":"Accumulated Other Comprehensive Income (Loss) [Line Items]","language":"en-US"},{"forObject":"us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax","labelType":"xbrl:verboseLabel","value":"Accumulated other comprehensive loss","language":"en-US"},{"forObject":"us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax","labelType":"xbrl:label","value":"Accumulated Other Comprehensive Income (Loss), Net of Tax","language":"en-US"},{"forObject":"us-gaap:AccumulatedOtherComprehensiveIncomeLossTable","labelType":"xbrl:terseLabel","value":"Accumulated Other Comprehensive Income (Loss) [Table]","language":"en-US"},{"forObject":"us-gaap:AccumulatedOtherComprehensiveIncomeLossTable","labelType":"xbrl:label","value":"Accumulated Other Comprehensive Income (Loss) [Table]","language":"en-US"},{"forObject":"us-gaap:AccumulatedOtherComprehensiveIncomeMember","labelType":"xbrl:terseLabel","value":"Accumulated Other Comprehensive Loss","language":"en-US"},{"forObject":"us-gaap:AccumulatedOtherComprehensiveIncomeMember","labelType":"xbrl:verboseLabel","value":"Total","language":"en-US"},{"forObject":"us-gaap:AccumulatedOtherComprehensiveIncomeMember","labelType":"xbrl:label","value":"AOCI Attributable to Parent [Member]","language":"en-US"},{"forObject":"us-gaap:AccumulatedTranslationAdjustmentMember","labelType":"xbrl:terseLabel","value":"Foreign Currency Translation Adjustments","language":"en-US"},{"forObject":"us-gaap:AccumulatedTranslationAdjustmentMember","labelType":"xbrl:label","value":"Accumulated Foreign Currency Adjustment Attributable to Parent [Member]","language":"en-US"},{"forObject":"us-gaap:AdditionalPaidInCapitalCommonStock","labelType":"xbrl:verboseLabel","value":"Additional paid-in capital","language":"en-US"},{"forObject":"us-gaap:AdditionalPaidInCapitalCommonStock","labelType":"xbrl:label","value":"Additional Paid in Capital, Common Stock","language":"en-US"},{"forObject":"us-gaap:AdditionalPaidInCapitalMember","labelType":"xbrl:terseLabel","value":"Additional Paid-in Capital","language":"en-US"},{"forObject":"us-gaap:AdditionalPaidInCapitalMember","labelType":"xbrl:label","value":"Additional Paid-in Capital [Member]","language":"en-US"},{"forObject":"us-gaap:AdjustmentsForNewAccountingPronouncementsAxis","labelType":"xbrl:terseLabel","value":"Adjustments for New Accounting Pronouncements [Axis]","language":"en-US"},{"forObject":"us-gaap:AdjustmentsForNewAccountingPronouncementsAxis","labelType":"xbrl:label","value":"Accounting Standards Update [Axis]","language":"en-US"},{"forObject":"us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue","labelType":"xbrl:terseLabel","value":"Stock-based compensation","language":"en-US"},{"forObject":"us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue","labelType":"xbrl:label","value":"APIC, Share-based Payment Arrangement, Increase for Cost Recognition","language":"en-US"},{"forObject":"us-gaap:AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract","labelType":"xbrl:verboseLabel","value":"Adjustments to reconcile net income (loss) to net cash provided by operating activities:","language":"en-US"},{"forObject":"us-gaap:AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract","labelType":"xbrl:label","value":"Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]","language":"en-US"},{"forObject":"us-gaap:AllocatedShareBasedCompensationExpense","labelType":"xbrl:verboseLabel","value":"Stock based compensation","language":"en-US"},{"forObject":"us-gaap:AllocatedShareBasedCompensationExpense","labelType":"xbrl:label","value":"Share-based Payment Arrangement, Expense","language":"en-US"},{"forObject":"us-gaap:AllowanceForCreditLossMember","labelType":"xbrl:terseLabel","value":"Allowance for doubtful accounts","language":"en-US"},{"forObject":"us-gaap:AllowanceForCreditLossMember","labelType":"xbrl:label","value":"SEC Schedule, 12-09, Allowance, Credit Loss [Member]","language":"en-US"},{"forObject":"us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent","labelType":"xbrl:negatedLabel","value":"Allowance for doubtful accounts","language":"en-US"},{"forObject":"us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent","labelType":"xbrl:label","value":"Accounts Receivable, Allowance for Credit Loss, Current","language":"en-US"},{"forObject":"us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount","labelType":"xbrl:terseLabel","value":"Potentially dilutive shares, weighted-average (in shares)","language":"en-US"},{"forObject":"us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount","labelType":"xbrl:label","value":"Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount","language":"en-US"},{"forObject":"us-gaap:Assets","labelType":"xbrl:totalLabel","value":"Total assets","language":"en-US"},{"forObject":"us-gaap:Assets","labelType":"xbrl:label","value":"Assets","language":"en-US"},{"forObject":"us-gaap:AssetsAbstract","labelType":"xbrl:verboseLabel","value":"ASSETS","language":"en-US"},{"forObject":"us-gaap:AssetsAbstract","labelType":"xbrl:label","value":"Assets [Abstract]","language":"en-US"},{"forObject":"us-gaap:AssetsCurrent","labelType":"xbrl:totalLabel","value":"Total current assets","language":"en-US"},{"forObject":"us-gaap:AssetsCurrent","labelType":"xbrl:label","value":"Assets, Current","language":"en-US"},{"forObject":"us-gaap:AssetsCurrentAbstract","labelType":"xbrl:verboseLabel","value":"Current Assets:","language":"en-US"},{"forObject":"us-gaap:AssetsCurrentAbstract","labelType":"xbrl:label","value":"Assets, Current [Abstract]","language":"en-US"},{"forObject":"us-gaap:AssetsFairValueDisclosure","labelType":"xbrl:totalLabel","value":"Total assets","language":"en-US"},{"forObject":"us-gaap:AssetsFairValueDisclosure","labelType":"xbrl:label","value":"Assets, Fair Value Disclosure","language":"en-US"},{"forObject":"us-gaap:AvailableForSaleSecuritiesDebtSecurities","labelType":"xbrl:terseLabel","value":"Marketable securities","language":"en-US"},{"forObject":"us-gaap:AvailableForSaleSecuritiesDebtSecurities","labelType":"xbrl:verboseLabel","value":"Marketable securities","language":"en-US"},{"forObject":"us-gaap:AvailableForSaleSecuritiesDebtSecurities","labelType":"xbrl:netLabel","value":"U.S. government securities","language":"en-US"},{"forObject":"us-gaap:AvailableForSaleSecuritiesDebtSecurities","labelType":"xbrl:label","value":"Debt Securities, Available-for-sale","language":"en-US"},{"forObject":"us-gaap:AwardTypeAxis","labelType":"xbrl:terseLabel","value":"Award Type [Axis]","language":"en-US"},{"forObject":"us-gaap:AwardTypeAxis","labelType":"xbrl:label","value":"Award Type [Axis]","language":"en-US"},{"forObject":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","labelType":"xbrl:terseLabel","value":"Balance Sheet Related Disclosures [Abstract]","language":"en-US"},{"forObject":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","labelType":"xbrl:label","value":"Balance Sheet Related Disclosures [Abstract]","language":"en-US"},{"forObject":"us-gaap:BasisOfAccountingPolicyPolicyTextBlock","labelType":"xbrl:terseLabel","value":"Basis of Presentation and Accounting Guidance","language":"en-US"},{"forObject":"us-gaap:BasisOfAccountingPolicyPolicyTextBlock","labelType":"xbrl:label","value":"Basis of Accounting, Policy [Policy Text Block]","language":"en-US"},{"forObject":"us-gaap:BusinessDescriptionAndAccountingPoliciesTextBlock","labelType":"xbrl:terseLabel","value":"Description of Business and Significant Accounting Policies","language":"en-US"},{"forObject":"us-gaap:BusinessDescriptionAndAccountingPoliciesTextBlock","labelType":"xbrl:label","value":"Business Description and Accounting Policies [Text Block]","language":"en-US"},{"forObject":"us-gaap:CapitalizedContractCostAmortization","labelType":"xbrl:terseLabel","value":"Capitalized contract cost, amortization","language":"en-US"},{"forObject":"us-gaap:CapitalizedContractCostAmortization","labelType":"xbrl:label","value":"Capitalized Contract Cost, Amortization","language":"en-US"},{"forObject":"us-gaap:CapitalizedContractCostAmortizationPeriod","labelType":"xbrl:terseLabel","value":"Capitalized contract cost, amortization period","language":"en-US"},{"forObject":"us-gaap:CapitalizedContractCostAmortizationPeriod","labelType":"xbrl:label","value":"Capitalized Contract Cost, Amortization Period","language":"en-US"},{"forObject":"us-gaap:CapitalizedContractCostAxis","labelType":"xbrl:terseLabel","value":"Capitalized Contract Cost [Axis]","language":"en-US"},{"forObject":"us-gaap:CapitalizedContractCostAxis","labelType":"xbrl:label","value":"Capitalized Contract Cost [Axis]","language":"en-US"},{"forObject":"us-gaap:CapitalizedContractCostDomain","labelType":"xbrl:terseLabel","value":"Capitalized Contract Cost [Domain]","language":"en-US"},{"forObject":"us-gaap:CapitalizedContractCostDomain","labelType":"xbrl:label","value":"Capitalized Contract Cost [Domain]","language":"en-US"},{"forObject":"us-gaap:CapitalizedContractCostGross","labelType":"xbrl:terseLabel","value":"Capitalized contract cost, gross","language":"en-US"},{"forObject":"us-gaap:CapitalizedContractCostGross","labelType":"xbrl:label","value":"Capitalized Contract Cost, Gross","language":"en-US"},{"forObject":"us-gaap:CapitalizedContractCostLineItems","labelType":"xbrl:terseLabel","value":"Capitalized Contract Cost [Line Items]","language":"en-US"},{"forObject":"us-gaap:CapitalizedContractCostLineItems","labelType":"xbrl:label","value":"Capitalized Contract Cost [Line Items]","language":"en-US"},{"forObject":"us-gaap:CapitalizedContractCostNet","labelType":"xbrl:terseLabel","value":"Capitalized contract cost","language":"en-US"},{"forObject":"us-gaap:CapitalizedContractCostNet","labelType":"xbrl:label","value":"Capitalized Contract Cost, Net","language":"en-US"},{"forObject":"us-gaap:CapitalizedContractCostTable","labelType":"xbrl:terseLabel","value":"Capitalized Contract Cost [Table]","language":"en-US"},{"forObject":"us-gaap:CapitalizedContractCostTable","labelType":"xbrl:label","value":"Capitalized Contract Cost [Table]","language":"en-US"},{"forObject":"us-gaap:Cash","labelType":"xbrl:terseLabel","value":"Cash","language":"en-US"},{"forObject":"us-gaap:Cash","labelType":"xbrl:label","value":"Cash","language":"en-US"},{"forObject":"us-gaap:CashAndCashEquivalentsAbstract","labelType":"xbrl:terseLabel","value":"Cash and Cash Equivalents [Abstract]","language":"en-US"},{"forObject":"us-gaap:CashAndCashEquivalentsAbstract","labelType":"xbrl:label","value":"Cash and Cash Equivalents [Abstract]","language":"en-US"},{"forObject":"us-gaap:CashAndCashEquivalentsAtCarryingValue","labelType":"xbrl:terseLabel","value":"Cash and cash equivalents","language":"en-US"},{"forObject":"us-gaap:CashAndCashEquivalentsAtCarryingValue","labelType":"xbrl:label","value":"Cash and Cash Equivalents, at Carrying Value","language":"en-US"},{"forObject":"us-gaap:CashAndCashEquivalentsAxis","labelType":"xbrl:terseLabel","value":"Cash and Cash Equivalents [Axis]","language":"en-US"},{"forObject":"us-gaap:CashAndCashEquivalentsAxis","labelType":"xbrl:label","value":"Cash and Cash Equivalents [Axis]","language":"en-US"},{"forObject":"us-gaap:CashAndCashEquivalentsFairValueDisclosure","labelType":"xbrl:terseLabel","value":"Money market funds","language":"en-US"},{"forObject":"us-gaap:CashAndCashEquivalentsFairValueDisclosure","labelType":"xbrl:label","value":"Cash and Cash Equivalents, Fair Value Disclosure","language":"en-US"},{"forObject":"us-gaap:CashAndCashEquivalentsLineItems","labelType":"xbrl:terseLabel","value":"Cash and Cash Equivalents [Line Items]","language":"en-US"},{"forObject":"us-gaap:CashAndCashEquivalentsLineItems","labelType":"xbrl:label","value":"Cash and Cash Equivalents [Line Items]","language":"en-US"},{"forObject":"us-gaap:CashCashEquivalentsAndMarketableSecuritiesTextBlock","labelType":"xbrl:terseLabel","value":"Cash, Cash Equivalents, Restricted Cash and Marketable Securities","language":"en-US"},{"forObject":"us-gaap:CashCashEquivalentsAndMarketableSecuritiesTextBlock","labelType":"xbrl:label","value":"Cash, Cash Equivalents, and Marketable Securities [Text Block]","language":"en-US"},{"forObject":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","labelType":"xbrl:periodStartLabel","value":"Cash, cash equivalents and restricted cash at beginning of year","language":"en-US"},{"forObject":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","labelType":"xbrl:periodEndLabel","value":"Cash and cash equivalents at end of year","language":"en-US"},{"forObject":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","labelType":"xbrl:totalLabel","value":"Total cash, cash equivalents and restricted cash","language":"en-US"},{"forObject":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","labelType":"xbrl:label","value":"Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents","language":"en-US"},{"forObject":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect","labelType":"xbrl:totalLabel","value":"Net increase (decrease) in cash, cash equivalents and restricted cash","language":"en-US"},{"forObject":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect","labelType":"xbrl:label","value":"Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect","language":"en-US"},{"forObject":"us-gaap:CashMember","labelType":"xbrl:terseLabel","value":"Cash","language":"en-US"},{"forObject":"us-gaap:CashMember","labelType":"xbrl:label","value":"Cash [Member]","language":"en-US"},{"forObject":"us-gaap:CommitmentsAndContingencies","labelType":"xbrl:verboseLabel","value":"Commitments and contingencies (See Note 6)","language":"en-US"},{"forObject":"us-gaap:CommitmentsAndContingencies","labelType":"xbrl:label","value":"Commitments and Contingencies","language":"en-US"},{"forObject":"us-gaap:CommitmentsAndContingenciesDisclosureAbstract","labelType":"xbrl:terseLabel","value":"Commitments and Contingencies Disclosure [Abstract]","language":"en-US"},{"forObject":"us-gaap:CommitmentsAndContingenciesDisclosureAbstract","labelType":"xbrl:label","value":"Commitments and Contingencies Disclosure [Abstract]","language":"en-US"},{"forObject":"us-gaap:CommitmentsAndContingenciesDisclosureTextBlock","labelType":"xbrl:terseLabel","value":"Commitments and Contingencies","language":"en-US"},{"forObject":"us-gaap:CommitmentsAndContingenciesDisclosureTextBlock","labelType":"xbrl:label","value":"Commitments and Contingencies Disclosure [Text Block]","language":"en-US"},{"forObject":"us-gaap:CommitmentsAndContingenciesPolicyTextBlock","labelType":"xbrl:terseLabel","value":"Loss Contingencies","language":"en-US"},{"forObject":"us-gaap:CommitmentsAndContingenciesPolicyTextBlock","labelType":"xbrl:label","value":"Commitments and Contingencies, Policy [Policy Text Block]","language":"en-US"},{"forObject":"us-gaap:CommonStockCapitalSharesReservedForFutureIssuance","labelType":"xbrl:terseLabel","value":"Common Stock, Capital Shares Reserved for Future Issuance","language":"en-US"},{"forObject":"us-gaap:CommonStockCapitalSharesReservedForFutureIssuance","labelType":"xbrl:label","value":"Common Stock, Capital Shares Reserved for Future Issuance","language":"en-US"},{"forObject":"us-gaap:CommonStockDividendsPerShareDeclared","labelType":"xbrl:terseLabel","value":"Dividends declared or paid","language":"en-US"},{"forObject":"us-gaap:CommonStockDividendsPerShareDeclared","labelType":"xbrl:label","value":"Common Stock, Dividends, Per Share, Declared","language":"en-US"},{"forObject":"us-gaap:CommonStockMember","labelType":"xbrl:terseLabel","value":"Common Stock","language":"en-US"},{"forObject":"us-gaap:CommonStockMember","labelType":"xbrl:label","value":"Common Stock [Member]","language":"en-US"},{"forObject":"us-gaap:CommonStockParOrStatedValuePerShare","labelType":"xbrl:verboseLabel","value":"Common stock, par value (in dollars per share)","language":"en-US"},{"forObject":"us-gaap:CommonStockParOrStatedValuePerShare","labelType":"xbrl:label","value":"Common Stock, Par or Stated Value Per Share","language":"en-US"},{"forObject":"us-gaap:CommonStockSharesAuthorized","labelType":"xbrl:verboseLabel","value":"Common stock, shares authorized (in shares)","language":"en-US"},{"forObject":"us-gaap:CommonStockSharesAuthorized","labelType":"xbrl:label","value":"Common Stock, Shares Authorized","language":"en-US"},{"forObject":"us-gaap:CommonStockSharesIssued","labelType":"xbrl:verboseLabel","value":"Common stock, shares issued (in shares)","language":"en-US"},{"forObject":"us-gaap:CommonStockSharesIssued","labelType":"xbrl:label","value":"Common Stock, Shares, Issued","language":"en-US"},{"forObject":"us-gaap:CommonStockSharesOutstanding","labelType":"xbrl:verboseLabel","value":"Common stock, shares outstanding (in shares)","language":"en-US"},{"forObject":"us-gaap:CommonStockSharesOutstanding","labelType":"xbrl:periodStartLabel","value":"Beginning Balance, shares","language":"en-US"},{"forObject":"us-gaap:CommonStockSharesOutstanding","labelType":"xbrl:periodEndLabel","value":"Ending Balance, shares","language":"en-US"},{"forObject":"us-gaap:CommonStockSharesOutstanding","labelType":"xbrl:label","value":"Common Stock, Shares, Outstanding","language":"en-US"},{"forObject":"us-gaap:CommonStockValue","labelType":"xbrl:verboseLabel","value":"Common stock, $0.025 par value; 100,000 shares authorized; 62,122 shares issued and outstanding as of December 31, 2020, and 61,778 shares issued and 56,448 shares outstanding as of December 31, 2019","language":"en-US"},{"forObject":"us-gaap:CommonStockValue","labelType":"xbrl:label","value":"Common Stock, Value, Issued","language":"en-US"},{"forObject":"us-gaap:CompensationAndEmployeeBenefitPlansTextBlock","labelType":"xbrl:terseLabel","value":"Employee Benefit Plan","language":"en-US"},{"forObject":"us-gaap:CompensationAndEmployeeBenefitPlansTextBlock","labelType":"xbrl:label","value":"Compensation and Employee Benefit Plans [Text Block]","language":"en-US"},{"forObject":"us-gaap:CompensationAndRetirementDisclosureAbstract","labelType":"xbrl:terseLabel","value":"Retirement Benefits [Abstract]","language":"en-US"},{"forObject":"us-gaap:CompensationAndRetirementDisclosureAbstract","labelType":"xbrl:label","value":"Retirement Benefits [Abstract]","language":"en-US"},{"forObject":"us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest","labelType":"xbrl:totalLabel","value":"Comprehensive income (loss)","language":"en-US"},{"forObject":"us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest","labelType":"xbrl:label","value":"Comprehensive Income (Loss), Net of Tax, Including Portion Attributable to Noncontrolling Interest","language":"en-US"},{"forObject":"us-gaap:ComprehensiveIncomeNoteTextBlock","labelType":"xbrl:terseLabel","value":"Accumulated Other Comprehensive Loss","language":"en-US"},{"forObject":"us-gaap:ComprehensiveIncomeNoteTextBlock","labelType":"xbrl:label","value":"Comprehensive Income (Loss) Note [Text Block]","language":"en-US"},{"forObject":"us-gaap:ComputerEquipmentMember","labelType":"xbrl:terseLabel","value":"Computer equipment","language":"en-US"},{"forObject":"us-gaap:ComputerEquipmentMember","labelType":"xbrl:label","value":"Computer Equipment [Member]","language":"en-US"},{"forObject":"us-gaap:ComputerSoftwareIntangibleAssetMember","labelType":"xbrl:terseLabel","value":"Purchased Software","language":"en-US"},{"forObject":"us-gaap:ComputerSoftwareIntangibleAssetMember","labelType":"xbrl:verboseLabel","value":"Licensed Software","language":"en-US"},{"forObject":"us-gaap:ComputerSoftwareIntangibleAssetMember","labelType":"xbrl:label","value":"Computer Software, Intangible Asset [Member]","language":"en-US"},{"forObject":"us-gaap:ConcentrationRiskBenchmarkDomain","labelType":"xbrl:terseLabel","value":"Concentration Risk Benchmark [Domain]","language":"en-US"},{"forObject":"us-gaap:ConcentrationRiskBenchmarkDomain","labelType":"xbrl:label","value":"Concentration Risk Benchmark [Domain]","language":"en-US"},{"forObject":"us-gaap:ConcentrationRiskByBenchmarkAxis","labelType":"xbrl:terseLabel","value":"Concentration Risk Benchmark [Axis]","language":"en-US"},{"forObject":"us-gaap:ConcentrationRiskByBenchmarkAxis","labelType":"xbrl:label","value":"Concentration Risk Benchmark [Axis]","language":"en-US"},{"forObject":"us-gaap:ConcentrationRiskByTypeAxis","labelType":"xbrl:terseLabel","value":"Concentration Risk Type [Axis]","language":"en-US"},{"forObject":"us-gaap:ConcentrationRiskByTypeAxis","labelType":"xbrl:label","value":"Concentration Risk Type [Axis]","language":"en-US"},{"forObject":"us-gaap:ConcentrationRiskCreditRisk","labelType":"xbrl:terseLabel","value":"Credit Risk and Inventory Supplier Concentrations","language":"en-US"},{"forObject":"us-gaap:ConcentrationRiskCreditRisk","labelType":"xbrl:label","value":"Concentration Risk, Credit Risk, Policy [Policy Text Block]","language":"en-US"},{"forObject":"us-gaap:ConcentrationRiskLineItems","labelType":"xbrl:terseLabel","value":"Concentration Risk [Line Items]","language":"en-US"},{"forObject":"us-gaap:ConcentrationRiskLineItems","labelType":"xbrl:label","value":"Concentration Risk [Line Items]","language":"en-US"},{"forObject":"us-gaap:ConcentrationRiskPercentage1","labelType":"xbrl:terseLabel","value":"Concentration of credit risk, percentage","language":"en-US"},{"forObject":"us-gaap:ConcentrationRiskPercentage1","labelType":"xbrl:label","value":"Concentration Risk, Percentage","language":"en-US"},{"forObject":"us-gaap:ConcentrationRiskTable","labelType":"xbrl:terseLabel","value":"Concentration Risk [Table]","language":"en-US"},{"forObject":"us-gaap:ConcentrationRiskTable","labelType":"xbrl:label","value":"Concentration Risk [Table]","language":"en-US"},{"forObject":"us-gaap:ConcentrationRiskTypeDomain","labelType":"xbrl:terseLabel","value":"Concentration Risk Type [Domain]","language":"en-US"},{"forObject":"us-gaap:ConcentrationRiskTypeDomain","labelType":"xbrl:label","value":"Concentration Risk Type [Domain]","language":"en-US"},{"forObject":"us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock","labelType":"xbrl:terseLabel","value":"Contract with Customer, Asset and Liability","language":"en-US"},{"forObject":"us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock","labelType":"xbrl:label","value":"Contract with Customer, Contract Asset, Contract Liability, and Receivable [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:ContractWithCustomerAssetNet","labelType":"xbrl:terseLabel","value":"Contract with customer, asset","language":"en-US"},{"forObject":"us-gaap:ContractWithCustomerAssetNet","labelType":"xbrl:label","value":"Contract with Customer, Asset, after Allowance for Credit Loss","language":"en-US"},{"forObject":"us-gaap:ContractWithCustomerLiability","labelType":"xbrl:totalLabel","value":"Deferred revenue","language":"en-US"},{"forObject":"us-gaap:ContractWithCustomerLiability","labelType":"xbrl:label","value":"Contract with Customer, Liability","language":"en-US"},{"forObject":"us-gaap:ContractWithCustomerLiabilityCurrent","labelType":"xbrl:verboseLabel","value":"Deferred revenue","language":"en-US"},{"forObject":"us-gaap:ContractWithCustomerLiabilityCurrent","labelType":"xbrl:terseLabel","value":"Deferred revenue, current","language":"en-US"},{"forObject":"us-gaap:ContractWithCustomerLiabilityCurrent","labelType":"xbrl:label","value":"Contract with Customer, Liability, Current","language":"en-US"},{"forObject":"us-gaap:ContractWithCustomerLiabilityNoncurrent","labelType":"xbrl:terseLabel","value":"Long-term portion of deferred revenue","language":"en-US"},{"forObject":"us-gaap:ContractWithCustomerLiabilityNoncurrent","labelType":"xbrl:verboseLabel","value":"Deferred revenue, long-term","language":"en-US"},{"forObject":"us-gaap:ContractWithCustomerLiabilityNoncurrent","labelType":"xbrl:label","value":"Contract with Customer, Liability, Noncurrent","language":"en-US"},{"forObject":"us-gaap:ContractWithCustomerLiabilityRevenueRecognized","labelType":"xbrl:terseLabel","value":"Contract with customer, liability, revenue recognized","language":"en-US"},{"forObject":"us-gaap:ContractWithCustomerLiabilityRevenueRecognized","labelType":"xbrl:label","value":"Contract with Customer, Liability, Revenue Recognized","language":"en-US"},{"forObject":"us-gaap:CostOfGoodsAndServicesSold","labelType":"xbrl:terseLabel","value":"Cost of revenue","language":"en-US"},{"forObject":"us-gaap:CostOfGoodsAndServicesSold","labelType":"xbrl:label","value":"Cost of Goods and Services Sold","language":"en-US"},{"forObject":"us-gaap:CostOfRevenueAbstract","labelType":"xbrl:verboseLabel","value":"Cost of revenue:","language":"en-US"},{"forObject":"us-gaap:CostOfRevenueAbstract","labelType":"xbrl:label","value":"Cost of Revenue [Abstract]","language":"en-US"},{"forObject":"us-gaap:CostOfSalesPolicyTextBlock","labelType":"xbrl:terseLabel","value":"Cost of Revenue","language":"en-US"},{"forObject":"us-gaap:CostOfSalesPolicyTextBlock","labelType":"xbrl:label","value":"Cost of Goods and Service [Policy Text Block]","language":"en-US"},{"forObject":"us-gaap:CreditFacilityAxis","labelType":"xbrl:terseLabel","value":"Credit Facility [Axis]","language":"en-US"},{"forObject":"us-gaap:CreditFacilityAxis","labelType":"xbrl:label","value":"Credit Facility [Axis]","language":"en-US"},{"forObject":"us-gaap:CreditFacilityDomain","labelType":"xbrl:terseLabel","value":"Credit Facility [Domain]","language":"en-US"},{"forObject":"us-gaap:CreditFacilityDomain","labelType":"xbrl:label","value":"Credit Facility [Domain]","language":"en-US"},{"forObject":"us-gaap:CurrentForeignTaxExpenseBenefit","labelType":"xbrl:terseLabel","value":"Foreign","language":"en-US"},{"forObject":"us-gaap:CurrentForeignTaxExpenseBenefit","labelType":"xbrl:label","value":"Current Foreign Tax Expense (Benefit)","language":"en-US"},{"forObject":"us-gaap:CurrentIncomeTaxExpenseBenefit","labelType":"xbrl:totalLabel","value":"Current income tax","language":"en-US"},{"forObject":"us-gaap:CurrentIncomeTaxExpenseBenefit","labelType":"xbrl:label","value":"Current Income Tax Expense (Benefit)","language":"en-US"},{"forObject":"us-gaap:CurrentStateAndLocalTaxExpenseBenefit","labelType":"xbrl:terseLabel","value":"State","language":"en-US"},{"forObject":"us-gaap:CurrentStateAndLocalTaxExpenseBenefit","labelType":"xbrl:label","value":"Current State and Local Tax Expense (Benefit)","language":"en-US"},{"forObject":"us-gaap:CustomerConcentrationRiskMember","labelType":"xbrl:terseLabel","value":"Customer Concentration Risk","language":"en-US"},{"forObject":"us-gaap:CustomerConcentrationRiskMember","labelType":"xbrl:label","value":"Customer Concentration Risk [Member]","language":"en-US"},{"forObject":"us-gaap:DebtDisclosureTextBlock","labelType":"xbrl:verboseLabel","value":"Credit Agreements","language":"en-US"},{"forObject":"us-gaap:DebtDisclosureTextBlock","labelType":"xbrl:label","value":"Debt Disclosure [Text Block]","language":"en-US"},{"forObject":"us-gaap:DebtInstrumentBasisSpreadOnVariableRate1","labelType":"xbrl:terseLabel","value":"Basis spread on variable rate","language":"en-US"},{"forObject":"us-gaap:DebtInstrumentBasisSpreadOnVariableRate1","labelType":"xbrl:label","value":"Debt Instrument, Basis Spread on Variable Rate","language":"en-US"},{"forObject":"us-gaap:DebtInstrumentInterestRateEffectivePercentage","labelType":"xbrl:terseLabel","value":"Interest rate","language":"en-US"},{"forObject":"us-gaap:DebtInstrumentInterestRateEffectivePercentage","labelType":"xbrl:label","value":"Debt Instrument, Interest Rate, Effective Percentage","language":"en-US"},{"forObject":"us-gaap:DebtInstrumentLineItems","labelType":"xbrl:terseLabel","value":"Debt Instrument [Line Items]","language":"en-US"},{"forObject":"us-gaap:DebtInstrumentLineItems","labelType":"xbrl:label","value":"Debt Instrument [Line Items]","language":"en-US"},{"forObject":"us-gaap:DebtInstrumentTable","labelType":"xbrl:terseLabel","value":"Schedule of Long-term Debt Instruments [Table]","language":"en-US"},{"forObject":"us-gaap:DebtInstrumentTable","labelType":"xbrl:label","value":"Schedule of Long-term Debt Instruments [Table]","language":"en-US"},{"forObject":"us-gaap:DebtWeightedAverageInterestRate","labelType":"xbrl:terseLabel","value":"Weighted average interest rate","language":"en-US"},{"forObject":"us-gaap:DebtWeightedAverageInterestRate","labelType":"xbrl:label","value":"Debt, Weighted Average Interest Rate","language":"en-US"},{"forObject":"us-gaap:DeferredForeignIncomeTaxExpenseBenefit","labelType":"xbrl:terseLabel","value":"Deferred foreign income tax","language":"en-US"},{"forObject":"us-gaap:DeferredForeignIncomeTaxExpenseBenefit","labelType":"xbrl:label","value":"Deferred Foreign Income Tax Expense (Benefit)","language":"en-US"},{"forObject":"us-gaap:DeferredRevenueArrangementTypeAxis","labelType":"xbrl:terseLabel","value":"Deferred Revenue Arrangement Type [Axis]","language":"en-US"},{"forObject":"us-gaap:DeferredRevenueArrangementTypeAxis","labelType":"xbrl:label","value":"Deferred Revenue Arrangement Type [Axis]","language":"en-US"},{"forObject":"us-gaap:DeferredRevenueArrangementTypeDomain","labelType":"xbrl:terseLabel","value":"Deferred Revenue [Domain]","language":"en-US"},{"forObject":"us-gaap:DeferredRevenueArrangementTypeDomain","labelType":"xbrl:label","value":"Deferred Revenue [Domain]","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsDeferredIncome","labelType":"xbrl:terseLabel","value":"Deferred revenue","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsDeferredIncome","labelType":"xbrl:label","value":"Deferred Tax Assets, Deferred Income","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets","labelType":"xbrl:terseLabel","value":"Intangible assets","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets","labelType":"xbrl:label","value":"Deferred Tax Assets, Goodwill and Intangible Assets","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsGross","labelType":"xbrl:totalLabel","value":"Gross deferred tax assets","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsGross","labelType":"xbrl:label","value":"Deferred Tax Assets, Gross","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsGrossAbstract","labelType":"xbrl:terseLabel","value":"Deferred tax assets:","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsGrossAbstract","labelType":"xbrl:label","value":"Deferred Tax Assets, Gross [Abstract]","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsOperatingLossCarryforwards","labelType":"xbrl:terseLabel","value":"Net operating loss carryforwards","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsOperatingLossCarryforwards","labelType":"xbrl:label","value":"Deferred Tax Assets, Operating Loss Carryforwards","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsOther","labelType":"xbrl:terseLabel","value":"Other","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsOther","labelType":"xbrl:label","value":"Deferred Tax Assets, Other","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment","labelType":"xbrl:terseLabel","value":"Depreciation and amortization","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment","labelType":"xbrl:label","value":"Deferred Tax Assets, Property, Plant and Equipment","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost","labelType":"xbrl:terseLabel","value":"Stock-based compensation","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost","labelType":"xbrl:label","value":"Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits, Share-based Compensation Cost","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities","labelType":"xbrl:terseLabel","value":"Accruals and reserves","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities","labelType":"xbrl:label","value":"Deferred Tax Assets, Tax Deferred Expense, Reserves and Accruals, Accrued Liabilities","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsValuationAllowance","labelType":"xbrl:negatedTerseLabel","value":"Valuation allowance","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsValuationAllowance","labelType":"xbrl:label","value":"Deferred Tax Assets, Valuation Allowance","language":"en-US"},{"forObject":"us-gaap:DeferredTaxLiabilities","labelType":"xbrl:negatedTotalLabel","value":"Net deferred tax liabilities","language":"en-US"},{"forObject":"us-gaap:DeferredTaxLiabilities","labelType":"xbrl:label","value":"Deferred Tax Liabilities, Net","language":"en-US"},{"forObject":"us-gaap:DefinedContributionPlanCostRecognized","labelType":"xbrl:terseLabel","value":"Company matching contributions, 401(K) Plan","language":"en-US"},{"forObject":"us-gaap:DefinedContributionPlanCostRecognized","labelType":"xbrl:label","value":"Defined Contribution Plan, Cost","language":"en-US"},{"forObject":"us-gaap:Depreciation","labelType":"xbrl:verboseLabel","value":"Depreciation and amortization","language":"en-US"},{"forObject":"us-gaap:Depreciation","labelType":"xbrl:label","value":"Depreciation","language":"en-US"},{"forObject":"us-gaap:DisaggregationOfRevenueLineItems","labelType":"xbrl:terseLabel","value":"Disaggregation of Revenue [Line Items]","language":"en-US"},{"forObject":"us-gaap:DisaggregationOfRevenueLineItems","labelType":"xbrl:label","value":"Disaggregation of Revenue [Line Items]","language":"en-US"},{"forObject":"us-gaap:DisaggregationOfRevenueTable","labelType":"xbrl:terseLabel","value":"Disaggregation of Revenue [Table]","language":"en-US"},{"forObject":"us-gaap:DisaggregationOfRevenueTable","labelType":"xbrl:label","value":"Disaggregation of Revenue [Table]","language":"en-US"},{"forObject":"us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock","labelType":"xbrl:terseLabel","value":"Disclosure of Share-based Compensation Arrangements by Share-based Payment Award","language":"en-US"},{"forObject":"us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock","labelType":"xbrl:label","value":"Disclosure of Share-based Compensation Arrangements by Share-based Payment Award [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:DiscontinuedOperationsAndDisposalGroupsAbstract","labelType":"xbrl:terseLabel","value":"Discontinued Operations and Disposal Groups [Abstract]","language":"en-US"},{"forObject":"us-gaap:DiscontinuedOperationsAndDisposalGroupsAbstract","labelType":"xbrl:label","value":"Discontinued Operations and Disposal Groups [Abstract]","language":"en-US"},{"forObject":"us-gaap:DisposalGroupIncludingDiscontinuedOperationConsideration","labelType":"xbrl:terseLabel","value":"Disposal group, consideration","language":"en-US"},{"forObject":"us-gaap:DisposalGroupIncludingDiscontinuedOperationConsideration","labelType":"xbrl:label","value":"Disposal Group, Including Discontinued Operation, Consideration","language":"en-US"},{"forObject":"us-gaap:DisposalGroupIncludingDiscontinuedOperationDeferredRevenue","labelType":"xbrl:terseLabel","value":"Disposal group, deferred revenue","language":"en-US"},{"forObject":"us-gaap:DisposalGroupIncludingDiscontinuedOperationDeferredRevenue","labelType":"xbrl:label","value":"Disposal Group, Including Discontinued Operation, Deferred Revenue","language":"en-US"},{"forObject":"us-gaap:DisposalGroupIncludingDiscontinuedOperationInventory1","labelType":"xbrl:terseLabel","value":"Inventory transferred","language":"en-US"},{"forObject":"us-gaap:DisposalGroupIncludingDiscontinuedOperationInventory1","labelType":"xbrl:label","value":"Disposal Group, Including Discontinued Operation, Inventory","language":"en-US"},{"forObject":"us-gaap:DisposalGroupNotDiscontinuedOperationGainLossOnDisposal","labelType":"xbrl:terseLabel","value":"Gain on disposal","language":"en-US"},{"forObject":"us-gaap:DisposalGroupNotDiscontinuedOperationGainLossOnDisposal","labelType":"xbrl:label","value":"Disposal Group, Not Discontinued Operation, Gain (Loss) on Disposal","language":"en-US"},{"forObject":"us-gaap:DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock","labelType":"xbrl:terseLabel","value":"Product Line Divestiture","language":"en-US"},{"forObject":"us-gaap:DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock","labelType":"xbrl:label","value":"Disposal Groups, Including Discontinued Operations, Disclosure [Text Block]","language":"en-US"},{"forObject":"us-gaap:DisposalGroupsIncludingDiscontinuedOperationsNameDomain","labelType":"xbrl:terseLabel","value":"Disposal Group Name [Domain]","language":"en-US"},{"forObject":"us-gaap:DisposalGroupsIncludingDiscontinuedOperationsNameDomain","labelType":"xbrl:label","value":"Disposal Group Name [Domain]","language":"en-US"},{"forObject":"us-gaap:DomesticCountryMember","labelType":"xbrl:terseLabel","value":"U.S. Federal","language":"en-US"},{"forObject":"us-gaap:DomesticCountryMember","labelType":"xbrl:label","value":"Domestic Tax Authority [Member]","language":"en-US"},{"forObject":"us-gaap:EarningsPerShareAbstract","labelType":"xbrl:terseLabel","value":"Earnings Per Share [Abstract]","language":"en-US"},{"forObject":"us-gaap:EarningsPerShareAbstract","labelType":"xbrl:label","value":"Earnings Per Share [Abstract]","language":"en-US"},{"forObject":"us-gaap:EarningsPerShareBasic","labelType":"xbrl:terseLabel","value":"Basic (in dollars per share)","language":"en-US"},{"forObject":"us-gaap:EarningsPerShareBasic","labelType":"xbrl:verboseLabel","value":"Basic net income (loss) per common share (in dollars per share)","language":"en-US"},{"forObject":"us-gaap:EarningsPerShareBasic","labelType":"xbrl:netLabel","value":"Net income (loss) per common share, basic (in dollars per share)","language":"en-US"},{"forObject":"us-gaap:EarningsPerShareBasic","labelType":"xbrl:label","value":"Earnings Per Share, Basic","language":"en-US"},{"forObject":"us-gaap:EarningsPerShareBasicAbstract","labelType":"xbrl:verboseLabel","value":"Net income (loss) per common share:","language":"en-US"},{"forObject":"us-gaap:EarningsPerShareBasicAbstract","labelType":"xbrl:label","value":"Earnings Per Share, Basic [Abstract]","language":"en-US"},{"forObject":"us-gaap:EarningsPerShareBasicAndDiluted","labelType":"xbrl:terseLabel","value":"Net income (loss) per common share, basic and diluted (in dollars per share)","language":"en-US"},{"forObject":"us-gaap:EarningsPerShareBasicAndDiluted","labelType":"xbrl:label","value":"Earnings Per Share, Basic and Diluted","language":"en-US"},{"forObject":"us-gaap:EarningsPerShareBasicAndDilutedAbstract","labelType":"xbrl:verboseLabel","value":"Computation of basic and diluted net loss per share","language":"en-US"},{"forObject":"us-gaap:EarningsPerShareBasicAndDilutedAbstract","labelType":"xbrl:label","value":"Earnings Per Share, Basic and Diluted [Abstract]","language":"en-US"},{"forObject":"us-gaap:EarningsPerShareDiluted","labelType":"xbrl:terseLabel","value":"Diluted (in dollars per share)","language":"en-US"},{"forObject":"us-gaap:EarningsPerShareDiluted","labelType":"xbrl:verboseLabel","value":"Diluted net income (loss) per common share (in dollars per share)","language":"en-US"},{"forObject":"us-gaap:EarningsPerShareDiluted","labelType":"xbrl:netLabel","value":"Net income (loss) per common share, diluted (in dollars per share)","language":"en-US"},{"forObject":"us-gaap:EarningsPerShareDiluted","labelType":"xbrl:label","value":"Earnings Per Share, Diluted","language":"en-US"},{"forObject":"us-gaap:EarningsPerShareDilutedOtherDisclosuresAbstract","labelType":"xbrl:verboseLabel","value":"Weighted-average number of shares used to compute net income (loss) per common share:","language":"en-US"},{"forObject":"us-gaap:EarningsPerShareDilutedOtherDisclosuresAbstract","labelType":"xbrl:label","value":"Earnings Per Share, Diluted, Other Disclosures [Abstract]","language":"en-US"},{"forObject":"us-gaap:EarningsPerShareTextBlock","labelType":"xbrl:verboseLabel","value":"Net Income (Loss) Per Common Share","language":"en-US"},{"forObject":"us-gaap:EarningsPerShareTextBlock","labelType":"xbrl:label","value":"Earnings Per Share [Text Block]","language":"en-US"},{"forObject":"us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","labelType":"xbrl:verboseLabel","value":"Effect of exchange rate changes on cash and cash equivalents","language":"en-US"},{"forObject":"us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","labelType":"xbrl:label","value":"Effect of Exchange Rate on Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","labelType":"xbrl:totalLabel","value":"Total","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, Percent","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate","labelType":"xbrl:terseLabel","value":"Federal statutory rate","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance","labelType":"xbrl:terseLabel","value":"Valuation allowance","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, Change in Deferred Tax Assets Valuation Allowance, Percent","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential","labelType":"xbrl:terseLabel","value":"Foreign operations","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, Foreign Income Tax Rate Differential, Percent","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseOther","labelType":"xbrl:terseLabel","value":"Other permanent items","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseOther","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, Nondeductible Expense, Other, Percent","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost","labelType":"xbrl:terseLabel","value":"Stock-based compensation","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, Nondeductible Expense, Share-based Payment Arrangement, Percent","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationPriorYearIncomeTaxes","labelType":"xbrl:terseLabel","value":"Tax true-up","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationPriorYearIncomeTaxes","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, Prior Year Income Taxes, Percent","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes","labelType":"xbrl:terseLabel","value":"State statutory rate","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, State and Local Income Taxes, Percent","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch","labelType":"xbrl:negatedTerseLabel","value":"R&D tax credits","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, Tax Credit, Research, Percent","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationTaxCutsAndJobsActOf2017Percent","labelType":"xbrl:terseLabel","value":"Net operating loss expiration","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationTaxCutsAndJobsActOf2017Percent","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, Tax Cuts and Jobs Act, Percent","language":"en-US"},{"forObject":"us-gaap:EmployeeRelatedLiabilitiesCurrent","labelType":"xbrl:terseLabel","value":"Compensation and related benefits","language":"en-US"},{"forObject":"us-gaap:EmployeeRelatedLiabilitiesCurrent","labelType":"xbrl:label","value":"Employee-related Liabilities, Current","language":"en-US"},{"forObject":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized","labelType":"xbrl:verboseLabel","value":"Unrecognized stock-based compensation expense","language":"en-US"},{"forObject":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized","labelType":"xbrl:label","value":"Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount","language":"en-US"},{"forObject":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1","labelType":"xbrl:verboseLabel","value":"Weighted-average amortization period","language":"en-US"},{"forObject":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1","labelType":"xbrl:label","value":"Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition","language":"en-US"},{"forObject":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions","labelType":"xbrl:terseLabel","value":"Unrecognized stock-based compensation expense","language":"en-US"},{"forObject":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions","labelType":"xbrl:label","value":"Share-based Payment Arrangement, Nonvested Award, Excluding Option, Cost Not yet Recognized, Amount","language":"en-US"},{"forObject":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions","labelType":"xbrl:terseLabel","value":"Unrecognized stock-based compensation expense","language":"en-US"},{"forObject":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions","labelType":"xbrl:label","value":"Share-based Payment Arrangement, Nonvested Award, Option, Cost Not yet Recognized, Amount","language":"en-US"},{"forObject":"us-gaap:EmployeeSeveranceMember","labelType":"xbrl:terseLabel","value":"Severance and Related Benefits","language":"en-US"},{"forObject":"us-gaap:EmployeeSeveranceMember","labelType":"xbrl:label","value":"Employee Severance [Member]","language":"en-US"},{"forObject":"us-gaap:EmployeeStockMember","labelType":"xbrl:terseLabel","value":"ESPP","language":"en-US"},{"forObject":"us-gaap:EmployeeStockMember","labelType":"xbrl:label","value":"Employee Stock [Member]","language":"en-US"},{"forObject":"us-gaap:EmployeeStockOptionMember","labelType":"xbrl:terseLabel","value":"Stock Options","language":"en-US"},{"forObject":"us-gaap:EmployeeStockOptionMember","labelType":"xbrl:label","value":"Share-based Payment Arrangement, Option [Member]","language":"en-US"},{"forObject":"us-gaap:EquipmentMember","labelType":"xbrl:terseLabel","value":"Test Equipment","language":"en-US"},{"forObject":"us-gaap:EquipmentMember","labelType":"xbrl:verboseLabel","value":"Test equipment","language":"en-US"},{"forObject":"us-gaap:EquipmentMember","labelType":"xbrl:label","value":"Equipment [Member]","language":"en-US"},{"forObject":"us-gaap:EquityAbstract","labelType":"xbrl:terseLabel","value":"Equity [Abstract]","language":"en-US"},{"forObject":"us-gaap:EquityAbstract","labelType":"xbrl:label","value":"Equity [Abstract]","language":"en-US"},{"forObject":"us-gaap:EquityComponentDomain","labelType":"xbrl:terseLabel","value":"Equity Component [Domain]","language":"en-US"},{"forObject":"us-gaap:EquityComponentDomain","labelType":"xbrl:label","value":"Equity Component [Domain]","language":"en-US"},{"forObject":"us-gaap:FacilityClosingMember","labelType":"xbrl:terseLabel","value":"Facilities","language":"en-US"},{"forObject":"us-gaap:FacilityClosingMember","labelType":"xbrl:label","value":"Facility Closing [Member]","language":"en-US"},{"forObject":"us-gaap:FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems","labelType":"xbrl:terseLabel","value":"Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]","language":"en-US"},{"forObject":"us-gaap:FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems","labelType":"xbrl:label","value":"Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]","language":"en-US"},{"forObject":"us-gaap:FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable","labelType":"xbrl:terseLabel","value":"Fair Value, Recurring and Nonrecurring [Table]","language":"en-US"},{"forObject":"us-gaap:FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable","labelType":"xbrl:label","value":"Fair Value, Recurring and Nonrecurring [Table]","language":"en-US"},{"forObject":"us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock","labelType":"xbrl:terseLabel","value":"Fair Value, Assets Measured on Recurring Basis","language":"en-US"},{"forObject":"us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock","labelType":"xbrl:label","value":"Fair Value, Assets Measured on Recurring Basis [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:FairValueByFairValueHierarchyLevelAxis","labelType":"xbrl:terseLabel","value":"Fair Value Hierarchy and NAV [Axis]","language":"en-US"},{"forObject":"us-gaap:FairValueByFairValueHierarchyLevelAxis","labelType":"xbrl:label","value":"Fair Value Hierarchy and NAV [Axis]","language":"en-US"},{"forObject":"us-gaap:FairValueByMeasurementFrequencyAxis","labelType":"xbrl:terseLabel","value":"Measurement Frequency [Axis]","language":"en-US"},{"forObject":"us-gaap:FairValueByMeasurementFrequencyAxis","labelType":"xbrl:label","value":"Measurement Frequency [Axis]","language":"en-US"},{"forObject":"us-gaap:FairValueDisclosuresAbstract","labelType":"xbrl:terseLabel","value":"Fair Value Disclosures [Abstract]","language":"en-US"},{"forObject":"us-gaap:FairValueDisclosuresAbstract","labelType":"xbrl:label","value":"Fair Value Disclosures [Abstract]","language":"en-US"},{"forObject":"us-gaap:FairValueDisclosuresTextBlock","labelType":"xbrl:verboseLabel","value":"Fair Value Measurements","language":"en-US"},{"forObject":"us-gaap:FairValueDisclosuresTextBlock","labelType":"xbrl:label","value":"Fair Value Disclosures [Text Block]","language":"en-US"},{"forObject":"us-gaap:FairValueInputsLevel1Member","labelType":"xbrl:terseLabel","value":"Level 1","language":"en-US"},{"forObject":"us-gaap:FairValueInputsLevel1Member","labelType":"xbrl:label","value":"Fair Value, Inputs, Level 1 [Member]","language":"en-US"},{"forObject":"us-gaap:FairValueMeasurementFrequencyDomain","labelType":"xbrl:terseLabel","value":"Measurement Frequency [Domain]","language":"en-US"},{"forObject":"us-gaap:FairValueMeasurementFrequencyDomain","labelType":"xbrl:label","value":"Measurement Frequency [Domain]","language":"en-US"},{"forObject":"us-gaap:FairValueMeasurementsFairValueHierarchyDomain","labelType":"xbrl:terseLabel","value":"Fair Value Hierarchy and NAV [Domain]","language":"en-US"},{"forObject":"us-gaap:FairValueMeasurementsFairValueHierarchyDomain","labelType":"xbrl:label","value":"Fair Value Hierarchy and NAV [Domain]","language":"en-US"},{"forObject":"us-gaap:FairValueMeasurementsRecurringMember","labelType":"xbrl:terseLabel","value":"Fair Value, Recurring","language":"en-US"},{"forObject":"us-gaap:FairValueMeasurementsRecurringMember","labelType":"xbrl:label","value":"Fair Value, Recurring [Member]","language":"en-US"},{"forObject":"us-gaap:FairValueOfFinancialInstrumentsPolicy","labelType":"xbrl:terseLabel","value":"Fair Value of Financial Instruments","language":"en-US"},{"forObject":"us-gaap:FairValueOfFinancialInstrumentsPolicy","labelType":"xbrl:label","value":"Fair Value of Financial Instruments, Policy [Policy Text Block]","language":"en-US"},{"forObject":"us-gaap:FinancialInstrumentAxis","labelType":"xbrl:terseLabel","value":"Financial Instrument [Axis]","language":"en-US"},{"forObject":"us-gaap:FinancialInstrumentAxis","labelType":"xbrl:label","value":"Financial Instrument [Axis]","language":"en-US"},{"forObject":"us-gaap:FiniteLivedIntangibleAssetUsefulLife","labelType":"xbrl:terseLabel","value":"Useful life","language":"en-US"},{"forObject":"us-gaap:FiniteLivedIntangibleAssetUsefulLife","labelType":"xbrl:label","value":"Finite-Lived Intangible Asset, Useful Life","language":"en-US"},{"forObject":"us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis","labelType":"xbrl:terseLabel","value":"Finite-Lived Intangible Assets by Major Class [Axis]","language":"en-US"},{"forObject":"us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis","labelType":"xbrl:label","value":"Finite-Lived Intangible Assets by Major Class [Axis]","language":"en-US"},{"forObject":"us-gaap:FiniteLivedIntangibleAssetsLineItems","labelType":"xbrl:terseLabel","value":"Finite-Lived Intangible Assets [Line Items]","language":"en-US"},{"forObject":"us-gaap:FiniteLivedIntangibleAssetsLineItems","labelType":"xbrl:label","value":"Finite-Lived Intangible Assets [Line Items]","language":"en-US"},{"forObject":"us-gaap:FiniteLivedIntangibleAssetsMajorClassNameDomain","labelType":"xbrl:terseLabel","value":"Finite-Lived Intangible Assets, Major Class Name [Domain]","language":"en-US"},{"forObject":"us-gaap:FiniteLivedIntangibleAssetsMajorClassNameDomain","labelType":"xbrl:label","value":"Finite-Lived Intangible Assets, Major Class Name [Domain]","language":"en-US"},{"forObject":"us-gaap:FurnitureAndFixturesMember","labelType":"xbrl:terseLabel","value":"Furniture and Fixtures","language":"en-US"},{"forObject":"us-gaap:FurnitureAndFixturesMember","labelType":"xbrl:verboseLabel","value":"Furniture and fixtures","language":"en-US"},{"forObject":"us-gaap:FurnitureAndFixturesMember","labelType":"xbrl:label","value":"Furniture and Fixtures [Member]","language":"en-US"},{"forObject":"us-gaap:GainLossOnDispositionOfAssets","labelType":"xbrl:negatedTerseLabel","value":"Asset retirements and write-downs","language":"en-US"},{"forObject":"us-gaap:GainLossOnDispositionOfAssets","labelType":"xbrl:label","value":"Gain (Loss) on Disposition of Property Plant Equipment, Excluding Oil and Gas Property and Timber Property","language":"en-US"},{"forObject":"us-gaap:GainLossOnDispositionOfAssets1","labelType":"xbrl:negatedTerseLabel","value":"Gain on sale of product line","language":"en-US"},{"forObject":"us-gaap:GainLossOnDispositionOfAssets1","labelType":"xbrl:label","value":"Gain (Loss) on Disposition of Assets","language":"en-US"},{"forObject":"us-gaap:GeneralAndAdministrativeExpense","labelType":"xbrl:verboseLabel","value":"General and administrative","language":"en-US"},{"forObject":"us-gaap:GeneralAndAdministrativeExpense","labelType":"xbrl:label","value":"General and Administrative Expense","language":"en-US"},{"forObject":"us-gaap:GeneralAndAdministrativeExpenseMember","labelType":"xbrl:verboseLabel","value":"General and administrative","language":"en-US"},{"forObject":"us-gaap:GeneralAndAdministrativeExpenseMember","labelType":"xbrl:label","value":"General and Administrative Expense [Member]","language":"en-US"},{"forObject":"us-gaap:Goodwill","labelType":"xbrl:verboseLabel","value":"Goodwill","language":"en-US"},{"forObject":"us-gaap:Goodwill","labelType":"xbrl:label","value":"Goodwill","language":"en-US"},{"forObject":"us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy","labelType":"xbrl:terseLabel","value":"Goodwill","language":"en-US"},{"forObject":"us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy","labelType":"xbrl:label","value":"Goodwill and Intangible Assets, Goodwill, Policy [Policy Text Block]","language":"en-US"},{"forObject":"us-gaap:GoodwillImpairmentLoss","labelType":"xbrl:terseLabel","value":"Goodwill, impairment loss","language":"en-US"},{"forObject":"us-gaap:GoodwillImpairmentLoss","labelType":"xbrl:label","value":"Goodwill, Impairment Loss","language":"en-US"},{"forObject":"us-gaap:GrossProfit","labelType":"xbrl:totalLabel","value":"Gross profit","language":"en-US"},{"forObject":"us-gaap:GrossProfit","labelType":"xbrl:terseLabel","value":"Gross profit","language":"en-US"},{"forObject":"us-gaap:GrossProfit","labelType":"xbrl:label","value":"Gross Profit","language":"en-US"},{"forObject":"us-gaap:ImpairmentOfIntangibleAssetsFinitelived","labelType":"xbrl:terseLabel","value":"Loss on asset retirement","language":"en-US"},{"forObject":"us-gaap:ImpairmentOfIntangibleAssetsFinitelived","labelType":"xbrl:label","value":"Impairment of Intangible Assets, Finite-lived","language":"en-US"},{"forObject":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic","labelType":"xbrl:terseLabel","value":"Domestic","language":"en-US"},{"forObject":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic","labelType":"xbrl:label","value":"Income (Loss) from Continuing Operations before Income Taxes, Domestic","language":"en-US"},{"forObject":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign","labelType":"xbrl:terseLabel","value":"Foreign","language":"en-US"},{"forObject":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign","labelType":"xbrl:label","value":"Income (Loss) from Continuing Operations before Income Taxes, Foreign","language":"en-US"},{"forObject":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments","labelType":"xbrl:totalLabel","value":"Income (loss) before provision for income taxes","language":"en-US"},{"forObject":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments","labelType":"xbrl:label","value":"Income (Loss) from Continuing Operations before Equity Method Investments, Income Taxes, Noncontrolling Interest","language":"en-US"},{"forObject":"us-gaap:IncomeStatementAbstract","labelType":"xbrl:terseLabel","value":"Income Statement [Abstract]","language":"en-US"},{"forObject":"us-gaap:IncomeStatementAbstract","labelType":"xbrl:label","value":"Income Statement [Abstract]","language":"en-US"},{"forObject":"us-gaap:IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis","labelType":"xbrl:terseLabel","value":"Disposal Group Name [Axis]","language":"en-US"},{"forObject":"us-gaap:IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis","labelType":"xbrl:label","value":"Disposal Group Name [Axis]","language":"en-US"},{"forObject":"us-gaap:IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems","labelType":"xbrl:terseLabel","value":"Income Statement, Balance Sheet and Additional Disclosures by Disposal Groups, Including Discontinued Operations [Line Items]","language":"en-US"},{"forObject":"us-gaap:IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems","labelType":"xbrl:label","value":"Income Statement, Balance Sheet and Additional Disclosures by Disposal Groups, Including Discontinued Operations [Line Items]","language":"en-US"},{"forObject":"us-gaap:IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsTable","labelType":"xbrl:terseLabel","value":"Disposal Groups, Including Discontinued Operations [Table]","language":"en-US"},{"forObject":"us-gaap:IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsTable","labelType":"xbrl:label","value":"Disposal Groups, Including Discontinued Operations [Table]","language":"en-US"},{"forObject":"us-gaap:IncomeStatementLocationAxis","labelType":"xbrl:terseLabel","value":"Income Statement Location [Axis]","language":"en-US"},{"forObject":"us-gaap:IncomeStatementLocationAxis","labelType":"xbrl:label","value":"Income Statement Location [Axis]","language":"en-US"},{"forObject":"us-gaap:IncomeStatementLocationDomain","labelType":"xbrl:terseLabel","value":"Income Statement Location [Domain]","language":"en-US"},{"forObject":"us-gaap:IncomeStatementLocationDomain","labelType":"xbrl:label","value":"Income Statement Location [Domain]","language":"en-US"},{"forObject":"us-gaap:IncomeTaxAuthorityAxis","labelType":"xbrl:terseLabel","value":"Income Tax Authority [Axis]","language":"en-US"},{"forObject":"us-gaap:IncomeTaxAuthorityAxis","labelType":"xbrl:label","value":"Income Tax Authority [Axis]","language":"en-US"},{"forObject":"us-gaap:IncomeTaxAuthorityDomain","labelType":"xbrl:terseLabel","value":"Income Tax Authority [Domain]","language":"en-US"},{"forObject":"us-gaap:IncomeTaxAuthorityDomain","labelType":"xbrl:label","value":"Income Tax Authority [Domain]","language":"en-US"},{"forObject":"us-gaap:IncomeTaxDisclosureAbstract","labelType":"xbrl:terseLabel","value":"Income Tax Disclosure [Abstract]","language":"en-US"},{"forObject":"us-gaap:IncomeTaxDisclosureAbstract","labelType":"xbrl:label","value":"Income Tax Disclosure [Abstract]","language":"en-US"},{"forObject":"us-gaap:IncomeTaxDisclosureTextBlock","labelType":"xbrl:verboseLabel","value":"Income Taxes","language":"en-US"},{"forObject":"us-gaap:IncomeTaxDisclosureTextBlock","labelType":"xbrl:label","value":"Income Tax Disclosure [Text Block]","language":"en-US"},{"forObject":"us-gaap:IncomeTaxExpenseBenefit","labelType":"xbrl:verboseLabel","value":"Provision for income taxes","language":"en-US"},{"forObject":"us-gaap:IncomeTaxExpenseBenefit","labelType":"xbrl:totalLabel","value":"Income Tax Expense (Benefit), Total","language":"en-US"},{"forObject":"us-gaap:IncomeTaxExpenseBenefit","labelType":"xbrl:label","value":"Income Tax Expense (Benefit)","language":"en-US"},{"forObject":"us-gaap:IncomeTaxPolicyTextBlock","labelType":"xbrl:terseLabel","value":"Income Taxes","language":"en-US"},{"forObject":"us-gaap:IncomeTaxPolicyTextBlock","labelType":"xbrl:label","value":"Income Tax, Policy [Policy Text Block]","language":"en-US"},{"forObject":"us-gaap:IncomeTaxReconciliationRepatriationOfForeignEarnings","labelType":"xbrl:terseLabel","value":"Effective income tax rate reconciliation, repatriation of foreign earnings, amount","language":"en-US"},{"forObject":"us-gaap:IncomeTaxReconciliationRepatriationOfForeignEarnings","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, Repatriation of Foreign Earnings, Amount","language":"en-US"},{"forObject":"us-gaap:IncomeTaxesPaidNet","labelType":"xbrl:terseLabel","value":"Income taxes paid","language":"en-US"},{"forObject":"us-gaap:IncomeTaxesPaidNet","labelType":"xbrl:label","value":"Income Taxes Paid, Net","language":"en-US"},{"forObject":"us-gaap:IncreaseDecreaseInAccountsPayable","labelType":"xbrl:verboseLabel","value":"Accounts payable","language":"en-US"},{"forObject":"us-gaap:IncreaseDecreaseInAccountsPayable","labelType":"xbrl:label","value":"Increase (Decrease) in Accounts Payable","language":"en-US"},{"forObject":"us-gaap:IncreaseDecreaseInAccountsReceivable","labelType":"xbrl:negatedLabel","value":"Accounts receivable, net","language":"en-US"},{"forObject":"us-gaap:IncreaseDecreaseInAccountsReceivable","labelType":"xbrl:label","value":"Increase (Decrease) in Accounts Receivable","language":"en-US"},{"forObject":"us-gaap:IncreaseDecreaseInAccruedLiabilities","labelType":"xbrl:verboseLabel","value":"Accrued liabilities","language":"en-US"},{"forObject":"us-gaap:IncreaseDecreaseInAccruedLiabilities","labelType":"xbrl:label","value":"Increase (Decrease) in Accrued Liabilities","language":"en-US"},{"forObject":"us-gaap:IncreaseDecreaseInDeferredRevenue","labelType":"xbrl:verboseLabel","value":"Deferred revenue","language":"en-US"},{"forObject":"us-gaap:IncreaseDecreaseInDeferredRevenue","labelType":"xbrl:label","value":"Increase (Decrease) in Deferred Revenue","language":"en-US"},{"forObject":"us-gaap:IncreaseDecreaseInInventories","labelType":"xbrl:negatedLabel","value":"Inventory","language":"en-US"},{"forObject":"us-gaap:IncreaseDecreaseInInventories","labelType":"xbrl:label","value":"Increase (Decrease) in Inventories","language":"en-US"},{"forObject":"us-gaap:IncreaseDecreaseInOperatingCapitalAbstract","labelType":"xbrl:verboseLabel","value":"Changes in operating assets and liabilities:","language":"en-US"},{"forObject":"us-gaap:IncreaseDecreaseInOperatingCapitalAbstract","labelType":"xbrl:label","value":"Increase (Decrease) in Operating Capital [Abstract]","language":"en-US"},{"forObject":"us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities","labelType":"xbrl:verboseLabel","value":"Other long-term liabilities","language":"en-US"},{"forObject":"us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities","labelType":"xbrl:label","value":"Increase (Decrease) in Other Noncurrent Liabilities","language":"en-US"},{"forObject":"us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets","labelType":"xbrl:negatedLabel","value":"Prepaid expenses and other assets","language":"en-US"},{"forObject":"us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets","labelType":"xbrl:label","value":"Increase (Decrease) in Prepaid Expense and Other Assets","language":"en-US"},{"forObject":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","labelType":"xbrl:terseLabel","value":"Increase (Decrease) in Stockholders' Equity [Roll Forward]","language":"en-US"},{"forObject":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","labelType":"xbrl:label","value":"Increase (Decrease) in Stockholders' Equity [Roll Forward]","language":"en-US"},{"forObject":"us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements","labelType":"xbrl:terseLabel","value":"Effect of dilutive potential common shares (in shares)","language":"en-US"},{"forObject":"us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements","labelType":"xbrl:label","value":"Incremental Common Shares Attributable to Dilutive Effect of Share-based Payment Arrangements","language":"en-US"},{"forObject":"us-gaap:IntangibleAssetsCurrent","labelType":"xbrl:terseLabel","value":"Intangible assets, current","language":"en-US"},{"forObject":"us-gaap:IntangibleAssetsCurrent","labelType":"xbrl:label","value":"Intangible Assets, Current","language":"en-US"},{"forObject":"us-gaap:IntangibleAssetsNetExcludingGoodwill","labelType":"xbrl:terseLabel","value":"Intangible asset","language":"en-US"},{"forObject":"us-gaap:IntangibleAssetsNetExcludingGoodwill","labelType":"xbrl:label","value":"Intangible Assets, Net (Excluding Goodwill)","language":"en-US"},{"forObject":"us-gaap:InterestPaidNet","labelType":"xbrl:terseLabel","value":"Interest paid","language":"en-US"},{"forObject":"us-gaap:InterestPaidNet","labelType":"xbrl:label","value":"Interest Paid, Excluding Capitalized Interest, Operating Activities","language":"en-US"},{"forObject":"us-gaap:InventoryFinishedGoodsNetOfReserves","labelType":"xbrl:verboseLabel","value":"Finished goods","language":"en-US"},{"forObject":"us-gaap:InventoryFinishedGoodsNetOfReserves","labelType":"xbrl:label","value":"Inventory, Finished Goods, Net of Reserves","language":"en-US"},{"forObject":"us-gaap:InventoryNet","labelType":"xbrl:verboseLabel","value":"Inventory","language":"en-US"},{"forObject":"us-gaap:InventoryNet","labelType":"xbrl:totalLabel","value":"Total inventory","language":"en-US"},{"forObject":"us-gaap:InventoryNet","labelType":"xbrl:label","value":"Inventory, Net","language":"en-US"},{"forObject":"us-gaap:InventoryNetAbstract","labelType":"xbrl:verboseLabel","value":"Summary of inventory, net","language":"en-US"},{"forObject":"us-gaap:InventoryNetAbstract","labelType":"xbrl:label","value":"Inventory, Net [Abstract]","language":"en-US"},{"forObject":"us-gaap:InventoryPolicyTextBlock","labelType":"xbrl:terseLabel","value":"Inventory Valuation","language":"en-US"},{"forObject":"us-gaap:InventoryPolicyTextBlock","labelType":"xbrl:label","value":"Inventory, Policy [Policy Text Block]","language":"en-US"},{"forObject":"us-gaap:InventoryRawMaterialsNetOfReserves","labelType":"xbrl:verboseLabel","value":"Raw materials","language":"en-US"},{"forObject":"us-gaap:InventoryRawMaterialsNetOfReserves","labelType":"xbrl:label","value":"Inventory, Raw Materials, Net of Reserves","language":"en-US"},{"forObject":"us-gaap:InvestmentIncomeNet","labelType":"xbrl:verboseLabel","value":"Interest expense, net","language":"en-US"},{"forObject":"us-gaap:InvestmentIncomeNet","labelType":"xbrl:label","value":"Investment Income, Net","language":"en-US"},{"forObject":"us-gaap:LeaseholdImprovementsMember","labelType":"xbrl:verboseLabel","value":"Leasehold improvements","language":"en-US"},{"forObject":"us-gaap:LeaseholdImprovementsMember","labelType":"xbrl:label","value":"Leasehold Improvements [Member]","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock","labelType":"xbrl:terseLabel","value":"Lessee, Operating Lease, Liability, Maturity","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock","labelType":"xbrl:label","value":"Lessee, Operating Lease, Liability, Maturity [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue","labelType":"xbrl:totalLabel","value":"Total future minimum lease payments","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue","labelType":"xbrl:terseLabel","value":"Total future minimum lease payments","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue","labelType":"xbrl:label","value":"Lessee, Operating Lease, Liability, to be Paid","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive","labelType":"xbrl:terseLabel","value":"Thereafter","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive","labelType":"xbrl:label","value":"Lessee, Operating Lease, Liability, to be Paid, after Year Five","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths","labelType":"xbrl:terseLabel","value":"2021","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths","labelType":"xbrl:label","value":"Lessee, Operating Lease, Liability, to be Paid, Year One","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive","labelType":"xbrl:terseLabel","value":"2025","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive","labelType":"xbrl:label","value":"Lessee, Operating Lease, Liability, to be Paid, Year Five","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour","labelType":"xbrl:terseLabel","value":"2024","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour","labelType":"xbrl:label","value":"Lessee, Operating Lease, Liability, to be Paid, Year Four","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree","labelType":"xbrl:terseLabel","value":"2023","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree","labelType":"xbrl:label","value":"Lessee, Operating Lease, Liability, to be Paid, Year Three","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo","labelType":"xbrl:terseLabel","value":"2022","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo","labelType":"xbrl:label","value":"Lessee, Operating Lease, Liability, to be Paid, Year Two","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount","labelType":"xbrl:negatedTerseLabel","value":"Less imputed interest","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount","labelType":"xbrl:label","value":"Lessee, Operating Lease, Liability, Undiscounted Excess Amount","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseTermOfContract","labelType":"xbrl:terseLabel","value":"Term of contract","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseTermOfContract","labelType":"xbrl:label","value":"Lessee, Operating Lease, Term of Contract","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeasesTextBlock","labelType":"xbrl:terseLabel","value":"Lessee, Operating Leases","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeasesTextBlock","labelType":"xbrl:label","value":"Lessee, Operating Leases [Text Block]","language":"en-US"},{"forObject":"us-gaap:LetterOfCreditMember","labelType":"xbrl:terseLabel","value":"Letter of Credit","language":"en-US"},{"forObject":"us-gaap:LetterOfCreditMember","labelType":"xbrl:label","value":"Letter of Credit [Member]","language":"en-US"},{"forObject":"us-gaap:Liabilities","labelType":"xbrl:totalLabel","value":"Total liabilities","language":"en-US"},{"forObject":"us-gaap:Liabilities","labelType":"xbrl:label","value":"Liabilities","language":"en-US"},{"forObject":"us-gaap:LiabilitiesAndStockholdersEquity","labelType":"xbrl:totalLabel","value":"Total liabilities and stockholders' equity","language":"en-US"},{"forObject":"us-gaap:LiabilitiesAndStockholdersEquity","labelType":"xbrl:label","value":"Liabilities and Equity","language":"en-US"},{"forObject":"us-gaap:LiabilitiesAndStockholdersEquityAbstract","labelType":"xbrl:verboseLabel","value":"LIABILITIES AND STOCKHOLDERS\u2019 EQUITY","language":"en-US"},{"forObject":"us-gaap:LiabilitiesAndStockholdersEquityAbstract","labelType":"xbrl:label","value":"Liabilities and Equity [Abstract]","language":"en-US"},{"forObject":"us-gaap:LiabilitiesCurrent","labelType":"xbrl:totalLabel","value":"Total current liabilities","language":"en-US"},{"forObject":"us-gaap:LiabilitiesCurrent","labelType":"xbrl:label","value":"Liabilities, Current","language":"en-US"},{"forObject":"us-gaap:LiabilitiesCurrentAbstract","labelType":"xbrl:verboseLabel","value":"Current liabilities:","language":"en-US"},{"forObject":"us-gaap:LiabilitiesCurrentAbstract","labelType":"xbrl:label","value":"Liabilities, Current [Abstract]","language":"en-US"},{"forObject":"us-gaap:LineOfCreditFacilityAbstract","labelType":"xbrl:terseLabel","value":"Line of Credit Facility [Abstract]","language":"en-US"},{"forObject":"us-gaap:LineOfCreditFacilityAbstract","labelType":"xbrl:label","value":"Line of Credit Facility [Abstract]","language":"en-US"},{"forObject":"us-gaap:LineOfCreditFacilityAxis","labelType":"xbrl:terseLabel","value":"Lender Name [Axis]","language":"en-US"},{"forObject":"us-gaap:LineOfCreditFacilityAxis","labelType":"xbrl:label","value":"Lender Name [Axis]","language":"en-US"},{"forObject":"us-gaap:LineOfCreditFacilityLenderDomain","labelType":"xbrl:terseLabel","value":"Line of Credit Facility, Lender [Domain]","language":"en-US"},{"forObject":"us-gaap:LineOfCreditFacilityLenderDomain","labelType":"xbrl:label","value":"Line of Credit Facility, Lender [Domain]","language":"en-US"},{"forObject":"us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity","labelType":"xbrl:verboseLabel","value":"Revolving credit facility, maximum capacity","language":"en-US"},{"forObject":"us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity","labelType":"xbrl:label","value":"Line of Credit Facility, Maximum Borrowing Capacity","language":"en-US"},{"forObject":"us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity","labelType":"xbrl:terseLabel","value":"Line of credit, amount available","language":"en-US"},{"forObject":"us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity","labelType":"xbrl:label","value":"Line of Credit Facility, Remaining Borrowing Capacity","language":"en-US"},{"forObject":"us-gaap:LinesOfCreditCurrent","labelType":"xbrl:terseLabel","value":"Line of credit","language":"en-US"},{"forObject":"us-gaap:LinesOfCreditCurrent","labelType":"xbrl:label","value":"Line of Credit, Current","language":"en-US"},{"forObject":"us-gaap:LondonInterbankOfferedRateLIBORMember","labelType":"xbrl:terseLabel","value":"London Interbank Offered Rate (LIBOR)","language":"en-US"},{"forObject":"us-gaap:LondonInterbankOfferedRateLIBORMember","labelType":"xbrl:label","value":"London Interbank Offered Rate (LIBOR) [Member]","language":"en-US"},{"forObject":"us-gaap:LossContingenciesLineItems","labelType":"xbrl:terseLabel","value":"Loss Contingencies [Line Items]","language":"en-US"},{"forObject":"us-gaap:LossContingenciesLineItems","labelType":"xbrl:label","value":"Loss Contingencies [Line Items]","language":"en-US"},{"forObject":"us-gaap:LossContingenciesTable","labelType":"xbrl:terseLabel","value":"Schedule of Commitments and Contingencies","language":"en-US"},{"forObject":"us-gaap:LossContingenciesTable","labelType":"xbrl:label","value":"Loss Contingencies [Table]","language":"en-US"},{"forObject":"us-gaap:MiddleEastMember","labelType":"xbrl:terseLabel","value":"Middle East","language":"en-US"},{"forObject":"us-gaap:MiddleEastMember","labelType":"xbrl:label","value":"Middle East [Member]","language":"en-US"},{"forObject":"us-gaap:MoneyMarketFundsMember","labelType":"xbrl:terseLabel","value":"Money market funds","language":"en-US"},{"forObject":"us-gaap:MoneyMarketFundsMember","labelType":"xbrl:label","value":"Money Market Funds [Member]","language":"en-US"},{"forObject":"us-gaap:MovementInStandardAndExtendedProductWarrantyIncreaseDecreaseRollForward","labelType":"xbrl:verboseLabel","value":"Product warranty activities [Roll Forward]","language":"en-US"},{"forObject":"us-gaap:MovementInStandardAndExtendedProductWarrantyIncreaseDecreaseRollForward","labelType":"xbrl:label","value":"Movement in Standard and Extended Product Warranty Accrual, Increase (Decrease) [Roll Forward]","language":"en-US"},{"forObject":"us-gaap:MovementInValuationAllowancesAndReservesRollForward","labelType":"xbrl:terseLabel","value":"SEC Schedule, 12-09, Movement in Valuation Allowances and Reserves [Roll Forward]","language":"en-US"},{"forObject":"us-gaap:MovementInValuationAllowancesAndReservesRollForward","labelType":"xbrl:label","value":"SEC Schedule, 12-09, Movement in Valuation Allowances and Reserves [Roll Forward]","language":"en-US"},{"forObject":"us-gaap:NetCashProvidedByUsedInFinancingActivities","labelType":"xbrl:totalLabel","value":"Net cash provided by financing activities","language":"en-US"},{"forObject":"us-gaap:NetCashProvidedByUsedInFinancingActivities","labelType":"xbrl:label","value":"Net Cash Provided by (Used in) Financing Activities","language":"en-US"},{"forObject":"us-gaap:NetCashProvidedByUsedInFinancingActivitiesAbstract","labelType":"xbrl:verboseLabel","value":"Financing activities:","language":"en-US"},{"forObject":"us-gaap:NetCashProvidedByUsedInFinancingActivitiesAbstract","labelType":"xbrl:label","value":"Net Cash Provided by (Used in) Financing Activities [Abstract]","language":"en-US"},{"forObject":"us-gaap:NetCashProvidedByUsedInInvestingActivities","labelType":"xbrl:totalLabel","value":"Net cash used in investing activities","language":"en-US"},{"forObject":"us-gaap:NetCashProvidedByUsedInInvestingActivities","labelType":"xbrl:label","value":"Net Cash Provided by (Used in) Investing Activities","language":"en-US"},{"forObject":"us-gaap:NetCashProvidedByUsedInInvestingActivitiesAbstract","labelType":"xbrl:verboseLabel","value":"Investing activities:","language":"en-US"},{"forObject":"us-gaap:NetCashProvidedByUsedInInvestingActivitiesAbstract","labelType":"xbrl:label","value":"Net Cash Provided by (Used in) Investing Activities [Abstract]","language":"en-US"},{"forObject":"us-gaap:NetCashProvidedByUsedInOperatingActivities","labelType":"xbrl:totalLabel","value":"Net cash provided by operating activities","language":"en-US"},{"forObject":"us-gaap:NetCashProvidedByUsedInOperatingActivities","labelType":"xbrl:label","value":"Net Cash Provided by (Used in) Operating Activities","language":"en-US"},{"forObject":"us-gaap:NetCashProvidedByUsedInOperatingActivitiesAbstract","labelType":"xbrl:verboseLabel","value":"Operating activities:","language":"en-US"},{"forObject":"us-gaap:NetCashProvidedByUsedInOperatingActivitiesAbstract","labelType":"xbrl:label","value":"Net Cash Provided by (Used in) Operating Activities [Abstract]","language":"en-US"},{"forObject":"us-gaap:NetIncomeLossAbstract","labelType":"xbrl:verboseLabel","value":"Numerator:","language":"en-US"},{"forObject":"us-gaap:NetIncomeLossAbstract","labelType":"xbrl:label","value":"Net Income (Loss) Attributable to Parent [Abstract]","language":"en-US"},{"forObject":"us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock","labelType":"xbrl:verboseLabel","value":"Recent Accounting Pronouncements","language":"en-US"},{"forObject":"us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock","labelType":"xbrl:label","value":"New Accounting Pronouncements, Policy [Policy Text Block]","language":"en-US"},{"forObject":"us-gaap:NoncashInvestingAndFinancingItemsAbstract","labelType":"xbrl:verboseLabel","value":"Non-cash investing activities:","language":"en-US"},{"forObject":"us-gaap:NoncashInvestingAndFinancingItemsAbstract","labelType":"xbrl:label","value":"Noncash Investing and Financing Items [Abstract]","language":"en-US"},{"forObject":"us-gaap:NonoperatingIncomeExpense","labelType":"xbrl:totalLabel","value":"Total interest and other expense, net","language":"en-US"},{"forObject":"us-gaap:NonoperatingIncomeExpense","labelType":"xbrl:label","value":"Nonoperating Income (Expense)","language":"en-US"},{"forObject":"us-gaap:NonoperatingIncomeExpenseAbstract","labelType":"xbrl:verboseLabel","value":"Interest and other expense, net:","language":"en-US"},{"forObject":"us-gaap:NonoperatingIncomeExpenseAbstract","labelType":"xbrl:label","value":"Nonoperating Income (Expense) [Abstract]","language":"en-US"},{"forObject":"us-gaap:OperatingExpenses","labelType":"xbrl:totalLabel","value":"Total operating expenses","language":"en-US"},{"forObject":"us-gaap:OperatingExpenses","labelType":"xbrl:label","value":"Operating Expenses","language":"en-US"},{"forObject":"us-gaap:OperatingExpensesAbstract","labelType":"xbrl:verboseLabel","value":"Operating expenses:","language":"en-US"},{"forObject":"us-gaap:OperatingExpensesAbstract","labelType":"xbrl:label","value":"Operating Expenses [Abstract]","language":"en-US"},{"forObject":"us-gaap:OperatingIncomeLoss","labelType":"xbrl:totalLabel","value":"Income (loss) from operations","language":"en-US"},{"forObject":"us-gaap:OperatingIncomeLoss","labelType":"xbrl:terseLabel","value":"Operating income (loss)","language":"en-US"},{"forObject":"us-gaap:OperatingIncomeLoss","labelType":"xbrl:label","value":"Operating Income (Loss)","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseCost","labelType":"xbrl:terseLabel","value":"Rent expense","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseCost","labelType":"xbrl:label","value":"Operating Lease, Cost","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseLiability","labelType":"xbrl:terseLabel","value":"Operating lease, liability","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseLiability","labelType":"xbrl:totalLabel","value":"Operating lease liability","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseLiability","labelType":"xbrl:label","value":"Operating Lease, Liability","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseLiabilityCurrent","labelType":"xbrl:verboseLabel","value":"Operating leases","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseLiabilityCurrent","labelType":"xbrl:terseLabel","value":"Accrued liabilities - current portion of operating leases","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseLiabilityCurrent","labelType":"xbrl:label","value":"Operating Lease, Liability, Current","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList","labelType":"xbrl:terseLabel","value":"Operating Lease, Liability, Current, Statement of Financial Position [Extensible List]","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList","labelType":"xbrl:label","value":"Operating Lease, Liability, Current, Statement of Financial Position [Extensible List]","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseLiabilityNoncurrent","labelType":"xbrl:verboseLabel","value":"Operating leases","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseLiabilityNoncurrent","labelType":"xbrl:terseLabel","value":"Operating leases","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseLiabilityNoncurrent","labelType":"xbrl:label","value":"Operating Lease, Liability, Noncurrent","language":"en-US"},{"forObject":"us-gaap:OperatingLeasePayments","labelType":"xbrl:terseLabel","value":"Operating lease, payments","language":"en-US"},{"forObject":"us-gaap:OperatingLeasePayments","labelType":"xbrl:label","value":"Operating Lease, Payments","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseRightOfUseAsset","labelType":"xbrl:terseLabel","value":"Right-of-use operating leases","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseRightOfUseAsset","labelType":"xbrl:verboseLabel","value":"Operating lease, right-of-use asset","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseRightOfUseAsset","labelType":"xbrl:label","value":"Operating Lease, Right-of-Use Asset","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent","labelType":"xbrl:terseLabel","value":"Operating lease, weighted average discount rate, percent","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent","labelType":"xbrl:label","value":"Operating Lease, Weighted Average Discount Rate, Percent","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1","labelType":"xbrl:terseLabel","value":"Operating lease, weighted average remaining lease term","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1","labelType":"xbrl:label","value":"Operating Lease, Weighted Average Remaining Lease Term","language":"en-US"},{"forObject":"us-gaap:OperatingLossCarryforwards","labelType":"xbrl:terseLabel","value":"Operating loss carryforward","language":"en-US"},{"forObject":"us-gaap:OperatingLossCarryforwards","labelType":"xbrl:label","value":"Operating Loss Carryforwards","language":"en-US"},{"forObject":"us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract","labelType":"xbrl:terseLabel","value":"Organization, Consolidation and Presentation of Financial Statements [Abstract]","language":"en-US"},{"forObject":"us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract","labelType":"xbrl:label","value":"Organization, Consolidation and Presentation of Financial Statements [Abstract]","language":"en-US"},{"forObject":"us-gaap:OtherAccruedLiabilitiesCurrent","labelType":"xbrl:verboseLabel","value":"Other","language":"en-US"},{"forObject":"us-gaap:OtherAccruedLiabilitiesCurrent","labelType":"xbrl:label","value":"Other Accrued Liabilities, Current","language":"en-US"},{"forObject":"us-gaap:OtherAssetsMiscellaneousNoncurrent","labelType":"xbrl:terseLabel","value":"Other long-term assets","language":"en-US"},{"forObject":"us-gaap:OtherAssetsMiscellaneousNoncurrent","labelType":"xbrl:label","value":"Other Assets, Miscellaneous, Noncurrent","language":"en-US"},{"forObject":"us-gaap:OtherAssetsNoncurrent","labelType":"xbrl:verboseLabel","value":"Other assets","language":"en-US"},{"forObject":"us-gaap:OtherAssetsNoncurrent","labelType":"xbrl:totalLabel","value":"Other assets","language":"en-US"},{"forObject":"us-gaap:OtherAssetsNoncurrent","labelType":"xbrl:label","value":"Other Assets, Noncurrent","language":"en-US"},{"forObject":"us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax","labelType":"xbrl:verboseLabel","value":"Other comprehensive income (loss), net of tax - foreign currency translation adjustments, net","language":"en-US"},{"forObject":"us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax","labelType":"xbrl:label","value":"Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax","language":"en-US"},{"forObject":"us-gaap:OtherComprehensiveIncomeLossNetOfTax","labelType":"xbrl:terseLabel","value":"Other comprehensive income (loss)","language":"en-US"},{"forObject":"us-gaap:OtherComprehensiveIncomeLossNetOfTax","labelType":"xbrl:label","value":"Other Comprehensive Income (Loss), Net of Tax","language":"en-US"},{"forObject":"us-gaap:OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract","labelType":"xbrl:verboseLabel","value":"Other comprehensive income (loss), net of tax:","language":"en-US"},{"forObject":"us-gaap:OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract","labelType":"xbrl:label","value":"Other Comprehensive Income (Loss), Net of Tax [Abstract]","language":"en-US"},{"forObject":"us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent","labelType":"xbrl:terseLabel","value":"Other comprehensive income (loss)","language":"en-US"},{"forObject":"us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent","labelType":"xbrl:label","value":"Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent","language":"en-US"},{"forObject":"us-gaap:OtherLiabilities","labelType":"xbrl:terseLabel","value":"Other liabilities","language":"en-US"},{"forObject":"us-gaap:OtherLiabilities","labelType":"xbrl:label","value":"Other Liabilities","language":"en-US"},{"forObject":"us-gaap:OtherLiabilitiesNoncurrent","labelType":"xbrl:verboseLabel","value":"Other long-term liabilities","language":"en-US"},{"forObject":"us-gaap:OtherLiabilitiesNoncurrent","labelType":"xbrl:label","value":"Other Liabilities, Noncurrent","language":"en-US"},{"forObject":"us-gaap:OtherNonoperatingIncomeExpense","labelType":"xbrl:verboseLabel","value":"Other income (expense), net","language":"en-US"},{"forObject":"us-gaap:OtherNonoperatingIncomeExpense","labelType":"xbrl:label","value":"Other Nonoperating Income (Expense)","language":"en-US"},{"forObject":"us-gaap:OverAllotmentOptionMember","labelType":"xbrl:terseLabel","value":"Over-Allotment Option","language":"en-US"},{"forObject":"us-gaap:OverAllotmentOptionMember","labelType":"xbrl:label","value":"Over-Allotment Option [Member]","language":"en-US"},{"forObject":"us-gaap:PaymentsForRestructuring","labelType":"xbrl:negatedTerseLabel","value":"Cash payments","language":"en-US"},{"forObject":"us-gaap:PaymentsForRestructuring","labelType":"xbrl:label","value":"Payments for Restructuring","language":"en-US"},{"forObject":"us-gaap:PaymentsOfDebtIssuanceCosts","labelType":"xbrl:negatedTerseLabel","value":"Payments to originate the line of credit","language":"en-US"},{"forObject":"us-gaap:PaymentsOfDebtIssuanceCosts","labelType":"xbrl:label","value":"Payments of Debt Issuance Costs","language":"en-US"},{"forObject":"us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation","labelType":"xbrl:negatedLabel","value":"Taxes paid for awards vested under equity incentive plan","language":"en-US"},{"forObject":"us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation","labelType":"xbrl:label","value":"Payment, Tax Withholding, Share-based Payment Arrangement","language":"en-US"},{"forObject":"us-gaap:PaymentsToAcquireMarketableSecurities","labelType":"xbrl:negatedTerseLabel","value":"Purchases of marketable securities","language":"en-US"},{"forObject":"us-gaap:PaymentsToAcquireMarketableSecurities","labelType":"xbrl:label","value":"Payments to Acquire Marketable Securities","language":"en-US"},{"forObject":"us-gaap:PaymentsToAcquirePropertyPlantAndEquipment","labelType":"xbrl:negatedLabel","value":"Purchases of property and equipment","language":"en-US"},{"forObject":"us-gaap:PaymentsToAcquirePropertyPlantAndEquipment","labelType":"xbrl:label","value":"Payments to Acquire Property, Plant, and Equipment","language":"en-US"},{"forObject":"us-gaap:PlanNameAxis","labelType":"xbrl:terseLabel","value":"Plan Name [Axis]","language":"en-US"},{"forObject":"us-gaap:PlanNameAxis","labelType":"xbrl:label","value":"Plan Name [Axis]","language":"en-US"},{"forObject":"us-gaap:PlanNameDomain","labelType":"xbrl:terseLabel","value":"Plan Name [Domain]","language":"en-US"},{"forObject":"us-gaap:PlanNameDomain","labelType":"xbrl:label","value":"Plan Name [Domain]","language":"en-US"},{"forObject":"us-gaap:PreferredStockParOrStatedValuePerShare","labelType":"xbrl:verboseLabel","value":"Preferred stock, par value (in dollars per share)","language":"en-US"},{"forObject":"us-gaap:PreferredStockParOrStatedValuePerShare","labelType":"xbrl:label","value":"Preferred Stock, Par or Stated Value Per Share","language":"en-US"},{"forObject":"us-gaap:PreferredStockSharesAuthorized","labelType":"xbrl:verboseLabel","value":"Preferred stock, shares authorized (in shares)","language":"en-US"},{"forObject":"us-gaap:PreferredStockSharesAuthorized","labelType":"xbrl:terseLabel","value":"Preferred Stock, Shares Authorized","language":"en-US"},{"forObject":"us-gaap:PreferredStockSharesAuthorized","labelType":"xbrl:label","value":"Preferred Stock, Shares Authorized","language":"en-US"},{"forObject":"us-gaap:PreferredStockSharesIssued","labelType":"xbrl:verboseLabel","value":"Preferred stock, shares issued (in shares)","language":"en-US"},{"forObject":"us-gaap:PreferredStockSharesIssued","labelType":"xbrl:terseLabel","value":"Preferred Stock, Shares Issued","language":"en-US"},{"forObject":"us-gaap:PreferredStockSharesIssued","labelType":"xbrl:label","value":"Preferred Stock, Shares Issued","language":"en-US"},{"forObject":"us-gaap:PreferredStockSharesOutstanding","labelType":"xbrl:verboseLabel","value":"Preferred stock, shares outstanding (in shares)","language":"en-US"},{"forObject":"us-gaap:PreferredStockSharesOutstanding","labelType":"xbrl:terseLabel","value":"Preferred Stock, Shares Outstanding","language":"en-US"},{"forObject":"us-gaap:PreferredStockSharesOutstanding","labelType":"xbrl:label","value":"Preferred Stock, Shares Outstanding","language":"en-US"},{"forObject":"us-gaap:PreferredStockValue","labelType":"xbrl:verboseLabel","value":"Preferred stock, $0.025 par value; 5,000 shares authorized; no shares issued and outstanding as of December 31, 2020 and 2019","language":"en-US"},{"forObject":"us-gaap:PreferredStockValue","labelType":"xbrl:label","value":"Preferred Stock, Value, Issued","language":"en-US"},{"forObject":"us-gaap:PrepaidExpenseAndOtherAssetsCurrent","labelType":"xbrl:verboseLabel","value":"Prepaid expenses and other current assets","language":"en-US"},{"forObject":"us-gaap:PrepaidExpenseAndOtherAssetsCurrent","labelType":"xbrl:label","value":"Prepaid Expense and Other Assets, Current","language":"en-US"},{"forObject":"us-gaap:PrimeRateMember","labelType":"xbrl:terseLabel","value":"Prime Rate","language":"en-US"},{"forObject":"us-gaap:PrimeRateMember","labelType":"xbrl:label","value":"Prime Rate [Member]","language":"en-US"},{"forObject":"us-gaap:ProceedsFromIssuanceOfCommonStock","labelType":"xbrl:terseLabel","value":"Proceeds from the sale of common stock in connection with public offering, net of expenses","language":"en-US"},{"forObject":"us-gaap:ProceedsFromIssuanceOfCommonStock","labelType":"xbrl:label","value":"Proceeds from Issuance of Common Stock","language":"en-US"},{"forObject":"us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans","labelType":"xbrl:verboseLabel","value":"Proceeds from employee stock purchase plans","language":"en-US"},{"forObject":"us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans","labelType":"xbrl:label","value":"Proceeds, Issuance of Shares, Share-based Payment Arrangement, Excluding Option Exercised","language":"en-US"},{"forObject":"us-gaap:ProceedsFromLinesOfCredit","labelType":"xbrl:terseLabel","value":"Proceeds from line of credit","language":"en-US"},{"forObject":"us-gaap:ProceedsFromLinesOfCredit","labelType":"xbrl:label","value":"Proceeds from Lines of Credit","language":"en-US"},{"forObject":"us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities","labelType":"xbrl:verboseLabel","value":"Maturities of marketable securities","language":"en-US"},{"forObject":"us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities","labelType":"xbrl:label","value":"Proceeds from Maturities, Prepayments and Calls of Debt Securities, Available-for-sale","language":"en-US"},{"forObject":"us-gaap:ProceedsFromStockOptionsExercised","labelType":"xbrl:verboseLabel","value":"Proceeds from exercise of stock options","language":"en-US"},{"forObject":"us-gaap:ProceedsFromStockOptionsExercised","labelType":"xbrl:label","value":"Proceeds from Stock Options Exercised","language":"en-US"},{"forObject":"us-gaap:ProductWarrantyAccrual","labelType":"xbrl:periodStartLabel","value":"Balance at beginning of period","language":"en-US"},{"forObject":"us-gaap:ProductWarrantyAccrual","labelType":"xbrl:periodEndLabel","value":"Balance at end of period","language":"en-US"},{"forObject":"us-gaap:ProductWarrantyAccrual","labelType":"xbrl:label","value":"Standard and Extended Product Warranty Accrual","language":"en-US"},{"forObject":"us-gaap:ProductWarrantyAccrualClassifiedCurrent","labelType":"xbrl:terseLabel","value":"Warranty and retrofit","language":"en-US"},{"forObject":"us-gaap:ProductWarrantyAccrualClassifiedCurrent","labelType":"xbrl:label","value":"Product Warranty Accrual, Current","language":"en-US"},{"forObject":"us-gaap:ProductWarrantyAccrualPayments","labelType":"xbrl:negatedLabel","value":"Utilization of reserve","language":"en-US"},{"forObject":"us-gaap:ProductWarrantyAccrualPayments","labelType":"xbrl:label","value":"Standard and Extended Product Warranty Accrual, Decrease for Payments","language":"en-US"},{"forObject":"us-gaap:ProductWarrantyAccrualWarrantiesIssued","labelType":"xbrl:verboseLabel","value":"Provision for warranty and retrofit charged to cost of revenue","language":"en-US"},{"forObject":"us-gaap:ProductWarrantyAccrualWarrantiesIssued","labelType":"xbrl:label","value":"Standard and Extended Product Warranty Accrual, Increase for Warranties Issued","language":"en-US"},{"forObject":"us-gaap:ProfitLoss","labelType":"xbrl:totalLabel","value":"Net loss","language":"en-US"},{"forObject":"us-gaap:ProfitLoss","labelType":"xbrl:terseLabel","value":"Net income (loss)","language":"en-US"},{"forObject":"us-gaap:ProfitLoss","labelType":"xbrl:verboseLabel","value":"Net income (loss)","language":"en-US"},{"forObject":"us-gaap:ProfitLoss","labelType":"xbrl:label","value":"Net Income (Loss), Including Portion Attributable to Noncontrolling Interest","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentByTypeAxis","labelType":"xbrl:terseLabel","value":"Property, Plant and Equipment, Type [Axis]","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentByTypeAxis","labelType":"xbrl:label","value":"Long-Lived Tangible Asset [Axis]","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentGross","labelType":"xbrl:verboseLabel","value":"Property and equipment, gross","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentGross","labelType":"xbrl:label","value":"Property, Plant and Equipment, Gross","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentLineItems","labelType":"xbrl:terseLabel","value":"Property, Plant and Equipment [Line Items]","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentLineItems","labelType":"xbrl:label","value":"Property, Plant and Equipment [Line Items]","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentNet","labelType":"xbrl:verboseLabel","value":"Property and equipment, net","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentNet","labelType":"xbrl:totalLabel","value":"Property and equipment, net","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentNet","labelType":"xbrl:label","value":"Property, Plant and Equipment, Net","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentPolicyTextBlock","labelType":"xbrl:terseLabel","value":"Property and Equipment","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentPolicyTextBlock","labelType":"xbrl:label","value":"Property, Plant and Equipment, Policy [Policy Text Block]","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentTextBlock","labelType":"xbrl:verboseLabel","value":"Property and Equipment, net","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentTextBlock","labelType":"xbrl:label","value":"Property, Plant and Equipment [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentTypeDomain","labelType":"xbrl:terseLabel","value":"Property, Plant and Equipment, Type [Domain]","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentTypeDomain","labelType":"xbrl:label","value":"Long-Lived Tangible Asset [Domain]","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentUsefulLife","labelType":"xbrl:terseLabel","value":"Useful life of property and equipment","language":"en-US"},{"forObject":"us-gaap:PropertyPlantAndEquipmentUsefulLife","labelType":"xbrl:label","value":"Property, Plant and Equipment, Useful Life","language":"en-US"},{"forObject":"us-gaap:PurchaseCommitmentRemainingMinimumAmountCommitted","labelType":"xbrl:terseLabel","value":"Purchase commitments","language":"en-US"},{"forObject":"us-gaap:PurchaseCommitmentRemainingMinimumAmountCommitted","labelType":"xbrl:label","value":"Purchase Commitment, Remaining Minimum Amount Committed","language":"en-US"},{"forObject":"us-gaap:PurchaseObligation","labelType":"xbrl:terseLabel","value":"Purchase obligation","language":"en-US"},{"forObject":"us-gaap:PurchaseObligation","labelType":"xbrl:label","value":"Purchase Obligation","language":"en-US"},{"forObject":"us-gaap:QuarterlyFinancialInformationDisclosureAbstract","labelType":"xbrl:terseLabel","value":"Quarterly Financial Information Disclosure [Abstract]","language":"en-US"},{"forObject":"us-gaap:QuarterlyFinancialInformationDisclosureAbstract","labelType":"xbrl:label","value":"Quarterly Financial Information Disclosure [Abstract]","language":"en-US"},{"forObject":"us-gaap:QuarterlyFinancialInformationTextBlock","labelType":"xbrl:terseLabel","value":"Quarterly Financial Data\u2014Unaudited","language":"en-US"},{"forObject":"us-gaap:QuarterlyFinancialInformationTextBlock","labelType":"xbrl:label","value":"Quarterly Financial Information [Text Block]","language":"en-US"},{"forObject":"us-gaap:ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy","labelType":"xbrl:terseLabel","value":"Allowance for Doubtful Accounts","language":"en-US"},{"forObject":"us-gaap:ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy","labelType":"xbrl:label","value":"Receivables, Trade and Other Accounts Receivable, Allowance for Doubtful Accounts, Policy [Policy Text Block]","language":"en-US"},{"forObject":"us-gaap:ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward","labelType":"xbrl:terseLabel","value":"Unrecognized Tax Benefits [Roll Forward]","language":"en-US"},{"forObject":"us-gaap:ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward","labelType":"xbrl:label","value":"Reconciliation of Unrecognized Tax Benefits, Excluding Amounts Pertaining to Examined Tax Returns [Roll Forward]","language":"en-US"},{"forObject":"us-gaap:RepaymentsOfLinesOfCredit","labelType":"xbrl:negatedTerseLabel","value":"Repayments of line of credit","language":"en-US"},{"forObject":"us-gaap:RepaymentsOfLinesOfCredit","labelType":"xbrl:label","value":"Repayments of Lines of Credit","language":"en-US"},{"forObject":"us-gaap:ResearchAndDevelopmentExpense","labelType":"xbrl:verboseLabel","value":"Research and development","language":"en-US"},{"forObject":"us-gaap:ResearchAndDevelopmentExpense","labelType":"xbrl:label","value":"Research and Development Expense","language":"en-US"},{"forObject":"us-gaap:ResearchAndDevelopmentExpenseMember","labelType":"xbrl:verboseLabel","value":"Research and development","language":"en-US"},{"forObject":"us-gaap:ResearchAndDevelopmentExpenseMember","labelType":"xbrl:label","value":"Research and Development Expense [Member]","language":"en-US"},{"forObject":"us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember","labelType":"xbrl:terseLabel","value":"Cash and Cash Equivalents [Domain]","language":"en-US"},{"forObject":"us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember","labelType":"xbrl:label","value":"Cash and Cash Equivalents [Domain]","language":"en-US"},{"forObject":"us-gaap:RestrictedCashCurrent","labelType":"xbrl:terseLabel","value":"Restricted cash","language":"en-US"},{"forObject":"us-gaap:RestrictedCashCurrent","labelType":"xbrl:verboseLabel","value":"Restricted cash","language":"en-US"},{"forObject":"us-gaap:RestrictedCashCurrent","labelType":"xbrl:label","value":"Restricted Cash, Current","language":"en-US"},{"forObject":"us-gaap:RestrictedStockUnitsRSUMember","labelType":"xbrl:terseLabel","value":"RSUs","language":"en-US"},{"forObject":"us-gaap:RestrictedStockUnitsRSUMember","labelType":"xbrl:label","value":"Restricted Stock Units (RSUs) [Member]","language":"en-US"},{"forObject":"us-gaap:RestructuringCharges","labelType":"xbrl:terseLabel","value":"Restructuring charges","language":"en-US"},{"forObject":"us-gaap:RestructuringCharges","labelType":"xbrl:label","value":"Restructuring Charges","language":"en-US"},{"forObject":"us-gaap:RestructuringCostAndReserveAxis","labelType":"xbrl:terseLabel","value":"Restructuring Type [Axis]","language":"en-US"},{"forObject":"us-gaap:RestructuringCostAndReserveAxis","labelType":"xbrl:label","value":"Restructuring Type [Axis]","language":"en-US"},{"forObject":"us-gaap:RestructuringCostAndReserveLineItems","labelType":"xbrl:terseLabel","value":"Restructuring Cost and Reserve [Line Items]","language":"en-US"},{"forObject":"us-gaap:RestructuringCostAndReserveLineItems","labelType":"xbrl:label","value":"Restructuring Cost and Reserve [Line Items]","language":"en-US"},{"forObject":"us-gaap:RestructuringPlanAxis","labelType":"xbrl:terseLabel","value":"Restructuring Plan [Axis]","language":"en-US"},{"forObject":"us-gaap:RestructuringPlanAxis","labelType":"xbrl:label","value":"Restructuring Plan [Axis]","language":"en-US"},{"forObject":"us-gaap:RestructuringPlanDomain","labelType":"xbrl:terseLabel","value":"Restructuring Plan [Domain]","language":"en-US"},{"forObject":"us-gaap:RestructuringPlanDomain","labelType":"xbrl:label","value":"Restructuring Plan [Domain]","language":"en-US"},{"forObject":"us-gaap:RestructuringReserve","labelType":"xbrl:periodStartLabel","value":"Balance as of March 28, 2020","language":"en-US"},{"forObject":"us-gaap:RestructuringReserve","labelType":"xbrl:periodEndLabel","value":"Balance as of December 31, 2020","language":"en-US"},{"forObject":"us-gaap:RestructuringReserve","labelType":"xbrl:label","value":"Restructuring Reserve","language":"en-US"},{"forObject":"us-gaap:RestructuringReserveRollForward","labelType":"xbrl:terseLabel","value":"Restructuring Reserve [Roll Forward]","language":"en-US"},{"forObject":"us-gaap:RestructuringReserveRollForward","labelType":"xbrl:label","value":"Restructuring Reserve [Roll Forward]","language":"en-US"},{"forObject":"us-gaap:RestructuringReserveSettledWithoutCash2","labelType":"xbrl:negatedTerseLabel","value":"Asset write-down","language":"en-US"},{"forObject":"us-gaap:RestructuringReserveSettledWithoutCash2","labelType":"xbrl:label","value":"Restructuring Reserve, Settled without Cash","language":"en-US"},{"forObject":"us-gaap:RetainedEarningsAccumulatedDeficit","labelType":"xbrl:verboseLabel","value":"Accumulated deficit","language":"en-US"},{"forObject":"us-gaap:RetainedEarningsAccumulatedDeficit","labelType":"xbrl:label","value":"Retained Earnings (Accumulated Deficit)","language":"en-US"},{"forObject":"us-gaap:RetainedEarningsMember","labelType":"xbrl:terseLabel","value":"Accumulated Deficit","language":"en-US"},{"forObject":"us-gaap:RetainedEarningsMember","labelType":"xbrl:verboseLabel","value":"Retained Earnings","language":"en-US"},{"forObject":"us-gaap:RetainedEarningsMember","labelType":"xbrl:label","value":"Retained Earnings [Member]","language":"en-US"},{"forObject":"us-gaap:RevenueFromContractWithCustomerAbstract","labelType":"xbrl:terseLabel","value":"Revenue from Contract with Customer [Abstract]","language":"en-US"},{"forObject":"us-gaap:RevenueFromContractWithCustomerAbstract","labelType":"xbrl:label","value":"Revenue from Contract with Customer [Abstract]","language":"en-US"},{"forObject":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","labelType":"xbrl:terseLabel","value":"Revenue","language":"en-US"},{"forObject":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","labelType":"xbrl:label","value":"Revenue from Contract with Customer, Including Assessed Tax","language":"en-US"},{"forObject":"us-gaap:RevenueFromContractWithCustomerMember","labelType":"xbrl:terseLabel","value":"Percentage of Revenue","language":"en-US"},{"forObject":"us-gaap:RevenueFromContractWithCustomerMember","labelType":"xbrl:label","value":"Revenue from Contract with Customer Benchmark [Member]","language":"en-US"},{"forObject":"us-gaap:RevenueFromContractWithCustomerPolicyTextBlock","labelType":"xbrl:terseLabel","value":"Contract Costs","language":"en-US"},{"forObject":"us-gaap:RevenueFromContractWithCustomerPolicyTextBlock","labelType":"xbrl:label","value":"Revenue from Contract with Customer [Policy Text Block]","language":"en-US"},{"forObject":"us-gaap:RevenueFromExternalCustomersByGeographicAreasTableTextBlock","labelType":"xbrl:terseLabel","value":"Revenue by Geographic Region","language":"en-US"},{"forObject":"us-gaap:RevenueFromExternalCustomersByGeographicAreasTableTextBlock","labelType":"xbrl:label","value":"Revenue from External Customers by Geographic Areas [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:RevenueRecognitionPolicyTextBlock","labelType":"xbrl:terseLabel","value":"Revenue Recognition","language":"en-US"},{"forObject":"us-gaap:RevenueRecognitionPolicyTextBlock","labelType":"xbrl:label","value":"Revenue [Policy Text Block]","language":"en-US"},{"forObject":"us-gaap:RevenueRemainingPerformanceObligation","labelType":"xbrl:terseLabel","value":"Performance obligations expected to be satisfied","language":"en-US"},{"forObject":"us-gaap:RevenueRemainingPerformanceObligation","labelType":"xbrl:label","value":"Revenue, Remaining Performance Obligation, Amount","language":"en-US"},{"forObject":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems","labelType":"xbrl:terseLabel","value":"Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]","language":"en-US"},{"forObject":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems","labelType":"xbrl:label","value":"Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]","language":"en-US"},{"forObject":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1","labelType":"xbrl:terseLabel","value":"Performance obligations expected to be satisfied, expected timing","language":"en-US"},{"forObject":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1","labelType":"xbrl:label","value":"Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period","language":"en-US"},{"forObject":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis","labelType":"xbrl:terseLabel","value":"Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]","language":"en-US"},{"forObject":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis","labelType":"xbrl:label","value":"Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]","language":"en-US"},{"forObject":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable","labelType":"xbrl:terseLabel","value":"Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Table]","language":"en-US"},{"forObject":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable","labelType":"xbrl:label","value":"Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Table]","language":"en-US"},{"forObject":"us-gaap:RevenueRemainingPerformanceObligationPercentage","labelType":"xbrl:terseLabel","value":"Remaining performance obligation, percentage","language":"en-US"},{"forObject":"us-gaap:RevenueRemainingPerformanceObligationPercentage","labelType":"xbrl:label","value":"Revenue, Remaining Performance Obligation, Percentage","language":"en-US"},{"forObject":"us-gaap:RevenuesAbstract","labelType":"xbrl:terseLabel","value":"Revenue:","language":"en-US"},{"forObject":"us-gaap:RevenuesAbstract","labelType":"xbrl:label","value":"Revenues [Abstract]","language":"en-US"},{"forObject":"us-gaap:RevenuesFromExternalCustomersAndLongLivedAssetsLineItems","labelType":"xbrl:terseLabel","value":"Revenues from External Customers and Long-Lived Assets [Line Items]","language":"en-US"},{"forObject":"us-gaap:RevenuesFromExternalCustomersAndLongLivedAssetsLineItems","labelType":"xbrl:label","value":"Revenues from External Customers and Long-Lived Assets [Line Items]","language":"en-US"},{"forObject":"us-gaap:RevolvingCreditFacilityMember","labelType":"xbrl:terseLabel","value":"Revolving Credit Facility","language":"en-US"},{"forObject":"us-gaap:RevolvingCreditFacilityMember","labelType":"xbrl:label","value":"Revolving Credit Facility [Member]","language":"en-US"},{"forObject":"us-gaap:RoyaltyGuaranteesCommitmentsAmount","labelType":"xbrl:terseLabel","value":"Royalty payment commitment amount","language":"en-US"},{"forObject":"us-gaap:RoyaltyGuaranteesCommitmentsAmount","labelType":"xbrl:label","value":"Royalty Guarantees, Commitments, Amount","language":"en-US"},{"forObject":"us-gaap:SaleOfStockConsiderationReceivedOnTransaction","labelType":"xbrl:terseLabel","value":"Aggregate net proceeds from stock offering","language":"en-US"},{"forObject":"us-gaap:SaleOfStockConsiderationReceivedOnTransaction","labelType":"xbrl:label","value":"Sale of Stock, Consideration Received on Transaction","language":"en-US"},{"forObject":"us-gaap:SaleOfStockNameOfTransactionDomain","labelType":"xbrl:terseLabel","value":"Sale of Stock [Domain]","language":"en-US"},{"forObject":"us-gaap:SaleOfStockNameOfTransactionDomain","labelType":"xbrl:label","value":"Sale of Stock [Domain]","language":"en-US"},{"forObject":"us-gaap:SaleOfStockNumberOfSharesIssuedInTransaction","labelType":"xbrl:terseLabel","value":"Shares sold in offering (in shares)","language":"en-US"},{"forObject":"us-gaap:SaleOfStockNumberOfSharesIssuedInTransaction","labelType":"xbrl:label","value":"Sale of Stock, Number of Shares Issued in Transaction","language":"en-US"},{"forObject":"us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock","labelType":"xbrl:verboseLabel","value":"Accounts Receivable, net","language":"en-US"},{"forObject":"us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock","labelType":"xbrl:label","value":"Schedule of Accounts, Notes, Loans and Financing Receivable [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock","labelType":"xbrl:verboseLabel","value":"Accrued Liabilities","language":"en-US"},{"forObject":"us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock","labelType":"xbrl:label","value":"Schedule of Accrued Liabilities [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock","labelType":"xbrl:terseLabel","value":"Schedule of Accumulated Other Comprehensive Income (Loss)","language":"en-US"},{"forObject":"us-gaap:ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock","labelType":"xbrl:label","value":"Schedule of Accumulated Other Comprehensive Income (Loss) [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfCashAndCashEquivalentsTable","labelType":"xbrl:terseLabel","value":"Schedule of Cash and Cash Equivalents [Table]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfCashAndCashEquivalentsTable","labelType":"xbrl:label","value":"Schedule of Cash and Cash Equivalents [Table]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfCashAndCashEquivalentsTableTextBlock","labelType":"xbrl:terseLabel","value":"Summary of cash and cash equivalents","language":"en-US"},{"forObject":"us-gaap:ScheduleOfCashAndCashEquivalentsTableTextBlock","labelType":"xbrl:label","value":"Schedule of Cash and Cash Equivalents [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock","labelType":"xbrl:terseLabel","value":"Schedule of Components of Income Tax Expense (Benefit)","language":"en-US"},{"forObject":"us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock","labelType":"xbrl:label","value":"Schedule of Components of Income Tax Expense (Benefit) [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock","labelType":"xbrl:terseLabel","value":"Schedule of Deferred Tax Assets and Liabilities","language":"en-US"},{"forObject":"us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock","labelType":"xbrl:label","value":"Schedule of Deferred Tax Assets and Liabilities [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock","labelType":"xbrl:verboseLabel","value":"Schedule of net loss per share","language":"en-US"},{"forObject":"us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock","labelType":"xbrl:label","value":"Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock","labelType":"xbrl:terseLabel","value":"Schedule of Effective Income Tax Rate Reconciliation","language":"en-US"},{"forObject":"us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock","labelType":"xbrl:label","value":"Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock","labelType":"xbrl:terseLabel","value":"Property and Equipment by Geographic Region","language":"en-US"},{"forObject":"us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock","labelType":"xbrl:label","value":"Schedule of Disclosure on Geographic Areas, Long-Lived Assets in Individual Foreign Countries by Country [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTable","labelType":"xbrl:terseLabel","value":"Schedule of Finite-Lived Intangible Assets [Table]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTable","labelType":"xbrl:label","value":"Schedule of Finite-Lived Intangible Assets [Table]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock","labelType":"xbrl:terseLabel","value":"Schedule of Future Minimum Rental Payments for Operating Leases","language":"en-US"},{"forObject":"us-gaap:ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock","labelType":"xbrl:label","value":"Schedule of Future Minimum Rental Payments for Operating Leases [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock","labelType":"xbrl:terseLabel","value":"Schedule of Income before Income Tax, Domestic and Foreign","language":"en-US"},{"forObject":"us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock","labelType":"xbrl:label","value":"Schedule of Income before Income Tax, Domestic and Foreign [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfInventoryCurrentTableTextBlock","labelType":"xbrl:verboseLabel","value":"Inventory","language":"en-US"},{"forObject":"us-gaap:ScheduleOfInventoryCurrentTableTextBlock","labelType":"xbrl:label","value":"Schedule of Inventory, Current [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfOtherAssetsNoncurrentTextBlock","labelType":"xbrl:terseLabel","value":"Schedule of Other Assets, Noncurrent","language":"en-US"},{"forObject":"us-gaap:ScheduleOfOtherAssetsNoncurrentTextBlock","labelType":"xbrl:label","value":"Schedule of Other Assets, Noncurrent [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock","labelType":"xbrl:verboseLabel","value":"Schedule of Product Warranty Liability","language":"en-US"},{"forObject":"us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock","labelType":"xbrl:label","value":"Schedule of Product Warranty Liability [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfPropertyPlantAndEquipmentTable","labelType":"xbrl:terseLabel","value":"Schedule of Property, Plant and Equipment [Table]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfPropertyPlantAndEquipmentTable","labelType":"xbrl:label","value":"Property, Plant and Equipment [Table]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock","labelType":"xbrl:terseLabel","value":"Schedule of Quarterly Financial Information","language":"en-US"},{"forObject":"us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock","labelType":"xbrl:label","value":"Quarterly Financial Information [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfRestructuringAndRelatedCostsTable","labelType":"xbrl:terseLabel","value":"Schedule of Restructuring and Related Costs [Table]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfRestructuringAndRelatedCostsTable","labelType":"xbrl:label","value":"Schedule of Restructuring and Related Costs [Table]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfRestructuringAndRelatedCostsTextBlock","labelType":"xbrl:terseLabel","value":"Restructuring and Related Costs","language":"en-US"},{"forObject":"us-gaap:ScheduleOfRestructuringAndRelatedCostsTextBlock","labelType":"xbrl:label","value":"Restructuring and Related Costs [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable","labelType":"xbrl:terseLabel","value":"Schedule of Revenues from External Customers and Long-Lived Assets [Table]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable","labelType":"xbrl:label","value":"Schedule of Revenues from External Customers and Long-Lived Assets [Table]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","labelType":"xbrl:terseLabel","value":"Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","labelType":"xbrl:label","value":"Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock","labelType":"xbrl:terseLabel","value":"Schedule of Stock Options Activity","language":"en-US"},{"forObject":"us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock","labelType":"xbrl:label","value":"Share-based Payment Arrangement, Option, Activity [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock","labelType":"xbrl:terseLabel","value":"Valuation Assumptions, ESPP","language":"en-US"},{"forObject":"us-gaap:ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock","labelType":"xbrl:label","value":"Schedule of Share-based Payment Award, Employee Stock Purchase Plan, Valuation Assumptions [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock","labelType":"xbrl:verboseLabel","value":"Valuation Assumptions, Stock Options","language":"en-US"},{"forObject":"us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock","labelType":"xbrl:label","value":"Schedule of Share-based Payment Award, Stock Options, Valuation Assumptions [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock","labelType":"xbrl:terseLabel","value":"Schedule of Restricted Stock and Restricted Stock Units Activity","language":"en-US"},{"forObject":"us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock","labelType":"xbrl:label","value":"Share-based Payment Arrangement, Restricted Stock and Restricted Stock Unit, Activity [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfUnrecognizedCompensationCostNonvestedAwardsTableTextBlock","labelType":"xbrl:terseLabel","value":"Schedule of Unrecognized Compensation Cost","language":"en-US"},{"forObject":"us-gaap:ScheduleOfUnrecognizedCompensationCostNonvestedAwardsTableTextBlock","labelType":"xbrl:label","value":"Share-based Payment Arrangement, Nonvested Award, Cost [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock","labelType":"xbrl:terseLabel","value":"Schedules of Concentration of Risk, by Risk Factor [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock","labelType":"xbrl:label","value":"Schedules of Concentration of Risk, by Risk Factor [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:SegmentReportingDisclosureTextBlock","labelType":"xbrl:terseLabel","value":"Revenue from Contracts with Customers","language":"en-US"},{"forObject":"us-gaap:SegmentReportingDisclosureTextBlock","labelType":"xbrl:label","value":"Segment Reporting Disclosure [Text Block]","language":"en-US"},{"forObject":"us-gaap:SellingAndMarketingExpense","labelType":"xbrl:verboseLabel","value":"Sales and marketing","language":"en-US"},{"forObject":"us-gaap:SellingAndMarketingExpense","labelType":"xbrl:label","value":"Selling and Marketing Expense","language":"en-US"},{"forObject":"us-gaap:SellingAndMarketingExpenseMember","labelType":"xbrl:verboseLabel","value":"Sales and marketing","language":"en-US"},{"forObject":"us-gaap:SellingAndMarketingExpenseMember","labelType":"xbrl:label","value":"Selling and Marketing Expense [Member]","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensation","labelType":"xbrl:verboseLabel","value":"Stock-based compensation","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensation","labelType":"xbrl:label","value":"Share-based Payment Arrangement, Noncash Expense","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardRequisiteServicePeriod1","labelType":"xbrl:terseLabel","value":"Award requisite service period","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardRequisiteServicePeriod1","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Award Requisite Service Period","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1","labelType":"xbrl:terseLabel","value":"Vesting period","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Period","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod","labelType":"xbrl:negatedTerseLabel","value":"Canceled","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Forfeited in Period","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue","labelType":"xbrl:terseLabel","value":"Canceled (in dollars per share)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Forfeitures, Weighted Average Grant Date Fair Value","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod","labelType":"xbrl:terseLabel","value":"Awards granted, shares","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod","labelType":"xbrl:verboseLabel","value":"Granted","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","labelType":"xbrl:terseLabel","value":"Granted (in dollars per share)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","labelType":"xbrl:verboseLabel","value":"Weighted-average grant date fair value per share","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber","labelType":"xbrl:periodStartLabel","value":"Outstanding, beginning","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber","labelType":"xbrl:periodEndLabel","value":"Outstanding, ending","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber","labelType":"xbrl:terseLabel","value":"Outstanding awards, instruments other than options","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Number","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward","labelType":"xbrl:terseLabel","value":"RSU, PRSU and RSA, Number of Shares:","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward]","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue","labelType":"xbrl:terseLabel","value":"Grant date fair value (in dollars per share)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue","labelType":"xbrl:periodStartLabel","value":"Outstanding, beginning (in dollars per share)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue","labelType":"xbrl:periodEndLabel","value":"Outstanding, ending (in dollars per share)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward","labelType":"xbrl:terseLabel","value":"RSU, PRSU and RSA, Weighted-Average Grant Date Fair Value Per Value:","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value [Abstract]","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod","labelType":"xbrl:negatedLabel","value":"Vested","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue","labelType":"xbrl:terseLabel","value":"Vested (in dollars per share)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period, Weighted Average Grant Date Fair Value","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract","labelType":"xbrl:verboseLabel","value":"Weighted average assumptions used to estimate fair value of stock options","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions and Methodology [Abstract]","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate","labelType":"xbrl:verboseLabel","value":"Expected dividend yield","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Expected Dividend Rate","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate","labelType":"xbrl:verboseLabel","value":"Expected volatility","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Expected Volatility Rate","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate","labelType":"xbrl:verboseLabel","value":"Risk-free interest rate","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Risk Free Interest Rate","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","labelType":"xbrl:terseLabel","value":"Share-based Compensation Arrangement by Share-based Payment Award [Line Items]","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award [Line Items]","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate","labelType":"xbrl:terseLabel","value":"Maximum employee subscription rate","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Maximum Employee Subscription Rate","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumNumberOfSharesPerEmployee","labelType":"xbrl:terseLabel","value":"Maximum number of shares employee can purchase during offering period","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumNumberOfSharesPerEmployee","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Maximum Number of Shares Per Employee","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized","labelType":"xbrl:terseLabel","value":"Number of additional shares authorized (in shares)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Number of Additional Shares Authorized","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized","labelType":"xbrl:terseLabel","value":"Number of shares authorized (in shares)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Authorized","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant","labelType":"xbrl:terseLabel","value":"Shares available for future grant","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant","labelType":"xbrl:verboseLabel","value":"Shares available for future grant under 2019 Plan","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Available for Grant","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber","labelType":"xbrl:terseLabel","value":"Stock options exercisable","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercisable, Number","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice","labelType":"xbrl:terseLabel","value":"Stock options exercisable (in dollars per share)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercisable, Weighted Average Exercise Price","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue","labelType":"xbrl:terseLabel","value":"Total intrinsic value for exercised stock options","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period, Intrinsic Value","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod","labelType":"xbrl:negatedTerseLabel","value":"Stock options forfeited","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Options, Forfeitures in Period","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross","labelType":"xbrl:verboseLabel","value":"Stock options granted","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Gross","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","labelType":"xbrl:terseLabel","value":"Weighted-average grant date fair value per share, stock options","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue","labelType":"xbrl:terseLabel","value":"Aggregate intrinsic value, stock options outstanding","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Intrinsic Value","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber","labelType":"xbrl:periodStartLabel","value":"Stock options outstanding, beginning","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber","labelType":"xbrl:periodEndLabel","value":"Stock options outstanding, ending","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber","labelType":"xbrl:terseLabel","value":"Stock options outstanding","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward","labelType":"xbrl:terseLabel","value":"Stock Options, Number of Shares:","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding [Roll Forward]","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice","labelType":"xbrl:periodStartLabel","value":"Stock options outstanding, beginning (in dollars per share)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice","labelType":"xbrl:periodEndLabel","value":"Stock options outstanding, ending (in dollars per share)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward","labelType":"xbrl:terseLabel","value":"Stock Options, Weighted-Average Exercise Price Per Share:","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue","labelType":"xbrl:terseLabel","value":"Aggregate intrinsic value, stock options vested and expected to vest","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested and Expected to Vest, Outstanding, Aggregate Intrinsic Value","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber","labelType":"xbrl:terseLabel","value":"Stock options vested and expected to vest","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested and Expected to Vest, Outstanding, Number","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice","labelType":"xbrl:terseLabel","value":"Stock options vested and expected to vest (in dollars per share)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested and Expected to Vest, Outstanding, Weighted Average Exercise Price","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod","labelType":"xbrl:terseLabel","value":"Shares issued in period","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Shares Issued in Period","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesPurchasedForAward","labelType":"xbrl:terseLabel","value":"Shares purchased for award","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesPurchasedForAward","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Shares Purchased for Award","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","labelType":"xbrl:terseLabel","value":"Award Type [Domain]","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","labelType":"xbrl:label","value":"Award Type [Domain]","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice","labelType":"xbrl:verboseLabel","value":"Stock options exercised (in dollars per share)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice","labelType":"xbrl:label","value":"Share-based Compensation Arrangements by Share-based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice","labelType":"xbrl:terseLabel","value":"Stock options forfeited (in dollars per share)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice","labelType":"xbrl:label","value":"Share-based Compensation Arrangements by Share-based Payment Award, Options, Forfeitures in Period, Weighted Average Exercise Price","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice","labelType":"xbrl:terseLabel","value":"Stock options granted (in dollars per share)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice","labelType":"xbrl:label","value":"Share-based Compensation Arrangements by Share-based Payment Award, Options, Grants in Period, Weighted Average Exercise Price","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationAwardTrancheOneMember","labelType":"xbrl:terseLabel","value":"Period One","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationAwardTrancheOneMember","labelType":"xbrl:label","value":"Share-based Payment Arrangement, Tranche One [Member]","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationAwardTrancheTwoMember","labelType":"xbrl:terseLabel","value":"Period Two","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationAwardTrancheTwoMember","labelType":"xbrl:label","value":"Share-based Payment Arrangement, Tranche Two [Member]","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy","labelType":"xbrl:terseLabel","value":"Stock-Based Compensation","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy","labelType":"xbrl:label","value":"Share-based Payment Arrangement [Policy Text Block]","language":"en-US"},{"forObject":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage","labelType":"xbrl:terseLabel","value":"Award vesting rights, percentage","language":"en-US"},{"forObject":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Rights, Percentage","language":"en-US"},{"forObject":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1","labelType":"xbrl:verboseLabel","value":"Expected life","language":"en-US"},{"forObject":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Expected Term","language":"en-US"},{"forObject":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1","labelType":"xbrl:terseLabel","value":"Aggregate intrinsic value, stock options exercisable","language":"en-US"},{"forObject":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercisable, Intrinsic Value","language":"en-US"},{"forObject":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1","labelType":"xbrl:terseLabel","value":"Weighted-average remaining contractual term, stock options exercisable","language":"en-US"},{"forObject":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercisable, Weighted Average Remaining Contractual Term","language":"en-US"},{"forObject":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2","labelType":"xbrl:terseLabel","value":"Weighted-average remaining contractual term, stock options outstanding","language":"en-US"},{"forObject":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Remaining Contractual Term","language":"en-US"},{"forObject":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1","labelType":"xbrl:terseLabel","value":"Weighted-average remaining contractual term, stock options vested and expected to vest","language":"en-US"},{"forObject":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested and Expected to Vest, Outstanding, Weighted Average Remaining Contractual Term","language":"en-US"},{"forObject":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1","labelType":"xbrl:terseLabel","value":"Total fair value of stock options vested","language":"en-US"},{"forObject":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested in Period, Fair Value","language":"en-US"},{"forObject":"us-gaap:ShareholdersEquityAndShareBasedPaymentsTextBlock","labelType":"xbrl:verboseLabel","value":"Stockholders' Equity","language":"en-US"},{"forObject":"us-gaap:ShareholdersEquityAndShareBasedPaymentsTextBlock","labelType":"xbrl:label","value":"Shareholders' Equity and Share-based Payments [Text Block]","language":"en-US"},{"forObject":"us-gaap:StandardProductWarrantyPolicy","labelType":"xbrl:terseLabel","value":"Warranty and Retrofit","language":"en-US"},{"forObject":"us-gaap:StandardProductWarrantyPolicy","labelType":"xbrl:label","value":"Standard Product Warranty, Policy [Policy Text Block]","language":"en-US"},{"forObject":"us-gaap:StateAndLocalJurisdictionMember","labelType":"xbrl:terseLabel","value":"State","language":"en-US"},{"forObject":"us-gaap:StateAndLocalJurisdictionMember","labelType":"xbrl:label","value":"State and Local Jurisdiction [Member]","language":"en-US"},{"forObject":"us-gaap:StatementEquityComponentsAxis","labelType":"xbrl:terseLabel","value":"Equity Components [Axis]","language":"en-US"},{"forObject":"us-gaap:StatementEquityComponentsAxis","labelType":"xbrl:label","value":"Equity Components [Axis]","language":"en-US"},{"forObject":"us-gaap:StatementLineItems","labelType":"xbrl:terseLabel","value":"Statement [Line Items]","language":"en-US"},{"forObject":"us-gaap:StatementLineItems","labelType":"xbrl:label","value":"Statement [Line Items]","language":"en-US"},{"forObject":"us-gaap:StatementOfCashFlowsAbstract","labelType":"xbrl:terseLabel","value":"Statement of Cash Flows [Abstract]","language":"en-US"},{"forObject":"us-gaap:StatementOfCashFlowsAbstract","labelType":"xbrl:label","value":"Statement of Cash Flows [Abstract]","language":"en-US"},{"forObject":"us-gaap:StatementOfFinancialPositionAbstract","labelType":"xbrl:terseLabel","value":"Statement of Financial Position [Abstract]","language":"en-US"},{"forObject":"us-gaap:StatementOfFinancialPositionAbstract","labelType":"xbrl:label","value":"Statement of Financial Position [Abstract]","language":"en-US"},{"forObject":"us-gaap:StatementOfStockholdersEquityAbstract","labelType":"xbrl:terseLabel","value":"Statement of Stockholders' Equity [Abstract]","language":"en-US"},{"forObject":"us-gaap:StatementOfStockholdersEquityAbstract","labelType":"xbrl:label","value":"Statement of Stockholders' Equity [Abstract]","language":"en-US"},{"forObject":"us-gaap:StatementTable","labelType":"xbrl:terseLabel","value":"Statement [Table]","language":"en-US"},{"forObject":"us-gaap:StatementTable","labelType":"xbrl:label","value":"Statement [Table]","language":"en-US"},{"forObject":"us-gaap:StockIssuedDuringPeriodSharesEmployeeStockOwnershipPlan","labelType":"xbrl:terseLabel","value":"Shares purchased under ESPP (in shares)","language":"en-US"},{"forObject":"us-gaap:StockIssuedDuringPeriodSharesEmployeeStockOwnershipPlan","labelType":"xbrl:label","value":"Stock Issued During Period, Shares, Employee Stock Ownership Plan","language":"en-US"},{"forObject":"us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans","labelType":"xbrl:terseLabel","value":"Stock issued under employee stock purchase plans, shares","language":"en-US"},{"forObject":"us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans","labelType":"xbrl:label","value":"Stock Issued During Period, Shares, Employee Stock Purchase Plans","language":"en-US"},{"forObject":"us-gaap:StockIssuedDuringPeriodSharesNewIssues","labelType":"xbrl:terseLabel","value":"Issuance of common stock in connection with public offering, net of expenses (in shares)","language":"en-US"},{"forObject":"us-gaap:StockIssuedDuringPeriodSharesNewIssues","labelType":"xbrl:label","value":"Stock Issued During Period, Shares, New Issues","language":"en-US"},{"forObject":"us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised","labelType":"xbrl:verboseLabel","value":"Exercise of stock options, shares","language":"en-US"},{"forObject":"us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised","labelType":"xbrl:negatedTerseLabel","value":"Stock options exercised","language":"en-US"},{"forObject":"us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised","labelType":"xbrl:label","value":"Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period","language":"en-US"},{"forObject":"us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan","labelType":"xbrl:terseLabel","value":"Stock issued under employee stock purchase plans","language":"en-US"},{"forObject":"us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan","labelType":"xbrl:label","value":"Stock Issued During Period, Value, Employee Stock Purchase Plan","language":"en-US"},{"forObject":"us-gaap:StockIssuedDuringPeriodValueNewIssues","labelType":"xbrl:terseLabel","value":"Issuance of common stock in connection with public offering, net of expenses","language":"en-US"},{"forObject":"us-gaap:StockIssuedDuringPeriodValueNewIssues","labelType":"xbrl:label","value":"Stock Issued During Period, Value, New Issues","language":"en-US"},{"forObject":"us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised","labelType":"xbrl:terseLabel","value":"Exercise of stock options","language":"en-US"},{"forObject":"us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised","labelType":"xbrl:label","value":"Stock Issued During Period, Value, Stock Options Exercised","language":"en-US"},{"forObject":"us-gaap:StockRepurchasedAndRetiredDuringPeriodValue","labelType":"xbrl:negatedTerseLabel","value":"Treasury stock retirement","language":"en-US"},{"forObject":"us-gaap:StockRepurchasedAndRetiredDuringPeriodValue","labelType":"xbrl:label","value":"Stock Repurchased and Retired During Period, Value","language":"en-US"},{"forObject":"us-gaap:StockholdersEquity","labelType":"xbrl:totalLabel","value":"Total stockholders\u2019 equity","language":"en-US"},{"forObject":"us-gaap:StockholdersEquity","labelType":"xbrl:periodStartLabel","value":"Balance at beginning of period","language":"en-US"},{"forObject":"us-gaap:StockholdersEquity","labelType":"xbrl:periodEndLabel","value":"Balance at end of period","language":"en-US"},{"forObject":"us-gaap:StockholdersEquity","labelType":"xbrl:label","value":"Stockholders' Equity Attributable to Parent","language":"en-US"},{"forObject":"us-gaap:StockholdersEquityAbstract","labelType":"xbrl:verboseLabel","value":"Stockholders\u2019 equity:","language":"en-US"},{"forObject":"us-gaap:StockholdersEquityAbstract","labelType":"xbrl:label","value":"Stockholders' Equity Attributable to Parent [Abstract]","language":"en-US"},{"forObject":"us-gaap:StockholdersEquityNoteAbstract","labelType":"xbrl:terseLabel","value":"Stockholders' Equity Note [Abstract]","language":"en-US"},{"forObject":"us-gaap:StockholdersEquityNoteAbstract","labelType":"xbrl:label","value":"Stockholders' Equity Note [Abstract]","language":"en-US"},{"forObject":"us-gaap:SubsequentEventMember","labelType":"xbrl:terseLabel","value":"Subsequent Event","language":"en-US"},{"forObject":"us-gaap:SubsequentEventMember","labelType":"xbrl:label","value":"Subsequent Event [Member]","language":"en-US"},{"forObject":"us-gaap:SubsequentEventTypeAxis","labelType":"xbrl:terseLabel","value":"Subsequent Event Type [Axis]","language":"en-US"},{"forObject":"us-gaap:SubsequentEventTypeAxis","labelType":"xbrl:label","value":"Subsequent Event Type [Axis]","language":"en-US"},{"forObject":"us-gaap:SubsequentEventTypeDomain","labelType":"xbrl:terseLabel","value":"Subsequent Event Type [Domain]","language":"en-US"},{"forObject":"us-gaap:SubsequentEventTypeDomain","labelType":"xbrl:label","value":"Subsequent Event Type [Domain]","language":"en-US"},{"forObject":"us-gaap:SubsidiarySaleOfStockAxis","labelType":"xbrl:terseLabel","value":"Sale of Stock [Axis]","language":"en-US"},{"forObject":"us-gaap:SubsidiarySaleOfStockAxis","labelType":"xbrl:label","value":"Sale of Stock [Axis]","language":"en-US"},{"forObject":"us-gaap:SummaryOfIncomeTaxContingenciesTextBlock","labelType":"xbrl:terseLabel","value":"Unrecognized Tax Benefits Activity","language":"en-US"},{"forObject":"us-gaap:SummaryOfIncomeTaxContingenciesTextBlock","labelType":"xbrl:label","value":"Summary of Income Tax Contingencies [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:SupplementalBalanceSheetDisclosuresTextBlock","labelType":"xbrl:verboseLabel","value":"Balance Sheet Details","language":"en-US"},{"forObject":"us-gaap:SupplementalBalanceSheetDisclosuresTextBlock","labelType":"xbrl:label","value":"Supplemental Balance Sheet Disclosures [Text Block]","language":"en-US"},{"forObject":"us-gaap:SupplementalCashFlowInformationAbstract","labelType":"xbrl:terseLabel","value":"Supplemental disclosures of cash flow information:","language":"en-US"},{"forObject":"us-gaap:SupplementalCashFlowInformationAbstract","labelType":"xbrl:label","value":"Supplemental Cash Flow Information [Abstract]","language":"en-US"},{"forObject":"us-gaap:TaxCreditCarryforwardAmount","labelType":"xbrl:terseLabel","value":"Tax credit carryforwards","language":"en-US"},{"forObject":"us-gaap:TaxCreditCarryforwardAmount","labelType":"xbrl:verboseLabel","value":"Research and development credits","language":"en-US"},{"forObject":"us-gaap:TaxCreditCarryforwardAmount","labelType":"xbrl:label","value":"Tax Credit Carryforward, Amount","language":"en-US"},{"forObject":"us-gaap:TechnologyServiceMember","labelType":"xbrl:terseLabel","value":"Services","language":"en-US"},{"forObject":"us-gaap:TechnologyServiceMember","labelType":"xbrl:label","value":"Technology Service [Member]","language":"en-US"},{"forObject":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","labelType":"xbrl:terseLabel","value":"Financial Instruments [Domain]","language":"en-US"},{"forObject":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","labelType":"xbrl:label","value":"Financial Instruments [Domain]","language":"en-US"},{"forObject":"us-gaap:TreasuryStockMember","labelType":"xbrl:terseLabel","value":"Treasury Stock","language":"en-US"},{"forObject":"us-gaap:TreasuryStockMember","labelType":"xbrl:label","value":"Treasury Stock [Member]","language":"en-US"},{"forObject":"us-gaap:TreasuryStockRetiredCostMethodAmount","labelType":"xbrl:terseLabel","value":"Treasury stock retired, value","language":"en-US"},{"forObject":"us-gaap:TreasuryStockRetiredCostMethodAmount","labelType":"xbrl:label","value":"Treasury Stock, Retired, Cost Method, Amount","language":"en-US"},{"forObject":"us-gaap:TreasuryStockShares","labelType":"xbrl:terseLabel","value":"Treasury stock (in shares)","language":"en-US"},{"forObject":"us-gaap:TreasuryStockShares","labelType":"xbrl:label","value":"Treasury Stock, Shares","language":"en-US"},{"forObject":"us-gaap:TreasuryStockSharesRetired","labelType":"xbrl:terseLabel","value":"Treasury stock retired (in shares)","language":"en-US"},{"forObject":"us-gaap:TreasuryStockSharesRetired","labelType":"xbrl:label","value":"Treasury Stock, Shares, Retired","language":"en-US"},{"forObject":"us-gaap:TreasuryStockValue","labelType":"xbrl:negatedTerseLabel","value":"Treasury stock, no shares as of December 31, 2020 and 5,330 shares as of December 31, 2019","language":"en-US"},{"forObject":"us-gaap:TreasuryStockValue","labelType":"xbrl:label","value":"Treasury Stock, Value","language":"en-US"},{"forObject":"us-gaap:TypeOfAdoptionMember","labelType":"xbrl:terseLabel","value":"Type of Adoption [Domain]","language":"en-US"},{"forObject":"us-gaap:TypeOfAdoptionMember","labelType":"xbrl:label","value":"Accounting Standards Update [Domain]","language":"en-US"},{"forObject":"us-gaap:TypeOfRestructuringDomain","labelType":"xbrl:terseLabel","value":"Type of Restructuring [Domain]","language":"en-US"},{"forObject":"us-gaap:TypeOfRestructuringDomain","labelType":"xbrl:label","value":"Type of Restructuring [Domain]","language":"en-US"},{"forObject":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember","labelType":"xbrl:netLabel","value":"U.S. government securities","language":"en-US"},{"forObject":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember","labelType":"xbrl:terseLabel","value":"Marketable securities: U.S. government securities","language":"en-US"},{"forObject":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember","labelType":"xbrl:label","value":"US Government Agencies Debt Securities [Member]","language":"en-US"},{"forObject":"us-gaap:UnrecognizedTaxBenefits","labelType":"xbrl:periodStartLabel","value":"Balance at beginning of year","language":"en-US"},{"forObject":"us-gaap:UnrecognizedTaxBenefits","labelType":"xbrl:periodEndLabel","value":"Balance at end of year","language":"en-US"},{"forObject":"us-gaap:UnrecognizedTaxBenefits","labelType":"xbrl:terseLabel","value":"Unrecognized tax benefits","language":"en-US"},{"forObject":"us-gaap:UnrecognizedTaxBenefits","labelType":"xbrl:label","value":"Unrecognized Tax Benefits","language":"en-US"},{"forObject":"us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions","labelType":"xbrl:negatedTerseLabel","value":"Reduction for tax positions related to prior year","language":"en-US"},{"forObject":"us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions","labelType":"xbrl:label","value":"Unrecognized Tax Benefits, Decrease Resulting from Prior Period Tax Positions","language":"en-US"},{"forObject":"us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued","labelType":"xbrl:terseLabel","value":"Accrued interest or penalties for uncertain income tax","language":"en-US"},{"forObject":"us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued","labelType":"xbrl:label","value":"Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued","language":"en-US"},{"forObject":"us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions","labelType":"xbrl:terseLabel","value":"Additions for tax positions related to current year","language":"en-US"},{"forObject":"us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions","labelType":"xbrl:label","value":"Unrecognized Tax Benefits, Increase Resulting from Current Period Tax Positions","language":"en-US"},{"forObject":"us-gaap:UseOfEstimates","labelType":"xbrl:terseLabel","value":"Use of Estimates","language":"en-US"},{"forObject":"us-gaap:UseOfEstimates","labelType":"xbrl:label","value":"Use of Estimates, Policy [Policy Text Block]","language":"en-US"},{"forObject":"us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount","labelType":"xbrl:terseLabel","value":"Increase (decrease) in valuation allowance","language":"en-US"},{"forObject":"us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount","labelType":"xbrl:label","value":"Valuation Allowance, Deferred Tax Asset, Increase (Decrease), Amount","language":"en-US"},{"forObject":"us-gaap:ValuationAllowancesAndReservesBalance","labelType":"xbrl:periodStartLabel","value":"Balance at Beginning of Year","language":"en-US"},{"forObject":"us-gaap:ValuationAllowancesAndReservesBalance","labelType":"xbrl:periodEndLabel","value":"Balance at End of Year","language":"en-US"},{"forObject":"us-gaap:ValuationAllowancesAndReservesBalance","labelType":"xbrl:label","value":"SEC Schedule, 12-09, Valuation Allowances and Reserves, Amount","language":"en-US"},{"forObject":"us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense","labelType":"xbrl:terseLabel","value":"Additions Charged to Costs or Expenses or Revenue","language":"en-US"},{"forObject":"us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense","labelType":"xbrl:label","value":"SEC Schedule, 12-09, Valuation Allowances and Reserves, Additions, Charge to Cost and Expense","language":"en-US"},{"forObject":"us-gaap:ValuationAllowancesAndReservesDeductions","labelType":"xbrl:negatedTerseLabel","value":"Deductions and Write Offs","language":"en-US"},{"forObject":"us-gaap:ValuationAllowancesAndReservesDeductions","labelType":"xbrl:label","value":"SEC Schedule, 12-09, Valuation Allowances and Reserves, Deduction","language":"en-US"},{"forObject":"us-gaap:ValuationAllowancesAndReservesDomain","labelType":"xbrl:terseLabel","value":"SEC Schedule, 12-09, Valuation Allowances and Reserves [Domain]","language":"en-US"},{"forObject":"us-gaap:ValuationAllowancesAndReservesDomain","labelType":"xbrl:label","value":"SEC Schedule, 12-09, Valuation Allowances and Reserves [Domain]","language":"en-US"},{"forObject":"us-gaap:ValuationAllowancesAndReservesTypeAxis","labelType":"xbrl:terseLabel","value":"SEC Schedule, 12-09, Valuation Allowances and Reserves Type [Axis]","language":"en-US"},{"forObject":"us-gaap:ValuationAllowancesAndReservesTypeAxis","labelType":"xbrl:label","value":"SEC Schedule, 12-09, Valuation Allowances and Reserves Type [Axis]","language":"en-US"},{"forObject":"us-gaap:VariableRateAxis","labelType":"xbrl:terseLabel","value":"Variable Rate [Axis]","language":"en-US"},{"forObject":"us-gaap:VariableRateAxis","labelType":"xbrl:label","value":"Variable Rate [Axis]","language":"en-US"},{"forObject":"us-gaap:VariableRateDomain","labelType":"xbrl:terseLabel","value":"Variable Rate [Domain]","language":"en-US"},{"forObject":"us-gaap:VariableRateDomain","labelType":"xbrl:label","value":"Variable Rate [Domain]","language":"en-US"},{"forObject":"us-gaap:VestingAxis","labelType":"xbrl:terseLabel","value":"Vesting [Axis]","language":"en-US"},{"forObject":"us-gaap:VestingAxis","labelType":"xbrl:label","value":"Vesting [Axis]","language":"en-US"},{"forObject":"us-gaap:VestingDomain","labelType":"xbrl:terseLabel","value":"Vesting [Domain]","language":"en-US"},{"forObject":"us-gaap:VestingDomain","labelType":"xbrl:label","value":"Vesting [Domain]","language":"en-US"},{"forObject":"us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding","labelType":"xbrl:terseLabel","value":"Diluted (in shares)","language":"en-US"},{"forObject":"us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding","labelType":"xbrl:totalLabel","value":"Weighted-average common shares - diluted (in shares)","language":"en-US"},{"forObject":"us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding","labelType":"xbrl:label","value":"Weighted Average Number of Shares Outstanding, Diluted","language":"en-US"},{"forObject":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasic","labelType":"xbrl:terseLabel","value":"Basic (in shares)","language":"en-US"},{"forObject":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasic","labelType":"xbrl:verboseLabel","value":"Weighted-average common shares - basic (in shares)","language":"en-US"},{"forObject":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasic","labelType":"xbrl:label","value":"Weighted Average Number of Shares Outstanding, Basic","language":"en-US"},{"forObject":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasicAbstract","labelType":"xbrl:verboseLabel","value":"Denominator:","language":"en-US"},{"forObject":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasicAbstract","labelType":"xbrl:label","value":"Weighted Average Number of Shares Outstanding, Basic [Abstract]","language":"en-US"},{"forObject":"cik:0001406666","labelType":"xbrl:label","value":"CALIX, INC","language":"en-US"},{"forObject":"rpt:group-0","labelType":"xbrl:label","value":"2146109 - Disclosure - Accumulated Other Comprehensive Loss","language":"en-US"},{"forObject":"rpt:group-1","labelType":"xbrl:label","value":"2448432 - Disclosure - Accumulated Other Comprehensive Loss (Details)","language":"en-US"},{"forObject":"rpt:group-2","labelType":"xbrl:label","value":"2347306 - Disclosure - Accumulated Other Comprehensive Loss (Tables)","language":"en-US"},{"forObject":"rpt:group-3","labelType":"xbrl:label","value":"2113104 - Disclosure - Balance Sheet Details","language":"en-US"},{"forObject":"rpt:group-4","labelType":"xbrl:label","value":"2415407 - Disclosure - Balance Sheet Details - Accounts Receivable (Details)","language":"en-US"},{"forObject":"rpt:group-5","labelType":"xbrl:label","value":"2421413 - Disclosure - Balance Sheet Details - Accrued Liabilities (Details)","language":"en-US"},{"forObject":"rpt:group-6","labelType":"xbrl:label","value":"2416408 - Disclosure - Balance Sheet Details - Allowance and Product Return Reserve (Details)","language":"en-US"},{"forObject":"rpt:group-7","labelType":"xbrl:label","value":"2420412 - Disclosure - Balance Sheet Details - Capitalized Cloud Implementation Costs (Details)","language":"en-US"},{"forObject":"rpt:group-8","labelType":"xbrl:label","value":"2417409 - Disclosure - Balance Sheet Details - Inventory (Details)","language":"en-US"},{"forObject":"rpt:group-9","labelType":"xbrl:label","value":"2419411 - Disclosure - Balance Sheet Details - Loss on Asset Retirement (Details)","language":"en-US"},{"forObject":"rpt:group-10","labelType":"xbrl:label","value":"2422414 - Disclosure - Balance Sheet Details - Product Warranty Activity (Details)","language":"en-US"},{"forObject":"rpt:group-11","labelType":"xbrl:label","value":"2418410 - Disclosure - Balance Sheet Details - Property and Equipment, net (Details)","language":"en-US"},{"forObject":"rpt:group-12","labelType":"xbrl:label","value":"2423415 - Disclosure - Balance Sheet Details - Restructuring (Details)","language":"en-US"},{"forObject":"rpt:group-13","labelType":"xbrl:label","value":"2314303 - Disclosure - Balance Sheet Details (Tables)","language":"en-US"},{"forObject":"rpt:group-14","labelType":"xbrl:label","value":"2107102 - Disclosure - Cash, Cash Equivalents, Restricted Cash and Marketable Securities","language":"en-US"},{"forObject":"rpt:group-15","labelType":"xbrl:label","value":"2409405 - Disclosure - Cash, Cash Equivalents, Restricted Cash and Marketable Securities (Details)","language":"en-US"},{"forObject":"rpt:group-16","labelType":"xbrl:label","value":"2308301 - Disclosure - Cash, Cash Equivalents, Restricted Cash and Marketable Securities (Tables)","language":"en-US"},{"forObject":"rpt:group-17","labelType":"xbrl:label","value":"2127106 - Disclosure - Commitments and Contingencies","language":"en-US"},{"forObject":"rpt:group-18","labelType":"xbrl:label","value":"2429418 - Disclosure - Commitments and Contingencies - Operating Lease (Details)","language":"en-US"},{"forObject":"rpt:group-19","labelType":"xbrl:label","value":"2430419 - Disclosure - Commitments and Contingencies - Operating Lease Liability (Details)","language":"en-US"},{"forObject":"rpt:group-20","labelType":"xbrl:label","value":"2328304 - Disclosure - Commitments and Contingencies (Tables)","language":"en-US"},{"forObject":"rpt:group-21","labelType":"xbrl:label","value":"2431420 - Disclosure - Commitments and Contingencies - Textual (Details)","language":"en-US"},{"forObject":"rpt:group-22","labelType":"xbrl:label","value":"1001002 - Statement - Consolidated Balance Sheets","language":"en-US"},{"forObject":"rpt:group-23","labelType":"xbrl:label","value":"1002003 - Statement - Consolidated Balance Sheets (Parenthetical)","language":"en-US"},{"forObject":"rpt:group-24","labelType":"xbrl:label","value":"1005006 - Statement - Consolidated Statements of Cash Flows","language":"en-US"},{"forObject":"rpt:group-25","labelType":"xbrl:label","value":"1003004 - Statement - Consolidated Statements of Comprehensive Income (Loss)","language":"en-US"},{"forObject":"rpt:group-26","labelType":"xbrl:label","value":"1004005 - Statement - Consolidated Statements of Stockholders' Equity","language":"en-US"},{"forObject":"rpt:group-27","labelType":"xbrl:label","value":"0001001 - Document - Cover","language":"en-US"},{"forObject":"rpt:group-28","labelType":"xbrl:label","value":"2124105 - Disclosure - Credit Agreements","language":"en-US"},{"forObject":"rpt:group-29","labelType":"xbrl:label","value":"2426417 - Disclosure - Credit Agreements - Financing Arrangements (Details)","language":"en-US"},{"forObject":"rpt:group-30","labelType":"xbrl:label","value":"2425416 - Disclosure - Credit Agreements - Line of Credit (Details)","language":"en-US"},{"forObject":"rpt:group-31","labelType":"xbrl:label","value":"2101101 - Disclosure - Description of Business and Significant Accounting Policies","language":"en-US"},{"forObject":"rpt:group-32","labelType":"xbrl:label","value":"2406404 - Disclosure - Description of Business and Significant Accounting Policies - Additional Information (Detail)","language":"en-US"},{"forObject":"rpt:group-33","labelType":"xbrl:label","value":"2404402 - Disclosure - Description of Business and Significant Accounting Policies - Contract Costs (Details)","language":"en-US"},{"forObject":"rpt:group-34","labelType":"xbrl:label","value":"2403401 - Disclosure - Description of Business and Significant Accounting Policies - Customer Concentration Risk (Details)","language":"en-US"},{"forObject":"rpt:group-35","labelType":"xbrl:label","value":"2202201 - Disclosure - Description of Business and Significant Accounting Policies (Policies)","language":"en-US"},{"forObject":"rpt:group-36","labelType":"xbrl:label","value":"2405403 - Disclosure - Description of Business and Significant Accounting Policies - Useful Lives of Property and Equipment (Details)","language":"en-US"},{"forObject":"rpt:group-37","labelType":"xbrl:label","value":"2144108 - Disclosure - Employee Benefit Plan","language":"en-US"},{"forObject":"rpt:group-38","labelType":"xbrl:label","value":"2445431 - Disclosure - Employee Benefit Plan (Details)","language":"en-US"},{"forObject":"rpt:group-39","labelType":"xbrl:label","value":"2110103 - Disclosure - Fair Value Measurements","language":"en-US"},{"forObject":"rpt:group-40","labelType":"xbrl:label","value":"2412406 - Disclosure - Fair Value Measurements (Details)","language":"en-US"},{"forObject":"rpt:group-41","labelType":"xbrl:label","value":"2311302 - Disclosure - Fair Value Measurements (Tables)","language":"en-US"},{"forObject":"rpt:group-42","labelType":"xbrl:label","value":"2149110 - Disclosure - Income Taxes","language":"en-US"},{"forObject":"rpt:group-43","labelType":"xbrl:label","value":"2454436 - Disclosure - Income Taxes - Components of Deferred Tax Assets and Liabilities (Details)","language":"en-US"},{"forObject":"rpt:group-44","labelType":"xbrl:label","value":"2452434 - Disclosure - Income Taxes - Components of Income Tax Provision (Details)","language":"en-US"},{"forObject":"rpt:group-45","labelType":"xbrl:label","value":"2453435 - Disclosure - Income Taxes - Income Tax Rate Reconciliation (Details)","language":"en-US"},{"forObject":"rpt:group-46","labelType":"xbrl:label","value":"2451433 - Disclosure - Income Taxes - Loss before Provision for Income Taxes (Details)","language":"en-US"},{"forObject":"rpt:group-47","labelType":"xbrl:label","value":"2350307 - Disclosure - Income Taxes (Tables)","language":"en-US"},{"forObject":"rpt:group-48","labelType":"xbrl:label","value":"2456438 - Disclosure - Income Taxes - Textual (Details)","language":"en-US"},{"forObject":"rpt:group-49","labelType":"xbrl:label","value":"2455437 - Disclosure - Income Taxes - Unrecognized Tax Benefits Activity (Details)","language":"en-US"},{"forObject":"rpt:group-50","labelType":"xbrl:label","value":"2157111 - Disclosure - Net Income (Loss) Per Common Share","language":"en-US"},{"forObject":"rpt:group-51","labelType":"xbrl:label","value":"2459439 - Disclosure - Net Income (Loss) Per Common Share - Basic and Diluted Shares Calculation (Details)","language":"en-US"},{"forObject":"rpt:group-52","labelType":"xbrl:label","value":"2358308 - Disclosure - Net Income (Loss) Per Common Share (Tables)","language":"en-US"},{"forObject":"rpt:group-53","labelType":"xbrl:label","value":"2168113 - Disclosure - Product Line Divestiture","language":"en-US"},{"forObject":"rpt:group-54","labelType":"xbrl:label","value":"2469446 - Disclosure - Product Line Divestiture (Details)","language":"en-US"},{"forObject":"rpt:group-55","labelType":"xbrl:label","value":"2170114 - Disclosure - Quarterly Financial Data\u2014Unaudited","language":"en-US"},{"forObject":"rpt:group-56","labelType":"xbrl:label","value":"2472447 - Disclosure - Quarterly Financial Data\u2014Unaudited (Details)","language":"en-US"},{"forObject":"rpt:group-57","labelType":"xbrl:label","value":"2371310 - Disclosure - Quarterly Financial Data\u2014Unaudited (Tables)","language":"en-US"},{"forObject":"rpt:group-58","labelType":"xbrl:label","value":"2160112 - Disclosure - Revenue from Contracts with Customers","language":"en-US"},{"forObject":"rpt:group-59","labelType":"xbrl:label","value":"2467445 - Disclosure - Revenue from Contracts with Customers - Concentration Risk (Details)","language":"en-US"},{"forObject":"rpt:group-60","labelType":"xbrl:label","value":"2466444 - Disclosure - Revenue from Contracts with Customers - Contract Assets and Liabilities (Details)","language":"en-US"},{"forObject":"rpt:group-61","labelType":"xbrl:label","value":"2464442 - Disclosure - Revenue from Contracts with Customers - Contract Costs (Details)","language":"en-US"},{"forObject":"rpt:group-62","labelType":"xbrl:label","value":"2465443 - Disclosure - Revenue from Contracts with Customers - Performance Obligation (Details)","language":"en-US"},{"forObject":"rpt:group-63","labelType":"xbrl:label","value":"2463441 - Disclosure - Revenue from Contracts with Customers - Property and Equipment by Geographic Region (Details)","language":"en-US"},{"forObject":"rpt:group-64","labelType":"xbrl:label","value":"2462440 - Disclosure - Revenue from Contracts with Customers - Revenue by Geographic Region (Details)","language":"en-US"},{"forObject":"rpt:group-65","labelType":"xbrl:label","value":"2361309 - Disclosure - Revenue from Contracts with Customers (Tables)","language":"en-US"},{"forObject":"rpt:group-66","labelType":"xbrl:label","value":"2132107 - Disclosure - Stockholders' Equity","language":"en-US"},{"forObject":"rpt:group-67","labelType":"xbrl:label","value":"2441428 - Disclosure - Stockholders' Equity - Assumptions (Details)","language":"en-US"},{"forObject":"rpt:group-68","labelType":"xbrl:label","value":"2440427 - Disclosure - Stockholders' Equity - ESPP (Details)","language":"en-US"},{"forObject":"rpt:group-69","labelType":"xbrl:label","value":"2435422 - Disclosure - Stockholders' Equity - Equity Incentive Plans (Details)","language":"en-US"},{"forObject":"rpt:group-70","labelType":"xbrl:label","value":"2438425 - Disclosure - Stockholders' Equity - Fair Value of Awards Granted (Details)","language":"en-US"},{"forObject":"rpt:group-71","labelType":"xbrl:label","value":"2437424 - Disclosure - Stockholders' Equity - RSU, PRSU and RSA Activities (Details)","language":"en-US"},{"forObject":"rpt:group-72","labelType":"xbrl:label","value":"2443430 - Disclosure - Stockholders' Equity - Shares Reserved For Future Issuance (Details)","language":"en-US"},{"forObject":"rpt:group-73","labelType":"xbrl:label","value":"2439426 - Disclosure - Stockholders' Equity - Stock-Based Compensation Expense (Details)","language":"en-US"},{"forObject":"rpt:group-74","labelType":"xbrl:label","value":"2434421 - Disclosure - Stockholders' Equity - Stock Offering, Treasury Stock Retirement, Preferred Stock and Common Stock (Details)","language":"en-US"},{"forObject":"rpt:group-75","labelType":"xbrl:label","value":"2436423 - Disclosure - Stockholders' Equity - Stock Options Activity (Details)","language":"en-US"},{"forObject":"rpt:group-76","labelType":"xbrl:label","value":"2333305 - Disclosure - Stockholders' Equity (Tables)","language":"en-US"},{"forObject":"rpt:group-77","labelType":"xbrl:label","value":"2442429 - Disclosure - Stockholders' Equity - Unrecognized Stock-based Compensation Expenses (Details)","language":"en-US"},{"forObject":"rpt:group-78","labelType":"xbrl:label","value":"2429418 - Disclosure - Commitments and Contingencies - Operating Lease (Details)","language":"en-US"},{"forObject":"rpt:group-79","labelType":"xbrl:label","value":"2465443 - Disclosure - Revenue from Contracts with Customers - Performance Obligation (Details)","language":"en-US"}],"networks":[{"name":"rpt:network-presentation-34","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:EquityAbstract","order":1.0},{"source":"us-gaap:EquityAbstract","target":"us-gaap:ComprehensiveIncomeNoteTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-35","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:EquityAbstract","order":1.0},{"source":"us-gaap:EquityAbstract","target":"us-gaap:AccumulatedOtherComprehensiveIncomeLossTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccumulatedOtherComprehensiveIncomeLossTable","target":"us-gaap:StatementEquityComponentsAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StatementEquityComponentsAxis","target":"us-gaap:EquityComponentDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EquityComponentDomain","target":"us-gaap:AccumulatedTranslationAdjustmentMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccumulatedOtherComprehensiveIncomeLossLineItems","target":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"us-gaap:StockholdersEquity","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodStartLabel"}]},{"source":"us-gaap:EquityComponentDomain","target":"us-gaap:AccumulatedOtherComprehensiveIncomeMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:AccumulatedOtherComprehensiveIncomeLossTable","target":"us-gaap:AccumulatedOtherComprehensiveIncomeLossLineItems","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"us-gaap:StockholdersEquity","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodEndLabel"}]}]},{"name":"rpt:network-presentation-36","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:EquityAbstract","order":1.0},{"source":"us-gaap:EquityAbstract","target":"us-gaap:ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-37","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","order":1.0},{"source":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","target":"us-gaap:SupplementalBalanceSheetDisclosuresTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]}]},{"name":"rpt:network-presentation-38","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","order":1.0},{"source":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","target":"us-gaap:AccountsReceivableNetCurrentAbstract","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:AccountsReceivableNetCurrentAbstract","target":"us-gaap:AccountsReceivableGrossCurrent","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:AccountsReceivableNetCurrentAbstract","target":"us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedLabel"}]},{"source":"us-gaap:AccountsReceivableNetCurrentAbstract","target":"us-gaap:AccountsReceivableNetCurrent","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]}]},{"name":"rpt:network-presentation-39","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","order":1.0},{"source":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","target":"us-gaap:AccruedLiabilitiesCurrentAbstract","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:AccruedLiabilitiesCurrentAbstract","target":"us-gaap:EmployeeRelatedLiabilitiesCurrent","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccruedLiabilitiesCurrentAbstract","target":"us-gaap:ProductWarrantyAccrualClassifiedCurrent","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","target":"us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccruedLiabilitiesCurrentAbstract","target":"calx:AccruedCustomerRebates","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccruedLiabilitiesCurrentAbstract","target":"us-gaap:AccruedProfessionalFeesCurrent","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccruedLiabilitiesCurrentAbstract","target":"calx:AccruedEquipmentFinancingArrangementsCurrent","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccruedLiabilitiesCurrentAbstract","target":"us-gaap:OperatingLeaseLiabilityCurrent","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:AccruedLiabilitiesCurrentAbstract","target":"calx:TaxesPayableCurrentExcludingAccruedIncomeTaxes","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccruedLiabilitiesCurrentAbstract","target":"calx:AccruedExcessAndObsoleteInventoryAtContractManufacturer","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccruedLiabilitiesCurrentAbstract","target":"calx:OperationsLiabilityCurrent","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccruedLiabilitiesCurrentAbstract","target":"calx:ProductReturnReserveCurrent","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccruedLiabilitiesCurrentAbstract","target":"calx:AccruedFreight","order":11.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccruedLiabilitiesCurrentAbstract","target":"us-gaap:OtherAccruedLiabilitiesCurrent","order":12.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:AccruedLiabilitiesCurrentAbstract","target":"us-gaap:AccruedLiabilitiesCurrent","order":13.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]}]},{"name":"rpt:network-presentation-40","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","order":1.0},{"source":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","target":"srt:ValuationAndQualifyingAccountsDisclosureTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:ValuationAndQualifyingAccountsDisclosureTable","target":"us-gaap:ValuationAllowancesAndReservesTypeAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ValuationAllowancesAndReservesTypeAxis","target":"us-gaap:ValuationAllowancesAndReservesDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ValuationAllowancesAndReservesDomain","target":"us-gaap:AllowanceForCreditLossMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:ValuationAndQualifyingAccountsDisclosureLineItems","target":"us-gaap:MovementInValuationAllowancesAndReservesRollForward","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:MovementInValuationAllowancesAndReservesRollForward","target":"us-gaap:ValuationAllowancesAndReservesBalance","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodStartLabel"}]},{"source":"us-gaap:ValuationAllowancesAndReservesDomain","target":"calx:ProductReturnReserveMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:ValuationAndQualifyingAccountsDisclosureTable","target":"srt:ValuationAndQualifyingAccountsDisclosureLineItems","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:MovementInValuationAllowancesAndReservesRollForward","target":"us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:MovementInValuationAllowancesAndReservesRollForward","target":"us-gaap:ValuationAllowancesAndReservesDeductions","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:MovementInValuationAllowancesAndReservesRollForward","target":"us-gaap:ValuationAllowancesAndReservesBalance","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodEndLabel"}]}]},{"name":"rpt:network-presentation-41","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","order":1.0},{"source":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","target":"us-gaap:CapitalizedContractCostTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:CapitalizedContractCostTable","target":"us-gaap:CapitalizedContractCostAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:CapitalizedContractCostAxis","target":"us-gaap:CapitalizedContractCostDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:CapitalizedContractCostDomain","target":"calx:CloudImplementationCostsMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:CapitalizedContractCostLineItems","target":"us-gaap:CapitalizedContractCostNet","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:CapitalizedContractCostTable","target":"us-gaap:CapitalizedContractCostLineItems","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:CapitalizedContractCostLineItems","target":"us-gaap:CapitalizedContractCostAmortizationPeriod","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:CapitalizedContractCostLineItems","target":"us-gaap:CapitalizedContractCostAmortization","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-42","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","order":1.0},{"source":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","target":"us-gaap:InventoryNetAbstract","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:InventoryNetAbstract","target":"us-gaap:InventoryRawMaterialsNetOfReserves","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:InventoryNetAbstract","target":"us-gaap:InventoryFinishedGoodsNetOfReserves","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:InventoryNetAbstract","target":"us-gaap:InventoryNet","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]}]},{"name":"rpt:network-presentation-43","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","order":1.0},{"source":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","target":"us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTable","target":"us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis","target":"us-gaap:FiniteLivedIntangibleAssetsMajorClassNameDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:FiniteLivedIntangibleAssetsMajorClassNameDomain","target":"us-gaap:ComputerSoftwareIntangibleAssetMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:FiniteLivedIntangibleAssetsLineItems","target":"us-gaap:ImpairmentOfIntangibleAssetsFinitelived","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTable","target":"us-gaap:FiniteLivedIntangibleAssetsLineItems","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:FiniteLivedIntangibleAssetsLineItems","target":"us-gaap:IntangibleAssetsNetExcludingGoodwill","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:FiniteLivedIntangibleAssetsLineItems","target":"calx:OtherAssetsCapitalizedCloudImplementationCosts","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:FiniteLivedIntangibleAssetsLineItems","target":"us-gaap:OtherAssetsMiscellaneousNoncurrent","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:FiniteLivedIntangibleAssetsLineItems","target":"us-gaap:OtherAssetsNoncurrent","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:FiniteLivedIntangibleAssetsLineItems","target":"us-gaap:RoyaltyGuaranteesCommitmentsAmount","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:FiniteLivedIntangibleAssetsLineItems","target":"calx:RoyaltyGuaranteesCommitmentsPaymentPeriod","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:FiniteLivedIntangibleAssetsLineItems","target":"us-gaap:IntangibleAssetsCurrent","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:FiniteLivedIntangibleAssetsLineItems","target":"us-gaap:OtherLiabilities","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:FiniteLivedIntangibleAssetsLineItems","target":"us-gaap:OtherLiabilitiesNoncurrent","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:FiniteLivedIntangibleAssetsLineItems","target":"us-gaap:AccruedLiabilitiesCurrent","order":11.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:FiniteLivedIntangibleAssetsLineItems","target":"us-gaap:FiniteLivedIntangibleAssetUsefulLife","order":12.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-44","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","order":1.0},{"source":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","target":"us-gaap:MovementInStandardAndExtendedProductWarrantyIncreaseDecreaseRollForward","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:MovementInStandardAndExtendedProductWarrantyIncreaseDecreaseRollForward","target":"us-gaap:ProductWarrantyAccrual","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodStartLabel"}]},{"source":"us-gaap:MovementInStandardAndExtendedProductWarrantyIncreaseDecreaseRollForward","target":"us-gaap:ProductWarrantyAccrualWarrantiesIssued","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:MovementInStandardAndExtendedProductWarrantyIncreaseDecreaseRollForward","target":"us-gaap:ProductWarrantyAccrualPayments","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedLabel"}]},{"source":"us-gaap:MovementInStandardAndExtendedProductWarrantyIncreaseDecreaseRollForward","target":"us-gaap:ProductWarrantyAccrual","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodEndLabel"}]}]},{"name":"rpt:network-presentation-45","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","order":1.0},{"source":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","target":"us-gaap:ScheduleOfPropertyPlantAndEquipmentTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfPropertyPlantAndEquipmentTable","target":"us-gaap:PropertyPlantAndEquipmentByTypeAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentByTypeAxis","target":"us-gaap:PropertyPlantAndEquipmentTypeDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"us-gaap:EquipmentMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"us-gaap:PropertyPlantAndEquipmentGross","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"calx:SoftwareMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfPropertyPlantAndEquipmentTable","target":"us-gaap:PropertyPlantAndEquipmentLineItems","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedLabel"}]},{"source":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","target":"us-gaap:Depreciation","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"us-gaap:ComputerEquipmentMember","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"us-gaap:PropertyPlantAndEquipmentNet","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"us-gaap:FurnitureAndFixturesMember","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"us-gaap:LeaseholdImprovementsMember","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]}]},{"name":"rpt:network-presentation-46","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","order":1.0},{"source":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","target":"us-gaap:ScheduleOfRestructuringAndRelatedCostsTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfRestructuringAndRelatedCostsTable","target":"us-gaap:RestructuringCostAndReserveAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RestructuringCostAndReserveAxis","target":"us-gaap:TypeOfRestructuringDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:TypeOfRestructuringDomain","target":"us-gaap:FacilityClosingMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RestructuringPlanAxis","target":"us-gaap:RestructuringPlanDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RestructuringPlanDomain","target":"calx:AllPlatformFutureAndWorkFromAnywhereCultureAlignmentMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:StatementGeographicalAxis","target":"srt:SegmentGeographicalDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:SegmentGeographicalDomain","target":"calx:RichardsonTexasAndSanJoseCaliforniaMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RestructuringCostAndReserveLineItems","target":"us-gaap:RestructuringCharges","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RestructuringReserveRollForward","target":"us-gaap:RestructuringReserve","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodStartLabel"}]},{"source":"us-gaap:TypeOfRestructuringDomain","target":"us-gaap:EmployeeSeveranceMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfRestructuringAndRelatedCostsTable","target":"us-gaap:RestructuringPlanAxis","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RestructuringCostAndReserveLineItems","target":"calx:AssetWriteOff","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RestructuringReserveRollForward","target":"us-gaap:RestructuringCharges","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfRestructuringAndRelatedCostsTable","target":"srt:StatementGeographicalAxis","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RestructuringCostAndReserveLineItems","target":"calx:AccruedCommonAreasMaintenanceFeesAndPropertyTaxesWriteOff","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RestructuringReserveRollForward","target":"us-gaap:RestructuringReserveSettledWithoutCash2","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:ScheduleOfRestructuringAndRelatedCostsTable","target":"us-gaap:RestructuringCostAndReserveLineItems","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RestructuringCostAndReserveLineItems","target":"us-gaap:RestructuringReserveRollForward","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RestructuringReserveRollForward","target":"us-gaap:PaymentsForRestructuring","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:RestructuringReserveRollForward","target":"us-gaap:RestructuringReserve","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodEndLabel"}]}]},{"name":"rpt:network-presentation-47","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","order":1.0},{"source":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","target":"us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","target":"srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","target":"us-gaap:ScheduleOfInventoryCurrentTableTextBlock","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","target":"us-gaap:PropertyPlantAndEquipmentTextBlock","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","target":"us-gaap:ScheduleOfOtherAssetsNoncurrentTextBlock","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","target":"us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","target":"us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","target":"us-gaap:ScheduleOfRestructuringAndRelatedCostsTextBlock","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-48","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:CashAndCashEquivalentsAbstract","order":1.0},{"source":"us-gaap:CashAndCashEquivalentsAbstract","target":"us-gaap:CashCashEquivalentsAndMarketableSecuritiesTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-49","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:CashAndCashEquivalentsAbstract","order":1.0},{"source":"us-gaap:CashAndCashEquivalentsAbstract","target":"us-gaap:ScheduleOfCashAndCashEquivalentsTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfCashAndCashEquivalentsTable","target":"us-gaap:CashAndCashEquivalentsAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:CashAndCashEquivalentsAxis","target":"us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember","target":"us-gaap:CashMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:FinancialInstrumentAxis","target":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","target":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:CashAndCashEquivalentsLineItems","target":"us-gaap:CashAndCashEquivalentsAtCarryingValue","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember","target":"us-gaap:MoneyMarketFundsMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfCashAndCashEquivalentsTable","target":"us-gaap:FinancialInstrumentAxis","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:CashAndCashEquivalentsLineItems","target":"us-gaap:RestrictedCashCurrent","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember","target":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:netLabel"}]},{"source":"us-gaap:ScheduleOfCashAndCashEquivalentsTable","target":"us-gaap:CashAndCashEquivalentsLineItems","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:CashAndCashEquivalentsLineItems","target":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:CashAndCashEquivalentsLineItems","target":"us-gaap:AvailableForSaleSecuritiesDebtSecurities","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:CashAndCashEquivalentsLineItems","target":"calx:CashCashEquivalentsRestrictedCashAndMarketableSecurities","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]}]},{"name":"rpt:network-presentation-50","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:CashAndCashEquivalentsAbstract","order":1.0},{"source":"us-gaap:CashAndCashEquivalentsAbstract","target":"us-gaap:ScheduleOfCashAndCashEquivalentsTableTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-51","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:CommitmentsAndContingenciesDisclosureAbstract","order":1.0},{"source":"us-gaap:CommitmentsAndContingenciesDisclosureAbstract","target":"us-gaap:CommitmentsAndContingenciesDisclosureTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-52","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:CommitmentsAndContingenciesDisclosureAbstract","order":1.0},{"source":"us-gaap:CommitmentsAndContingenciesDisclosureAbstract","target":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:CommitmentsAndContingenciesDisclosureAbstract","target":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:CommitmentsAndContingenciesDisclosureAbstract","target":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:CommitmentsAndContingenciesDisclosureAbstract","target":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:CommitmentsAndContingenciesDisclosureAbstract","target":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:CommitmentsAndContingenciesDisclosureAbstract","target":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:CommitmentsAndContingenciesDisclosureAbstract","target":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:CommitmentsAndContingenciesDisclosureAbstract","target":"us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:CommitmentsAndContingenciesDisclosureAbstract","target":"us-gaap:OperatingLeaseLiability","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-53","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:CommitmentsAndContingenciesDisclosureAbstract","order":1.0},{"source":"us-gaap:CommitmentsAndContingenciesDisclosureAbstract","target":"us-gaap:OperatingLeaseLiabilityCurrent","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:CommitmentsAndContingenciesDisclosureAbstract","target":"us-gaap:OperatingLeaseLiabilityNoncurrent","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:CommitmentsAndContingenciesDisclosureAbstract","target":"us-gaap:OperatingLeaseLiability","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]}]},{"name":"rpt:network-presentation-54","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:CommitmentsAndContingenciesDisclosureAbstract","order":1.0},{"source":"us-gaap:CommitmentsAndContingenciesDisclosureAbstract","target":"us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:CommitmentsAndContingenciesDisclosureAbstract","target":"us-gaap:LesseeOperatingLeasesTextBlock","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:CommitmentsAndContingenciesDisclosureAbstract","target":"us-gaap:ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-55","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:CommitmentsAndContingenciesDisclosureAbstract","order":1.0},{"source":"us-gaap:CommitmentsAndContingenciesDisclosureAbstract","target":"us-gaap:LossContingenciesTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:LossContingenciesTable","target":"srt:StatementGeographicalAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:StatementGeographicalAxis","target":"srt:SegmentGeographicalDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:SegmentGeographicalDomain","target":"calx:SanJoseCaliforniaMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:LossContingenciesLineItems","target":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:SegmentGeographicalDomain","target":"calx:PetalumaCAMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:LossContingenciesTable","target":"us-gaap:LossContingenciesLineItems","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:LossContingenciesLineItems","target":"us-gaap:OperatingLeaseRightOfUseAsset","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:LossContingenciesLineItems","target":"us-gaap:LesseeOperatingLeaseTermOfContract","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:LossContingenciesLineItems","target":"us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:LossContingenciesLineItems","target":"us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:LossContingenciesLineItems","target":"us-gaap:OperatingLeaseCost","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:LossContingenciesLineItems","target":"us-gaap:OperatingLeasePayments","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:LossContingenciesLineItems","target":"us-gaap:PurchaseCommitmentRemainingMinimumAmountCommitted","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:LossContingenciesLineItems","target":"calx:AccruedExcessAndObsoleteInventoryAtContractManufacturer","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]}]},{"name":"rpt:network-presentation-56","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:StatementOfFinancialPositionAbstract","order":1.0},{"source":"us-gaap:StatementOfFinancialPositionAbstract","target":"us-gaap:AssetsAbstract","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:AssetsAbstract","target":"us-gaap:AssetsCurrentAbstract","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:AssetsCurrentAbstract","target":"us-gaap:CashAndCashEquivalentsAtCarryingValue","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:LiabilitiesAndStockholdersEquityAbstract","target":"us-gaap:LiabilitiesCurrentAbstract","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:LiabilitiesCurrentAbstract","target":"us-gaap:AccountsPayableCurrent","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:StockholdersEquityAbstract","target":"us-gaap:PreferredStockValue","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:AssetsCurrentAbstract","target":"us-gaap:RestrictedCashCurrent","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AssetsAbstract","target":"us-gaap:PropertyPlantAndEquipmentNet","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:StatementOfFinancialPositionAbstract","target":"us-gaap:LiabilitiesAndStockholdersEquityAbstract","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:LiabilitiesCurrentAbstract","target":"us-gaap:AccruedLiabilitiesCurrent","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:LiabilitiesAndStockholdersEquityAbstract","target":"us-gaap:ContractWithCustomerLiabilityNoncurrent","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StockholdersEquityAbstract","target":"us-gaap:CommonStockValue","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:AssetsCurrentAbstract","target":"us-gaap:AvailableForSaleSecuritiesDebtSecurities","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AssetsAbstract","target":"us-gaap:OperatingLeaseRightOfUseAsset","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:LiabilitiesCurrentAbstract","target":"us-gaap:ContractWithCustomerLiabilityCurrent","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:LiabilitiesAndStockholdersEquityAbstract","target":"us-gaap:OperatingLeaseLiabilityNoncurrent","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:StockholdersEquityAbstract","target":"us-gaap:AdditionalPaidInCapitalCommonStock","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:AssetsCurrentAbstract","target":"us-gaap:AccountsReceivableNetCurrent","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:AssetsAbstract","target":"us-gaap:Goodwill","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:LiabilitiesCurrentAbstract","target":"us-gaap:LinesOfCreditCurrent","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:LiabilitiesAndStockholdersEquityAbstract","target":"us-gaap:OtherLiabilitiesNoncurrent","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:StockholdersEquityAbstract","target":"us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:AssetsCurrentAbstract","target":"us-gaap:InventoryNet","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:AssetsAbstract","target":"us-gaap:OtherAssetsNoncurrent","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:LiabilitiesCurrentAbstract","target":"us-gaap:LiabilitiesCurrent","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:LiabilitiesAndStockholdersEquityAbstract","target":"us-gaap:Liabilities","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:StockholdersEquityAbstract","target":"us-gaap:RetainedEarningsAccumulatedDeficit","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:AssetsCurrentAbstract","target":"us-gaap:PrepaidExpenseAndOtherAssetsCurrent","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:AssetsAbstract","target":"us-gaap:Assets","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:LiabilitiesAndStockholdersEquityAbstract","target":"us-gaap:CommitmentsAndContingencies","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:StockholdersEquityAbstract","target":"us-gaap:TreasuryStockValue","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:AssetsCurrentAbstract","target":"us-gaap:AssetsCurrent","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:LiabilitiesAndStockholdersEquityAbstract","target":"us-gaap:StockholdersEquityAbstract","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:StockholdersEquityAbstract","target":"us-gaap:StockholdersEquity","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:LiabilitiesAndStockholdersEquityAbstract","target":"us-gaap:LiabilitiesAndStockholdersEquity","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]}]},{"name":"rpt:network-presentation-57","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:StatementOfFinancialPositionAbstract","order":1.0},{"source":"us-gaap:StatementOfFinancialPositionAbstract","target":"us-gaap:PreferredStockParOrStatedValuePerShare","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:StatementOfFinancialPositionAbstract","target":"us-gaap:PreferredStockSharesAuthorized","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:StatementOfFinancialPositionAbstract","target":"us-gaap:PreferredStockSharesIssued","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:StatementOfFinancialPositionAbstract","target":"us-gaap:PreferredStockSharesOutstanding","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:StatementOfFinancialPositionAbstract","target":"us-gaap:CommonStockParOrStatedValuePerShare","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:StatementOfFinancialPositionAbstract","target":"us-gaap:CommonStockSharesAuthorized","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:StatementOfFinancialPositionAbstract","target":"us-gaap:CommonStockSharesIssued","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:StatementOfFinancialPositionAbstract","target":"us-gaap:CommonStockSharesOutstanding","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:StatementOfFinancialPositionAbstract","target":"us-gaap:TreasuryStockShares","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-58","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:StatementOfCashFlowsAbstract","order":1.0},{"source":"us-gaap:StatementOfCashFlowsAbstract","target":"us-gaap:NetCashProvidedByUsedInOperatingActivitiesAbstract","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivitiesAbstract","target":"us-gaap:ProfitLoss","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract","target":"us-gaap:ShareBasedCompensation","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInOperatingCapitalAbstract","target":"us-gaap:IncreaseDecreaseInAccountsReceivable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedLabel"}]},{"source":"us-gaap:NetCashProvidedByUsedInInvestingActivitiesAbstract","target":"us-gaap:PaymentsToAcquirePropertyPlantAndEquipment","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedLabel"}]},{"source":"us-gaap:NetCashProvidedByUsedInFinancingActivitiesAbstract","target":"us-gaap:ProceedsFromStockOptionsExercised","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:SupplementalCashFlowInformationAbstract","target":"us-gaap:InterestPaidNet","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:NoncashInvestingAndFinancingItemsAbstract","target":"calx:ChangeInCapitalExpendituresIncurredButNotYetPaid","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivitiesAbstract","target":"us-gaap:AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract","target":"us-gaap:Depreciation","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInOperatingCapitalAbstract","target":"us-gaap:IncreaseDecreaseInInventories","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedLabel"}]},{"source":"us-gaap:StatementOfCashFlowsAbstract","target":"us-gaap:NetCashProvidedByUsedInInvestingActivitiesAbstract","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:NetCashProvidedByUsedInInvestingActivitiesAbstract","target":"us-gaap:PaymentsToAcquireMarketableSecurities","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:NetCashProvidedByUsedInFinancingActivitiesAbstract","target":"us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:SupplementalCashFlowInformationAbstract","target":"us-gaap:IncomeTaxesPaidNet","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract","target":"us-gaap:GainLossOnDispositionOfAssets","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInOperatingCapitalAbstract","target":"us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedLabel"}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivitiesAbstract","target":"us-gaap:NetCashProvidedByUsedInOperatingActivities","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:NetCashProvidedByUsedInInvestingActivitiesAbstract","target":"us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:StatementOfCashFlowsAbstract","target":"us-gaap:NetCashProvidedByUsedInFinancingActivitiesAbstract","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:NetCashProvidedByUsedInFinancingActivitiesAbstract","target":"us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedLabel"}]},{"source":"us-gaap:AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract","target":"calx:GainLossOnSaleOfProductLine","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInOperatingCapitalAbstract","target":"us-gaap:IncreaseDecreaseInAccountsPayable","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:NetCashProvidedByUsedInInvestingActivitiesAbstract","target":"calx:ProceedsFromSaleOfProductLine","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:NetCashProvidedByUsedInFinancingActivitiesAbstract","target":"calx:PaymentsForFinancingArrangements","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:StatementOfCashFlowsAbstract","target":"us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract","target":"us-gaap:IncreaseDecreaseInOperatingCapitalAbstract","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInOperatingCapitalAbstract","target":"us-gaap:IncreaseDecreaseInAccruedLiabilities","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:NetCashProvidedByUsedInInvestingActivitiesAbstract","target":"us-gaap:NetCashProvidedByUsedInInvestingActivities","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:NetCashProvidedByUsedInFinancingActivitiesAbstract","target":"us-gaap:ProceedsFromIssuanceOfCommonStock","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StatementOfCashFlowsAbstract","target":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:IncreaseDecreaseInOperatingCapitalAbstract","target":"us-gaap:IncreaseDecreaseInDeferredRevenue","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:NetCashProvidedByUsedInFinancingActivitiesAbstract","target":"us-gaap:ProceedsFromLinesOfCredit","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StatementOfCashFlowsAbstract","target":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodStartLabel"}]},{"source":"us-gaap:IncreaseDecreaseInOperatingCapitalAbstract","target":"us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:NetCashProvidedByUsedInFinancingActivitiesAbstract","target":"us-gaap:RepaymentsOfLinesOfCredit","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:StatementOfCashFlowsAbstract","target":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodEndLabel"}]},{"source":"us-gaap:NetCashProvidedByUsedInFinancingActivitiesAbstract","target":"us-gaap:PaymentsOfDebtIssuanceCosts","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:StatementOfCashFlowsAbstract","target":"us-gaap:SupplementalCashFlowInformationAbstract","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:NetCashProvidedByUsedInFinancingActivitiesAbstract","target":"us-gaap:NetCashProvidedByUsedInFinancingActivities","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:StatementOfCashFlowsAbstract","target":"us-gaap:NoncashInvestingAndFinancingItemsAbstract","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]}]},{"name":"rpt:network-presentation-59","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:IncomeStatementAbstract","order":1.0},{"source":"us-gaap:IncomeStatementAbstract","target":"us-gaap:StatementTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StatementTable","target":"srt:ProductOrServiceAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:ProductOrServiceAxis","target":"srt:ProductsAndServicesDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:ProductsAndServicesDomain","target":"calx:SystemsProductMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StatementLineItems","target":"us-gaap:RevenuesAbstract","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RevenuesAbstract","target":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:CostOfRevenueAbstract","target":"us-gaap:CostOfGoodsAndServicesSold","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:OperatingExpensesAbstract","target":"us-gaap:SellingAndMarketingExpense","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:NonoperatingIncomeExpenseAbstract","target":"us-gaap:InvestmentIncomeNet","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:EarningsPerShareBasicAbstract","target":"us-gaap:EarningsPerShareBasic","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EarningsPerShareDilutedOtherDisclosuresAbstract","target":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasic","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract","target":"us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"srt:ProductsAndServicesDomain","target":"us-gaap:TechnologyServiceMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StatementTable","target":"us-gaap:StatementLineItems","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StatementLineItems","target":"us-gaap:CostOfRevenueAbstract","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:OperatingExpensesAbstract","target":"us-gaap:ResearchAndDevelopmentExpense","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:NonoperatingIncomeExpenseAbstract","target":"us-gaap:OtherNonoperatingIncomeExpense","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:EarningsPerShareBasicAbstract","target":"us-gaap:EarningsPerShareDiluted","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EarningsPerShareDilutedOtherDisclosuresAbstract","target":"us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StatementLineItems","target":"us-gaap:GrossProfit","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:OperatingExpensesAbstract","target":"us-gaap:GeneralAndAdministrativeExpense","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:NonoperatingIncomeExpenseAbstract","target":"us-gaap:NonoperatingIncomeExpense","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:StatementLineItems","target":"us-gaap:OperatingExpensesAbstract","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:OperatingExpensesAbstract","target":"us-gaap:RestructuringCharges","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:OperatingExpensesAbstract","target":"us-gaap:ImpairmentOfIntangibleAssetsFinitelived","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StatementLineItems","target":"us-gaap:OperatingIncomeLoss","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:OperatingExpensesAbstract","target":"us-gaap:GainLossOnDispositionOfAssets1","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:StatementLineItems","target":"us-gaap:NonoperatingIncomeExpenseAbstract","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:OperatingExpensesAbstract","target":"us-gaap:OperatingExpenses","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:StatementLineItems","target":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:StatementLineItems","target":"us-gaap:IncomeTaxExpenseBenefit","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:StatementLineItems","target":"us-gaap:ProfitLoss","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:StatementLineItems","target":"us-gaap:EarningsPerShareBasicAbstract","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:StatementLineItems","target":"us-gaap:EarningsPerShareDilutedOtherDisclosuresAbstract","order":11.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:StatementLineItems","target":"us-gaap:ProfitLoss","order":12.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StatementLineItems","target":"us-gaap:OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract","order":13.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:StatementLineItems","target":"us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest","order":14.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]}]},{"name":"rpt:network-presentation-60","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:StatementOfStockholdersEquityAbstract","order":1.0},{"source":"us-gaap:StatementOfStockholdersEquityAbstract","target":"us-gaap:StatementTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StatementTable","target":"us-gaap:StatementEquityComponentsAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StatementEquityComponentsAxis","target":"us-gaap:EquityComponentDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EquityComponentDomain","target":"us-gaap:CommonStockMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:CumulativeEffectPeriodOfAdoptionAxis","target":"srt:CumulativeEffectPeriodOfAdoptionDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:CumulativeEffectPeriodOfAdoptionDomain","target":"srt:CumulativeEffectPeriodOfAdoptionAdjustmentMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StatementLineItems","target":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"us-gaap:CommonStockSharesOutstanding","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodStartLabel"}]},{"source":"us-gaap:EquityComponentDomain","target":"us-gaap:AdditionalPaidInCapitalMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StatementTable","target":"srt:CumulativeEffectPeriodOfAdoptionAxis","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"us-gaap:StockholdersEquity","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodStartLabel"}]},{"source":"us-gaap:EquityComponentDomain","target":"us-gaap:AccumulatedOtherComprehensiveIncomeMember","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StatementTable","target":"us-gaap:StatementLineItems","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EquityComponentDomain","target":"us-gaap:RetainedEarningsMember","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:EquityComponentDomain","target":"us-gaap:TreasuryStockMember","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"calx:StockIssuedDuringPeriodSharesPerformanceRestrictedStockAwardNetofForfeitures","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"calx:StockIssuedDuringPeriodValuePerformanceRestrictedStockAwardNetofForfeitures","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"us-gaap:StockIssuedDuringPeriodSharesNewIssues","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"us-gaap:StockIssuedDuringPeriodValueNewIssues","order":11.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"us-gaap:StockRepurchasedAndRetiredDuringPeriodValue","order":12.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"us-gaap:AccountingStandardsUpdateExtensibleList","order":13.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"us-gaap:ProfitLoss","order":14.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"us-gaap:OtherComprehensiveIncomeLossNetOfTax","order":15.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"us-gaap:CommonStockSharesOutstanding","order":16.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodEndLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"us-gaap:StockholdersEquity","order":17.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodEndLabel"}]}]},{"name":"rpt:network-presentation-61","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"dei:CoverAbstract","order":1.0},{"source":"dei:CoverAbstract","target":"dei:DocumentType","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:DocumentAnnualReport","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:DocumentPeriodEndDate","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:DocumentTransitionReport","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityFileNumber","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityRegistrantName","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityIncorporationStateCountryCode","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityTaxIdentificationNumber","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityAddressAddressLine1","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityAddressCityOrTown","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityAddressStateOrProvince","order":11.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityAddressPostalZipCode","order":12.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:CityAreaCode","order":13.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:LocalPhoneNumber","order":14.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:Security12bTitle","order":15.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:TradingSymbol","order":16.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:SecurityExchangeName","order":17.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityWellKnownSeasonedIssuer","order":18.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityVoluntaryFilers","order":19.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityCurrentReportingStatus","order":20.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityInteractiveDataCurrent","order":21.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityFilerCategory","order":22.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntitySmallBusiness","order":23.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityEmergingGrowthCompany","order":24.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:IcfrAuditorAttestationFlag","order":25.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityShellCompany","order":26.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityPublicFloat","order":27.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityCommonStockSharesOutstanding","order":28.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityCentralIndexKey","order":29.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:AmendmentFlag","order":30.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:DocumentFiscalYearFocus","order":31.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:DocumentFiscalPeriodFocus","order":32.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:CurrentFiscalYearEndDate","order":33.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:DocumentsIncorporatedByReferenceTextBlock","order":34.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-62","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:LineOfCreditFacilityAbstract","order":1.0},{"source":"us-gaap:LineOfCreditFacilityAbstract","target":"us-gaap:DebtDisclosureTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]}]},{"name":"rpt:network-presentation-63","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:LineOfCreditFacilityAbstract","order":1.0},{"source":"us-gaap:LineOfCreditFacilityAbstract","target":"us-gaap:DebtInstrumentTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DebtInstrumentTable","target":"srt:ProductOrServiceAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:ProductOrServiceAxis","target":"srt:ProductsAndServicesDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:ProductsAndServicesDomain","target":"calx:ConsultingServicesMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentByTypeAxis","target":"us-gaap:PropertyPlantAndEquipmentTypeDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"calx:ResearchAndDevelopmentEquipmentMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DebtInstrumentLineItems","target":"us-gaap:PurchaseObligation","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DebtInstrumentTable","target":"us-gaap:PropertyPlantAndEquipmentByTypeAxis","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DebtInstrumentLineItems","target":"us-gaap:DebtWeightedAverageInterestRate","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DebtInstrumentTable","target":"us-gaap:DebtInstrumentLineItems","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DebtInstrumentLineItems","target":"calx:FinancingArrangementsNonCashInvestingActivities","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DebtInstrumentLineItems","target":"calx:PaymentsToSettlePurchaseObligations","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-64","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:LineOfCreditFacilityAbstract","order":1.0},{"source":"us-gaap:LineOfCreditFacilityAbstract","target":"us-gaap:DebtInstrumentTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DebtInstrumentTable","target":"us-gaap:LineOfCreditFacilityAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:LineOfCreditFacilityAxis","target":"us-gaap:LineOfCreditFacilityLenderDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:LineOfCreditFacilityLenderDomain","target":"calx:BankOfAmericaMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:VariableRateAxis","target":"us-gaap:VariableRateDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:VariableRateDomain","target":"us-gaap:LondonInterbankOfferedRateLIBORMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:RangeAxis","target":"srt:RangeMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:RangeMember","target":"srt:MinimumMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:CreditFacilityAxis","target":"us-gaap:CreditFacilityDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:CreditFacilityDomain","target":"us-gaap:RevolvingCreditFacilityMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DebtInstrumentLineItems","target":"us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:DebtInstrumentTable","target":"us-gaap:VariableRateAxis","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:VariableRateDomain","target":"us-gaap:PrimeRateMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:RangeMember","target":"srt:MaximumMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:CreditFacilityDomain","target":"us-gaap:LetterOfCreditMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DebtInstrumentLineItems","target":"us-gaap:DebtInstrumentBasisSpreadOnVariableRate1","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DebtInstrumentTable","target":"srt:RangeAxis","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DebtInstrumentLineItems","target":"calx:DebtInstrumentCovenantComplianceMinimumAvailability","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DebtInstrumentTable","target":"us-gaap:CreditFacilityAxis","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DebtInstrumentLineItems","target":"calx:LineOfCreditFacilityCovenantComplianceMinimumFixedChargeCoverageRatio","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DebtInstrumentTable","target":"us-gaap:DebtInstrumentLineItems","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DebtInstrumentLineItems","target":"us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DebtInstrumentLineItems","target":"us-gaap:DebtInstrumentInterestRateEffectivePercentage","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-65","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:AccountingPoliciesAbstract","order":1.0},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:BusinessDescriptionAndAccountingPoliciesTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-66","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:AccountingPoliciesAbstract","order":1.0},{"source":"us-gaap:AccountingPoliciesAbstract","target":"calx:ScheduleOfCertainTermsTableTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"calx:ScheduleOfCertainTermsTableTable","target":"srt:RangeAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:RangeAxis","target":"srt:RangeMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:RangeMember","target":"srt:MinimumMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:ConsolidatedEntitiesAxis","target":"srt:ConsolidatedEntitiesDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:ConsolidatedEntitiesDomain","target":"srt:SubsidiariesMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:StatementGeographicalAxis","target":"srt:SegmentGeographicalDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:SegmentGeographicalDomain","target":"calx:BrazilChinaAndUnitedKingdomMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AdjustmentsForNewAccountingPronouncementsAxis","target":"us-gaap:TypeOfAdoptionMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:TypeOfAdoptionMember","target":"us-gaap:AccountingStandardsUpdate201602Member","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"calx:ScheduleOfCertainTermsLineItemsLineItems","target":"calx:ProductWarrantyPeriod","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:RangeMember","target":"srt:MaximumMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"calx:ScheduleOfCertainTermsTableTable","target":"srt:ConsolidatedEntitiesAxis","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"calx:ScheduleOfCertainTermsLineItemsLineItems","target":"us-gaap:Cash","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"calx:ScheduleOfCertainTermsTableTable","target":"srt:StatementGeographicalAxis","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"calx:ScheduleOfCertainTermsLineItemsLineItems","target":"us-gaap:OperatingLeaseRightOfUseAsset","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"calx:ScheduleOfCertainTermsTableTable","target":"us-gaap:AdjustmentsForNewAccountingPronouncementsAxis","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"calx:ScheduleOfCertainTermsLineItemsLineItems","target":"us-gaap:OperatingLeaseLiability","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"calx:ScheduleOfCertainTermsTableTable","target":"calx:ScheduleOfCertainTermsLineItemsLineItems","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"calx:ScheduleOfCertainTermsLineItemsLineItems","target":"us-gaap:GoodwillImpairmentLoss","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-67","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:AccountingPoliciesAbstract","order":1.0},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:DisaggregationOfRevenueTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DisaggregationOfRevenueTable","target":"srt:RangeAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:RangeAxis","target":"srt:RangeMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:RangeMember","target":"srt:MinimumMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DisaggregationOfRevenueLineItems","target":"us-gaap:CapitalizedContractCostAmortizationPeriod","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:RangeMember","target":"srt:MaximumMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DisaggregationOfRevenueTable","target":"us-gaap:DisaggregationOfRevenueLineItems","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DisaggregationOfRevenueLineItems","target":"us-gaap:CapitalizedContractCostGross","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DisaggregationOfRevenueLineItems","target":"us-gaap:CapitalizedContractCostAmortization","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-68","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract","order":1.0},{"source":"us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract","target":"us-gaap:ConcentrationRiskTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ConcentrationRiskTable","target":"us-gaap:ConcentrationRiskByTypeAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ConcentrationRiskByTypeAxis","target":"us-gaap:ConcentrationRiskTypeDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ConcentrationRiskTypeDomain","target":"us-gaap:CustomerConcentrationRiskMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ConcentrationRiskByBenchmarkAxis","target":"us-gaap:ConcentrationRiskBenchmarkDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ConcentrationRiskBenchmarkDomain","target":"us-gaap:AccountsReceivableMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ConcentrationRiskLineItems","target":"us-gaap:ConcentrationRiskPercentage1","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ConcentrationRiskTable","target":"us-gaap:ConcentrationRiskByBenchmarkAxis","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ConcentrationRiskTable","target":"us-gaap:ConcentrationRiskLineItems","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-69","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:AccountingPoliciesAbstract","order":1.0},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:BasisOfAccountingPolicyPolicyTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:UseOfEstimates","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:RevenueRecognitionPolicyTextBlock","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:CostOfSalesPolicyTextBlock","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:StandardProductWarrantyPolicy","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:CommitmentsAndContingenciesPolicyTextBlock","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:ConcentrationRiskCreditRisk","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:FairValueOfFinancialInstrumentsPolicy","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"calx:CashCashEquivalentsAndMarketableSecuritiesPolicyPolicyTextBlockPolicyTextBlock","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy","order":11.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:InventoryPolicyTextBlock","order":12.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:RevenueFromContractWithCustomerPolicyTextBlock","order":13.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:PropertyPlantAndEquipmentPolicyTextBlock","order":14.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy","order":15.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:IncomeTaxPolicyTextBlock","order":16.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock","order":17.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]}]},{"name":"rpt:network-presentation-70","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:AccountingPoliciesAbstract","order":1.0},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:ScheduleOfPropertyPlantAndEquipmentTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfPropertyPlantAndEquipmentTable","target":"us-gaap:PropertyPlantAndEquipmentByTypeAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentByTypeAxis","target":"us-gaap:PropertyPlantAndEquipmentTypeDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"us-gaap:ComputerEquipmentMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:RangeAxis","target":"srt:RangeMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:RangeMember","target":"srt:MinimumMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentLineItems","target":"us-gaap:PropertyPlantAndEquipmentUsefulLife","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"us-gaap:ComputerSoftwareIntangibleAssetMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfPropertyPlantAndEquipmentTable","target":"srt:RangeAxis","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:RangeMember","target":"srt:MaximumMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"us-gaap:EquipmentMember","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfPropertyPlantAndEquipmentTable","target":"us-gaap:PropertyPlantAndEquipmentLineItems","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"us-gaap:FurnitureAndFixturesMember","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-71","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:CompensationAndRetirementDisclosureAbstract","order":1.0},{"source":"us-gaap:CompensationAndRetirementDisclosureAbstract","target":"us-gaap:CompensationAndEmployeeBenefitPlansTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-72","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:CompensationAndRetirementDisclosureAbstract","order":1.0},{"source":"us-gaap:CompensationAndRetirementDisclosureAbstract","target":"us-gaap:DefinedContributionPlanCostRecognized","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-73","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:FairValueDisclosuresAbstract","order":1.0},{"source":"us-gaap:FairValueDisclosuresAbstract","target":"us-gaap:FairValueDisclosuresTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]}]},{"name":"rpt:network-presentation-74","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:FairValueDisclosuresAbstract","order":1.0},{"source":"us-gaap:FairValueDisclosuresAbstract","target":"us-gaap:FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable","target":"us-gaap:FairValueByMeasurementFrequencyAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:FairValueByMeasurementFrequencyAxis","target":"us-gaap:FairValueMeasurementFrequencyDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:FairValueMeasurementFrequencyDomain","target":"us-gaap:FairValueMeasurementsRecurringMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:CashAndCashEquivalentsAxis","target":"us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember","target":"us-gaap:MoneyMarketFundsMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:FinancialInstrumentAxis","target":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","target":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:FairValueByFairValueHierarchyLevelAxis","target":"us-gaap:FairValueMeasurementsFairValueHierarchyDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:FairValueMeasurementsFairValueHierarchyDomain","target":"us-gaap:FairValueInputsLevel1Member","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems","target":"us-gaap:CashAndCashEquivalentsFairValueDisclosure","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable","target":"us-gaap:CashAndCashEquivalentsAxis","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems","target":"us-gaap:AvailableForSaleSecuritiesDebtSecurities","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:netLabel"}]},{"source":"us-gaap:FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable","target":"us-gaap:FinancialInstrumentAxis","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems","target":"us-gaap:AssetsFairValueDisclosure","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable","target":"us-gaap:FairValueByFairValueHierarchyLevelAxis","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable","target":"us-gaap:FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-75","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:FairValueDisclosuresAbstract","order":1.0},{"source":"us-gaap:FairValueDisclosuresAbstract","target":"us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-76","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:IncomeTaxDisclosureAbstract","order":1.0},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:IncomeTaxDisclosureTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]}]},{"name":"rpt:network-presentation-77","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:IncomeTaxDisclosureAbstract","order":1.0},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:DeferredTaxAssetsGrossAbstract","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DeferredTaxAssetsGrossAbstract","target":"us-gaap:DeferredTaxAssetsOperatingLossCarryforwards","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DeferredTaxAssetsGrossAbstract","target":"us-gaap:TaxCreditCarryforwardAmount","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DeferredTaxAssetsGrossAbstract","target":"us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DeferredTaxAssetsGrossAbstract","target":"us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DeferredTaxAssetsGrossAbstract","target":"us-gaap:DeferredTaxAssetsDeferredIncome","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DeferredTaxAssetsGrossAbstract","target":"us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DeferredTaxAssetsGrossAbstract","target":"us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DeferredTaxAssetsGrossAbstract","target":"us-gaap:DeferredTaxAssetsOther","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DeferredTaxAssetsGrossAbstract","target":"us-gaap:DeferredTaxAssetsGross","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:DeferredTaxAssetsGrossAbstract","target":"us-gaap:DeferredTaxAssetsValuationAllowance","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:DeferredTaxAssetsGrossAbstract","target":"us-gaap:DeferredTaxLiabilities","order":11.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTotalLabel"}]}]},{"name":"rpt:network-presentation-78","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:IncomeTaxDisclosureAbstract","order":1.0},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:CurrentStateAndLocalTaxExpenseBenefit","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:CurrentForeignTaxExpenseBenefit","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:CurrentIncomeTaxExpenseBenefit","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:DeferredForeignIncomeTaxExpenseBenefit","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:IncomeTaxExpenseBenefit","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]}]},{"name":"rpt:network-presentation-79","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:IncomeTaxDisclosureAbstract","order":1.0},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"calx:EffectiveIncomeTaxRateReconciliationForeignIncomeInclusionPercent","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseOther","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:EffectiveIncomeTaxRateReconciliationPriorYearIncomeTaxes","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:EffectiveIncomeTaxRateReconciliationTaxCutsAndJobsActOf2017Percent","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"calx:EffectiveIncomeTaxRateReconciliationTopic606AdjustmentPercent","order":11.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","order":12.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]}]},{"name":"rpt:network-presentation-80","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:IncomeTaxDisclosureAbstract","order":1.0},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]}]},{"name":"rpt:network-presentation-81","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:IncomeTaxDisclosureAbstract","order":1.0},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:SummaryOfIncomeTaxContingenciesTextBlock","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-82","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:IncomeTaxDisclosureAbstract","order":1.0},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"calx:IncomeTaxesTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"calx:IncomeTaxesTable","target":"us-gaap:IncomeTaxAuthorityAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxAuthorityAxis","target":"us-gaap:IncomeTaxAuthorityDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxAuthorityDomain","target":"us-gaap:DomesticCountryMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"calx:IncomeTaxesLineItems","target":"us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxAuthorityDomain","target":"us-gaap:StateAndLocalJurisdictionMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"calx:IncomeTaxesTable","target":"calx:IncomeTaxesLineItems","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"calx:IncomeTaxesLineItems","target":"us-gaap:OperatingLossCarryforwards","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxAuthorityDomain","target":"calx:CaliforniaStateMember","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"calx:IncomeTaxesLineItems","target":"us-gaap:TaxCreditCarryforwardAmount","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:IncomeTaxAuthorityDomain","target":"calx:OtherStateMember","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"calx:IncomeTaxesLineItems","target":"us-gaap:IncomeTaxReconciliationRepatriationOfForeignEarnings","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"calx:IncomeTaxesLineItems","target":"us-gaap:UnrecognizedTaxBenefits","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"calx:IncomeTaxesLineItems","target":"us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-83","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:IncomeTaxDisclosureAbstract","order":1.0},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward","target":"us-gaap:UnrecognizedTaxBenefits","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodStartLabel"}]},{"source":"us-gaap:ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward","target":"us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward","target":"us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward","target":"us-gaap:UnrecognizedTaxBenefits","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodEndLabel"}]}]},{"name":"rpt:network-presentation-84","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:EarningsPerShareAbstract","order":1.0},{"source":"us-gaap:EarningsPerShareAbstract","target":"us-gaap:EarningsPerShareTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]}]},{"name":"rpt:network-presentation-85","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:EarningsPerShareAbstract","order":1.0},{"source":"us-gaap:EarningsPerShareAbstract","target":"us-gaap:EarningsPerShareBasicAndDilutedAbstract","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:EarningsPerShareBasicAndDilutedAbstract","target":"us-gaap:NetIncomeLossAbstract","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:NetIncomeLossAbstract","target":"us-gaap:ProfitLoss","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasicAbstract","target":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasic","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:EarningsPerShareBasicAndDilutedAbstract","target":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasicAbstract","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasicAbstract","target":"us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasicAbstract","target":"us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:EarningsPerShareBasicAndDilutedAbstract","target":"us-gaap:EarningsPerShareBasic","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:EarningsPerShareBasicAndDilutedAbstract","target":"us-gaap:EarningsPerShareDiluted","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:EarningsPerShareBasicAndDilutedAbstract","target":"us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-86","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:EarningsPerShareAbstract","order":1.0},{"source":"us-gaap:EarningsPerShareAbstract","target":"us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]}]},{"name":"rpt:network-presentation-87","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:DiscontinuedOperationsAndDisposalGroupsAbstract","order":1.0},{"source":"us-gaap:DiscontinuedOperationsAndDisposalGroupsAbstract","target":"us-gaap:DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-88","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:DiscontinuedOperationsAndDisposalGroupsAbstract","order":1.0},{"source":"us-gaap:DiscontinuedOperationsAndDisposalGroupsAbstract","target":"us-gaap:IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsTable","target":"srt:CounterpartyNameAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:CounterpartyNameAxis","target":"srt:RepurchaseAgreementCounterpartyNameDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:RepurchaseAgreementCounterpartyNameDomain","target":"calx:ClearfieldInc.Member","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis","target":"us-gaap:DisposalGroupsIncludingDiscontinuedOperationsNameDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DisposalGroupsIncludingDiscontinuedOperationsNameDomain","target":"calx:OutdoorCabinetProductLineMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems","target":"us-gaap:DisposalGroupIncludingDiscontinuedOperationConsideration","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsTable","target":"us-gaap:IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems","target":"us-gaap:DisposalGroupIncludingDiscontinuedOperationInventory1","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsTable","target":"us-gaap:IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems","target":"calx:DisposalGroupPeriodOfNewOrdersSolicitation","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems","target":"us-gaap:DisposalGroupIncludingDiscontinuedOperationDeferredRevenue","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems","target":"us-gaap:DisposalGroupNotDiscontinuedOperationGainLossOnDisposal","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-89","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:QuarterlyFinancialInformationDisclosureAbstract","order":1.0},{"source":"us-gaap:QuarterlyFinancialInformationDisclosureAbstract","target":"us-gaap:QuarterlyFinancialInformationTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-90","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:QuarterlyFinancialInformationDisclosureAbstract","order":1.0},{"source":"us-gaap:QuarterlyFinancialInformationDisclosureAbstract","target":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:QuarterlyFinancialInformationDisclosureAbstract","target":"us-gaap:GrossProfit","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:QuarterlyFinancialInformationDisclosureAbstract","target":"us-gaap:OperatingIncomeLoss","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:QuarterlyFinancialInformationDisclosureAbstract","target":"us-gaap:ProfitLoss","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:QuarterlyFinancialInformationDisclosureAbstract","target":"us-gaap:EarningsPerShareBasic","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:netLabel"}]},{"source":"us-gaap:QuarterlyFinancialInformationDisclosureAbstract","target":"us-gaap:EarningsPerShareDiluted","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:netLabel"}]},{"source":"us-gaap:QuarterlyFinancialInformationDisclosureAbstract","target":"us-gaap:EarningsPerShareBasicAndDiluted","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-91","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:QuarterlyFinancialInformationDisclosureAbstract","order":1.0},{"source":"us-gaap:QuarterlyFinancialInformationDisclosureAbstract","target":"us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-92","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:RevenueFromContractWithCustomerAbstract","order":1.0},{"source":"us-gaap:RevenueFromContractWithCustomerAbstract","target":"us-gaap:SegmentReportingDisclosureTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-93","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:RevenueFromContractWithCustomerAbstract","order":1.0},{"source":"us-gaap:RevenueFromContractWithCustomerAbstract","target":"us-gaap:ConcentrationRiskTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ConcentrationRiskTable","target":"srt:MajorCustomersAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:MajorCustomersAxis","target":"srt:NameOfMajorCustomerDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:NameOfMajorCustomerDomain","target":"calx:CenturyLinkDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ConcentrationRiskByTypeAxis","target":"us-gaap:ConcentrationRiskTypeDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ConcentrationRiskTypeDomain","target":"us-gaap:CustomerConcentrationRiskMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ConcentrationRiskByBenchmarkAxis","target":"us-gaap:ConcentrationRiskBenchmarkDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ConcentrationRiskBenchmarkDomain","target":"us-gaap:AccountsReceivableMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ConcentrationRiskLineItems","target":"us-gaap:ConcentrationRiskPercentage1","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ConcentrationRiskTable","target":"us-gaap:ConcentrationRiskByTypeAxis","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ConcentrationRiskBenchmarkDomain","target":"us-gaap:RevenueFromContractWithCustomerMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ConcentrationRiskTable","target":"us-gaap:ConcentrationRiskByBenchmarkAxis","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ConcentrationRiskTable","target":"us-gaap:ConcentrationRiskLineItems","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-94","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:RevenueFromContractWithCustomerAbstract","order":1.0},{"source":"us-gaap:RevenueFromContractWithCustomerAbstract","target":"us-gaap:DisaggregationOfRevenueTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DisaggregationOfRevenueTable","target":"us-gaap:DeferredRevenueArrangementTypeAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DeferredRevenueArrangementTypeAxis","target":"us-gaap:DeferredRevenueArrangementTypeDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DeferredRevenueArrangementTypeDomain","target":"calx:ProductAndServicesMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DisaggregationOfRevenueLineItems","target":"us-gaap:ContractWithCustomerAssetNet","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DeferredRevenueArrangementTypeDomain","target":"calx:ExtendedWarrantyMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DisaggregationOfRevenueTable","target":"us-gaap:DisaggregationOfRevenueLineItems","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DisaggregationOfRevenueLineItems","target":"calx:ContractwithCustomerAssetPriorPeriodNotRecognized","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DisaggregationOfRevenueLineItems","target":"calx:ContractWithCustomerAssetExpectedToBeBilledRemainderOfYearPercent","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DisaggregationOfRevenueLineItems","target":"us-gaap:ContractWithCustomerLiabilityCurrent","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DisaggregationOfRevenueLineItems","target":"us-gaap:ContractWithCustomerLiabilityNoncurrent","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:DisaggregationOfRevenueLineItems","target":"us-gaap:ContractWithCustomerLiability","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:DisaggregationOfRevenueLineItems","target":"us-gaap:ContractWithCustomerLiabilityRevenueRecognized","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-95","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:RevenueFromContractWithCustomerAbstract","order":1.0},{"source":"us-gaap:RevenueFromContractWithCustomerAbstract","target":"us-gaap:CapitalizedContractCostGross","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RevenueFromContractWithCustomerAbstract","target":"us-gaap:CapitalizedContractCostAmortization","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-96","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:RevenueFromContractWithCustomerAbstract","order":1.0},{"source":"us-gaap:RevenueFromContractWithCustomerAbstract","target":"us-gaap:RevenueRemainingPerformanceObligation","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable","target":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems","target":"us-gaap:RevenueRemainingPerformanceObligationPercentage","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RevenueFromContractWithCustomerAbstract","target":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable","target":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems","target":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-97","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:RevenueFromContractWithCustomerAbstract","order":1.0},{"source":"us-gaap:RevenueFromContractWithCustomerAbstract","target":"us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable","target":"srt:StatementGeographicalAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:StatementGeographicalAxis","target":"srt:SegmentGeographicalDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:SegmentGeographicalDomain","target":"country:US","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RevenuesFromExternalCustomersAndLongLivedAssetsLineItems","target":"us-gaap:PropertyPlantAndEquipmentNet","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"srt:SegmentGeographicalDomain","target":"country:CN","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable","target":"us-gaap:RevenuesFromExternalCustomersAndLongLivedAssetsLineItems","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-98","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:RevenueFromContractWithCustomerAbstract","order":1.0},{"source":"us-gaap:RevenueFromContractWithCustomerAbstract","target":"us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable","target":"srt:StatementGeographicalAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:StatementGeographicalAxis","target":"srt:SegmentGeographicalDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:SegmentGeographicalDomain","target":"country:US","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RevenuesFromExternalCustomersAndLongLivedAssetsLineItems","target":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:SegmentGeographicalDomain","target":"us-gaap:MiddleEastMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable","target":"us-gaap:RevenuesFromExternalCustomersAndLongLivedAssetsLineItems","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:SegmentGeographicalDomain","target":"country:CA","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:SegmentGeographicalDomain","target":"srt:EuropeMember","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:SegmentGeographicalDomain","target":"calx:CaribbeanMember","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:SegmentGeographicalDomain","target":"calx:SegmentGeographicalOtherCountriesMember","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-99","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:RevenueFromContractWithCustomerAbstract","order":1.0},{"source":"us-gaap:RevenueFromContractWithCustomerAbstract","target":"us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RevenueFromContractWithCustomerAbstract","target":"us-gaap:RevenueFromExternalCustomersByGeographicAreasTableTextBlock","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RevenueFromContractWithCustomerAbstract","target":"us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RevenueFromContractWithCustomerAbstract","target":"us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-100","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:StockholdersEquityNoteAbstract","order":1.0},{"source":"us-gaap:StockholdersEquityNoteAbstract","target":"us-gaap:ShareholdersEquityAndShareBasedPaymentsTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]}]},{"name":"rpt:network-presentation-101","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:StockholdersEquityNoteAbstract","order":1.0},{"source":"us-gaap:StockholdersEquityNoteAbstract","target":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","target":"us-gaap:AwardTypeAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AwardTypeAxis","target":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:EmployeeStockOptionMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:EmployeeStockMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract","target":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]}]},{"name":"rpt:network-presentation-102","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:EquityAbstract","order":1.0},{"source":"us-gaap:EquityAbstract","target":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","target":"us-gaap:AwardTypeAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AwardTypeAxis","target":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:EmployeeStockMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PlanNameAxis","target":"us-gaap:PlanNameDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PlanNameDomain","target":"calx:A2017NonqualifiedEmployeeStockPurchasePlanMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:NumberOfEmployeeStockPurchasePlans","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","target":"us-gaap:PlanNameAxis","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PlanNameDomain","target":"calx:EmployeeStockPurchasePlanMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumNumberOfSharesPerEmployee","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:SharebasedCompensationArrangementbySharebasedPaymentAwardPurchasePriceofCommonStockOfferingPeriod","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:StockIssuedDuringPeriodSharesEmployeeStockOwnershipPlan","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumContributionPercent","order":11.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEmployeeTerminationPeriodFollowingPurchaseDateToReceiveSharesSubjectToRiskOfForfeiture","order":12.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfOfferingPeriods","order":13.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOfferingPeriod","order":14.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorizedPerPurchasePeriod","order":15.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrantAdditionalShares","order":16.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod","order":17.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesPurchasedForAward","order":18.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions","order":19.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-103","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:EquityAbstract","order":1.0},{"source":"us-gaap:EquityAbstract","target":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","target":"us-gaap:PlanNameAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PlanNameAxis","target":"us-gaap:PlanNameDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PlanNameDomain","target":"calx:A2019EquityIncentiveAwardPlanMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AwardTypeAxis","target":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:EmployeeStockOptionMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:VestingAxis","target":"us-gaap:VestingDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:VestingDomain","target":"us-gaap:ShareBasedCompensationAwardTrancheOneMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:TitleOfIndividualAxis","target":"srt:TitleOfIndividualWithRelationshipToEntityDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:TitleOfIndividualWithRelationshipToEntityDomain","target":"srt:ExecutiveOfficerMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:SubsequentEventTypeAxis","target":"us-gaap:SubsequentEventTypeDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:SubsequentEventTypeDomain","target":"us-gaap:SubsequentEventMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PlanNameDomain","target":"calx:A2020PerformanceTargetsMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","target":"us-gaap:AwardTypeAxis","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:RestrictedStockUnitsRSUMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:VestingDomain","target":"us-gaap:ShareBasedCompensationAwardTrancheTwoMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrantAdditionalShares","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"calx:PerformanceBasedStockOptionsMember","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","target":"us-gaap:VestingAxis","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:MinimumExercisePriceOfStockOptionPercent","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","target":"srt:TitleOfIndividualAxis","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","target":"us-gaap:SubsequentEventTypeAxis","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:ContractualTermStockOptions","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardRequisiteServicePeriod1","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardRequisiteServicePeriodSubsequentPeriod","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardPercentOfSharesReceivedUponMeetingTargets","order":11.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardsEarnedPercentage","order":12.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNetIncomePerShareTargetAchievementPerformanceThresholdPercent","order":13.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardBookingsTargetAchievementPerformanceThresholdPercent","order":14.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesGrantedIfTargetAchievementPerformanceThresholdNotMet","order":15.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesAwardWeightingPercentForTargetAchievementPerformanceThresholdPercent","order":16.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesAwardTargetAchievementPerformanceThresholdPercent","order":17.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensation","order":18.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:SharebasedCompensationArrangementbySharebasedPaymentAwardEquityInstrumentsOtherthanOptionsConvertedintoCommonStock","order":19.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-104","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:StockholdersEquityNoteAbstract","order":1.0},{"source":"us-gaap:StockholdersEquityNoteAbstract","target":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","target":"us-gaap:PlanNameAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PlanNameAxis","target":"us-gaap:PlanNameDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PlanNameDomain","target":"calx:A2017NonqualifiedEmployeeStockPurchasePlanMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AwardTypeAxis","target":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:RestrictedStockUnitsRSUMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","target":"us-gaap:AwardTypeAxis","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:EmployeeStockMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-105","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:StockholdersEquityNoteAbstract","order":1.0},{"source":"us-gaap:StockholdersEquityNoteAbstract","target":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","target":"us-gaap:AwardTypeAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AwardTypeAxis","target":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:RestrictedStockUnitsRSUMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodStartLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodStartLabel"}]},{"source":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodEndLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodEndLabel"}]}]},{"name":"rpt:network-presentation-106","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:StockholdersEquityNoteAbstract","order":1.0},{"source":"us-gaap:StockholdersEquityNoteAbstract","target":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","target":"us-gaap:PlanNameAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PlanNameAxis","target":"us-gaap:PlanNameDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PlanNameDomain","target":"calx:A2017NonqualifiedEmployeeStockPurchasePlanMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AwardTypeAxis","target":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:RestrictedStockUnitsRSUMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PlanNameDomain","target":"calx:A2019PlanMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","target":"us-gaap:AwardTypeAxis","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:EmployeeStockMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:CommonStockCapitalSharesReservedForFutureIssuance","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-107","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:StockholdersEquityNoteAbstract","order":1.0},{"source":"us-gaap:StockholdersEquityNoteAbstract","target":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","target":"us-gaap:IncomeStatementLocationAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeStatementLocationAxis","target":"us-gaap:IncomeStatementLocationDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeStatementLocationDomain","target":"calx:CostOfRevenueProductsMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:AllocatedShareBasedCompensationExpense","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:IncomeStatementLocationDomain","target":"calx:CostOfRevenueServicesMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:PercentOfHistoricalVolatility","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeStatementLocationDomain","target":"us-gaap:ResearchAndDevelopmentExpenseMember","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:PercentOfImpliedVolatility","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeStatementLocationDomain","target":"us-gaap:SellingAndMarketingExpenseMember","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:IncomeStatementLocationDomain","target":"us-gaap:GeneralAndAdministrativeExpenseMember","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]}]},{"name":"rpt:network-presentation-108","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:StockholdersEquityNoteAbstract","order":1.0},{"source":"us-gaap:StockholdersEquityNoteAbstract","target":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","target":"us-gaap:SubsidiarySaleOfStockAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:SubsidiarySaleOfStockAxis","target":"us-gaap:SaleOfStockNameOfTransactionDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:SaleOfStockNameOfTransactionDomain","target":"calx:PublicStockOfferingMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StatementEquityComponentsAxis","target":"us-gaap:EquityComponentDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EquityComponentDomain","target":"us-gaap:CommonStockMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:SaleOfStockNumberOfSharesIssuedInTransaction","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:SaleOfStockNameOfTransactionDomain","target":"us-gaap:OverAllotmentOptionMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","target":"us-gaap:StatementEquityComponentsAxis","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EquityComponentDomain","target":"us-gaap:RetainedEarningsMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:CommonStockParOrStatedValuePerShare","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:SaleOfStockConsiderationReceivedOnTransaction","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:TreasuryStockSharesRetired","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:TreasuryStockRetiredCostMethodAmount","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:PreferredStockSharesAuthorized","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:PreferredStockSharesIssued","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:PreferredStockSharesOutstanding","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:CommonStockDividendsPerShareDeclared","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-109","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:StockholdersEquityNoteAbstract","order":1.0},{"source":"us-gaap:StockholdersEquityNoteAbstract","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodStartLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodStartLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:StockholdersEquityNoteAbstract","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward","target":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward","target":"us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:StockholdersEquityNoteAbstract","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward","target":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:StockholdersEquityNoteAbstract","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward","target":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodEndLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodEndLabel"}]},{"source":"us-gaap:StockholdersEquityNoteAbstract","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StockholdersEquityNoteAbstract","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StockholdersEquityNoteAbstract","target":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StockholdersEquityNoteAbstract","target":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StockholdersEquityNoteAbstract","target":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StockholdersEquityNoteAbstract","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StockholdersEquityNoteAbstract","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue","order":11.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StockholdersEquityNoteAbstract","target":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1","order":12.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StockholdersEquityNoteAbstract","target":"calx:SharebasedCompensationArrangementbySharebasedPaymentAwardOptionsOutstandingIntrinsicValueAmountPerShare","order":13.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StockholdersEquityNoteAbstract","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue","order":14.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StockholdersEquityNoteAbstract","target":"us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised","order":15.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StockholdersEquityNoteAbstract","target":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1","order":16.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-110","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:StockholdersEquityNoteAbstract","order":1.0},{"source":"us-gaap:StockholdersEquityNoteAbstract","target":"us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StockholdersEquityNoteAbstract","target":"us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StockholdersEquityNoteAbstract","target":"us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StockholdersEquityNoteAbstract","target":"calx:ScheduleOfGrantDateFairValuesTableTextBlock","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StockholdersEquityNoteAbstract","target":"us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:StockholdersEquityNoteAbstract","target":"us-gaap:ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StockholdersEquityNoteAbstract","target":"us-gaap:ScheduleOfUnrecognizedCompensationCostNonvestedAwardsTableTextBlock","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StockholdersEquityNoteAbstract","target":"calx:SharesReservedForFutureIssuanceTableTextBlock","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-111","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:StockholdersEquityNoteAbstract","order":1.0},{"source":"us-gaap:StockholdersEquityNoteAbstract","target":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","target":"us-gaap:AwardTypeAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AwardTypeAxis","target":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:EmployeeStockOptionMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:RestrictedStockUnitsRSUMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:EmployeeStockMember","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationCostNotyetRecognizedToBeRecognizedNextTwelveMonth","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationCostNotyetRecognizedToBeRecognizedInYearTwo","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationCostNotyetRecognizedToBeRecognizedInYearThree","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationCostNotyetRecognizedToBeRecognizedInYearFour","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-calculation-112","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:AccountsReceivableNetCurrent","order":1.0},{"source":"us-gaap:AccountsReceivableNetCurrent","target":"us-gaap:AccountsReceivableGrossCurrent","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AccountsReceivableNetCurrent","target":"us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent","order":2.0,"properties":[{"property":"xbrl:weight","value":-1.0}]}]},{"name":"rpt:network-calculation-113","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:AccruedLiabilitiesCurrent","order":1.0},{"source":"us-gaap:AccruedLiabilitiesCurrent","target":"calx:ProductReturnReserveCurrent","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AccruedLiabilitiesCurrent","target":"calx:OperationsLiabilityCurrent","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AccruedLiabilitiesCurrent","target":"calx:AccruedExcessAndObsoleteInventoryAtContractManufacturer","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AccruedLiabilitiesCurrent","target":"calx:AccruedCustomerRebates","order":4.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AccruedLiabilitiesCurrent","target":"calx:TaxesPayableCurrentExcludingAccruedIncomeTaxes","order":5.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AccruedLiabilitiesCurrent","target":"us-gaap:ProductWarrantyAccrualClassifiedCurrent","order":6.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AccruedLiabilitiesCurrent","target":"calx:AccruedFreight","order":7.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AccruedLiabilitiesCurrent","target":"us-gaap:EmployeeRelatedLiabilitiesCurrent","order":8.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AccruedLiabilitiesCurrent","target":"us-gaap:OtherAccruedLiabilitiesCurrent","order":9.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AccruedLiabilitiesCurrent","target":"us-gaap:OperatingLeaseLiabilityCurrent","order":10.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AccruedLiabilitiesCurrent","target":"us-gaap:AccruedProfessionalFeesCurrent","order":11.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AccruedLiabilitiesCurrent","target":"calx:AccruedEquipmentFinancingArrangementsCurrent","order":12.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]},{"name":"rpt:network-calculation-114","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:InventoryNet","order":1.0},{"source":"us-gaap:InventoryNet","target":"us-gaap:InventoryFinishedGoodsNetOfReserves","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:InventoryNet","target":"us-gaap:InventoryRawMaterialsNetOfReserves","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]},{"name":"rpt:network-calculation-115","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:OtherAssetsNoncurrent","order":1.0},{"source":"us-gaap:OtherAssetsNoncurrent","target":"us-gaap:IntangibleAssetsNetExcludingGoodwill","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:OtherAssetsNoncurrent","target":"us-gaap:OtherAssetsMiscellaneousNoncurrent","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:OtherAssetsNoncurrent","target":"calx:OtherAssetsCapitalizedCloudImplementationCosts","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]},{"name":"rpt:network-calculation-116","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:PropertyPlantAndEquipmentNet","order":1.0},{"source":"us-gaap:PropertyPlantAndEquipmentNet","target":"us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment","order":1.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:PropertyPlantAndEquipmentNet","target":"us-gaap:PropertyPlantAndEquipmentGross","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]},{"name":"rpt:network-calculation-117","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"calx:CashCashEquivalentsRestrictedCashAndMarketableSecurities","order":1.0},{"source":"calx:CashCashEquivalentsRestrictedCashAndMarketableSecurities","target":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","target":"us-gaap:CashAndCashEquivalentsAtCarryingValue","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"calx:CashCashEquivalentsRestrictedCashAndMarketableSecurities","target":"us-gaap:AvailableForSaleSecuritiesDebtSecurities","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","target":"us-gaap:RestrictedCashCurrent","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]},{"name":"rpt:network-calculation-118","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue","order":1.0},{"source":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue","target":"us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue","target":"us-gaap:OperatingLeaseLiability","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]},{"name":"rpt:network-calculation-119","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue","order":1.0},{"source":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue","target":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue","target":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue","target":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue","target":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour","order":4.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue","target":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive","order":5.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue","target":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive","order":6.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]},{"name":"rpt:network-calculation-120","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:OperatingLeaseLiability","order":1.0},{"source":"us-gaap:OperatingLeaseLiability","target":"us-gaap:OperatingLeaseLiabilityCurrent","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:OperatingLeaseLiability","target":"us-gaap:OperatingLeaseLiabilityNoncurrent","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]},{"name":"rpt:network-calculation-121","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:Assets","order":1.0},{"source":"xbrl:rootSource","target":"us-gaap:LiabilitiesAndStockholdersEquity","order":2.0},{"source":"us-gaap:LiabilitiesAndStockholdersEquity","target":"us-gaap:Liabilities","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AssetsCurrent","target":"us-gaap:AccountsReceivableNetCurrent","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:Liabilities","target":"us-gaap:LiabilitiesCurrent","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:LiabilitiesCurrent","target":"us-gaap:AccountsPayableCurrent","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:Assets","target":"us-gaap:AssetsCurrent","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:StockholdersEquity","target":"us-gaap:PreferredStockValue","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:LiabilitiesAndStockholdersEquity","target":"us-gaap:StockholdersEquity","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AssetsCurrent","target":"us-gaap:AvailableForSaleSecuritiesDebtSecurities","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:Liabilities","target":"us-gaap:ContractWithCustomerLiabilityNoncurrent","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:LiabilitiesCurrent","target":"us-gaap:AccruedLiabilitiesCurrent","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:Assets","target":"us-gaap:PropertyPlantAndEquipmentNet","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:StockholdersEquity","target":"us-gaap:CommonStockValue","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:LiabilitiesAndStockholdersEquity","target":"us-gaap:CommitmentsAndContingencies","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AssetsCurrent","target":"us-gaap:InventoryNet","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:Liabilities","target":"us-gaap:OtherLiabilitiesNoncurrent","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:LiabilitiesCurrent","target":"us-gaap:ContractWithCustomerLiabilityCurrent","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:Assets","target":"us-gaap:Goodwill","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:StockholdersEquity","target":"us-gaap:AdditionalPaidInCapitalCommonStock","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AssetsCurrent","target":"us-gaap:PrepaidExpenseAndOtherAssetsCurrent","order":4.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:Liabilities","target":"us-gaap:OperatingLeaseLiabilityNoncurrent","order":4.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:LiabilitiesCurrent","target":"us-gaap:LinesOfCreditCurrent","order":4.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:Assets","target":"us-gaap:OtherAssetsNoncurrent","order":4.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:StockholdersEquity","target":"us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax","order":4.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AssetsCurrent","target":"us-gaap:RestrictedCashCurrent","order":5.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:Assets","target":"us-gaap:OperatingLeaseRightOfUseAsset","order":5.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:StockholdersEquity","target":"us-gaap:RetainedEarningsAccumulatedDeficit","order":5.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AssetsCurrent","target":"us-gaap:CashAndCashEquivalentsAtCarryingValue","order":6.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:StockholdersEquity","target":"us-gaap:TreasuryStockValue","order":6.0,"properties":[{"property":"xbrl:weight","value":-1.0}]}]},{"name":"rpt:network-calculation-122","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect","order":1.0},{"source":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect","target":"us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInFinancingActivities","target":"us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation","order":1.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivities","target":"us-gaap:ProfitLoss","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInInvestingActivities","target":"us-gaap:PaymentsToAcquirePropertyPlantAndEquipment","order":1.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect","target":"us-gaap:NetCashProvidedByUsedInFinancingActivities","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInFinancingActivities","target":"us-gaap:ProceedsFromStockOptionsExercised","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivities","target":"us-gaap:Depreciation","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInInvestingActivities","target":"us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect","target":"us-gaap:NetCashProvidedByUsedInInvestingActivities","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInFinancingActivities","target":"us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivities","target":"us-gaap:GainLossOnDispositionOfAssets","order":3.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInInvestingActivities","target":"us-gaap:PaymentsToAcquireMarketableSecurities","order":3.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect","target":"us-gaap:NetCashProvidedByUsedInOperatingActivities","order":4.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInFinancingActivities","target":"us-gaap:PaymentsOfDebtIssuanceCosts","order":4.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivities","target":"us-gaap:ShareBasedCompensation","order":4.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInInvestingActivities","target":"calx:ProceedsFromSaleOfProductLine","order":4.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInFinancingActivities","target":"us-gaap:RepaymentsOfLinesOfCredit","order":5.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivities","target":"us-gaap:IncreaseDecreaseInAccountsReceivable","order":5.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInFinancingActivities","target":"us-gaap:ProceedsFromLinesOfCredit","order":6.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivities","target":"us-gaap:IncreaseDecreaseInInventories","order":6.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInFinancingActivities","target":"calx:PaymentsForFinancingArrangements","order":7.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivities","target":"us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets","order":7.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInFinancingActivities","target":"us-gaap:ProceedsFromIssuanceOfCommonStock","order":8.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivities","target":"us-gaap:IncreaseDecreaseInAccountsPayable","order":8.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivities","target":"us-gaap:IncreaseDecreaseInAccruedLiabilities","order":9.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivities","target":"us-gaap:IncreaseDecreaseInDeferredRevenue","order":10.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivities","target":"us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities","order":11.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivities","target":"calx:GainLossOnSaleOfProductLine","order":12.0,"properties":[{"property":"xbrl:weight","value":-1.0}]}]},{"name":"rpt:network-calculation-123","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest","order":1.0},{"source":"xbrl:rootSource","target":"us-gaap:NonoperatingIncomeExpense","order":2.0},{"source":"us-gaap:OperatingExpenses","target":"us-gaap:ResearchAndDevelopmentExpense","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:GrossProfit","target":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NonoperatingIncomeExpense","target":"us-gaap:InvestmentIncomeNet","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments","target":"us-gaap:InvestmentIncomeNet","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:OperatingIncomeLoss","target":"us-gaap:GrossProfit","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:ProfitLoss","target":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest","target":"us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:OperatingExpenses","target":"us-gaap:SellingAndMarketingExpense","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:GrossProfit","target":"us-gaap:CostOfGoodsAndServicesSold","order":2.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:NonoperatingIncomeExpense","target":"us-gaap:OtherNonoperatingIncomeExpense","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments","target":"us-gaap:OtherNonoperatingIncomeExpense","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:OperatingIncomeLoss","target":"us-gaap:OperatingExpenses","order":2.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:ProfitLoss","target":"us-gaap:IncomeTaxExpenseBenefit","order":2.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest","target":"us-gaap:ProfitLoss","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:OperatingExpenses","target":"us-gaap:GeneralAndAdministrativeExpense","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments","target":"us-gaap:OperatingIncomeLoss","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:OperatingExpenses","target":"us-gaap:ImpairmentOfIntangibleAssetsFinitelived","order":4.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:OperatingExpenses","target":"us-gaap:RestructuringCharges","order":5.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:OperatingExpenses","target":"us-gaap:GainLossOnDispositionOfAssets1","order":6.0,"properties":[{"property":"xbrl:weight","value":-1.0}]}]},{"name":"rpt:network-calculation-124","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:AssetsFairValueDisclosure","order":1.0},{"source":"us-gaap:AssetsFairValueDisclosure","target":"us-gaap:CashAndCashEquivalentsFairValueDisclosure","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AssetsFairValueDisclosure","target":"us-gaap:AvailableForSaleSecuritiesDebtSecurities","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]},{"name":"rpt:network-calculation-125","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:DeferredTaxLiabilities","order":1.0},{"source":"us-gaap:DeferredTaxLiabilities","target":"us-gaap:DeferredTaxAssetsGross","order":1.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:DeferredTaxAssetsGross","target":"us-gaap:DeferredTaxAssetsOperatingLossCarryforwards","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:DeferredTaxLiabilities","target":"us-gaap:DeferredTaxAssetsValuationAllowance","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:DeferredTaxAssetsGross","target":"us-gaap:TaxCreditCarryforwardAmount","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:DeferredTaxAssetsGross","target":"us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:DeferredTaxAssetsGross","target":"us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities","order":4.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:DeferredTaxAssetsGross","target":"us-gaap:DeferredTaxAssetsDeferredIncome","order":5.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:DeferredTaxAssetsGross","target":"us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost","order":6.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:DeferredTaxAssetsGross","target":"us-gaap:DeferredTaxAssetsOther","order":7.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:DeferredTaxAssetsGross","target":"us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets","order":8.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]},{"name":"rpt:network-calculation-126","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:IncomeTaxExpenseBenefit","order":1.0},{"source":"us-gaap:CurrentIncomeTaxExpenseBenefit","target":"us-gaap:CurrentStateAndLocalTaxExpenseBenefit","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:IncomeTaxExpenseBenefit","target":"us-gaap:CurrentIncomeTaxExpenseBenefit","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:CurrentIncomeTaxExpenseBenefit","target":"us-gaap:CurrentForeignTaxExpenseBenefit","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:IncomeTaxExpenseBenefit","target":"us-gaap:DeferredForeignIncomeTaxExpenseBenefit","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]},{"name":"rpt:network-calculation-127","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","order":1.0},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","target":"us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","target":"us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","target":"us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","target":"us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch","order":4.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","target":"calx:EffectiveIncomeTaxRateReconciliationForeignIncomeInclusionPercent","order":5.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","target":"us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost","order":6.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","target":"us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseOther","order":7.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","target":"us-gaap:EffectiveIncomeTaxRateReconciliationPriorYearIncomeTaxes","order":8.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","target":"us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance","order":9.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","target":"us-gaap:EffectiveIncomeTaxRateReconciliationTaxCutsAndJobsActOf2017Percent","order":10.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","target":"calx:EffectiveIncomeTaxRateReconciliationTopic606AdjustmentPercent","order":11.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]},{"name":"rpt:network-calculation-128","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments","order":1.0},{"source":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments","target":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments","target":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]},{"name":"rpt:network-calculation-129","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding","order":1.0},{"source":"us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding","target":"us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding","target":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasic","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]},{"name":"rpt:network-calculation-130","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:ContractWithCustomerLiability","order":1.0},{"source":"us-gaap:ContractWithCustomerLiability","target":"us-gaap:ContractWithCustomerLiabilityNoncurrent","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:ContractWithCustomerLiability","target":"us-gaap:ContractWithCustomerLiabilityCurrent","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]}],"groups":[{"name":"rpt:group-0","groupURI":"http://www.calix.com/role/AccumulatedOtherComprehensiveLoss"},{"name":"rpt:group-1","groupURI":"http://www.calix.com/role/AccumulatedOtherComprehensiveLossDetails"},{"name":"rpt:group-2","groupURI":"http://www.calix.com/role/AccumulatedOtherComprehensiveLossTables"},{"name":"rpt:group-3","groupURI":"http://www.calix.com/role/BalanceSheetDetails"},{"name":"rpt:group-4","groupURI":"http://www.calix.com/role/BalanceSheetDetailsAccountsReceivableDetails"},{"name":"rpt:group-5","groupURI":"http://www.calix.com/role/BalanceSheetDetailsAccruedLiabilitiesDetails"},{"name":"rpt:group-6","groupURI":"http://www.calix.com/role/BalanceSheetDetailsAllowanceandProductReturnReserveDetails"},{"name":"rpt:group-7","groupURI":"http://www.calix.com/role/BalanceSheetDetailsCapitalizedCloudImplementationCostsDetails"},{"name":"rpt:group-8","groupURI":"http://www.calix.com/role/BalanceSheetDetailsInventoryDetails"},{"name":"rpt:group-9","groupURI":"http://www.calix.com/role/BalanceSheetDetailsLossonAssetRetirementDetails"},{"name":"rpt:group-10","groupURI":"http://www.calix.com/role/BalanceSheetDetailsProductWarrantyActivityDetails"},{"name":"rpt:group-11","groupURI":"http://www.calix.com/role/BalanceSheetDetailsPropertyandEquipmentnetDetails"},{"name":"rpt:group-12","groupURI":"http://www.calix.com/role/BalanceSheetDetailsRestructuringDetails"},{"name":"rpt:group-13","groupURI":"http://www.calix.com/role/BalanceSheetDetailsTables"},{"name":"rpt:group-14","groupURI":"http://www.calix.com/role/CashCashEquivalentsRestrictedCashandMarketableSecurities"},{"name":"rpt:group-15","groupURI":"http://www.calix.com/role/CashCashEquivalentsRestrictedCashandMarketableSecuritiesDetails"},{"name":"rpt:group-16","groupURI":"http://www.calix.com/role/CashCashEquivalentsRestrictedCashandMarketableSecuritiesTables"},{"name":"rpt:group-17","groupURI":"http://www.calix.com/role/CommitmentsandContingencies"},{"name":"rpt:group-18","groupURI":"http://www.calix.com/role/CommitmentsandContingenciesOperatingLeaseDetails"},{"name":"rpt:group-19","groupURI":"http://www.calix.com/role/CommitmentsandContingenciesOperatingLeaseLiabilityDetails"},{"name":"rpt:group-20","groupURI":"http://www.calix.com/role/CommitmentsandContingenciesTables"},{"name":"rpt:group-21","groupURI":"http://www.calix.com/role/CommitmentsandContingenciesTextualDetails"},{"name":"rpt:group-22","groupURI":"http://www.calix.com/role/ConsolidatedBalanceSheets"},{"name":"rpt:group-23","groupURI":"http://www.calix.com/role/ConsolidatedBalanceSheetsParenthetical"},{"name":"rpt:group-24","groupURI":"http://www.calix.com/role/ConsolidatedStatementsofCashFlows"},{"name":"rpt:group-25","groupURI":"http://www.calix.com/role/ConsolidatedStatementsofComprehensiveIncomeLoss"},{"name":"rpt:group-26","groupURI":"http://www.calix.com/role/ConsolidatedStatementsofStockholdersEquity"},{"name":"rpt:group-27","groupURI":"http://www.calix.com/role/Cover"},{"name":"rpt:group-28","groupURI":"http://www.calix.com/role/CreditAgreements"},{"name":"rpt:group-29","groupURI":"http://www.calix.com/role/CreditAgreementsFinancingArrangementsDetails"},{"name":"rpt:group-30","groupURI":"http://www.calix.com/role/CreditAgreementsLineofCreditDetails"},{"name":"rpt:group-31","groupURI":"http://www.calix.com/role/DescriptionofBusinessandSignificantAccountingPolicies"},{"name":"rpt:group-32","groupURI":"http://www.calix.com/role/DescriptionofBusinessandSignificantAccountingPoliciesAdditionalInformationDetail"},{"name":"rpt:group-33","groupURI":"http://www.calix.com/role/DescriptionofBusinessandSignificantAccountingPoliciesContractCostsDetails"},{"name":"rpt:group-34","groupURI":"http://www.calix.com/role/DescriptionofBusinessandSignificantAccountingPoliciesCustomerConcentrationRiskDetails"},{"name":"rpt:group-35","groupURI":"http://www.calix.com/role/DescriptionofBusinessandSignificantAccountingPoliciesPolicies"},{"name":"rpt:group-36","groupURI":"http://www.calix.com/role/DescriptionofBusinessandSignificantAccountingPoliciesUsefulLivesofPropertyandEquipmentDetails"},{"name":"rpt:group-37","groupURI":"http://www.calix.com/role/EmployeeBenefitPlan"},{"name":"rpt:group-38","groupURI":"http://www.calix.com/role/EmployeeBenefitPlanDetails"},{"name":"rpt:group-39","groupURI":"http://www.calix.com/role/FairValueMeasurements"},{"name":"rpt:group-40","groupURI":"http://www.calix.com/role/FairValueMeasurementsDetails"},{"name":"rpt:group-41","groupURI":"http://www.calix.com/role/FairValueMeasurementsTables"},{"name":"rpt:group-42","groupURI":"http://www.calix.com/role/IncomeTaxes"},{"name":"rpt:group-43","groupURI":"http://www.calix.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"},{"name":"rpt:group-44","groupURI":"http://www.calix.com/role/IncomeTaxesComponentsofIncomeTaxProvisionDetails"},{"name":"rpt:group-45","groupURI":"http://www.calix.com/role/IncomeTaxesIncomeTaxRateReconciliationDetails"},{"name":"rpt:group-46","groupURI":"http://www.calix.com/role/IncomeTaxesLossbeforeProvisionforIncomeTaxesDetails"},{"name":"rpt:group-47","groupURI":"http://www.calix.com/role/IncomeTaxesTables"},{"name":"rpt:group-48","groupURI":"http://www.calix.com/role/IncomeTaxesTextualDetails"},{"name":"rpt:group-49","groupURI":"http://www.calix.com/role/IncomeTaxesUnrecognizedTaxBenefitsActivityDetails"},{"name":"rpt:group-50","groupURI":"http://www.calix.com/role/NetIncomeLossPerCommonShare"},{"name":"rpt:group-51","groupURI":"http://www.calix.com/role/NetIncomeLossPerCommonShareBasicandDilutedSharesCalculationDetails"},{"name":"rpt:group-52","groupURI":"http://www.calix.com/role/NetIncomeLossPerCommonShareTables"},{"name":"rpt:group-53","groupURI":"http://www.calix.com/role/ProductLineDivestiture"},{"name":"rpt:group-54","groupURI":"http://www.calix.com/role/ProductLineDivestitureDetails"},{"name":"rpt:group-55","groupURI":"http://www.calix.com/role/QuarterlyFinancialDataUnaudited"},{"name":"rpt:group-56","groupURI":"http://www.calix.com/role/QuarterlyFinancialDataUnauditedDetails"},{"name":"rpt:group-57","groupURI":"http://www.calix.com/role/QuarterlyFinancialDataUnauditedTables"},{"name":"rpt:group-58","groupURI":"http://www.calix.com/role/RevenuefromContractswithCustomers"},{"name":"rpt:group-59","groupURI":"http://www.calix.com/role/RevenuefromContractswithCustomersConcentrationRiskDetails"},{"name":"rpt:group-60","groupURI":"http://www.calix.com/role/RevenuefromContractswithCustomersContractAssetsandLiabilitiesDetails"},{"name":"rpt:group-61","groupURI":"http://www.calix.com/role/RevenuefromContractswithCustomersContractCostsDetails"},{"name":"rpt:group-62","groupURI":"http://www.calix.com/role/RevenuefromContractswithCustomersPerformanceObligationDetails"},{"name":"rpt:group-63","groupURI":"http://www.calix.com/role/RevenuefromContractswithCustomersPropertyandEquipmentbyGeographicRegionDetails"},{"name":"rpt:group-64","groupURI":"http://www.calix.com/role/RevenuefromContractswithCustomersRevenuebyGeographicRegionDetails"},{"name":"rpt:group-65","groupURI":"http://www.calix.com/role/RevenuefromContractswithCustomersTables"},{"name":"rpt:group-66","groupURI":"http://www.calix.com/role/StockholdersEquity"},{"name":"rpt:group-67","groupURI":"http://www.calix.com/role/StockholdersEquityAssumptionsDetails"},{"name":"rpt:group-68","groupURI":"http://www.calix.com/role/StockholdersEquityESPPDetails"},{"name":"rpt:group-69","groupURI":"http://www.calix.com/role/StockholdersEquityEquityIncentivePlansDetails"},{"name":"rpt:group-70","groupURI":"http://www.calix.com/role/StockholdersEquityFairValueofAwardsGrantedDetails"},{"name":"rpt:group-71","groupURI":"http://www.calix.com/role/StockholdersEquityRSUPRSUandRSAActivitiesDetails"},{"name":"rpt:group-72","groupURI":"http://www.calix.com/role/StockholdersEquitySharesReservedForFutureIssuanceDetails"},{"name":"rpt:group-73","groupURI":"http://www.calix.com/role/StockholdersEquityStockBasedCompensationExpenseDetails"},{"name":"rpt:group-74","groupURI":"http://www.calix.com/role/StockholdersEquityStockOfferingTreasuryStockRetirementPreferredStockandCommonStockDetails"},{"name":"rpt:group-75","groupURI":"http://www.calix.com/role/StockholdersEquityStockOptionsActivityDetails"},{"name":"rpt:group-76","groupURI":"http://www.calix.com/role/StockholdersEquityTables"},{"name":"rpt:group-77","groupURI":"http://www.calix.com/role/StockholdersEquityUnrecognizedStockbasedCompensationExpensesDetails"},{"name":"rpt:group-78","groupURI":"http://www.calix.com/role/CommitmentsandContingenciesOperatingLeaseDetails_1"},{"name":"rpt:group-79","groupURI":"http://www.calix.com/role/RevenuefromContractswithCustomersPerformanceObligationDetails_1"}],"groupContents":[{"groupName":"rpt:group-0","forObject":"rpt:network-presentation-34"},{"groupName":"rpt:group-1","forObject":"rpt:network-presentation-35"},{"groupName":"rpt:group-2","forObject":"rpt:network-presentation-36"},{"groupName":"rpt:group-3","forObject":"rpt:network-presentation-37"},{"groupName":"rpt:group-4","forObject":"rpt:network-presentation-38"},{"groupName":"rpt:group-5","forObject":"rpt:network-presentation-39"},{"groupName":"rpt:group-6","forObject":"rpt:network-presentation-40"},{"groupName":"rpt:group-7","forObject":"rpt:network-presentation-41"},{"groupName":"rpt:group-8","forObject":"rpt:network-presentation-42"},{"groupName":"rpt:group-9","forObject":"rpt:network-presentation-43"},{"groupName":"rpt:group-10","forObject":"rpt:network-presentation-44"},{"groupName":"rpt:group-11","forObject":"rpt:network-presentation-45"},{"groupName":"rpt:group-12","forObject":"rpt:network-presentation-46"},{"groupName":"rpt:group-13","forObject":"rpt:network-presentation-47"},{"groupName":"rpt:group-14","forObject":"rpt:network-presentation-48"},{"groupName":"rpt:group-15","forObject":"rpt:network-presentation-49"},{"groupName":"rpt:group-16","forObject":"rpt:network-presentation-50"},{"groupName":"rpt:group-17","forObject":"rpt:network-presentation-51"},{"groupName":"rpt:group-18","forObject":"rpt:network-presentation-52"},{"groupName":"rpt:group-19","forObject":"rpt:network-presentation-53"},{"groupName":"rpt:group-20","forObject":"rpt:network-presentation-54"},{"groupName":"rpt:group-21","forObject":"rpt:network-presentation-55"},{"groupName":"rpt:group-22","forObject":"rpt:network-presentation-56"},{"groupName":"rpt:group-23","forObject":"rpt:network-presentation-57"},{"groupName":"rpt:group-24","forObject":"rpt:network-presentation-58"},{"groupName":"rpt:group-25","forObject":"rpt:network-presentation-59"},{"groupName":"rpt:group-26","forObject":"rpt:network-presentation-60"},{"groupName":"rpt:group-27","forObject":"rpt:network-presentation-61"},{"groupName":"rpt:group-28","forObject":"rpt:network-presentation-62"},{"groupName":"rpt:group-29","forObject":"rpt:network-presentation-63"},{"groupName":"rpt:group-30","forObject":"rpt:network-presentation-64"},{"groupName":"rpt:group-31","forObject":"rpt:network-presentation-65"},{"groupName":"rpt:group-32","forObject":"rpt:network-presentation-66"},{"groupName":"rpt:group-33","forObject":"rpt:network-presentation-67"},{"groupName":"rpt:group-34","forObject":"rpt:network-presentation-68"},{"groupName":"rpt:group-35","forObject":"rpt:network-presentation-69"},{"groupName":"rpt:group-36","forObject":"rpt:network-presentation-70"},{"groupName":"rpt:group-37","forObject":"rpt:network-presentation-71"},{"groupName":"rpt:group-38","forObject":"rpt:network-presentation-72"},{"groupName":"rpt:group-39","forObject":"rpt:network-presentation-73"},{"groupName":"rpt:group-40","forObject":"rpt:network-presentation-74"},{"groupName":"rpt:group-41","forObject":"rpt:network-presentation-75"},{"groupName":"rpt:group-42","forObject":"rpt:network-presentation-76"},{"groupName":"rpt:group-43","forObject":"rpt:network-presentation-77"},{"groupName":"rpt:group-44","forObject":"rpt:network-presentation-78"},{"groupName":"rpt:group-45","forObject":"rpt:network-presentation-79"},{"groupName":"rpt:group-46","forObject":"rpt:network-presentation-80"},{"groupName":"rpt:group-47","forObject":"rpt:network-presentation-81"},{"groupName":"rpt:group-48","forObject":"rpt:network-presentation-82"},{"groupName":"rpt:group-49","forObject":"rpt:network-presentation-83"},{"groupName":"rpt:group-50","forObject":"rpt:network-presentation-84"},{"groupName":"rpt:group-51","forObject":"rpt:network-presentation-85"},{"groupName":"rpt:group-52","forObject":"rpt:network-presentation-86"},{"groupName":"rpt:group-53","forObject":"rpt:network-presentation-87"},{"groupName":"rpt:group-54","forObject":"rpt:network-presentation-88"},{"groupName":"rpt:group-55","forObject":"rpt:network-presentation-89"},{"groupName":"rpt:group-56","forObject":"rpt:network-presentation-90"},{"groupName":"rpt:group-57","forObject":"rpt:network-presentation-91"},{"groupName":"rpt:group-58","forObject":"rpt:network-presentation-92"},{"groupName":"rpt:group-59","forObject":"rpt:network-presentation-93"},{"groupName":"rpt:group-60","forObject":"rpt:network-presentation-94"},{"groupName":"rpt:group-61","forObject":"rpt:network-presentation-95"},{"groupName":"rpt:group-62","forObject":"rpt:network-presentation-96"},{"groupName":"rpt:group-63","forObject":"rpt:network-presentation-97"},{"groupName":"rpt:group-64","forObject":"rpt:network-presentation-98"},{"groupName":"rpt:group-65","forObject":"rpt:network-presentation-99"},{"groupName":"rpt:group-66","forObject":"rpt:network-presentation-100"},{"groupName":"rpt:group-67","forObject":"rpt:network-presentation-101"},{"groupName":"rpt:group-68","forObject":"rpt:network-presentation-102"},{"groupName":"rpt:group-69","forObject":"rpt:network-presentation-103"},{"groupName":"rpt:group-70","forObject":"rpt:network-presentation-104"},{"groupName":"rpt:group-71","forObject":"rpt:network-presentation-105"},{"groupName":"rpt:group-72","forObject":"rpt:network-presentation-106"},{"groupName":"rpt:group-73","forObject":"rpt:network-presentation-107"},{"groupName":"rpt:group-74","forObject":"rpt:network-presentation-108"},{"groupName":"rpt:group-75","forObject":"rpt:network-presentation-109"},{"groupName":"rpt:group-76","forObject":"rpt:network-presentation-110"},{"groupName":"rpt:group-77","forObject":"rpt:network-presentation-111"},{"groupName":"rpt:group-4","forObject":"rpt:network-calculation-112"},{"groupName":"rpt:group-5","forObject":"rpt:network-calculation-113"},{"groupName":"rpt:group-8","forObject":"rpt:network-calculation-114"},{"groupName":"rpt:group-9","forObject":"rpt:network-calculation-115"},{"groupName":"rpt:group-11","forObject":"rpt:network-calculation-116"},{"groupName":"rpt:group-15","forObject":"rpt:network-calculation-117"},{"groupName":"rpt:group-18","forObject":"rpt:network-calculation-118"},{"groupName":"rpt:group-78","forObject":"rpt:network-calculation-119"},{"groupName":"rpt:group-19","forObject":"rpt:network-calculation-120"},{"groupName":"rpt:group-22","forObject":"rpt:network-calculation-121"},{"groupName":"rpt:group-24","forObject":"rpt:network-calculation-122"},{"groupName":"rpt:group-25","forObject":"rpt:network-calculation-123"},{"groupName":"rpt:group-40","forObject":"rpt:network-calculation-124"},{"groupName":"rpt:group-43","forObject":"rpt:network-calculation-125"},{"groupName":"rpt:group-44","forObject":"rpt:network-calculation-126"},{"groupName":"rpt:group-45","forObject":"rpt:network-calculation-127"},{"groupName":"rpt:group-46","forObject":"rpt:network-calculation-128"},{"groupName":"rpt:group-51","forObject":"rpt:network-calculation-129"},{"groupName":"rpt:group-60","forObject":"rpt:network-calculation-130"},{"groupName":"rpt:group-1","forObject":"rpt:cube-0"},{"groupName":"rpt:group-6","forObject":"rpt:cube-1"},{"groupName":"rpt:group-7","forObject":"rpt:cube-2"},{"groupName":"rpt:group-9","forObject":"rpt:cube-3"},{"groupName":"rpt:group-11","forObject":"rpt:cube-4"},{"groupName":"rpt:group-12","forObject":"rpt:cube-5"},{"groupName":"rpt:group-15","forObject":"rpt:cube-6"},{"groupName":"rpt:group-21","forObject":"rpt:cube-7"},{"groupName":"rpt:group-25","forObject":"rpt:cube-8"},{"groupName":"rpt:group-26","forObject":"rpt:cube-9"},{"groupName":"rpt:group-29","forObject":"rpt:cube-10"},{"groupName":"rpt:group-30","forObject":"rpt:cube-11"},{"groupName":"rpt:group-32","forObject":"rpt:cube-12"},{"groupName":"rpt:group-33","forObject":"rpt:cube-13"},{"groupName":"rpt:group-34","forObject":"rpt:cube-14"},{"groupName":"rpt:group-36","forObject":"rpt:cube-15"},{"groupName":"rpt:group-40","forObject":"rpt:cube-16"},{"groupName":"rpt:group-48","forObject":"rpt:cube-17"},{"groupName":"rpt:group-54","forObject":"rpt:cube-18"},{"groupName":"rpt:group-59","forObject":"rpt:cube-19"},{"groupName":"rpt:group-60","forObject":"rpt:cube-20"},{"groupName":"rpt:group-62","forObject":"rpt:cube-21"},{"groupName":"rpt:group-79","forObject":"rpt:cube-22"},{"groupName":"rpt:group-63","forObject":"rpt:cube-23"},{"groupName":"rpt:group-64","forObject":"rpt:cube-24"},{"groupName":"rpt:group-67","forObject":"rpt:cube-25"},{"groupName":"rpt:group-68","forObject":"rpt:cube-26"},{"groupName":"rpt:group-69","forObject":"rpt:cube-27"},{"groupName":"rpt:group-70","forObject":"rpt:cube-28"},{"groupName":"rpt:group-71","forObject":"rpt:cube-29"},{"groupName":"rpt:group-72","forObject":"rpt:cube-30"},{"groupName":"rpt:group-73","forObject":"rpt:cube-31"},{"groupName":"rpt:group-74","forObject":"rpt:cube-32"},{"groupName":"rpt:group-77","forObject":"rpt:cube-33"}],"facts":[{"name":"rpt:f-0","factDimensions":{"xbrl:concept":"dei:EntityCentralIndexKey","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"0001406666","language":"en-us"}]},{"name":"rpt:f-1","factDimensions":{"xbrl:concept":"dei:AmendmentFlag","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"false"}]},{"name":"rpt:f-2","factDimensions":{"xbrl:concept":"dei:DocumentFiscalYearFocus","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"2020"}]},{"name":"rpt:f-3","factDimensions":{"xbrl:concept":"dei:DocumentFiscalPeriodFocus","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"FY","language":"en-us"}]},{"name":"rpt:f-4","factDimensions":{"xbrl:concept":"us-gaap:AccountingStandardsUpdateExtensibleList","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"us-gaap:AccountingStandardsUpdate201602Member","language":"en-us"}]},{"name":"rpt:f-5","factDimensions":{"xbrl:concept":"calx:ProductWarrantyPeriod","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","srt:RangeAxis":"srt:MinimumMember"},"factValues":[{"value":"P1Y"}]},{"name":"rpt:f-6","factDimensions":{"xbrl:concept":"calx:ProductWarrantyPeriod","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"P3Y"}]},{"name":"rpt:f-7","factDimensions":{"xbrl:concept":"calx:ProductWarrantyPeriod","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","srt:RangeAxis":"srt:MaximumMember"},"factValues":[{"value":"P5Y"}]},{"name":"rpt:f-8","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentUsefulLife","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:ComputerSoftwareIntangibleAssetMember","srt:RangeAxis":"srt:MinimumMember"},"factValues":[{"value":"P3Y"}]},{"name":"rpt:f-9","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"us-gaap:AccountsPayableAndAccruedLiabilitiesCurrent","language":"en-us"}]},{"name":"rpt:f-10","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"us-gaap:AccountsPayableAndAccruedLiabilitiesCurrent","language":"en-us"}]},{"name":"rpt:f-11","factDimensions":{"xbrl:concept":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis":"2021-01-01"},"factValues":[{"value":"P1Y"}]},{"name":"rpt:f-12","factDimensions":{"xbrl:concept":"dei:DocumentType","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"10-K","language":"en-us"}]},{"name":"rpt:f-13","factDimensions":{"xbrl:concept":"dei:DocumentAnnualReport","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"true"}]},{"name":"rpt:f-14","factDimensions":{"xbrl:concept":"dei:DocumentPeriodEndDate","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"2020-12-31"}]},{"name":"rpt:f-15","factDimensions":{"xbrl:concept":"dei:CurrentFiscalYearEndDate","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"--12-31"}]},{"name":"rpt:f-16","factDimensions":{"xbrl:concept":"dei:DocumentTransitionReport","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"false"}]},{"name":"rpt:f-17","factDimensions":{"xbrl:concept":"dei:EntityFileNumber","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"001-34674","language":"en-us"}]},{"name":"rpt:f-18","factDimensions":{"xbrl:concept":"dei:EntityRegistrantName","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"Calix, Inc.","language":"en-us"}]},{"name":"rpt:f-19","factDimensions":{"xbrl:concept":"dei:EntityIncorporationStateCountryCode","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"DE","language":"en-us"}]},{"name":"rpt:f-20","factDimensions":{"xbrl:concept":"dei:EntityTaxIdentificationNumber","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"68-0438710","language":"en-us"}]},{"name":"rpt:f-21","factDimensions":{"xbrl:concept":"dei:EntityAddressAddressLine1","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"2777 Orchard Parkway","language":"en-us"}]},{"name":"rpt:f-22","factDimensions":{"xbrl:concept":"dei:EntityAddressCityOrTown","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"San Jose","language":"en-us"}]},{"name":"rpt:f-23","factDimensions":{"xbrl:concept":"dei:EntityAddressStateOrProvince","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"CA","language":"en-us"}]},{"name":"rpt:f-24","factDimensions":{"xbrl:concept":"dei:EntityAddressPostalZipCode","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"95134","language":"en-us"}]},{"name":"rpt:f-25","factDimensions":{"xbrl:concept":"dei:CityAreaCode","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"408","language":"en-us"}]},{"name":"rpt:f-26","factDimensions":{"xbrl:concept":"dei:LocalPhoneNumber","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"514-3000","language":"en-us"}]},{"name":"rpt:f-27","factDimensions":{"xbrl:concept":"dei:Security12bTitle","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"Common Stock, $0.025 par value","language":"en-us"}]},{"name":"rpt:f-28","factDimensions":{"xbrl:concept":"dei:TradingSymbol","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"CALX","language":"en-us"}]},{"name":"rpt:f-29","factDimensions":{"xbrl:concept":"dei:SecurityExchangeName","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"NYSE","language":"en-us"}]},{"name":"rpt:f-30","factDimensions":{"xbrl:concept":"dei:EntityWellKnownSeasonedIssuer","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"No","language":"en-us"}]},{"name":"rpt:f-31","factDimensions":{"xbrl:concept":"dei:EntityVoluntaryFilers","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"No","language":"en-us"}]},{"name":"rpt:f-32","factDimensions":{"xbrl:concept":"dei:EntityCurrentReportingStatus","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"Yes","language":"en-us"}]},{"name":"rpt:f-33","factDimensions":{"xbrl:concept":"dei:EntityInteractiveDataCurrent","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"Yes","language":"en-us"}]},{"name":"rpt:f-34","factDimensions":{"xbrl:concept":"dei:EntityFilerCategory","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"Accelerated Filer","language":"en-us"}]},{"name":"rpt:f-35","factDimensions":{"xbrl:concept":"dei:EntitySmallBusiness","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"false"}]},{"name":"rpt:f-36","factDimensions":{"xbrl:concept":"dei:EntityEmergingGrowthCompany","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"false"}]},{"name":"rpt:f-37","factDimensions":{"xbrl:concept":"dei:IcfrAuditorAttestationFlag","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"true"}]},{"name":"rpt:f-38","factDimensions":{"xbrl:concept":"dei:EntityShellCompany","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"false"}]},{"name":"rpt:f-39","factDimensions":{"xbrl:concept":"dei:EntityPublicFloat","xbrl:period":"2020-06-27T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"679000000","decimals":-6}]},{"name":"rpt:f-40","factDimensions":{"xbrl:concept":"dei:EntityCommonStockSharesOutstanding","xbrl:period":"2021-02-11T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"62452057"}]},{"name":"rpt:f-41","factDimensions":{"xbrl:concept":"dei:DocumentsIncorporatedByReferenceTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"text-align:center\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:120%\">DOCUMENTS INCORPORATED BY REFERENCE</span></div><div style=\"text-align:center\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%\">Portions of the registrant\u2019s definitive proxy statement for its 2021 annual meeting of stockholders are incorporated by reference in Items 10, 11, 12, 13 and 14 of Part\u00a0III.</span></div>","language":"en-us"}]},{"name":"rpt:f-42","factDimensions":{"xbrl:concept":"us-gaap:CashAndCashEquivalentsAtCarryingValue","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"80807000","decimals":-3}]},{"name":"rpt:f-43","factDimensions":{"xbrl:concept":"us-gaap:CashAndCashEquivalentsAtCarryingValue","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"46829000","decimals":-3}]},{"name":"rpt:f-44","factDimensions":{"xbrl:concept":"us-gaap:RestrictedCashCurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-45","factDimensions":{"xbrl:concept":"us-gaap:RestrictedCashCurrent","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"628000","decimals":-3}]},{"name":"rpt:f-46","factDimensions":{"xbrl:concept":"us-gaap:AvailableForSaleSecuritiesDebtSecurities","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"52982000","decimals":-3}]},{"name":"rpt:f-47","factDimensions":{"xbrl:concept":"us-gaap:AvailableForSaleSecuritiesDebtSecurities","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-48","factDimensions":{"xbrl:concept":"us-gaap:AccountsReceivableNetCurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"69419000","decimals":-3}]},{"name":"rpt:f-49","factDimensions":{"xbrl:concept":"us-gaap:AccountsReceivableNetCurrent","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"46509000","decimals":-3}]},{"name":"rpt:f-50","factDimensions":{"xbrl:concept":"us-gaap:InventoryNet","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"52268000","decimals":-3}]},{"name":"rpt:f-51","factDimensions":{"xbrl:concept":"us-gaap:InventoryNet","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"40153000","decimals":-3}]},{"name":"rpt:f-52","factDimensions":{"xbrl:concept":"us-gaap:PrepaidExpenseAndOtherAssetsCurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"11414000","decimals":-3}]},{"name":"rpt:f-53","factDimensions":{"xbrl:concept":"us-gaap:PrepaidExpenseAndOtherAssetsCurrent","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"9698000","decimals":-3}]},{"name":"rpt:f-54","factDimensions":{"xbrl:concept":"us-gaap:AssetsCurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"266890000","decimals":-3}]},{"name":"rpt:f-55","factDimensions":{"xbrl:concept":"us-gaap:AssetsCurrent","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"143817000","decimals":-3}]},{"name":"rpt:f-56","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentNet","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"20381000","decimals":-3}]},{"name":"rpt:f-57","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentNet","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"21527000","decimals":-3}]},{"name":"rpt:f-58","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseRightOfUseAsset","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"11741000","decimals":-3}]},{"name":"rpt:f-59","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseRightOfUseAsset","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"15864000","decimals":-3}]},{"name":"rpt:f-60","factDimensions":{"xbrl:concept":"us-gaap:Goodwill","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"116175000","decimals":-3}]},{"name":"rpt:f-61","factDimensions":{"xbrl:concept":"us-gaap:Goodwill","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"116175000","decimals":-3}]},{"name":"rpt:f-62","factDimensions":{"xbrl:concept":"us-gaap:OtherAssetsNoncurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"12165000","decimals":-3}]},{"name":"rpt:f-63","factDimensions":{"xbrl:concept":"us-gaap:OtherAssetsNoncurrent","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"19440000","decimals":-3}]},{"name":"rpt:f-64","factDimensions":{"xbrl:concept":"us-gaap:Assets","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"427352000","decimals":-3}]},{"name":"rpt:f-65","factDimensions":{"xbrl:concept":"us-gaap:Assets","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"316823000","decimals":-3}]},{"name":"rpt:f-66","factDimensions":{"xbrl:concept":"us-gaap:AccountsPayableCurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"13115000","decimals":-3}]},{"name":"rpt:f-67","factDimensions":{"xbrl:concept":"us-gaap:AccountsPayableCurrent","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"10789000","decimals":-3}]},{"name":"rpt:f-68","factDimensions":{"xbrl:concept":"us-gaap:AccruedLiabilitiesCurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"68736000","decimals":-3}]},{"name":"rpt:f-69","factDimensions":{"xbrl:concept":"us-gaap:AccruedLiabilitiesCurrent","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"57546000","decimals":-3}]},{"name":"rpt:f-70","factDimensions":{"xbrl:concept":"us-gaap:ContractWithCustomerLiabilityCurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"19189000","decimals":-3}]},{"name":"rpt:f-71","factDimensions":{"xbrl:concept":"us-gaap:ContractWithCustomerLiabilityCurrent","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"17158000","decimals":-3}]},{"name":"rpt:f-72","factDimensions":{"xbrl:concept":"us-gaap:LinesOfCreditCurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-73","factDimensions":{"xbrl:concept":"us-gaap:LinesOfCreditCurrent","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"30000000","decimals":-3}]},{"name":"rpt:f-74","factDimensions":{"xbrl:concept":"us-gaap:LiabilitiesCurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"101040000","decimals":-3}]},{"name":"rpt:f-75","factDimensions":{"xbrl:concept":"us-gaap:LiabilitiesCurrent","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"115493000","decimals":-3}]},{"name":"rpt:f-76","factDimensions":{"xbrl:concept":"us-gaap:ContractWithCustomerLiabilityNoncurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"19904000","decimals":-3}]},{"name":"rpt:f-77","factDimensions":{"xbrl:concept":"us-gaap:ContractWithCustomerLiabilityNoncurrent","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"18340000","decimals":-3}]},{"name":"rpt:f-78","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseLiabilityNoncurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"12946000","decimals":-3}]},{"name":"rpt:f-79","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseLiabilityNoncurrent","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"14337000","decimals":-3}]},{"name":"rpt:f-80","factDimensions":{"xbrl:concept":"us-gaap:OtherLiabilitiesNoncurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"13137000","decimals":-3}]},{"name":"rpt:f-81","factDimensions":{"xbrl:concept":"us-gaap:OtherLiabilitiesNoncurrent","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"14625000","decimals":-3}]},{"name":"rpt:f-82","factDimensions":{"xbrl:concept":"us-gaap:Liabilities","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"147027000","decimals":-3}]},{"name":"rpt:f-83","factDimensions":{"xbrl:concept":"us-gaap:Liabilities","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"162795000","decimals":-3}]},{"name":"rpt:f-84","factDimensions":{"xbrl:concept":"us-gaap:CommitmentsAndContingencies","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"}},{"name":"rpt:f-85","factDimensions":{"xbrl:concept":"us-gaap:CommitmentsAndContingencies","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"}},{"name":"rpt:f-86","factDimensions":{"xbrl:concept":"us-gaap:PreferredStockParOrStatedValuePerShare","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"0.025"}]},{"name":"rpt:f-87","factDimensions":{"xbrl:concept":"us-gaap:PreferredStockParOrStatedValuePerShare","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"0.025"}]},{"name":"rpt:f-88","factDimensions":{"xbrl:concept":"us-gaap:PreferredStockSharesAuthorized","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"5000000"}]},{"name":"rpt:f-89","factDimensions":{"xbrl:concept":"us-gaap:PreferredStockSharesAuthorized","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"5000000"}]},{"name":"rpt:f-90","factDimensions":{"xbrl:concept":"us-gaap:PreferredStockSharesOutstanding","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"0"}]},{"name":"rpt:f-91","factDimensions":{"xbrl:concept":"us-gaap:PreferredStockSharesOutstanding","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"0"}]},{"name":"rpt:f-92","factDimensions":{"xbrl:concept":"us-gaap:PreferredStockSharesIssued","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"0"}]},{"name":"rpt:f-93","factDimensions":{"xbrl:concept":"us-gaap:PreferredStockSharesIssued","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"0"}]},{"name":"rpt:f-94","factDimensions":{"xbrl:concept":"us-gaap:PreferredStockValue","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-95","factDimensions":{"xbrl:concept":"us-gaap:PreferredStockValue","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-96","factDimensions":{"xbrl:concept":"us-gaap:CommonStockParOrStatedValuePerShare","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"0.025"}]},{"name":"rpt:f-97","factDimensions":{"xbrl:concept":"us-gaap:CommonStockParOrStatedValuePerShare","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"0.025"}]},{"name":"rpt:f-98","factDimensions":{"xbrl:concept":"us-gaap:CommonStockSharesAuthorized","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"100000000"}]},{"name":"rpt:f-99","factDimensions":{"xbrl:concept":"us-gaap:CommonStockSharesAuthorized","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"100000000"}]},{"name":"rpt:f-100","factDimensions":{"xbrl:concept":"us-gaap:CommonStockSharesIssued","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"62122000","decimals":-3}]},{"name":"rpt:f-101","factDimensions":{"xbrl:concept":"us-gaap:CommonStockSharesOutstanding","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"62122000","decimals":-3}]},{"name":"rpt:f-102","factDimensions":{"xbrl:concept":"us-gaap:CommonStockSharesIssued","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"61778000","decimals":-3}]},{"name":"rpt:f-103","factDimensions":{"xbrl:concept":"us-gaap:CommonStockSharesOutstanding","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"56448000","decimals":-3}]},{"name":"rpt:f-104","factDimensions":{"xbrl:concept":"us-gaap:CommonStockValue","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1553000","decimals":-3}]},{"name":"rpt:f-105","factDimensions":{"xbrl:concept":"us-gaap:CommonStockValue","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1545000","decimals":-3}]},{"name":"rpt:f-106","factDimensions":{"xbrl:concept":"us-gaap:AdditionalPaidInCapitalCommonStock","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"948055000","decimals":-3}]},{"name":"rpt:f-107","factDimensions":{"xbrl:concept":"us-gaap:AdditionalPaidInCapitalCommonStock","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"895899000","decimals":-3}]},{"name":"rpt:f-108","factDimensions":{"xbrl:concept":"us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-191000","decimals":-3}]},{"name":"rpt:f-109","factDimensions":{"xbrl:concept":"us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-854000","decimals":-3}]},{"name":"rpt:f-110","factDimensions":{"xbrl:concept":"us-gaap:RetainedEarningsAccumulatedDeficit","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-669092000","decimals":-3}]},{"name":"rpt:f-111","factDimensions":{"xbrl:concept":"us-gaap:RetainedEarningsAccumulatedDeficit","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-702576000","decimals":-3}]},{"name":"rpt:f-112","factDimensions":{"xbrl:concept":"us-gaap:TreasuryStockShares","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-113","factDimensions":{"xbrl:concept":"us-gaap:TreasuryStockShares","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"5330000","decimals":-3}]},{"name":"rpt:f-114","factDimensions":{"xbrl:concept":"us-gaap:TreasuryStockValue","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-115","factDimensions":{"xbrl:concept":"us-gaap:TreasuryStockValue","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"39986000","decimals":-3}]},{"name":"rpt:f-116","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"280325000","decimals":-3}]},{"name":"rpt:f-117","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"154028000","decimals":-3}]},{"name":"rpt:f-118","factDimensions":{"xbrl:concept":"us-gaap:LiabilitiesAndStockholdersEquity","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"427352000","decimals":-3}]},{"name":"rpt:f-119","factDimensions":{"xbrl:concept":"us-gaap:LiabilitiesAndStockholdersEquity","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"316823000","decimals":-3}]},{"name":"rpt:f-120","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:ProductOrServiceAxis":"calx:SystemsProductMember"},"factValues":[{"value":"508552000","decimals":-3}]},{"name":"rpt:f-121","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:ProductOrServiceAxis":"calx:SystemsProductMember"},"factValues":[{"value":"393231000","decimals":-3}]},{"name":"rpt:f-122","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:ProductOrServiceAxis":"calx:SystemsProductMember"},"factValues":[{"value":"405923000","decimals":-3}]},{"name":"rpt:f-123","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:ProductOrServiceAxis":"us-gaap:TechnologyServiceMember"},"factValues":[{"value":"32687000","decimals":-3}]},{"name":"rpt:f-124","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:ProductOrServiceAxis":"us-gaap:TechnologyServiceMember"},"factValues":[{"value":"31099000","decimals":-3}]},{"name":"rpt:f-125","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:ProductOrServiceAxis":"us-gaap:TechnologyServiceMember"},"factValues":[{"value":"35397000","decimals":-3}]},{"name":"rpt:f-126","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"541239000","decimals":-3}]},{"name":"rpt:f-127","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"424330000","decimals":-3}]},{"name":"rpt:f-128","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"441320000","decimals":-3}]},{"name":"rpt:f-129","factDimensions":{"xbrl:concept":"us-gaap:CostOfGoodsAndServicesSold","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:ProductOrServiceAxis":"calx:SystemsProductMember"},"factValues":[{"value":"251638000","decimals":-3}]},{"name":"rpt:f-130","factDimensions":{"xbrl:concept":"us-gaap:CostOfGoodsAndServicesSold","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:ProductOrServiceAxis":"calx:SystemsProductMember"},"factValues":[{"value":"211309000","decimals":-3}]},{"name":"rpt:f-131","factDimensions":{"xbrl:concept":"us-gaap:CostOfGoodsAndServicesSold","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:ProductOrServiceAxis":"calx:SystemsProductMember"},"factValues":[{"value":"216529000","decimals":-3}]},{"name":"rpt:f-132","factDimensions":{"xbrl:concept":"us-gaap:CostOfGoodsAndServicesSold","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:ProductOrServiceAxis":"us-gaap:TechnologyServiceMember"},"factValues":[{"value":"22582000","decimals":-3}]},{"name":"rpt:f-133","factDimensions":{"xbrl:concept":"us-gaap:CostOfGoodsAndServicesSold","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:ProductOrServiceAxis":"us-gaap:TechnologyServiceMember"},"factValues":[{"value":"25096000","decimals":-3}]},{"name":"rpt:f-134","factDimensions":{"xbrl:concept":"us-gaap:CostOfGoodsAndServicesSold","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:ProductOrServiceAxis":"us-gaap:TechnologyServiceMember"},"factValues":[{"value":"27409000","decimals":-3}]},{"name":"rpt:f-135","factDimensions":{"xbrl:concept":"us-gaap:CostOfGoodsAndServicesSold","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"274220000","decimals":-3}]},{"name":"rpt:f-136","factDimensions":{"xbrl:concept":"us-gaap:CostOfGoodsAndServicesSold","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"236405000","decimals":-3}]},{"name":"rpt:f-137","factDimensions":{"xbrl:concept":"us-gaap:CostOfGoodsAndServicesSold","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"243938000","decimals":-3}]},{"name":"rpt:f-138","factDimensions":{"xbrl:concept":"us-gaap:GrossProfit","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"267019000","decimals":-3}]},{"name":"rpt:f-139","factDimensions":{"xbrl:concept":"us-gaap:GrossProfit","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"187925000","decimals":-3}]},{"name":"rpt:f-140","factDimensions":{"xbrl:concept":"us-gaap:GrossProfit","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"197382000","decimals":-3}]},{"name":"rpt:f-141","factDimensions":{"xbrl:concept":"us-gaap:SellingAndMarketingExpense","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"94185000","decimals":-3}]},{"name":"rpt:f-142","factDimensions":{"xbrl:concept":"us-gaap:SellingAndMarketingExpense","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"82553000","decimals":-3}]},{"name":"rpt:f-143","factDimensions":{"xbrl:concept":"us-gaap:SellingAndMarketingExpense","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"86432000","decimals":-3}]},{"name":"rpt:f-144","factDimensions":{"xbrl:concept":"us-gaap:ResearchAndDevelopmentExpense","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"85258000","decimals":-3}]},{"name":"rpt:f-145","factDimensions":{"xbrl:concept":"us-gaap:ResearchAndDevelopmentExpense","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"81184000","decimals":-3}]},{"name":"rpt:f-146","factDimensions":{"xbrl:concept":"us-gaap:ResearchAndDevelopmentExpense","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"89963000","decimals":-3}]},{"name":"rpt:f-147","factDimensions":{"xbrl:concept":"us-gaap:GeneralAndAdministrativeExpense","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"44444000","decimals":-3}]},{"name":"rpt:f-148","factDimensions":{"xbrl:concept":"us-gaap:GeneralAndAdministrativeExpense","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"37115000","decimals":-3}]},{"name":"rpt:f-149","factDimensions":{"xbrl:concept":"us-gaap:GeneralAndAdministrativeExpense","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"40500000","decimals":-3}]},{"name":"rpt:f-150","factDimensions":{"xbrl:concept":"us-gaap:RestructuringCharges","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"6286000","decimals":-3}]},{"name":"rpt:f-151","factDimensions":{"xbrl:concept":"us-gaap:RestructuringCharges","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-152","factDimensions":{"xbrl:concept":"us-gaap:RestructuringCharges","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"5705000","decimals":-3}]},{"name":"rpt:f-153","factDimensions":{"xbrl:concept":"us-gaap:ImpairmentOfIntangibleAssetsFinitelived","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-154","factDimensions":{"xbrl:concept":"us-gaap:ImpairmentOfIntangibleAssetsFinitelived","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2474000","decimals":-3}]},{"name":"rpt:f-155","factDimensions":{"xbrl:concept":"us-gaap:ImpairmentOfIntangibleAssetsFinitelived","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-156","factDimensions":{"xbrl:concept":"us-gaap:GainLossOnDispositionOfAssets1","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-157","factDimensions":{"xbrl:concept":"us-gaap:GainLossOnDispositionOfAssets1","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-158","factDimensions":{"xbrl:concept":"us-gaap:GainLossOnDispositionOfAssets1","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"6704000","decimals":-3}]},{"name":"rpt:f-159","factDimensions":{"xbrl:concept":"us-gaap:OperatingExpenses","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"230173000","decimals":-3}]},{"name":"rpt:f-160","factDimensions":{"xbrl:concept":"us-gaap:OperatingExpenses","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"203326000","decimals":-3}]},{"name":"rpt:f-161","factDimensions":{"xbrl:concept":"us-gaap:OperatingExpenses","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"215896000","decimals":-3}]},{"name":"rpt:f-162","factDimensions":{"xbrl:concept":"us-gaap:OperatingIncomeLoss","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"36846000","decimals":-3}]},{"name":"rpt:f-163","factDimensions":{"xbrl:concept":"us-gaap:OperatingIncomeLoss","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-15401000","decimals":-3}]},{"name":"rpt:f-164","factDimensions":{"xbrl:concept":"us-gaap:OperatingIncomeLoss","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-18514000","decimals":-3}]},{"name":"rpt:f-165","factDimensions":{"xbrl:concept":"us-gaap:InvestmentIncomeNet","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-1585000","decimals":-3}]},{"name":"rpt:f-166","factDimensions":{"xbrl:concept":"us-gaap:InvestmentIncomeNet","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-958000","decimals":-3}]},{"name":"rpt:f-167","factDimensions":{"xbrl:concept":"us-gaap:InvestmentIncomeNet","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-632000","decimals":-3}]},{"name":"rpt:f-168","factDimensions":{"xbrl:concept":"us-gaap:OtherNonoperatingIncomeExpense","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-977000","decimals":-3}]},{"name":"rpt:f-169","factDimensions":{"xbrl:concept":"us-gaap:OtherNonoperatingIncomeExpense","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-173000","decimals":-3}]},{"name":"rpt:f-170","factDimensions":{"xbrl:concept":"us-gaap:OtherNonoperatingIncomeExpense","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"378000","decimals":-3}]},{"name":"rpt:f-171","factDimensions":{"xbrl:concept":"us-gaap:NonoperatingIncomeExpense","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-2562000","decimals":-3}]},{"name":"rpt:f-172","factDimensions":{"xbrl:concept":"us-gaap:NonoperatingIncomeExpense","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-1131000","decimals":-3}]},{"name":"rpt:f-173","factDimensions":{"xbrl:concept":"us-gaap:NonoperatingIncomeExpense","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-254000","decimals":-3}]},{"name":"rpt:f-174","factDimensions":{"xbrl:concept":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"34284000","decimals":-3}]},{"name":"rpt:f-175","factDimensions":{"xbrl:concept":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-16532000","decimals":-3}]},{"name":"rpt:f-176","factDimensions":{"xbrl:concept":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-18768000","decimals":-3}]},{"name":"rpt:f-177","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxExpenseBenefit","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"800000","decimals":-3}]},{"name":"rpt:f-178","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxExpenseBenefit","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1162000","decimals":-3}]},{"name":"rpt:f-179","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxExpenseBenefit","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"530000","decimals":-3}]},{"name":"rpt:f-180","factDimensions":{"xbrl:concept":"us-gaap:ProfitLoss","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"33484000","decimals":-3}]},{"name":"rpt:f-181","factDimensions":{"xbrl:concept":"us-gaap:ProfitLoss","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-17694000","decimals":-3}]},{"name":"rpt:f-182","factDimensions":{"xbrl:concept":"us-gaap:ProfitLoss","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-19298000","decimals":-3}]},{"name":"rpt:f-183","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareBasic","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"0.57","decimals":2}]},{"name":"rpt:f-184","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareBasic","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"-0.32","decimals":2}]},{"name":"rpt:f-185","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareBasic","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"-0.37","decimals":2}]},{"name":"rpt:f-186","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareDiluted","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"0.54","decimals":2}]},{"name":"rpt:f-187","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareDiluted","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"-0.32","decimals":2}]},{"name":"rpt:f-188","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareDiluted","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"-0.37","decimals":2}]},{"name":"rpt:f-189","factDimensions":{"xbrl:concept":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasic","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"59074000","decimals":-3}]},{"name":"rpt:f-190","factDimensions":{"xbrl:concept":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasic","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"54993000","decimals":-3}]},{"name":"rpt:f-191","factDimensions":{"xbrl:concept":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasic","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"52609000","decimals":-3}]},{"name":"rpt:f-192","factDimensions":{"xbrl:concept":"us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"61998000","decimals":-3}]},{"name":"rpt:f-193","factDimensions":{"xbrl:concept":"us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"54993000","decimals":-3}]},{"name":"rpt:f-194","factDimensions":{"xbrl:concept":"us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"52609000","decimals":-3}]},{"name":"rpt:f-195","factDimensions":{"xbrl:concept":"us-gaap:ProfitLoss","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"33484000","decimals":-3}]},{"name":"rpt:f-196","factDimensions":{"xbrl:concept":"us-gaap:ProfitLoss","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-17694000","decimals":-3}]},{"name":"rpt:f-197","factDimensions":{"xbrl:concept":"us-gaap:ProfitLoss","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-19298000","decimals":-3}]},{"name":"rpt:f-198","factDimensions":{"xbrl:concept":"us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"663000","decimals":-3}]},{"name":"rpt:f-199","factDimensions":{"xbrl:concept":"us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-101000","decimals":-3}]},{"name":"rpt:f-200","factDimensions":{"xbrl:concept":"us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-584000","decimals":-3}]},{"name":"rpt:f-201","factDimensions":{"xbrl:concept":"us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"34147000","decimals":-3}]},{"name":"rpt:f-202","factDimensions":{"xbrl:concept":"us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-17795000","decimals":-3}]},{"name":"rpt:f-203","factDimensions":{"xbrl:concept":"us-gaap:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-19882000","decimals":-3}]},{"name":"rpt:f-204","factDimensions":{"xbrl:concept":"us-gaap:CommonStockSharesOutstanding","xbrl:period":"2018-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"51509000","decimals":-3}]},{"name":"rpt:f-205","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2018-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"1421000","decimals":-3}]},{"name":"rpt:f-206","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2018-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"851054000","decimals":-3}]},{"name":"rpt:f-207","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2018-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AccumulatedOtherComprehensiveIncomeMember"},"factValues":[{"value":"-169000","decimals":-3}]},{"name":"rpt:f-208","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2018-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:RetainedEarningsMember"},"factValues":[{"value":"-667357000","decimals":-3}]},{"name":"rpt:f-209","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2018-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:TreasuryStockMember"},"factValues":[{"value":"-39986000","decimals":-3}]},{"name":"rpt:f-210","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2018-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"144963000","decimals":-3}]},{"name":"rpt:f-211","factDimensions":{"xbrl:concept":"us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"17473000","decimals":-3}]},{"name":"rpt:f-212","factDimensions":{"xbrl:concept":"us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"17473000","decimals":-3}]},{"name":"rpt:f-213","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"57000","decimals":-3}]},{"name":"rpt:f-214","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"1000","decimals":-3}]},{"name":"rpt:f-215","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"383000","decimals":-3}]},{"name":"rpt:f-216","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"384000","decimals":-3}]},{"name":"rpt:f-217","factDimensions":{"xbrl:concept":"calx:StockIssuedDuringPeriodSharesPerformanceRestrictedStockAwardNetofForfeitures","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"913000","decimals":-3}]},{"name":"rpt:f-218","factDimensions":{"xbrl:concept":"calx:StockIssuedDuringPeriodValuePerformanceRestrictedStockAwardNetofForfeitures","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"22000","decimals":-3}]},{"name":"rpt:f-219","factDimensions":{"xbrl:concept":"calx:StockIssuedDuringPeriodValuePerformanceRestrictedStockAwardNetofForfeitures","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"-96000","decimals":-3}]},{"name":"rpt:f-220","factDimensions":{"xbrl:concept":"calx:StockIssuedDuringPeriodValuePerformanceRestrictedStockAwardNetofForfeitures","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-74000","decimals":-3}]},{"name":"rpt:f-221","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"1476000","decimals":-3}]},{"name":"rpt:f-222","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"38000","decimals":-3}]},{"name":"rpt:f-223","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"7259000","decimals":-3}]},{"name":"rpt:f-224","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"7297000","decimals":-3}]},{"name":"rpt:f-225","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2018-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:CumulativeEffectPeriodOfAdoptionAxis":"srt:CumulativeEffectPeriodOfAdoptionAdjustmentMember","us-gaap:StatementEquityComponentsAxis":"us-gaap:RetainedEarningsMember"},"factValues":[{"value":"1773000","decimals":-3}]},{"name":"rpt:f-226","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2018-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:CumulativeEffectPeriodOfAdoptionAxis":"srt:CumulativeEffectPeriodOfAdoptionAdjustmentMember"},"factValues":[{"value":"1773000","decimals":-3}]},{"name":"rpt:f-227","factDimensions":{"xbrl:concept":"us-gaap:ProfitLoss","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:RetainedEarningsMember"},"factValues":[{"value":"-19298000","decimals":-3}]},{"name":"rpt:f-228","factDimensions":{"xbrl:concept":"us-gaap:ProfitLoss","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-19298000","decimals":-3}]},{"name":"rpt:f-229","factDimensions":{"xbrl:concept":"us-gaap:OtherComprehensiveIncomeLossNetOfTax","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AccumulatedOtherComprehensiveIncomeMember"},"factValues":[{"value":"-584000","decimals":-3}]},{"name":"rpt:f-230","factDimensions":{"xbrl:concept":"us-gaap:OtherComprehensiveIncomeLossNetOfTax","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-584000","decimals":-3}]},{"name":"rpt:f-231","factDimensions":{"xbrl:concept":"us-gaap:CommonStockSharesOutstanding","xbrl:period":"2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"53955000","decimals":-3}]},{"name":"rpt:f-232","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"1482000","decimals":-3}]},{"name":"rpt:f-233","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"876073000","decimals":-3}]},{"name":"rpt:f-234","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AccumulatedOtherComprehensiveIncomeMember"},"factValues":[{"value":"-753000","decimals":-3}]},{"name":"rpt:f-235","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:RetainedEarningsMember"},"factValues":[{"value":"-684882000","decimals":-3}]},{"name":"rpt:f-236","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:TreasuryStockMember"},"factValues":[{"value":"-39986000","decimals":-3}]},{"name":"rpt:f-237","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"151934000","decimals":-3}]},{"name":"rpt:f-238","factDimensions":{"xbrl:concept":"us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"11181000","decimals":-3}]},{"name":"rpt:f-239","factDimensions":{"xbrl:concept":"us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"11181000","decimals":-3}]},{"name":"rpt:f-240","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"75000","decimals":-3}]},{"name":"rpt:f-241","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"2000","decimals":-3}]},{"name":"rpt:f-242","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"440000","decimals":-3}]},{"name":"rpt:f-243","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"442000","decimals":-3}]},{"name":"rpt:f-244","factDimensions":{"xbrl:concept":"calx:StockIssuedDuringPeriodSharesPerformanceRestrictedStockAwardNetofForfeitures","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"611000","decimals":-3}]},{"name":"rpt:f-245","factDimensions":{"xbrl:concept":"calx:StockIssuedDuringPeriodValuePerformanceRestrictedStockAwardNetofForfeitures","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"15000","decimals":-3}]},{"name":"rpt:f-246","factDimensions":{"xbrl:concept":"calx:StockIssuedDuringPeriodValuePerformanceRestrictedStockAwardNetofForfeitures","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"-182000","decimals":-3}]},{"name":"rpt:f-247","factDimensions":{"xbrl:concept":"calx:StockIssuedDuringPeriodValuePerformanceRestrictedStockAwardNetofForfeitures","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-167000","decimals":-3}]},{"name":"rpt:f-248","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"1807000","decimals":-3}]},{"name":"rpt:f-249","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"46000","decimals":-3}]},{"name":"rpt:f-250","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"8387000","decimals":-3}]},{"name":"rpt:f-251","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"8433000","decimals":-3}]},{"name":"rpt:f-252","factDimensions":{"xbrl:concept":"us-gaap:ProfitLoss","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:RetainedEarningsMember"},"factValues":[{"value":"-17694000","decimals":-3}]},{"name":"rpt:f-253","factDimensions":{"xbrl:concept":"us-gaap:ProfitLoss","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-17694000","decimals":-3}]},{"name":"rpt:f-254","factDimensions":{"xbrl:concept":"us-gaap:OtherComprehensiveIncomeLossNetOfTax","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AccumulatedOtherComprehensiveIncomeMember"},"factValues":[{"value":"-101000","decimals":-3}]},{"name":"rpt:f-255","factDimensions":{"xbrl:concept":"us-gaap:OtherComprehensiveIncomeLossNetOfTax","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-101000","decimals":-3}]},{"name":"rpt:f-256","factDimensions":{"xbrl:concept":"us-gaap:CommonStockSharesOutstanding","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"56448000","decimals":-3}]},{"name":"rpt:f-257","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"1545000","decimals":-3}]},{"name":"rpt:f-258","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"895899000","decimals":-3}]},{"name":"rpt:f-259","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AccumulatedOtherComprehensiveIncomeMember"},"factValues":[{"value":"-854000","decimals":-3}]},{"name":"rpt:f-260","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:RetainedEarningsMember"},"factValues":[{"value":"-702576000","decimals":-3}]},{"name":"rpt:f-261","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:TreasuryStockMember"},"factValues":[{"value":"-39986000","decimals":-3}]},{"name":"rpt:f-262","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"154028000","decimals":-3}]},{"name":"rpt:f-263","factDimensions":{"xbrl:concept":"us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"13960000","decimals":-3}]},{"name":"rpt:f-264","factDimensions":{"xbrl:concept":"us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"13960000","decimals":-3}]},{"name":"rpt:f-265","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"1088000","decimals":-3}]},{"name":"rpt:f-266","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"27000","decimals":-3}]},{"name":"rpt:f-267","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"8957000","decimals":-3}]},{"name":"rpt:f-268","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"8984000","decimals":-3}]},{"name":"rpt:f-269","factDimensions":{"xbrl:concept":"calx:StockIssuedDuringPeriodSharesPerformanceRestrictedStockAwardNetofForfeitures","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"314000","decimals":-3}]},{"name":"rpt:f-270","factDimensions":{"xbrl:concept":"calx:StockIssuedDuringPeriodValuePerformanceRestrictedStockAwardNetofForfeitures","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"7000","decimals":-3}]},{"name":"rpt:f-271","factDimensions":{"xbrl:concept":"calx:StockIssuedDuringPeriodValuePerformanceRestrictedStockAwardNetofForfeitures","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"-7000","decimals":-3}]},{"name":"rpt:f-272","factDimensions":{"xbrl:concept":"calx:StockIssuedDuringPeriodValuePerformanceRestrictedStockAwardNetofForfeitures","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-273","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"1052000","decimals":-3}]},{"name":"rpt:f-274","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"26000","decimals":-3}]},{"name":"rpt:f-275","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"9117000","decimals":-3}]},{"name":"rpt:f-276","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"9143000","decimals":-3}]},{"name":"rpt:f-277","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodSharesNewIssues","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"3220000","decimals":-3}]},{"name":"rpt:f-278","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueNewIssues","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"82000","decimals":-3}]},{"name":"rpt:f-279","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueNewIssues","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"59981000","decimals":-3}]},{"name":"rpt:f-280","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueNewIssues","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"60063000","decimals":-3}]},{"name":"rpt:f-281","factDimensions":{"xbrl:concept":"us-gaap:StockRepurchasedAndRetiredDuringPeriodValue","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"134000","decimals":-3}]},{"name":"rpt:f-282","factDimensions":{"xbrl:concept":"us-gaap:StockRepurchasedAndRetiredDuringPeriodValue","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"39852000","decimals":-3}]},{"name":"rpt:f-283","factDimensions":{"xbrl:concept":"us-gaap:StockRepurchasedAndRetiredDuringPeriodValue","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:TreasuryStockMember"},"factValues":[{"value":"-39986000","decimals":-3}]},{"name":"rpt:f-284","factDimensions":{"xbrl:concept":"us-gaap:StockRepurchasedAndRetiredDuringPeriodValue","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-285","factDimensions":{"xbrl:concept":"us-gaap:ProfitLoss","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:RetainedEarningsMember"},"factValues":[{"value":"33484000","decimals":-3}]},{"name":"rpt:f-286","factDimensions":{"xbrl:concept":"us-gaap:ProfitLoss","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"33484000","decimals":-3}]},{"name":"rpt:f-287","factDimensions":{"xbrl:concept":"us-gaap:OtherComprehensiveIncomeLossNetOfTax","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AccumulatedOtherComprehensiveIncomeMember"},"factValues":[{"value":"663000","decimals":-3}]},{"name":"rpt:f-288","factDimensions":{"xbrl:concept":"us-gaap:OtherComprehensiveIncomeLossNetOfTax","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"663000","decimals":-3}]},{"name":"rpt:f-289","factDimensions":{"xbrl:concept":"us-gaap:CommonStockSharesOutstanding","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"62122000","decimals":-3}]},{"name":"rpt:f-290","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"1553000","decimals":-3}]},{"name":"rpt:f-291","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"948055000","decimals":-3}]},{"name":"rpt:f-292","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AccumulatedOtherComprehensiveIncomeMember"},"factValues":[{"value":"-191000","decimals":-3}]},{"name":"rpt:f-293","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:RetainedEarningsMember"},"factValues":[{"value":"-669092000","decimals":-3}]},{"name":"rpt:f-294","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:TreasuryStockMember"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-295","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"280325000","decimals":-3}]},{"name":"rpt:f-296","factDimensions":{"xbrl:concept":"us-gaap:ProfitLoss","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"33484000","decimals":-3}]},{"name":"rpt:f-297","factDimensions":{"xbrl:concept":"us-gaap:ProfitLoss","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-17694000","decimals":-3}]},{"name":"rpt:f-298","factDimensions":{"xbrl:concept":"us-gaap:ProfitLoss","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-19298000","decimals":-3}]},{"name":"rpt:f-299","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensation","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"13960000","decimals":-3}]},{"name":"rpt:f-300","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensation","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"11181000","decimals":-3}]},{"name":"rpt:f-301","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensation","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"17473000","decimals":-3}]},{"name":"rpt:f-302","factDimensions":{"xbrl:concept":"us-gaap:Depreciation","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"13718000","decimals":-3}]},{"name":"rpt:f-303","factDimensions":{"xbrl:concept":"us-gaap:Depreciation","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"10316000","decimals":-3}]},{"name":"rpt:f-304","factDimensions":{"xbrl:concept":"us-gaap:Depreciation","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"9187000","decimals":-3}]},{"name":"rpt:f-305","factDimensions":{"xbrl:concept":"us-gaap:GainLossOnDispositionOfAssets","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-3914000","decimals":-3}]},{"name":"rpt:f-306","factDimensions":{"xbrl:concept":"us-gaap:GainLossOnDispositionOfAssets","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-2636000","decimals":-3}]},{"name":"rpt:f-307","factDimensions":{"xbrl:concept":"us-gaap:GainLossOnDispositionOfAssets","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-326000","decimals":-3}]},{"name":"rpt:f-308","factDimensions":{"xbrl:concept":"calx:GainLossOnSaleOfProductLine","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-309","factDimensions":{"xbrl:concept":"calx:GainLossOnSaleOfProductLine","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-310","factDimensions":{"xbrl:concept":"calx:GainLossOnSaleOfProductLine","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"6704000","decimals":-3}]},{"name":"rpt:f-311","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInAccountsReceivable","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"22910000","decimals":-3}]},{"name":"rpt:f-312","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInAccountsReceivable","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-20517000","decimals":-3}]},{"name":"rpt:f-313","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInAccountsReceivable","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-13858000","decimals":-3}]},{"name":"rpt:f-314","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInInventories","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"12116000","decimals":-3}]},{"name":"rpt:f-315","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInInventories","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-9998000","decimals":-3}]},{"name":"rpt:f-316","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInInventories","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"20639000","decimals":-3}]},{"name":"rpt:f-317","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-773000","decimals":-3}]},{"name":"rpt:f-318","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"63000","decimals":-3}]},{"name":"rpt:f-319","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-3579000","decimals":-3}]},{"name":"rpt:f-320","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInAccountsPayable","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2190000","decimals":-3}]},{"name":"rpt:f-321","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInAccountsPayable","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-29440000","decimals":-3}]},{"name":"rpt:f-322","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInAccountsPayable","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4596000","decimals":-3}]},{"name":"rpt:f-323","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInAccruedLiabilities","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"11922000","decimals":-3}]},{"name":"rpt:f-324","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInAccruedLiabilities","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-1836000","decimals":-3}]},{"name":"rpt:f-325","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInAccruedLiabilities","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2791000","decimals":-3}]},{"name":"rpt:f-326","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInDeferredRevenue","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3596000","decimals":-3}]},{"name":"rpt:f-327","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInDeferredRevenue","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2401000","decimals":-3}]},{"name":"rpt:f-328","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInDeferredRevenue","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-1426000","decimals":-3}]},{"name":"rpt:f-329","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2878000","decimals":-3}]},{"name":"rpt:f-330","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-3362000","decimals":-3}]},{"name":"rpt:f-331","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-183000","decimals":-3}]},{"name":"rpt:f-332","factDimensions":{"xbrl:concept":"us-gaap:NetCashProvidedByUsedInOperatingActivities","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"51409000","decimals":-3}]},{"name":"rpt:f-333","factDimensions":{"xbrl:concept":"us-gaap:NetCashProvidedByUsedInOperatingActivities","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4654000","decimals":-3}]},{"name":"rpt:f-334","factDimensions":{"xbrl:concept":"us-gaap:NetCashProvidedByUsedInOperatingActivities","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3560000","decimals":-3}]},{"name":"rpt:f-335","factDimensions":{"xbrl:concept":"us-gaap:PaymentsToAcquirePropertyPlantAndEquipment","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"7819000","decimals":-3}]},{"name":"rpt:f-336","factDimensions":{"xbrl:concept":"us-gaap:PaymentsToAcquirePropertyPlantAndEquipment","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"13353000","decimals":-3}]},{"name":"rpt:f-337","factDimensions":{"xbrl:concept":"us-gaap:PaymentsToAcquirePropertyPlantAndEquipment","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"10426000","decimals":-3}]},{"name":"rpt:f-338","factDimensions":{"xbrl:concept":"us-gaap:PaymentsToAcquireMarketableSecurities","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"72982000","decimals":-3}]},{"name":"rpt:f-339","factDimensions":{"xbrl:concept":"us-gaap:PaymentsToAcquireMarketableSecurities","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-340","factDimensions":{"xbrl:concept":"us-gaap:PaymentsToAcquireMarketableSecurities","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-341","factDimensions":{"xbrl:concept":"us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"20000000","decimals":-3}]},{"name":"rpt:f-342","factDimensions":{"xbrl:concept":"us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-343","factDimensions":{"xbrl:concept":"us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-344","factDimensions":{"xbrl:concept":"calx:ProceedsFromSaleOfProductLine","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-345","factDimensions":{"xbrl:concept":"calx:ProceedsFromSaleOfProductLine","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-346","factDimensions":{"xbrl:concept":"calx:ProceedsFromSaleOfProductLine","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"10350000","decimals":-3}]},{"name":"rpt:f-347","factDimensions":{"xbrl:concept":"us-gaap:NetCashProvidedByUsedInInvestingActivities","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-60801000","decimals":-3}]},{"name":"rpt:f-348","factDimensions":{"xbrl:concept":"us-gaap:NetCashProvidedByUsedInInvestingActivities","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-13353000","decimals":-3}]},{"name":"rpt:f-349","factDimensions":{"xbrl:concept":"us-gaap:NetCashProvidedByUsedInInvestingActivities","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-76000","decimals":-3}]},{"name":"rpt:f-350","factDimensions":{"xbrl:concept":"us-gaap:ProceedsFromStockOptionsExercised","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"8984000","decimals":-3}]},{"name":"rpt:f-351","factDimensions":{"xbrl:concept":"us-gaap:ProceedsFromStockOptionsExercised","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"442000","decimals":-3}]},{"name":"rpt:f-352","factDimensions":{"xbrl:concept":"us-gaap:ProceedsFromStockOptionsExercised","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"384000","decimals":-3}]},{"name":"rpt:f-353","factDimensions":{"xbrl:concept":"us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"9143000","decimals":-3}]},{"name":"rpt:f-354","factDimensions":{"xbrl:concept":"us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"8433000","decimals":-3}]},{"name":"rpt:f-355","factDimensions":{"xbrl:concept":"us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"7297000","decimals":-3}]},{"name":"rpt:f-356","factDimensions":{"xbrl:concept":"us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-357","factDimensions":{"xbrl:concept":"us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"167000","decimals":-3}]},{"name":"rpt:f-358","factDimensions":{"xbrl:concept":"us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"74000","decimals":-3}]},{"name":"rpt:f-359","factDimensions":{"xbrl:concept":"calx:PaymentsForFinancingArrangements","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"5758000","decimals":-3}]},{"name":"rpt:f-360","factDimensions":{"xbrl:concept":"calx:PaymentsForFinancingArrangements","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2737000","decimals":-3}]},{"name":"rpt:f-361","factDimensions":{"xbrl:concept":"calx:PaymentsForFinancingArrangements","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-362","factDimensions":{"xbrl:concept":"us-gaap:ProceedsFromIssuanceOfCommonStock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"60063000","decimals":-3}]},{"name":"rpt:f-363","factDimensions":{"xbrl:concept":"us-gaap:ProceedsFromIssuanceOfCommonStock","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-364","factDimensions":{"xbrl:concept":"us-gaap:ProceedsFromIssuanceOfCommonStock","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-365","factDimensions":{"xbrl:concept":"us-gaap:ProceedsFromLinesOfCredit","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"30000000","decimals":-3}]},{"name":"rpt:f-366","factDimensions":{"xbrl:concept":"us-gaap:ProceedsFromLinesOfCredit","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"143300000","decimals":-3}]},{"name":"rpt:f-367","factDimensions":{"xbrl:concept":"us-gaap:ProceedsFromLinesOfCredit","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"557915000","decimals":-3}]},{"name":"rpt:f-368","factDimensions":{"xbrl:concept":"us-gaap:RepaymentsOfLinesOfCredit","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"60000000","decimals":-3}]},{"name":"rpt:f-369","factDimensions":{"xbrl:concept":"us-gaap:RepaymentsOfLinesOfCredit","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"143300000","decimals":-3}]},{"name":"rpt:f-370","factDimensions":{"xbrl:concept":"us-gaap:RepaymentsOfLinesOfCredit","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"557915000","decimals":-3}]},{"name":"rpt:f-371","factDimensions":{"xbrl:concept":"us-gaap:PaymentsOfDebtIssuanceCosts","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"285000","decimals":-3}]},{"name":"rpt:f-372","factDimensions":{"xbrl:concept":"us-gaap:PaymentsOfDebtIssuanceCosts","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-373","factDimensions":{"xbrl:concept":"us-gaap:PaymentsOfDebtIssuanceCosts","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"115000","decimals":-3}]},{"name":"rpt:f-374","factDimensions":{"xbrl:concept":"us-gaap:NetCashProvidedByUsedInFinancingActivities","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"42147000","decimals":-3}]},{"name":"rpt:f-375","factDimensions":{"xbrl:concept":"us-gaap:NetCashProvidedByUsedInFinancingActivities","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"5971000","decimals":-3}]},{"name":"rpt:f-376","factDimensions":{"xbrl:concept":"us-gaap:NetCashProvidedByUsedInFinancingActivities","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"7492000","decimals":-3}]},{"name":"rpt:f-377","factDimensions":{"xbrl:concept":"us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"595000","decimals":-3}]},{"name":"rpt:f-378","factDimensions":{"xbrl:concept":"us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-89000","decimals":-3}]},{"name":"rpt:f-379","factDimensions":{"xbrl:concept":"us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-477000","decimals":-3}]},{"name":"rpt:f-380","factDimensions":{"xbrl:concept":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"33350000","decimals":-3}]},{"name":"rpt:f-381","factDimensions":{"xbrl:concept":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-2817000","decimals":-3}]},{"name":"rpt:f-382","factDimensions":{"xbrl:concept":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"10499000","decimals":-3}]},{"name":"rpt:f-383","factDimensions":{"xbrl:concept":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"47457000","decimals":-3}]},{"name":"rpt:f-384","factDimensions":{"xbrl:concept":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","xbrl:period":"2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"50274000","decimals":-3}]},{"name":"rpt:f-385","factDimensions":{"xbrl:concept":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","xbrl:period":"2018-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"39775000","decimals":-3}]},{"name":"rpt:f-386","factDimensions":{"xbrl:concept":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"80807000","decimals":-3}]},{"name":"rpt:f-387","factDimensions":{"xbrl:concept":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"47457000","decimals":-3}]},{"name":"rpt:f-388","factDimensions":{"xbrl:concept":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","xbrl:period":"2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"50274000","decimals":-3}]},{"name":"rpt:f-389","factDimensions":{"xbrl:concept":"us-gaap:InterestPaidNet","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1686000","decimals":-3}]},{"name":"rpt:f-390","factDimensions":{"xbrl:concept":"us-gaap:InterestPaidNet","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1123000","decimals":-3}]},{"name":"rpt:f-391","factDimensions":{"xbrl:concept":"us-gaap:InterestPaidNet","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"649000","decimals":-3}]},{"name":"rpt:f-392","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxesPaidNet","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"751000","decimals":-3}]},{"name":"rpt:f-393","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxesPaidNet","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"403000","decimals":-3}]},{"name":"rpt:f-394","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxesPaidNet","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"561000","decimals":-3}]},{"name":"rpt:f-395","factDimensions":{"xbrl:concept":"calx:ChangeInCapitalExpendituresIncurredButNotYetPaid","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-597000","decimals":-3}]},{"name":"rpt:f-396","factDimensions":{"xbrl:concept":"calx:ChangeInCapitalExpendituresIncurredButNotYetPaid","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-2435000","decimals":-3}]},{"name":"rpt:f-397","factDimensions":{"xbrl:concept":"calx:ChangeInCapitalExpendituresIncurredButNotYetPaid","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"8459000","decimals":-3}]},{"name":"rpt:f-398","factDimensions":{"xbrl:concept":"us-gaap:BusinessDescriptionAndAccountingPoliciesTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"Description of Business and Significant Accounting Policies<div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Company</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Calix, Inc. (together with its subsidiaries, \u201cCalix\u201d or the \u201cCompany\u201d) was incorporated in August 1999 and is a Delaware corporation. The Company is the leading global provider of cloud and software platforms, systems and services that focus on the access network, the portion of the network that governs available bandwidth and determines the range and quality of services that can be offered to subscribers. These cloud and software platforms enable communications service providers (\u201cCSPs\u201d) of all types and sizes to innovate and transform their businesses. The Company\u2019s CSP customers are empowered to utilize real-time data and insights from Calix platforms to simplify their businesses and deliver experiences that excite their subscribers. These insights enable CSPs to grow their businesses through increased subscriber acquisition, loyalty and revenue, thereby increasing the value of their businesses and contributions to their communities.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Basis of Presentation and Accounting Guidance</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The accompanying consolidated financial statements have been prepared in accordance with the requirements of the U.S. Securities and Exchange Commission (\u201cSEC\u201d) and U.S. generally accepted accounting principles (\u201cGAAP\u201d). All significant intercompany balances and transactions have been eliminated in consolidation. Any reference in these notes to applicable accounting guidance (\u201cguidance\u201d) is meant to refer to the authoritative U.S. GAAP as found in the Financial Accounting Standards Board (\u201cFASB\u201d) Accounting Standards Codification (\u201cASC\u201d).</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Risks and Uncertainties</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company is subject to risks and uncertainties as a result of the COVID-19 pandemic. The extent of the impact of the COVID-19 pandemic on the Company's business is highly uncertain and difficult to predict as coronavirus continues to spread around the world. The availability of vaccines has been limited, and there are no assurances as to when the pandemic will be contained. Since March 2020, the Company has instituted office closures, travel restrictions and a mandatory work-from-home policy for substantially all of its employees. The spread of COVID-19 has had a prolonged impact on the Company's supply chain operations due to restrictions, reduced capacity and limited availability from suppliers whom the Company relies on for sourcing components and materials and from third-party partners whom the Company relies on for manufacturing, warehousing and logistics services. Although demand for the Company's products has been strong in the short-term as subscribers seek more bandwidth and better Wi-Fi, customers\u2019 purchasing decisions over the long-term may be impacted by the pandemic and its impact on the economy, which could in turn impact the Company's revenue and results of operations. Furthermore, the Company's supply chain continues to face constraints primarily due to challenges in sourcing components and materials for the Company's products, including due to plant closures. The prolonged impact of COVID-19 could exacerbate these constraints or cause further supply chain disruptions. As of the issuance date of these consolidated financial statements, the extent to which the COVID-19 pandemic may materially impact the Company's financial condition, liquidity or results of operations is uncertain.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Use of Estimates</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The preparation of financial statements is in conformity with U.S. GAAP, which requires management to make estimates and assumptions that affect the amounts reported in the consolidated financial statements and accompanying notes. For the Company, these estimates include, but are not limited to: allowances for doubtful accounts and sales returns, excess and obsolete inventory, allowances for obligations to its contract manufacturers, valuation of stock-based compensation, useful lives assigned to long-lived assets, standard and extended warranty costs and contingencies. Actual results could differ from those estimates, and such differences could be material to the Company\u2019s financial position and results of operations.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Revenue Recognition</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company derives revenue from contracts with customers primarily from the following and categorizes its revenue as follows:</span></div><div style=\"padding-left:31.5pt;text-indent:-9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">\u2022</span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:5.5pt\">Systems include revenue from the sale of access and premises systems, software platform licenses and cloud-based software subscriptions.</span></div><div style=\"padding-left:31.5pt;text-indent:-9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">\u2022</span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:5.5pt\">Services include revenue from professional services, customer support, software- and cloud-based maintenance, extended warranty subscriptions, training and managed services.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Revenue is recognized when a performance obligation is satisfied, which occurs when control of the promised goods or services is transferred to the customer, in an amount that reflects the consideration the Company expects to be entitled to in exchange for </span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">those goods or services. Specifically, revenue from software platform licenses, which provides the customer with a right to use the software as it exists, is generally recognized upfront when made available to the customer. Revenue from cloud-based software subscriptions, customer support, maintenance, extended warranty subscriptions and managed services is generally recognized ratably over the contract term. Revenue from professional services and training is recognized as the services are delivered.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">A performance obligation is a promise in a contract to transfer a distinct good or service to the customer and is the unit of account. A contract\u2019s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied. The Company\u2019s hardware products contain both software and non-software components that function together to deliver the products\u2019 essential functionality and therefore constitutes a single performance obligation as the promise to transfer the individual software and non-software components is not separately identifiable and, therefore, not distinct. The Company\u2019s contracts may include multiple performance obligations. For such arrangements, the Company allocates the contract\u2019s transaction price to each performance obligation using the relative stand-alone selling price of each distinct good or service in the contract. The Company generally determines stand-alone selling prices based on the prices charged to customers or its best estimate of stand-alone selling price. The Company\u2019s estimate of stand-alone selling price is established considering multiple factors including, but not limited to, geographies, market conditions, competitive landscape, internal costs, gross margin objectives, characteristics of targeted customers and pricing practices. The determination of estimated stand-alone selling price is made through consultation with and formal approval by management, taking into consideration the go-to-market strategy.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">For certain revenue arrangements involving delivery of both systems and professional services, each is considered a distinct performance obligation. Systems revenue is recognized at a point in time when management has determined that control over systems has transferred to the customer, which is generally when legal title has transferred to the customer. For the same revenue arrangements, management believes that the output of the associated professional services is transferred to the customer over time. As such, professional services revenue is recognized over the period in which the services are provided using a cost input measure. The Company recognizes revenue when control of the systems and services has been transferred to the customer, which may be earlier than system installation or customer acceptance, in accordance with the agreed-upon specifications in the contract.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Cost of Revenue</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Cost of revenue consists primarily of finished goods inventory purchased from the Company\u2019s contract manufacturers, payroll and related expenses associated with managing the relationships with contract manufacturers, depreciation of manufacturing test equipment, warranty and retrofit costs, excess and obsolete inventory costs, shipping charges and amortization of certain intangible assets. It also includes contractor and other costs of services incurred directly related to the delivery of services to customers.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Warranty and Retrofit</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company offers limited warranties for its hardware products for a period of <span style=\"-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmEyYzdkOWY2NmFlNzQxZWFiZDMxNzljNjMyNjI0YThmL3NlYzphMmM3ZDlmNjZhZTc0MWVhYmQzMTc5YzYzMjYyNGE4Zl84NS9mcmFnOjBhOWRkMDIzZWI3YjQ2ZmE5N2EzYmVhNTQ3NGNmYzlhL3RleHRyZWdpb246MGE5ZGQwMjNlYjdiNDZmYTk3YTNiZWE1NDc0Y2ZjOWFfNjc0OA_6f0f0fc9-a13b-4e80-84ef-a993bc8f1334\">one</span>, <span style=\"-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmEyYzdkOWY2NmFlNzQxZWFiZDMxNzljNjMyNjI0YThmL3NlYzphMmM3ZDlmNjZhZTc0MWVhYmQzMTc5YzYzMjYyNGE4Zl84NS9mcmFnOjBhOWRkMDIzZWI3YjQ2ZmE5N2EzYmVhNTQ3NGNmYzlhL3RleHRyZWdpb246MGE5ZGQwMjNlYjdiNDZmYTk3YTNiZWE1NDc0Y2ZjOWFfNjc1Mg_c366c126-0603-4e70-a4ad-006e78281556\">three</span> or <span style=\"-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmEyYzdkOWY2NmFlNzQxZWFiZDMxNzljNjMyNjI0YThmL3NlYzphMmM3ZDlmNjZhZTc0MWVhYmQzMTc5YzYzMjYyNGE4Zl84NS9mcmFnOjBhOWRkMDIzZWI3YjQ2ZmE5N2EzYmVhNTQ3NGNmYzlhL3RleHRyZWdpb246MGE5ZGQwMjNlYjdiNDZmYTk3YTNiZWE1NDc0Y2ZjOWFfNjc1OA_52cf4426-357b-4fe9-83b1-2b4eec47a8c6\">five</span> years, depending on the product type. The Company recognizes estimated costs related to warranty activities as a component of cost of revenue upon product shipment or upon identification of a specific product failure. Under certain circumstances, the Company also provides fixes on specifically identified performance failures for products that are outside of the standard warranty period and recognizes estimated costs related to retrofit activities as a component of cost of revenue upon identification of such product failures. The Company recognizes estimated warranty and retrofit costs when it is probable that a liability has been incurred and the amount of loss is reasonably estimable. The estimates are based upon historical and projected product failure and claim rates, historical costs incurred in correcting product failures and information available related to any specifically identified product failures. Judgment is required in estimating costs associated with warranty and retrofit activities, and the Company's estimates are limited to information available to the Company at the time of such estimates. In some cases, such as when a specific product failure is first identified or a new product is introduced, the Company may initially have limited information and limited historical failure and claim rates upon which to base its estimates, and such estimates may require revision in future periods. The recorded amount is adjusted from time to time for specifically identified warranty and retrofit exposure. Actual warranty and retrofit expenses are charged against the Company\u2019s estimated warranty and retrofit liability when incurred. Factors that affect the Company\u2019s warranty and retrofit liability include the number of active installed units and historical and anticipated rates of warranty and retrofit claims and cost per claim.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Stock-Based Compensation</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Stock-based compensation expense associated with stock options, performance stock options (\u201cPSOs\u201d), restricted stock units (\u201cRSUs\u201d) and purchase rights under the Amended and Restated Employee Stock Purchase Plan (the \u201cESPP\u201d) and the Amended and Restated 2017 Nonqualified Employee Stock Purchase Plan (the \u201cNQ ESPP\u201d) is measured at the grant date based on the </span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">fair value of the award, and is recognized, net of forfeitures, as expense over the remaining requisite service period (generally the vesting period) on a straight-line basis.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The fair value of stock option and employee stock purchase right under the ESPP is estimated at the grant date using the Black-Scholes option valuation model. The fair value of RSUs and employee stock purchase right under the Nonqualified ESPP is based on closing market price of the Company\u2019s common stock on the date of grant.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Stock-based compensation expense associated with PSOs with graded vesting features and which contain both a performance and a service condition is measured based on fair value of stock options estimated at the grant date using the Black-Scholes option valuation model, and is recognized, net of forfeitures, as expense over the requisite service period using the graded vesting attribution method.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Compensation expense is only recognized if the Company has determined that it is probable that the performance condition will be met. The Company reassesses the probability of vesting at each reporting period and adjusts compensation expense based on its probability assessment.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Loss Contingencies</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">From time to time, the Company is involved in legal proceedings arising from the normal course of business activities. The Company evaluates the likelihood of an unfavorable outcome of legal proceedings to which it is a party and accrues a loss contingency when the loss is probable and reasonably estimable. Assessing legal contingencies involves significant judgment and estimates, and the outcome of litigation is inherently uncertain and subject to numerous factors outside the Company\u2019s control. Significant judgment is required when the Company assesses the likelihood of any adverse judgments or outcomes, including the potential range of possible losses, and whether losses are probable and reasonably estimable.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Because of uncertainties related to these matters, the Company bases its estimates of whether a loss contingency is probable or reasonably possible, as well as the reasonable range of possible losses associated with each loss contingency, only on the information available at the time. As additional information becomes available, and at least quarterly, the Company reassesses the potential liability on each significant matter and may revise its estimates. These revisions could have a material impact on the Company\u2019s business, operating results or financial condition. The actual outcome of these legal proceedings may materially differ from the Company\u2019s estimates of potential liability, which could have a material adverse effect on the Company\u2019s business, operating results or financial condition.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Credit Risk and Inventory Supplier Concentrations</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Financial instruments that potentially subject the Company to significant concentrations of credit risk consist primarily of cash, cash equivalents, marketable securities and accounts receivable. Cash equivalents consist of money market funds and marketable securities with a maturity at the date of purchase of ninety days or less, which are invested through financial institutions in the United States. Deposits in and investments held by these financial institutions may, at times, exceed federally insured limits. The Company has not experienced any losses in such accounts. The Company also has approximately $3.0 million of cash held by its foreign subsidiaries in Brazil, China and the United Kingdom. Management believes that the financial institutions that hold the Company\u2019s cash and cash equivalents are financially sound and, accordingly, minimal credit risk exists with respect to these cash and cash equivalents.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company depends primarily on a small number of outside contract manufacturers (\u201cCMs\u201d) and original design manufacturers (\u201cODMs\u201d) for the bulk of its finished goods inventory. The Company generally purchases its products through purchase orders with its suppliers. While the Company seeks to maintain a sufficient supply of its products, the Company\u2019s business and results of operations could be adversely affected by a stoppage or delay in receiving such products, the receipt of defective parts, an increase in price of such products or the Company\u2019s inability to obtain lower prices from its CMs, ODMs and other suppliers in response to competitive pressures.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Fair Value of Financial Instruments</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The carrying amounts of cash and cash equivalents, trade receivables, accounts payable, line of credit and other accrued liabilities approximate their fair value due to their relatively short-term nature. Marketable securities are valued using quoted market prices in active markets to determine fair value.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Cash, Cash Equivalents and Marketable Securities</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Cash equivalents and marketable securities are stated at amounts that approximate fair value based on quoted market prices.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company has invested its excess cash primarily in money market funds and highly liquid marketable securities such as U.S. treasury bonds, corporate debt instruments, commercial paper and U.S. government securities. The Company considers all investments with maturities of three months or less when purchased to be cash equivalents. Marketable securities represent highly liquid U.S. treasury bonds, corporate debt instruments, commercial paper and U.S. government securities with maturities </span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">greater than 90 days at date of purchase. Marketable securities with maturities greater than one year are classified as current because management considers all marketable securities to be available for current operations.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company\u2019s investments have been classified and accounted for as available-for-sale. Such investments are recorded at fair value and unrealized holding gains and losses are reported as a separate component of comprehensive loss in the stockholders\u2019 equity until realized. Realized gains and losses on sales of marketable securities, if any, are determined on the specific identification method and are reclassified from accumulated other comprehensive loss to results of operations as \u201cOther income (expense), net\u201d. The Company had no investments as of December 31, 2019. See Note 2 \u201c</span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Cash, Cash Equivalents, Restricted Cash and Marketable Securities\u201d.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Allowance for Doubtful Accounts</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company maintains an allowance for doubtful accounts for expected credit losses at contract inception resulting from the inability of its customers to make required payments. The Company records a specific allowance and revises the expected loss based on an analysis of individual past-due balances. Additionally, based on historical write-offs and the Company\u2019s collection experience, the Company records an additional allowance based on a percentage of outstanding receivables. The Company performs credit evaluations of its customers\u2019 financial condition. These evaluations require judgment and are based on a variety of factors including, but not limited to, current economic trends, payment history and a financial review of the customer. Actual collection losses may differ from management\u2019s estimates, and such differences could be material to the Company's financial position and results of operations.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Inventory Valuation</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Inventory, which primarily consists of finished goods purchased from CMs or ODMs, is stated at the lower of cost (determined by the first-in, first-out method) or market value. Inbound shipping costs and U.S. tariffs are included in cost of inventory. In addition, the Company, from time to time, procures component inventory primarily as a result of manufacturing discontinuation of critical components by suppliers. The Company regularly monitors inventory quantities on hand and records write-downs for excess and obsolete inventories based on the Company\u2019s estimate of demand for its products, potential obsolescence of technology, product life cycles and whether pricing trends or forecasts indicate that the carrying value of inventory exceeds its estimated selling price. These factors are impacted by market and economic conditions, technology changes and new product introductions and require significant estimates that may include elements that are uncertain. Actual demand may differ from forecasted demand and may have a material effect on gross profit. If inventory is written down, a new cost basis is established that cannot be increased in future periods. Shipments from suppliers before the Company receives them are recorded as in-transit inventory when title and the significant risks and rewards of ownership have passed to the Company.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Contract Costs</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company capitalizes sales commissions primarily related to extended warranty for which the expected amortization period is greater than one year.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Capitalized commissions are amortized as sales and marketing expenses over the period that the related revenue is recognized, which can be up to five years for extended warranty. The Company classifies the unamortized portion of deferred commissions as current or noncurrent based on the timing of when the Company expects to recognize the expense. The current and noncurrent portions of deferred commissions are included in prepaid expenses and other current assets and other assets, respectively, in the Company\u2019s Consolidated Balance Sheets.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Property and Equipment</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Property and equipment are stated at cost, less accumulated depreciation, and are depreciated using the straight-line method over the estimated useful life of each asset. Generally, computer equipment is depreciated over two years; purchased software is depreciated over <span style=\"-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmEyYzdkOWY2NmFlNzQxZWFiZDMxNzljNjMyNjI0YThmL3NlYzphMmM3ZDlmNjZhZTc0MWVhYmQzMTc5YzYzMjYyNGE4Zl84NS9mcmFnOjBhOWRkMDIzZWI3YjQ2ZmE5N2EzYmVhNTQ3NGNmYzlhL3RleHRyZWdpb246MGE5ZGQwMjNlYjdiNDZmYTk3YTNiZWE1NDc0Y2ZjOWFfMTg0ODA_be391f30-ae02-40d3-a21b-80f1a4c3bd97\">three</span> to five years; test equipment is depreciated over three years; furniture and fixtures are depreciated over seven years; and leasehold improvements are depreciated over the shorter of the respective lease term or the estimated useful life of the asset. Maintenance and repairs are charged to expense as incurred.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Goodwill</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Goodwill was recorded as a result of the Company\u2019s acquisitions of Occam Networks, Inc. in February 2011 and Optical Solutions, Inc. in February 2006. The Company records goodwill when consideration paid in a business acquisition exceeds the fair value of the net tangible assets and the identified intangible assets acquired. Goodwill is not amortized but instead is subject to an annual impairment test or more frequently if events or changes in circumstances indicate that it may be impaired. The Company evaluates goodwill on an annual basis as of the end of the second quarter of each fiscal year. Management has determined that it operates as a single reporting unit and, therefore, evaluates goodwill impairment at the enterprise level.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">At the end of the second quarter of 2020, the Company completed its annual goodwill impairment test. Based on its assessment of certain qualitative factors such as market capitalization, management concluded that the fair value of the Company was more likely than not greater than its carrying amount as of June 27, 2020. As such, it was not necessary to perform the two-step quantitative goodwill impairment test at the time.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">There have been no significant events or changes in circumstances subsequent to the 2020 annual impairment test that would more likely than not indicate that the carrying value of goodwill may have been impaired as of December\u00a031, 2020. There were no impairment losses for goodwill for the years ended December\u00a031, 2020, 2019 or 2018.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Deferred Revenue</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Deferred revenue results from transactions where the Company billed the customer for products or services and when cash payments are received or due prior to transferring control of the promised goods or services to the customer. </span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Payment terms to customers typically range from net\u00a030\u00a0to net\u00a090\u00a0days and vary by the size and location of customer and the products or services offered. The period between the transfer of control of the promised good or service to a customer and when payment is due is not significant.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Income Taxes</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company evaluates its tax positions and estimates its current tax exposure along with assessing temporary differences that result from different book to tax treatment of items not currently deductible for tax purposes. These differences result in deferred tax assets and liabilities on the Company\u2019s Consolidated Balance Sheets, which are estimated based upon the difference between the financial statement and tax bases of assets and liabilities using the enacted tax rates that will be in effect when these differences reverse. In general, deferred tax assets represent future tax benefits to be received when certain expenses previously recognized in the Company\u2019s Consolidated Statements of Comprehensive Loss become deductible expenses under applicable income tax laws or loss or credit carryforwards are utilized. Accordingly, realization of the Company\u2019s deferred tax assets is dependent on future taxable income against which these deductions, losses and credits can be utilized.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company must assess the likelihood that the Company\u2019s deferred tax assets will be recovered from future taxable income, and to the extent the Company believes that recovery is not more likely than not, the Company must establish a valuation allowance. Management judgment is required in determining the Company\u2019s provision for income taxes, the Company\u2019s deferred tax assets and liabilities and any valuation allowance recorded against the Company\u2019s net deferred tax assets. Excluding foreign operations, the Company recorded a full valuation allowance at each balance sheet date presented because, based on the available evidence, the Company believes it is more likely than not that it will not be able to utilize all of its deferred tax assets in the future. The Company intends to maintain the full valuation allowance until sufficient evidence exists to support the reversal of the valuation allowance.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Newly Adopted Accounting Standards</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company did not adopt any new accounting standard in 2020 that were significant to the Company.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Leases</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">In February 2016, the FASB issued Accounting Standards Update No. 2016-02, Leases (Topic 842), which requires recognition of an asset and liability for lease arrangements longer than twelve months. The Company adopted the new standard effective January 1, 2019 using the effective date approach which eliminates the need to restate amounts presented prior to that date. The Company also elected the package of practical expedients but not the hindsight practical expedient. The adoption had a material impact on the Company's Consolidated Balance Sheets but did not impact the Company's Consolidated Statements of Comprehensive Loss, Cash Flows or Stockholders' Equity. Upon adoption on January 1, 2019, the Company recognized an operating lease right-of-use asset of $15.8\u00a0million and a lease liability of $16.7\u00a0million.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Recent Accounting Pronouncements Not Yet Adopted</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">There have been no accounting pronouncements or changes in accounting pronouncements that are significant or potentially significant to the Company.</span></div>","language":"en-us"}]},{"name":"rpt:f-399","factDimensions":{"xbrl:concept":"us-gaap:BasisOfAccountingPolicyPolicyTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Basis of Presentation and Accounting Guidance</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The accompanying consolidated financial statements have been prepared in accordance with the requirements of the U.S. Securities and Exchange Commission (\u201cSEC\u201d) and U.S. generally accepted accounting principles (\u201cGAAP\u201d). All significant intercompany balances and transactions have been eliminated in consolidation. Any reference in these notes to applicable accounting guidance (\u201cguidance\u201d) is meant to refer to the authoritative U.S. GAAP as found in the Financial Accounting Standards Board (\u201cFASB\u201d) Accounting Standards Codification (\u201cASC\u201d).</span></div>","language":"en-us"}]},{"name":"rpt:f-400","factDimensions":{"xbrl:concept":"us-gaap:CommitmentsAndContingenciesPolicyTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Risks and Uncertainties</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company is subject to risks and uncertainties as a result of the COVID-19 pandemic. The extent of the impact of the COVID-19 pandemic on the Company's business is highly uncertain and difficult to predict as coronavirus continues to spread around the world. The availability of vaccines has been limited, and there are no assurances as to when the pandemic will be contained. Since March 2020, the Company has instituted office closures, travel restrictions and a mandatory work-from-home policy for substantially all of its employees. The spread of COVID-19 has had a prolonged impact on the Company's supply chain operations due to restrictions, reduced capacity and limited availability from suppliers whom the Company relies on for sourcing components and materials and from third-party partners whom the Company relies on for manufacturing, warehousing and logistics services. Although demand for the Company's products has been strong in the short-term as subscribers seek more bandwidth and better Wi-Fi, customers\u2019 purchasing decisions over the long-term may be impacted by the pandemic and its impact on the economy, which could in turn impact the Company's revenue and results of operations. Furthermore, the Company's supply chain continues to face constraints primarily due to challenges in sourcing components and materials for the Company's products, including due to plant closures. The prolonged impact of COVID-19 could exacerbate these constraints or cause further supply chain disruptions. As of the issuance date of these consolidated financial statements, the extent to which the COVID-19 pandemic may materially impact the Company's financial condition, liquidity or results of operations is uncertain.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Loss Contingencies</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">From time to time, the Company is involved in legal proceedings arising from the normal course of business activities. The Company evaluates the likelihood of an unfavorable outcome of legal proceedings to which it is a party and accrues a loss contingency when the loss is probable and reasonably estimable. Assessing legal contingencies involves significant judgment and estimates, and the outcome of litigation is inherently uncertain and subject to numerous factors outside the Company\u2019s control. Significant judgment is required when the Company assesses the likelihood of any adverse judgments or outcomes, including the potential range of possible losses, and whether losses are probable and reasonably estimable.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Because of uncertainties related to these matters, the Company bases its estimates of whether a loss contingency is probable or reasonably possible, as well as the reasonable range of possible losses associated with each loss contingency, only on the information available at the time. As additional information becomes available, and at least quarterly, the Company reassesses the potential liability on each significant matter and may revise its estimates. These revisions could have a material impact on the Company\u2019s business, operating results or financial condition. The actual outcome of these legal proceedings may materially differ from the Company\u2019s estimates of potential liability, which could have a material adverse effect on the Company\u2019s business, operating results or financial condition.</span></div>","language":"en-us"}]},{"name":"rpt:f-401","factDimensions":{"xbrl:concept":"us-gaap:UseOfEstimates","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Use of Estimates</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The preparation of financial statements is in conformity with U.S. GAAP, which requires management to make estimates and assumptions that affect the amounts reported in the consolidated financial statements and accompanying notes. For the Company, these estimates include, but are not limited to: allowances for doubtful accounts and sales returns, excess and obsolete inventory, allowances for obligations to its contract manufacturers, valuation of stock-based compensation, useful lives assigned to long-lived assets, standard and extended warranty costs and contingencies. Actual results could differ from those estimates, and such differences could be material to the Company\u2019s financial position and results of operations.</span></div>","language":"en-us"}]},{"name":"rpt:f-402","factDimensions":{"xbrl:concept":"us-gaap:RevenueRecognitionPolicyTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Revenue Recognition</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company derives revenue from contracts with customers primarily from the following and categorizes its revenue as follows:</span></div><div style=\"padding-left:31.5pt;text-indent:-9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">\u2022</span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:5.5pt\">Systems include revenue from the sale of access and premises systems, software platform licenses and cloud-based software subscriptions.</span></div><div style=\"padding-left:31.5pt;text-indent:-9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">\u2022</span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:5.5pt\">Services include revenue from professional services, customer support, software- and cloud-based maintenance, extended warranty subscriptions, training and managed services.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Revenue is recognized when a performance obligation is satisfied, which occurs when control of the promised goods or services is transferred to the customer, in an amount that reflects the consideration the Company expects to be entitled to in exchange for </span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">those goods or services. Specifically, revenue from software platform licenses, which provides the customer with a right to use the software as it exists, is generally recognized upfront when made available to the customer. Revenue from cloud-based software subscriptions, customer support, maintenance, extended warranty subscriptions and managed services is generally recognized ratably over the contract term. Revenue from professional services and training is recognized as the services are delivered.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">A performance obligation is a promise in a contract to transfer a distinct good or service to the customer and is the unit of account. A contract\u2019s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied. The Company\u2019s hardware products contain both software and non-software components that function together to deliver the products\u2019 essential functionality and therefore constitutes a single performance obligation as the promise to transfer the individual software and non-software components is not separately identifiable and, therefore, not distinct. The Company\u2019s contracts may include multiple performance obligations. For such arrangements, the Company allocates the contract\u2019s transaction price to each performance obligation using the relative stand-alone selling price of each distinct good or service in the contract. The Company generally determines stand-alone selling prices based on the prices charged to customers or its best estimate of stand-alone selling price. The Company\u2019s estimate of stand-alone selling price is established considering multiple factors including, but not limited to, geographies, market conditions, competitive landscape, internal costs, gross margin objectives, characteristics of targeted customers and pricing practices. The determination of estimated stand-alone selling price is made through consultation with and formal approval by management, taking into consideration the go-to-market strategy.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">For certain revenue arrangements involving delivery of both systems and professional services, each is considered a distinct performance obligation. Systems revenue is recognized at a point in time when management has determined that control over systems has transferred to the customer, which is generally when legal title has transferred to the customer. For the same revenue arrangements, management believes that the output of the associated professional services is transferred to the customer over time. As such, professional services revenue is recognized over the period in which the services are provided using a cost input measure. The Company recognizes revenue when control of the systems and services has been transferred to the customer, which may be earlier than system installation or customer acceptance, in accordance with the agreed-upon specifications in the contract.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Deferred Revenue</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Deferred revenue results from transactions where the Company billed the customer for products or services and when cash payments are received or due prior to transferring control of the promised goods or services to the customer. </span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Payment terms to customers typically range from net\u00a030\u00a0to net\u00a090\u00a0days and vary by the size and location of customer and the products or services offered. The period between the transfer of control of the promised good or service to a customer and when payment is due is not significant.</span></div>","language":"en-us"}]},{"name":"rpt:f-403","factDimensions":{"xbrl:concept":"us-gaap:CostOfSalesPolicyTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Cost of Revenue</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Cost of revenue consists primarily of finished goods inventory purchased from the Company\u2019s contract manufacturers, payroll and related expenses associated with managing the relationships with contract manufacturers, depreciation of manufacturing test equipment, warranty and retrofit costs, excess and obsolete inventory costs, shipping charges and amortization of certain intangible assets. It also includes contractor and other costs of services incurred directly related to the delivery of services to customers.</span></div>","language":"en-us"}]},{"name":"rpt:f-404","factDimensions":{"xbrl:concept":"us-gaap:StandardProductWarrantyPolicy","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Warranty and Retrofit</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company offers limited warranties for its hardware products for a period of <span style=\"-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmEyYzdkOWY2NmFlNzQxZWFiZDMxNzljNjMyNjI0YThmL3NlYzphMmM3ZDlmNjZhZTc0MWVhYmQzMTc5YzYzMjYyNGE4Zl84NS9mcmFnOjBhOWRkMDIzZWI3YjQ2ZmE5N2EzYmVhNTQ3NGNmYzlhL3RleHRyZWdpb246MGE5ZGQwMjNlYjdiNDZmYTk3YTNiZWE1NDc0Y2ZjOWFfNjc0OA_6f0f0fc9-a13b-4e80-84ef-a993bc8f1334\">one</span>, <span style=\"-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmEyYzdkOWY2NmFlNzQxZWFiZDMxNzljNjMyNjI0YThmL3NlYzphMmM3ZDlmNjZhZTc0MWVhYmQzMTc5YzYzMjYyNGE4Zl84NS9mcmFnOjBhOWRkMDIzZWI3YjQ2ZmE5N2EzYmVhNTQ3NGNmYzlhL3RleHRyZWdpb246MGE5ZGQwMjNlYjdiNDZmYTk3YTNiZWE1NDc0Y2ZjOWFfNjc1Mg_c366c126-0603-4e70-a4ad-006e78281556\">three</span> or <span style=\"-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmEyYzdkOWY2NmFlNzQxZWFiZDMxNzljNjMyNjI0YThmL3NlYzphMmM3ZDlmNjZhZTc0MWVhYmQzMTc5YzYzMjYyNGE4Zl84NS9mcmFnOjBhOWRkMDIzZWI3YjQ2ZmE5N2EzYmVhNTQ3NGNmYzlhL3RleHRyZWdpb246MGE5ZGQwMjNlYjdiNDZmYTk3YTNiZWE1NDc0Y2ZjOWFfNjc1OA_52cf4426-357b-4fe9-83b1-2b4eec47a8c6\">five</span> years, depending on the product type. The Company recognizes estimated costs related to warranty activities as a component of cost of revenue upon product shipment or upon identification of a specific product failure. Under certain circumstances, the Company also provides fixes on specifically identified performance failures for products that are outside of the standard warranty period and recognizes estimated costs related to retrofit activities as a component of cost of revenue upon identification of such product failures. The Company recognizes estimated warranty and retrofit costs when it is probable that a liability has been incurred and the amount of loss is reasonably estimable. The estimates are based upon historical and projected product failure and claim rates, historical costs incurred in correcting product failures and information available related to any specifically identified product failures. Judgment is required in estimating costs associated with warranty and retrofit activities, and the Company's estimates are limited to information available to the Company at the time of such estimates. In some cases, such as when a specific product failure is first identified or a new product is introduced, the Company may initially have limited information and limited historical failure and claim rates upon which to base its estimates, and such estimates may require revision in future periods. The recorded amount is adjusted from time to time for specifically identified warranty and retrofit exposure. Actual warranty and retrofit expenses are charged against the Company\u2019s estimated warranty and retrofit liability when incurred. Factors that affect the Company\u2019s warranty and retrofit liability include the number of active installed units and historical and anticipated rates of warranty and retrofit claims and cost per claim.</span></div>","language":"en-us"}]},{"name":"rpt:f-405","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Stock-Based Compensation</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Stock-based compensation expense associated with stock options, performance stock options (\u201cPSOs\u201d), restricted stock units (\u201cRSUs\u201d) and purchase rights under the Amended and Restated Employee Stock Purchase Plan (the \u201cESPP\u201d) and the Amended and Restated 2017 Nonqualified Employee Stock Purchase Plan (the \u201cNQ ESPP\u201d) is measured at the grant date based on the </span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">fair value of the award, and is recognized, net of forfeitures, as expense over the remaining requisite service period (generally the vesting period) on a straight-line basis.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The fair value of stock option and employee stock purchase right under the ESPP is estimated at the grant date using the Black-Scholes option valuation model. The fair value of RSUs and employee stock purchase right under the Nonqualified ESPP is based on closing market price of the Company\u2019s common stock on the date of grant.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Stock-based compensation expense associated with PSOs with graded vesting features and which contain both a performance and a service condition is measured based on fair value of stock options estimated at the grant date using the Black-Scholes option valuation model, and is recognized, net of forfeitures, as expense over the requisite service period using the graded vesting attribution method.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Compensation expense is only recognized if the Company has determined that it is probable that the performance condition will be met. The Company reassesses the probability of vesting at each reporting period and adjusts compensation expense based on its probability assessment.</span></div>","language":"en-us"}]},{"name":"rpt:f-406","factDimensions":{"xbrl:concept":"us-gaap:ConcentrationRiskCreditRisk","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Credit Risk and Inventory Supplier Concentrations</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Financial instruments that potentially subject the Company to significant concentrations of credit risk consist primarily of cash, cash equivalents, marketable securities and accounts receivable. Cash equivalents consist of money market funds and marketable securities with a maturity at the date of purchase of ninety days or less, which are invested through financial institutions in the United States. Deposits in and investments held by these financial institutions may, at times, exceed federally insured limits. The Company has not experienced any losses in such accounts. The Company also has approximately $3.0 million of cash held by its foreign subsidiaries in Brazil, China and the United Kingdom. Management believes that the financial institutions that hold the Company\u2019s cash and cash equivalents are financially sound and, accordingly, minimal credit risk exists with respect to these cash and cash equivalents.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company depends primarily on a small number of outside contract manufacturers (\u201cCMs\u201d) and original design manufacturers (\u201cODMs\u201d) for the bulk of its finished goods inventory. The Company generally purchases its products through purchase orders with its suppliers. While the Company seeks to maintain a sufficient supply of its products, the Company\u2019s business and results of operations could be adversely affected by a stoppage or delay in receiving such products, the receipt of defective parts, an increase in price of such products or the Company\u2019s inability to obtain lower prices from its CMs, ODMs and other suppliers in response to competitive pressures.</span></div>","language":"en-us"}]},{"name":"rpt:f-407","factDimensions":{"xbrl:concept":"us-gaap:Cash","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"calx:BrazilChinaAndUnitedKingdomMember","srt:ConsolidatedEntitiesAxis":"srt:SubsidiariesMember"},"factValues":[{"value":"3000000.0","decimals":-5}]},{"name":"rpt:f-408","factDimensions":{"xbrl:concept":"us-gaap:FairValueOfFinancialInstrumentsPolicy","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Fair Value of Financial Instruments</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The carrying amounts of cash and cash equivalents, trade receivables, accounts payable, line of credit and other accrued liabilities approximate their fair value due to their relatively short-term nature. Marketable securities are valued using quoted market prices in active markets to determine fair value.</span></div>","language":"en-us"}]},{"name":"rpt:f-409","factDimensions":{"xbrl:concept":"calx:CashCashEquivalentsAndMarketableSecuritiesPolicyPolicyTextBlockPolicyTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Cash, Cash Equivalents and Marketable Securities</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Cash equivalents and marketable securities are stated at amounts that approximate fair value based on quoted market prices.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company has invested its excess cash primarily in money market funds and highly liquid marketable securities such as U.S. treasury bonds, corporate debt instruments, commercial paper and U.S. government securities. The Company considers all investments with maturities of three months or less when purchased to be cash equivalents. Marketable securities represent highly liquid U.S. treasury bonds, corporate debt instruments, commercial paper and U.S. government securities with maturities </span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">greater than 90 days at date of purchase. Marketable securities with maturities greater than one year are classified as current because management considers all marketable securities to be available for current operations.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company\u2019s investments have been classified and accounted for as available-for-sale. Such investments are recorded at fair value and unrealized holding gains and losses are reported as a separate component of comprehensive loss in the stockholders\u2019 equity until realized. Realized gains and losses on sales of marketable securities, if any, are determined on the specific identification method and are reclassified from accumulated other comprehensive loss to results of operations as \u201cOther income (expense), net\u201d. The Company had no investments as of December 31, 2019. See Note 2 \u201c</span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Cash, Cash Equivalents, Restricted Cash and Marketable Securities\u201d.</span></div>","language":"en-us"}]},{"name":"rpt:f-410","factDimensions":{"xbrl:concept":"us-gaap:ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Allowance for Doubtful Accounts</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company maintains an allowance for doubtful accounts for expected credit losses at contract inception resulting from the inability of its customers to make required payments. The Company records a specific allowance and revises the expected loss based on an analysis of individual past-due balances. Additionally, based on historical write-offs and the Company\u2019s collection experience, the Company records an additional allowance based on a percentage of outstanding receivables. The Company performs credit evaluations of its customers\u2019 financial condition. These evaluations require judgment and are based on a variety of factors including, but not limited to, current economic trends, payment history and a financial review of the customer. Actual collection losses may differ from management\u2019s estimates, and such differences could be material to the Company's financial position and results of operations.</span></div>","language":"en-us"}]},{"name":"rpt:f-411","factDimensions":{"xbrl:concept":"us-gaap:InventoryPolicyTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Inventory Valuation</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Inventory, which primarily consists of finished goods purchased from CMs or ODMs, is stated at the lower of cost (determined by the first-in, first-out method) or market value. Inbound shipping costs and U.S. tariffs are included in cost of inventory. In addition, the Company, from time to time, procures component inventory primarily as a result of manufacturing discontinuation of critical components by suppliers. The Company regularly monitors inventory quantities on hand and records write-downs for excess and obsolete inventories based on the Company\u2019s estimate of demand for its products, potential obsolescence of technology, product life cycles and whether pricing trends or forecasts indicate that the carrying value of inventory exceeds its estimated selling price. These factors are impacted by market and economic conditions, technology changes and new product introductions and require significant estimates that may include elements that are uncertain. Actual demand may differ from forecasted demand and may have a material effect on gross profit. If inventory is written down, a new cost basis is established that cannot be increased in future periods. Shipments from suppliers before the Company receives them are recorded as in-transit inventory when title and the significant risks and rewards of ownership have passed to the Company.</span></div>","language":"en-us"}]},{"name":"rpt:f-412","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerPolicyTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Contract Costs</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company capitalizes sales commissions primarily related to extended warranty for which the expected amortization period is greater than one year.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Capitalized commissions are amortized as sales and marketing expenses over the period that the related revenue is recognized, which can be up to five years for extended warranty. The Company classifies the unamortized portion of deferred commissions as current or noncurrent based on the timing of when the Company expects to recognize the expense. The current and noncurrent portions of deferred commissions are included in prepaid expenses and other current assets and other assets, respectively, in the Company\u2019s Consolidated Balance Sheets.</span></div>","language":"en-us"}]},{"name":"rpt:f-413","factDimensions":{"xbrl:concept":"us-gaap:CapitalizedContractCostAmortizationPeriod","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","srt:RangeAxis":"srt:MaximumMember"},"factValues":[{"value":"P5Y"}]},{"name":"rpt:f-414","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentPolicyTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Property and Equipment</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Property and equipment are stated at cost, less accumulated depreciation, and are depreciated using the straight-line method over the estimated useful life of each asset. Generally, computer equipment is depreciated over two years; purchased software is depreciated over <span style=\"-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmEyYzdkOWY2NmFlNzQxZWFiZDMxNzljNjMyNjI0YThmL3NlYzphMmM3ZDlmNjZhZTc0MWVhYmQzMTc5YzYzMjYyNGE4Zl84NS9mcmFnOjBhOWRkMDIzZWI3YjQ2ZmE5N2EzYmVhNTQ3NGNmYzlhL3RleHRyZWdpb246MGE5ZGQwMjNlYjdiNDZmYTk3YTNiZWE1NDc0Y2ZjOWFfMTg0ODA_be391f30-ae02-40d3-a21b-80f1a4c3bd97\">three</span> to five years; test equipment is depreciated over three years; furniture and fixtures are depreciated over seven years; and leasehold improvements are depreciated over the shorter of the respective lease term or the estimated useful life of the asset. Maintenance and repairs are charged to expense as incurred.</span></div>","language":"en-us"}]},{"name":"rpt:f-415","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentUsefulLife","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:ComputerEquipmentMember"},"factValues":[{"value":"P2Y"}]},{"name":"rpt:f-416","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentUsefulLife","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:ComputerSoftwareIntangibleAssetMember","srt:RangeAxis":"srt:MaximumMember"},"factValues":[{"value":"P5Y"}]},{"name":"rpt:f-417","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentUsefulLife","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:EquipmentMember"},"factValues":[{"value":"P3Y"}]},{"name":"rpt:f-418","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentUsefulLife","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:FurnitureAndFixturesMember"},"factValues":[{"value":"P7Y"}]},{"name":"rpt:f-419","factDimensions":{"xbrl:concept":"us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Goodwill</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Goodwill was recorded as a result of the Company\u2019s acquisitions of Occam Networks, Inc. in February 2011 and Optical Solutions, Inc. in February 2006. The Company records goodwill when consideration paid in a business acquisition exceeds the fair value of the net tangible assets and the identified intangible assets acquired. Goodwill is not amortized but instead is subject to an annual impairment test or more frequently if events or changes in circumstances indicate that it may be impaired. The Company evaluates goodwill on an annual basis as of the end of the second quarter of each fiscal year. Management has determined that it operates as a single reporting unit and, therefore, evaluates goodwill impairment at the enterprise level.</span></div>At the end of the second quarter of 2020, the Company completed its annual goodwill impairment test. Based on its assessment of certain qualitative factors such as market capitalization, management concluded that the fair value of the Company was more likely than not greater than its carrying amount as of June 27, 2020. As such, it was not necessary to perform the two-step quantitative goodwill impairment test at the time.","language":"en-us"}]},{"name":"rpt:f-420","factDimensions":{"xbrl:concept":"us-gaap:GoodwillImpairmentLoss","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0"}]},{"name":"rpt:f-421","factDimensions":{"xbrl:concept":"us-gaap:GoodwillImpairmentLoss","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0"}]},{"name":"rpt:f-422","factDimensions":{"xbrl:concept":"us-gaap:GoodwillImpairmentLoss","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0"}]},{"name":"rpt:f-423","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxPolicyTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Income Taxes</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company evaluates its tax positions and estimates its current tax exposure along with assessing temporary differences that result from different book to tax treatment of items not currently deductible for tax purposes. These differences result in deferred tax assets and liabilities on the Company\u2019s Consolidated Balance Sheets, which are estimated based upon the difference between the financial statement and tax bases of assets and liabilities using the enacted tax rates that will be in effect when these differences reverse. In general, deferred tax assets represent future tax benefits to be received when certain expenses previously recognized in the Company\u2019s Consolidated Statements of Comprehensive Loss become deductible expenses under applicable income tax laws or loss or credit carryforwards are utilized. Accordingly, realization of the Company\u2019s deferred tax assets is dependent on future taxable income against which these deductions, losses and credits can be utilized.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company must assess the likelihood that the Company\u2019s deferred tax assets will be recovered from future taxable income, and to the extent the Company believes that recovery is not more likely than not, the Company must establish a valuation allowance. Management judgment is required in determining the Company\u2019s provision for income taxes, the Company\u2019s deferred tax assets and liabilities and any valuation allowance recorded against the Company\u2019s net deferred tax assets. Excluding foreign operations, the Company recorded a full valuation allowance at each balance sheet date presented because, based on the available evidence, the Company believes it is more likely than not that it will not be able to utilize all of its deferred tax assets in the future. The Company intends to maintain the full valuation allowance until sufficient evidence exists to support the reversal of the valuation allowance.</span></div>","language":"en-us"}]},{"name":"rpt:f-424","factDimensions":{"xbrl:concept":"us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Newly Adopted Accounting Standards</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company did not adopt any new accounting standard in 2020 that were significant to the Company.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Leases</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">In February 2016, the FASB issued Accounting Standards Update No. 2016-02, Leases (Topic 842), which requires recognition of an asset and liability for lease arrangements longer than twelve months. The Company adopted the new standard effective January 1, 2019 using the effective date approach which eliminates the need to restate amounts presented prior to that date. The Company also elected the package of practical expedients but not the hindsight practical expedient. The adoption had a material impact on the Company's Consolidated Balance Sheets but did not impact the Company's Consolidated Statements of Comprehensive Loss, Cash Flows or Stockholders' Equity. Upon adoption on January 1, 2019, the Company recognized an operating lease right-of-use asset of $15.8\u00a0million and a lease liability of $16.7\u00a0million.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Recent Accounting Pronouncements Not Yet Adopted</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">There have been no accounting pronouncements or changes in accounting pronouncements that are significant or potentially significant to the Company.</span></div>","language":"en-us"}]},{"name":"rpt:f-425","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseRightOfUseAsset","xbrl:period":"2019-01-02T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:AdjustmentsForNewAccountingPronouncementsAxis":"us-gaap:AccountingStandardsUpdate201602Member"},"factValues":[{"value":"15800000","decimals":-5}]},{"name":"rpt:f-426","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseLiability","xbrl:period":"2019-01-02T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:AdjustmentsForNewAccountingPronouncementsAxis":"us-gaap:AccountingStandardsUpdate201602Member"},"factValues":[{"value":"16700000","decimals":-5}]},{"name":"rpt:f-427","factDimensions":{"xbrl:concept":"us-gaap:CashCashEquivalentsAndMarketableSecuritiesTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"Cash, Cash Equivalents, Restricted Cash and Marketable SecuritiesThe Company has invested its excess cash primarily in money market funds and highly liquid marketable securities such as corporate debt instruments, commercial paper and U.S. government securities. The Company considers all investments with maturities of three months or less when purchased to be cash equivalents. Marketable securities represent highly liquid corporate debt instruments, commercial paper and U.S. government securities with maturities greater than 90 days at date of purchase. Marketable securities with maturities greater than one year are classified as current because management considers all marketable securities to be available for current operations.<div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Cash equivalents are stated at amounts that approximate fair value based on quoted market prices. Marketable securities are recorded at their fair values.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company\u2019s investments have been classified and accounted for as available-for-sale. Such investments are recorded at fair value and unrealized holding gains and losses are reported as a separate component of accumulated other comprehensive loss in the stockholders\u2019 equity until realized. Realized gains and losses on sales of marketable securities, if any, are determined on the specific identification method and are reclassified from accumulated other comprehensive income (loss) to results of operations as other income (expense), net. Realized and unrealized gains and losses were de minimis for 2020.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Cash, cash equivalents, restricted cash and marketable securities consisted of the following (in thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:11pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.888%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:70.610%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.609%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.235%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.609%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.237%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"9\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%\">December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%\">2019</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Cash and cash equivalents:</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Cash</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">30,745\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">46,815\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">U.S. government securities</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">39,994\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Money market funds</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">10,068\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">14\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 25.75pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Total cash and cash equivalents</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">80,807\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">46,829\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Restricted cash</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">628\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 25.75pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Total cash, cash equivalents and restricted cash</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">80,807\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">47,457\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><div><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:115%\">Marketable securities \u2013 U.S. government securities</span></div></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">52,982\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">133,789\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">47,457\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div>The carrying amounts of the Company\u2019s money market funds approximate their fair values due to their nature, duration and short maturities.","language":"en-us"}]},{"name":"rpt:f-428","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfCashAndCashEquivalentsTableTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Cash, cash equivalents, restricted cash and marketable securities consisted of the following (in thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:11pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.888%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:70.610%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.609%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.235%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.609%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.237%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"9\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%\">December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%\">2019</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Cash and cash equivalents:</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Cash</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">30,745\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">46,815\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">U.S. government securities</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">39,994\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Money market funds</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">10,068\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">14\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 25.75pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Total cash and cash equivalents</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">80,807\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">46,829\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Restricted cash</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">628\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 25.75pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Total cash, cash equivalents and restricted cash</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">80,807\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">47,457\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><div><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:115%\">Marketable securities \u2013 U.S. government securities</span></div></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">52,982\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">133,789\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">47,457\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-429","factDimensions":{"xbrl:concept":"us-gaap:CashAndCashEquivalentsAtCarryingValue","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:CashAndCashEquivalentsAxis":"us-gaap:CashMember"},"factValues":[{"value":"30745000","decimals":-3}]},{"name":"rpt:f-430","factDimensions":{"xbrl:concept":"us-gaap:CashAndCashEquivalentsAtCarryingValue","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:CashAndCashEquivalentsAxis":"us-gaap:CashMember"},"factValues":[{"value":"46815000","decimals":-3}]},{"name":"rpt:f-431","factDimensions":{"xbrl:concept":"us-gaap:CashAndCashEquivalentsAtCarryingValue","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:CashAndCashEquivalentsAxis":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember"},"factValues":[{"value":"39994000","decimals":-3}]},{"name":"rpt:f-432","factDimensions":{"xbrl:concept":"us-gaap:CashAndCashEquivalentsAtCarryingValue","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:CashAndCashEquivalentsAxis":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-433","factDimensions":{"xbrl:concept":"us-gaap:CashAndCashEquivalentsAtCarryingValue","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:CashAndCashEquivalentsAxis":"us-gaap:MoneyMarketFundsMember"},"factValues":[{"value":"10068000","decimals":-3}]},{"name":"rpt:f-434","factDimensions":{"xbrl:concept":"us-gaap:CashAndCashEquivalentsAtCarryingValue","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:CashAndCashEquivalentsAxis":"us-gaap:MoneyMarketFundsMember"},"factValues":[{"value":"14000","decimals":-3}]},{"name":"rpt:f-435","factDimensions":{"xbrl:concept":"us-gaap:CashAndCashEquivalentsAtCarryingValue","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"80807000","decimals":-3}]},{"name":"rpt:f-436","factDimensions":{"xbrl:concept":"us-gaap:CashAndCashEquivalentsAtCarryingValue","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"46829000","decimals":-3}]},{"name":"rpt:f-437","factDimensions":{"xbrl:concept":"us-gaap:RestrictedCashCurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-438","factDimensions":{"xbrl:concept":"us-gaap:RestrictedCashCurrent","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"628000","decimals":-3}]},{"name":"rpt:f-439","factDimensions":{"xbrl:concept":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"80807000","decimals":-3}]},{"name":"rpt:f-440","factDimensions":{"xbrl:concept":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"47457000","decimals":-3}]},{"name":"rpt:f-441","factDimensions":{"xbrl:concept":"us-gaap:AvailableForSaleSecuritiesDebtSecurities","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember"},"factValues":[{"value":"52982000","decimals":-3}]},{"name":"rpt:f-442","factDimensions":{"xbrl:concept":"us-gaap:AvailableForSaleSecuritiesDebtSecurities","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-443","factDimensions":{"xbrl:concept":"calx:CashCashEquivalentsRestrictedCashAndMarketableSecurities","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"133789000","decimals":-3}]},{"name":"rpt:f-444","factDimensions":{"xbrl:concept":"calx:CashCashEquivalentsRestrictedCashAndMarketableSecurities","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"47457000","decimals":-3}]},{"name":"rpt:f-445","factDimensions":{"xbrl:concept":"us-gaap:FairValueDisclosuresTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"Fair Value Measurements<div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company measures its cash equivalents and marketable securities at fair value on a recurring basis. Fair value is an exit price, representing the amount that would be received to sell an asset or paid to transfer a liability in an orderly transaction between market participants. As such, fair value is a market-based measurement that should be determined based on assumptions that market participants would use in pricing an asset or liability. The Company utilizes the following three-tier value hierarchy which prioritizes the inputs used in measuring fair value:</span></div><div style=\"margin-top:6pt;padding-left:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Level 1 \u2013 Observable inputs that reflect quoted prices (unadjusted) for identical assets or liabilities in active markets.</span></div><div style=\"margin-top:6pt;padding-left:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Level 2 \u2013 Observable inputs other than quoted prices included in Level 1 for similar instruments in active markets, quoted prices for identical or similar instruments in markets that are not active, and model-driven valuations in which all significant inputs and significant value drivers are observable in active markets.</span></div><div style=\"margin-top:6pt;padding-left:36pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Level 3 \u2013 Unobservable inputs to the valuation derived from fair valuation techniques in which one or more significant inputs or significant value drivers are unobservable. The fair value hierarchy also requires the Company to maximize the use of observable inputs, when available, and to minimize the use of unobservable inputs when determining inputs and determining fair value.</span></div><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The following tables sets forth the Company\u2019s financial assets measured at fair value on a recurring basis based on the three-tier fair value hierarchy (in thousands): </span></div><div style=\"margin-bottom:5pt;margin-top:5pt\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:76.608%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:84.968%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:12.832%\"></td><td style=\"width:0.1%\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">As of December 31, 2020</span></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Level 1</span></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Money market funds</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">10,068\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">U.S. government securities</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">92,976\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">103,044\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr></table></div><div style=\"margin-top:12pt\"><span><br/></span></div><div style=\"margin-bottom:5pt;margin-top:5pt\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:76.608%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:84.968%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:12.832%\"></td><td style=\"width:0.1%\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">As of December 31, 2019</span></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Level 1</span></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Money market funds</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">14\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-446","factDimensions":{"xbrl:concept":"us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The following tables sets forth the Company\u2019s financial assets measured at fair value on a recurring basis based on the three-tier fair value hierarchy (in thousands): </span></div><div style=\"margin-bottom:5pt;margin-top:5pt\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:76.608%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:84.968%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:12.832%\"></td><td style=\"width:0.1%\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">As of December 31, 2020</span></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Level 1</span></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Money market funds</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">10,068\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">U.S. government securities</span></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">92,976\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">103,044\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr></table></div><div style=\"margin-top:12pt\"><span><br/></span></div><div style=\"margin-bottom:5pt;margin-top:5pt\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:76.608%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:84.968%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:12.832%\"></td><td style=\"width:0.1%\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">As of December 31, 2019</span></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Level 1</span></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Money market funds</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">14\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-447","factDimensions":{"xbrl:concept":"us-gaap:CashAndCashEquivalentsFairValueDisclosure","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:CashAndCashEquivalentsAxis":"us-gaap:MoneyMarketFundsMember","us-gaap:FairValueByFairValueHierarchyLevelAxis":"us-gaap:FairValueInputsLevel1Member","us-gaap:FairValueByMeasurementFrequencyAxis":"us-gaap:FairValueMeasurementsRecurringMember"},"factValues":[{"value":"10068000","decimals":-3}]},{"name":"rpt:f-448","factDimensions":{"xbrl:concept":"us-gaap:AvailableForSaleSecuritiesDebtSecurities","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FairValueByFairValueHierarchyLevelAxis":"us-gaap:FairValueInputsLevel1Member","us-gaap:FairValueByMeasurementFrequencyAxis":"us-gaap:FairValueMeasurementsRecurringMember","us-gaap:FinancialInstrumentAxis":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember"},"factValues":[{"value":"92976000","decimals":-3}]},{"name":"rpt:f-449","factDimensions":{"xbrl:concept":"us-gaap:AssetsFairValueDisclosure","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FairValueByFairValueHierarchyLevelAxis":"us-gaap:FairValueInputsLevel1Member","us-gaap:FairValueByMeasurementFrequencyAxis":"us-gaap:FairValueMeasurementsRecurringMember"},"factValues":[{"value":"103044000","decimals":-3}]},{"name":"rpt:f-450","factDimensions":{"xbrl:concept":"us-gaap:CashAndCashEquivalentsFairValueDisclosure","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:CashAndCashEquivalentsAxis":"us-gaap:MoneyMarketFundsMember","us-gaap:FairValueByFairValueHierarchyLevelAxis":"us-gaap:FairValueInputsLevel1Member","us-gaap:FairValueByMeasurementFrequencyAxis":"us-gaap:FairValueMeasurementsRecurringMember"},"factValues":[{"value":"14000","decimals":-3}]},{"name":"rpt:f-451","factDimensions":{"xbrl:concept":"us-gaap:SupplementalBalanceSheetDisclosuresTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"Balance Sheet Details<div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Accounts receivable, net consisted of the following (in thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.888%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:70.610%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.609%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.235%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.609%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.237%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"9\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%\">December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%\">2019</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Accounts receivable</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">70,824\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">46,883\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Allowance for doubtful accounts</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(1,405)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(374)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">69,419\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">46,509\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The table below summarizes the changes in allowance for doubtful accounts and product return liability for the periods indicated (in thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.742%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:41.568%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.420%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.420%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.420%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.424%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Balance at Beginning of Year</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Additions Charged to Costs or Expenses or Revenue</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Deductions and Write Offs</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Balance at <br/>End of Year</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Year Ended December 31, 2020</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Allowance for doubtful accounts</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">374\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,085\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(54)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,405\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Product return liability</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">919\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">3,391\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(2,422)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,888\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Year Ended December 31, 2019</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Allowance for doubtful accounts</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">370\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">168\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(164)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">374\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Product return liability</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">880\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,620\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(1,581)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">919\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Year Ended December 31, 2018</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Allowance for doubtful accounts</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">579\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(5)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(204)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">370\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Product return liability</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">822\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">771\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(713)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">880\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Inventory consisted of the following (in thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.888%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:70.610%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.609%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.235%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.609%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.237%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"9\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%\">December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%\">2019</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Raw materials</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">34\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">656\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Finished goods</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">52,234\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">39,497\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">52,268\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">40,153\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Property and equipment, net consisted of the following (in thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.888%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:70.610%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.609%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.235%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.609%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.237%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"9\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%\">December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%\">2019</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Test equipment</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">37,670\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">37,001\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Software</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">16,093\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">20,646\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Computer equipment</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">9,062\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">10,835\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Furniture and fixtures</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2,069\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2,342\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Leasehold improvements</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,345\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2,047\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">66,239\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">72,871\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Accumulated depreciation and amortization</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(45,858)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(51,344)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">20,381\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">21,527\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Depreciation and amortization expenses were\u00a0$13.7 million, $10.3 million and\u00a0$9.2 million for the years ended December\u00a031, 2020, 2019 and 2018, respectively.</span></div><div style=\"margin-top:12pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Loss on Asset Retirement</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">In July 2018, in connection with establishing a direct relationship with Verizon Communications, Inc. (\u201cVerizon\u201d), the Company licensed software from a former partner to support the Company's deployments at Verizon. During the third quarter of 2019, Verizon informed the Company that it no longer required this software. As a result, the Company wrote off the software in the third quarter of 2019, resulting in a $2.5 million charge in the Company's Consolidated Statements of Comprehensive Income (Loss).</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Other long-term assets consisted of the following (in thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:11pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:95.467%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:73.172%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.484%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.079%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.484%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.081%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"9\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Intangible asset</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">9,517\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">12,148\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Capitalized cloud implementation costs</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,287\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">6,089\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Other long-term assets</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,361\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,203\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">12,165\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">19,440\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div><div style=\"margin-top:12pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Intangible Asset Acquisition</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">In March 2018, the Company entered into an agreement with a vendor to develop certain software product and related enhancements pursuant to which the Company may be obligated to make minimum revenue-share payments under the program of up to $15.8 million over the three years following availability for sale. The payments are based on a revenue-share rate applied to revenue from the developed-product and the corresponding hardware sales subject to a minimum and a maximum aggregate amount over the three-year sales period. The Company had its first sale in August 2019, and as a result, the Company capitalized an intangible asset with a value of $13.2 million in the third quarter of 2019 and also recognized a liability of $13.2\u00a0million (a non-cash investing activity). The liability balance is $13.9\u00a0million of which $2.9\u00a0million is included in accrued liabilities and $11.0\u00a0million in other long-term liabilities in the accompanying Consolidated Balance Sheet as of December 31, 2020. The intangible asset has an estimated five-year useful life and is being amortized using the greater of the ratio of current gross revenue for the products to the total of current and anticipated future gross revenue for the products or the straight-line method. In December 2020, the Company amended the agreement to increase the revenue-share rate, limit the revenue-share payments to $15.8\u00a0million and extend the revenue-share period until March 2024.</span></div><div style=\"margin-top:12pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Capitalized Cloud Implementation Costs</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">In January 2020, the Company went live with its cloud-based enterprise resource planning (\u201cERP\u201d) system. As a result, the Company capitalized $7.5\u00a0million of implementation costs in both prepaid expenses and other current assets and other long-term assets in the Company's Consolidated Balance Sheet. This amount is being amortized over a period of 29 months, representing the remaining contractual term. The amortization expense for the year ended December 31, 2020 was $3.1\u00a0million.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Accrued liabilities consisted of the following (in thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.888%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:70.610%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.609%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.235%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.609%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.237%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"9\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%\">December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%\">2019</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Compensation and related benefits</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">23,740\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">19,010\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Warranty and retrofit</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">9,208\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">7,294\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Customer advances or rebates</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">8,374\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">7,252\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Professional and consulting fees</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">4,497\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">4,996\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Component inventory held by suppliers</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">3,992\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,925\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Taxes payable</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">3,476\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2,021\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Operating leases</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2,994\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2,663\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Current portion of financing arrangements</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2,925\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">4,044\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Freight</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,955\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">808\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Product returns</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,888\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">919\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Operations</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">950\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,053\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Other</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">4,737\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">5,561\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">68,736\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">57,546\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Changes in the Company\u2019s accrued warranty and retrofit liability were as follows (in thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:11pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.742%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:56.395%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.255%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.255%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.259%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"15\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Years Ended December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2018</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Balance at beginning of year</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">7,294\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">8,547\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">8,708\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Provision for warranty and retrofit charged to cost of revenue</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">5,888\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">4,425\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">5,215\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Utilization of reserve</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(3,974)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(5,678)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(5,376)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Balance at end of year</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">9,208\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">7,294\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">8,547\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Accrued Restructuring Charges</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Responding to trends caused by the COVID-19 pandemic, the Company initiated a restructuring plan in June 2020 to accelerate the Company\u2019s all platform future and to align with a work-from-anywhere culture. The Company incurred restructuring charges of approximately $6.3\u00a0million, consisting of facilities-related charges and severance and other termination related benefits for the year ended December 31, 2020.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">As part of its work-from-anywhere culture, many of the Company\u2019s employees elected to work remotely on a permanent basis. In light of this shift, the Company evaluated its space needs and determined that a portion of the Company's leased office spaces in Richardson, Texas and San Jose, California would no longer be utilized. As a result, the right-of-use assets related to these leases were written down, resulting in a charge of $3.5\u00a0million for the year ended December 31, 2020. In addition, the Company wrote off assets with net book value of $0.3\u00a0million and accrued common areas maintenance fees and property taxes related to the unused office space totaling $1.4\u00a0million for the year ended December 31, 2020.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The following table summarizes the activities pursuant to the above restructuring plans (in thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.742%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:56.395%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.255%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.255%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.259%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Facilities</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Severance and Related Benefits</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Total</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Balance as of March 28, 2020</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Restructuring charges</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">5,112\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,174\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">6,286\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Asset write-down</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(3,748)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(3,748)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Cash payments</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(120)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(1,042)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(1,162)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Balance as of December 31, 2020</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,244\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">132\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,376\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div><div style=\"text-align:center\"><span><br/></span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company initiated a restructuring plan in February 2018 to further align its business resources based on the production releases of its platform offerings. The Company incurred restructuring charges of approximately $5.7 million for the year ended December\u00a031, 2018, consisting primarily of severance and other termination related benefits.</span></div>","language":"en-us"}]},{"name":"rpt:f-452","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Accounts receivable, net consisted of the following (in thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.888%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:70.610%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.609%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.235%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.609%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.237%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"9\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%\">December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%\">2019</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Accounts receivable</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">70,824\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">46,883\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Allowance for doubtful accounts</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(1,405)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(374)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">69,419\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">46,509\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-453","factDimensions":{"xbrl:concept":"us-gaap:AccountsReceivableGrossCurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"70824000","decimals":-3}]},{"name":"rpt:f-454","factDimensions":{"xbrl:concept":"us-gaap:AccountsReceivableGrossCurrent","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"46883000","decimals":-3}]},{"name":"rpt:f-455","factDimensions":{"xbrl:concept":"us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1405000","decimals":-3}]},{"name":"rpt:f-456","factDimensions":{"xbrl:concept":"us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"374000","decimals":-3}]},{"name":"rpt:f-457","factDimensions":{"xbrl:concept":"us-gaap:AccountsReceivableNetCurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"69419000","decimals":-3}]},{"name":"rpt:f-458","factDimensions":{"xbrl:concept":"us-gaap:AccountsReceivableNetCurrent","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"46509000","decimals":-3}]},{"name":"rpt:f-459","factDimensions":{"xbrl:concept":"srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The table below summarizes the changes in allowance for doubtful accounts and product return liability for the periods indicated (in thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.742%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:41.568%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.420%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.420%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.420%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.424%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Balance at Beginning of Year</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Additions Charged to Costs or Expenses or Revenue</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Deductions and Write Offs</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Balance at <br/>End of Year</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Year Ended December 31, 2020</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Allowance for doubtful accounts</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">374\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,085\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(54)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,405\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Product return liability</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">919\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">3,391\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(2,422)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,888\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Year Ended December 31, 2019</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Allowance for doubtful accounts</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">370\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">168\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(164)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">374\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Product return liability</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">880\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,620\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(1,581)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">919\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Year Ended December 31, 2018</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Allowance for doubtful accounts</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">579\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(5)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(204)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">370\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Product return liability</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">822\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">771\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(713)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">880\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-460","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesBalance","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"us-gaap:AllowanceForCreditLossMember"},"factValues":[{"value":"374000","decimals":-3}]},{"name":"rpt:f-461","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"us-gaap:AllowanceForCreditLossMember"},"factValues":[{"value":"1085000","decimals":-3}]},{"name":"rpt:f-462","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesDeductions","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"us-gaap:AllowanceForCreditLossMember"},"factValues":[{"value":"54000","decimals":-3}]},{"name":"rpt:f-463","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesBalance","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"us-gaap:AllowanceForCreditLossMember"},"factValues":[{"value":"1405000","decimals":-3}]},{"name":"rpt:f-464","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesBalance","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"calx:ProductReturnReserveMember"},"factValues":[{"value":"919000","decimals":-3}]},{"name":"rpt:f-465","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"calx:ProductReturnReserveMember"},"factValues":[{"value":"3391000","decimals":-3}]},{"name":"rpt:f-466","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesDeductions","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"calx:ProductReturnReserveMember"},"factValues":[{"value":"2422000","decimals":-3}]},{"name":"rpt:f-467","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesBalance","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"calx:ProductReturnReserveMember"},"factValues":[{"value":"1888000","decimals":-3}]},{"name":"rpt:f-468","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesBalance","xbrl:period":"2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"us-gaap:AllowanceForCreditLossMember"},"factValues":[{"value":"370000","decimals":-3}]},{"name":"rpt:f-469","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"us-gaap:AllowanceForCreditLossMember"},"factValues":[{"value":"168000","decimals":-3}]},{"name":"rpt:f-470","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesDeductions","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"us-gaap:AllowanceForCreditLossMember"},"factValues":[{"value":"164000","decimals":-3}]},{"name":"rpt:f-471","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesBalance","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"us-gaap:AllowanceForCreditLossMember"},"factValues":[{"value":"374000","decimals":-3}]},{"name":"rpt:f-472","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesBalance","xbrl:period":"2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"calx:ProductReturnReserveMember"},"factValues":[{"value":"880000","decimals":-3}]},{"name":"rpt:f-473","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"calx:ProductReturnReserveMember"},"factValues":[{"value":"1620000","decimals":-3}]},{"name":"rpt:f-474","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesDeductions","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"calx:ProductReturnReserveMember"},"factValues":[{"value":"1581000","decimals":-3}]},{"name":"rpt:f-475","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesBalance","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"calx:ProductReturnReserveMember"},"factValues":[{"value":"919000","decimals":-3}]},{"name":"rpt:f-476","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesBalance","xbrl:period":"2018-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"us-gaap:AllowanceForCreditLossMember"},"factValues":[{"value":"579000","decimals":-3}]},{"name":"rpt:f-477","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"us-gaap:AllowanceForCreditLossMember"},"factValues":[{"value":"-5000","decimals":-3}]},{"name":"rpt:f-478","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesDeductions","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"us-gaap:AllowanceForCreditLossMember"},"factValues":[{"value":"204000","decimals":-3}]},{"name":"rpt:f-479","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesBalance","xbrl:period":"2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"us-gaap:AllowanceForCreditLossMember"},"factValues":[{"value":"370000","decimals":-3}]},{"name":"rpt:f-480","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesBalance","xbrl:period":"2018-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"calx:ProductReturnReserveMember"},"factValues":[{"value":"822000","decimals":-3}]},{"name":"rpt:f-481","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"calx:ProductReturnReserveMember"},"factValues":[{"value":"771000","decimals":-3}]},{"name":"rpt:f-482","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesDeductions","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"calx:ProductReturnReserveMember"},"factValues":[{"value":"713000","decimals":-3}]},{"name":"rpt:f-483","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesBalance","xbrl:period":"2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"calx:ProductReturnReserveMember"},"factValues":[{"value":"880000","decimals":-3}]},{"name":"rpt:f-484","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfInventoryCurrentTableTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Inventory consisted of the following (in thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.888%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:70.610%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.609%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.235%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.609%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.237%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"9\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%\">December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%\">2019</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Raw materials</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">34\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">656\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Finished goods</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">52,234\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">39,497\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">52,268\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">40,153\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-485","factDimensions":{"xbrl:concept":"us-gaap:InventoryRawMaterialsNetOfReserves","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"34000","decimals":-3}]},{"name":"rpt:f-486","factDimensions":{"xbrl:concept":"us-gaap:InventoryRawMaterialsNetOfReserves","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"656000","decimals":-3}]},{"name":"rpt:f-487","factDimensions":{"xbrl:concept":"us-gaap:InventoryFinishedGoodsNetOfReserves","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"52234000","decimals":-3}]},{"name":"rpt:f-488","factDimensions":{"xbrl:concept":"us-gaap:InventoryFinishedGoodsNetOfReserves","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"39497000","decimals":-3}]},{"name":"rpt:f-489","factDimensions":{"xbrl:concept":"us-gaap:InventoryNet","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"52268000","decimals":-3}]},{"name":"rpt:f-490","factDimensions":{"xbrl:concept":"us-gaap:InventoryNet","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"40153000","decimals":-3}]},{"name":"rpt:f-491","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Property and equipment, net consisted of the following (in thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.888%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:70.610%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.609%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.235%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.609%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.237%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"9\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%\">December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%\">2019</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Test equipment</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">37,670\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">37,001\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Software</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">16,093\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">20,646\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Computer equipment</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">9,062\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">10,835\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Furniture and fixtures</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2,069\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2,342\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Leasehold improvements</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,345\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2,047\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">66,239\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">72,871\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Accumulated depreciation and amortization</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(45,858)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(51,344)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">20,381\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">21,527\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-492","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:EquipmentMember"},"factValues":[{"value":"37670000","decimals":-3}]},{"name":"rpt:f-493","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:EquipmentMember"},"factValues":[{"value":"37001000","decimals":-3}]},{"name":"rpt:f-494","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"calx:SoftwareMember"},"factValues":[{"value":"16093000","decimals":-3}]},{"name":"rpt:f-495","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"calx:SoftwareMember"},"factValues":[{"value":"20646000","decimals":-3}]},{"name":"rpt:f-496","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:ComputerEquipmentMember"},"factValues":[{"value":"9062000","decimals":-3}]},{"name":"rpt:f-497","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:ComputerEquipmentMember"},"factValues":[{"value":"10835000","decimals":-3}]},{"name":"rpt:f-498","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:FurnitureAndFixturesMember"},"factValues":[{"value":"2069000","decimals":-3}]},{"name":"rpt:f-499","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:FurnitureAndFixturesMember"},"factValues":[{"value":"2342000","decimals":-3}]},{"name":"rpt:f-500","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:LeaseholdImprovementsMember"},"factValues":[{"value":"1345000","decimals":-3}]},{"name":"rpt:f-501","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:LeaseholdImprovementsMember"},"factValues":[{"value":"2047000","decimals":-3}]},{"name":"rpt:f-502","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"66239000","decimals":-3}]},{"name":"rpt:f-503","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"72871000","decimals":-3}]},{"name":"rpt:f-504","factDimensions":{"xbrl:concept":"us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"45858000","decimals":-3}]},{"name":"rpt:f-505","factDimensions":{"xbrl:concept":"us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"51344000","decimals":-3}]},{"name":"rpt:f-506","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentNet","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"20381000","decimals":-3}]},{"name":"rpt:f-507","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentNet","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"21527000","decimals":-3}]},{"name":"rpt:f-508","factDimensions":{"xbrl:concept":"us-gaap:Depreciation","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"13700000","decimals":-5}]},{"name":"rpt:f-509","factDimensions":{"xbrl:concept":"us-gaap:Depreciation","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"10300000","decimals":-5}]},{"name":"rpt:f-510","factDimensions":{"xbrl:concept":"us-gaap:Depreciation","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"9200000","decimals":-5}]},{"name":"rpt:f-511","factDimensions":{"xbrl:concept":"us-gaap:ImpairmentOfIntangibleAssetsFinitelived","xbrl:period":"2019-06-30T00:00:00/2019-09-29T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis":"us-gaap:ComputerSoftwareIntangibleAssetMember"},"factValues":[{"value":"2500000","decimals":-5}]},{"name":"rpt:f-512","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfOtherAssetsNoncurrentTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Other long-term assets consisted of the following (in thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:11pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:95.467%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:73.172%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.484%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.079%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.484%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.081%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"9\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Intangible asset</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">9,517\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">12,148\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Capitalized cloud implementation costs</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,287\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">6,089\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Other long-term assets</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,361\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,203\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">12,165\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">19,440\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-513","factDimensions":{"xbrl:concept":"us-gaap:IntangibleAssetsNetExcludingGoodwill","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"9517000","decimals":-3}]},{"name":"rpt:f-514","factDimensions":{"xbrl:concept":"us-gaap:IntangibleAssetsNetExcludingGoodwill","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"12148000","decimals":-3}]},{"name":"rpt:f-515","factDimensions":{"xbrl:concept":"calx:OtherAssetsCapitalizedCloudImplementationCosts","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1287000","decimals":-3}]},{"name":"rpt:f-516","factDimensions":{"xbrl:concept":"calx:OtherAssetsCapitalizedCloudImplementationCosts","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"6089000","decimals":-3}]},{"name":"rpt:f-517","factDimensions":{"xbrl:concept":"us-gaap:OtherAssetsMiscellaneousNoncurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1361000","decimals":-3}]},{"name":"rpt:f-518","factDimensions":{"xbrl:concept":"us-gaap:OtherAssetsMiscellaneousNoncurrent","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1203000","decimals":-3}]},{"name":"rpt:f-519","factDimensions":{"xbrl:concept":"us-gaap:OtherAssetsNoncurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"12165000","decimals":-3}]},{"name":"rpt:f-520","factDimensions":{"xbrl:concept":"us-gaap:OtherAssetsNoncurrent","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"19440000","decimals":-3}]},{"name":"rpt:f-521","factDimensions":{"xbrl:concept":"us-gaap:RoyaltyGuaranteesCommitmentsAmount","xbrl:period":"2018-04-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis":"us-gaap:ComputerSoftwareIntangibleAssetMember"},"factValues":[{"value":"15800000","decimals":-5}]},{"name":"rpt:f-522","factDimensions":{"xbrl:concept":"calx:RoyaltyGuaranteesCommitmentsPaymentPeriod","xbrl:period":"2018-03-01T00:00:00/2018-04-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis":"us-gaap:ComputerSoftwareIntangibleAssetMember"},"factValues":[{"value":"P3Y"}]},{"name":"rpt:f-523","factDimensions":{"xbrl:concept":"us-gaap:IntangibleAssetsCurrent","xbrl:period":"2020-09-27T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis":"us-gaap:ComputerSoftwareIntangibleAssetMember"},"factValues":[{"value":"13200000","decimals":-5}]},{"name":"rpt:f-524","factDimensions":{"xbrl:concept":"us-gaap:OtherLiabilities","xbrl:period":"2019-09-29T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis":"us-gaap:ComputerSoftwareIntangibleAssetMember"},"factValues":[{"value":"13200000","decimals":-5}]},{"name":"rpt:f-525","factDimensions":{"xbrl:concept":"us-gaap:OtherLiabilities","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis":"us-gaap:ComputerSoftwareIntangibleAssetMember"},"factValues":[{"value":"13900000","decimals":-5}]},{"name":"rpt:f-526","factDimensions":{"xbrl:concept":"us-gaap:AccruedLiabilitiesCurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis":"us-gaap:ComputerSoftwareIntangibleAssetMember"},"factValues":[{"value":"2900000","decimals":-5}]},{"name":"rpt:f-527","factDimensions":{"xbrl:concept":"us-gaap:OtherLiabilitiesNoncurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis":"us-gaap:ComputerSoftwareIntangibleAssetMember"},"factValues":[{"value":"11000000.0","decimals":-5}]},{"name":"rpt:f-528","factDimensions":{"xbrl:concept":"us-gaap:FiniteLivedIntangibleAssetUsefulLife","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis":"us-gaap:ComputerSoftwareIntangibleAssetMember"},"factValues":[{"value":"P5Y"}]},{"name":"rpt:f-529","factDimensions":{"xbrl:concept":"us-gaap:RoyaltyGuaranteesCommitmentsAmount","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis":"us-gaap:ComputerSoftwareIntangibleAssetMember"},"factValues":[{"value":"15800000","decimals":-5}]},{"name":"rpt:f-530","factDimensions":{"xbrl:concept":"us-gaap:CapitalizedContractCostNet","xbrl:period":"2020-02-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:CapitalizedContractCostAxis":"calx:CloudImplementationCostsMember"},"factValues":[{"value":"7500000","decimals":-5}]},{"name":"rpt:f-531","factDimensions":{"xbrl:concept":"us-gaap:CapitalizedContractCostAmortizationPeriod","xbrl:period":"2020-02-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:CapitalizedContractCostAxis":"calx:CloudImplementationCostsMember"},"factValues":[{"value":"P29M"}]},{"name":"rpt:f-532","factDimensions":{"xbrl:concept":"us-gaap:CapitalizedContractCostAmortization","xbrl:period":"2020-09-27T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:CapitalizedContractCostAxis":"calx:CloudImplementationCostsMember"},"factValues":[{"value":"3100000","decimals":-5}]},{"name":"rpt:f-533","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Accrued liabilities consisted of the following (in thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.888%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:70.610%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.609%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.235%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.609%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.237%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"9\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%\">December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%\">2019</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Compensation and related benefits</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">23,740\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">19,010\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Warranty and retrofit</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">9,208\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">7,294\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Customer advances or rebates</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">8,374\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">7,252\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Professional and consulting fees</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">4,497\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">4,996\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Component inventory held by suppliers</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">3,992\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,925\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Taxes payable</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">3,476\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2,021\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Operating leases</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2,994\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2,663\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Current portion of financing arrangements</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2,925\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">4,044\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Freight</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,955\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">808\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Product returns</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,888\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">919\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Operations</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">950\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,053\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Other</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">4,737\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">5,561\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">68,736\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">57,546\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-534","factDimensions":{"xbrl:concept":"us-gaap:EmployeeRelatedLiabilitiesCurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"23740000","decimals":-3}]},{"name":"rpt:f-535","factDimensions":{"xbrl:concept":"us-gaap:EmployeeRelatedLiabilitiesCurrent","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"19010000","decimals":-3}]},{"name":"rpt:f-536","factDimensions":{"xbrl:concept":"us-gaap:ProductWarrantyAccrualClassifiedCurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"9208000","decimals":-3}]},{"name":"rpt:f-537","factDimensions":{"xbrl:concept":"us-gaap:ProductWarrantyAccrualClassifiedCurrent","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"7294000","decimals":-3}]},{"name":"rpt:f-538","factDimensions":{"xbrl:concept":"calx:AccruedCustomerRebates","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"8374000","decimals":-3}]},{"name":"rpt:f-539","factDimensions":{"xbrl:concept":"calx:AccruedCustomerRebates","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"7252000","decimals":-3}]},{"name":"rpt:f-540","factDimensions":{"xbrl:concept":"us-gaap:AccruedProfessionalFeesCurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4497000","decimals":-3}]},{"name":"rpt:f-541","factDimensions":{"xbrl:concept":"us-gaap:AccruedProfessionalFeesCurrent","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4996000","decimals":-3}]},{"name":"rpt:f-542","factDimensions":{"xbrl:concept":"calx:AccruedExcessAndObsoleteInventoryAtContractManufacturer","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3992000","decimals":-3}]},{"name":"rpt:f-543","factDimensions":{"xbrl:concept":"calx:AccruedExcessAndObsoleteInventoryAtContractManufacturer","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1925000","decimals":-3}]},{"name":"rpt:f-544","factDimensions":{"xbrl:concept":"calx:TaxesPayableCurrentExcludingAccruedIncomeTaxes","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3476000","decimals":-3}]},{"name":"rpt:f-545","factDimensions":{"xbrl:concept":"calx:TaxesPayableCurrentExcludingAccruedIncomeTaxes","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2021000","decimals":-3}]},{"name":"rpt:f-546","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseLiabilityCurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2994000","decimals":-3}]},{"name":"rpt:f-547","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseLiabilityCurrent","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2663000","decimals":-3}]},{"name":"rpt:f-548","factDimensions":{"xbrl:concept":"calx:AccruedEquipmentFinancingArrangementsCurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2925000","decimals":-3}]},{"name":"rpt:f-549","factDimensions":{"xbrl:concept":"calx:AccruedEquipmentFinancingArrangementsCurrent","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4044000","decimals":-3}]},{"name":"rpt:f-550","factDimensions":{"xbrl:concept":"calx:AccruedFreight","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1955000","decimals":-3}]},{"name":"rpt:f-551","factDimensions":{"xbrl:concept":"calx:AccruedFreight","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"808000","decimals":-3}]},{"name":"rpt:f-552","factDimensions":{"xbrl:concept":"calx:ProductReturnReserveCurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1888000","decimals":-3}]},{"name":"rpt:f-553","factDimensions":{"xbrl:concept":"calx:ProductReturnReserveCurrent","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"919000","decimals":-3}]},{"name":"rpt:f-554","factDimensions":{"xbrl:concept":"calx:OperationsLiabilityCurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"950000","decimals":-3}]},{"name":"rpt:f-555","factDimensions":{"xbrl:concept":"calx:OperationsLiabilityCurrent","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1053000","decimals":-3}]},{"name":"rpt:f-556","factDimensions":{"xbrl:concept":"us-gaap:OtherAccruedLiabilitiesCurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4737000","decimals":-3}]},{"name":"rpt:f-557","factDimensions":{"xbrl:concept":"us-gaap:OtherAccruedLiabilitiesCurrent","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"5561000","decimals":-3}]},{"name":"rpt:f-558","factDimensions":{"xbrl:concept":"us-gaap:AccruedLiabilitiesCurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"68736000","decimals":-3}]},{"name":"rpt:f-559","factDimensions":{"xbrl:concept":"us-gaap:AccruedLiabilitiesCurrent","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"57546000","decimals":-3}]},{"name":"rpt:f-560","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Changes in the Company\u2019s accrued warranty and retrofit liability were as follows (in thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:11pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.742%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:56.395%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.255%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.255%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.259%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"15\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Years Ended December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2018</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Balance at beginning of year</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">7,294\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">8,547\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">8,708\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Provision for warranty and retrofit charged to cost of revenue</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">5,888\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">4,425\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">5,215\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Utilization of reserve</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(3,974)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(5,678)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(5,376)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Balance at end of year</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">9,208\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">7,294\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">8,547\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-561","factDimensions":{"xbrl:concept":"us-gaap:ProductWarrantyAccrual","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"7294000","decimals":-3}]},{"name":"rpt:f-562","factDimensions":{"xbrl:concept":"us-gaap:ProductWarrantyAccrual","xbrl:period":"2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"8547000","decimals":-3}]},{"name":"rpt:f-563","factDimensions":{"xbrl:concept":"us-gaap:ProductWarrantyAccrual","xbrl:period":"2018-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"8708000","decimals":-3}]},{"name":"rpt:f-564","factDimensions":{"xbrl:concept":"us-gaap:ProductWarrantyAccrualWarrantiesIssued","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"5888000","decimals":-3}]},{"name":"rpt:f-565","factDimensions":{"xbrl:concept":"us-gaap:ProductWarrantyAccrualWarrantiesIssued","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4425000","decimals":-3}]},{"name":"rpt:f-566","factDimensions":{"xbrl:concept":"us-gaap:ProductWarrantyAccrualWarrantiesIssued","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"5215000","decimals":-3}]},{"name":"rpt:f-567","factDimensions":{"xbrl:concept":"us-gaap:ProductWarrantyAccrualPayments","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3974000","decimals":-3}]},{"name":"rpt:f-568","factDimensions":{"xbrl:concept":"us-gaap:ProductWarrantyAccrualPayments","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"5678000","decimals":-3}]},{"name":"rpt:f-569","factDimensions":{"xbrl:concept":"us-gaap:ProductWarrantyAccrualPayments","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"5376000","decimals":-3}]},{"name":"rpt:f-570","factDimensions":{"xbrl:concept":"us-gaap:ProductWarrantyAccrual","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"9208000","decimals":-3}]},{"name":"rpt:f-571","factDimensions":{"xbrl:concept":"us-gaap:ProductWarrantyAccrual","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"7294000","decimals":-3}]},{"name":"rpt:f-572","factDimensions":{"xbrl:concept":"us-gaap:ProductWarrantyAccrual","xbrl:period":"2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"8547000","decimals":-3}]},{"name":"rpt:f-573","factDimensions":{"xbrl:concept":"us-gaap:RestructuringCharges","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:RestructuringPlanAxis":"calx:AllPlatformFutureAndWorkFromAnywhereCultureAlignmentMember"},"factValues":[{"value":"6300000","decimals":-5}]},{"name":"rpt:f-574","factDimensions":{"xbrl:concept":"us-gaap:RestructuringCharges","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"calx:RichardsonTexasAndSanJoseCaliforniaMember","us-gaap:RestructuringCostAndReserveAxis":"us-gaap:FacilityClosingMember"},"factValues":[{"value":"3500000","decimals":-5}]},{"name":"rpt:f-575","factDimensions":{"xbrl:concept":"calx:AssetWriteOff","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:RestructuringPlanAxis":"calx:AllPlatformFutureAndWorkFromAnywhereCultureAlignmentMember"},"factValues":[{"value":"300000","decimals":-5}]},{"name":"rpt:f-576","factDimensions":{"xbrl:concept":"calx:AccruedCommonAreasMaintenanceFeesAndPropertyTaxesWriteOff","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:RestructuringPlanAxis":"calx:AllPlatformFutureAndWorkFromAnywhereCultureAlignmentMember"},"factValues":[{"value":"1400000","decimals":-5}]},{"name":"rpt:f-577","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfRestructuringAndRelatedCostsTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The following table summarizes the activities pursuant to the above restructuring plans (in thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.742%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:56.395%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.255%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.255%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.259%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Facilities</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Severance and Related Benefits</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Total</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Balance as of March 28, 2020</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Restructuring charges</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">5,112\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,174\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">6,286\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Asset write-down</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(3,748)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(3,748)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Cash payments</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(120)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(1,042)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(1,162)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Balance as of December 31, 2020</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,244\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">132\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,376\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-578","factDimensions":{"xbrl:concept":"us-gaap:RestructuringReserve","xbrl:period":"2020-03-29T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:RestructuringCostAndReserveAxis":"us-gaap:FacilityClosingMember"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-579","factDimensions":{"xbrl:concept":"us-gaap:RestructuringReserve","xbrl:period":"2020-03-29T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:RestructuringCostAndReserveAxis":"us-gaap:EmployeeSeveranceMember"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-580","factDimensions":{"xbrl:concept":"us-gaap:RestructuringReserve","xbrl:period":"2020-03-29T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-581","factDimensions":{"xbrl:concept":"us-gaap:RestructuringCharges","xbrl:period":"2020-03-29T00:00:00/2020-09-27T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:RestructuringCostAndReserveAxis":"us-gaap:FacilityClosingMember"},"factValues":[{"value":"5112000","decimals":-3}]},{"name":"rpt:f-582","factDimensions":{"xbrl:concept":"us-gaap:RestructuringCharges","xbrl:period":"2020-03-29T00:00:00/2020-09-27T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:RestructuringCostAndReserveAxis":"us-gaap:EmployeeSeveranceMember"},"factValues":[{"value":"1174000","decimals":-3}]},{"name":"rpt:f-583","factDimensions":{"xbrl:concept":"us-gaap:RestructuringCharges","xbrl:period":"2020-03-29T00:00:00/2020-09-27T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"6286000","decimals":-3}]},{"name":"rpt:f-584","factDimensions":{"xbrl:concept":"us-gaap:RestructuringReserveSettledWithoutCash2","xbrl:period":"2020-03-29T00:00:00/2020-09-27T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:RestructuringCostAndReserveAxis":"us-gaap:FacilityClosingMember"},"factValues":[{"value":"3748000","decimals":-3}]},{"name":"rpt:f-585","factDimensions":{"xbrl:concept":"us-gaap:RestructuringReserveSettledWithoutCash2","xbrl:period":"2020-03-29T00:00:00/2020-09-27T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:RestructuringCostAndReserveAxis":"us-gaap:EmployeeSeveranceMember"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-586","factDimensions":{"xbrl:concept":"us-gaap:RestructuringReserveSettledWithoutCash2","xbrl:period":"2020-03-29T00:00:00/2020-09-27T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3748000","decimals":-3}]},{"name":"rpt:f-587","factDimensions":{"xbrl:concept":"us-gaap:PaymentsForRestructuring","xbrl:period":"2020-03-29T00:00:00/2020-09-27T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:RestructuringCostAndReserveAxis":"us-gaap:FacilityClosingMember"},"factValues":[{"value":"120000","decimals":-3}]},{"name":"rpt:f-588","factDimensions":{"xbrl:concept":"us-gaap:PaymentsForRestructuring","xbrl:period":"2020-03-29T00:00:00/2020-09-27T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:RestructuringCostAndReserveAxis":"us-gaap:EmployeeSeveranceMember"},"factValues":[{"value":"1042000","decimals":-3}]},{"name":"rpt:f-589","factDimensions":{"xbrl:concept":"us-gaap:PaymentsForRestructuring","xbrl:period":"2020-03-29T00:00:00/2020-09-27T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1162000","decimals":-3}]},{"name":"rpt:f-590","factDimensions":{"xbrl:concept":"us-gaap:RestructuringReserve","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:RestructuringCostAndReserveAxis":"us-gaap:FacilityClosingMember"},"factValues":[{"value":"1244000","decimals":-3}]},{"name":"rpt:f-591","factDimensions":{"xbrl:concept":"us-gaap:RestructuringReserve","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:RestructuringCostAndReserveAxis":"us-gaap:EmployeeSeveranceMember"},"factValues":[{"value":"132000","decimals":-3}]},{"name":"rpt:f-592","factDimensions":{"xbrl:concept":"us-gaap:RestructuringReserve","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1376000","decimals":-3}]},{"name":"rpt:f-593","factDimensions":{"xbrl:concept":"us-gaap:RestructuringCharges","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"5700000","decimals":-5}]},{"name":"rpt:f-594","factDimensions":{"xbrl:concept":"us-gaap:DebtDisclosureTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"Credit Agreements<div style=\"margin-top:12pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Line of Credit</span></div><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">In January 2020, the Company terminated its loan and security agreement with Silicon Valley Bank and entered into a new loan and security agreement with Bank of America, N.A. (\u201cBofA Loan Agreement\u201d). The BofA Loan Agreement provides for a revolving facility up to a principal amount of $35.0\u00a0million, including a $10.0\u00a0million sublimit for letters of credit. The BofA Loan Agreement matures, and all outstanding amounts become due and payable, in January 2023. The BofA Loan Agreement is secured by substantially all of the Company\u2019s assets, including the Company\u2019s intellectual property. Loans under the credit facility bear interest at a rate per annum equal to either LIBOR (customarily defined) plus an applicable margin between 1.5% to 2.0% or Prime Rate (customarily defined) plus an applicable margin between 0.5% to 1.0%, in each case largely based on a fixed charge coverage ratio measured at the end of each fiscal quarter. The interest rate on the line of credit was 3.75% as of December\u00a031, 2020.</span></div><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The availability of borrowings under the BofA Loan Agreement is subject to certain conditions and requirements, including among others, if at any time the Company\u2019s availability is less than $5.0\u00a0million, the Company must maintain a minimum fixed charge coverage ratio of 1.0 to 1.0. As of December\u00a031, 2020, the Company was in compliance with these requirements, had no outstanding borrowings and had full availability to $35.0\u00a0million.</span></div><div style=\"margin-top:12pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Financing Arrangements</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">During 2018, the Company entered into financing arrangements to purchase lab and test equipment for approximately $5.1 million, which were non-cash investing activities. In the fourth quarter of 2020, the Company paid $1.4\u00a0million to settle the remainder of the balance. The weighted average interest rate was 6.2%.</span></div>During 2018 and 2019, the Company entered into financing arrangements for consulting services of $3.8 million in connection with the Company\u2019s ERP implementation. These were non-cash investing activities of $2.0 million and $1.8 million for years ended December 31, 2019 and 2018, respectively. In the fourth quarter of 2020, the Company paid $1.4\u00a0million to settle the remainder of the balance. The weighted average interest rate was 6.3%.","language":"en-us"}]},{"name":"rpt:f-595","factDimensions":{"xbrl:concept":"us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity","xbrl:period":"2020-02-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:LineOfCreditFacilityAxis":"calx:BankOfAmericaMember","us-gaap:CreditFacilityAxis":"us-gaap:RevolvingCreditFacilityMember"},"factValues":[{"value":"35000000.0"}]},{"name":"rpt:f-596","factDimensions":{"xbrl:concept":"us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity","xbrl:period":"2020-02-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:CreditFacilityAxis":"us-gaap:LetterOfCreditMember","us-gaap:LineOfCreditFacilityAxis":"calx:BankOfAmericaMember"},"factValues":[{"value":"10000000.0"}]},{"name":"rpt:f-597","factDimensions":{"xbrl:concept":"us-gaap:DebtInstrumentBasisSpreadOnVariableRate1","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:LineOfCreditFacilityAxis":"calx:BankOfAmericaMember","us-gaap:CreditFacilityAxis":"us-gaap:RevolvingCreditFacilityMember","srt:RangeAxis":"srt:MinimumMember","us-gaap:VariableRateAxis":"us-gaap:LondonInterbankOfferedRateLIBORMember"},"factValues":[{"value":"0.015"}]},{"name":"rpt:f-598","factDimensions":{"xbrl:concept":"us-gaap:DebtInstrumentBasisSpreadOnVariableRate1","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:LineOfCreditFacilityAxis":"calx:BankOfAmericaMember","us-gaap:CreditFacilityAxis":"us-gaap:RevolvingCreditFacilityMember","us-gaap:VariableRateAxis":"us-gaap:LondonInterbankOfferedRateLIBORMember","srt:RangeAxis":"srt:MaximumMember"},"factValues":[{"value":"0.020"}]},{"name":"rpt:f-599","factDimensions":{"xbrl:concept":"us-gaap:DebtInstrumentBasisSpreadOnVariableRate1","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:VariableRateAxis":"us-gaap:PrimeRateMember","us-gaap:LineOfCreditFacilityAxis":"calx:BankOfAmericaMember","us-gaap:CreditFacilityAxis":"us-gaap:RevolvingCreditFacilityMember","srt:RangeAxis":"srt:MinimumMember"},"factValues":[{"value":"0.005"}]},{"name":"rpt:f-600","factDimensions":{"xbrl:concept":"us-gaap:DebtInstrumentBasisSpreadOnVariableRate1","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:VariableRateAxis":"us-gaap:PrimeRateMember","us-gaap:LineOfCreditFacilityAxis":"calx:BankOfAmericaMember","us-gaap:CreditFacilityAxis":"us-gaap:RevolvingCreditFacilityMember","srt:RangeAxis":"srt:MaximumMember"},"factValues":[{"value":"0.010"}]},{"name":"rpt:f-601","factDimensions":{"xbrl:concept":"us-gaap:DebtInstrumentInterestRateEffectivePercentage","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:LineOfCreditFacilityAxis":"calx:BankOfAmericaMember","us-gaap:CreditFacilityAxis":"us-gaap:RevolvingCreditFacilityMember"},"factValues":[{"value":"0.0375","decimals":4}]},{"name":"rpt:f-602","factDimensions":{"xbrl:concept":"calx:DebtInstrumentCovenantComplianceMinimumAvailability","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:LineOfCreditFacilityAxis":"calx:BankOfAmericaMember","us-gaap:CreditFacilityAxis":"us-gaap:RevolvingCreditFacilityMember"},"factValues":[{"value":"5000000.0"}]},{"name":"rpt:f-603","factDimensions":{"xbrl:concept":"calx:LineOfCreditFacilityCovenantComplianceMinimumFixedChargeCoverageRatio","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:LineOfCreditFacilityAxis":"calx:BankOfAmericaMember","us-gaap:CreditFacilityAxis":"us-gaap:RevolvingCreditFacilityMember"},"factValues":[{"value":"1.0"}]},{"name":"rpt:f-604","factDimensions":{"xbrl:concept":"us-gaap:LineOfCreditFacilityRemainingBorrowingCapacity","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:LineOfCreditFacilityAxis":"calx:BankOfAmericaMember","us-gaap:CreditFacilityAxis":"us-gaap:RevolvingCreditFacilityMember"},"factValues":[{"value":"35000000.0"}]},{"name":"rpt:f-605","factDimensions":{"xbrl:concept":"us-gaap:PurchaseObligation","xbrl:period":"2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"calx:ResearchAndDevelopmentEquipmentMember"},"factValues":[{"value":"5100000","decimals":-5}]},{"name":"rpt:f-606","factDimensions":{"xbrl:concept":"calx:PaymentsToSettlePurchaseObligations","xbrl:period":"2020-09-27T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"calx:ResearchAndDevelopmentEquipmentMember"},"factValues":[{"value":"1400000","decimals":-5}]},{"name":"rpt:f-607","factDimensions":{"xbrl:concept":"us-gaap:DebtWeightedAverageInterestRate","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"calx:ResearchAndDevelopmentEquipmentMember"},"factValues":[{"value":"0.062","decimals":3}]},{"name":"rpt:f-608","factDimensions":{"xbrl:concept":"us-gaap:PurchaseObligation","xbrl:period":"2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:ProductOrServiceAxis":"calx:ConsultingServicesMember"},"factValues":[{"value":"3800000","decimals":-5}]},{"name":"rpt:f-609","factDimensions":{"xbrl:concept":"us-gaap:PurchaseObligation","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:ProductOrServiceAxis":"calx:ConsultingServicesMember"},"factValues":[{"value":"3800000","decimals":-5}]},{"name":"rpt:f-610","factDimensions":{"xbrl:concept":"calx:FinancingArrangementsNonCashInvestingActivities","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:ProductOrServiceAxis":"calx:ConsultingServicesMember"},"factValues":[{"value":"2000000.0","decimals":-5}]},{"name":"rpt:f-611","factDimensions":{"xbrl:concept":"calx:FinancingArrangementsNonCashInvestingActivities","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:ProductOrServiceAxis":"calx:ConsultingServicesMember"},"factValues":[{"value":"1800000","decimals":-5}]},{"name":"rpt:f-612","factDimensions":{"xbrl:concept":"calx:PaymentsToSettlePurchaseObligations","xbrl:period":"2020-09-27T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:ProductOrServiceAxis":"calx:ConsultingServicesMember"},"factValues":[{"value":"1400000","decimals":-5}]},{"name":"rpt:f-613","factDimensions":{"xbrl:concept":"us-gaap:DebtWeightedAverageInterestRate","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","srt:ProductOrServiceAxis":"calx:ConsultingServicesMember"},"factValues":[{"value":"0.063","decimals":3}]},{"name":"rpt:f-614","factDimensions":{"xbrl:concept":"us-gaap:CommitmentsAndContingenciesDisclosureTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"Commitments and Contingencies<div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Lease Commitments</span></div><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company leases office space under non-cancelable operating leases. Certain of the Company\u2019s operating leases contain renewal options and rent acceleration clauses. Future minimum payments under the non-cancelable operating leases consisted of the following as of December\u00a031, 2020 (in\u00a0thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:10pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:95.467%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:75.010%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:7.016%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:14.674%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Year Ending December 31,</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">\u00a0Future Minimum Lease Payments</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2021</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">3,935\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2022</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">3,812\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2023</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">3,917\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2024</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">3,727\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2025</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">3,220\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Thereafter</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">42\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Total future minimum lease payments</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">18,653\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Less imputed interest</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(2,713)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt 0 12.25pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">15,940\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">As of December\u00a031, 2020, the operating lease liability consisted of the following (in thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:11pt\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:96.052%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:78.656%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:3.314%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:14.730%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Accrued liabilities - current portion of operating leases</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2,994\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Operating leases</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"2\" style=\"padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">12,946\u00a0</span></td><td style=\"padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">15,940\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div><div style=\"margin-bottom:5pt;margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company leases its headquarters office space in San Jose, California under a lease agreement that expires in December 2025. The future minimum lease payments under the lease are $11.9 million and are included in the table for the year ended December\u00a031, 2020 above.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">In October 2020, the Company entered into a lease extension for its facility in Nanjing, China. The lease extension will commence in February 2021 for a term of 60 months. The future minimum lease payments of $1.7 million are included in the table for the year ended December\u00a031, 2020 above. The Company recorded a right-of-use operating lease asset and operating lease liability of $1.5 million in the fourth quarter of 2020. The Company\u2019s previous lease in Nanjing, China expires in February 2021.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The above tables also include future minimum lease payments for the Company's office facilities in Petaluma, California; Plymouth, Minnesota; Richardson, Texas; and West Jordan, Utah, which expire at various dates through 2025.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The weighted average discount rate for the Company's operating leases as of December\u00a031, 2020 was 6.7%. The weighted average remaining lease term as of December\u00a031, 2020 was 4.2 years.</span></div><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">For the years ended December\u00a031, 2020, 2019 and 2018, total rent expense of the Company was $4.0 million, $4.7 million and $3.4 million, respectively. Cash paid within operating cash flows for operating leases was $3.8 million for year ended December\u00a031, 2020.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Purchase Commitments</span></div><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company\u2019s CMs and ODMs place orders for certain component inventory in advance based upon the Company\u2019s build forecasts in order to reduce manufacturing lead times and ensure adequate component supply. The components are used by the CMs and ODMs to build the products included in the build forecasts. The Company generally does not take ownership of the components held by CMs and ODMs. The Company places purchase orders with its CMs and ODMs in order to fulfill its monthly finished product inventory requirements. The Company incurs a liability when the CMs and ODMs convert the component inventory to a finished product and takes ownership of the finished goods inventory. In the event of termination of services with a manufacturing partner, the Company has purchased, and may be required to purchase in the future, certain of the remaining components inventory held by the CM or ODM as well as any outstanding orders pursuant to the contractual provisions with such CM or ODM. As of December\u00a031, 2020, the Company had approximately $123.7 million of outstanding purchase commitments for inventories to be delivered by its suppliers, including CMs and ODMs, within one year.</span></div><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company has from time to time, and subject to certain conditions, reimbursed certain suppliers for component inventory purchases when this inventory has been rendered excess or obsolete, for example due to manufacturing and engineering change orders resulting from design changes, manufacturing discontinuation of products by its suppliers, or in cases where the Company has committed inventory levels that greatly exceed projected demand. The estimated excess and obsolete inventory liabilities related to such manufacturing and engineering change orders and other factors, which are included in accrued liabilities in the accompanying Consolidated Balance Sheets, were $4.0 million and $1.9\u00a0million as of December\u00a031, 2020 and 2019, respectively. The Company records the related charges in cost of systems revenue in its Consolidated Statements of Comprehensive Income (Loss).</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Litigation</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">From time to time, the Company is involved in various legal proceedings arising from the normal course of business activities. The Company is not currently a party to any legal proceedings that, if determined adversely to the Company, in management\u2019s opinion, are currently expected to individually or in the aggregate have a material adverse effect on the Company\u2019s business, operating results or financial condition taken as a whole.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Indemnifications</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company from time to time enters into contracts that require it to indemnify various parties against claims from third parties. These contracts primarily relate to (i)\u00a0certain real estate leases, under which the Company may be required to indemnify property owners for environmental and other liabilities, and other claims arising from the Company\u2019s use of the applicable premises, (ii)\u00a0agreements with the Company\u2019s officers, directors and certain employees, under which the Company may be required to indemnify such persons for liabilities arising out of their relationship with the Company, (iii)\u00a0contracts under which the Company may be required to indemnify customers against third-party claims that a Company product infringes a patent, copyright or other intellectual property right and (iv)\u00a0agreements under which the Company may be required to indemnify the counterparty for certain claims that may be brought against them arising from the Company\u2019s acts or omissions with respect to the transactions contemplated by such agreements.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Because any potential obligation associated with these types of contractual provisions are not quantified or stated, the overall maximum amount of the obligation cannot be reasonably estimated. Historically, the Company has not been required to make payments under these obligations, and no liabilities have been recorded for these obligations in the accompanying Consolidated Balance Sheets.</span></div>","language":"en-us"}]},{"name":"rpt:f-615","factDimensions":{"xbrl:concept":"us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"Future minimum payments under the non-cancelable operating leases consisted of the following as of December\u00a031, 2020 (in\u00a0thousands):<table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:95.467%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:75.010%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:7.016%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:14.674%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Year Ending December 31,</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">\u00a0Future Minimum Lease Payments</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2021</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">3,935\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2022</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">3,812\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2023</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">3,917\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2024</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">3,727\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2025</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">3,220\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Thereafter</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">42\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Total future minimum lease payments</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">18,653\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Less imputed interest</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(2,713)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt 0 12.25pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">15,940\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table>","language":"en-us"}]},{"name":"rpt:f-616","factDimensions":{"xbrl:concept":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3935000","decimals":-3}]},{"name":"rpt:f-617","factDimensions":{"xbrl:concept":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3812000","decimals":-3}]},{"name":"rpt:f-618","factDimensions":{"xbrl:concept":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3917000","decimals":-3}]},{"name":"rpt:f-619","factDimensions":{"xbrl:concept":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3727000","decimals":-3}]},{"name":"rpt:f-620","factDimensions":{"xbrl:concept":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3220000","decimals":-3}]},{"name":"rpt:f-621","factDimensions":{"xbrl:concept":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"42000","decimals":-3}]},{"name":"rpt:f-622","factDimensions":{"xbrl:concept":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"18653000","decimals":-3}]},{"name":"rpt:f-623","factDimensions":{"xbrl:concept":"us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2713000","decimals":-3}]},{"name":"rpt:f-624","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseLiability","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"15940000","decimals":-3}]},{"name":"rpt:f-625","factDimensions":{"xbrl:concept":"us-gaap:LesseeOperatingLeasesTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"perating lease liability consisted of the following (in thousands):<table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:96.052%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:78.656%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:3.314%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:14.730%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Accrued liabilities - current portion of operating leases</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2,994\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Operating leases</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"2\" style=\"padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">12,946\u00a0</span></td><td style=\"padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">15,940\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table>","language":"en-us"}]},{"name":"rpt:f-626","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseLiabilityCurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2994000","decimals":-3}]},{"name":"rpt:f-627","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseLiabilityNoncurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"12946000","decimals":-3}]},{"name":"rpt:f-628","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseLiability","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"15940000","decimals":-3}]},{"name":"rpt:f-629","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"}},{"name":"rpt:f-630","factDimensions":{"xbrl:concept":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"calx:SanJoseCaliforniaMember"},"factValues":[{"value":"11900000","decimals":-5}]},{"name":"rpt:f-631","factDimensions":{"xbrl:concept":"us-gaap:LesseeOperatingLeaseTermOfContract","xbrl:period":"2018-09-01T00:00:00","xbrl:entity":"cik:0001406666","srt:StatementGeographicalAxis":"calx:PetalumaCAMember"},"factValues":[{"value":"P60M"}]},{"name":"rpt:f-632","factDimensions":{"xbrl:concept":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue","xbrl:period":"2018-09-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"calx:PetalumaCAMember"},"factValues":[{"value":"1700000","decimals":-5}]},{"name":"rpt:f-633","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseRightOfUseAsset","xbrl:period":"2020-03-29T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"calx:PetalumaCAMember"},"factValues":[{"value":"1500000","decimals":-5}]},{"name":"rpt:f-634","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.067","decimals":3}]},{"name":"rpt:f-635","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"P4Y2M12D"}]},{"name":"rpt:f-636","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseCost","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4000000.0","decimals":-5}]},{"name":"rpt:f-637","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseCost","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4700000","decimals":-5}]},{"name":"rpt:f-638","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseCost","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3400000","decimals":-5}]},{"name":"rpt:f-639","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeasePayments","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3800000","decimals":-5}]},{"name":"rpt:f-640","factDimensions":{"xbrl:concept":"us-gaap:PurchaseCommitmentRemainingMinimumAmountCommitted","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"123700000","decimals":-5}]},{"name":"rpt:f-641","factDimensions":{"xbrl:concept":"calx:AccruedExcessAndObsoleteInventoryAtContractManufacturer","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4000000.0","decimals":-5}]},{"name":"rpt:f-642","factDimensions":{"xbrl:concept":"calx:AccruedExcessAndObsoleteInventoryAtContractManufacturer","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1900000","decimals":-5}]},{"name":"rpt:f-643","factDimensions":{"xbrl:concept":"us-gaap:ShareholdersEquityAndShareBasedPaymentsTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"Stockholders\u2019 Equity <div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Stock Offering</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">In August 2020, the Company completed an underwritten public offering of 3,220,000 shares of its common stock at $20.00 per share, including a full exercise by the underwriters of their option to purchase an additional 420,000 shares of Common Stock, resulting in net proceeds of $60.1\u00a0million, after deducting the underwriting discount and expenses paid by the Company.</span></div><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Treasury Stock Retirement</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">In August 2020, the Company\u2019s Board of Directors authorized the retirement of the 5,329,817 shares of common stock held as treasury stock. Under Delaware law these shares return to the authorized but unissued common stock pool. As a result, the Company eliminated the $40.0\u00a0million treasury stock balance, offsetting this against common stock by $0.1\u00a0million and additional paid-in capital by $39.9\u00a0million.</span></div><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Preferred Stock</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Board of Directors has the authority, without action by stockholders with the exception of stockholders who hold board positions, to designate and issue up to 5.0 million shares of preferred stock in one or more series and to fix the rights, preferences, privileges and restrictions thereof. These rights, preferences and privileges could include dividend rights, conversion rights, voting rights, terms of redemption, liquidation preferences, sinking fund terms and the number of shares constituting any series or the designation of such series, any or all of which may be greater than the rights of common stock. The issuance of the Company\u2019s preferred stock could adversely affect the voting power of holders of common stock and the likelihood that such holders will receive dividend payments and payments upon liquidation. In addition, the issuance of preferred stock could have the effect of delaying, deferring or preventing a change in control of the Company or other corporate action. Since the Company\u2019s initial public offering, the Board of Directors has not designated any rights, preference or powers of any preferred stock and no shares of preferred stock have been issued.</span></div><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Common Stock</span></div><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Holders of the Company\u2019s common stock are entitled to receive dividends, if any, as may be declared from time to time by the Board of Directors out of legally available funds. No dividends have been declared or paid as of December\u00a031, 2020. In the </span></div><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">event of the Company\u2019s liquidation, dissolution or winding up, holders of the Company\u2019s common stock will be entitled to share ratably in the net assets legally available for distribution to stockholders after the payment of all of the Company\u2019s debts and other liabilities and the satisfaction of any liquidation preference granted to the holders of any then outstanding shares of preferred stock.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Equity Incentive Plans</span></div><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">2019 Equity Incentive Award Plan </span></div><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">At the Company\u2019s 2019 annual meeting of stockholders, the stockholders approved the 2019 Equity Incentive Award Plan (the \u201c2019 Plan\u201d). The 2019 Plan supersedes and replaces the 2010 Equity Incentive Award Plan (the \u201c2010 Plan\u201d) and preceding plans. No further awards will be granted under the 2010 Plan following the effectiveness of the 2019 Plan; however, the terms and conditions of the 2010 Plan will continue to govern any outstanding awards granted under the 2010 Plan.</span></div><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Employees and consultants of the Company, its subsidiaries and affiliates, as well as members of the Company's Board of Directors, are eligible to receive awards under the 2019 Plan. The 2019 Plan provides for the grant of stock options, stock appreciation rights, restricted stock, RSUs or other stock or cash-based awards and dividend equivalents to eligible individuals.</span></div><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The number of shares available for issuance under the 2019 Plan includes an initial reserve of 1.7 million shares of common stock, any shares of common stock that are available for issuance under the 2010 Plan as of the effective date of the 2019 Plan and any shares of common stock subject to issued and outstanding awards under the 2010 Plan that expire, are cancelled or otherwise terminate following the effective date of the 2019 Plan. At the Company\u2019s 2020 annual meeting of stockholders, the stockholders approved an increase in the number of shares of common stock issuable under the 2019 Plan by 3.5\u00a0million shares. As of December\u00a031, 2020, there were 4.3 million shares available for issuance under the 2019 Plan. </span></div><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Stock options granted under the 2019 Plan are granted at a price not less than 100% of the fair market value of the common stock on the date of grant. Stock options issued under the 2019 Plan generally vest 25%\u00a0on the first anniversary of the vesting commencement date and on a quarterly basis thereafter for a period of an additional three years. The options have a maximum term of ten years.</span></div><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Each RSU granted under the 2019 Plan represents a right to receive one share of the Company\u2019s common stock (subject to adjustment for certain specified changes in the capital structure of the Company) upon the completion of a specific period of continued service. </span></div><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">In February 2019, PSOs exercisable for up to an aggregate of 2.0\u00a0million shares of common stock were granted to Company executives with a grant date fair value of $8.03 per share. These PSOs contain a one-year performance period and a subsequent three-year service period. The actual number of shares earned was contingent upon the achievement of both annual and quarterly corporate financial targets for revenue, non-GAAP gross margin and non-GAAP net income per share for 2019 (collectively, the \u201c2019 Performance Targets\u201d) during the one-year performance period. In August 2019, the Compensation Committee of the Company\u2019s Board of Directors amended the 2019 Performance Targets to provide for the award of up to 40% of the total number of shares subject to a stock option award in the event the annual corporate financial targets are not met but the quarterly corporate financial targets are met. In February 2020, the Compensation Committee of the Company\u2019s Board of Directors certified that 30% of the PSOs were earned, of which 25% of the shares of common stock vested on that date and the remaining 75% of the shares of common stock earned will vest in substantially equal quarterly installments over the subsequent 3 years, subject to the executive\u2019s continuous service with the Company through the respective vesting dates.</span></div><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">In February 2020, PSOs exercisable for up to an aggregate of 0.8\u00a0million shares of common stock were granted to certain Company executives with a grant date fair value of $9.16 per share. The actual number of shares earned is contingent upon achievement of annual corporate financial targets for bookings and non-GAAP net income for 2020 (collectively, the \u201c2020 Performance Targets\u201d) during the one-year performance period. Under the 2020 Performance Targets, if non-GAAP net income is below 80% of target and bookings are below 90% of target, no shares are awarded. From this base, shares are awarded on a 50% weighting for both non-GAAP net income and bookings up to 100% for each 2020 Performance Target using a sliding scale. In February 2021, the Compensation Committee of the Company\u2019s Board of Directors certified the full achievement of the 2020 Performance Targets subject to the four year services condition. As such, 25% of the shares of the PSOs were vested on that date, and the remaining 75% of the shares of common stock will vest substantially equal quarterly installments over the subsequent 36 months, subject to the executive\u2019s continuous service with the Company through the respective vesting dates. Stock-based compensation expense of $1.6\u00a0million was recognized for the year ended December 31, 2020 related to these awards.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Stock Options </span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The following table summarizes the activity of stock options under the Company\u2019s equity incentive plans (in thousands, except per share data):</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:90.058%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:42.406%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.585%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.237%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.585%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.237%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.585%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.237%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.585%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.243%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Weighted-</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Average</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Weighted-</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Remaining</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Average</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Contractual</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Aggregate</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Number of</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Exercise Price</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Life</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Intrinsic</span></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%;text-decoration:underline\">Stock Options</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Shares</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Per Share</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">(in years)</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><div style=\"text-align:center\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">\u00a0\u00a0\u00a0Value </span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.2pt;font-weight:700;line-height:100%;position:relative;top:-2.8pt;vertical-align:baseline\">(1)</span></div></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Outstanding as of December 31, 2019</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">6,877\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">7.66\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Granted</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2,379\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">14.25\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Exercised</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(1,088)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">8.25\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Canceled</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(1,367)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">8.19\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Outstanding as of December 31, 2020</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">6,801\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">9.76\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">7.50</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">136,032\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Vested and expected to vest as of\u00a0December 31, 2020</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">6,629\u00a0</span></td><td style=\"background-color:#ffffff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">9.63\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">7.45</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">133,412\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Options exercisable as of December 31, 2020</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">3,171\u00a0</span></td><td style=\"background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">7.30\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">5.82</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">71,208\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%;text-decoration:underline\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td></tr><tr><td colspan=\"27\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><div style=\"padding-left:13.5pt;text-indent:-13.5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(1) Amounts represent the difference between the exercise price and the fair market value of common stock at December 31, 2020 of $29.76 per share for all in the money options outstanding.</span></div></td></tr></table></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">During the years ended December\u00a031, 2020, 2019 and 2018, total intrinsic value of stock options exercised was $6.7 million, $0.2\u00a0million and $0.1\u00a0million, respectively. Total cash received from employees as a result of stock option exercises in 2020, 2019 and 2018 was $9.0\u00a0million, $0.4\u00a0million and $0.4\u00a0million, respectively. Total fair values of stock options vested during 2020, 2019 and 2018 were $4.4 million, $7.6 million and $2.7 million, respectively.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Restricted Stock Units</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The following table summarizes the activities of the Company\u2019s RSUs under the Company\u2019s equity incentive plans (in thousands, except per share data):</span></div><div style=\"margin-bottom:5pt;margin-top:10pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:94.005%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:61.574%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.510%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:15.851%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.510%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:15.855%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"9\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">RSUs</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Weighted-</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Average</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Grant Date</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Number of</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Fair Value</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Shares</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Per Share</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Outstanding as of December 31, 2019</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">334\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">6.71\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Granted</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">112\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">11.22\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Vested</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(314)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">6.70\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Canceled</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(5)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">6.78\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Outstanding as of December 31, 2020</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">127\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">10.71\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Employee Stock Purchase Plans</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company maintains two employee stock purchase plans - the Amended and Restated Employee Stock Purchase Plan (the \u201cESPP\u201d) and the Amended and Restated 2017 Nonqualified Employee Stock Purchase Plan (the \u201cNQ ESPP\u201d).</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The ESPP allows eligible employees to purchase shares of the Company\u2019s common stock through payroll deductions of up to 15% of their annual compensation subject to certain Internal Revenue Code limitations. In addition, no participant may purchase more than 2,000 shares of common stock in each offering period.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">During 2020, the Company revised the ESPP\u2019s two six-month offering periods to August 15</span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline\">th</span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\"> through February 14</span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline\">th</span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\"> and February 15</span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline\">th</span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\"> through August 14</span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline\">th</span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\"> of each year, with a transition period that began on May 15</span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline\">th</span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\"> and ended on August 14, 2020. The price of common stock purchased under the ESPP is 85% of the lower of the fair market value of the common stock on the commencement date and the end date of each six-month offering period. In May 2019, the stockholders approved an increase in the number of shares of common stock issuable under the ESPP by 2.5\u00a0million shares. The total shares authorized for issuance under the ESPP increased from 7.3\u00a0million shares to 9.8\u00a0million shares. As of December\u00a031, 2020, there were 2.6\u00a0million shares available for issuance under the ESPP. During the year ended December\u00a031, 2020, 0.6\u00a0million shares were purchased under the </span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">ESPP, respectively. As of December\u00a031, 2020, unrecognized stock-based compensation expense of $0.4\u00a0million related to the ESPP is expected to be recognized over a remaining service period of 0.1 years.</span></div><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The NQ ESPP allows eligible employees to purchase shares of the Company\u2019s common stock through payroll deductions of up to 25% of their annual compensation. Eligible employees have the right to (a) purchase the maximum number of whole shares of common stock that can be purchased with the elected payroll deductions during each offering period for which the employee is enrolled at a purchase price equal to the closing price of the Company\u2019s common stock on the last day of such offering period and (b) receive an equal number of shares of the Company\u2019s common stock that are subject to a risk of forfeiture in the event the employee terminates employment within the one year period immediately following the purchase date. Beginning in the fourth quarter of 2020, the NQ ESPP\u2019s two six-month offering periods changed to November 15</span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline\">th</span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\"> through May 14</span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline\">th</span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\"> and May 15</span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline\">th</span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\"> through November 14</span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline\">th</span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\"> of each year, with a transition period that began on June 21, 2020 and ended on November 14, 2020. In May 2020, the stockholders approved an amendment of certain terms and an increase in the number of shares of common stock issuable under the NQ ESPP by 1.2\u00a0million shares. The maximum number of shares of common stock currently authorized for issuance under the NQ ESPP is 4.7\u00a0million shares, with a maximum of 0.5\u00a0million shares allocated per purchase period. As of December\u00a031, 2020, there were 2.3\u00a0million shares available for issuance under the NQ ESPP, including the stockholder-approved 1.2\u00a0million share increase. During the year ended December\u00a031, 2020, 0.5\u00a0million shares were purchased and issued. As of December\u00a031, 2020, unrecognized stock-based compensation expense of $5.2\u00a0million related to the NQ ESPP is expected to be recognized over a remaining weighted-average service period of 1.1 years.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Stock-Based Compensation</span></div><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">During the years ended December\u00a031, 2020, 2019 and 2018, the Company recorded stock-based compensation expense of $14.0 million, $11.2 million and $17.5 million, respectively.</span></div><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The following table summarizes stock-based compensation expense (in thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:10pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:50.215%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.408%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:13.519%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.408%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:13.519%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.408%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:13.523%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"15\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Years Ended December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2018</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Cost of revenue:</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Products</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">575\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">507\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">885\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Services</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">450\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">389\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">363\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Sales and marketing</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">4,273\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">3,415\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">5,787\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Research and development</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">4,736\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">3,913\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">5,969\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">General and administrative</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">3,926\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2,957\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">4,469\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">13,960\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">11,181\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">17,473\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The following table summarizes the weighted-average grant date fair values of the Company\u2019s stock-based awards granted in the periods indicated:</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:86.111%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:55.096%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.667%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.633%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.667%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.633%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.667%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.637%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"15\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Years Ended December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2018</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Stock options</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">8.55\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">3.66\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">3.41\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">RSUs</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">11.22\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">6.62\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">6.66\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">ESPP</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">5.52\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2.04\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2.21\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Nonqualified ESPP</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">19.40\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">7.24\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">7.34\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company values the RSUs and employee stock purchase rights under the Nonqualified ESPP at the closing market price of the Company\u2019s common stock on the date of grant.</span></div><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company estimates the fair value of stock options and employee stock purchase right under the ESPP at the grant date using the Black-Scholes option-pricing model. This model requires the use of the following assumptions:</span></div><div style=\"margin-top:3pt;padding-left:40.5pt;text-indent:-18pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">(i)</span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:8.57pt\">Expected volatility of the Company\u2019s common stock \u2013 The Company computes its expected volatility assumption based on a blended volatility (50% historical volatility and 50% implied volatility from traded options on the Company\u2019s common stock). The selection of a blended volatility assumption was based upon the Company\u2019s assessment that a blended volatility is more representative of the Company\u2019s future stock price trend as it weighs the historical volatility with the future implied volatility.</span></div><div style=\"margin-top:3pt;padding-left:40.5pt;text-indent:-18pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">(ii)</span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:5.8pt\">Expected life of the option award \u2013 Represents the weighted-average period that the stock options are expected to remain outstanding. The Company\u2019s computation of expected life utilizes the simplified method in accordance with Staff Accounting Bulletin No.\u00a0110 due to the lack of sufficient historical exercise data to provide a reasonable basis upon which to estimate expected term.\u00a0The mid-point between the vesting date and the expiration date is used as the expected term under this method.</span></div><div style=\"margin-top:3pt;padding-left:40.5pt;text-indent:-18pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">(iii)</span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:3.03pt\">Expected dividend yield \u2013 Assumption is based on the Company\u2019s history of not paying dividends and no future expectations of dividend payouts.</span></div><div style=\"margin-top:3pt;padding-left:40.5pt;text-indent:-18pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">(iv)</span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:3.57pt\">Risk-free interest rate \u2013 Based on the U.S. Treasury yield curve in effect at the time of grant with maturities approximating the grant\u2019s expected life.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The following table summarizes the weighted-average assumptions used in estimating the grant-date fair value of stock options and of each employee\u2019s purchase right under the ESPP in the periods indicated:</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.742%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:56.395%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.255%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.255%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.259%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"15\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Years Ended December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%;text-decoration:underline\">Stock Options</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2018</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Expected volatility</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">53\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">47\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">50\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Expected life (years)</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">6.11</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">6.11</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">6.11</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Expected dividend yield</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Risk-free interest rate</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">0.48\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1.67\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2.83\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td></tr></table></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.742%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:56.395%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.255%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.255%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.259%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"15\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Years Ended December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%;text-decoration:underline\">ESPP</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2018</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Expected volatility</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">70\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">48\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">42\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Expected life (years)</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">0.39</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">0.49</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">0.50</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Expected dividend yield</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Risk-free interest rate</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">0.12\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2.03\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2.21\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td></tr></table></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">In addition, the Company applies an estimated forfeiture rate to awards granted and records stock-based compensation expense only for those awards that are expected to vest. Forfeiture rates are estimated at the time of grant based on the Company\u2019s historical experience. Further, to the extent the Company\u2019s actual forfeiture rate is different from management\u2019s estimate, stock-based compensation is adjusted accordingly.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">As of December\u00a031, 2020, unrecognized stock-based compensation expense by award type, net of estimated forfeitures, and their expected weighted-average recognition periods are summarized in the following table (in thousands).</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:76.023%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:48.707%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.915%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:13.515%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.915%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:13.515%\"></td><td style=\"width:0.1%\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.915%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:13.518%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Stock Option</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">RSU</span></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">ESPPs</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Unrecognized stock-based compensation expense</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">15,604\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">518\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">5,530\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Weighted-average amortization period (in years)</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">3.0</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">0.4</span></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1.0</span></td></tr></table></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company expects to recognize stock-based compensation expense of $10.6 million in 2021, $5.1 million in 2022, $4.0 million in 2023 and $2.0 million in 2024. </span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Shares Reserved for Future Issuance </span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">As of December\u00a031, 2020, the Company had common shares reserved for future issuance as follows (in thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:77.631%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:82.704%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.871%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:13.025%\"></td><td style=\"width:0.1%\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Stock options outstanding</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">6,801\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Restricted stock units outstanding</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">127\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Shares available for future grant under 2019 Plan</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">4,344\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Shares available for future issuance under ESPP</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2,596\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Shares available for future issuance under Nonqualified ESPP</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2,274\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt 0 12.25pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">16,142\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-644","factDimensions":{"xbrl:concept":"us-gaap:SaleOfStockNumberOfSharesIssuedInTransaction","xbrl:period":"2020-08-01T00:00:00/2020-09-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:SubsidiarySaleOfStockAxis":"calx:PublicStockOfferingMember"},"factValues":[{"value":"3220000"}]},{"name":"rpt:f-645","factDimensions":{"xbrl:concept":"us-gaap:CommonStockParOrStatedValuePerShare","xbrl:period":"2020-09-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares","us-gaap:SubsidiarySaleOfStockAxis":"calx:PublicStockOfferingMember"},"factValues":[{"value":"20.00","decimals":2}]},{"name":"rpt:f-646","factDimensions":{"xbrl:concept":"us-gaap:SaleOfStockNumberOfSharesIssuedInTransaction","xbrl:period":"2020-08-01T00:00:00/2020-09-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:SubsidiarySaleOfStockAxis":"us-gaap:OverAllotmentOptionMember"},"factValues":[{"value":"420000"}]},{"name":"rpt:f-647","factDimensions":{"xbrl:concept":"us-gaap:SaleOfStockConsiderationReceivedOnTransaction","xbrl:period":"2020-08-01T00:00:00/2020-09-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:SubsidiarySaleOfStockAxis":"calx:PublicStockOfferingMember"},"factValues":[{"value":"60100000","decimals":-5}]},{"name":"rpt:f-648","factDimensions":{"xbrl:concept":"us-gaap:TreasuryStockSharesRetired","xbrl:period":"2020-08-01T00:00:00/2020-09-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"5329817"}]},{"name":"rpt:f-649","factDimensions":{"xbrl:concept":"us-gaap:TreasuryStockRetiredCostMethodAmount","xbrl:period":"2020-08-01T00:00:00/2020-09-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"40000000.0","decimals":-5}]},{"name":"rpt:f-650","factDimensions":{"xbrl:concept":"us-gaap:TreasuryStockRetiredCostMethodAmount","xbrl:period":"2020-08-01T00:00:00/2020-09-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"100000","decimals":-5}]},{"name":"rpt:f-651","factDimensions":{"xbrl:concept":"us-gaap:TreasuryStockRetiredCostMethodAmount","xbrl:period":"2020-08-01T00:00:00/2020-09-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:RetainedEarningsMember"},"factValues":[{"value":"39900000","decimals":-5}]},{"name":"rpt:f-652","factDimensions":{"xbrl:concept":"us-gaap:PreferredStockSharesAuthorized","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"5000000.0"}]},{"name":"rpt:f-653","factDimensions":{"xbrl:concept":"us-gaap:PreferredStockSharesAuthorized","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"5000000.0"}]},{"name":"rpt:f-654","factDimensions":{"xbrl:concept":"us-gaap:PreferredStockSharesOutstanding","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"0"}]},{"name":"rpt:f-655","factDimensions":{"xbrl:concept":"us-gaap:PreferredStockSharesOutstanding","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"0"}]},{"name":"rpt:f-656","factDimensions":{"xbrl:concept":"us-gaap:PreferredStockSharesIssued","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"0"}]},{"name":"rpt:f-657","factDimensions":{"xbrl:concept":"us-gaap:PreferredStockSharesIssued","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"0"}]},{"name":"rpt:f-658","factDimensions":{"xbrl:concept":"us-gaap:CommonStockDividendsPerShareDeclared","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"0"}]},{"name":"rpt:f-659","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant","xbrl:period":"2019-06-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:PlanNameAxis":"calx:A2019EquityIncentiveAwardPlanMember"},"factValues":[{"value":"1700000","decimals":-5}]},{"name":"rpt:f-660","factDimensions":{"xbrl:concept":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrantAdditionalShares","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:PlanNameAxis":"calx:A2019EquityIncentiveAwardPlanMember"},"factValues":[{"value":"3500000","decimals":-5}]},{"name":"rpt:f-661","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:PlanNameAxis":"calx:A2019EquityIncentiveAwardPlanMember"},"factValues":[{"value":"4300000","decimals":-5}]},{"name":"rpt:f-662","factDimensions":{"xbrl:concept":"calx:MinimumExercisePriceOfStockOptionPercent","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:PlanNameAxis":"calx:A2019EquityIncentiveAwardPlanMember"},"factValues":[{"value":"1","decimals":2}]},{"name":"rpt:f-663","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockOptionMember","us-gaap:PlanNameAxis":"calx:A2019EquityIncentiveAwardPlanMember","us-gaap:VestingAxis":"us-gaap:ShareBasedCompensationAwardTrancheOneMember"},"factValues":[{"value":"0.25"}]},{"name":"rpt:f-664","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockOptionMember","us-gaap:VestingAxis":"us-gaap:ShareBasedCompensationAwardTrancheTwoMember","us-gaap:PlanNameAxis":"calx:A2019EquityIncentiveAwardPlanMember"},"factValues":[{"value":"P3Y"}]},{"name":"rpt:f-665","factDimensions":{"xbrl:concept":"calx:ContractualTermStockOptions","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:PlanNameAxis":"calx:A2019EquityIncentiveAwardPlanMember"},"factValues":[{"value":"P10Y"}]},{"name":"rpt:f-666","factDimensions":{"xbrl:concept":"calx:SharebasedCompensationArrangementbySharebasedPaymentAwardEquityInstrumentsOtherthanOptionsConvertedintoCommonStock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:AwardTypeAxis":"us-gaap:RestrictedStockUnitsRSUMember","us-gaap:PlanNameAxis":"calx:A2019EquityIncentiveAwardPlanMember"},"factValues":[{"value":"1"}]},{"name":"rpt:f-667","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod","xbrl:period":"2019-02-01T00:00:00/2019-03-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember"},"factValues":[{"value":"2000000.0"}]},{"name":"rpt:f-668","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue","xbrl:period":"2019-03-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember"},"factValues":[{"value":"8.03","decimals":2}]},{"name":"rpt:f-669","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardRequisiteServicePeriod1","xbrl:period":"2019-02-01T00:00:00/2019-03-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember"},"factValues":[{"value":"P1Y"}]},{"name":"rpt:f-670","factDimensions":{"xbrl:concept":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardRequisiteServicePeriodSubsequentPeriod","xbrl:period":"2019-02-01T00:00:00/2019-03-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember"},"factValues":[{"value":"P3Y"}]},{"name":"rpt:f-671","factDimensions":{"xbrl:concept":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardPercentOfSharesReceivedUponMeetingTargets","xbrl:period":"2019-08-01T00:00:00/2019-09-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember"},"factValues":[{"value":"0.40"}]},{"name":"rpt:f-672","factDimensions":{"xbrl:concept":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardsEarnedPercentage","xbrl:period":"2020-02-01T00:00:00/2020-03-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","us-gaap:PlanNameAxis":"calx:A2020PerformanceTargetsMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember","us-gaap:VestingAxis":"us-gaap:ShareBasedCompensationAwardTrancheOneMember"},"factValues":[{"value":"0.30","decimals":3}]},{"name":"rpt:f-673","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage","xbrl:period":"2020-02-01T00:00:00/2020-03-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","us-gaap:PlanNameAxis":"calx:A2020PerformanceTargetsMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember","us-gaap:VestingAxis":"us-gaap:ShareBasedCompensationAwardTrancheOneMember"},"factValues":[{"value":"0.25"}]},{"name":"rpt:f-674","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage","xbrl:period":"2020-02-01T00:00:00/2020-03-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","us-gaap:PlanNameAxis":"calx:A2020PerformanceTargetsMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember","us-gaap:VestingAxis":"us-gaap:ShareBasedCompensationAwardTrancheTwoMember"},"factValues":[{"value":"0.75"}]},{"name":"rpt:f-675","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1","xbrl:period":"2020-02-01T00:00:00/2020-03-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","us-gaap:PlanNameAxis":"calx:A2020PerformanceTargetsMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember","us-gaap:VestingAxis":"us-gaap:ShareBasedCompensationAwardTrancheTwoMember"},"factValues":[{"value":"P3Y"}]},{"name":"rpt:f-676","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod","xbrl:period":"2020-02-01T00:00:00/2020-03-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember"},"factValues":[{"value":"800000"}]},{"name":"rpt:f-677","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue","xbrl:period":"2020-03-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember"},"factValues":[{"value":"9.16","decimals":2}]},{"name":"rpt:f-678","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardRequisiteServicePeriod1","xbrl:period":"2020-02-01T00:00:00/2020-03-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember"},"factValues":[{"value":"P1Y"}]},{"name":"rpt:f-679","factDimensions":{"xbrl:concept":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNetIncomePerShareTargetAchievementPerformanceThresholdPercent","xbrl:period":"2020-02-01T00:00:00/2020-03-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","us-gaap:PlanNameAxis":"calx:A2020PerformanceTargetsMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember"},"factValues":[{"value":"0.80"}]},{"name":"rpt:f-680","factDimensions":{"xbrl:concept":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardBookingsTargetAchievementPerformanceThresholdPercent","xbrl:period":"2020-02-01T00:00:00/2020-03-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","us-gaap:PlanNameAxis":"calx:A2020PerformanceTargetsMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember"},"factValues":[{"value":"0.90"}]},{"name":"rpt:f-681","factDimensions":{"xbrl:concept":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesGrantedIfTargetAchievementPerformanceThresholdNotMet","xbrl:period":"2020-02-01T00:00:00/2020-03-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","us-gaap:PlanNameAxis":"calx:A2020PerformanceTargetsMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember"},"factValues":[{"value":"0"}]},{"name":"rpt:f-682","factDimensions":{"xbrl:concept":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesAwardWeightingPercentForTargetAchievementPerformanceThresholdPercent","xbrl:period":"2020-02-01T00:00:00/2020-03-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","us-gaap:PlanNameAxis":"calx:A2020PerformanceTargetsMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember"},"factValues":[{"value":"0.50"}]},{"name":"rpt:f-683","factDimensions":{"xbrl:concept":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesAwardTargetAchievementPerformanceThresholdPercent","xbrl:period":"2020-02-01T00:00:00/2020-03-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","us-gaap:PlanNameAxis":"calx:A2020PerformanceTargetsMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember"},"factValues":[{"value":"1"}]},{"name":"rpt:f-684","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage","xbrl:period":"2021-02-01T00:00:00/2021-02-21T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember","us-gaap:PlanNameAxis":"calx:A2020PerformanceTargetsMember","us-gaap:SubsequentEventTypeAxis":"us-gaap:SubsequentEventMember","us-gaap:VestingAxis":"us-gaap:ShareBasedCompensationAwardTrancheOneMember"},"factValues":[{"value":"0.25"}]},{"name":"rpt:f-685","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage","xbrl:period":"2021-02-01T00:00:00/2021-02-21T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember","us-gaap:PlanNameAxis":"calx:A2020PerformanceTargetsMember","us-gaap:SubsequentEventTypeAxis":"us-gaap:SubsequentEventMember","us-gaap:VestingAxis":"us-gaap:ShareBasedCompensationAwardTrancheTwoMember"},"factValues":[{"value":"0.75"}]},{"name":"rpt:f-686","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1","xbrl:period":"2021-02-01T00:00:00/2021-02-21T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember","us-gaap:PlanNameAxis":"calx:A2020PerformanceTargetsMember","us-gaap:SubsequentEventTypeAxis":"us-gaap:SubsequentEventMember","us-gaap:VestingAxis":"us-gaap:ShareBasedCompensationAwardTrancheTwoMember"},"factValues":[{"value":"P36M"}]},{"name":"rpt:f-687","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensation","xbrl:period":"2021-02-01T00:00:00/2021-02-21T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","us-gaap:PlanNameAxis":"calx:A2020PerformanceTargetsMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember","us-gaap:SubsequentEventTypeAxis":"us-gaap:SubsequentEventMember"},"factValues":[{"value":"1600000","decimals":-5}]},{"name":"rpt:f-688","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The following table summarizes the activity of stock options under the Company\u2019s equity incentive plans (in thousands, except per share data):</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:90.058%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:42.406%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.585%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.237%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.585%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.237%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.585%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.237%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.585%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.243%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Weighted-</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Average</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Weighted-</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Remaining</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Average</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Contractual</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Aggregate</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Number of</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Exercise Price</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Life</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Intrinsic</span></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%;text-decoration:underline\">Stock Options</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Shares</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Per Share</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">(in years)</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><div style=\"text-align:center\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">\u00a0\u00a0\u00a0Value </span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.2pt;font-weight:700;line-height:100%;position:relative;top:-2.8pt;vertical-align:baseline\">(1)</span></div></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Outstanding as of December 31, 2019</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">6,877\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">7.66\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Granted</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2,379\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">14.25\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Exercised</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(1,088)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">8.25\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Canceled</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(1,367)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">8.19\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Outstanding as of December 31, 2020</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">6,801\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">9.76\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">7.50</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">136,032\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Vested and expected to vest as of\u00a0December 31, 2020</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">6,629\u00a0</span></td><td style=\"background-color:#ffffff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">9.63\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">7.45</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">133,412\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Options exercisable as of December 31, 2020</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">3,171\u00a0</span></td><td style=\"background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">7.30\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">5.82</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">71,208\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%;text-decoration:underline\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td></tr><tr><td colspan=\"27\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><div style=\"padding-left:13.5pt;text-indent:-13.5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(1) Amounts represent the difference between the exercise price and the fair market value of common stock at December 31, 2020 of $29.76 per share for all in the money options outstanding.</span></div></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-689","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"6877000","decimals":-3}]},{"name":"rpt:f-690","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"7.66","decimals":2}]},{"name":"rpt:f-691","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"2379000","decimals":-3}]},{"name":"rpt:f-692","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"14.25","decimals":2}]},{"name":"rpt:f-693","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"1088000","decimals":-3}]},{"name":"rpt:f-694","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"8.25","decimals":2}]},{"name":"rpt:f-695","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"1367000","decimals":-3}]},{"name":"rpt:f-696","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"8.19","decimals":2}]},{"name":"rpt:f-697","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"6801000","decimals":-3}]},{"name":"rpt:f-698","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"9.76","decimals":2}]},{"name":"rpt:f-699","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"P7Y6M"}]},{"name":"rpt:f-700","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"136032000","decimals":-3}]},{"name":"rpt:f-701","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"6629000","decimals":-3}]},{"name":"rpt:f-702","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"9.63","decimals":2}]},{"name":"rpt:f-703","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"P7Y5M12D"}]},{"name":"rpt:f-704","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"133412000","decimals":-3}]},{"name":"rpt:f-705","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"3171000","decimals":-3}]},{"name":"rpt:f-706","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"7.30","decimals":2}]},{"name":"rpt:f-707","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"P5Y9M25D"}]},{"name":"rpt:f-708","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"71208000","decimals":-3}]},{"name":"rpt:f-709","factDimensions":{"xbrl:concept":"calx:SharebasedCompensationArrangementbySharebasedPaymentAwardOptionsOutstandingIntrinsicValueAmountPerShare","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"29.76","decimals":2}]},{"name":"rpt:f-710","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"6700000","decimals":-5}]},{"name":"rpt:f-711","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"200000","decimals":-5}]},{"name":"rpt:f-712","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"100000","decimals":-5}]},{"name":"rpt:f-713","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"9000000.0","decimals":-5}]},{"name":"rpt:f-714","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"400000","decimals":-5}]},{"name":"rpt:f-715","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"400000","decimals":-5}]},{"name":"rpt:f-716","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4400000","decimals":-5}]},{"name":"rpt:f-717","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"7600000","decimals":-5}]},{"name":"rpt:f-718","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedInPeriodFairValue1","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2700000","decimals":-5}]},{"name":"rpt:f-719","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The following table summarizes the activities of the Company\u2019s RSUs under the Company\u2019s equity incentive plans (in thousands, except per share data):</span></div><div style=\"margin-bottom:5pt;margin-top:10pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:94.005%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:61.574%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.510%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:15.851%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.510%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:15.855%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"9\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">RSUs</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Weighted-</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Average</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Grant Date</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Number of</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Fair Value</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Shares</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Per Share</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Outstanding as of December 31, 2019</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">334\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">6.71\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Granted</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">112\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">11.22\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Vested</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(314)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">6.70\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Canceled</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(5)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">6.78\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Outstanding as of December 31, 2020</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">127\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">10.71\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-720","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:AwardTypeAxis":"us-gaap:RestrictedStockUnitsRSUMember"},"factValues":[{"value":"334000","decimals":-3}]},{"name":"rpt:f-721","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares","us-gaap:AwardTypeAxis":"us-gaap:RestrictedStockUnitsRSUMember"},"factValues":[{"value":"6.71","decimals":2}]},{"name":"rpt:f-722","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:AwardTypeAxis":"us-gaap:RestrictedStockUnitsRSUMember"},"factValues":[{"value":"112000","decimals":-3}]},{"name":"rpt:f-723","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares","us-gaap:AwardTypeAxis":"us-gaap:RestrictedStockUnitsRSUMember"},"factValues":[{"value":"11.22","decimals":2}]},{"name":"rpt:f-724","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:AwardTypeAxis":"us-gaap:RestrictedStockUnitsRSUMember"},"factValues":[{"value":"314000","decimals":-3}]},{"name":"rpt:f-725","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares","us-gaap:AwardTypeAxis":"us-gaap:RestrictedStockUnitsRSUMember"},"factValues":[{"value":"6.70","decimals":2}]},{"name":"rpt:f-726","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:AwardTypeAxis":"us-gaap:RestrictedStockUnitsRSUMember"},"factValues":[{"value":"5000","decimals":-3}]},{"name":"rpt:f-727","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares","us-gaap:AwardTypeAxis":"us-gaap:RestrictedStockUnitsRSUMember"},"factValues":[{"value":"6.78","decimals":2}]},{"name":"rpt:f-728","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:AwardTypeAxis":"us-gaap:RestrictedStockUnitsRSUMember"},"factValues":[{"value":"127000","decimals":-3}]},{"name":"rpt:f-729","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares","us-gaap:AwardTypeAxis":"us-gaap:RestrictedStockUnitsRSUMember"},"factValues":[{"value":"10.71","decimals":2}]},{"name":"rpt:f-730","factDimensions":{"xbrl:concept":"calx:NumberOfEmployeeStockPurchasePlans","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"calx:Plan"},"factValues":[{"value":"2"}]},{"name":"rpt:f-731","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember","us-gaap:PlanNameAxis":"calx:EmployeeStockPurchasePlanMember"},"factValues":[{"value":"0.15"}]},{"name":"rpt:f-732","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumNumberOfSharesPerEmployee","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember","us-gaap:PlanNameAxis":"calx:EmployeeStockPurchasePlanMember"},"factValues":[{"value":"2000"}]},{"name":"rpt:f-733","factDimensions":{"xbrl:concept":"calx:SharebasedCompensationArrangementbySharebasedPaymentAwardPurchasePriceofCommonStockOfferingPeriod","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember","us-gaap:PlanNameAxis":"calx:EmployeeStockPurchasePlanMember"},"factValues":[{"value":"P6M"}]},{"name":"rpt:f-734","factDimensions":{"xbrl:concept":"calx:SharebasedCompensationArrangementbySharebasedPaymentAwardPurchasePriceofCommonStockOfferingPeriod","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember","us-gaap:PlanNameAxis":"calx:EmployeeStockPurchasePlanMember"},"factValues":[{"value":"P6M"}]},{"name":"rpt:f-735","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized","xbrl:period":"2019-05-01T00:00:00/2019-06-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember","us-gaap:PlanNameAxis":"calx:EmployeeStockPurchasePlanMember"},"factValues":[{"value":"2500000","decimals":-5}]},{"name":"rpt:f-736","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized","xbrl:period":"2019-05-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember","us-gaap:PlanNameAxis":"calx:EmployeeStockPurchasePlanMember"},"factValues":[{"value":"7300000","decimals":-5}]},{"name":"rpt:f-737","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized","xbrl:period":"2019-06-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember","us-gaap:PlanNameAxis":"calx:EmployeeStockPurchasePlanMember"},"factValues":[{"value":"9800000","decimals":-5}]},{"name":"rpt:f-738","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember","us-gaap:PlanNameAxis":"calx:EmployeeStockPurchasePlanMember"},"factValues":[{"value":"2600000"}]},{"name":"rpt:f-739","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodSharesEmployeeStockOwnershipPlan","xbrl:period":"2020-09-27T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember","us-gaap:PlanNameAxis":"calx:EmployeeStockPurchasePlanMember"},"factValues":[{"value":"600000","decimals":-5}]},{"name":"rpt:f-740","factDimensions":{"xbrl:concept":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember","us-gaap:PlanNameAxis":"calx:EmployeeStockPurchasePlanMember"},"factValues":[{"value":"400000","decimals":-5}]},{"name":"rpt:f-741","factDimensions":{"xbrl:concept":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember","us-gaap:PlanNameAxis":"calx:EmployeeStockPurchasePlanMember"},"factValues":[{"value":"P0Y1M6D"}]},{"name":"rpt:f-742","factDimensions":{"xbrl:concept":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumContributionPercent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:PlanNameAxis":"calx:A2017NonqualifiedEmployeeStockPurchasePlanMember"},"factValues":[{"value":"0.25"}]},{"name":"rpt:f-743","factDimensions":{"xbrl:concept":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEmployeeTerminationPeriodFollowingPurchaseDateToReceiveSharesSubjectToRiskOfForfeiture","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:PlanNameAxis":"calx:A2017NonqualifiedEmployeeStockPurchasePlanMember"},"factValues":[{"value":"P1Y"}]},{"name":"rpt:f-744","factDimensions":{"xbrl:concept":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfOfferingPeriods","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"calx:period","us-gaap:PlanNameAxis":"calx:A2017NonqualifiedEmployeeStockPurchasePlanMember"},"factValues":[{"value":"2"}]},{"name":"rpt:f-745","factDimensions":{"xbrl:concept":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOfferingPeriod","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:PlanNameAxis":"calx:A2017NonqualifiedEmployeeStockPurchasePlanMember"},"factValues":[{"value":"P6M"}]},{"name":"rpt:f-746","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized","xbrl:period":"2020-05-01T00:00:00/2020-06-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:PlanNameAxis":"calx:A2017NonqualifiedEmployeeStockPurchasePlanMember"},"factValues":[{"value":"1200000"}]},{"name":"rpt:f-747","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized","xbrl:period":"2020-06-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:PlanNameAxis":"calx:A2017NonqualifiedEmployeeStockPurchasePlanMember"},"factValues":[{"value":"4700000"}]},{"name":"rpt:f-748","factDimensions":{"xbrl:concept":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorizedPerPurchasePeriod","xbrl:period":"2020-06-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:PlanNameAxis":"calx:A2017NonqualifiedEmployeeStockPurchasePlanMember"},"factValues":[{"value":"500000"}]},{"name":"rpt:f-749","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:PlanNameAxis":"calx:A2017NonqualifiedEmployeeStockPurchasePlanMember"},"factValues":[{"value":"2300000","decimals":-5}]},{"name":"rpt:f-750","factDimensions":{"xbrl:concept":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrantAdditionalShares","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:PlanNameAxis":"calx:A2017NonqualifiedEmployeeStockPurchasePlanMember"},"factValues":[{"value":"1200000","decimals":-5}]},{"name":"rpt:f-751","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesPurchasedForAward","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:PlanNameAxis":"calx:A2017NonqualifiedEmployeeStockPurchasePlanMember"},"factValues":[{"value":"500000","decimals":-5}]},{"name":"rpt:f-752","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:PlanNameAxis":"calx:A2017NonqualifiedEmployeeStockPurchasePlanMember"},"factValues":[{"value":"500000","decimals":-5}]},{"name":"rpt:f-753","factDimensions":{"xbrl:concept":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:PlanNameAxis":"calx:A2017NonqualifiedEmployeeStockPurchasePlanMember"},"factValues":[{"value":"5200000","decimals":-5}]},{"name":"rpt:f-754","factDimensions":{"xbrl:concept":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:PlanNameAxis":"calx:A2017NonqualifiedEmployeeStockPurchasePlanMember"},"factValues":[{"value":"P1Y1M6D"}]},{"name":"rpt:f-755","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"14000000.0","decimals":-5}]},{"name":"rpt:f-756","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"11200000","decimals":-5}]},{"name":"rpt:f-757","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"17500000","decimals":-5}]},{"name":"rpt:f-758","factDimensions":{"xbrl:concept":"us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The following table summarizes stock-based compensation expense (in thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:10pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:50.215%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.408%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:13.519%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.408%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:13.519%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.408%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:13.523%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"15\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Years Ended December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2018</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Cost of revenue:</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Products</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">575\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">507\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">885\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Services</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">450\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">389\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">363\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Sales and marketing</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">4,273\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">3,415\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">5,787\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Research and development</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">4,736\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">3,913\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">5,969\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">General and administrative</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">3,926\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2,957\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">4,469\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">13,960\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">11,181\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">17,473\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-759","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementLocationAxis":"calx:CostOfRevenueProductsMember"},"factValues":[{"value":"575000","decimals":-3}]},{"name":"rpt:f-760","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementLocationAxis":"calx:CostOfRevenueProductsMember"},"factValues":[{"value":"507000","decimals":-3}]},{"name":"rpt:f-761","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementLocationAxis":"calx:CostOfRevenueProductsMember"},"factValues":[{"value":"885000","decimals":-3}]},{"name":"rpt:f-762","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementLocationAxis":"calx:CostOfRevenueServicesMember"},"factValues":[{"value":"450000","decimals":-3}]},{"name":"rpt:f-763","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementLocationAxis":"calx:CostOfRevenueServicesMember"},"factValues":[{"value":"389000","decimals":-3}]},{"name":"rpt:f-764","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementLocationAxis":"calx:CostOfRevenueServicesMember"},"factValues":[{"value":"363000","decimals":-3}]},{"name":"rpt:f-765","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementLocationAxis":"us-gaap:SellingAndMarketingExpenseMember"},"factValues":[{"value":"4273000","decimals":-3}]},{"name":"rpt:f-766","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementLocationAxis":"us-gaap:SellingAndMarketingExpenseMember"},"factValues":[{"value":"3415000","decimals":-3}]},{"name":"rpt:f-767","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementLocationAxis":"us-gaap:SellingAndMarketingExpenseMember"},"factValues":[{"value":"5787000","decimals":-3}]},{"name":"rpt:f-768","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementLocationAxis":"us-gaap:ResearchAndDevelopmentExpenseMember"},"factValues":[{"value":"4736000","decimals":-3}]},{"name":"rpt:f-769","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementLocationAxis":"us-gaap:ResearchAndDevelopmentExpenseMember"},"factValues":[{"value":"3913000","decimals":-3}]},{"name":"rpt:f-770","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementLocationAxis":"us-gaap:ResearchAndDevelopmentExpenseMember"},"factValues":[{"value":"5969000","decimals":-3}]},{"name":"rpt:f-771","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementLocationAxis":"us-gaap:GeneralAndAdministrativeExpenseMember"},"factValues":[{"value":"3926000","decimals":-3}]},{"name":"rpt:f-772","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementLocationAxis":"us-gaap:GeneralAndAdministrativeExpenseMember"},"factValues":[{"value":"2957000","decimals":-3}]},{"name":"rpt:f-773","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementLocationAxis":"us-gaap:GeneralAndAdministrativeExpenseMember"},"factValues":[{"value":"4469000","decimals":-3}]},{"name":"rpt:f-774","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"13960000","decimals":-3}]},{"name":"rpt:f-775","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"11181000","decimals":-3}]},{"name":"rpt:f-776","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"17473000","decimals":-3}]},{"name":"rpt:f-777","factDimensions":{"xbrl:concept":"calx:ScheduleOfGrantDateFairValuesTableTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The following table summarizes the weighted-average grant date fair values of the Company\u2019s stock-based awards granted in the periods indicated:</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:86.111%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:55.096%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.667%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.633%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.667%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.633%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.667%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.637%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"15\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Years Ended December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2018</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Stock options</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">8.55\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">3.66\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">3.41\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">RSUs</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">11.22\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">6.62\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">6.66\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">ESPP</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">5.52\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2.04\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2.21\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Nonqualified ESPP</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">19.40\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">7.24\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">7.34\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-778","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"8.55","decimals":2}]},{"name":"rpt:f-779","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"3.66","decimals":2}]},{"name":"rpt:f-780","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"3.41","decimals":2}]},{"name":"rpt:f-781","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares","us-gaap:AwardTypeAxis":"us-gaap:RestrictedStockUnitsRSUMember"},"factValues":[{"value":"11.22","decimals":2}]},{"name":"rpt:f-782","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares","us-gaap:AwardTypeAxis":"us-gaap:RestrictedStockUnitsRSUMember"},"factValues":[{"value":"6.62","decimals":2}]},{"name":"rpt:f-783","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares","us-gaap:AwardTypeAxis":"us-gaap:RestrictedStockUnitsRSUMember"},"factValues":[{"value":"6.66","decimals":2}]},{"name":"rpt:f-784","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"5.52","decimals":2}]},{"name":"rpt:f-785","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"2.04","decimals":2}]},{"name":"rpt:f-786","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"2.21","decimals":2}]},{"name":"rpt:f-787","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares","us-gaap:PlanNameAxis":"calx:A2017NonqualifiedEmployeeStockPurchasePlanMember","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"19.40","decimals":2}]},{"name":"rpt:f-788","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares","us-gaap:PlanNameAxis":"calx:A2017NonqualifiedEmployeeStockPurchasePlanMember","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"7.24","decimals":2}]},{"name":"rpt:f-789","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares","us-gaap:PlanNameAxis":"calx:A2017NonqualifiedEmployeeStockPurchasePlanMember","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"7.34","decimals":2}]},{"name":"rpt:f-790","factDimensions":{"xbrl:concept":"calx:PercentOfHistoricalVolatility","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.50","decimals":2}]},{"name":"rpt:f-791","factDimensions":{"xbrl:concept":"calx:PercentOfImpliedVolatility","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.50","decimals":2}]},{"name":"rpt:f-792","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The following table summarizes the weighted-average assumptions used in estimating the grant-date fair value of stock options and of each employee\u2019s purchase right under the ESPP in the periods indicated:</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.742%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:56.395%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.255%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.255%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.259%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"15\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Years Ended December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%;text-decoration:underline\">Stock Options</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2018</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Expected volatility</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">53\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">47\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">50\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Expected life (years)</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">6.11</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">6.11</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">6.11</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Expected dividend yield</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Risk-free interest rate</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">0.48\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1.67\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2.83\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-793","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockOptionMember"},"factValues":[{"value":"0.53","decimals":2}]},{"name":"rpt:f-794","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockOptionMember"},"factValues":[{"value":"0.47","decimals":2}]},{"name":"rpt:f-795","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockOptionMember"},"factValues":[{"value":"0.50","decimals":2}]},{"name":"rpt:f-796","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockOptionMember"},"factValues":[{"value":"P6Y1M9D"}]},{"name":"rpt:f-797","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockOptionMember"},"factValues":[{"value":"P6Y1M9D"}]},{"name":"rpt:f-798","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockOptionMember"},"factValues":[{"value":"P6Y1M9D"}]},{"name":"rpt:f-799","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockOptionMember"},"factValues":[{"value":"0"}]},{"name":"rpt:f-800","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockOptionMember"},"factValues":[{"value":"0"}]},{"name":"rpt:f-801","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockOptionMember"},"factValues":[{"value":"0"}]},{"name":"rpt:f-802","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockOptionMember"},"factValues":[{"value":"0.0048","decimals":4}]},{"name":"rpt:f-803","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockOptionMember"},"factValues":[{"value":"0.0167","decimals":4}]},{"name":"rpt:f-804","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockOptionMember"},"factValues":[{"value":"0.0283","decimals":4}]},{"name":"rpt:f-805","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.742%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:56.395%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.255%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.255%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.259%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"15\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Years Ended December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%;text-decoration:underline\">ESPP</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2018</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Expected volatility</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">70\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">48\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">42\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Expected life (years)</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">0.39</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">0.49</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">0.50</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Expected dividend yield</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Risk-free interest rate</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">0.12\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2.03\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2.21\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td></tr></table>","language":"en-us"}]},{"name":"rpt:f-806","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"0.70","decimals":2}]},{"name":"rpt:f-807","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"0.48","decimals":2}]},{"name":"rpt:f-808","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"0.42","decimals":2}]},{"name":"rpt:f-809","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"P0Y4M20D"}]},{"name":"rpt:f-810","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"P0Y5M26D"}]},{"name":"rpt:f-811","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"P0Y6M"}]},{"name":"rpt:f-812","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"0"}]},{"name":"rpt:f-813","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"0"}]},{"name":"rpt:f-814","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"0"}]},{"name":"rpt:f-815","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"0.0012","decimals":4}]},{"name":"rpt:f-816","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"0.0203","decimals":4}]},{"name":"rpt:f-817","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"0.0221","decimals":4}]},{"name":"rpt:f-818","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfUnrecognizedCompensationCostNonvestedAwardsTableTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">As of December\u00a031, 2020, unrecognized stock-based compensation expense by award type, net of estimated forfeitures, and their expected weighted-average recognition periods are summarized in the following table (in thousands).</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:76.023%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:48.707%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.915%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:13.515%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.915%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:13.515%\"></td><td style=\"width:0.1%\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.915%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:13.518%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Stock Option</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">RSU</span></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">ESPPs</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Unrecognized stock-based compensation expense</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">15,604\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">518\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">5,530\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Weighted-average amortization period (in years)</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">3.0</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">0.4</span></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1.0</span></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-819","factDimensions":{"xbrl:concept":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockOptionMember"},"factValues":[{"value":"15604000","decimals":-3}]},{"name":"rpt:f-820","factDimensions":{"xbrl:concept":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:AwardTypeAxis":"us-gaap:RestrictedStockUnitsRSUMember"},"factValues":[{"value":"518000","decimals":-3}]},{"name":"rpt:f-821","factDimensions":{"xbrl:concept":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"5530000","decimals":-3}]},{"name":"rpt:f-822","factDimensions":{"xbrl:concept":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockOptionMember"},"factValues":[{"value":"P3Y"}]},{"name":"rpt:f-823","factDimensions":{"xbrl:concept":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:RestrictedStockUnitsRSUMember"},"factValues":[{"value":"P0Y4M24D"}]},{"name":"rpt:f-824","factDimensions":{"xbrl:concept":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"P1Y"}]},{"name":"rpt:f-825","factDimensions":{"xbrl:concept":"calx:EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationCostNotyetRecognizedToBeRecognizedNextTwelveMonth","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"10600000","decimals":-5}]},{"name":"rpt:f-826","factDimensions":{"xbrl:concept":"calx:EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationCostNotyetRecognizedToBeRecognizedInYearTwo","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"5100000","decimals":-5}]},{"name":"rpt:f-827","factDimensions":{"xbrl:concept":"calx:EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationCostNotyetRecognizedToBeRecognizedInYearThree","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4000000.0","decimals":-5}]},{"name":"rpt:f-828","factDimensions":{"xbrl:concept":"calx:EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationCostNotyetRecognizedToBeRecognizedInYearFour","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2000000.0","decimals":-5}]},{"name":"rpt:f-829","factDimensions":{"xbrl:concept":"calx:SharesReservedForFutureIssuanceTableTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Shares Reserved for Future Issuance </span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">As of December\u00a031, 2020, the Company had common shares reserved for future issuance as follows (in thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:77.631%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:82.704%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.871%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:13.025%\"></td><td style=\"width:0.1%\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Stock options outstanding</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">6,801\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Restricted stock units outstanding</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">127\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Shares available for future grant under 2019 Plan</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">4,344\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Shares available for future issuance under ESPP</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2,596\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Shares available for future issuance under Nonqualified ESPP</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2,274\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt 0 12.25pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">16,142\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-830","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"6801000","decimals":-3}]},{"name":"rpt:f-831","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:AwardTypeAxis":"us-gaap:RestrictedStockUnitsRSUMember"},"factValues":[{"value":"127000","decimals":-3}]},{"name":"rpt:f-832","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:PlanNameAxis":"calx:A2019PlanMember"},"factValues":[{"value":"4344000","decimals":-3}]},{"name":"rpt:f-833","factDimensions":{"xbrl:concept":"us-gaap:CommonStockCapitalSharesReservedForFutureIssuance","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"2596000","decimals":-3}]},{"name":"rpt:f-834","factDimensions":{"xbrl:concept":"us-gaap:CommonStockCapitalSharesReservedForFutureIssuance","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:PlanNameAxis":"calx:A2017NonqualifiedEmployeeStockPurchasePlanMember","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"2274000","decimals":-3}]},{"name":"rpt:f-835","factDimensions":{"xbrl:concept":"us-gaap:CommonStockCapitalSharesReservedForFutureIssuance","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"16142000","decimals":-3}]},{"name":"rpt:f-836","factDimensions":{"xbrl:concept":"us-gaap:CompensationAndEmployeeBenefitPlansTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"Employee Benefit PlanThe Company sponsors a 401(k) tax-deferred savings plan for all employees who meet certain eligibility requirements. Participants may contribute, on a pre-tax basis, a percentage of their annual compensation, but not to exceed a maximum contribution amount pursuant to Section\u00a0401(k) of the Internal Revenue Code. The Company, at the discretion of the Board of Directors, may make additional matching contributions on behalf of the participants. The Company made matching contributions totaling $2.7 million, $2.5 million and $2.5 million in 2020, 2019 and 2018, respectively.","language":"en-us"}]},{"name":"rpt:f-837","factDimensions":{"xbrl:concept":"us-gaap:DefinedContributionPlanCostRecognized","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2700000","decimals":-5}]},{"name":"rpt:f-838","factDimensions":{"xbrl:concept":"us-gaap:DefinedContributionPlanCostRecognized","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2500000","decimals":-5}]},{"name":"rpt:f-839","factDimensions":{"xbrl:concept":"us-gaap:DefinedContributionPlanCostRecognized","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2500000","decimals":-5}]},{"name":"rpt:f-840","factDimensions":{"xbrl:concept":"us-gaap:ComprehensiveIncomeNoteTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"Accumulated Other Comprehensive Loss<div style=\"margin-top:6pt;text-indent:4.5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The table below summarizes the changes in accumulated other comprehensive loss by component:</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:96.929%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:85.928%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.554%\"></td><td style=\"width:0.1%\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.118%\"></td><td style=\"width:0.1%\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%\">`</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Foreign Currency Translation Adjustments</span></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Balance as of December 31, 2018</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(753)</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Other comprehensive loss</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(101)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Balance as of December 31, 2019</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(854)</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Other comprehensive income</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">663\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Balance as of December 31, 2020</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(191)</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr></table></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Assets and liabilities of the Company\u2019s wholly owned foreign subsidiaries are translated from their respective functional currencies at exchange rates in effect at the balance sheet date, and revenue and expenses are translated at the monthly average exchanges rates. These translations result in differences called foreign currency translation adjustments. Realized foreign currency transaction gains or losses were not significant during the years ended December\u00a031, 2020, 2019 and 2018 and are recorded in \u201cOther income (expense), net\u201d in the Company's Consolidated Statements of Comprehensive Loss.</span></div>","language":"en-us"}]},{"name":"rpt:f-841","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:6pt;text-indent:4.5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The table below summarizes the changes in accumulated other comprehensive loss by component:</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:96.929%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:85.928%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.554%\"></td><td style=\"width:0.1%\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.118%\"></td><td style=\"width:0.1%\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%\">`</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Foreign Currency Translation Adjustments</span></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Balance as of December 31, 2018</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(753)</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Other comprehensive loss</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(101)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Balance as of December 31, 2019</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(854)</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Other comprehensive income</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">663\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Balance as of December 31, 2020</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(191)</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-842","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AccumulatedOtherComprehensiveIncomeMember"},"factValues":[{"value":"-753000","decimals":-3}]},{"name":"rpt:f-843","factDimensions":{"xbrl:concept":"us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AccumulatedTranslationAdjustmentMember"},"factValues":[{"value":"-101000","decimals":-3}]},{"name":"rpt:f-844","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AccumulatedOtherComprehensiveIncomeMember"},"factValues":[{"value":"-854000","decimals":-3}]},{"name":"rpt:f-845","factDimensions":{"xbrl:concept":"us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AccumulatedTranslationAdjustmentMember"},"factValues":[{"value":"663000","decimals":-3}]},{"name":"rpt:f-846","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AccumulatedOtherComprehensiveIncomeMember"},"factValues":[{"value":"-191000","decimals":-3}]},{"name":"rpt:f-847","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxDisclosureTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"Income Taxes <div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The domestic and foreign components of income (loss) before provision for incomes taxes were as follows (in thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.742%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:56.395%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.255%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.255%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.259%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"15\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Years Ended December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2018</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Domestic</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">33,777\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(17,935)</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(20,463)</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Foreign</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">507\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,403\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,695\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">34,284\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(16,532)</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(18,768)</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div><div style=\"margin-top:5pt;text-indent:18pt\"><span><br/></span></div><div style=\"margin-top:9pt;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Provision for income taxes consisted of the following (in thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.742%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:56.395%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.255%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.255%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.259%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"15\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Years Ended December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2018</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Current:</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">State</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">285\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">313\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">105\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Foreign</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">507\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">835\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">360\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 25.75pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Current income tax</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">792\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,148\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">465\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Deferred foreign income tax</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">8\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">14\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">65\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt 0 37pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">800\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,162\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">530\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The differences between the statutory and effective tax rates, expressed as a percentage of net income (loss) before income taxes, were as follows:</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.742%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:56.395%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.255%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.255%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.259%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"15\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Years Ended December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2018</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Federal statutory rate</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">21.0\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">21.0\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">21.0\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">State statutory rate</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">0.1\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">5.6\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">5.7\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Foreign operations</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">0.6\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(2.8)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">0.3\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">R&amp;D tax credits</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(4.8)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">6.2\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">7.2\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Foreign income inclusion</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(1.3)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(1.2)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Stock-based compensation</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(4.1)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(5.1)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(4.3)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Other permanent items</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">0.6\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(2.0)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(1.6)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Tax true-up</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(0.4)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(11.8)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(2.3)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Valuation allowance</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(48.1)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(16.8)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(25.6)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Net operating loss expiration</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">37.4\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">ASC 606 adjustment</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(2.0)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt 0 12.25pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2.3\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(7.0)</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(2.8)</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td></tr></table></div><div style=\"margin-top:6pt\"><span><br/></span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The significant components of the Company\u2019s deferred tax assets were as follows (in thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.888%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:70.610%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.609%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.235%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.609%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.237%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"9\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Deferred tax assets:</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Net operating loss carryforwards</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">114,973\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">135,019\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Tax credit carryforwards</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">49,978\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">47,324\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Depreciation and amortization</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">681\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,541\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Accruals and reserves</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">10,753\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">9,316\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Deferred revenue</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">9,219\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">8,488\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Stock-based compensation</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">4,821\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">4,761\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Intangible assets</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(568)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(111)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Other</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(18)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(10)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 25.75pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Gross deferred tax assets</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">189,839\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">206,328\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Valuation allowance</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(189,858)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(206,339)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(19)</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(11)</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr></table></div><div style=\"margin-top:6pt\"><span><br/></span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">All deferred taxes, along with any related valuation allowance, are classified in the Consolidated Balance Sheet as long-term.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Management reviews the recognition of deferred tax assets to determine if realization of such assets is more likely than not. The realization of the Company\u2019s deferred tax assets is dependent upon the evaluation of historic losses, reversing temporary differences, and future earnings. As of December 31, 2020, the positive evidence includes 3 years of cumulative U.S. profitability. The negative evidence includes historic cumulative losses from 1999 through the third quarter of 2020, expiring attributes that are unavailable for utilization, uneven financial results from year to year, and uncertainly related to the COVID-19 pandemic which makes the evaluation of future earnings challenging. Using the more likely than not criteria specified in the applicable accounting guidance, this negative evidence cannot be overcome by positive evidence currently available to the Company. As a result, the Company has maintained a full valuation allowance against its deferred tax assets with the exception of certain foreign deferred tax assets. The Company\u2019s valuation allowance decreased by $16.5 million in 2020 and increased by $2.8 million in 2019.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">As of December\u00a031, 2020, the Company had U.S. federal and state net operating losses of approximately $518.4 million and $110.6 million, respectively. The U.S. federal net operating loss carryforwards have begun to expire and will continue to expire at various dates through 2040 if not utilized. The state net operating loss carryforwards have begun to expire and will continue to expire at various dates through 2040, if not utilized. Additionally, the Company has U.S. federal, California and other U.S. states research and development credits of approximately $37.3 million, $38.0 million and $3.1 million, respectively, as of December\u00a031, 2020. The U.S. federal research and development credits will begin to expire in 2020 and the California research </span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">and development credits have no expiration date. The credits related to other various U.S. states have begun to expire and will continue to expire at various dates through 2035.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">In 2019, the Company reassessed its plan to continue to reinvest its foreign earnings overseas. The Company no longer asserts ASC 740-30 indefinite reinvestment of its historical non-U.S. earnings or future non-U.S. earnings. As such, for the year ended December\u00a031, 2020, the Company recorded a current and cumulative tax expense of $0.1 million and $0.6\u00a0million, respectively, for the estimated withholding, state income tax and foreign income tax associated with repatriating non-U.S. earnings back to the United States. </span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Uncertain Tax Positions</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">ASC 740, </span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">\u201cIncome Taxes,\u201d </span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">prescribes a recognition threshold and measurement attribute to the financial statement recognition and measurement of a tax position taken or expected to be taken in a tax return. The guidance also provides guidance on derecognition, classification, accounting in interim periods and disclosure requirements for uncertain tax positions. The standard requires the Company to recognize the financial statement effects of an uncertain tax position when it is more likely than not that such position will be sustained upon audit. The Company recognizes accrued interest and penalties related to unrecognized tax benefits as interest expense and income tax expense, respectively, in statements of comprehensive loss.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The following table reconciles the Company\u2019s unrecognized tax benefits (in thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.888%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:70.610%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.609%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.235%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.609%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.237%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"9\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Years Ended December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Balance at beginning of year</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">22,264\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">21,998\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u00a0\u00a0\u00a0\u00a0Addition (reduction) for tax positions related to prior year</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(163)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(382)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u00a0\u00a0\u00a0\u00a0Additions for tax positions related to current year</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,415\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">648\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Balance at end of year</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">23,516\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">22,264\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div><div style=\"margin-top:6pt\"><span><br/></span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">As of December\u00a031, 2020 and 2019, the Company had unrecognized tax benefits of $23.5\u00a0million and $22.3\u00a0million, respectively, none of which would affect the Company\u2019s effective tax rate if recognized. There were no accrued interest or penalties for uncertain income tax as of December\u00a031, 2020.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company files tax returns in the United States and various state jurisdictions, the United Kingdom, China and Brazil. The tax years 2000 through 2020 remain open and subject to examination by the appropriate governmental agencies due to tax attribute carryforwards.</span></div>","language":"en-us"}]},{"name":"rpt:f-848","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The domestic and foreign components of income (loss) before provision for incomes taxes were as follows (in thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.742%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:56.395%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.255%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.255%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.259%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"15\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Years Ended December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2018</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Domestic</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">33,777\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(17,935)</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(20,463)</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Foreign</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">507\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,403\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,695\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">34,284\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(16,532)</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(18,768)</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-849","factDimensions":{"xbrl:concept":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"33777000","decimals":-3}]},{"name":"rpt:f-850","factDimensions":{"xbrl:concept":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-17935000","decimals":-3}]},{"name":"rpt:f-851","factDimensions":{"xbrl:concept":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-20463000","decimals":-3}]},{"name":"rpt:f-852","factDimensions":{"xbrl:concept":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"507000","decimals":-3}]},{"name":"rpt:f-853","factDimensions":{"xbrl:concept":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1403000","decimals":-3}]},{"name":"rpt:f-854","factDimensions":{"xbrl:concept":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1695000","decimals":-3}]},{"name":"rpt:f-855","factDimensions":{"xbrl:concept":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"34284000","decimals":-3}]},{"name":"rpt:f-856","factDimensions":{"xbrl:concept":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-16532000","decimals":-3}]},{"name":"rpt:f-857","factDimensions":{"xbrl:concept":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-18768000","decimals":-3}]},{"name":"rpt:f-858","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:9pt;text-indent:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Provision for income taxes consisted of the following (in thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.742%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:56.395%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.255%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.255%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.259%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"15\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Years Ended December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2018</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Current:</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">State</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">285\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">313\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">105\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Foreign</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">507\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">835\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">360\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 25.75pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Current income tax</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">792\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,148\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">465\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Deferred foreign income tax</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">8\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">14\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">65\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt 0 37pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">800\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,162\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">530\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-859","factDimensions":{"xbrl:concept":"us-gaap:CurrentStateAndLocalTaxExpenseBenefit","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"285000","decimals":-3}]},{"name":"rpt:f-860","factDimensions":{"xbrl:concept":"us-gaap:CurrentStateAndLocalTaxExpenseBenefit","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"313000","decimals":-3}]},{"name":"rpt:f-861","factDimensions":{"xbrl:concept":"us-gaap:CurrentStateAndLocalTaxExpenseBenefit","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"105000","decimals":-3}]},{"name":"rpt:f-862","factDimensions":{"xbrl:concept":"us-gaap:CurrentForeignTaxExpenseBenefit","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"507000","decimals":-3}]},{"name":"rpt:f-863","factDimensions":{"xbrl:concept":"us-gaap:CurrentForeignTaxExpenseBenefit","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"835000","decimals":-3}]},{"name":"rpt:f-864","factDimensions":{"xbrl:concept":"us-gaap:CurrentForeignTaxExpenseBenefit","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"360000","decimals":-3}]},{"name":"rpt:f-865","factDimensions":{"xbrl:concept":"us-gaap:CurrentIncomeTaxExpenseBenefit","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"792000","decimals":-3}]},{"name":"rpt:f-866","factDimensions":{"xbrl:concept":"us-gaap:CurrentIncomeTaxExpenseBenefit","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1148000","decimals":-3}]},{"name":"rpt:f-867","factDimensions":{"xbrl:concept":"us-gaap:CurrentIncomeTaxExpenseBenefit","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"465000","decimals":-3}]},{"name":"rpt:f-868","factDimensions":{"xbrl:concept":"us-gaap:DeferredForeignIncomeTaxExpenseBenefit","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"8000","decimals":-3}]},{"name":"rpt:f-869","factDimensions":{"xbrl:concept":"us-gaap:DeferredForeignIncomeTaxExpenseBenefit","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"14000","decimals":-3}]},{"name":"rpt:f-870","factDimensions":{"xbrl:concept":"us-gaap:DeferredForeignIncomeTaxExpenseBenefit","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"65000","decimals":-3}]},{"name":"rpt:f-871","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxExpenseBenefit","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"800000","decimals":-3}]},{"name":"rpt:f-872","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxExpenseBenefit","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1162000","decimals":-3}]},{"name":"rpt:f-873","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxExpenseBenefit","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"530000","decimals":-3}]},{"name":"rpt:f-874","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The differences between the statutory and effective tax rates, expressed as a percentage of net income (loss) before income taxes, were as follows:</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.742%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:56.395%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.255%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.255%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.259%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"15\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Years Ended December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2018</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Federal statutory rate</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">21.0\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">21.0\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">21.0\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">State statutory rate</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">0.1\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">5.6\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">5.7\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Foreign operations</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">0.6\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(2.8)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">0.3\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">R&amp;D tax credits</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(4.8)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">6.2\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">7.2\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Foreign income inclusion</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(1.3)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(1.2)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Stock-based compensation</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(4.1)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(5.1)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(4.3)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Other permanent items</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">0.6\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(2.0)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(1.6)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Tax true-up</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(0.4)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(11.8)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(2.3)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Valuation allowance</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(48.1)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(16.8)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(25.6)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Net operating loss expiration</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">37.4\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">ASC 606 adjustment</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(2.0)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt 0 12.25pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2.3\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(7.0)</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(2.8)</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-875","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.210"}]},{"name":"rpt:f-876","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.210"}]},{"name":"rpt:f-877","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.210"}]},{"name":"rpt:f-878","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.001","decimals":3}]},{"name":"rpt:f-879","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.056","decimals":3}]},{"name":"rpt:f-880","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.057","decimals":3}]},{"name":"rpt:f-881","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.006","decimals":3}]},{"name":"rpt:f-882","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"-0.028","decimals":3}]},{"name":"rpt:f-883","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.003","decimals":3}]},{"name":"rpt:f-884","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.048","decimals":3}]},{"name":"rpt:f-885","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"-0.062","decimals":3}]},{"name":"rpt:f-886","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"-0.072","decimals":3}]},{"name":"rpt:f-887","factDimensions":{"xbrl:concept":"calx:EffectiveIncomeTaxRateReconciliationForeignIncomeInclusionPercent","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0","decimals":3}]},{"name":"rpt:f-888","factDimensions":{"xbrl:concept":"calx:EffectiveIncomeTaxRateReconciliationForeignIncomeInclusionPercent","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"-0.013","decimals":3}]},{"name":"rpt:f-889","factDimensions":{"xbrl:concept":"calx:EffectiveIncomeTaxRateReconciliationForeignIncomeInclusionPercent","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"-0.012","decimals":3}]},{"name":"rpt:f-890","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"-0.041","decimals":3}]},{"name":"rpt:f-891","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"-0.051","decimals":3}]},{"name":"rpt:f-892","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"-0.043","decimals":3}]},{"name":"rpt:f-893","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseOther","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.006","decimals":3}]},{"name":"rpt:f-894","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseOther","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"-0.020","decimals":3}]},{"name":"rpt:f-895","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseOther","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"-0.016","decimals":3}]},{"name":"rpt:f-896","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationPriorYearIncomeTaxes","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"-0.004","decimals":3}]},{"name":"rpt:f-897","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationPriorYearIncomeTaxes","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"-0.118","decimals":3}]},{"name":"rpt:f-898","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationPriorYearIncomeTaxes","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"-0.023","decimals":3}]},{"name":"rpt:f-899","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"-0.481","decimals":3}]},{"name":"rpt:f-900","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"-0.168","decimals":3}]},{"name":"rpt:f-901","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"-0.256","decimals":3}]},{"name":"rpt:f-902","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationTaxCutsAndJobsActOf2017Percent","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.374","decimals":3}]},{"name":"rpt:f-903","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationTaxCutsAndJobsActOf2017Percent","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0","decimals":3}]},{"name":"rpt:f-904","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationTaxCutsAndJobsActOf2017Percent","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0","decimals":3}]},{"name":"rpt:f-905","factDimensions":{"xbrl:concept":"calx:EffectiveIncomeTaxRateReconciliationTopic606AdjustmentPercent","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0","decimals":3}]},{"name":"rpt:f-906","factDimensions":{"xbrl:concept":"calx:EffectiveIncomeTaxRateReconciliationTopic606AdjustmentPercent","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0","decimals":3}]},{"name":"rpt:f-907","factDimensions":{"xbrl:concept":"calx:EffectiveIncomeTaxRateReconciliationTopic606AdjustmentPercent","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"-0.020","decimals":3}]},{"name":"rpt:f-908","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.023","decimals":3}]},{"name":"rpt:f-909","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"-0.070","decimals":3}]},{"name":"rpt:f-910","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"-0.028","decimals":3}]},{"name":"rpt:f-911","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The significant components of the Company\u2019s deferred tax assets were as follows (in thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.888%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:70.610%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.609%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.235%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.609%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.237%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"9\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Deferred tax assets:</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Net operating loss carryforwards</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">114,973\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">135,019\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Tax credit carryforwards</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">49,978\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">47,324\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Depreciation and amortization</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">681\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,541\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Accruals and reserves</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">10,753\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">9,316\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Deferred revenue</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">9,219\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">8,488\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Stock-based compensation</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">4,821\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">4,761\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Intangible assets</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(568)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(111)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Other</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(18)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(10)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 25.75pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Gross deferred tax assets</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">189,839\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">206,328\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Valuation allowance</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(189,858)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(206,339)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(19)</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(11)</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-912","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsOperatingLossCarryforwards","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"114973000","decimals":-3}]},{"name":"rpt:f-913","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsOperatingLossCarryforwards","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"135019000","decimals":-3}]},{"name":"rpt:f-914","factDimensions":{"xbrl:concept":"us-gaap:TaxCreditCarryforwardAmount","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"49978000","decimals":-3}]},{"name":"rpt:f-915","factDimensions":{"xbrl:concept":"us-gaap:TaxCreditCarryforwardAmount","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"47324000","decimals":-3}]},{"name":"rpt:f-916","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"681000","decimals":-3}]},{"name":"rpt:f-917","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1541000","decimals":-3}]},{"name":"rpt:f-918","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"10753000","decimals":-3}]},{"name":"rpt:f-919","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"9316000","decimals":-3}]},{"name":"rpt:f-920","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsDeferredIncome","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"9219000","decimals":-3}]},{"name":"rpt:f-921","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsDeferredIncome","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"8488000","decimals":-3}]},{"name":"rpt:f-922","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4821000","decimals":-3}]},{"name":"rpt:f-923","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4761000","decimals":-3}]},{"name":"rpt:f-924","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-568000","decimals":-3}]},{"name":"rpt:f-925","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-111000","decimals":-3}]},{"name":"rpt:f-926","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsOther","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-18000","decimals":-3}]},{"name":"rpt:f-927","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsOther","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-10000","decimals":-3}]},{"name":"rpt:f-928","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsGross","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"189839000","decimals":-3}]},{"name":"rpt:f-929","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsGross","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"206328000","decimals":-3}]},{"name":"rpt:f-930","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsValuationAllowance","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"189858000","decimals":-3}]},{"name":"rpt:f-931","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsValuationAllowance","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"206339000","decimals":-3}]},{"name":"rpt:f-932","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxLiabilities","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"19000","decimals":-3}]},{"name":"rpt:f-933","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxLiabilities","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"11000","decimals":-3}]},{"name":"rpt:f-934","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-16500000","decimals":-5}]},{"name":"rpt:f-935","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-2800000","decimals":-5}]},{"name":"rpt:f-936","factDimensions":{"xbrl:concept":"us-gaap:OperatingLossCarryforwards","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeTaxAuthorityAxis":"us-gaap:DomesticCountryMember"},"factValues":[{"value":"518400000","decimals":-5}]},{"name":"rpt:f-937","factDimensions":{"xbrl:concept":"us-gaap:OperatingLossCarryforwards","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeTaxAuthorityAxis":"us-gaap:StateAndLocalJurisdictionMember"},"factValues":[{"value":"110600000","decimals":-5}]},{"name":"rpt:f-938","factDimensions":{"xbrl:concept":"us-gaap:TaxCreditCarryforwardAmount","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeTaxAuthorityAxis":"us-gaap:DomesticCountryMember"},"factValues":[{"value":"37300000","decimals":-5}]},{"name":"rpt:f-939","factDimensions":{"xbrl:concept":"us-gaap:TaxCreditCarryforwardAmount","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeTaxAuthorityAxis":"calx:CaliforniaStateMember"},"factValues":[{"value":"38000000.0","decimals":-5}]},{"name":"rpt:f-940","factDimensions":{"xbrl:concept":"us-gaap:TaxCreditCarryforwardAmount","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeTaxAuthorityAxis":"calx:OtherStateMember"},"factValues":[{"value":"3100000","decimals":-5}]},{"name":"rpt:f-941","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxReconciliationRepatriationOfForeignEarnings","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"100000","decimals":-5}]},{"name":"rpt:f-942","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxReconciliationRepatriationOfForeignEarnings","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"600000","decimals":-5}]},{"name":"rpt:f-943","factDimensions":{"xbrl:concept":"us-gaap:SummaryOfIncomeTaxContingenciesTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The following table reconciles the Company\u2019s unrecognized tax benefits (in thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.888%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:70.610%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.609%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.235%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.609%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.237%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"9\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Years Ended December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Balance at beginning of year</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">22,264\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">21,998\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u00a0\u00a0\u00a0\u00a0Addition (reduction) for tax positions related to prior year</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(163)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(382)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u00a0\u00a0\u00a0\u00a0Additions for tax positions related to current year</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,415\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">648\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Balance at end of year</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">23,516\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">22,264\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-944","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefits","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"22264000","decimals":-3}]},{"name":"rpt:f-945","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefits","xbrl:period":"2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"21998000","decimals":-3}]},{"name":"rpt:f-946","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"163000","decimals":-3}]},{"name":"rpt:f-947","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"382000","decimals":-3}]},{"name":"rpt:f-948","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1415000","decimals":-3}]},{"name":"rpt:f-949","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"648000","decimals":-3}]},{"name":"rpt:f-950","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefits","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"23516000","decimals":-3}]},{"name":"rpt:f-951","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefits","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"22264000","decimals":-3}]},{"name":"rpt:f-952","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefits","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"23500000","decimals":-5}]},{"name":"rpt:f-953","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefits","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"22300000","decimals":-5}]},{"name":"rpt:f-954","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0"}]},{"name":"rpt:f-955","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"Net Income (Loss) Per Common Share<div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The following table sets forth the computation of basic and diluted net income (loss) per common share for the periods indicated (in thousands, except per share data):</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.742%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:56.395%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.255%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.255%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.259%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"15\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Years Ended December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2018</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Numerator:</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Net income (loss)</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">33,484\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(17,694)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(19,298)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Denominator:</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Weighted-average common shares \u2014 basic</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">59,074\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">54,993\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">52,609\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Effect of dilutive potential common shares</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2,924\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Weighted-average common shares \u2014 diluted</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">61,998\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">54,993\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">52,609\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr style=\"height:9pt\"><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Basic net income (loss) per common share</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">0.57\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(0.32)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(0.37)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Diluted net income (loss) per common share</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">0.54\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(0.32)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(0.37)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Potentially dilutive shares excluded, weighted-average</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">753\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">6,607\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">5,833\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Unvested restricted stock awards are included in the calculation of basic weighted-average shares because such shares are participating securities; however, the impact was immaterial.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Potentially dilutive shares have been excluded from the computation of diluted net income (loss) per common share when their effect is antidilutive. These antidilutive shares were primarily from stock options and RSUs. For each of the periods presented where the Company reported a net loss, the effect of all potentially dilutive securities would be antidilutive, and as a result diluted net loss per common share is the same as basic net loss per common share.</span></div>","language":"en-us"}]},{"name":"rpt:f-956","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The following table sets forth the computation of basic and diluted net income (loss) per common share for the periods indicated (in thousands, except per share data):</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.742%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:56.395%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.255%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.255%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.259%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"15\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Years Ended December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2018</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Numerator:</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Net income (loss)</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">33,484\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(17,694)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(19,298)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Denominator:</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Weighted-average common shares \u2014 basic</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">59,074\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">54,993\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">52,609\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Effect of dilutive potential common shares</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">2,924\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Weighted-average common shares \u2014 diluted</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">61,998\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">54,993\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">52,609\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr style=\"height:9pt\"><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:3pt double #000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Basic net income (loss) per common share</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">0.57\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(0.32)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(0.37)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Diluted net income (loss) per common share</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">0.54\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(0.32)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(0.37)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Potentially dilutive shares excluded, weighted-average</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">753\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">6,607\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">5,833\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-957","factDimensions":{"xbrl:concept":"us-gaap:ProfitLoss","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"33484000","decimals":-3}]},{"name":"rpt:f-958","factDimensions":{"xbrl:concept":"us-gaap:ProfitLoss","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-17694000","decimals":-3}]},{"name":"rpt:f-959","factDimensions":{"xbrl:concept":"us-gaap:ProfitLoss","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-19298000","decimals":-3}]},{"name":"rpt:f-960","factDimensions":{"xbrl:concept":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasic","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"59074000","decimals":-3}]},{"name":"rpt:f-961","factDimensions":{"xbrl:concept":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasic","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"54993000","decimals":-3}]},{"name":"rpt:f-962","factDimensions":{"xbrl:concept":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasic","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"52609000","decimals":-3}]},{"name":"rpt:f-963","factDimensions":{"xbrl:concept":"us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"2924000","decimals":-3}]},{"name":"rpt:f-964","factDimensions":{"xbrl:concept":"us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-965","factDimensions":{"xbrl:concept":"us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-966","factDimensions":{"xbrl:concept":"us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"61998000","decimals":-3}]},{"name":"rpt:f-967","factDimensions":{"xbrl:concept":"us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"54993000","decimals":-3}]},{"name":"rpt:f-968","factDimensions":{"xbrl:concept":"us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"52609000","decimals":-3}]},{"name":"rpt:f-969","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareBasic","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"0.57","decimals":2}]},{"name":"rpt:f-970","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareBasic","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"-0.32","decimals":2}]},{"name":"rpt:f-971","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareBasic","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"-0.37","decimals":2}]},{"name":"rpt:f-972","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareDiluted","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"0.54","decimals":2}]},{"name":"rpt:f-973","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareDiluted","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"-0.32","decimals":2}]},{"name":"rpt:f-974","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareDiluted","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"-0.37","decimals":2}]},{"name":"rpt:f-975","factDimensions":{"xbrl:concept":"us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"753000","decimals":-3}]},{"name":"rpt:f-976","factDimensions":{"xbrl:concept":"us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"6607000","decimals":-3}]},{"name":"rpt:f-977","factDimensions":{"xbrl:concept":"us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"5833000","decimals":-3}]},{"name":"rpt:f-978","factDimensions":{"xbrl:concept":"us-gaap:SegmentReportingDisclosureTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"Revenue from Contracts with Customers<div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company develops, markets and sells communications access systems and software, and there are no segment managers who are held accountable for operations, operating results and plans for levels or components below the Company unit level. Accordingly, the Company is considered to be in a single reporting segment and operating unit structure. The Company\u2019s chief operating decision maker is the Company\u2019s Chief Executive Officer, who reviews financial information presented on a Company-wide basis, for purposes of allocating resources and evaluating financial performance.</span></div><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Geographic Information:</span></div><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The following is a summary of revenue by geographic region based upon the location of the customers (in thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.742%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:56.395%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.255%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.255%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.259%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"15\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Years Ended December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2018</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">United States</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">469,649\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">365,586\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">386,341\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Europe</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">22,924\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">11,480\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">8,858\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Canada</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">16,842\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">14,531\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">10,542\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Middle East</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">14,071\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">18,664\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">18,814\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Caribbean</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">9,864\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">5,809\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">7,075\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Other</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">7,889\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">8,260\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">9,690\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt 0 7.75pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">541,239\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">424,330\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">441,320\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company\u2019s property and equipment, net of accumulated depreciation, are located in the following geographical areas (in thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.888%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:70.610%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.609%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.235%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.609%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.237%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"9\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">United States</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">19,383\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">20,510\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">China</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">998\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,017\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt 0 7.75pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">20,381\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">21,527\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Contract Asset</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The primary contract asset is revenue recognized on professional services contracts where the services are transferred to the customer over time, which has yet to be billed, and is classified within accounts receivable.\u00a0Amounts are billed in accordance with the agreed-upon contractual terms.\u00a0The balance at December\u00a031, 2019 was $5.0 million of which $0.4 million remained in the Company's Consolidated Balance Sheet at December\u00a031, 2020.\u00a0The closing balance as of December\u00a031, 2020 was $2.3 million of which the Company expects to bill 92% of the balance during 2021. The decrease in the contract asset was driven by billings for past services as well as the timing and volume of professional services contracts.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Contract Liability</span></div><div style=\"margin-top:12pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Deferred revenue consisted of the following (in thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:5pt\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:67.274%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.532%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:13.541%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.410%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:13.543%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"9\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Current:</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Products and services</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">14,651\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">12,480\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Extended warranty</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">4,538\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">4,678\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">19,189\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">17,158\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Long-term:</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Products and services</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,879\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">790\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Extended warranty</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">18,025\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">17,550\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">19,904\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">18,340\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">39,093\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">35,498\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The\u00a0increase\u00a0in the deferred revenue balance for the\u00a0year ended\u00a0December\u00a031, 2020\u00a0is primarily driven by cash payments received or due in advance of satisfying the Company's performance obligations, offset by\u00a0$15.8 million\u00a0of revenue recognized that was included in the deferred revenue balance at the beginning of the year.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Revenue allocated to remaining performance obligations represent contract revenue that has not yet been recognized, which includes deferred revenue and amounts that will be invoiced and recognized as revenue in future periods. This amount was </span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">$71.1 million as of December\u00a031, 2020, and the Company expects to recognize 40% of such revenue over the next 12 months and the remainder thereafter.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Contract Costs</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company capitalizes certain sales commissions related primarily to extended warranty support for which the expected amortization period is greater than one year. As of December\u00a031, 2020, the unamortized balance of deferred commissions was\u00a0$0.7 million.\u00a0For the year ended December\u00a031, 2020, the amount of amortization was\u00a0$0.2 million,\u00a0and there was no impairment loss in relation to the costs capitalized.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Concentration of Customer Risk </span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Concentrations of credit risk in relation to customers with an accounts receivable balance of 10% or greater of total accounts receivable and customers with net revenue of 10% or greater of total revenue are presented below for the periods indicated.</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:32.379%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.408%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.595%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.408%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.595%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.408%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.595%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.408%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.595%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.408%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.601%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"9\" style=\"border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Percentage of Accounts Receivable</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"15\" style=\"border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Percentage of Revenue</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"9\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">December 31,</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"15\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Years Ended December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%\">\u00a0\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019</span></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2018</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Lumen Technologies, Inc. (formerly CenturyLink, Inc.)</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u00a0\u00a0</span></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom\"><div style=\"text-align:center\"><span style=\"color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:107%\">&lt; </span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:107%\">10%</span></div></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">17%</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">11%</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">15%</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">18%</span></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr style=\"height:6pt\"><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-979","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromExternalCustomersByGeographicAreasTableTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The following is a summary of revenue by geographic region based upon the location of the customers (in thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.742%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:56.395%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.255%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.255%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.259%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"15\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Years Ended December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2018</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">United States</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">469,649\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">365,586\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">386,341\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Europe</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">22,924\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">11,480\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">8,858\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Canada</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">16,842\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">14,531\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">10,542\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Middle East</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">14,071\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">18,664\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">18,814\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Caribbean</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">9,864\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">5,809\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">7,075\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Other</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">7,889\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">8,260\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">9,690\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt 0 7.75pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">541,239\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">424,330\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">441,320\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-980","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"country:US"},"factValues":[{"value":"469649000","decimals":-3}]},{"name":"rpt:f-981","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"country:US"},"factValues":[{"value":"365586000","decimals":-3}]},{"name":"rpt:f-982","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"country:US"},"factValues":[{"value":"386341000","decimals":-3}]},{"name":"rpt:f-983","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"srt:EuropeMember"},"factValues":[{"value":"22924000","decimals":-3}]},{"name":"rpt:f-984","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"srt:EuropeMember"},"factValues":[{"value":"11480000","decimals":-3}]},{"name":"rpt:f-985","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"srt:EuropeMember"},"factValues":[{"value":"8858000","decimals":-3}]},{"name":"rpt:f-986","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"country:CA"},"factValues":[{"value":"16842000","decimals":-3}]},{"name":"rpt:f-987","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"country:CA"},"factValues":[{"value":"14531000","decimals":-3}]},{"name":"rpt:f-988","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"country:CA"},"factValues":[{"value":"10542000","decimals":-3}]},{"name":"rpt:f-989","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"us-gaap:MiddleEastMember"},"factValues":[{"value":"14071000","decimals":-3}]},{"name":"rpt:f-990","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"us-gaap:MiddleEastMember"},"factValues":[{"value":"18664000","decimals":-3}]},{"name":"rpt:f-991","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"us-gaap:MiddleEastMember"},"factValues":[{"value":"18814000","decimals":-3}]},{"name":"rpt:f-992","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"calx:CaribbeanMember"},"factValues":[{"value":"9864000","decimals":-3}]},{"name":"rpt:f-993","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"calx:CaribbeanMember"},"factValues":[{"value":"5809000","decimals":-3}]},{"name":"rpt:f-994","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"calx:CaribbeanMember"},"factValues":[{"value":"7075000","decimals":-3}]},{"name":"rpt:f-995","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"calx:SegmentGeographicalOtherCountriesMember"},"factValues":[{"value":"7889000","decimals":-3}]},{"name":"rpt:f-996","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"calx:SegmentGeographicalOtherCountriesMember"},"factValues":[{"value":"8260000","decimals":-3}]},{"name":"rpt:f-997","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"calx:SegmentGeographicalOtherCountriesMember"},"factValues":[{"value":"9690000","decimals":-3}]},{"name":"rpt:f-998","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"541239000","decimals":-3}]},{"name":"rpt:f-999","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"424330000","decimals":-3}]},{"name":"rpt:f-1000","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"441320000","decimals":-3}]},{"name":"rpt:f-1001","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfEntityWideDisclosureOnGeographicAreasLongLivedAssetsInIndividualForeignCountriesByCountryTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The Company\u2019s property and equipment, net of accumulated depreciation, are located in the following geographical areas (in thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.888%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:70.610%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.609%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.235%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.609%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.237%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"9\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">United States</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">19,383\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">20,510\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">China</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">998\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,017\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt 0 7.75pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">20,381\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">21,527\u00a0</span></td><td style=\"background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-1002","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentNet","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"country:US"},"factValues":[{"value":"19383000","decimals":-3}]},{"name":"rpt:f-1003","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentNet","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"country:US"},"factValues":[{"value":"20510000","decimals":-3}]},{"name":"rpt:f-1004","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentNet","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"country:CN"},"factValues":[{"value":"998000","decimals":-3}]},{"name":"rpt:f-1005","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentNet","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"country:CN"},"factValues":[{"value":"1017000","decimals":-3}]},{"name":"rpt:f-1006","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentNet","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"20381000","decimals":-3}]},{"name":"rpt:f-1007","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentNet","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"21527000","decimals":-3}]},{"name":"rpt:f-1008","factDimensions":{"xbrl:concept":"us-gaap:ContractWithCustomerAssetNet","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"5000000.0","decimals":-5}]},{"name":"rpt:f-1009","factDimensions":{"xbrl:concept":"calx:ContractwithCustomerAssetPriorPeriodNotRecognized","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"400000","decimals":-5}]},{"name":"rpt:f-1010","factDimensions":{"xbrl:concept":"us-gaap:ContractWithCustomerAssetNet","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2300000","decimals":-5}]},{"name":"rpt:f-1011","factDimensions":{"xbrl:concept":"calx:ContractWithCustomerAssetExpectedToBeBilledRemainderOfYearPercent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.92","decimals":2}]},{"name":"rpt:f-1012","factDimensions":{"xbrl:concept":"us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:12pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Deferred revenue consisted of the following (in thousands):</span></div><div style=\"margin-bottom:5pt;margin-top:5pt\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:99.853%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:67.274%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.532%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:13.541%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.410%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:13.543%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"9\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Current:</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Products and services</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">14,651\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">12,480\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Extended warranty</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">4,538\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">4,678\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">19,189\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">17,158\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Long-term:</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Products and services</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,879\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">790\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Extended warranty</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">18,025\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">17,550\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">19,904\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">18,340\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">39,093\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">35,498\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-1013","factDimensions":{"xbrl:concept":"us-gaap:ContractWithCustomerLiabilityCurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:DeferredRevenueArrangementTypeAxis":"calx:ProductAndServicesMember"},"factValues":[{"value":"14651000","decimals":-3}]},{"name":"rpt:f-1014","factDimensions":{"xbrl:concept":"us-gaap:ContractWithCustomerLiabilityCurrent","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:DeferredRevenueArrangementTypeAxis":"calx:ProductAndServicesMember"},"factValues":[{"value":"12480000","decimals":-3}]},{"name":"rpt:f-1015","factDimensions":{"xbrl:concept":"us-gaap:ContractWithCustomerLiabilityCurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:DeferredRevenueArrangementTypeAxis":"calx:ExtendedWarrantyMember"},"factValues":[{"value":"4538000","decimals":-3}]},{"name":"rpt:f-1016","factDimensions":{"xbrl:concept":"us-gaap:ContractWithCustomerLiabilityCurrent","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:DeferredRevenueArrangementTypeAxis":"calx:ExtendedWarrantyMember"},"factValues":[{"value":"4678000","decimals":-3}]},{"name":"rpt:f-1017","factDimensions":{"xbrl:concept":"us-gaap:ContractWithCustomerLiabilityCurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"19189000","decimals":-3}]},{"name":"rpt:f-1018","factDimensions":{"xbrl:concept":"us-gaap:ContractWithCustomerLiabilityCurrent","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"17158000","decimals":-3}]},{"name":"rpt:f-1019","factDimensions":{"xbrl:concept":"us-gaap:ContractWithCustomerLiabilityNoncurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:DeferredRevenueArrangementTypeAxis":"calx:ProductAndServicesMember"},"factValues":[{"value":"1879000","decimals":-3}]},{"name":"rpt:f-1020","factDimensions":{"xbrl:concept":"us-gaap:ContractWithCustomerLiabilityNoncurrent","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:DeferredRevenueArrangementTypeAxis":"calx:ProductAndServicesMember"},"factValues":[{"value":"790000","decimals":-3}]},{"name":"rpt:f-1021","factDimensions":{"xbrl:concept":"us-gaap:ContractWithCustomerLiabilityNoncurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:DeferredRevenueArrangementTypeAxis":"calx:ExtendedWarrantyMember"},"factValues":[{"value":"18025000","decimals":-3}]},{"name":"rpt:f-1022","factDimensions":{"xbrl:concept":"us-gaap:ContractWithCustomerLiabilityNoncurrent","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:DeferredRevenueArrangementTypeAxis":"calx:ExtendedWarrantyMember"},"factValues":[{"value":"17550000","decimals":-3}]},{"name":"rpt:f-1023","factDimensions":{"xbrl:concept":"us-gaap:ContractWithCustomerLiabilityNoncurrent","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"19904000","decimals":-3}]},{"name":"rpt:f-1024","factDimensions":{"xbrl:concept":"us-gaap:ContractWithCustomerLiabilityNoncurrent","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"18340000","decimals":-3}]},{"name":"rpt:f-1025","factDimensions":{"xbrl:concept":"us-gaap:ContractWithCustomerLiability","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"39093000","decimals":-3}]},{"name":"rpt:f-1026","factDimensions":{"xbrl:concept":"us-gaap:ContractWithCustomerLiability","xbrl:period":"2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"35498000","decimals":-3}]},{"name":"rpt:f-1027","factDimensions":{"xbrl:concept":"us-gaap:ContractWithCustomerLiabilityRevenueRecognized","xbrl:period":"2020-09-27T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"15800000","decimals":-5}]},{"name":"rpt:f-1028","factDimensions":{"xbrl:concept":"us-gaap:RevenueRemainingPerformanceObligation","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"71100000","decimals":-5}]},{"name":"rpt:f-1029","factDimensions":{"xbrl:concept":"us-gaap:RevenueRemainingPerformanceObligationPercentage","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis":"2021-01-01"},"factValues":[{"value":"0.40","decimals":2}]},{"name":"rpt:f-1030","factDimensions":{"xbrl:concept":"us-gaap:CapitalizedContractCostGross","xbrl:period":"2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"700000","decimals":-5}]},{"name":"rpt:f-1031","factDimensions":{"xbrl:concept":"us-gaap:CapitalizedContractCostAmortization","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"200000","decimals":-5}]},{"name":"rpt:f-1032","factDimensions":{"xbrl:concept":"us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">Concentrations of credit risk in relation to customers with an accounts receivable balance of 10% or greater of total accounts receivable and customers with net revenue of 10% or greater of total revenue are presented below for the periods indicated.</span></div><div style=\"margin-bottom:5pt;margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:100.000%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:32.379%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.408%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.595%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.408%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.595%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.408%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.595%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.408%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.595%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.408%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.601%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"9\" style=\"border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Percentage of Accounts Receivable</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"15\" style=\"border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Percentage of Revenue</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"9\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">December 31,</span></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"15\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">Years Ended December 31,</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%\">\u00a0\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019</span></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2020</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2018</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Lumen Technologies, Inc. (formerly CenturyLink, Inc.)</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u00a0\u00a0</span></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom\"><div style=\"text-align:center\"><span style=\"color:#000000;font-family:'Calibri',sans-serif;font-size:11pt;font-weight:400;line-height:107%\">&lt; </span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:107%\">10%</span></div></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">17%</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">11%</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">15%</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">\u00a0</span></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">18%</span></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr><tr style=\"height:6pt\"><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-1033","factDimensions":{"xbrl:concept":"us-gaap:ConcentrationRiskPercentage1","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:ConcentrationRiskByTypeAxis":"us-gaap:CustomerConcentrationRiskMember","us-gaap:ConcentrationRiskByBenchmarkAxis":"us-gaap:AccountsReceivableMember","srt:MajorCustomersAxis":"calx:CenturyLinkDomain"},"factValues":[{"value":"10","decimals":2}]},{"name":"rpt:f-1034","factDimensions":{"xbrl:concept":"us-gaap:ConcentrationRiskPercentage1","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:ConcentrationRiskByTypeAxis":"us-gaap:CustomerConcentrationRiskMember","us-gaap:ConcentrationRiskByBenchmarkAxis":"us-gaap:AccountsReceivableMember","srt:MajorCustomersAxis":"calx:CenturyLinkDomain"},"factValues":[{"value":"0.17","decimals":2}]},{"name":"rpt:f-1035","factDimensions":{"xbrl:concept":"us-gaap:ConcentrationRiskPercentage1","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:ConcentrationRiskByBenchmarkAxis":"us-gaap:RevenueFromContractWithCustomerMember","us-gaap:ConcentrationRiskByTypeAxis":"us-gaap:CustomerConcentrationRiskMember","srt:MajorCustomersAxis":"calx:CenturyLinkDomain"},"factValues":[{"value":"0.11","decimals":2}]},{"name":"rpt:f-1036","factDimensions":{"xbrl:concept":"us-gaap:ConcentrationRiskPercentage1","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:ConcentrationRiskByBenchmarkAxis":"us-gaap:RevenueFromContractWithCustomerMember","us-gaap:ConcentrationRiskByTypeAxis":"us-gaap:CustomerConcentrationRiskMember","srt:MajorCustomersAxis":"calx:CenturyLinkDomain"},"factValues":[{"value":"0.15","decimals":2}]},{"name":"rpt:f-1037","factDimensions":{"xbrl:concept":"us-gaap:ConcentrationRiskPercentage1","xbrl:period":"2018-01-01T00:00:00/2019-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:ConcentrationRiskByBenchmarkAxis":"us-gaap:RevenueFromContractWithCustomerMember","us-gaap:ConcentrationRiskByTypeAxis":"us-gaap:CustomerConcentrationRiskMember","srt:MajorCustomersAxis":"calx:CenturyLinkDomain"},"factValues":[{"value":"0.18","decimals":2}]},{"name":"rpt:f-1038","factDimensions":{"xbrl:concept":"us-gaap:DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"Product Line Divestiture In February 2018, the Company sold its outdoor cabinet product line to Clearfield, Inc. (\u201cClearfield\u201d) for $10.4 million in cash as well as the assumption by Clearfield of the related product warranty liabilities and open purchase order commitments with a CM. The Company transferred $2.1 million in net inventory and agreed to solicit orders on Clearfield\u2019s behalf on the newly transferred outdoor cabinets product lines free of charge for 15 months. The Company established a liability of $1.6 million in deferred revenue for providing this service and amortized this amount to service revenue over the corresponding 15-month period. The Company also recognized a $6.7 million gain for the year ended December 31, 2018 within operating expenses in the accompanying Consolidated Statements of Comprehensive Loss.","language":"en-us"}]},{"name":"rpt:f-1039","factDimensions":{"xbrl:concept":"us-gaap:DisposalGroupIncludingDiscontinuedOperationConsideration","xbrl:period":"2018-03-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis":"calx:OutdoorCabinetProductLineMember","srt:CounterpartyNameAxis":"calx:ClearfieldInc.Member"},"factValues":[{"value":"10400000","decimals":-5}]},{"name":"rpt:f-1040","factDimensions":{"xbrl:concept":"us-gaap:DisposalGroupIncludingDiscontinuedOperationInventory1","xbrl:period":"2018-03-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis":"calx:OutdoorCabinetProductLineMember","srt:CounterpartyNameAxis":"calx:ClearfieldInc.Member"},"factValues":[{"value":"2100000","decimals":-5}]},{"name":"rpt:f-1041","factDimensions":{"xbrl:concept":"calx:DisposalGroupPeriodOfNewOrdersSolicitation","xbrl:period":"2018-02-01T00:00:00/2018-03-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis":"calx:OutdoorCabinetProductLineMember","srt:CounterpartyNameAxis":"calx:ClearfieldInc.Member"},"factValues":[{"value":"P15M"}]},{"name":"rpt:f-1042","factDimensions":{"xbrl:concept":"us-gaap:DisposalGroupIncludingDiscontinuedOperationDeferredRevenue","xbrl:period":"2018-03-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis":"calx:OutdoorCabinetProductLineMember","srt:CounterpartyNameAxis":"calx:ClearfieldInc.Member"},"factValues":[{"value":"1600000","decimals":-5}]},{"name":"rpt:f-1043","factDimensions":{"xbrl:concept":"us-gaap:DisposalGroupNotDiscontinuedOperationGainLossOnDisposal","xbrl:period":"2019-01-01T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis":"calx:OutdoorCabinetProductLineMember","srt:CounterpartyNameAxis":"calx:ClearfieldInc.Member"},"factValues":[{"value":"6700000","decimals":-5}]},{"name":"rpt:f-1044","factDimensions":{"xbrl:concept":"us-gaap:QuarterlyFinancialInformationTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"Quarterly Financial Data\u2014Unaudited<div><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%\">The Company\u2019s fiscal year begins on January 1st and ends on December 31</span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:115%;position:relative;top:-3.5pt;vertical-align:baseline\">st</span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%\">. Quarterly periods are based on a 4-4-5 fiscal calendar with the first quarter ending on the Saturday closest to March 31</span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:115%;position:relative;top:-3.5pt;vertical-align:baseline\">st</span><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:115%\">. As a result, the Company had one fewer day in the first quarter of 2020 and two more days in the fourth quarter of 2020 than in the respective 2019 periods.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The following table presents selected unaudited quarterly financial data of the Company (in thousands, except per share data). The Company\u2019s quarterly results of operations for these periods are not necessarily indicative of future results of operations.</span></div><div style=\"margin-bottom:5pt;margin-top:10pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.742%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:41.568%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.420%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.420%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.420%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.424%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"21\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2020 Quarter Ended</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">March 28</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">June 27</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">September 26</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">December 31</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Revenue</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">101,682\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">119,023\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">150,508\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">170,026\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Gross profit</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">45,624\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">56,405\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">75,975\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">89,015\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Operating income (loss)</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(6,340)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(3,338)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">21,750\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">24,774\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Net income (loss)</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(6,944)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(4,212)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">20,538\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">24,102\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Net income (loss) per common share, basic</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(0.12)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(0.07)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">0.34\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">0.39\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Net income (loss) per common share, diluted</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(0.12)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(0.07)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">0.32\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">0.37\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr style=\"height:12pt\"><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"21\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019 Quarter Ended</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">March 30</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">June 29</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">September 28</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">December 31</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Revenue</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">89,350\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">100,304\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">114,485\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">120,191\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Gross profit</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">38,343\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">44,668\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">50,202\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">54,712\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Operating income (loss)</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(9,113)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(4,931)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(2,851)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,494\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Net income (loss)</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(9,767)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(5,045)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(3,379)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">497\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Net income (loss) per common share, basic and diluted</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(0.18)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(0.09)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(0.06)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">0.01\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-1045","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock","xbrl:period":"2020-01-01T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%\">The following table presents selected unaudited quarterly financial data of the Company (in thousands, except per share data). The Company\u2019s quarterly results of operations for these periods are not necessarily indicative of future results of operations.</span></div><div style=\"margin-bottom:5pt;margin-top:10pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;vertical-align:top;width:88.742%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:41.568%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.420%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.420%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.420%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.612%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:11.424%\"></td><td style=\"width:0.1%\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"21\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2020 Quarter Ended</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">March 28</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">June 27</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">September 26</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">December 31</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Revenue</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">101,682\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">119,023\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">150,508\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">170,026\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Gross profit</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">45,624\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">56,405\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">75,975\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">89,015\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Operating income (loss)</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(6,340)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(3,338)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">21,750\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">24,774\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Net income (loss)</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(6,944)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(4,212)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">20,538\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">24,102\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Net income (loss) per common share, basic</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(0.12)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(0.07)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">0.34\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">0.39\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Net income (loss) per common share, diluted</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(0.12)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(0.07)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">0.32\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">0.37\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr style=\"height:12pt\"><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"21\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">2019 Quarter Ended</span></td></tr><tr><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">March 30</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">June 29</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">September 28</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:0 1pt\"></td><td colspan=\"3\" style=\"border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%\">December 31</span></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Revenue</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">89,350\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">100,304\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">114,485\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">120,191\u00a0</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Gross profit</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">38,343\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">44,668\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">50,202\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">54,712\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Operating income (loss)</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(9,113)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(4,931)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(2,851)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">1,494\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Net income (loss)</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(9,767)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(5,045)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(3,379)</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">497\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">Net income (loss) per common share, basic and diluted</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(0.18)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(0.09)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">(0.06)</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%\">0.01\u00a0</span></td><td style=\"background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr><tr><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-1046","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2020-01-01T00:00:00/2020-03-29T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"101682000","decimals":-3}]},{"name":"rpt:f-1047","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2020-03-29T00:00:00/2020-06-28T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"119023000","decimals":-3}]},{"name":"rpt:f-1048","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2020-06-28T00:00:00/2020-09-27T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"150508000","decimals":-3}]},{"name":"rpt:f-1049","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2020-09-27T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"170026000","decimals":-3}]},{"name":"rpt:f-1050","factDimensions":{"xbrl:concept":"us-gaap:GrossProfit","xbrl:period":"2020-01-01T00:00:00/2020-03-29T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"45624000","decimals":-3}]},{"name":"rpt:f-1051","factDimensions":{"xbrl:concept":"us-gaap:GrossProfit","xbrl:period":"2020-03-29T00:00:00/2020-06-28T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"56405000","decimals":-3}]},{"name":"rpt:f-1052","factDimensions":{"xbrl:concept":"us-gaap:GrossProfit","xbrl:period":"2020-06-28T00:00:00/2020-09-27T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"75975000","decimals":-3}]},{"name":"rpt:f-1053","factDimensions":{"xbrl:concept":"us-gaap:GrossProfit","xbrl:period":"2020-09-27T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"89015000","decimals":-3}]},{"name":"rpt:f-1054","factDimensions":{"xbrl:concept":"us-gaap:OperatingIncomeLoss","xbrl:period":"2020-01-01T00:00:00/2020-03-29T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-6340000","decimals":-3}]},{"name":"rpt:f-1055","factDimensions":{"xbrl:concept":"us-gaap:OperatingIncomeLoss","xbrl:period":"2020-03-29T00:00:00/2020-06-28T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-3338000","decimals":-3}]},{"name":"rpt:f-1056","factDimensions":{"xbrl:concept":"us-gaap:OperatingIncomeLoss","xbrl:period":"2020-06-28T00:00:00/2020-09-27T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"21750000","decimals":-3}]},{"name":"rpt:f-1057","factDimensions":{"xbrl:concept":"us-gaap:OperatingIncomeLoss","xbrl:period":"2020-09-27T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"24774000","decimals":-3}]},{"name":"rpt:f-1058","factDimensions":{"xbrl:concept":"us-gaap:ProfitLoss","xbrl:period":"2020-01-01T00:00:00/2020-03-29T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-6944000","decimals":-3}]},{"name":"rpt:f-1059","factDimensions":{"xbrl:concept":"us-gaap:ProfitLoss","xbrl:period":"2020-03-29T00:00:00/2020-06-28T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-4212000","decimals":-3}]},{"name":"rpt:f-1060","factDimensions":{"xbrl:concept":"us-gaap:ProfitLoss","xbrl:period":"2020-06-28T00:00:00/2020-09-27T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"20538000","decimals":-3}]},{"name":"rpt:f-1061","factDimensions":{"xbrl:concept":"us-gaap:ProfitLoss","xbrl:period":"2020-09-27T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"24102000","decimals":-3}]},{"name":"rpt:f-1062","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareBasic","xbrl:period":"2020-01-01T00:00:00/2020-03-29T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"-0.12","decimals":2}]},{"name":"rpt:f-1063","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareBasic","xbrl:period":"2020-03-29T00:00:00/2020-06-28T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"-0.07","decimals":2}]},{"name":"rpt:f-1064","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareBasic","xbrl:period":"2020-06-28T00:00:00/2020-09-27T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"0.34","decimals":2}]},{"name":"rpt:f-1065","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareBasic","xbrl:period":"2020-09-27T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"0.39","decimals":2}]},{"name":"rpt:f-1066","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareDiluted","xbrl:period":"2020-01-01T00:00:00/2020-03-29T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"-0.12","decimals":2}]},{"name":"rpt:f-1067","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareDiluted","xbrl:period":"2020-03-29T00:00:00/2020-06-28T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"-0.07","decimals":2}]},{"name":"rpt:f-1068","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareDiluted","xbrl:period":"2020-06-28T00:00:00/2020-09-27T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"0.32","decimals":2}]},{"name":"rpt:f-1069","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareDiluted","xbrl:period":"2020-09-27T00:00:00/2021-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"0.37","decimals":2}]},{"name":"rpt:f-1070","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2019-01-01T00:00:00/2019-03-31T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"89350000","decimals":-3}]},{"name":"rpt:f-1071","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2019-03-31T00:00:00/2019-06-30T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"100304000","decimals":-3}]},{"name":"rpt:f-1072","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2019-06-30T00:00:00/2019-09-29T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"114485000","decimals":-3}]},{"name":"rpt:f-1073","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax","xbrl:period":"2019-09-29T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"120191000","decimals":-3}]},{"name":"rpt:f-1074","factDimensions":{"xbrl:concept":"us-gaap:GrossProfit","xbrl:period":"2019-01-01T00:00:00/2019-03-31T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"38343000","decimals":-3}]},{"name":"rpt:f-1075","factDimensions":{"xbrl:concept":"us-gaap:GrossProfit","xbrl:period":"2019-03-31T00:00:00/2019-06-30T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"44668000","decimals":-3}]},{"name":"rpt:f-1076","factDimensions":{"xbrl:concept":"us-gaap:GrossProfit","xbrl:period":"2019-06-30T00:00:00/2019-09-29T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"50202000","decimals":-3}]},{"name":"rpt:f-1077","factDimensions":{"xbrl:concept":"us-gaap:GrossProfit","xbrl:period":"2019-09-29T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"54712000","decimals":-3}]},{"name":"rpt:f-1078","factDimensions":{"xbrl:concept":"us-gaap:OperatingIncomeLoss","xbrl:period":"2019-01-01T00:00:00/2019-03-31T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-9113000","decimals":-3}]},{"name":"rpt:f-1079","factDimensions":{"xbrl:concept":"us-gaap:OperatingIncomeLoss","xbrl:period":"2019-03-31T00:00:00/2019-06-30T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-4931000","decimals":-3}]},{"name":"rpt:f-1080","factDimensions":{"xbrl:concept":"us-gaap:OperatingIncomeLoss","xbrl:period":"2019-06-30T00:00:00/2019-09-29T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-2851000","decimals":-3}]},{"name":"rpt:f-1081","factDimensions":{"xbrl:concept":"us-gaap:OperatingIncomeLoss","xbrl:period":"2019-09-29T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1494000","decimals":-3}]},{"name":"rpt:f-1082","factDimensions":{"xbrl:concept":"us-gaap:ProfitLoss","xbrl:period":"2019-01-01T00:00:00/2019-03-31T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-9767000","decimals":-3}]},{"name":"rpt:f-1083","factDimensions":{"xbrl:concept":"us-gaap:ProfitLoss","xbrl:period":"2019-03-31T00:00:00/2019-06-30T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-5045000","decimals":-3}]},{"name":"rpt:f-1084","factDimensions":{"xbrl:concept":"us-gaap:ProfitLoss","xbrl:period":"2019-06-30T00:00:00/2019-09-29T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-3379000","decimals":-3}]},{"name":"rpt:f-1085","factDimensions":{"xbrl:concept":"us-gaap:ProfitLoss","xbrl:period":"2019-09-29T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"497000","decimals":-3}]},{"name":"rpt:f-1086","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareBasicAndDiluted","xbrl:period":"2019-01-01T00:00:00/2019-03-31T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"-0.18","decimals":2}]},{"name":"rpt:f-1087","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareBasicAndDiluted","xbrl:period":"2019-03-31T00:00:00/2019-06-30T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"-0.09","decimals":2}]},{"name":"rpt:f-1088","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareBasicAndDiluted","xbrl:period":"2019-06-30T00:00:00/2019-09-29T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"-0.06","decimals":2}]},{"name":"rpt:f-1089","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareBasicAndDiluted","xbrl:period":"2019-09-29T00:00:00/2020-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"0.01","decimals":2}]}]}}