{"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-26-000005","cik":"http://www.sec.gov/CIK","dei":"http://xbrl.sec.gov/dei/2025","calx":"http://www.calix.com/20251231","srt":"http://fasb.org/srt/2025","dtr-types":"http://www.xbrl.org/dtr/type/2024-01-31","us-gaap":"http://fasb.org/us-gaap/2025","ecd":"http://xbrl.sec.gov/ecd/2025","xbrli":"http://www.xbrl.org/2003/instance","cyd":"http://xbrl.sec.gov/cyd/2025","country":"http://xbrl.sec.gov/country/2025","stpr":"http://xbrl.sec.gov/stpr/2025"},"description":"10-K 0001406666-26-000005 (CIK 0001406666) projected from XBRL by xbrlkit"},"xbrlModel":{"name":"rpt:Report","modelType":"xbrl:report","properties":[{"property":"xbrl:reportFilingDate","value":"2026-02-20"}],"entities":[{"name":"cik:0001406666"}],"units":[{"name":"calx:segment","dataType":"xs:decimal"},{"name":"iso4217:USD","dataType":"xbrlr:monetary"},{"name":"xbrla:shares","dataType":"xbrla:sharesType"},{"name":"rpt:unit-4","dataType":"xbrlr:perShare","compositeUnitRepresentation":["iso4217:USD/xbrla:shares"]},{"name":"utr:sqft","dataType":"xs:decimal"},{"name":"calx:plan","dataType":"xs:decimal"},{"name":"calx:period","dataType":"xs:decimal"}],"dataTypes":[{"name":"dei:nonemptySequenceNumberItemType","baseType":"xs:token"},{"name":"dei:internationalNameItemType","baseType":"xs:token"},{"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"}],"concepts":[{"name":"calx:AccruedCustomerAdvancesOrRebatesCurrent","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:AccruedFreightCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"calx:AccruedOperationsCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"calx:AccruedPropertyPlantAndEquipmentCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"calx:CashCashEquivalentsAndMarketableSecurities","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"calx:CashCashEquivalentsAndMarketableSecuritiesPolicyPolicyTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"calx:ChangeInCapitalExpendituresIncurredButNotYetPaid","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"calx:CommonStockCapitalSharesReservedForFutureIssuanceSubjectToStockholderApproval","dataType":"xbrla:sharesType","periodType":"instant","nillable":true},{"name":"calx:ContractWithCustomerAssetExpectedToBeBilledYearOnePercent","dataType":"xbrlr:percent","periodType":"instant","nillable":true},{"name":"calx:CostOfGoodsAndServicesSoldAdjusted","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"calx:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrentAndCashEquivalentsAtCarryingValue","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"calx:DeferredTaxAssetLeasingArrangements","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"calx:DeferredTaxAssetsDeferredExpenseCapitalizedResearchAndDevelopmentCosts","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"calx:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensationAmount","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"calx:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensationPercent","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"calx:EffectiveIncomeTaxRateReconciliationRepatriationOfForeignEarningsLossPercent","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"calx:EffectiveIncomeTaxRateReconciliationTaxAttributeExpirationPercent","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"calx:EffectiveIncomeTaxRateReconciliationTaxCreditForeignAmountNetting","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"calx:EffectiveIncomeTaxRateReconciliationTaxCreditForeignPercentNetting","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:GeneralAndAdministrativeOperatingExpenseAdjusted","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"calx:LesseeOperatingLeaseLiabilityTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"calx:MinimumExercisePriceOfStockOptionPercent","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"calx:NumberOfEmployeeStockPurchasePlans","dataType":"xs:integer","periodType":"instant","nillable":true},{"name":"calx:OperatingLeaseAreaOfOfficeBuilding","dataType":"xbrlr:area","periodType":"instant","nillable":true},{"name":"calx:PaymentsForFinancingArrangements","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:PrepaidExpensesAndOtherAssetsMiscellaneousCurrent","dataType":"xbrlr:monetary","periodType":"instant","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:ResearchAndDevelopmentOperatingExpenseAdjusted","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"calx:ScheduleOfChangesInAllowanceForDoubtfulAccountsAndProductReturnLiabilityTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"calx:ScheduleOfGrantDateFairValuesTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"calx:SellingAndMarketingOperatingExpenseAdjusted","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardDecreaseInNumberOfAdditionalSharesAuthorized","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEmployeeTerminationPeriodFollowingPurchaseDateToReceiveSharesSubjectToRiskOfForfeiture","dataType":"xbrlr:duration","periodType":"duration","nillable":true},{"name":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardForfeitedPercent","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumContributionPercent","dataType":"xbrlr:percent","periodType":"instant","nillable":true},{"name":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfOfferingPeriods","dataType":"xs:integer","periodType":"instant","nillable":true},{"name":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPlans","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:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesGrantedIfTargetAchievementPerformanceThresholdNotMetPercent","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodPercentage","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesAwardTargetAchievementPerformanceMaximumCombinedPayoutPercent","dataType":"xbrlr:percent","periodType":"instant","nillable":true},{"name":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesAwardTargetAchievementPerformanceThresholdPercent","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesAwardTargetAchievementPerformanceThresholdPercentageAchieved","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesAwardWeightedPercentForTargetAchievementPerformanceThresholdPercent","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardTargetAchievementPerformanceThresholdPercent","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"calx:ShareRepurchaseProgramAdditionalSharesAuthorizedAmount","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"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:StandardAndExtendedProductWarrantyAccrualIncreaseForWarrantiesIssuedNet","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"calx:StockRepurchasedDuringPeriodAverageCostPerShare","dataType":"xbrlr:perShare","periodType":"duration","nillable":true},{"name":"calx:StockRepurchasedDuringPeriodValueExcludingExciseTax","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"calx:StockRepurchasedDuringPeriodValueNetOfExciseTaxAdjustment","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"calx:TaxesPayableCurrentExcludingAccruedIncomeTaxes","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"cyd:CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"cyd:CybersecurityRiskBoardOfDirectorsOversightTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"cyd:CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"cyd:CybersecurityRiskManagementProcessesIntegratedFlag","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"cyd:CybersecurityRiskManagementProcessesIntegratedTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"cyd:CybersecurityRiskManagementThirdPartyEngagedFlag","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"cyd:CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"cyd:CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"cyd:CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"cyd:CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"cyd:CybersecurityRiskRoleOfManagementTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"cyd:CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"dei:AmendmentFlag","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"dei:AuditorFirmId","dataType":"dei:nonemptySequenceNumberItemType","periodType":"duration","nillable":true},{"name":"dei:AuditorLocation","dataType":"dei:internationalNameItemType","periodType":"duration","nillable":true},{"name":"dei:AuditorName","dataType":"dei:internationalNameItemType","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:DocumentFinStmtErrorCorrectionFlag","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:EntityAddressAddressLine2","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":"ecd:Additional402vDisclosureTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:AdjToCompAmt","dataType":"xbrlr:monetary","periodType":"duration","nillable":true},{"name":"ecd:AdjToNonPeoNeoCompFnTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:AdjToPeoCompFnTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:AggtErrCompAmt","dataType":"xbrlr:monetary","periodType":"instant","nillable":true},{"name":"ecd:AggtErrCompNotYetDeterminedTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:AwardExrcPrice","dataType":"xbrlr:perShare","periodType":"instant","nillable":true},{"name":"ecd:AwardGrantDateFairValue","dataType":"xbrlr:monetary","periodType":"instant","nillable":true},{"name":"ecd:AwardTmgHowMnpiCnsdrdTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:AwardTmgMethodTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:AwardTmgMnpiCnsdrdFlag","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"ecd:AwardTmgMnpiDiscTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:AwardTmgPredtrmndFlag","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"ecd:AwardUndrlygSecuritiesAmt","dataType":"xs:decimal","periodType":"instant","nillable":true},{"name":"ecd:AwardsCloseToMnpiDiscIndName","dataType":"xs:string","periodType":"instant","nillable":true},{"name":"ecd:AwardsCloseToMnpiDiscTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:ChangedPeerGroupFnTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:CoSelectedMeasureAmt","dataType":"xs:decimal","periodType":"duration","nillable":true},{"name":"ecd:CoSelectedMeasureName","dataType":"xs:normalizedString","periodType":"duration","nillable":true},{"name":"ecd:CompActuallyPaidVsCoSelectedMeasureTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:CompActuallyPaidVsNetIncomeTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:CompActuallyPaidVsOtherMeasureTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:CompActuallyPaidVsTotalShareholderRtnTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:EqtyAwrdsAdjFnTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:EquityValuationAssumptionDifferenceFnTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:ErrCompAnalysisTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt","dataType":"xbrlr:monetary","periodType":"duration","nillable":true},{"name":"ecd:ForgoneRecoveryDueToExpenseOfEnforcementAmt","dataType":"xbrlr:monetary","periodType":"duration","nillable":true},{"name":"ecd:ForgoneRecoveryDueToViolationOfHomeCountryLawAmt","dataType":"xbrlr:monetary","periodType":"duration","nillable":true},{"name":"ecd:ForgoneRecoveryExplanationOfImpracticabilityTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:ForgoneRecoveryIndName","dataType":"xs:string","periodType":"duration","nillable":true},{"name":"ecd:InsiderTrdPoliciesProcAdoptedFlag","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"ecd:InsiderTrdPoliciesProcNotAdoptedTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:MeasureName","dataType":"xs:normalizedString","periodType":"duration","nillable":true},{"name":"ecd:MnpiDiscTimedForCompValFlag","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"ecd:MtrlTermsOfTrdArrTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:NamedExecutiveOfficersFnTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:NonGaapMeasureDescriptionTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:NonPeoNeoAvgCompActuallyPaidAmt","dataType":"xbrlr:monetary","periodType":"duration","nillable":true},{"name":"ecd:NonPeoNeoAvgTotalCompAmt","dataType":"xbrlr:monetary","periodType":"duration","nillable":true},{"name":"ecd:NonRule10b51ArrAdoptedFlag","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"ecd:NonRule10b51ArrTrmntdFlag","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"ecd:OtherPerfMeasureAmt","dataType":"xs:decimal","periodType":"duration","nillable":true},{"name":"ecd:OutstandingAggtErrCompAmt","dataType":"xbrlr:monetary","periodType":"instant","nillable":true},{"name":"ecd:OutstandingRecoveryCompAmt","dataType":"xbrlr:monetary","periodType":"instant","nillable":true},{"name":"ecd:OutstandingRecoveryIndName","dataType":"xs:string","periodType":"duration","nillable":true},{"name":"ecd:PeerGroupIssuersFnTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:PeerGroupTotalShareholderRtnAmt","dataType":"xbrlr:monetary","periodType":"duration","nillable":true},{"name":"ecd:PeoActuallyPaidCompAmt","dataType":"xbrlr:monetary","periodType":"duration","nillable":true},{"name":"ecd:PeoName","dataType":"xs:normalizedString","periodType":"duration","nillable":true},{"name":"ecd:PeoTotalCompAmt","dataType":"xbrlr:monetary","periodType":"duration","nillable":true},{"name":"ecd:PnsnBnftsAdjFnTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:PvpTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:RestatementDeterminationDate","dataType":"xs:date","periodType":"duration","nillable":true},{"name":"ecd:RestatementDoesNotRequireRecoveryTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:Rule10b51ArrAdoptedFlag","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"ecd:Rule10b51ArrTrmntdFlag","dataType":"xs:boolean","periodType":"duration","nillable":true},{"name":"ecd:StkPrcOrTsrEstimationMethodTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:TabularListTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:TotalShareholderRtnAmt","dataType":"xbrlr:monetary","periodType":"duration","nillable":true},{"name":"ecd:TotalShareholderRtnVsPeerGroupTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"ecd:TrdArrAdoptionDate","dataType":"xs:string","periodType":"duration","nillable":true},{"name":"ecd:TrdArrDuration","dataType":"xbrlr:duration","periodType":"duration","nillable":true},{"name":"ecd:TrdArrExpirationDate","dataType":"xs:string","periodType":"duration","nillable":true},{"name":"ecd:TrdArrIndName","dataType":"xs:string","periodType":"duration","nillable":true},{"name":"ecd:TrdArrIndTitle","dataType":"xs:string","periodType":"duration","nillable":true},{"name":"ecd:TrdArrSecuritiesAggAvailAmt","dataType":"xbrla:sharesType","periodType":"instant","nillable":true},{"name":"ecd:TrdArrTerminationDate","dataType":"xs:string","periodType":"duration","nillable":true},{"name":"ecd:UndrlygSecurityMktPriceChngPct","dataType":"xbrlr:pureType","periodType":"instant","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:AccretionAmortizationOfDiscountsAndPremiumsInvestments","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:AccruedInsuranceCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"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: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:CapitalizedContractCostImpairmentLoss","dataType":"xbrlr:monetary","periodType":"duration","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:CashEquivalentsAtCarryingValue","dataType":"xbrlr:monetary","periodType":"instant","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:CommonStockDividendsPerShareCashPaid","dataType":"xbrlr:perShare","periodType":"duration","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:ComprehensiveIncomeNetOfTax","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: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:CreditLossFinancialInstrumentPolicyTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:CurrentFederalTaxExpenseBenefit","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"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:DebtSecuritiesAvailableForSaleAccumulatedGrossUnrealizedGainLossBeforeTax","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLossCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:DebtSecuritiesAvailableForSaleTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:DebtSecuritiesAvailableForSaleTerm","dataType":"xbrlr:duration","periodType":"instant","nillable":true},{"name":"us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:DeferredFederalIncomeTaxExpenseBenefit","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:DeferredForeignIncomeTaxExpenseBenefit","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:DeferredIncomeTaxAssetsNet","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:DeferredIncomeTaxExpenseBenefit","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:DeferredIncomeTaxLiabilities","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:DeferredIncomeTaxesAndTaxCredits","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit","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:DeferredTaxAssetsGross","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:DeferredTaxAssetsInventory","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:DeferredTaxAssetsLiabilitiesNet","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:DeferredTaxAssetsNet","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:DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsSubjectToExpiration","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: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:DeferredTaxLiabilitiesLeasingArrangements","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:DeferredTaxLiabilitiesUndistributedForeignEarnings","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:DepositsAssetsCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:DepreciationDepletionAndAmortization","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:EarningsPerShareBasic","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:EffectiveIncomeTaxRateReconciliationCrossBorderTaxEffectAmount","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:EffectiveIncomeTaxRateReconciliationCrossBorderTaxEffectPercent","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment","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:EffectiveIncomeTaxRateReconciliationOtherAdjustments","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"us-gaap:EffectiveIncomeTaxRateReconciliationRepatriationOfForeignEarnings","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"us-gaap:EffectiveIncomeTaxRateReconciliationTaxContingencies","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"name":"us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch","dataType":"xbrlr:percent","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:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"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:FairValueMeasurementPolicyPolicyTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:FairValueOfFinancialInstrumentsPolicy","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"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:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest","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: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:IncomeTaxPaidFederalAfterRefundReceived","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:IncomeTaxPaidForeignAfterRefundReceived","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:IncomeTaxPaidStateAndLocalAfterRefundReceived","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:IncomeTaxPolicyTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:IncomeTaxReconciliationNondeductibleExpenseMealsAndEntertainment","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:IncomeTaxReconciliationNondeductibleExpenseOther","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:IncomeTaxReconciliationOtherAdjustments","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:IncomeTaxReconciliationRepatriationOfForeignEarnings","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:IncomeTaxReconciliationTaxContingencies","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:IncomeTaxReconciliationTaxCreditsResearch","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"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:IncreaseDecreaseInContractWithCustomerLiability","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:InterestIncomeExpenseNonoperatingNet","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"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:InventoryPartsAndComponentsNetOfReserves","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:LesseeOperatingLeaseLeaseNotYetCommencedTermOfContract1","dataType":"xbrlr:duration","periodType":"instant","nillable":true},{"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: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: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:NetIncomeLoss","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:NoncurrentAssets","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:NonoperatingIncomeExpense","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:NumberOfOperatingSegments","dataType":"xs:integer","periodType":"duration","nillable":true},{"name":"us-gaap:NumberOfReportableSegments","dataType":"xs:integer","periodType":"duration","nillable":true},{"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":"xbrlr:enumeration","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:OtherAccruedLiabilitiesCurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:OtherAssetsNoncurrent","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent","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:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax","dataType":"xbrlr:monetary","periodType":"duration","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:PaymentsForRepurchaseOfCommonStock","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:PaymentsToAcquireAvailableForSaleSecuritiesDebt","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:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"name":"us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt","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: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":"instant","nillable":true},{"name":"us-gaap:PurchaseCommitmentRemainingMinimumAmountCommitted","dataType":"xbrlr:monetary","periodType":"instant","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:RetainedEarningsAccumulatedDeficit","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","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:RevenueFromContractWithCustomerTextBlock","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: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:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock","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:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ScheduleOfInventoryCurrentTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock","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:ScheduleOfUnrecognizedCompensationCostNonvestedAwardsTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:SegmentReportingDisclosureTextBlock","dataType":"xbrlr:textBlock","periodType":"duration","nillable":true},{"name":"us-gaap:SegmentReportingOtherItemAmount","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"debit"}]},{"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:ShareBasedCompensationArrangementByShareBasedPaymentAwardAcceleratedCompensationCost","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:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","dataType":"xbrlr:perShare","periodType":"duration","nillable":true},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue","dataType":"xbrlr:perShare","periodType":"instant","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:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod","dataType":"xbrlr:duration","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:SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent","dataType":"xbrlr:percent","periodType":"duration","nillable":true},{"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:StockIssuedDuringPeriodSharesShareBasedCompensation","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation","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:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:StockRepurchasedDuringPeriodShares","dataType":"xbrla:sharesType","periodType":"duration","nillable":true},{"name":"us-gaap:StockholdersEquity","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"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: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:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions","dataType":"xbrlr:monetary","periodType":"duration","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate","dataType":"xbrlr:monetary","periodType":"instant","nillable":true,"properties":[{"property":"xbrla:balance","value":"credit"}]},{"name":"us-gaap:UnrecordedUnconditionalPurchaseObligationBalanceSheetAmount","dataType":"xbrlr:monetary","periodType":"instant","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:AuditInformationAbstract"},{"name":"calx:IncomeTaxesLineItems"},{"name":"calx:IncomeTaxesTable"},{"name":"calx:ScheduleOfCertainTermsLineItemsLineItems"},{"name":"calx:ScheduleOfCertainTermsTableTable"},{"name":"cyd:CybersecurityRiskManagementStrategyAndGovernanceAbstract"},{"name":"cyd:CybersecurityRiskManagementStrategyAndGovernanceLineItems"},{"name":"cyd:CybersecurityRiskManagementStrategyAndGovernanceTable"},{"name":"dei:CoverAbstract"},{"name":"ecd:AdjLineItems"},{"name":"ecd:AwardTmgDiscLineItems"},{"name":"ecd:AwardTmgDiscTable"},{"name":"ecd:AwardsCloseToMnpiDiscLineItems"},{"name":"ecd:AwardsCloseToMnpiDiscTable"},{"name":"ecd:ErrCompRecoveryTable"},{"name":"ecd:ForgoneRecoveriesByIndTable"},{"name":"ecd:ForgoneRecoveriesLineItems"},{"name":"ecd:InsiderTradingArrLineItems"},{"name":"ecd:InsiderTradingPoliciesProcLineItems"},{"name":"ecd:InsiderTradingPoliciesProcTable"},{"name":"ecd:OutstandingRecoveriesByIndTable"},{"name":"ecd:OutstandingRecoveriesLineItems"},{"name":"ecd:PayVsPerformanceDisclosureLineItems"},{"name":"ecd:PayVsPerformanceDisclosureWithAdditionalMeasuresLineItems"},{"name":"ecd:PayVsPerformanceTableLineItems"},{"name":"ecd:PvpAdjTable"},{"name":"ecd:PvpMeasuresLineItems"},{"name":"ecd:PvpMeasuresTable"},{"name":"ecd:PvpTable"},{"name":"ecd:PvpTabularListTable"},{"name":"ecd:PvpTabularListsLineItems"},{"name":"ecd:PvpTabularListsTable"},{"name":"ecd:PvpWithAdditionalMeasuresTable"},{"name":"ecd:RecoveryOfErrCompDisclosureLineItems"},{"name":"ecd:TabularListMeasuresLineItems"},{"name":"ecd:TradingArrByIndTable"},{"name":"srt:ShareRepurchaseProgramLineItems"},{"name":"srt:ShareRepurchaseProgramTable"},{"name":"srt:ValuationAndQualifyingAccountsDisclosureLineItems"},{"name":"srt:ValuationAndQualifyingAccountsDisclosureTable"},{"name":"us-gaap:AOCIAttributableToParentNetOfTaxRollForward"},{"name":"us-gaap:AccountingPoliciesAbstract"},{"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: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:CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract"},{"name":"us-gaap:DebtSecuritiesAvailableForSaleTable"},{"name":"us-gaap:DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract"},{"name":"us-gaap:DeferredTaxAssetsGrossAbstract"},{"name":"us-gaap:DeferredTaxLiabilitiesNetAbstract"},{"name":"us-gaap:EarningsPerShareAbstract"},{"name":"us-gaap:EarningsPerShareBasicAbstract"},{"name":"us-gaap:EarningsPerShareDilutedOtherDisclosuresAbstract"},{"name":"us-gaap:EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract"},{"name":"us-gaap:EffectiveIncomeTaxRateReconciliationLineItems"},{"name":"us-gaap:EffectiveIncomeTaxRateReconciliationTable"},{"name":"us-gaap:EntityWideRevenueMajorCustomerLineItems"},{"name":"us-gaap:EquityAbstract"},{"name":"us-gaap:FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems"},{"name":"us-gaap:FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable"},{"name":"us-gaap:FairValueDisclosuresAbstract"},{"name":"us-gaap:IncomeStatementAbstract"},{"name":"us-gaap:IncomeTaxDisclosureAbstract"},{"name":"us-gaap:IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract"},{"name":"us-gaap:IncomeTaxPaidForeignAfterRefundReceivedAbstract"},{"name":"us-gaap:IncomeTaxPaidStateAndLocalAfterRefundReceivedAbstract"},{"name":"us-gaap:IncreaseDecreaseInOperatingCapitalAbstract"},{"name":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward"},{"name":"us-gaap:InventoryNetAbstract"},{"name":"us-gaap:LiabilitiesAndStockholdersEquityAbstract"},{"name":"us-gaap:LiabilitiesCurrentAbstract"},{"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:OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract"},{"name":"us-gaap:PropertyPlantAndEquipmentLineItems"},{"name":"us-gaap:ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward"},{"name":"us-gaap:RevenueFromContractWithCustomerAbstract"},{"name":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems"},{"name":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable"},{"name":"us-gaap:RevenuesAbstract"},{"name":"us-gaap:ScheduleOfAvailableForSaleSecuritiesLineItems"},{"name":"us-gaap:ScheduleOfCashAndCashEquivalentsTable"},{"name":"us-gaap:ScheduleOfPropertyPlantAndEquipmentTable"},{"name":"us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable"},{"name":"us-gaap:ScheduleOfSegmentReportingInformationBySegmentTable"},{"name":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"},{"name":"us-gaap:SegmentReportingAbstract"},{"name":"us-gaap:SegmentReportingInformationLineItems"},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract"},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"},{"name":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract"},{"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:SupplementalCashFlowInformationAbstract"},{"name":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasicAbstract"}],"dimensions":[{"name":"ecd:AdjToCompAxis","domainClass":"ecd:AllAdjToCompMember"},{"name":"ecd:ExecutiveCategoryAxis","domainClass":"ecd:AllExecutiveCategoriesMember"},{"name":"ecd:IndividualAxis","domainClass":"ecd:AllIndividualsMember"},{"name":"ecd:MeasureAxis"},{"name":"ecd:RestatementDateAxis"},{"name":"ecd:TradingArrAxis","domainClass":"ecd:AllTradingArrangementsMember"},{"name":"srt:ConsolidatedEntitiesAxis","domainClass":"srt:ConsolidatedEntitiesDomain"},{"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:AwardTypeAxis","domainClass":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"},{"name":"us-gaap:BalanceSheetLocationAxis","domainClass":"us-gaap:BalanceSheetLocationDomain"},{"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:FairValueByFairValueHierarchyLevelAxis","domainClass":"us-gaap:FairValueMeasurementsFairValueHierarchyDomain"},{"name":"us-gaap:FinancialInstrumentAxis","domainClass":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"},{"name":"us-gaap:IncomeStatementLocationAxis","domainClass":"us-gaap:IncomeStatementLocationDomain"},{"name":"us-gaap:IncomeTaxAuthorityAxis","domainClass":"us-gaap:IncomeTaxAuthorityDomain"},{"name":"us-gaap:PlanNameAxis","domainClass":"us-gaap:PlanNameDomain"},{"name":"us-gaap:PropertyPlantAndEquipmentByTypeAxis","domainClass":"us-gaap:PropertyPlantAndEquipmentTypeDomain"},{"name":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"},{"name":"us-gaap:StatementBusinessSegmentsAxis","domainClass":"us-gaap:SegmentDomain"},{"name":"us-gaap:StatementEquityComponentsAxis","domainClass":"us-gaap:EquityComponentDomain"},{"name":"us-gaap:SubsequentEventTypeAxis","domainClass":"us-gaap:SubsequentEventTypeDomain"},{"name":"us-gaap:ValuationAllowancesAndReservesTypeAxis","domainClass":"us-gaap:ValuationAllowancesAndReservesDomain"},{"name":"us-gaap:VestingAxis","domainClass":"us-gaap:VestingDomain"}],"domainClasses":[{"name":"ecd:AllAdjToCompMember"},{"name":"ecd:AllExecutiveCategoriesMember"},{"name":"ecd:AllIndividualsMember"},{"name":"ecd:AllTradingArrangementsMember"},{"name":"srt:ConsolidatedEntitiesDomain"},{"name":"srt:NameOfMajorCustomerDomain"},{"name":"srt:ProductsAndServicesDomain"},{"name":"srt:RangeMember"},{"name":"srt:SegmentGeographicalDomain"},{"name":"srt:TitleOfIndividualWithRelationshipToEntityDomain"},{"name":"us-gaap:BalanceSheetLocationDomain"},{"name":"us-gaap:ConcentrationRiskBenchmarkDomain"},{"name":"us-gaap:ConcentrationRiskTypeDomain"},{"name":"us-gaap:EquityComponentDomain"},{"name":"us-gaap:FairValueMeasurementsFairValueHierarchyDomain"},{"name":"us-gaap:IncomeStatementLocationDomain"},{"name":"us-gaap:IncomeTaxAuthorityDomain"},{"name":"us-gaap:PlanNameDomain"},{"name":"us-gaap:PropertyPlantAndEquipmentTypeDomain"},{"name":"us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember"},{"name":"us-gaap:SegmentDomain"},{"name":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"},{"name":"us-gaap:SubsequentEventTypeDomain"},{"name":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"},{"name":"us-gaap:ValuationAllowancesAndReservesDomain"},{"name":"us-gaap:VestingDomain"}],"domainNetworks":[{"name":"rpt:domain-0","root":"us-gaap:EquityComponentDomain","relationships":[{"source":"us-gaap:EquityComponentDomain","target":"us-gaap:AccumulatedOtherComprehensiveIncomeMember"},{"source":"us-gaap:AccumulatedOtherComprehensiveIncomeMember","target":"us-gaap:AccumulatedNetUnrealizedInvestmentGainLossMember"},{"source":"us-gaap:AccumulatedOtherComprehensiveIncomeMember","target":"us-gaap:AccumulatedTranslationAdjustmentMember"}]},{"name":"rpt:domain-1","root":"us-gaap:ValuationAllowancesAndReservesDomain","relationships":[{"source":"us-gaap:ValuationAllowancesAndReservesDomain","target":"us-gaap:AllowanceForCreditLossMember"},{"source":"us-gaap:ValuationAllowancesAndReservesDomain","target":"calx:SECSchedule1209ReserveProductReturnsMember"}]},{"name":"rpt:domain-2","root":"us-gaap:PropertyPlantAndEquipmentTypeDomain","relationships":[{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"us-gaap:EquipmentMember"},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"us-gaap:ComputerEquipmentMember"},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"calx:SoftwareMember"},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"us-gaap:LeaseholdImprovementsMember"},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"us-gaap:FurnitureAndFixturesMember"}]},{"name":"rpt:domain-3","root":"srt:ProductsAndServicesDomain","relationships":[{"source":"srt:ProductsAndServicesDomain","target":"calx:ApplianceMember"},{"source":"srt:ProductsAndServicesDomain","target":"calx:SoftwareAndServiceMember"}]},{"name":"rpt:domain-4","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"}]},{"name":"rpt:domain-5","root":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","relationships":[{"source":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","target":"us-gaap:CorporateDebtSecuritiesMember"},{"source":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","target":"us-gaap:CommercialPaperMember"},{"source":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","target":"us-gaap:USGovernmentDebtSecuritiesMember"},{"source":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","target":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember"},{"source":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","target":"us-gaap:MunicipalNotesMember"}]},{"name":"rpt:domain-6","root":"us-gaap:BalanceSheetLocationDomain","relationships":[{"source":"us-gaap:BalanceSheetLocationDomain","target":"calx:ShortTermMarketableSecuritiesMember"},{"source":"us-gaap:BalanceSheetLocationDomain","target":"calx:ShortTermMarketableSecuritiesAndCashEquivalentsMember"}]},{"name":"rpt:domain-7","root":"us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember","relationships":[{"source":"us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember","target":"us-gaap:CashMember"},{"source":"us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember","target":"us-gaap:CommercialPaperMember"},{"source":"us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember","target":"us-gaap:MoneyMarketFundsMember"},{"source":"us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember","target":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember"},{"source":"us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember","target":"us-gaap:USGovernmentDebtSecuritiesMember"}]},{"name":"rpt:domain-8","root":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","relationships":[{"source":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","target":"us-gaap:CorporateDebtSecuritiesMember"},{"source":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","target":"us-gaap:USGovernmentDebtSecuritiesMember"},{"source":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","target":"us-gaap:CommercialPaperMember"},{"source":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","target":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember"},{"source":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","target":"us-gaap:MunicipalNotesMember"}]},{"name":"rpt:domain-9","root":"srt:RangeMember","relationships":[{"source":"srt:RangeMember","target":"srt:MaximumMember"}]},{"name":"rpt:domain-10","root":"srt:SegmentGeographicalDomain","relationships":[{"source":"srt:SegmentGeographicalDomain","target":"calx:SanJoseCaliforniaMember"}]},{"name":"rpt:domain-11","root":"srt:RangeMember","relationships":[{"source":"srt:RangeMember","target":"srt:MinimumMember"},{"source":"srt:RangeMember","target":"srt:MaximumMember"}]},{"name":"rpt:domain-12","root":"srt:ConsolidatedEntitiesDomain","relationships":[{"source":"srt:ConsolidatedEntitiesDomain","target":"srt:SubsidiariesMember"}]},{"name":"rpt:domain-13","root":"srt:SegmentGeographicalDomain","relationships":[{"source":"srt:SegmentGeographicalDomain","target":"calx:BrazilChinaAndUnitedKingdomMember"}]},{"name":"rpt:domain-14","root":"us-gaap:PropertyPlantAndEquipmentTypeDomain","relationships":[{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"us-gaap:ComputerEquipmentMember"},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"calx:SoftwareMember"},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"us-gaap:EquipmentMember"},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"us-gaap:FurnitureAndFixturesMember"}]},{"name":"rpt:domain-15","root":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","relationships":[{"source":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","target":"us-gaap:USGovernmentDebtSecuritiesMember"},{"source":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","target":"us-gaap:CorporateDebtSecuritiesMember"},{"source":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","target":"us-gaap:CommercialPaperMember"},{"source":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","target":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember"},{"source":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","target":"us-gaap:MunicipalNotesMember"}]},{"name":"rpt:domain-16","root":"us-gaap:FairValueMeasurementsFairValueHierarchyDomain","relationships":[{"source":"us-gaap:FairValueMeasurementsFairValueHierarchyDomain","target":"us-gaap:FairValueInputsLevel1Member"},{"source":"us-gaap:FairValueMeasurementsFairValueHierarchyDomain","target":"us-gaap:FairValueInputsLevel2Member"}]},{"name":"rpt:domain-17","root":"us-gaap:IncomeTaxAuthorityDomain","relationships":[{"source":"us-gaap:IncomeTaxAuthorityDomain","target":"us-gaap:DomesticCountryMember"},{"source":"us-gaap:IncomeTaxAuthorityDomain","target":"us-gaap:ForeignCountryMember"},{"source":"us-gaap:DomesticCountryMember","target":"country:US"},{"source":"us-gaap:ForeignCountryMember","target":"country:CN"},{"source":"us-gaap:ForeignCountryMember","target":"country:IN"}]},{"name":"rpt:domain-18","root":"us-gaap:IncomeTaxAuthorityDomain","relationships":[{"source":"us-gaap:IncomeTaxAuthorityDomain","target":"stpr:PA"},{"source":"us-gaap:IncomeTaxAuthorityDomain","target":"stpr:SC"},{"source":"us-gaap:IncomeTaxAuthorityDomain","target":"us-gaap:StateAndLocalTaxJurisdictionOtherMember"},{"source":"us-gaap:IncomeTaxAuthorityDomain","target":"country:CN"},{"source":"us-gaap:IncomeTaxAuthorityDomain","target":"country:IN"},{"source":"us-gaap:IncomeTaxAuthorityDomain","target":"us-gaap:ForeignTaxJurisdictionOtherMember"}]},{"name":"rpt:domain-19","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":"us-gaap:StateAndLocalTaxJurisdictionOtherMember"}]},{"name":"rpt:domain-20","root":"srt:NameOfMajorCustomerDomain","relationships":[{"source":"srt:NameOfMajorCustomerDomain","target":"calx:CustomerOneMember"},{"source":"srt:NameOfMajorCustomerDomain","target":"calx:CustomerTwoMember"}]},{"name":"rpt:domain-21","root":"us-gaap:ConcentrationRiskTypeDomain","relationships":[{"source":"us-gaap:ConcentrationRiskTypeDomain","target":"us-gaap:CustomerConcentrationRiskMember"}]},{"name":"rpt:domain-22","root":"us-gaap:ConcentrationRiskBenchmarkDomain","relationships":[{"source":"us-gaap:ConcentrationRiskBenchmarkDomain","target":"us-gaap:AccountsReceivableMember"}]},{"name":"rpt:domain-23","root":"srt:SegmentGeographicalDomain","relationships":[{"source":"srt:SegmentGeographicalDomain","target":"country:US"},{"source":"srt:SegmentGeographicalDomain","target":"country:CN"},{"source":"srt:SegmentGeographicalDomain","target":"country:IN"}]},{"name":"rpt:domain-24","root":"srt:SegmentGeographicalDomain","relationships":[{"source":"srt:SegmentGeographicalDomain","target":"country:US"},{"source":"srt:SegmentGeographicalDomain","target":"srt:EuropeMember"},{"source":"srt:SegmentGeographicalDomain","target":"calx:AmericasExUSMember"},{"source":"srt:SegmentGeographicalDomain","target":"calx:RestOfWorldMember"}]},{"name":"rpt:domain-25","root":"us-gaap:SegmentDomain","relationships":[{"source":"us-gaap:SegmentDomain","target":"calx:ReportableSegmentMember"}]},{"name":"rpt:domain-26","root":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","relationships":[{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:EmployeeStockOptionMember"},{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:EmployeeStockMember"}]},{"name":"rpt:domain-27","root":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","relationships":[{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:EmployeeStockMember"}]},{"name":"rpt:domain-28","root":"us-gaap:PlanNameDomain","relationships":[{"source":"us-gaap:PlanNameDomain","target":"calx:StockPurchaseAndMatchingPlanMember"},{"source":"us-gaap:PlanNameDomain","target":"calx:AmendedAndRestatedEmployeeStockPurchasePlanMember"},{"source":"us-gaap:PlanNameDomain","target":"calx:EmployeeStockPurchasePlanMember"},{"source":"calx:StockPurchaseAndMatchingPlanMember","target":"calx:StockPurchaseAndMatchingPlanPurchaseComponentMember"},{"source":"calx:StockPurchaseAndMatchingPlanMember","target":"calx:StockPurchaseAndMatchingPlanMatchingComponentMember"}]},{"name":"rpt:domain-29","root":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","relationships":[{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:EmployeeStockOptionMember"},{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"calx:PerformanceBasedStockOptionsMember"},{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:RestrictedStockMember"}]},{"name":"rpt:domain-30","root":"us-gaap:PlanNameDomain","relationships":[{"source":"us-gaap:PlanNameDomain","target":"calx:A2019EquityIncentiveAwardPlanMember"}]},{"name":"rpt:domain-31","root":"us-gaap:VestingDomain","relationships":[{"source":"us-gaap:VestingDomain","target":"us-gaap:ShareBasedCompensationAwardTrancheOneMember"},{"source":"us-gaap:VestingDomain","target":"us-gaap:ShareBasedCompensationAwardTrancheTwoMember"}]},{"name":"rpt:domain-32","root":"srt:TitleOfIndividualWithRelationshipToEntityDomain","relationships":[{"source":"srt:TitleOfIndividualWithRelationshipToEntityDomain","target":"srt:ExecutiveOfficerMember"},{"source":"srt:TitleOfIndividualWithRelationshipToEntityDomain","target":"calx:BoardOfDirectorsMember"}]},{"name":"rpt:domain-33","root":"us-gaap:SubsequentEventTypeDomain","relationships":[{"source":"us-gaap:SubsequentEventTypeDomain","target":"us-gaap:SubsequentEventMember"}]},{"name":"rpt:domain-34","root":"us-gaap:PlanNameDomain","relationships":[{"source":"us-gaap:PlanNameDomain","target":"calx:StockPurchaseAndMatchingPlanMember"}]},{"name":"rpt:domain-35","root":"us-gaap:PlanNameDomain","relationships":[{"source":"us-gaap:PlanNameDomain","target":"calx:A2019PlanMember"},{"source":"us-gaap:PlanNameDomain","target":"calx:StockPurchaseAndMatchingPlanMember"}]},{"name":"rpt:domain-36","root":"us-gaap:IncomeStatementLocationDomain","relationships":[{"source":"us-gaap:IncomeStatementLocationDomain","target":"us-gaap:CostOfSalesMember"},{"source":"us-gaap:IncomeStatementLocationDomain","target":"us-gaap:SellingAndMarketingExpenseMember"},{"source":"us-gaap:IncomeStatementLocationDomain","target":"us-gaap:ResearchAndDevelopmentExpenseMember"},{"source":"us-gaap:IncomeStatementLocationDomain","target":"us-gaap:GeneralAndAdministrativeExpenseMember"}]},{"name":"rpt:domain-37","root":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","relationships":[{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:EmployeeStockOptionMember"},{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:RestrictedStockMember"},{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:EmployeeStockMember"}]},{"name":"rpt:domain-38","root":"ecd:AllIndividualsMember","relationships":[{"source":"ecd:AllIndividualsMember","target":"ecd:NonNeosMember"},{"source":"ecd:AllIndividualsMember","target":"calx:JohnDurocherMember"},{"source":"ecd:AllIndividualsMember","target":"calx:KevinPetersMember"}]},{"name":"rpt:domain-39","root":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","relationships":[{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:EmployeeStockOptionMember"},{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:StockAppreciationRightsSARSMember"}]},{"name":"rpt:domain-40","root":"ecd:AllTradingArrangementsMember","relationships":[]},{"name":"rpt:domain-41","root":"ecd:AllExecutiveCategoriesMember","relationships":[{"source":"ecd:AllExecutiveCategoriesMember","target":"ecd:PeoMember"},{"source":"ecd:AllExecutiveCategoriesMember","target":"ecd:NonPeoNeoMember"}]},{"name":"rpt:domain-42","root":"ecd:AllAdjToCompMember","relationships":[{"source":"ecd:AllAdjToCompMember","target":"ecd:AggtChngPnsnValInSummryCompstnTblForAplblYrMember"},{"source":"ecd:AllAdjToCompMember","target":"ecd:AggtPnsnAdjsSvcCstMember"},{"source":"ecd:AllAdjToCompMember","target":"ecd:EqtyAwrdsAdjsMember"},{"source":"ecd:AggtPnsnAdjsSvcCstMember","target":"ecd:PnsnAdjsSvcCstMember"},{"source":"ecd:AggtPnsnAdjsSvcCstMember","target":"ecd:PnsnAdjsPrrSvcCstMember"},{"source":"ecd:EqtyAwrdsAdjsMember","target":"ecd:EqtyAwrdsInSummryCompstnTblForAplblYrMember"},{"source":"ecd:EqtyAwrdsAdjsMember","target":"ecd:EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember"},{"source":"ecd:EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember","target":"ecd:YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember"},{"source":"ecd:EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember","target":"ecd:ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember"},{"source":"ecd:EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember","target":"ecd:VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember"},{"source":"ecd:EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember","target":"ecd:ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember"},{"source":"ecd:EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember","target":"ecd:FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember"},{"source":"ecd:EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember","target":"ecd:DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember"}]}],"members":[{"name":"calx:A2019EquityIncentiveAwardPlanMember","domainClasses":["us-gaap:PlanNameDomain"]},{"name":"calx:A2019PlanMember","domainClasses":["us-gaap:PlanNameDomain"]},{"name":"calx:AmendedAndRestatedEmployeeStockPurchasePlanMember","domainClasses":["us-gaap:PlanNameDomain"]},{"name":"calx:AmericasExUSMember","domainClasses":["srt:SegmentGeographicalDomain"]},{"name":"calx:ApplianceMember","domainClasses":["srt:ProductsAndServicesDomain"]},{"name":"calx:BoardOfDirectorsMember","domainClasses":["srt:TitleOfIndividualWithRelationshipToEntityDomain"]},{"name":"calx:BrazilChinaAndUnitedKingdomMember","domainClasses":["srt:SegmentGeographicalDomain"]},{"name":"calx:CustomerOneMember","domainClasses":["srt:NameOfMajorCustomerDomain"]},{"name":"calx:CustomerTwoMember","domainClasses":["srt:NameOfMajorCustomerDomain"]},{"name":"calx:EmployeeStockPurchasePlanMember","domainClasses":["us-gaap:PlanNameDomain"]},{"name":"calx:JohnDurocherMember","domainClasses":["ecd:AllIndividualsMember"]},{"name":"calx:KevinPetersMember","domainClasses":["ecd:AllIndividualsMember"]},{"name":"calx:PerformanceBasedStockOptionsMember","domainClasses":["us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"]},{"name":"calx:ReportableSegmentMember","domainClasses":["us-gaap:SegmentDomain"]},{"name":"calx:RestOfWorldMember","domainClasses":["srt:SegmentGeographicalDomain"]},{"name":"calx:SECSchedule1209ReserveProductReturnsMember","domainClasses":["us-gaap:ValuationAllowancesAndReservesDomain"]},{"name":"calx:SanJoseCaliforniaMember","domainClasses":["srt:SegmentGeographicalDomain"]},{"name":"calx:ShortTermMarketableSecuritiesAndCashEquivalentsMember","domainClasses":["us-gaap:BalanceSheetLocationDomain"]},{"name":"calx:ShortTermMarketableSecuritiesMember","domainClasses":["us-gaap:BalanceSheetLocationDomain"]},{"name":"calx:SoftwareAndServiceMember","domainClasses":["srt:ProductsAndServicesDomain"]},{"name":"calx:SoftwareMember","domainClasses":["us-gaap:PropertyPlantAndEquipmentTypeDomain"]},{"name":"calx:StockPurchaseAndMatchingPlanMatchingComponentMember","domainClasses":["us-gaap:PlanNameDomain"]},{"name":"calx:StockPurchaseAndMatchingPlanMember","domainClasses":["us-gaap:PlanNameDomain"]},{"name":"calx:StockPurchaseAndMatchingPlanPurchaseComponentMember","domainClasses":["us-gaap:PlanNameDomain"]},{"name":"country:CN","domainClasses":["srt:SegmentGeographicalDomain","us-gaap:IncomeTaxAuthorityDomain"]},{"name":"country:IN","domainClasses":["srt:SegmentGeographicalDomain","us-gaap:IncomeTaxAuthorityDomain"]},{"name":"country:US","domainClasses":["srt:SegmentGeographicalDomain","us-gaap:IncomeTaxAuthorityDomain"]},{"name":"ecd:AggtChngPnsnValInSummryCompstnTblForAplblYrMember","domainClasses":["ecd:AllAdjToCompMember"]},{"name":"ecd:AggtPnsnAdjsSvcCstMember","domainClasses":["ecd:AllAdjToCompMember"]},{"name":"ecd:ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember","domainClasses":["ecd:AllAdjToCompMember"]},{"name":"ecd:ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember","domainClasses":["ecd:AllAdjToCompMember"]},{"name":"ecd:DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember","domainClasses":["ecd:AllAdjToCompMember"]},{"name":"ecd:EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember","domainClasses":["ecd:AllAdjToCompMember"]},{"name":"ecd:EqtyAwrdsAdjsMember","domainClasses":["ecd:AllAdjToCompMember"]},{"name":"ecd:EqtyAwrdsInSummryCompstnTblForAplblYrMember","domainClasses":["ecd:AllAdjToCompMember"]},{"name":"ecd:FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember","domainClasses":["ecd:AllAdjToCompMember"]},{"name":"ecd:NonNeosMember","domainClasses":["ecd:AllIndividualsMember"]},{"name":"ecd:NonPeoNeoMember","domainClasses":["ecd:AllExecutiveCategoriesMember"]},{"name":"ecd:PeoMember","domainClasses":["ecd:AllExecutiveCategoriesMember"]},{"name":"ecd:PnsnAdjsPrrSvcCstMember","domainClasses":["ecd:AllAdjToCompMember"]},{"name":"ecd:PnsnAdjsSvcCstMember","domainClasses":["ecd:AllAdjToCompMember"]},{"name":"ecd:VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember","domainClasses":["ecd:AllAdjToCompMember"]},{"name":"ecd:YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember","domainClasses":["ecd:AllAdjToCompMember"]},{"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":"stpr:PA","domainClasses":["us-gaap:IncomeTaxAuthorityDomain"]},{"name":"stpr:SC","domainClasses":["us-gaap:IncomeTaxAuthorityDomain"]},{"name":"us-gaap:AccountsReceivableMember","domainClasses":["us-gaap:ConcentrationRiskBenchmarkDomain"]},{"name":"us-gaap:AccumulatedNetUnrealizedInvestmentGainLossMember","domainClasses":["us-gaap:EquityComponentDomain"]},{"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:CommercialPaperMember","domainClasses":["us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember","us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"]},{"name":"us-gaap:CommonStockMember","domainClasses":["us-gaap:EquityComponentDomain"]},{"name":"us-gaap:ComputerEquipmentMember","domainClasses":["us-gaap:PropertyPlantAndEquipmentTypeDomain"]},{"name":"us-gaap:CorporateDebtSecuritiesMember","domainClasses":["us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"]},{"name":"us-gaap:CostOfSalesMember","domainClasses":["us-gaap:IncomeStatementLocationDomain"]},{"name":"us-gaap:CustomerConcentrationRiskMember","domainClasses":["us-gaap:ConcentrationRiskTypeDomain"]},{"name":"us-gaap:DomesticCountryMember","domainClasses":["us-gaap:IncomeTaxAuthorityDomain"]},{"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:FairValueInputsLevel1Member","domainClasses":["us-gaap:FairValueMeasurementsFairValueHierarchyDomain"]},{"name":"us-gaap:FairValueInputsLevel2Member","domainClasses":["us-gaap:FairValueMeasurementsFairValueHierarchyDomain"]},{"name":"us-gaap:ForeignCountryMember","domainClasses":["us-gaap:IncomeTaxAuthorityDomain"]},{"name":"us-gaap:ForeignTaxJurisdictionOtherMember","domainClasses":["us-gaap:IncomeTaxAuthorityDomain"]},{"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:MoneyMarketFundsMember","domainClasses":["us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember"]},{"name":"us-gaap:MunicipalNotesMember","domainClasses":["us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"]},{"name":"us-gaap:ResearchAndDevelopmentExpenseMember","domainClasses":["us-gaap:IncomeStatementLocationDomain"]},{"name":"us-gaap:RestrictedStockMember","domainClasses":["us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"]},{"name":"us-gaap:RetainedEarningsMember","domainClasses":["us-gaap:EquityComponentDomain"]},{"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:StateAndLocalTaxJurisdictionOtherMember","domainClasses":["us-gaap:IncomeTaxAuthorityDomain"]},{"name":"us-gaap:StockAppreciationRightsSARSMember","domainClasses":["us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"]},{"name":"us-gaap:SubsequentEventMember","domainClasses":["us-gaap:SubsequentEventTypeDomain"]},{"name":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember","domainClasses":["us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember","us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"]},{"name":"us-gaap:USGovernmentDebtSecuritiesMember","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:PropertyPlantAndEquipmentByTypeAxis","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":"srt:ProductOrServiceAxis","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:StatementEquityComponentsAxis","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:FinancialInstrumentAxis","domainNetwork":"rpt:domain-5","optional":true},{"dimension":"us-gaap:BalanceSheetLocationAxis","domainNetwork":"rpt:domain-6","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-7","optional":true},{"dimension":"us-gaap:FinancialInstrumentAxis","domainNetwork":"rpt:domain-8","optional":true},{"dimension":"srt:RangeAxis","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:RangeAxis","domainNetwork":"rpt:domain-11","optional":true},{"dimension":"srt:ConsolidatedEntitiesAxis","domainNetwork":"rpt:domain-12","optional":true},{"dimension":"srt:StatementGeographicalAxis","domainNetwork":"rpt:domain-13","optional":true},{"dimension":"us-gaap:PropertyPlantAndEquipmentByTypeAxis","domainNetwork":"rpt:domain-14","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:FinancialInstrumentAxis","domainNetwork":"rpt:domain-15","optional":true},{"dimension":"us-gaap:FairValueByFairValueHierarchyLevelAxis","domainNetwork":"rpt:domain-16","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":"us-gaap:IncomeTaxAuthorityAxis","domainNetwork":"rpt:domain-17","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:IncomeTaxAuthorityAxis","domainNetwork":"rpt:domain-18","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":"us-gaap:IncomeTaxAuthorityAxis","domainNetwork":"rpt:domain-19","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:MajorCustomersAxis","domainNetwork":"rpt:domain-20","optional":true},{"dimension":"us-gaap:ConcentrationRiskByTypeAxis","domainNetwork":"rpt:domain-21","optional":true},{"dimension":"us-gaap:ConcentrationRiskByBenchmarkAxis","domainNetwork":"rpt:domain-22","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:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis"}]},{"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}]},{"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":"srt:StatementGeographicalAxis","domainNetwork":"rpt:domain-23","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":"srt:StatementGeographicalAxis","domainNetwork":"rpt:domain-24","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":"us-gaap:StatementBusinessSegmentsAxis","domainNetwork":"rpt:domain-25","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":"us-gaap:AwardTypeAxis","domainNetwork":"rpt:domain-26","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:AwardTypeAxis","domainNetwork":"rpt:domain-27","optional":true},{"dimension":"us-gaap:PlanNameAxis","domainNetwork":"rpt:domain-28","optional":true},{"dimension":"srt:RangeAxis","domainNetwork":"rpt:domain-11","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:AwardTypeAxis","domainNetwork":"rpt:domain-29","optional":true},{"dimension":"us-gaap:PlanNameAxis","domainNetwork":"rpt:domain-30","optional":true},{"dimension":"us-gaap:VestingAxis","domainNetwork":"rpt:domain-31","optional":true},{"dimension":"srt:TitleOfIndividualAxis","domainNetwork":"rpt:domain-32","optional":true},{"dimension":"us-gaap:SubsequentEventTypeAxis","domainNetwork":"rpt:domain-33","optional":true}]},{"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},{"dimension":"us-gaap:AwardTypeAxis","domainNetwork":"rpt:domain-27","optional":true},{"dimension":"us-gaap:PlanNameAxis","domainNetwork":"rpt:domain-34","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":"us-gaap:PlanNameAxis","domainNetwork":"rpt:domain-35","optional":true},{"dimension":"us-gaap:AwardTypeAxis","domainNetwork":"rpt:domain-27","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":"us-gaap:IncomeStatementLocationAxis","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:SubsequentEventTypeAxis","domainNetwork":"rpt:domain-33","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-37","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}]},{"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}]},{"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":"ecd:IndividualAxis","domainNetwork":"rpt:domain-38","optional":true},{"dimension":"us-gaap:AwardTypeAxis","domainNetwork":"rpt:domain-39","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":"ecd:RestatementDateAxis"}]},{"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":"ecd:RestatementDateAxis"},{"dimension":"ecd:IndividualAxis","domainNetwork":"rpt:domain-38","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":"ecd:TradingArrAxis","domainNetwork":"rpt:domain-40","optional":true},{"dimension":"ecd:IndividualAxis","domainNetwork":"rpt:domain-38","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}]},{"name":"rpt:cube-34","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":"ecd:RestatementDateAxis"},{"dimension":"ecd:IndividualAxis","domainNetwork":"rpt:domain-38","optional":true}]},{"name":"rpt:cube-35","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":"ecd:ExecutiveCategoryAxis","domainNetwork":"rpt:domain-41","optional":true},{"dimension":"ecd:IndividualAxis","domainNetwork":"rpt:domain-38","optional":true},{"dimension":"ecd:AdjToCompAxis","domainNetwork":"rpt:domain-42","optional":true}]},{"name":"rpt:cube-36","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-37","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":"ecd:ExecutiveCategoryAxis","domainNetwork":"rpt:domain-41","optional":true},{"dimension":"ecd:IndividualAxis","domainNetwork":"rpt:domain-38","optional":true},{"dimension":"ecd:MeasureAxis"}]},{"name":"rpt:cube-38","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":"ecd:MeasureAxis"}]},{"name":"rpt:cube-39","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":"ecd:IndividualAxis","domainNetwork":"rpt:domain-38","optional":true}]},{"name":"rpt:cube-40","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":"ecd:ExecutiveCategoryAxis","domainNetwork":"rpt:domain-41","optional":true},{"dimension":"ecd:IndividualAxis","domainNetwork":"rpt:domain-38","optional":true},{"dimension":"ecd:MeasureAxis"}]},{"name":"rpt:cube-41","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":"ecd:ExecutiveCategoryAxis","domainNetwork":"rpt:domain-41","optional":true},{"dimension":"ecd:IndividualAxis","domainNetwork":"rpt:domain-38","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: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:AccruedCustomerAdvancesOrRebatesCurrent","labelType":"xbrl:terseLabel","value":"Customer advances or rebates","language":"en-US"},{"forObject":"calx:AccruedCustomerAdvancesOrRebatesCurrent","labelType":"xbrl:label","value":"Accrued Customer Advances or Rebates, Current","language":"en-US"},{"forObject":"calx:AccruedCustomerAdvancesOrRebatesCurrent","labelType":"xbrl:documentation","value":"Accrued customer rebates.","language":"en-US"},{"forObject":"calx:AccruedExcessAndObsoleteInventoryAtContractManufacturer","labelType":"xbrl:terseLabel","value":"Component inventory held by suppliers","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:AccruedFreightCurrent","labelType":"xbrl:terseLabel","value":"Freight","language":"en-US"},{"forObject":"calx:AccruedFreightCurrent","labelType":"xbrl:label","value":"Accrued Freight, Current","language":"en-US"},{"forObject":"calx:AccruedFreightCurrent","labelType":"xbrl:documentation","value":"Accrued Freight, Current","language":"en-US"},{"forObject":"calx:AccruedOperationsCurrent","labelType":"xbrl:terseLabel","value":"Operations","language":"en-US"},{"forObject":"calx:AccruedOperationsCurrent","labelType":"xbrl:label","value":"Accrued Operations, Current","language":"en-US"},{"forObject":"calx:AccruedOperationsCurrent","labelType":"xbrl:documentation","value":"Accrued Operations, Current","language":"en-US"},{"forObject":"calx:AccruedPropertyPlantAndEquipmentCurrent","labelType":"xbrl:terseLabel","value":"Fixed assets","language":"en-US"},{"forObject":"calx:AccruedPropertyPlantAndEquipmentCurrent","labelType":"xbrl:label","value":"Accrued Property, Plant, And Equipment, Current","language":"en-US"},{"forObject":"calx:AccruedPropertyPlantAndEquipmentCurrent","labelType":"xbrl:documentation","value":"Accrued Property, Plant, And Equipment, Current","language":"en-US"},{"forObject":"calx:AmendedAndRestatedEmployeeStockPurchasePlanMember","labelType":"xbrl:terseLabel","value":"Amended and Restated Employee Stock Purchase Plan","language":"en-US"},{"forObject":"calx:AmendedAndRestatedEmployeeStockPurchasePlanMember","labelType":"xbrl:label","value":"Amended And Restated Employee Stock Purchase Plan [Member]","language":"en-US"},{"forObject":"calx:AmendedAndRestatedEmployeeStockPurchasePlanMember","labelType":"xbrl:documentation","value":"Amended And Restated Employee Stock Purchase Plan","language":"en-US"},{"forObject":"calx:AmericasExUSMember","labelType":"xbrl:terseLabel","value":"Americas excluding U.S.","language":"en-US"},{"forObject":"calx:AmericasExUSMember","labelType":"xbrl:label","value":"Americas Ex U.S. [Member]","language":"en-US"},{"forObject":"calx:AmericasExUSMember","labelType":"xbrl:documentation","value":"Americas Ex U.S.","language":"en-US"},{"forObject":"calx:ApplianceMember","labelType":"xbrl:terseLabel","value":"Appliance","language":"en-US"},{"forObject":"calx:ApplianceMember","labelType":"xbrl:label","value":"Appliance [Member]","language":"en-US"},{"forObject":"calx:ApplianceMember","labelType":"xbrl:documentation","value":"Appliance","language":"en-US"},{"forObject":"calx:AuditInformationAbstract","labelType":"xbrl:label","value":"Audit Information [Abstract]","language":"en-US"},{"forObject":"calx:AuditInformationAbstract","labelType":"xbrl:documentation","value":"Audit Information","language":"en-US"},{"forObject":"calx:BoardOfDirectorsMember","labelType":"xbrl:terseLabel","value":"Board of Directors","language":"en-US"},{"forObject":"calx:BoardOfDirectorsMember","labelType":"xbrl:label","value":"Board Of Directors [Member]","language":"en-US"},{"forObject":"calx:BoardOfDirectorsMember","labelType":"xbrl:documentation","value":"Board Of Directors","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:CashCashEquivalentsAndMarketableSecurities","labelType":"xbrl:totalLabel","value":"Total cash, cash equivalents, and marketable securities","language":"en-US"},{"forObject":"calx:CashCashEquivalentsAndMarketableSecurities","labelType":"xbrl:label","value":"Cash, Cash Equivalents, And Marketable Securities","language":"en-US"},{"forObject":"calx:CashCashEquivalentsAndMarketableSecurities","labelType":"xbrl:documentation","value":"Cash, Cash Equivalents, And Marketable Securities","language":"en-US"},{"forObject":"calx:CashCashEquivalentsAndMarketableSecuritiesPolicyPolicyTextBlock","labelType":"xbrl:terseLabel","value":"Cash, Cash Equivalents, and Marketable Securities","language":"en-US"},{"forObject":"calx:CashCashEquivalentsAndMarketableSecuritiesPolicyPolicyTextBlock","labelType":"xbrl:label","value":"Cash, Cash Equivalents, And Marketable Securities, Policy [Policy Text Block]","language":"en-US"},{"forObject":"calx:CashCashEquivalentsAndMarketableSecuritiesPolicyPolicyTextBlock","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: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:CommonStockCapitalSharesReservedForFutureIssuanceSubjectToStockholderApproval","labelType":"xbrl:terseLabel","value":"Reserve for company common stock, subject to stockholder approval (in shares)","language":"en-US"},{"forObject":"calx:CommonStockCapitalSharesReservedForFutureIssuanceSubjectToStockholderApproval","labelType":"xbrl:label","value":"Common Stock, Capital Shares Reserved For Future Issuance, Subject To Stockholder Approval","language":"en-US"},{"forObject":"calx:CommonStockCapitalSharesReservedForFutureIssuanceSubjectToStockholderApproval","labelType":"xbrl:documentation","value":"Common Stock, Capital Shares Reserved For Future Issuance, Subject To Stockholder Approval","language":"en-US"},{"forObject":"calx:ContractWithCustomerAssetExpectedToBeBilledYearOnePercent","labelType":"xbrl:terseLabel","value":"Contract with customer, asset, expected to be billed, percent","language":"en-US"},{"forObject":"calx:ContractWithCustomerAssetExpectedToBeBilledYearOnePercent","labelType":"xbrl:label","value":"Contract With Customer, Asset, Expected To Be Billed, Year One, Percent","language":"en-US"},{"forObject":"calx:ContractWithCustomerAssetExpectedToBeBilledYearOnePercent","labelType":"xbrl:documentation","value":"Contract With Customer, Asset, Expected To Be Billed, Year One, Percent","language":"en-US"},{"forObject":"calx:CostOfGoodsAndServicesSoldAdjusted","labelType":"xbrl:negatedLabel","value":"Adjusted cost of revenue","language":"en-US"},{"forObject":"calx:CostOfGoodsAndServicesSoldAdjusted","labelType":"xbrl:label","value":"Cost Of Goods And Services Sold, Adjusted","language":"en-US"},{"forObject":"calx:CostOfGoodsAndServicesSoldAdjusted","labelType":"xbrl:documentation","value":"Cost Of Goods And Services Sold, Adjusted","language":"en-US"},{"forObject":"calx:CustomerOneMember","labelType":"xbrl:terseLabel","value":"Customer One","language":"en-US"},{"forObject":"calx:CustomerOneMember","labelType":"xbrl:label","value":"Customer One [Member]","language":"en-US"},{"forObject":"calx:CustomerOneMember","labelType":"xbrl:documentation","value":"Customer One","language":"en-US"},{"forObject":"calx:CustomerTwoMember","labelType":"xbrl:terseLabel","value":"Customer Two","language":"en-US"},{"forObject":"calx:CustomerTwoMember","labelType":"xbrl:label","value":"Customer Two [Member]","language":"en-US"},{"forObject":"calx:CustomerTwoMember","labelType":"xbrl:documentation","value":"Customer Two","language":"en-US"},{"forObject":"calx:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrentAndCashEquivalentsAtCarryingValue","labelType":"xbrl:terseLabel","value":"Marketable securities, including cash equivalents","language":"en-US"},{"forObject":"calx:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrentAndCashEquivalentsAtCarryingValue","labelType":"xbrl:label","value":"Debt Securities, Available-For-Sale, Excluding Accrued Interest, Current And Cash Equivalents, At Carrying Value","language":"en-US"},{"forObject":"calx:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrentAndCashEquivalentsAtCarryingValue","labelType":"xbrl:documentation","value":"Debt Securities, Available-For-Sale, Excluding Accrued Interest, Current And Cash Equivalents, At Carrying Value","language":"en-US"},{"forObject":"calx:DeferredTaxAssetLeasingArrangements","labelType":"xbrl:terseLabel","value":"Lease liability","language":"en-US"},{"forObject":"calx:DeferredTaxAssetLeasingArrangements","labelType":"xbrl:label","value":"Deferred Tax Asset, Leasing Arrangements","language":"en-US"},{"forObject":"calx:DeferredTaxAssetLeasingArrangements","labelType":"xbrl:documentation","value":"Deferred Tax Asset, Leasing Arrangements","language":"en-US"},{"forObject":"calx:DeferredTaxAssetsDeferredExpenseCapitalizedResearchAndDevelopmentCosts","labelType":"xbrl:terseLabel","value":"Capitalized R&D","language":"en-US"},{"forObject":"calx:DeferredTaxAssetsDeferredExpenseCapitalizedResearchAndDevelopmentCosts","labelType":"xbrl:label","value":"Deferred Tax Assets, Deferred Expense, Capitalized Research and Development Costs","language":"en-US"},{"forObject":"calx:DeferredTaxAssetsDeferredExpenseCapitalizedResearchAndDevelopmentCosts","labelType":"xbrl:documentation","value":"Deferred Tax Assets, Deferred Expense, Capitalized Research and Development Costs","language":"en-US"},{"forObject":"calx:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensationAmount","labelType":"xbrl:terseLabel","value":"Executive compensation","language":"en-US"},{"forObject":"calx:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensationAmount","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, Nondeductible Expense, Executive Compensation, Amount","language":"en-US"},{"forObject":"calx:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensationAmount","labelType":"xbrl:documentation","value":"Effective Income Tax Rate Reconciliation, Nondeductible Expense, Executive Compensation, Amount","language":"en-US"},{"forObject":"calx:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensationPercent","labelType":"xbrl:terseLabel","value":"Executive compensation","language":"en-US"},{"forObject":"calx:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensationPercent","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, Nondeductible Expense, Executive Compensation, Percent","language":"en-US"},{"forObject":"calx:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensationPercent","labelType":"xbrl:documentation","value":"Effective Income Tax Rate Reconciliation, Nondeductible Expense, Executive Compensation, Percent","language":"en-US"},{"forObject":"calx:EffectiveIncomeTaxRateReconciliationRepatriationOfForeignEarningsLossPercent","labelType":"xbrl:terseLabel","value":"U.S. tax impact of foreign operations","language":"en-US"},{"forObject":"calx:EffectiveIncomeTaxRateReconciliationRepatriationOfForeignEarningsLossPercent","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, Repatriation Of Foreign Earnings (Loss), Percent","language":"en-US"},{"forObject":"calx:EffectiveIncomeTaxRateReconciliationRepatriationOfForeignEarningsLossPercent","labelType":"xbrl:documentation","value":"Effective Income Tax Rate Reconciliation, Repatriation Of Foreign Earnings (Loss), Percent","language":"en-US"},{"forObject":"calx:EffectiveIncomeTaxRateReconciliationTaxAttributeExpirationPercent","labelType":"xbrl:terseLabel","value":"Attribute expiration","language":"en-US"},{"forObject":"calx:EffectiveIncomeTaxRateReconciliationTaxAttributeExpirationPercent","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, Tax Attribute Expiration, Percent","language":"en-US"},{"forObject":"calx:EffectiveIncomeTaxRateReconciliationTaxAttributeExpirationPercent","labelType":"xbrl:documentation","value":"Effective Income Tax Rate Reconciliation, Tax Attribute Expiration, Percent","language":"en-US"},{"forObject":"calx:EffectiveIncomeTaxRateReconciliationTaxCreditForeignAmountNetting","labelType":"xbrl:negatedTerseLabel","value":"Foreign tax credit","language":"en-US"},{"forObject":"calx:EffectiveIncomeTaxRateReconciliationTaxCreditForeignAmountNetting","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, Tax Credit, Foreign, Amount, Netting","language":"en-US"},{"forObject":"calx:EffectiveIncomeTaxRateReconciliationTaxCreditForeignAmountNetting","labelType":"xbrl:documentation","value":"Effective Income Tax Rate Reconciliation, Tax Credit, Foreign, Amount, Netting","language":"en-US"},{"forObject":"calx:EffectiveIncomeTaxRateReconciliationTaxCreditForeignPercentNetting","labelType":"xbrl:negatedTerseLabel","value":"Foreign tax credit","language":"en-US"},{"forObject":"calx:EffectiveIncomeTaxRateReconciliationTaxCreditForeignPercentNetting","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, Tax Credit, Foreign, Percent, Netting","language":"en-US"},{"forObject":"calx:EffectiveIncomeTaxRateReconciliationTaxCreditForeignPercentNetting","labelType":"xbrl:documentation","value":"Effective Income Tax Rate Reconciliation, Tax Credit, Foreign, Percent, Netting","language":"en-US"},{"forObject":"calx:EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationCostNotyetRecognizedToBeRecognizedInYearFour","labelType":"xbrl:terseLabel","value":"Stock-based compensation expense to be recognized four years after filing","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 three years after filing","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 two years after filing","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 next twelve months","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:GeneralAndAdministrativeOperatingExpenseAdjusted","labelType":"xbrl:negatedTerseLabel","value":"Adjusted general and administrative operating expenses","language":"en-US"},{"forObject":"calx:GeneralAndAdministrativeOperatingExpenseAdjusted","labelType":"xbrl:label","value":"General And Administrative Operating Expense, Adjusted","language":"en-US"},{"forObject":"calx:GeneralAndAdministrativeOperatingExpenseAdjusted","labelType":"xbrl:documentation","value":"General And Administrative Operating Expense, Adjusted","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:JohnDurocherMember","labelType":"xbrl:label","value":"John Durocher [Member]","language":"en-US"},{"forObject":"calx:JohnDurocherMember","labelType":"xbrl:documentation","value":"John Durocher","language":"en-US"},{"forObject":"calx:KevinPetersMember","labelType":"xbrl:label","value":"Kevin Peters [Member]","language":"en-US"},{"forObject":"calx:KevinPetersMember","labelType":"xbrl:documentation","value":"Kevin Peters","language":"en-US"},{"forObject":"calx:LesseeOperatingLeaseLiabilityTableTextBlock","labelType":"xbrl:terseLabel","value":"Schedule of Lessee, Operating Leases","language":"en-US"},{"forObject":"calx:LesseeOperatingLeaseLiabilityTableTextBlock","labelType":"xbrl:label","value":"Lessee, Operating Lease Liability [Table Text Block]","language":"en-US"},{"forObject":"calx:LesseeOperatingLeaseLiabilityTableTextBlock","labelType":"xbrl:documentation","value":"Lessee, Operating Lease Liability","language":"en-US"},{"forObject":"calx:MinimumExercisePriceOfStockOptionPercent","labelType":"xbrl:terseLabel","value":"Minimum exercise price of stock option, percentage (as a percent)","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:OperatingLeaseAreaOfOfficeBuilding","labelType":"xbrl:terseLabel","value":"Area of office building","language":"en-US"},{"forObject":"calx:OperatingLeaseAreaOfOfficeBuilding","labelType":"xbrl:label","value":"Operating Lease, Area Of Office Building","language":"en-US"},{"forObject":"calx:OperatingLeaseAreaOfOfficeBuilding","labelType":"xbrl:documentation","value":"Operating Lease, Area Of Office Building","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:PercentOfHistoricalVolatility","labelType":"xbrl:terseLabel","value":"Percent of historical volatility (as a percent)","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 (as a percent)","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:PrepaidExpensesAndOtherAssetsMiscellaneousCurrent","labelType":"xbrl:terseLabel","value":"Prepaid expenses and other current assets","language":"en-US"},{"forObject":"calx:PrepaidExpensesAndOtherAssetsMiscellaneousCurrent","labelType":"xbrl:label","value":"Prepaid Expenses And Other Assets, Miscellaneous, Current","language":"en-US"},{"forObject":"calx:PrepaidExpensesAndOtherAssetsMiscellaneousCurrent","labelType":"xbrl:documentation","value":"Prepaid Expenses And Other Assets, Miscellaneous, Current","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: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:ReportableSegmentMember","labelType":"xbrl:terseLabel","value":"Reportable Segment","language":"en-US"},{"forObject":"calx:ReportableSegmentMember","labelType":"xbrl:label","value":"Reportable Segment [Member]","language":"en-US"},{"forObject":"calx:ReportableSegmentMember","labelType":"xbrl:documentation","value":"Reportable Segment","language":"en-US"},{"forObject":"calx:ResearchAndDevelopmentOperatingExpenseAdjusted","labelType":"xbrl:negatedTerseLabel","value":"Adjusted research and development operating expenses","language":"en-US"},{"forObject":"calx:ResearchAndDevelopmentOperatingExpenseAdjusted","labelType":"xbrl:label","value":"Research And Development Operating Expense, Adjusted","language":"en-US"},{"forObject":"calx:ResearchAndDevelopmentOperatingExpenseAdjusted","labelType":"xbrl:documentation","value":"Research And Development Operating Expense, Adjusted","language":"en-US"},{"forObject":"calx:RestOfWorldMember","labelType":"xbrl:terseLabel","value":"Rest of world","language":"en-US"},{"forObject":"calx:RestOfWorldMember","labelType":"xbrl:label","value":"Rest Of World [Member]","language":"en-US"},{"forObject":"calx:RestOfWorldMember","labelType":"xbrl:documentation","value":"Rest Of World","language":"en-US"},{"forObject":"calx:SECSchedule1209ReserveProductReturnsMember","labelType":"xbrl:terseLabel","value":"Product return liability","language":"en-US"},{"forObject":"calx:SECSchedule1209ReserveProductReturnsMember","labelType":"xbrl:label","value":"SEC Schedule, 12-09, Reserve, Product Returns [Member]","language":"en-US"},{"forObject":"calx:SECSchedule1209ReserveProductReturnsMember","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: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:ScheduleOfChangesInAllowanceForDoubtfulAccountsAndProductReturnLiabilityTableTextBlock","labelType":"xbrl:terseLabel","value":"Schedule of Changes in Allowance for Doubtful Accounts and Product Reserve","language":"en-US"},{"forObject":"calx:ScheduleOfChangesInAllowanceForDoubtfulAccountsAndProductReturnLiabilityTableTextBlock","labelType":"xbrl:label","value":"Schedule Of Changes In Allowance For Doubtful Accounts And Product Return Liability [Table Text Block]","language":"en-US"},{"forObject":"calx:ScheduleOfChangesInAllowanceForDoubtfulAccountsAndProductReturnLiabilityTableTextBlock","labelType":"xbrl:documentation","value":"Schedule Of Changes In Allowance For Doubtful Accounts And Product Return Liability","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:SellingAndMarketingOperatingExpenseAdjusted","labelType":"xbrl:negatedTerseLabel","value":"Adjusted sales and marketing operating expenses","language":"en-US"},{"forObject":"calx:SellingAndMarketingOperatingExpenseAdjusted","labelType":"xbrl:label","value":"Selling And Marketing Operating Expense, Adjusted","language":"en-US"},{"forObject":"calx:SellingAndMarketingOperatingExpenseAdjusted","labelType":"xbrl:documentation","value":"Selling And Marketing Operating Expense, Adjusted","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardDecreaseInNumberOfAdditionalSharesAuthorized","labelType":"xbrl:terseLabel","value":"Decrease in authorized shares (in shares)","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardDecreaseInNumberOfAdditionalSharesAuthorized","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Decrease In Number Of Additional Shares Authorized","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardDecreaseInNumberOfAdditionalSharesAuthorized","labelType":"xbrl:documentation","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Decrease In Number Of Additional Shares Authorized","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEmployeeTerminationPeriodFollowingPurchaseDateToReceiveSharesSubjectToRiskOfForfeiture","labelType":"xbrl:terseLabel","value":"Employee termination employment period (in years)","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:ShareBasedCompensationArrangementByShareBasedPaymentAwardForfeitedPercent","labelType":"xbrl:terseLabel","value":"Shares forfeited, percentage","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardForfeitedPercent","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Forfeited, Percent","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardForfeitedPercent","labelType":"xbrl:documentation","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Forfeited, Percent","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumContributionPercent","labelType":"xbrl:terseLabel","value":"Maximum contribution percent (as a 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: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:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPlans","labelType":"xbrl:terseLabel","value":"Number of plans","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPlans","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Number Of Plans","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPlans","labelType":"xbrl:documentation","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Number Of Plans","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorizedPerPurchasePeriod","labelType":"xbrl:terseLabel","value":"Maximum number of shares allocated 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:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesGrantedIfTargetAchievementPerformanceThresholdNotMetPercent","labelType":"xbrl:terseLabel","value":"Number of shares granted if target achievement performance threshold percentage","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesGrantedIfTargetAchievementPerformanceThresholdNotMetPercent","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Number Of Shares Granted If Target Achievement Performance Threshold Not Met Percent","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesGrantedIfTargetAchievementPerformanceThresholdNotMetPercent","labelType":"xbrl:documentation","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Number Of Shares Granted If Target Achievement Performance Threshold Not Met Percent","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodPercentage","labelType":"xbrl:terseLabel","value":"Grants in period percentage","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodPercentage","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Percentage","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodPercentage","labelType":"xbrl:documentation","value":"Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Percentage","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesAwardTargetAchievementPerformanceMaximumCombinedPayoutPercent","labelType":"xbrl:terseLabel","value":"Maximum combined payout percent","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesAwardTargetAchievementPerformanceMaximumCombinedPayoutPercent","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Shares Award Target Achievement Performance Maximum Combined Payout, Percent","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesAwardTargetAchievementPerformanceMaximumCombinedPayoutPercent","labelType":"xbrl:documentation","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Shares Award Target Achievement Performance Maximum Combined Payout, Percent","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesAwardTargetAchievementPerformanceThresholdPercent","labelType":"xbrl:terseLabel","value":"Target achievement threshold for shares award sliding scale","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:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesAwardTargetAchievementPerformanceThresholdPercentageAchieved","labelType":"xbrl:terseLabel","value":"Performance targets and determined, percentage achieved","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesAwardTargetAchievementPerformanceThresholdPercentageAchieved","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Shares Award Target Achievement Performance Threshold, Percentage Achieved","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesAwardTargetAchievementPerformanceThresholdPercentageAchieved","labelType":"xbrl:documentation","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Shares Award Target Achievement Performance Threshold, Percentage Achieved","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesAwardWeightedPercentForTargetAchievementPerformanceThresholdPercent","labelType":"xbrl:terseLabel","value":"Shares award weighted percent","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesAwardWeightedPercentForTargetAchievementPerformanceThresholdPercent","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Shares Award Weighted Percent For Target Achievement Performance Threshold, Percent","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesAwardWeightedPercentForTargetAchievementPerformanceThresholdPercent","labelType":"xbrl:documentation","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Shares Award Weighted Percent For Target Achievement Performance Threshold, Percent","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardTargetAchievementPerformanceThresholdPercent","labelType":"xbrl:terseLabel","value":"Net income per share, target achievement performance threshold, percent","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardTargetAchievementPerformanceThresholdPercent","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Target Achievement Performance Threshold, Percent","language":"en-US"},{"forObject":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardTargetAchievementPerformanceThresholdPercent","labelType":"xbrl:documentation","value":"Share-Based Compensation Arrangement By Share-Based Payment Award, Target Achievement Performance Threshold, Percent","language":"en-US"},{"forObject":"calx:ShareRepurchaseProgramAdditionalSharesAuthorizedAmount","labelType":"xbrl:terseLabel","value":"Share repurchase program, authorized, increase in amount","language":"en-US"},{"forObject":"calx:ShareRepurchaseProgramAdditionalSharesAuthorizedAmount","labelType":"xbrl:label","value":"Share Repurchase Program, Additional Shares Authorized, Amount","language":"en-US"},{"forObject":"calx:ShareRepurchaseProgramAdditionalSharesAuthorizedAmount","labelType":"xbrl:documentation","value":"Share Repurchase Program, Additional Shares Authorized, Amount","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":"Schedule of 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 schedule to summarize the number of common shares reserved for future issuance. [Table Text Block]","language":"en-US"},{"forObject":"calx:ShortTermMarketableSecuritiesAndCashEquivalentsMember","labelType":"xbrl:terseLabel","value":"Short-Term Marketable Securities and Cash Equivalents","language":"en-US"},{"forObject":"calx:ShortTermMarketableSecuritiesAndCashEquivalentsMember","labelType":"xbrl:label","value":"Short-Term Marketable Securities And Cash Equivalents [Member]","language":"en-US"},{"forObject":"calx:ShortTermMarketableSecuritiesAndCashEquivalentsMember","labelType":"xbrl:documentation","value":"Short-Term Marketable Securities And Cash Equivalents","language":"en-US"},{"forObject":"calx:ShortTermMarketableSecuritiesMember","labelType":"xbrl:terseLabel","value":"Short-Term Marketable Securities","language":"en-US"},{"forObject":"calx:ShortTermMarketableSecuritiesMember","labelType":"xbrl:label","value":"Short-Term Marketable Securities [Member]","language":"en-US"},{"forObject":"calx:ShortTermMarketableSecuritiesMember","labelType":"xbrl:documentation","value":"Short-Term Marketable Securities","language":"en-US"},{"forObject":"calx:SoftwareAndServiceMember","labelType":"xbrl:terseLabel","value":"Software and service","language":"en-US"},{"forObject":"calx:SoftwareAndServiceMember","labelType":"xbrl:label","value":"Software And Service [Member]","language":"en-US"},{"forObject":"calx:SoftwareAndServiceMember","labelType":"xbrl:documentation","value":"Software And Service","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:StandardAndExtendedProductWarrantyAccrualIncreaseForWarrantiesIssuedNet","labelType":"xbrl:verboseLabel","value":"Provision for warranty and retrofit charged to cost of revenue","language":"en-US"},{"forObject":"calx:StandardAndExtendedProductWarrantyAccrualIncreaseForWarrantiesIssuedNet","labelType":"xbrl:label","value":"Standard And Extended Product Warranty Accrual, Increase For Warranties Issued, Net","language":"en-US"},{"forObject":"calx:StandardAndExtendedProductWarrantyAccrualIncreaseForWarrantiesIssuedNet","labelType":"xbrl:documentation","value":"Standard And Extended Product Warranty Accrual, Increase For Warranties Issued, Net","language":"en-US"},{"forObject":"calx:StockPurchaseAndMatchingPlanMatchingComponentMember","labelType":"xbrl:terseLabel","value":"Stock Purchase and Matching Plan, Matching Component","language":"en-US"},{"forObject":"calx:StockPurchaseAndMatchingPlanMatchingComponentMember","labelType":"xbrl:label","value":"Stock Purchase And Matching Plan, Matching Component [Member]","language":"en-US"},{"forObject":"calx:StockPurchaseAndMatchingPlanMatchingComponentMember","labelType":"xbrl:documentation","value":"Stock Purchase And Matching Plan, Matching Component","language":"en-US"},{"forObject":"calx:StockPurchaseAndMatchingPlanMember","labelType":"xbrl:terseLabel","value":"SPMP","language":"en-US"},{"forObject":"calx:StockPurchaseAndMatchingPlanMember","labelType":"xbrl:label","value":"Stock Purchase And Matching Plan [Member]","language":"en-US"},{"forObject":"calx:StockPurchaseAndMatchingPlanMember","labelType":"xbrl:documentation","value":"Stock Purchase And Matching Plan","language":"en-US"},{"forObject":"calx:StockPurchaseAndMatchingPlanPurchaseComponentMember","labelType":"xbrl:terseLabel","value":"Stock Purchase and Matching Plan, Purchase Component","language":"en-US"},{"forObject":"calx:StockPurchaseAndMatchingPlanPurchaseComponentMember","labelType":"xbrl:label","value":"Stock Purchase And Matching Plan, Purchase Component [Member]","language":"en-US"},{"forObject":"calx:StockPurchaseAndMatchingPlanPurchaseComponentMember","labelType":"xbrl:documentation","value":"Stock Purchase And Matching Plan, Purchase Component","language":"en-US"},{"forObject":"calx:StockRepurchasedDuringPeriodAverageCostPerShare","labelType":"xbrl:terseLabel","value":"Stock repurchased average price per share (in dollars per share)","language":"en-US"},{"forObject":"calx:StockRepurchasedDuringPeriodAverageCostPerShare","labelType":"xbrl:label","value":"Stock Repurchased During Period, Average Cost Per Share","language":"en-US"},{"forObject":"calx:StockRepurchasedDuringPeriodAverageCostPerShare","labelType":"xbrl:documentation","value":"Stock Repurchased During Period, Average Cost Per Share","language":"en-US"},{"forObject":"calx:StockRepurchasedDuringPeriodValueExcludingExciseTax","labelType":"xbrl:terseLabel","value":"Stock repurchase during period","language":"en-US"},{"forObject":"calx:StockRepurchasedDuringPeriodValueExcludingExciseTax","labelType":"xbrl:label","value":"Stock Repurchased During Period, Value, Excluding Excise Tax","language":"en-US"},{"forObject":"calx:StockRepurchasedDuringPeriodValueExcludingExciseTax","labelType":"xbrl:documentation","value":"Stock Repurchased During Period, Value, Excluding Excise Tax","language":"en-US"},{"forObject":"calx:StockRepurchasedDuringPeriodValueNetOfExciseTaxAdjustment","labelType":"xbrl:negatedTerseLabel","value":"Repurchase of common stock including excise tax","language":"en-US"},{"forObject":"calx:StockRepurchasedDuringPeriodValueNetOfExciseTaxAdjustment","labelType":"xbrl:label","value":"Stock Repurchased During Period, Value, Net Of Excise Tax Adjustment","language":"en-US"},{"forObject":"calx:StockRepurchasedDuringPeriodValueNetOfExciseTaxAdjustment","labelType":"xbrl:documentation","value":"Stock Repurchased During Period, Value, Net Of Excise Tax Adjustment","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:CN","labelType":"xbrl:terseLabel","value":"China","language":"en-US"},{"forObject":"country:CN","labelType":"xbrl:label","value":"CHINA","language":"en-US"},{"forObject":"country:IN","labelType":"xbrl:terseLabel","value":"India","language":"en-US"},{"forObject":"country:IN","labelType":"xbrl:label","value":"INDIA","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":"cyd:CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock","labelType":"xbrl:label","value":"Cybersecurity Risk Board Committee or Subcommittee Responsible for Oversight [Text Block]","language":"en-US"},{"forObject":"cyd:CybersecurityRiskBoardOfDirectorsOversightTextBlock","labelType":"xbrl:label","value":"Cybersecurity Risk Board of Directors Oversight [Text Block]","language":"en-US"},{"forObject":"cyd:CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock","labelType":"xbrl:label","value":"Cybersecurity Risk Management Expertise of Management Responsible [Text Block]","language":"en-US"},{"forObject":"cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag","labelType":"xbrl:label","value":"Cybersecurity Risk Management Positions or Committees Responsible [Flag]","language":"en-US"},{"forObject":"cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag","labelType":"xbrl:label","value":"Cybersecurity Risk Management Positions or Committees Responsible Report to Board [Flag]","language":"en-US"},{"forObject":"cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock","labelType":"xbrl:label","value":"Cybersecurity Risk Management Positions or Committees Responsible [Text Block]","language":"en-US"},{"forObject":"cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock","labelType":"xbrl:label","value":"Cybersecurity Risk Management Processes for Assessing, Identifying, and Managing Threats [Text Block]","language":"en-US"},{"forObject":"cyd:CybersecurityRiskManagementProcessesIntegratedFlag","labelType":"xbrl:label","value":"Cybersecurity Risk Management Processes Integrated [Flag]","language":"en-US"},{"forObject":"cyd:CybersecurityRiskManagementProcessesIntegratedTextBlock","labelType":"xbrl:label","value":"Cybersecurity Risk Management Processes Integrated [Text Block]","language":"en-US"},{"forObject":"cyd:CybersecurityRiskManagementStrategyAndGovernanceAbstract","labelType":"xbrl:label","value":"Cybersecurity Risk Management, Strategy, and Governance [Abstract]","language":"en-US"},{"forObject":"cyd:CybersecurityRiskManagementStrategyAndGovernanceLineItems","labelType":"xbrl:label","value":"Cybersecurity Risk Management, Strategy, and Governance [Line Items]","language":"en-US"},{"forObject":"cyd:CybersecurityRiskManagementStrategyAndGovernanceTable","labelType":"xbrl:label","value":"Cybersecurity Risk Management, Strategy, and Governance [Table]","language":"en-US"},{"forObject":"cyd:CybersecurityRiskManagementThirdPartyEngagedFlag","labelType":"xbrl:label","value":"Cybersecurity Risk Management Third Party Engaged [Flag]","language":"en-US"},{"forObject":"cyd:CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag","labelType":"xbrl:label","value":"Cybersecurity Risk Materially Affected or Reasonably Likely to Materially Affect Registrant [Flag]","language":"en-US"},{"forObject":"cyd:CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantTextBlock","labelType":"xbrl:label","value":"Cybersecurity Risk Materially Affected or Reasonably Likely to Materially Affect Registrant [Text Block]","language":"en-US"},{"forObject":"cyd:CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock","labelType":"xbrl:label","value":"Cybersecurity Risk Process for Informing Board Committee or Subcommittee Responsible for Oversight [Text Block]","language":"en-US"},{"forObject":"cyd:CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock","labelType":"xbrl:label","value":"Cybersecurity Risk Process for Informing Management or Committees Responsible [Text Block]","language":"en-US"},{"forObject":"cyd:CybersecurityRiskRoleOfManagementTextBlock","labelType":"xbrl:label","value":"Cybersecurity Risk Role of Management [Text Block]","language":"en-US"},{"forObject":"cyd:CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag","labelType":"xbrl:label","value":"Cybersecurity Risk Third Party Oversight and Identification Processes [Flag]","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:AuditorFirmId","labelType":"xbrl:terseLabel","value":"Auditor Firm ID","language":"en-US"},{"forObject":"dei:AuditorFirmId","labelType":"xbrl:label","value":"Auditor Firm ID","language":"en-US"},{"forObject":"dei:AuditorLocation","labelType":"xbrl:terseLabel","value":"Auditor Location","language":"en-US"},{"forObject":"dei:AuditorLocation","labelType":"xbrl:label","value":"Auditor Location","language":"en-US"},{"forObject":"dei:AuditorName","labelType":"xbrl:terseLabel","value":"Auditor Name","language":"en-US"},{"forObject":"dei:AuditorName","labelType":"xbrl:label","value":"Auditor Name","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:DocumentFinStmtErrorCorrectionFlag","labelType":"xbrl:terseLabel","value":"Document Financial Statement Error Correction Flag","language":"en-US"},{"forObject":"dei:DocumentFinStmtErrorCorrectionFlag","labelType":"xbrl:label","value":"Document Financial Statement Error Correction [Flag]","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:EntityAddressAddressLine2","labelType":"xbrl:terseLabel","value":"Entity Address, Address Line Two","language":"en-US"},{"forObject":"dei:EntityAddressAddressLine2","labelType":"xbrl:label","value":"Entity Address, Address Line Two","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":"ecd:Additional402vDisclosureTextBlock","labelType":"xbrl:terseLabel","value":"Additional 402(v) Disclosure","language":"en-US"},{"forObject":"ecd:Additional402vDisclosureTextBlock","labelType":"xbrl:label","value":"Additional 402(v) Disclosure [Text Block]","language":"en-US"},{"forObject":"ecd:AdjToCompAmt","labelType":"xbrl:terseLabel","value":"Adjustment to Compensation, Amount","language":"en-US"},{"forObject":"ecd:AdjToCompAmt","labelType":"xbrl:label","value":"Adjustment to Compensation Amount","language":"en-US"},{"forObject":"ecd:AdjToCompAxis","labelType":"xbrl:terseLabel","value":"Adjustment to Compensation:","language":"en-US"},{"forObject":"ecd:AdjToCompAxis","labelType":"xbrl:label","value":"Adjustment to Compensation [Axis]","language":"en-US"},{"forObject":"ecd:AdjToNonPeoNeoCompFnTextBlock","labelType":"xbrl:terseLabel","value":"Adjustment to Non-PEO NEO Compensation Footnote","language":"en-US"},{"forObject":"ecd:AdjToNonPeoNeoCompFnTextBlock","labelType":"xbrl:label","value":"Adjustment to Non-PEO NEO Compensation Footnote [Text Block]","language":"en-US"},{"forObject":"ecd:AdjToPeoCompFnTextBlock","labelType":"xbrl:terseLabel","value":"Adjustment To PEO Compensation, Footnote","language":"en-US"},{"forObject":"ecd:AdjToPeoCompFnTextBlock","labelType":"xbrl:label","value":"Adjustment To PEO Compensation, Footnote [Text Block]","language":"en-US"},{"forObject":"ecd:AggtChngPnsnValInSummryCompstnTblForAplblYrMember","labelType":"xbrl:terseLabel","value":"Aggregate Change in Present Value of Accumulated Benefit for All Pension Plans Reported in Summary Compensation Table","language":"en-US"},{"forObject":"ecd:AggtChngPnsnValInSummryCompstnTblForAplblYrMember","labelType":"xbrl:label","value":"Aggregate Change in Present Value of Accumulated Benefit for All Pension Plans Reported in Summary Compensation Table [Member]","language":"en-US"},{"forObject":"ecd:AggtErrCompAmt","labelType":"xbrl:terseLabel","value":"Aggregate Erroneous Compensation Amount","language":"en-US"},{"forObject":"ecd:AggtErrCompAmt","labelType":"xbrl:label","value":"Aggregate Erroneous Compensation Amount","language":"en-US"},{"forObject":"ecd:AggtErrCompNotYetDeterminedTextBlock","labelType":"xbrl:terseLabel","value":"Aggregate Erroneous Compensation Not Yet Determined","language":"en-US"},{"forObject":"ecd:AggtErrCompNotYetDeterminedTextBlock","labelType":"xbrl:label","value":"Aggregate Erroneous Compensation Not Yet Determined [Text Block]","language":"en-US"},{"forObject":"ecd:AggtPnsnAdjsSvcCstMember","labelType":"xbrl:terseLabel","value":"Aggregate Pension Adjustments Service Cost","language":"en-US"},{"forObject":"ecd:AggtPnsnAdjsSvcCstMember","labelType":"xbrl:label","value":"Aggregate Pension Adjustments Service Cost [Member]","language":"en-US"},{"forObject":"ecd:AllAdjToCompMember","labelType":"xbrl:terseLabel","value":"All Adjustments to Compensation","language":"en-US"},{"forObject":"ecd:AllAdjToCompMember","labelType":"xbrl:label","value":"All Adjustments to Compensation [Member]","language":"en-US"},{"forObject":"ecd:AllExecutiveCategoriesMember","labelType":"xbrl:terseLabel","value":"All Executive Categories","language":"en-US"},{"forObject":"ecd:AllExecutiveCategoriesMember","labelType":"xbrl:label","value":"All Executive Categories [Member]","language":"en-US"},{"forObject":"ecd:AllIndividualsMember","labelType":"xbrl:terseLabel","value":"All Individuals","language":"en-US"},{"forObject":"ecd:AllIndividualsMember","labelType":"xbrl:label","value":"All Individuals [Member]","language":"en-US"},{"forObject":"ecd:AllTradingArrangementsMember","labelType":"xbrl:terseLabel","value":"All Trading Arrangements","language":"en-US"},{"forObject":"ecd:AllTradingArrangementsMember","labelType":"xbrl:label","value":"All Trading Arrangements [Member]","language":"en-US"},{"forObject":"ecd:AwardExrcPrice","labelType":"xbrl:terseLabel","value":"Exercise Price","language":"en-US"},{"forObject":"ecd:AwardExrcPrice","labelType":"xbrl:label","value":"Award Exercise Price","language":"en-US"},{"forObject":"ecd:AwardGrantDateFairValue","labelType":"xbrl:terseLabel","value":"Fair Value as of Grant Date","language":"en-US"},{"forObject":"ecd:AwardGrantDateFairValue","labelType":"xbrl:label","value":"Award Grant Date Fair Value","language":"en-US"},{"forObject":"ecd:AwardTmgDiscLineItems","labelType":"xbrl:label","value":"Award Timing Disclosures [Line Items]","language":"en-US"},{"forObject":"ecd:AwardTmgHowMnpiCnsdrdTextBlock","labelType":"xbrl:terseLabel","value":"Award Timing, How MNPI Considered","language":"en-US"},{"forObject":"ecd:AwardTmgHowMnpiCnsdrdTextBlock","labelType":"xbrl:label","value":"Award Timing, How MNPI Considered [Text Block]","language":"en-US"},{"forObject":"ecd:AwardTmgMethodTextBlock","labelType":"xbrl:terseLabel","value":"Award Timing Method","language":"en-US"},{"forObject":"ecd:AwardTmgMethodTextBlock","labelType":"xbrl:label","value":"Award Timing Method [Text Block]","language":"en-US"},{"forObject":"ecd:AwardTmgMnpiCnsdrdFlag","labelType":"xbrl:terseLabel","value":"Award Timing MNPI Considered","language":"en-US"},{"forObject":"ecd:AwardTmgMnpiCnsdrdFlag","labelType":"xbrl:label","value":"Award Timing MNPI Considered [Flag]","language":"en-US"},{"forObject":"ecd:AwardTmgMnpiDiscTextBlock","labelType":"xbrl:terseLabel","value":"Award Timing MNPI Disclosure","language":"en-US"},{"forObject":"ecd:AwardTmgMnpiDiscTextBlock","labelType":"xbrl:label","value":"Award Timing MNPI Disclosure [Text Block]","language":"en-US"},{"forObject":"ecd:AwardTmgPredtrmndFlag","labelType":"xbrl:terseLabel","value":"Award Timing Predetermined","language":"en-US"},{"forObject":"ecd:AwardTmgPredtrmndFlag","labelType":"xbrl:label","value":"Award Timing Predetermined [Flag]","language":"en-US"},{"forObject":"ecd:AwardUndrlygSecuritiesAmt","labelType":"xbrl:terseLabel","value":"Underlying Securities","language":"en-US"},{"forObject":"ecd:AwardUndrlygSecuritiesAmt","labelType":"xbrl:label","value":"Award Underlying Securities Amount","language":"en-US"},{"forObject":"ecd:AwardsCloseToMnpiDiscIndName","labelType":"xbrl:terseLabel","value":"Name","language":"en-US"},{"forObject":"ecd:AwardsCloseToMnpiDiscIndName","labelType":"xbrl:label","value":"Awards Close in Time to MNPI Disclosures, Individual Name","language":"en-US"},{"forObject":"ecd:AwardsCloseToMnpiDiscTable","labelType":"xbrl:terseLabel","value":"Awards Close in Time to MNPI Disclosures","language":"en-US"},{"forObject":"ecd:AwardsCloseToMnpiDiscTable","labelType":"xbrl:label","value":"Awards Close in Time to MNPI Disclosures [Table]","language":"en-US"},{"forObject":"ecd:AwardsCloseToMnpiDiscTableTextBlock","labelType":"xbrl:terseLabel","value":"Awards Close in Time to MNPI Disclosures, Table","language":"en-US"},{"forObject":"ecd:AwardsCloseToMnpiDiscTableTextBlock","labelType":"xbrl:label","value":"Awards Close in Time to MNPI Disclosures [Table Text Block]","language":"en-US"},{"forObject":"ecd:ChangedPeerGroupFnTextBlock","labelType":"xbrl:terseLabel","value":"Changed Peer Group, Footnote","language":"en-US"},{"forObject":"ecd:ChangedPeerGroupFnTextBlock","labelType":"xbrl:label","value":"Changed Peer Group, Footnote [Text Block]","language":"en-US"},{"forObject":"ecd:ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember","labelType":"xbrl:terseLabel","value":"Change in Fair Value as of Vesting Date of Prior Year Equity Awards Vested in Covered Year","language":"en-US"},{"forObject":"ecd:ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember","labelType":"xbrl:label","value":"Change in Fair Value as of Vesting Date of Prior Year Equity Awards Vested in Covered Year [Member]","language":"en-US"},{"forObject":"ecd:ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember","labelType":"xbrl:terseLabel","value":"Year-over-Year Change in Fair Value of Equity Awards Granted in Prior Years That are Outstanding and Unvested","language":"en-US"},{"forObject":"ecd:ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember","labelType":"xbrl:label","value":"Year-over-Year Change in Fair Value of Equity Awards Granted in Prior Years That are Outstanding and Unvested [Member]","language":"en-US"},{"forObject":"ecd:CoSelectedMeasureAmt","labelType":"xbrl:terseLabel","value":"Company Selected Measure Amount","language":"en-US"},{"forObject":"ecd:CoSelectedMeasureAmt","labelType":"xbrl:label","value":"Company Selected Measure Amount","language":"en-US"},{"forObject":"ecd:CoSelectedMeasureName","labelType":"xbrl:terseLabel","value":"Company Selected Measure Name","language":"en-US"},{"forObject":"ecd:CoSelectedMeasureName","labelType":"xbrl:label","value":"Company Selected Measure Name","language":"en-US"},{"forObject":"ecd:CompActuallyPaidVsCoSelectedMeasureTextBlock","labelType":"xbrl:terseLabel","value":"Compensation Actually Paid vs. Company Selected Measure","language":"en-US"},{"forObject":"ecd:CompActuallyPaidVsCoSelectedMeasureTextBlock","labelType":"xbrl:label","value":"Compensation Actually Paid vs. Company Selected Measure [Text Block]","language":"en-US"},{"forObject":"ecd:CompActuallyPaidVsNetIncomeTextBlock","labelType":"xbrl:terseLabel","value":"Compensation Actually Paid vs. Net Income","language":"en-US"},{"forObject":"ecd:CompActuallyPaidVsNetIncomeTextBlock","labelType":"xbrl:label","value":"Compensation Actually Paid vs. Net Income [Text Block]","language":"en-US"},{"forObject":"ecd:CompActuallyPaidVsOtherMeasureTextBlock","labelType":"xbrl:terseLabel","value":"Compensation Actually Paid vs. Other Measure","language":"en-US"},{"forObject":"ecd:CompActuallyPaidVsOtherMeasureTextBlock","labelType":"xbrl:label","value":"Compensation Actually Paid vs. Other Measure [Text Block]","language":"en-US"},{"forObject":"ecd:CompActuallyPaidVsTotalShareholderRtnTextBlock","labelType":"xbrl:terseLabel","value":"Compensation Actually Paid vs. Total Shareholder Return","language":"en-US"},{"forObject":"ecd:CompActuallyPaidVsTotalShareholderRtnTextBlock","labelType":"xbrl:label","value":"Compensation Actually Paid vs. Total Shareholder Return [Text Block]","language":"en-US"},{"forObject":"ecd:DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember","labelType":"xbrl:terseLabel","value":"Dividends or Other Earnings Paid on Equity Awards not Otherwise Reflected in Total Compensation for Covered Year","language":"en-US"},{"forObject":"ecd:DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember","labelType":"xbrl:label","value":"Dividends or Other Earnings Paid on Equity Awards not Otherwise Reflected in Total Compensation for Covered Year [Member]","language":"en-US"},{"forObject":"ecd:EqtyAwrdsAdjFnTextBlock","labelType":"xbrl:terseLabel","value":"Equity Awards Adjustments, Footnote","language":"en-US"},{"forObject":"ecd:EqtyAwrdsAdjFnTextBlock","labelType":"xbrl:label","value":"Equity Awards Adjustments, Footnote [Text Block]","language":"en-US"},{"forObject":"ecd:EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember","labelType":"xbrl:terseLabel","value":"Equity Awards Adjustments, Excluding Value Reported in Compensation Table","language":"en-US"},{"forObject":"ecd:EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember","labelType":"xbrl:label","value":"Equity Awards Adjustments, Excluding Value Reported in the Compensation Table [Member]","language":"en-US"},{"forObject":"ecd:EqtyAwrdsAdjsMember","labelType":"xbrl:terseLabel","value":"Equity Awards Adjustments","language":"en-US"},{"forObject":"ecd:EqtyAwrdsAdjsMember","labelType":"xbrl:label","value":"Equity Awards Adjustments [Member]","language":"en-US"},{"forObject":"ecd:EqtyAwrdsInSummryCompstnTblForAplblYrMember","labelType":"xbrl:terseLabel","value":"Aggregate Grant Date Fair Value of Equity Award Amounts Reported in Summary Compensation Table","language":"en-US"},{"forObject":"ecd:EqtyAwrdsInSummryCompstnTblForAplblYrMember","labelType":"xbrl:label","value":"Aggregate Grant Date Fair Value of Equity Award Amounts Reported in Summary Compensation Table [Member]","language":"en-US"},{"forObject":"ecd:EquityValuationAssumptionDifferenceFnTextBlock","labelType":"xbrl:terseLabel","value":"Equity Valuation Assumption Difference, Footnote","language":"en-US"},{"forObject":"ecd:EquityValuationAssumptionDifferenceFnTextBlock","labelType":"xbrl:label","value":"Equity Valuation Assumption Difference, Footnote [Text Block]","language":"en-US"},{"forObject":"ecd:ErrCompAnalysisTextBlock","labelType":"xbrl:terseLabel","value":"Erroneous Compensation Analysis","language":"en-US"},{"forObject":"ecd:ErrCompAnalysisTextBlock","labelType":"xbrl:label","value":"Erroneous Compensation Analysis [Text Block]","language":"en-US"},{"forObject":"ecd:ErrCompRecoveryTable","labelType":"xbrl:terseLabel","value":"Erroneously Awarded Compensation Recovery","language":"en-US"},{"forObject":"ecd:ErrCompRecoveryTable","labelType":"xbrl:label","value":"Erroneously Awarded Compensation Recovery [Table]","language":"en-US"},{"forObject":"ecd:ExecutiveCategoryAxis","labelType":"xbrl:terseLabel","value":"Executive Category:","language":"en-US"},{"forObject":"ecd:ExecutiveCategoryAxis","labelType":"xbrl:label","value":"Executive Category [Axis]","language":"en-US"},{"forObject":"ecd:ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt","labelType":"xbrl:terseLabel","value":"Forgone Recovery due to Disqualification of Tax Benefits, Amount","language":"en-US"},{"forObject":"ecd:ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt","labelType":"xbrl:label","value":"Forgone Recovery due to Disqualification of Tax Benefits, Amount","language":"en-US"},{"forObject":"ecd:ForgoneRecoveryDueToExpenseOfEnforcementAmt","labelType":"xbrl:terseLabel","value":"Forgone Recovery due to Expense of Enforcement, Amount","language":"en-US"},{"forObject":"ecd:ForgoneRecoveryDueToExpenseOfEnforcementAmt","labelType":"xbrl:label","value":"Forgone Recovery due to Expense of Enforcement, Amount","language":"en-US"},{"forObject":"ecd:ForgoneRecoveryDueToViolationOfHomeCountryLawAmt","labelType":"xbrl:terseLabel","value":"Forgone Recovery due to Violation of Home Country Law, Amount","language":"en-US"},{"forObject":"ecd:ForgoneRecoveryDueToViolationOfHomeCountryLawAmt","labelType":"xbrl:label","value":"Forgone Recovery due to Violation of Home Country Law, Amount","language":"en-US"},{"forObject":"ecd:ForgoneRecoveryExplanationOfImpracticabilityTextBlock","labelType":"xbrl:terseLabel","value":"Forgone Recovery, Explanation of Impracticability","language":"en-US"},{"forObject":"ecd:ForgoneRecoveryExplanationOfImpracticabilityTextBlock","labelType":"xbrl:label","value":"Forgone Recovery, Explanation of Impracticability [Text Block]","language":"en-US"},{"forObject":"ecd:ForgoneRecoveryIndName","labelType":"xbrl:terseLabel","value":"Name","language":"en-US"},{"forObject":"ecd:ForgoneRecoveryIndName","labelType":"xbrl:label","value":"Forgone Recovery, Individual Name","language":"en-US"},{"forObject":"ecd:FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember","labelType":"xbrl:terseLabel","value":"Prior Year End Fair Value of Equity Awards Granted in Any Prior Year that Fail to Meet Applicable Vesting Conditions During Covered Year","language":"en-US"},{"forObject":"ecd:FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember","labelType":"xbrl:label","value":"Prior Year End Fair Value of Equity Awards Granted in Any Prior Year that Fail to Meet Applicable Vesting Conditions During Covered Year [Member]","language":"en-US"},{"forObject":"ecd:IndividualAxis","labelType":"xbrl:terseLabel","value":"Individual:","language":"en-US"},{"forObject":"ecd:IndividualAxis","labelType":"xbrl:label","value":"Individual [Axis]","language":"en-US"},{"forObject":"ecd:InsiderTradingArrLineItems","labelType":"xbrl:label","value":"Insider Trading Arrangements [Line Items]","language":"en-US"},{"forObject":"ecd:InsiderTradingPoliciesProcLineItems","labelType":"xbrl:label","value":"Insider Trading Policies and Procedures [Line Items]","language":"en-US"},{"forObject":"ecd:InsiderTrdPoliciesProcAdoptedFlag","labelType":"xbrl:terseLabel","value":"Insider Trading Policies and Procedures Adopted","language":"en-US"},{"forObject":"ecd:InsiderTrdPoliciesProcAdoptedFlag","labelType":"xbrl:label","value":"Insider Trading Policies and Procedures Adopted [Flag]","language":"en-US"},{"forObject":"ecd:InsiderTrdPoliciesProcNotAdoptedTextBlock","labelType":"xbrl:terseLabel","value":"Insider Trading Policies and Procedures Not Adopted","language":"en-US"},{"forObject":"ecd:InsiderTrdPoliciesProcNotAdoptedTextBlock","labelType":"xbrl:label","value":"Insider Trading Policies and Procedures Not Adopted [Text Block]","language":"en-US"},{"forObject":"ecd:MeasureAxis","labelType":"xbrl:terseLabel","value":"Measure:","language":"en-US"},{"forObject":"ecd:MeasureAxis","labelType":"xbrl:label","value":"Measure [Axis]","language":"en-US"},{"forObject":"ecd:MeasureName","labelType":"xbrl:terseLabel","value":"Name","language":"en-US"},{"forObject":"ecd:MeasureName","labelType":"xbrl:label","value":"Measure Name","language":"en-US"},{"forObject":"ecd:MnpiDiscTimedForCompValFlag","labelType":"xbrl:terseLabel","value":"MNPI Disclosure Timed for Compensation Value","language":"en-US"},{"forObject":"ecd:MnpiDiscTimedForCompValFlag","labelType":"xbrl:label","value":"MNPI Disclosure Timed for Compensation Value [Flag]","language":"en-US"},{"forObject":"ecd:MtrlTermsOfTrdArrTextBlock","labelType":"xbrl:terseLabel","value":"Material Terms of Trading Arrangement","language":"en-US"},{"forObject":"ecd:MtrlTermsOfTrdArrTextBlock","labelType":"xbrl:label","value":"Material Terms of Trading Arrangement [Text Block]","language":"en-US"},{"forObject":"ecd:NamedExecutiveOfficersFnTextBlock","labelType":"xbrl:terseLabel","value":"Named Executive Officers, Footnote","language":"en-US"},{"forObject":"ecd:NamedExecutiveOfficersFnTextBlock","labelType":"xbrl:label","value":"Named Executive Officers, Footnote [Text Block]","language":"en-US"},{"forObject":"ecd:NonGaapMeasureDescriptionTextBlock","labelType":"xbrl:terseLabel","value":"Non-GAAP Measure Description","language":"en-US"},{"forObject":"ecd:NonGaapMeasureDescriptionTextBlock","labelType":"xbrl:label","value":"Non-GAAP Measure Description [Text Block]","language":"en-US"},{"forObject":"ecd:NonNeosMember","labelType":"xbrl:terseLabel","value":"Non-NEOs","language":"en-US"},{"forObject":"ecd:NonNeosMember","labelType":"xbrl:label","value":"Non-NEOs [Member]","language":"en-US"},{"forObject":"ecd:NonPeoNeoAvgCompActuallyPaidAmt","labelType":"xbrl:terseLabel","value":"Non-PEO NEO Average Compensation Actually Paid Amount","language":"en-US"},{"forObject":"ecd:NonPeoNeoAvgCompActuallyPaidAmt","labelType":"xbrl:label","value":"Non-PEO NEO Average Compensation Actually Paid Amount","language":"en-US"},{"forObject":"ecd:NonPeoNeoAvgTotalCompAmt","labelType":"xbrl:terseLabel","value":"Non-PEO NEO Average Total Compensation Amount","language":"en-US"},{"forObject":"ecd:NonPeoNeoAvgTotalCompAmt","labelType":"xbrl:label","value":"Non-PEO NEO Average Total Compensation Amount","language":"en-US"},{"forObject":"ecd:NonPeoNeoMember","labelType":"xbrl:terseLabel","value":"Non-PEO NEO","language":"en-US"},{"forObject":"ecd:NonPeoNeoMember","labelType":"xbrl:label","value":"Non-PEO NEO [Member]","language":"en-US"},{"forObject":"ecd:NonRule10b51ArrAdoptedFlag","labelType":"xbrl:terseLabel","value":"Non-Rule 10b5-1 Arrangement Adopted","language":"en-US"},{"forObject":"ecd:NonRule10b51ArrAdoptedFlag","labelType":"xbrl:label","value":"Non-Rule 10b5-1 Arrangement Adopted [Flag]","language":"en-US"},{"forObject":"ecd:NonRule10b51ArrTrmntdFlag","labelType":"xbrl:terseLabel","value":"Non-Rule 10b5-1 Arrangement Terminated","language":"en-US"},{"forObject":"ecd:NonRule10b51ArrTrmntdFlag","labelType":"xbrl:label","value":"Non-Rule 10b5-1 Arrangement Terminated [Flag]","language":"en-US"},{"forObject":"ecd:OtherPerfMeasureAmt","labelType":"xbrl:terseLabel","value":"Other Performance Measure, Amount","language":"en-US"},{"forObject":"ecd:OtherPerfMeasureAmt","labelType":"xbrl:label","value":"Other Performance Measure, Amount","language":"en-US"},{"forObject":"ecd:OutstandingAggtErrCompAmt","labelType":"xbrl:terseLabel","value":"Outstanding Aggregate Erroneous Compensation Amount","language":"en-US"},{"forObject":"ecd:OutstandingAggtErrCompAmt","labelType":"xbrl:label","value":"Outstanding Aggregate Erroneous Compensation Amount","language":"en-US"},{"forObject":"ecd:OutstandingRecoveryCompAmt","labelType":"xbrl:terseLabel","value":"Compensation Amount","language":"en-US"},{"forObject":"ecd:OutstandingRecoveryCompAmt","labelType":"xbrl:label","value":"Outstanding Recovery Compensation Amount","language":"en-US"},{"forObject":"ecd:OutstandingRecoveryIndName","labelType":"xbrl:terseLabel","value":"Name","language":"en-US"},{"forObject":"ecd:OutstandingRecoveryIndName","labelType":"xbrl:label","value":"Outstanding Recovery, Individual Name","language":"en-US"},{"forObject":"ecd:PayVsPerformanceDisclosureLineItems","labelType":"xbrl:label","value":"Pay vs Performance Disclosure [Line Items]","language":"en-US"},{"forObject":"ecd:PeerGroupIssuersFnTextBlock","labelType":"xbrl:terseLabel","value":"Peer Group Issuers, Footnote","language":"en-US"},{"forObject":"ecd:PeerGroupIssuersFnTextBlock","labelType":"xbrl:label","value":"Peer Group Issuers, Footnote [Text Block]","language":"en-US"},{"forObject":"ecd:PeerGroupTotalShareholderRtnAmt","labelType":"xbrl:terseLabel","value":"Peer Group Total Shareholder Return Amount","language":"en-US"},{"forObject":"ecd:PeerGroupTotalShareholderRtnAmt","labelType":"xbrl:label","value":"Peer Group Total Shareholder Return Amount","language":"en-US"},{"forObject":"ecd:PeoActuallyPaidCompAmt","labelType":"xbrl:terseLabel","value":"PEO Actually Paid Compensation Amount","language":"en-US"},{"forObject":"ecd:PeoActuallyPaidCompAmt","labelType":"xbrl:label","value":"PEO Actually Paid Compensation Amount","language":"en-US"},{"forObject":"ecd:PeoMember","labelType":"xbrl:terseLabel","value":"PEO","language":"en-US"},{"forObject":"ecd:PeoMember","labelType":"xbrl:label","value":"PEO [Member]","language":"en-US"},{"forObject":"ecd:PeoName","labelType":"xbrl:terseLabel","value":"PEO Name","language":"en-US"},{"forObject":"ecd:PeoName","labelType":"xbrl:label","value":"PEO Name","language":"en-US"},{"forObject":"ecd:PeoTotalCompAmt","labelType":"xbrl:terseLabel","value":"PEO Total Compensation Amount","language":"en-US"},{"forObject":"ecd:PeoTotalCompAmt","labelType":"xbrl:label","value":"PEO Total Compensation Amount","language":"en-US"},{"forObject":"ecd:PnsnAdjsPrrSvcCstMember","labelType":"xbrl:terseLabel","value":"Pension Adjustments Prior Service Cost","language":"en-US"},{"forObject":"ecd:PnsnAdjsPrrSvcCstMember","labelType":"xbrl:label","value":"Pension Adjustments Prior Service Cost [Member]","language":"en-US"},{"forObject":"ecd:PnsnAdjsSvcCstMember","labelType":"xbrl:terseLabel","value":"Pension Adjustments Service Cost","language":"en-US"},{"forObject":"ecd:PnsnAdjsSvcCstMember","labelType":"xbrl:label","value":"Pension Adjustments Service Cost [Member]","language":"en-US"},{"forObject":"ecd:PnsnBnftsAdjFnTextBlock","labelType":"xbrl:terseLabel","value":"Pension Benefits Adjustments, Footnote","language":"en-US"},{"forObject":"ecd:PnsnBnftsAdjFnTextBlock","labelType":"xbrl:label","value":"Pension Benefits Adjustments, Footnote [Text Block]","language":"en-US"},{"forObject":"ecd:PvpTable","labelType":"xbrl:terseLabel","value":"Pay vs Performance Disclosure","language":"en-US"},{"forObject":"ecd:PvpTable","labelType":"xbrl:label","value":"Pay vs Performance Disclosure [Table]","language":"en-US"},{"forObject":"ecd:PvpTableTextBlock","labelType":"xbrl:terseLabel","value":"Pay vs Performance Disclosure, Table","language":"en-US"},{"forObject":"ecd:PvpTableTextBlock","labelType":"xbrl:label","value":"Pay vs Performance [Table Text Block]","language":"en-US"},{"forObject":"ecd:RecoveryOfErrCompDisclosureLineItems","labelType":"xbrl:label","value":"Recovery of Erroneously Awarded Compensation Disclosure [Line Items]","language":"en-US"},{"forObject":"ecd:RestatementDateAxis","labelType":"xbrl:terseLabel","value":"Restatement Determination Date:","language":"en-US"},{"forObject":"ecd:RestatementDateAxis","labelType":"xbrl:label","value":"Restatement Determination Date [Axis]","language":"en-US"},{"forObject":"ecd:RestatementDeterminationDate","labelType":"xbrl:terseLabel","value":"Restatement Determination Date","language":"en-US"},{"forObject":"ecd:RestatementDeterminationDate","labelType":"xbrl:label","value":"Restatement Determination Date","language":"en-US"},{"forObject":"ecd:RestatementDoesNotRequireRecoveryTextBlock","labelType":"xbrl:terseLabel","value":"Restatement does not require Recovery","language":"en-US"},{"forObject":"ecd:RestatementDoesNotRequireRecoveryTextBlock","labelType":"xbrl:label","value":"Restatement Does Not Require Recovery [Text Block]","language":"en-US"},{"forObject":"ecd:Rule10b51ArrAdoptedFlag","labelType":"xbrl:terseLabel","value":"Rule 10b5-1 Arrangement Adopted","language":"en-US"},{"forObject":"ecd:Rule10b51ArrAdoptedFlag","labelType":"xbrl:label","value":"Rule 10b5-1 Arrangement Adopted [Flag]","language":"en-US"},{"forObject":"ecd:Rule10b51ArrTrmntdFlag","labelType":"xbrl:terseLabel","value":"Rule 10b5-1 Arrangement Terminated","language":"en-US"},{"forObject":"ecd:Rule10b51ArrTrmntdFlag","labelType":"xbrl:label","value":"Rule 10b5-1 Arrangement Terminated [Flag]","language":"en-US"},{"forObject":"ecd:StkPrcOrTsrEstimationMethodTextBlock","labelType":"xbrl:terseLabel","value":"Stock Price or TSR Estimation Method","language":"en-US"},{"forObject":"ecd:StkPrcOrTsrEstimationMethodTextBlock","labelType":"xbrl:label","value":"Stock Price or TSR Estimation Method [Text Block]","language":"en-US"},{"forObject":"ecd:TabularListTableTextBlock","labelType":"xbrl:terseLabel","value":"Tabular List, Table","language":"en-US"},{"forObject":"ecd:TabularListTableTextBlock","labelType":"xbrl:label","value":"Tabular List [Table Text Block]","language":"en-US"},{"forObject":"ecd:TotalShareholderRtnAmt","labelType":"xbrl:terseLabel","value":"Total Shareholder Return Amount","language":"en-US"},{"forObject":"ecd:TotalShareholderRtnAmt","labelType":"xbrl:label","value":"Total Shareholder Return Amount","language":"en-US"},{"forObject":"ecd:TotalShareholderRtnVsPeerGroupTextBlock","labelType":"xbrl:terseLabel","value":"Total Shareholder Return Vs Peer Group","language":"en-US"},{"forObject":"ecd:TotalShareholderRtnVsPeerGroupTextBlock","labelType":"xbrl:label","value":"Total Shareholder Return Vs Peer Group [Text Block]","language":"en-US"},{"forObject":"ecd:TradingArrAxis","labelType":"xbrl:terseLabel","value":"Trading Arrangement:","language":"en-US"},{"forObject":"ecd:TradingArrAxis","labelType":"xbrl:label","value":"Trading Arrangement [Axis]","language":"en-US"},{"forObject":"ecd:TradingArrByIndTable","labelType":"xbrl:terseLabel","value":"Trading Arrangements, by Individual","language":"en-US"},{"forObject":"ecd:TradingArrByIndTable","labelType":"xbrl:label","value":"Trading Arrangements, by Individual [Table]","language":"en-US"},{"forObject":"ecd:TrdArrAdoptionDate","labelType":"xbrl:terseLabel","value":"Adoption Date","language":"en-US"},{"forObject":"ecd:TrdArrAdoptionDate","labelType":"xbrl:label","value":"Trading Arrangement Adoption Date","language":"en-US"},{"forObject":"ecd:TrdArrDuration","labelType":"xbrl:terseLabel","value":"Arrangement Duration","language":"en-US"},{"forObject":"ecd:TrdArrDuration","labelType":"xbrl:label","value":"Trading Arrangement Duration","language":"en-US"},{"forObject":"ecd:TrdArrExpirationDate","labelType":"xbrl:terseLabel","value":"Expiration Date","language":"en-US"},{"forObject":"ecd:TrdArrExpirationDate","labelType":"xbrl:label","value":"Trading Arrangement Expiration Date","language":"en-US"},{"forObject":"ecd:TrdArrIndName","labelType":"xbrl:terseLabel","value":"Name","language":"en-US"},{"forObject":"ecd:TrdArrIndName","labelType":"xbrl:label","value":"Trading Arrangement, Individual Name","language":"en-US"},{"forObject":"ecd:TrdArrIndTitle","labelType":"xbrl:terseLabel","value":"Title","language":"en-US"},{"forObject":"ecd:TrdArrIndTitle","labelType":"xbrl:label","value":"Trading Arrangement, Individual Title","language":"en-US"},{"forObject":"ecd:TrdArrSecuritiesAggAvailAmt","labelType":"xbrl:terseLabel","value":"Aggregate Available","language":"en-US"},{"forObject":"ecd:TrdArrSecuritiesAggAvailAmt","labelType":"xbrl:label","value":"Trading Arrangement, Securities Aggregate Available Amount","language":"en-US"},{"forObject":"ecd:TrdArrTerminationDate","labelType":"xbrl:terseLabel","value":"Termination Date","language":"en-US"},{"forObject":"ecd:TrdArrTerminationDate","labelType":"xbrl:label","value":"Trading Arrangement Termination Date","language":"en-US"},{"forObject":"ecd:UndrlygSecurityMktPriceChngPct","labelType":"xbrl:terseLabel","value":"Underlying Security Market Price Change","language":"en-US"},{"forObject":"ecd:UndrlygSecurityMktPriceChngPct","labelType":"xbrl:label","value":"Underlying Security Market Price Change, Percent","language":"en-US"},{"forObject":"ecd:VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember","labelType":"xbrl:terseLabel","value":"Vesting Date Fair Value of Equity Awards Granted and Vested in Covered Year","language":"en-US"},{"forObject":"ecd:VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember","labelType":"xbrl:label","value":"Vesting Date Fair Value of Equity Awards Granted and Vested in Covered Year [Member]","language":"en-US"},{"forObject":"ecd:YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember","labelType":"xbrl:terseLabel","value":"Year-end Fair Value of Equity Awards Granted in Covered Year that are Outstanding and Unvested","language":"en-US"},{"forObject":"ecd:YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember","labelType":"xbrl:label","value":"Year-end Fair Value of Equity Awards Granted in Covered Year that are Outstanding and Unvested [Member]","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: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:SegmentGeographicalDomain","labelType":"xbrl:terseLabel","value":"Geographical [Domain]","language":"en-US"},{"forObject":"srt:SegmentGeographicalDomain","labelType":"xbrl:label","value":"Geographical [Domain]","language":"en-US"},{"forObject":"srt:ShareRepurchaseProgramLineItems","labelType":"xbrl:terseLabel","value":"Share Repurchase Program [Line Items]","language":"en-US"},{"forObject":"srt:ShareRepurchaseProgramLineItems","labelType":"xbrl:label","value":"Share Repurchase Program [Line Items]","language":"en-US"},{"forObject":"srt:ShareRepurchaseProgramTable","labelType":"xbrl:terseLabel","value":"Share Repurchase Program [Table]","language":"en-US"},{"forObject":"srt:ShareRepurchaseProgramTable","labelType":"xbrl:label","value":"Share Repurchase Program [Table]","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 and Position [Axis]","language":"en-US"},{"forObject":"srt:TitleOfIndividualAxis","labelType":"xbrl:label","value":"Title and Position [Axis]","language":"en-US"},{"forObject":"srt:TitleOfIndividualWithRelationshipToEntityDomain","labelType":"xbrl:terseLabel","value":"Title and Position [Domain]","language":"en-US"},{"forObject":"srt:TitleOfIndividualWithRelationshipToEntityDomain","labelType":"xbrl:label","value":"Title and Position [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":"stpr:PA","labelType":"xbrl:terseLabel","value":"Pennsylvania","language":"en-US"},{"forObject":"stpr:PA","labelType":"xbrl:label","value":"PENNSYLVANIA","language":"en-US"},{"forObject":"stpr:SC","labelType":"xbrl:terseLabel","value":"South Carolina","language":"en-US"},{"forObject":"stpr:SC","labelType":"xbrl:label","value":"SOUTH CAROLINA","language":"en-US"},{"forObject":"us-gaap:AOCIAttributableToParentNetOfTaxRollForward","labelType":"xbrl:terseLabel","value":"AOCI Attributable to Parent, Net of Tax [Roll Forward]","language":"en-US"},{"forObject":"us-gaap:AOCIAttributableToParentNetOfTaxRollForward","labelType":"xbrl:label","value":"AOCI Attributable to Parent, Net of Tax [Roll Forward]","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: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":"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:AccretionAmortizationOfDiscountsAndPremiumsInvestments","labelType":"xbrl:negatedTerseLabel","value":"Net accretion of available-for-sale securities","language":"en-US"},{"forObject":"us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments","labelType":"xbrl:label","value":"Accretion (Amortization) of Discounts and Premiums, Investments","language":"en-US"},{"forObject":"us-gaap:AccruedInsuranceCurrent","labelType":"xbrl:terseLabel","value":"Insurance","language":"en-US"},{"forObject":"us-gaap:AccruedInsuranceCurrent","labelType":"xbrl:label","value":"Accrued Insurance, Current","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:AccumulatedNetUnrealizedInvestmentGainLossMember","labelType":"xbrl:terseLabel","value":"Unrealized Gains and Losses on Available-for-Sale Marketable Securities","language":"en-US"},{"forObject":"us-gaap:AccumulatedNetUnrealizedInvestmentGainLossMember","labelType":"xbrl:label","value":"AOCI, Accumulated Gain (Loss), Debt Securities, Available-for-Sale, Parent [Member]","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: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":"Adjustment to Reconcile Net Income to Cash Provided by (Used in) Operating Activity [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: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:BalanceSheetLocationAxis","labelType":"xbrl:terseLabel","value":"Statement of Financial Position Location, Balance [Axis]","language":"en-US"},{"forObject":"us-gaap:BalanceSheetLocationAxis","labelType":"xbrl:label","value":"Statement of Financial Position Location, Balance [Axis]","language":"en-US"},{"forObject":"us-gaap:BalanceSheetLocationDomain","labelType":"xbrl:terseLabel","value":"Statement of Financial Position Location, Balance [Domain]","language":"en-US"},{"forObject":"us-gaap:BalanceSheetLocationDomain","labelType":"xbrl:label","value":"Statement of Financial Position Location, Balance [Domain]","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: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:CapitalizedContractCostImpairmentLoss","labelType":"xbrl:terseLabel","value":"Capitalized contract cost, impairment","language":"en-US"},{"forObject":"us-gaap:CapitalizedContractCostImpairmentLoss","labelType":"xbrl:label","value":"Capitalized Contract Cost, Impairment Loss","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:totalLabel","value":"Cash and cash equivalents","language":"en-US"},{"forObject":"us-gaap:CashAndCashEquivalentsAtCarryingValue","labelType":"xbrl:label","value":"Cash and Cash Equivalent","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:verboseLabel","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 and Marketable Securities","language":"en-US"},{"forObject":"us-gaap:CashCashEquivalentsAndMarketableSecuritiesTextBlock","labelType":"xbrl:label","value":"Cash, Cash Equivalent, and Marketable Security [Text Block]","language":"en-US"},{"forObject":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","labelType":"xbrl:periodStartLabel","value":"Cash and cash equivalents 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:label","value":"Cash, Cash Equivalent, Restricted Cash, and Restricted Cash Equivalent, Continuing Operation","language":"en-US"},{"forObject":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect","labelType":"xbrl:totalLabel","value":"Net increase (decrease) in cash and cash equivalents","language":"en-US"},{"forObject":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect","labelType":"xbrl:label","value":"Cash, Cash Equivalent, Restricted Cash, and Restricted Cash Equivalent, Period Increase (Decrease), Including Exchange Rate Effect and Discontinued Operation","language":"en-US"},{"forObject":"us-gaap:CashEquivalentsAtCarryingValue","labelType":"xbrl:terseLabel","value":"Cash equivalents","language":"en-US"},{"forObject":"us-gaap:CashEquivalentsAtCarryingValue","labelType":"xbrl:label","value":"Cash Equivalents, at Carrying Value","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:CommercialPaperMember","labelType":"xbrl:terseLabel","value":"Commercial paper","language":"en-US"},{"forObject":"us-gaap:CommercialPaperMember","labelType":"xbrl:label","value":"Commercial Paper [Member]","language":"en-US"},{"forObject":"us-gaap:CommitmentsAndContingencies","labelType":"xbrl:verboseLabel","value":"Commitments and contingencies (See Note 5)","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:verboseLabel","value":"Reserve for company common stock (in shares)","language":"en-US"},{"forObject":"us-gaap:CommonStockCapitalSharesReservedForFutureIssuance","labelType":"xbrl:terseLabel","value":"Shares available for future issuance (in shares)","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:CommonStockDividendsPerShareCashPaid","labelType":"xbrl:terseLabel","value":"Dividends paid (in dollars per share)","language":"en-US"},{"forObject":"us-gaap:CommonStockDividendsPerShareCashPaid","labelType":"xbrl:label","value":"Common Stock, Dividends, Per Share, Cash Paid","language":"en-US"},{"forObject":"us-gaap:CommonStockDividendsPerShareDeclared","labelType":"xbrl:terseLabel","value":"Dividends declared (in dollars per share)","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":"Balance at beginning of period (in shares)","language":"en-US"},{"forObject":"us-gaap:CommonStockSharesOutstanding","labelType":"xbrl:periodEndLabel","value":"Balance at end of period (in 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; 67,120 shares issued and outstanding as of December 31, 2025, and 66,434 shares issued and outstanding as of December 31, 2025","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:ComprehensiveIncomeNetOfTax","labelType":"xbrl:totalLabel","value":"Comprehensive income (loss)","language":"en-US"},{"forObject":"us-gaap:ComprehensiveIncomeNetOfTax","labelType":"xbrl:label","value":"Comprehensive Income (Loss), Net of Tax, Attributable to Parent","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: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: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:terseLabel","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: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: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:CorporateDebtSecuritiesMember","labelType":"xbrl:terseLabel","value":"Corporate debt securities","language":"en-US"},{"forObject":"us-gaap:CorporateDebtSecuritiesMember","labelType":"xbrl:label","value":"Corporate Debt Securities [Member]","language":"en-US"},{"forObject":"us-gaap:CostOfGoodsAndServicesSold","labelType":"xbrl:terseLabel","value":"Total cost of revenue","language":"en-US"},{"forObject":"us-gaap:CostOfGoodsAndServicesSold","labelType":"xbrl:label","value":"Cost of Product and Service Sold","language":"en-US"},{"forObject":"us-gaap:CostOfRevenueAbstract","labelType":"xbrl:terseLabel","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:CostOfSalesMember","labelType":"xbrl:terseLabel","value":"Cost of revenue","language":"en-US"},{"forObject":"us-gaap:CostOfSalesMember","labelType":"xbrl:label","value":"Cost of Sales [Member]","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:CreditLossFinancialInstrumentPolicyTextBlock","labelType":"xbrl:terseLabel","value":"Allowance for Doubtful Accounts","language":"en-US"},{"forObject":"us-gaap:CreditLossFinancialInstrumentPolicyTextBlock","labelType":"xbrl:label","value":"Credit Loss, Financial Instrument [Policy Text Block]","language":"en-US"},{"forObject":"us-gaap:CurrentFederalTaxExpenseBenefit","labelType":"xbrl:terseLabel","value":"Federal","language":"en-US"},{"forObject":"us-gaap:CurrentFederalTaxExpenseBenefit","labelType":"xbrl:label","value":"Current Federal Tax Expense (Benefit)","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:CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract","labelType":"xbrl:terseLabel","value":"Current:","language":"en-US"},{"forObject":"us-gaap:CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract","labelType":"xbrl:label","value":"Current Income Tax Expense (Benefit), Continuing Operations [Abstract]","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:DebtSecuritiesAvailableForSaleAccumulatedGrossUnrealizedGainLossBeforeTax","labelType":"xbrl:terseLabel","value":"Gross Unrealized Gains, net","language":"en-US"},{"forObject":"us-gaap:DebtSecuritiesAvailableForSaleAccumulatedGrossUnrealizedGainLossBeforeTax","labelType":"xbrl:label","value":"Debt Securities, Available-for-Sale, Accumulated Gross Unrealized Gain (Loss), before Tax","language":"en-US"},{"forObject":"us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLossCurrent","labelType":"xbrl:totalLabel","value":"Amortized Cost","language":"en-US"},{"forObject":"us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLossCurrent","labelType":"xbrl:label","value":"Debt Securities, Available-for-Sale, Amortized Cost, Excluding Accrued Interest, after Allowance for Credit Loss, Current","language":"en-US"},{"forObject":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","labelType":"xbrl:verboseLabel","value":"Marketable securities","language":"en-US"},{"forObject":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","labelType":"xbrl:terseLabel","value":"Fair Value","language":"en-US"},{"forObject":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","labelType":"xbrl:label","value":"Debt Securities, Available-for-Sale, Excluding Accrued Interest, Current","language":"en-US"},{"forObject":"us-gaap:DebtSecuritiesAvailableForSaleTable","labelType":"xbrl:terseLabel","value":"Debt Securities, Available-for-sale [Table]","language":"en-US"},{"forObject":"us-gaap:DebtSecuritiesAvailableForSaleTable","labelType":"xbrl:label","value":"Debt Securities, Available-for-Sale [Table]","language":"en-US"},{"forObject":"us-gaap:DebtSecuritiesAvailableForSaleTableTextBlock","labelType":"xbrl:terseLabel","value":"Schedule of Debt Securities, Available-for-Sale","language":"en-US"},{"forObject":"us-gaap:DebtSecuritiesAvailableForSaleTableTextBlock","labelType":"xbrl:label","value":"Debt Securities, Available-for-Sale [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:DebtSecuritiesAvailableForSaleTerm","labelType":"xbrl:terseLabel","value":"Marketable securities, term","language":"en-US"},{"forObject":"us-gaap:DebtSecuritiesAvailableForSaleTerm","labelType":"xbrl:label","value":"Debt Securities, Available-for-Sale, Term","language":"en-US"},{"forObject":"us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock","labelType":"xbrl:terseLabel","value":"Schedule of Prepaid Expenses and Other Current Assets","language":"en-US"},{"forObject":"us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock","labelType":"xbrl:label","value":"Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:DeferredFederalIncomeTaxExpenseBenefit","labelType":"xbrl:terseLabel","value":"Federal","language":"en-US"},{"forObject":"us-gaap:DeferredFederalIncomeTaxExpenseBenefit","labelType":"xbrl:label","value":"Deferred Federal Income Tax Expense (Benefit)","language":"en-US"},{"forObject":"us-gaap:DeferredForeignIncomeTaxExpenseBenefit","labelType":"xbrl:terseLabel","value":"Foreign","language":"en-US"},{"forObject":"us-gaap:DeferredForeignIncomeTaxExpenseBenefit","labelType":"xbrl:label","value":"Deferred Foreign Income Tax Expense (Benefit)","language":"en-US"},{"forObject":"us-gaap:DeferredIncomeTaxAssetsNet","labelType":"xbrl:terseLabel","value":"Deferred tax assets","language":"en-US"},{"forObject":"us-gaap:DeferredIncomeTaxAssetsNet","labelType":"xbrl:label","value":"Deferred Income Tax Assets, Net","language":"en-US"},{"forObject":"us-gaap:DeferredIncomeTaxExpenseBenefit","labelType":"xbrl:totalLabel","value":"Deferred income tax","language":"en-US"},{"forObject":"us-gaap:DeferredIncomeTaxExpenseBenefit","labelType":"xbrl:label","value":"Deferred Income Tax Expense (Benefit)","language":"en-US"},{"forObject":"us-gaap:DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract","labelType":"xbrl:terseLabel","value":"Deferred:","language":"en-US"},{"forObject":"us-gaap:DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract","labelType":"xbrl:label","value":"Deferred Income Tax Expense (Benefit), Continuing Operations [Abstract]","language":"en-US"},{"forObject":"us-gaap:DeferredIncomeTaxLiabilities","labelType":"xbrl:negatedTotalLabel","value":"Total deferred tax liabilities","language":"en-US"},{"forObject":"us-gaap:DeferredIncomeTaxLiabilities","labelType":"xbrl:label","value":"Deferred Tax Liabilities, Gross","language":"en-US"},{"forObject":"us-gaap:DeferredIncomeTaxesAndTaxCredits","labelType":"xbrl:terseLabel","value":"Deferred income taxes","language":"en-US"},{"forObject":"us-gaap:DeferredIncomeTaxesAndTaxCredits","labelType":"xbrl:label","value":"Deferred Income Taxes and Tax Credits","language":"en-US"},{"forObject":"us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit","labelType":"xbrl:terseLabel","value":"State","language":"en-US"},{"forObject":"us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit","labelType":"xbrl:label","value":"Deferred State and Local Income Tax Expense (Benefit)","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: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:DeferredTaxAssetsInventory","labelType":"xbrl:terseLabel","value":"Inventory","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsInventory","labelType":"xbrl:label","value":"Deferred Tax Assets, Inventory","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsLiabilitiesNet","labelType":"xbrl:totalLabel","value":"Deferred tax assets","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsLiabilitiesNet","labelType":"xbrl:label","value":"Deferred Tax Assets, Net","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsNet","labelType":"xbrl:totalLabel","value":"Total deferred tax assets","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsNet","labelType":"xbrl:label","value":"Deferred Tax Assets, Net of Valuation Allowance","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:DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration","labelType":"xbrl:terseLabel","value":"Operating loss carryforwards, not subject to expiration","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration","labelType":"xbrl:label","value":"Deferred Tax Assets, Operating Loss Carryforwards, Not Subject to Expiration","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsSubjectToExpiration","labelType":"xbrl:terseLabel","value":"Operating loss carryforwards, subject to expiration","language":"en-US"},{"forObject":"us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsSubjectToExpiration","labelType":"xbrl:label","value":"Deferred Tax Assets, Operating Loss Carryforwards, Subject to Expiration","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: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:terseLabel","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:DeferredTaxLiabilitiesLeasingArrangements","labelType":"xbrl:negatedLabel","value":"Right of use assets","language":"en-US"},{"forObject":"us-gaap:DeferredTaxLiabilitiesLeasingArrangements","labelType":"xbrl:label","value":"Deferred Tax Liabilities, Leasing Arrangements","language":"en-US"},{"forObject":"us-gaap:DeferredTaxLiabilitiesNetAbstract","labelType":"xbrl:terseLabel","value":"Deferred tax liabilities:","language":"en-US"},{"forObject":"us-gaap:DeferredTaxLiabilitiesNetAbstract","labelType":"xbrl:label","value":"Deferred Tax Liabilities, Net [Abstract]","language":"en-US"},{"forObject":"us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment","labelType":"xbrl:negatedTerseLabel","value":"Fixed assets","language":"en-US"},{"forObject":"us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment","labelType":"xbrl:label","value":"Deferred Tax Liabilities, Property, Plant and Equipment","language":"en-US"},{"forObject":"us-gaap:DeferredTaxLiabilitiesUndistributedForeignEarnings","labelType":"xbrl:negatedTerseLabel","value":"Undistributed earnings of foreign subsidiaries","language":"en-US"},{"forObject":"us-gaap:DeferredTaxLiabilitiesUndistributedForeignEarnings","labelType":"xbrl:label","value":"Deferred Tax Liabilities, Undistributed Foreign Earnings","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:DepositsAssetsCurrent","labelType":"xbrl:terseLabel","value":"Supplier deposits","language":"en-US"},{"forObject":"us-gaap:DepositsAssetsCurrent","labelType":"xbrl:label","value":"Deposits Assets, Current","language":"en-US"},{"forObject":"us-gaap:DepreciationDepletionAndAmortization","labelType":"xbrl:verboseLabel","value":"Depreciation and amortization","language":"en-US"},{"forObject":"us-gaap:DepreciationDepletionAndAmortization","labelType":"xbrl:terseLabel","value":"Depreciation and amortization expenses","language":"en-US"},{"forObject":"us-gaap:DepreciationDepletionAndAmortization","labelType":"xbrl:label","value":"Depreciation, Depletion and Amortization","language":"en-US"},{"forObject":"us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock","labelType":"xbrl:terseLabel","value":"Schedule of 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:DomesticCountryMember","labelType":"xbrl:verboseLabel","value":"Domestic Tax Jurisdiction","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 Jurisdiction [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: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: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: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 Disclosure [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 Equivalent, Restricted Cash, and Restricted Cash Equivalent, Continuing Operation","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:EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract","labelType":"xbrl:terseLabel","value":"Percent","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, Percent [Abstract]","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate","labelType":"xbrl:terseLabel","value":"Provision for income taxes at U.S. 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:EffectiveIncomeTaxRateReconciliationCrossBorderTaxEffectAmount","labelType":"xbrl:terseLabel","value":"Effects of cross-border tax laws","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationCrossBorderTaxEffectAmount","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, Cross-Border Tax Effect, Amount","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationCrossBorderTaxEffectPercent","labelType":"xbrl:terseLabel","value":"Effects of cross-border tax laws","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationCrossBorderTaxEffectPercent","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, Cross-Border Tax Effect, Percent","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential","labelType":"xbrl:terseLabel","value":"Other foreign jurisdictions","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:EffectiveIncomeTaxRateReconciliationLineItems","labelType":"xbrl:terseLabel","value":"Income Tax Paid, by Individual Jurisdiction [Line Items]","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationLineItems","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation [Line Items]","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment","labelType":"xbrl:terseLabel","value":"Entertainment","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, Nondeductible Expense, Meals and Entertainment, Percent","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseOther","labelType":"xbrl:terseLabel","value":"Other","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":"Share-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:EffectiveIncomeTaxRateReconciliationOtherAdjustments","labelType":"xbrl:terseLabel","value":"Other Adjustments","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, Other Adjustments, Percent","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationRepatriationOfForeignEarnings","labelType":"xbrl:terseLabel","value":"Withholding tax on repatriation","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationRepatriationOfForeignEarnings","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, Repatriation of Foreign Earnings, Percent","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes","labelType":"xbrl:terseLabel","value":"State and local income tax, net of federal benefit","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:EffectiveIncomeTaxRateReconciliationTable","labelType":"xbrl:terseLabel","value":"Income Tax Paid, by Individual Jurisdiction [Table]","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationTable","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation [Table]","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationTaxContingencies","labelType":"xbrl:terseLabel","value":"Changes in unrecognized tax benefits","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationTaxContingencies","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, Tax Contingency, Percent","language":"en-US"},{"forObject":"us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch","labelType":"xbrl:negatedTerseLabel","value":"Research and development tax credit","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: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:terseLabel","value":"Recognition period (in years)","language":"en-US"},{"forObject":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1","labelType":"xbrl:verboseLabel","value":"Weighted-average amortization period (in years)","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:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense","labelType":"xbrl:terseLabel","value":"Income tax benefits recognized","language":"en-US"},{"forObject":"us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense","labelType":"xbrl:label","value":"Share-Based Payment Arrangement, Expense, Tax Benefit","language":"en-US"},{"forObject":"us-gaap:EmployeeStockMember","labelType":"xbrl:terseLabel","value":"ESPP","language":"en-US"},{"forObject":"us-gaap:EmployeeStockMember","labelType":"xbrl:verboseLabel","value":"ESPPs","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:verboseLabel","value":"Stock Option","language":"en-US"},{"forObject":"us-gaap:EmployeeStockOptionMember","labelType":"xbrl:label","value":"Share-Based Payment Arrangement, Option [Member]","language":"en-US"},{"forObject":"us-gaap:EntityWideRevenueMajorCustomerLineItems","labelType":"xbrl:terseLabel","value":"Revenue, Major Customer [Line Items]","language":"en-US"},{"forObject":"us-gaap:EntityWideRevenueMajorCustomerLineItems","labelType":"xbrl:label","value":"Revenue, Major Customer [Line Items]","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: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":"Schedule of 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: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:FairValueInputsLevel2Member","labelType":"xbrl:terseLabel","value":"Level 2","language":"en-US"},{"forObject":"us-gaap:FairValueInputsLevel2Member","labelType":"xbrl:label","value":"Fair Value, Inputs, Level 2 [Member]","language":"en-US"},{"forObject":"us-gaap:FairValueMeasurementPolicyPolicyTextBlock","labelType":"xbrl:terseLabel","value":"Fair Value Measurements","language":"en-US"},{"forObject":"us-gaap:FairValueMeasurementPolicyPolicyTextBlock","labelType":"xbrl:label","value":"Fair Value Measurement, Policy [Policy Text Block]","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: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:ForeignCountryMember","labelType":"xbrl:terseLabel","value":"Foreign Tax Jurisdiction","language":"en-US"},{"forObject":"us-gaap:ForeignCountryMember","labelType":"xbrl:label","value":"Foreign Tax Jurisdiction [Member]","language":"en-US"},{"forObject":"us-gaap:ForeignTaxJurisdictionOtherMember","labelType":"xbrl:terseLabel","value":"Other","language":"en-US"},{"forObject":"us-gaap:ForeignTaxJurisdictionOtherMember","labelType":"xbrl:label","value":"Foreign Tax Jurisdiction, Other [Member]","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: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:label","value":"Gross Profit","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:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest","labelType":"xbrl:totalLabel","value":"Income (loss) before income taxes","language":"en-US"},{"forObject":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest","labelType":"xbrl:label","value":"Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest","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: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:IncomeStatementLocationAxis","labelType":"xbrl:terseLabel","value":"Statement of Income Location, Balance [Axis]","language":"en-US"},{"forObject":"us-gaap:IncomeStatementLocationAxis","labelType":"xbrl:label","value":"Statement of Income Location, Balance [Axis]","language":"en-US"},{"forObject":"us-gaap:IncomeStatementLocationDomain","labelType":"xbrl:terseLabel","value":"Statement of Income Location, Balance [Domain]","language":"en-US"},{"forObject":"us-gaap:IncomeStatementLocationDomain","labelType":"xbrl:label","value":"Statement of Income Location, Balance [Domain]","language":"en-US"},{"forObject":"us-gaap:IncomeTaxAuthorityAxis","labelType":"xbrl:terseLabel","value":"Income Tax Jurisdiction [Axis]","language":"en-US"},{"forObject":"us-gaap:IncomeTaxAuthorityAxis","labelType":"xbrl:label","value":"Income Tax Jurisdiction [Axis]","language":"en-US"},{"forObject":"us-gaap:IncomeTaxAuthorityDomain","labelType":"xbrl:terseLabel","value":"Income Tax Jurisdiction [Domain]","language":"en-US"},{"forObject":"us-gaap:IncomeTaxAuthorityDomain","labelType":"xbrl:label","value":"Income Tax Jurisdiction [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":"Income tax expense (benefit)","language":"en-US"},{"forObject":"us-gaap:IncomeTaxExpenseBenefit","labelType":"xbrl:totalLabel","value":"Income tax expense (benefit)","language":"en-US"},{"forObject":"us-gaap:IncomeTaxExpenseBenefit","labelType":"xbrl:negatedTerseLabel","value":"Income taxes","language":"en-US"},{"forObject":"us-gaap:IncomeTaxExpenseBenefit","labelType":"xbrl:label","value":"Income Tax Expense (Benefit)","language":"en-US"},{"forObject":"us-gaap:IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract","labelType":"xbrl:terseLabel","value":"Amount","language":"en-US"},{"forObject":"us-gaap:IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract","labelType":"xbrl:label","value":"Income Tax Expense (Benefit), Effective Income Tax Rate Reconciliation, Amount [Abstract]","language":"en-US"},{"forObject":"us-gaap:IncomeTaxPaidFederalAfterRefundReceived","labelType":"xbrl:terseLabel","value":"Federal","language":"en-US"},{"forObject":"us-gaap:IncomeTaxPaidFederalAfterRefundReceived","labelType":"xbrl:label","value":"Income Tax Paid, Federal, after Refund Received","language":"en-US"},{"forObject":"us-gaap:IncomeTaxPaidForeignAfterRefundReceived","labelType":"xbrl:terseLabel","value":"Total foreign","language":"en-US"},{"forObject":"us-gaap:IncomeTaxPaidForeignAfterRefundReceived","labelType":"xbrl:label","value":"Income Tax Paid, Foreign, after Refund Received","language":"en-US"},{"forObject":"us-gaap:IncomeTaxPaidForeignAfterRefundReceivedAbstract","labelType":"xbrl:terseLabel","value":"Foreign:","language":"en-US"},{"forObject":"us-gaap:IncomeTaxPaidForeignAfterRefundReceivedAbstract","labelType":"xbrl:label","value":"Income Tax Paid, Foreign, after Refund Received [Abstract]","language":"en-US"},{"forObject":"us-gaap:IncomeTaxPaidStateAndLocalAfterRefundReceived","labelType":"xbrl:terseLabel","value":"Total state","language":"en-US"},{"forObject":"us-gaap:IncomeTaxPaidStateAndLocalAfterRefundReceived","labelType":"xbrl:label","value":"Income Tax Paid, State and Local, after Refund Received","language":"en-US"},{"forObject":"us-gaap:IncomeTaxPaidStateAndLocalAfterRefundReceivedAbstract","labelType":"xbrl:terseLabel","value":"States:","language":"en-US"},{"forObject":"us-gaap:IncomeTaxPaidStateAndLocalAfterRefundReceivedAbstract","labelType":"xbrl:label","value":"Income Tax Paid, State and Local, after Refund Received [Abstract]","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:IncomeTaxReconciliationForeignIncomeTaxRateDifferential","labelType":"xbrl:terseLabel","value":"Other foreign jurisdictions","language":"en-US"},{"forObject":"us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, Foreign Income Tax Rate Differential, Amount","language":"en-US"},{"forObject":"us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate","labelType":"xbrl:terseLabel","value":"Provision for income taxes at U.S. federal statutory rate","language":"en-US"},{"forObject":"us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation at Federal Statutory Income Tax Rate, Amount","language":"en-US"},{"forObject":"us-gaap:IncomeTaxReconciliationNondeductibleExpenseMealsAndEntertainment","labelType":"xbrl:terseLabel","value":"Entertainment","language":"en-US"},{"forObject":"us-gaap:IncomeTaxReconciliationNondeductibleExpenseMealsAndEntertainment","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, Nondeductible Expense, Meals and Entertainment, Amount","language":"en-US"},{"forObject":"us-gaap:IncomeTaxReconciliationNondeductibleExpenseOther","labelType":"xbrl:terseLabel","value":"Other","language":"en-US"},{"forObject":"us-gaap:IncomeTaxReconciliationNondeductibleExpenseOther","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, Nondeductible Expense, Other, Amount","language":"en-US"},{"forObject":"us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost","labelType":"xbrl:terseLabel","value":"Share-based compensation","language":"en-US"},{"forObject":"us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, Nondeductible Expense, Share-Based Payment Arrangement, Amount","language":"en-US"},{"forObject":"us-gaap:IncomeTaxReconciliationOtherAdjustments","labelType":"xbrl:terseLabel","value":"Other Adjustments","language":"en-US"},{"forObject":"us-gaap:IncomeTaxReconciliationOtherAdjustments","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, Other Adjustments, Amount","language":"en-US"},{"forObject":"us-gaap:IncomeTaxReconciliationRepatriationOfForeignEarnings","labelType":"xbrl:terseLabel","value":"Withholding tax on repatriation","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:IncomeTaxReconciliationStateAndLocalIncomeTaxes","labelType":"xbrl:terseLabel","value":"State and local income tax, net of federal benefit","language":"en-US"},{"forObject":"us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, State and Local Income Taxes, Amount","language":"en-US"},{"forObject":"us-gaap:IncomeTaxReconciliationTaxContingencies","labelType":"xbrl:terseLabel","value":"Changes in unrecognized tax benefits","language":"en-US"},{"forObject":"us-gaap:IncomeTaxReconciliationTaxContingencies","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, Tax Contingency, Amount","language":"en-US"},{"forObject":"us-gaap:IncomeTaxReconciliationTaxCreditsResearch","labelType":"xbrl:negatedTerseLabel","value":"Research and development tax credit","language":"en-US"},{"forObject":"us-gaap:IncomeTaxReconciliationTaxCreditsResearch","labelType":"xbrl:label","value":"Effective Income Tax Rate Reconciliation, Tax Credit, Research, Amount","language":"en-US"},{"forObject":"us-gaap:IncomeTaxesPaidNet","labelType":"xbrl:terseLabel","value":"Income taxes paid","language":"en-US"},{"forObject":"us-gaap:IncomeTaxesPaidNet","labelType":"xbrl:verboseLabel","value":"Cash taxes paid","language":"en-US"},{"forObject":"us-gaap:IncomeTaxesPaidNet","labelType":"xbrl:totalLabel","value":"Income taxes paid, net, total","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:IncreaseDecreaseInContractWithCustomerLiability","labelType":"xbrl:terseLabel","value":"Increase (Decrease) in Contract with Customer, Liability","language":"en-US"},{"forObject":"us-gaap:IncreaseDecreaseInContractWithCustomerLiability","labelType":"xbrl:label","value":"Increase (Decrease) in Contract with Customer, Liability","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":"Adjustment to Reconcile Net Income to Cash Provided by (Used in) Operating Activity, 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:InterestIncomeExpenseNonoperatingNet","labelType":"xbrl:verboseLabel","value":"Interest income, net","language":"en-US"},{"forObject":"us-gaap:InterestIncomeExpenseNonoperatingNet","labelType":"xbrl:label","value":"Interest Income (Expense), Nonoperating","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 Activity","language":"en-US"},{"forObject":"us-gaap:InventoryFinishedGoodsNetOfReserves","labelType":"xbrl:terseLabel","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:InventoryPartsAndComponentsNetOfReserves","labelType":"xbrl:terseLabel","value":"Components","language":"en-US"},{"forObject":"us-gaap:InventoryPartsAndComponentsNetOfReserves","labelType":"xbrl:label","value":"Inventory, Parts and Components, Net of Reserves","language":"en-US"},{"forObject":"us-gaap:InventoryPolicyTextBlock","labelType":"xbrl:terseLabel","value":"Inventory Valuation and Supplier Purchase Commitments","language":"en-US"},{"forObject":"us-gaap:InventoryPolicyTextBlock","labelType":"xbrl:label","value":"Inventory, Policy [Policy Text Block]","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:LesseeOperatingLeaseLeaseNotYetCommencedTermOfContract1","labelType":"xbrl:terseLabel","value":"Lessee, operating lease, lease not yet commenced, term of contract","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseLeaseNotYetCommencedTermOfContract1","labelType":"xbrl:label","value":"Lessee, Operating Lease, Lease Not yet Commenced, Term of Contract","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock","labelType":"xbrl:terseLabel","value":"Schedule of Lessee, Operating Lease, Liability, Maturity","language":"en-US"},{"forObject":"us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock","labelType":"xbrl:label","value":"Lessee, Operating Lease, Liability, to be Paid, 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: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":"2026","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":"2030","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":"2029","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":"2028","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":"2027","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: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: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":"Loss Contingencies [Table]","language":"en-US"},{"forObject":"us-gaap:LossContingenciesTable","labelType":"xbrl:label","value":"Loss Contingencies [Table]","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:MunicipalNotesMember","labelType":"xbrl:terseLabel","value":"Certificates of deposit","language":"en-US"},{"forObject":"us-gaap:MunicipalNotesMember","labelType":"xbrl:label","value":"Municipal Notes [Member]","language":"en-US"},{"forObject":"us-gaap:NetCashProvidedByUsedInFinancingActivities","labelType":"xbrl:totalLabel","value":"Net cash provided by (used in) financing activities","language":"en-US"},{"forObject":"us-gaap:NetCashProvidedByUsedInFinancingActivities","labelType":"xbrl:label","value":"Cash Provided by (Used in) Financing Activity, Including Discontinued Operation","language":"en-US"},{"forObject":"us-gaap:NetCashProvidedByUsedInFinancingActivitiesAbstract","labelType":"xbrl:verboseLabel","value":"Financing activities:","language":"en-US"},{"forObject":"us-gaap:NetCashProvidedByUsedInFinancingActivitiesAbstract","labelType":"xbrl:label","value":"Cash Provided by (Used in) Financing Activity, Including Discontinued Operation [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":"Cash Provided by (Used in) Investing Activity, Including Discontinued Operation","language":"en-US"},{"forObject":"us-gaap:NetCashProvidedByUsedInInvestingActivitiesAbstract","labelType":"xbrl:verboseLabel","value":"Investing activities:","language":"en-US"},{"forObject":"us-gaap:NetCashProvidedByUsedInInvestingActivitiesAbstract","labelType":"xbrl:label","value":"Cash Provided by (Used in) Investing Activity, Including Discontinued Operation [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":"Cash Provided by (Used in) Operating Activity, Including Discontinued Operation","language":"en-US"},{"forObject":"us-gaap:NetCashProvidedByUsedInOperatingActivitiesAbstract","labelType":"xbrl:verboseLabel","value":"Operating activities:","language":"en-US"},{"forObject":"us-gaap:NetCashProvidedByUsedInOperatingActivitiesAbstract","labelType":"xbrl:label","value":"Cash Provided by (Used in) Operating Activity, Including Discontinued Operation [Abstract]","language":"en-US"},{"forObject":"us-gaap:NetIncomeLoss","labelType":"xbrl:totalLabel","value":"Net income (loss)","language":"en-US"},{"forObject":"us-gaap:NetIncomeLoss","labelType":"xbrl:verboseLabel","value":"Net income (loss)","language":"en-US"},{"forObject":"us-gaap:NetIncomeLoss","labelType":"xbrl:label","value":"Net Income (Loss) Attributable to Parent","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":"Newly Adopted Accounting Standards and Recent Accounting Pronouncements Not Yet Adopted","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:NoncurrentAssets","labelType":"xbrl:verboseLabel","value":"Property and equipment, net","language":"en-US"},{"forObject":"us-gaap:NoncurrentAssets","labelType":"xbrl:label","value":"Long-Lived Assets","language":"en-US"},{"forObject":"us-gaap:NonoperatingIncomeExpense","labelType":"xbrl:totalLabel","value":"Total interest income and other expense, net","language":"en-US"},{"forObject":"us-gaap:NonoperatingIncomeExpense","labelType":"xbrl:terseLabel","value":"Interest income and other expenses, 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 income 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:NumberOfOperatingSegments","labelType":"xbrl:terseLabel","value":"Number of operating segments","language":"en-US"},{"forObject":"us-gaap:NumberOfOperatingSegments","labelType":"xbrl:label","value":"Number of Operating Segments","language":"en-US"},{"forObject":"us-gaap:NumberOfReportableSegments","labelType":"xbrl:terseLabel","value":"Number of reportable segments","language":"en-US"},{"forObject":"us-gaap:NumberOfReportableSegments","labelType":"xbrl:label","value":"Number of Reportable Segments","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":"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","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList","labelType":"xbrl:label","value":"Operating Lease, Liability, Current, Statement of Financial Position [Extensible Enumeration]","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: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 (as a 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 (in years)","language":"en-US"},{"forObject":"us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1","labelType":"xbrl:label","value":"Operating Lease, Weighted Average Remaining Lease Term","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:OtherAssetsNoncurrent","labelType":"xbrl:verboseLabel","value":"Other assets","language":"en-US"},{"forObject":"us-gaap:OtherAssetsNoncurrent","labelType":"xbrl:label","value":"Other Assets, Noncurrent","language":"en-US"},{"forObject":"us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent","labelType":"xbrl:verboseLabel","value":"Foreign currency translation adjustments, net","language":"en-US"},{"forObject":"us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent","labelType":"xbrl:label","value":"Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent","language":"en-US"},{"forObject":"us-gaap:OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract","labelType":"xbrl:verboseLabel","value":"Other comprehensive income, 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:totalLabel","value":"Total other comprehensive income, net of tax","language":"en-US"},{"forObject":"us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent","labelType":"xbrl:terseLabel","value":"Other comprehensive income","language":"en-US"},{"forObject":"us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent","labelType":"xbrl:verboseLabel","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:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax","labelType":"xbrl:terseLabel","value":"Unrealized gain on available-for-sale marketable securities, net","language":"en-US"},{"forObject":"us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax","labelType":"xbrl:label","value":"OCI, Debt Securities, Available-for-Sale, Unrealized Holding Gain (Loss), before Adjustment, after Tax","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 expense, net","language":"en-US"},{"forObject":"us-gaap:OtherNonoperatingIncomeExpense","labelType":"xbrl:label","value":"Other Nonoperating Income (Expense)","language":"en-US"},{"forObject":"us-gaap:PaymentsForRepurchaseOfCommonStock","labelType":"xbrl:negatedTerseLabel","value":"Repurchases of common stock","language":"en-US"},{"forObject":"us-gaap:PaymentsForRepurchaseOfCommonStock","labelType":"xbrl:label","value":"Payments for Repurchase of Common Stock","language":"en-US"},{"forObject":"us-gaap:PaymentsToAcquireAvailableForSaleSecuritiesDebt","labelType":"xbrl:negatedTerseLabel","value":"Purchases of marketable securities","language":"en-US"},{"forObject":"us-gaap:PaymentsToAcquireAvailableForSaleSecuritiesDebt","labelType":"xbrl:label","value":"Payments to Acquire Debt Securities, Available-for-Sale","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: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: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: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, 2025 and 2024","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:totalLabel","value":"Total prepaid expense and other assets","language":"en-US"},{"forObject":"us-gaap:PrepaidExpenseAndOtherAssetsCurrent","labelType":"xbrl:label","value":"Prepaid Expense and Other Assets, Current","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:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt","labelType":"xbrl:terseLabel","value":"Sales of marketable securities","language":"en-US"},{"forObject":"us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt","labelType":"xbrl:label","value":"Proceeds from Sale of Debt Securities, Available-for-Sale","language":"en-US"},{"forObject":"us-gaap:ProceedsFromStockOptionsExercised","labelType":"xbrl:verboseLabel","value":"Proceeds from common stock issuances related to employee benefit plans","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 year","language":"en-US"},{"forObject":"us-gaap:ProductWarrantyAccrual","labelType":"xbrl:periodEndLabel","value":"Balance at end of year","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":"Current portion of 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: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":"Schedule of 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 (in years)","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:ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward","labelType":"xbrl:terseLabel","value":"Schedule of Unrecognized Tax Benefits","language":"en-US"},{"forObject":"us-gaap:ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward","labelType":"xbrl:label","value":"Unrecognized Tax Benefits [Roll Forward]","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:RestrictedStockMember","labelType":"xbrl:terseLabel","value":"Restricted Stock","language":"en-US"},{"forObject":"us-gaap:RestrictedStockMember","labelType":"xbrl:verboseLabel","value":"RSAs","language":"en-US"},{"forObject":"us-gaap:RestrictedStockMember","labelType":"xbrl:label","value":"Restricted Stock [Member]","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: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:RevenueFromContractWithCustomerExcludingAssessedTax","labelType":"xbrl:terseLabel","value":"Total revenue","language":"en-US"},{"forObject":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","labelType":"xbrl:verboseLabel","value":"Revenue","language":"en-US"},{"forObject":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","labelType":"xbrl:label","value":"Revenue from Contract with Customer, Excluding Assessed Tax","language":"en-US"},{"forObject":"us-gaap:RevenueFromContractWithCustomerPolicyTextBlock","labelType":"xbrl:terseLabel","value":"Revenue Recognition, Contract Costs, and Deferred Revenue","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:RevenueFromContractWithCustomerTextBlock","labelType":"xbrl:terseLabel","value":"Revenue from Contracts with Customers","language":"en-US"},{"forObject":"us-gaap:RevenueFromContractWithCustomerTextBlock","labelType":"xbrl:label","value":"Revenue from Contract with Customer [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:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock","labelType":"xbrl:verboseLabel","value":"Schedule of 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":"Schedule of 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:ScheduleOfAvailableForSaleSecuritiesLineItems","labelType":"xbrl:terseLabel","value":"Debt Securities, Available-for-sale [Line Items]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfAvailableForSaleSecuritiesLineItems","labelType":"xbrl:label","value":"Debt Securities, Available-for-Sale [Line Items]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfCashAndCashEquivalentsTable","labelType":"xbrl:terseLabel","value":"Cash and Cash Equivalent [Table]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfCashAndCashEquivalentsTable","labelType":"xbrl:label","value":"Cash and Cash Equivalent [Table]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfCashAndCashEquivalentsTableTextBlock","labelType":"xbrl:terseLabel","value":"Schedule 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:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock","labelType":"xbrl:terseLabel","value":"Schedule of Income Taxes Paid (Net of Refunds)","language":"en-US"},{"forObject":"us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock","labelType":"xbrl:label","value":"Schedule of Cash Flow, Supplemental Disclosures [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: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":"Schedule of 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: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:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock","labelType":"xbrl:terseLabel","value":"Schedule of Revenue from External Customers and Long-Lived Assets, by Geographical Areas","language":"en-US"},{"forObject":"us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock","labelType":"xbrl:label","value":"Schedule of Revenue from External Customers and Long-Lived Assets, by Geographical Areas [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:ScheduleOfSegmentReportingInformationBySegmentTable","labelType":"xbrl:terseLabel","value":"Schedule of Segment Reporting Information, by Segment [Table]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfSegmentReportingInformationBySegmentTable","labelType":"xbrl:label","value":"Schedule of Segment Reporting Information, by Segment [Table]","language":"en-US"},{"forObject":"us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock","labelType":"xbrl:terseLabel","value":"Schedule of Segment Operating Information, by Segment","language":"en-US"},{"forObject":"us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock","labelType":"xbrl:label","value":"Schedule of Segment Reporting Information, by Segment [Table Text Block]","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":"Schedule of 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":"Schedule of 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: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:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock","labelType":"xbrl:terseLabel","value":"Schedule of Unrecognized Tax Benefits","language":"en-US"},{"forObject":"us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock","labelType":"xbrl:label","value":"Schedule of Unrecognized Tax Benefits Roll Forward [Table Text Block]","language":"en-US"},{"forObject":"us-gaap:SegmentDomain","labelType":"xbrl:terseLabel","value":"Segments [Domain]","language":"en-US"},{"forObject":"us-gaap:SegmentDomain","labelType":"xbrl:label","value":"Segments [Domain]","language":"en-US"},{"forObject":"us-gaap:SegmentReportingAbstract","labelType":"xbrl:label","value":"Segment Reporting [Abstract]","language":"en-US"},{"forObject":"us-gaap:SegmentReportingDisclosureTextBlock","labelType":"xbrl:verboseLabel","value":"Segment Information","language":"en-US"},{"forObject":"us-gaap:SegmentReportingDisclosureTextBlock","labelType":"xbrl:label","value":"Segment Reporting Disclosure [Text Block]","language":"en-US"},{"forObject":"us-gaap:SegmentReportingInformationLineItems","labelType":"xbrl:terseLabel","value":"Segment Reporting Information [Line Items]","language":"en-US"},{"forObject":"us-gaap:SegmentReportingInformationLineItems","labelType":"xbrl:label","value":"Segment Reporting Information [Line Items]","language":"en-US"},{"forObject":"us-gaap:SegmentReportingOtherItemAmount","labelType":"xbrl:negatedTerseLabel","value":"Other segment items","language":"en-US"},{"forObject":"us-gaap:SegmentReportingOtherItemAmount","labelType":"xbrl:label","value":"Segment Reporting, Other Segment Item, Amount","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:ShareBasedCompensationArrangementByShareBasedPaymentAwardAcceleratedCompensationCost","labelType":"xbrl:terseLabel","value":"Accelerated cost","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAcceleratedCompensationCost","labelType":"xbrl:label","value":"Share-Based Payment Arrangement, Accelerated Cost","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardRequisiteServicePeriod1","labelType":"xbrl:terseLabel","value":"Award requisite service period (in years)","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 (in years)","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:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod","labelType":"xbrl:terseLabel","value":"Restricted stock awards, granted (in shares)","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: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:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue","labelType":"xbrl:terseLabel","value":"Grant date fair value (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: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: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 (as a percent)","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 (in shares)","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":"Increase to the authorized shares (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 (in shares)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant","labelType":"xbrl:verboseLabel","value":"Shares available for future grant under 2019 Plan (in shares)","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:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract","labelType":"xbrl:terseLabel","value":"Stock Options, Additional Disclosures","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Additional Disclosures [Abstract]","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber","labelType":"xbrl:terseLabel","value":"Stock options vested and exercisable (in shares)","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 vested and 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 canceled (in shares)","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 (in shares)","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 (in dollars per share)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","labelType":"xbrl:verboseLabel","value":"Stock options (in dollars per share)","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 (in shares)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber","labelType":"xbrl:periodEndLabel","value":"Stock options outstanding, ending (in shares)","language":"en-US"},{"forObject":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber","labelType":"xbrl:terseLabel","value":"Stock options outstanding (in shares)","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 (in shares)","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 canceled (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 (as a percent)","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:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod","labelType":"xbrl:terseLabel","value":"Options, term (in years)","language":"en-US"},{"forObject":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement by Share-Based Payment Award, Expiration Period","language":"en-US"},{"forObject":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1","labelType":"xbrl:verboseLabel","value":"Expected life (years)","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 vested and 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 vested and exercisable (in years)","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 (in years)","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 (in years)","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:SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent","labelType":"xbrl:terseLabel","value":"Price of common stock purchased under the ESPP (as a percent)","language":"en-US"},{"forObject":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent","labelType":"xbrl:label","value":"Share-Based Compensation Arrangement by Share-Based Payment Award, Purchase Price of Common Stock, Percent","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":"California State","language":"en-US"},{"forObject":"us-gaap:StateAndLocalJurisdictionMember","labelType":"xbrl:label","value":"State and Local Jurisdiction [Member]","language":"en-US"},{"forObject":"us-gaap:StateAndLocalTaxJurisdictionOtherMember","labelType":"xbrl:terseLabel","value":"Other","language":"en-US"},{"forObject":"us-gaap:StateAndLocalTaxJurisdictionOtherMember","labelType":"xbrl:label","value":"State and Local Tax Jurisdiction, Other [Member]","language":"en-US"},{"forObject":"us-gaap:StatementBusinessSegmentsAxis","labelType":"xbrl:terseLabel","value":"Segments [Axis]","language":"en-US"},{"forObject":"us-gaap:StatementBusinessSegmentsAxis","labelType":"xbrl:label","value":"Segments [Axis]","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:StockAppreciationRightsSARSMember","labelType":"xbrl:terseLabel","value":"Stock Appreciation Rights (SARs)","language":"en-US"},{"forObject":"us-gaap:StockAppreciationRightsSARSMember","labelType":"xbrl:label","value":"Stock Appreciation Rights (SARs) [Member]","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:StockIssuedDuringPeriodSharesShareBasedCompensation","labelType":"xbrl:terseLabel","value":"Issuance of common stock under equity incentive plans, net of forfeitures (in shares)","language":"en-US"},{"forObject":"us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation","labelType":"xbrl:label","value":"Shares Issued, Shares, Share-Based Payment Arrangement, after Forfeiture","language":"en-US"},{"forObject":"us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised","labelType":"xbrl:negatedTerseLabel","value":"Stock options exercised (in shares)","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:StockIssuedDuringPeriodValueShareBasedCompensation","labelType":"xbrl:terseLabel","value":"Issuance of common stock under equity incentive plans, net of forfeitures","language":"en-US"},{"forObject":"us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation","labelType":"xbrl:label","value":"Shares Issued, Value, Share-Based Payment Arrangement, after Forfeiture","language":"en-US"},{"forObject":"us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised","labelType":"xbrl:terseLabel","value":"Issuance of common stock under equity incentive plans, net of forfeitures","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:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1","labelType":"xbrl:terseLabel","value":"Stock repurchase program, remaining authorized repurchase amount","language":"en-US"},{"forObject":"us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1","labelType":"xbrl:label","value":"Share Repurchase Program, Remaining Authorized, Amount","language":"en-US"},{"forObject":"us-gaap:StockRepurchasedDuringPeriodShares","labelType":"xbrl:negatedTerseLabel","value":"Repurchase of common stock including excise tax (in shares)","language":"en-US"},{"forObject":"us-gaap:StockRepurchasedDuringPeriodShares","labelType":"xbrl:terseLabel","value":"Stock repurchased during period (in shares)","language":"en-US"},{"forObject":"us-gaap:StockRepurchasedDuringPeriodShares","labelType":"xbrl:label","value":"Stock Repurchased During Period, Shares","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":"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":"Equity, Attributable to Parent [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: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: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:USGovernmentAgenciesDebtSecuritiesMember","labelType":"xbrl:terseLabel","value":"U.S. government agency securities","language":"en-US"},{"forObject":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember","labelType":"xbrl:label","value":"US Government Agencies Debt Securities [Member]","language":"en-US"},{"forObject":"us-gaap:USGovernmentDebtSecuritiesMember","labelType":"xbrl:terseLabel","value":"U.S. government securities","language":"en-US"},{"forObject":"us-gaap:USGovernmentDebtSecuritiesMember","labelType":"xbrl:label","value":"US Government Debt Securities [Member]","language":"en-US"},{"forObject":"us-gaap:UnrecognizedTaxBenefits","labelType":"xbrl:terseLabel","value":"Unrecognized tax benefits","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: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: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:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions","labelType":"xbrl:terseLabel","value":"Additions for tax positions related to prior year","language":"en-US"},{"forObject":"us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions","labelType":"xbrl:label","value":"Unrecognized Tax Benefits, Increase Resulting from Prior Period Tax Positions","language":"en-US"},{"forObject":"us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate","labelType":"xbrl:terseLabel","value":"Unrecognized tax benefits that would impact effective tax rate","language":"en-US"},{"forObject":"us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate","labelType":"xbrl:label","value":"Unrecognized Tax Benefits that Would Impact Effective Tax Rate","language":"en-US"},{"forObject":"us-gaap:UnrecordedUnconditionalPurchaseObligationBalanceSheetAmount","labelType":"xbrl:terseLabel","value":"Future minimum lease payments","language":"en-US"},{"forObject":"us-gaap:UnrecordedUnconditionalPurchaseObligationBalanceSheetAmount","labelType":"xbrl:label","value":"Unrecorded Unconditional Purchase Obligation","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 (release) of 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 Expenses or Revenue Net of Recoveries","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":"Write Offs and Returns","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: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":"9952163 - Disclosure - Accumulated Other Comprehensive Loss","language":"en-US"},{"forObject":"rpt:group-1","labelType":"xbrl:label","value":"9955547 - Disclosure - Accumulated Other Comprehensive Loss (Details)","language":"en-US"},{"forObject":"rpt:group-2","labelType":"xbrl:label","value":"9955517 - Disclosure - Accumulated Other Comprehensive Loss (Tables)","language":"en-US"},{"forObject":"rpt:group-3","labelType":"xbrl:label","value":"0000002 - Document - Audit Information","language":"en-US"},{"forObject":"rpt:group-4","labelType":"xbrl:label","value":"9952159 - Disclosure - Balance Sheet Details","language":"en-US"},{"forObject":"rpt:group-5","labelType":"xbrl:label","value":"9955525 - Disclosure - Balance Sheet Details - Accounts Receivable (Details)","language":"en-US"},{"forObject":"rpt:group-6","labelType":"xbrl:label","value":"9955531 - Disclosure - Balance Sheet Details - Accrued Liabilities (Details)","language":"en-US"},{"forObject":"rpt:group-7","labelType":"xbrl:label","value":"9955526 - Disclosure - Balance Sheet Details - Allowance and Product Return Reserve (Details)","language":"en-US"},{"forObject":"rpt:group-8","labelType":"xbrl:label","value":"9955527 - Disclosure - Balance Sheet Details - Inventory (Details)","language":"en-US"},{"forObject":"rpt:group-9","labelType":"xbrl:label","value":"9955530 - Disclosure - Balance Sheet Details - Narrative (Details)","language":"en-US"},{"forObject":"rpt:group-10","labelType":"xbrl:label","value":"9955532 - Disclosure - Balance Sheet Details - Product Warranty Activity (Details)","language":"en-US"},{"forObject":"rpt:group-11","labelType":"xbrl:label","value":"9955529 - Disclosure - Balance Sheet Details - Property and Equipment, net (Details)","language":"en-US"},{"forObject":"rpt:group-12","labelType":"xbrl:label","value":"9955528 - Disclosure - Balance Sheet Details - Schedule of Prepaid and Other Current Assets (Details)","language":"en-US"},{"forObject":"rpt:group-13","labelType":"xbrl:label","value":"9955514 - Disclosure - Balance Sheet Details (Tables)","language":"en-US"},{"forObject":"rpt:group-14","labelType":"xbrl:label","value":"9952151 - Statement - CONSOLIDATED BALANCE SHEETS","language":"en-US"},{"forObject":"rpt:group-15","labelType":"xbrl:label","value":"9952152 - Statement - CONSOLIDATED BALANCE SHEETS (Parenthetical)","language":"en-US"},{"forObject":"rpt:group-16","labelType":"xbrl:label","value":"9952155 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS","language":"en-US"},{"forObject":"rpt:group-17","labelType":"xbrl:label","value":"9952153 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (LOSS)","language":"en-US"},{"forObject":"rpt:group-18","labelType":"xbrl:label","value":"9952154 - Statement - CONSOLIDATED STATEMENTS OF STOCKHOLDERS\u2019 EQUITY","language":"en-US"},{"forObject":"rpt:group-19","labelType":"xbrl:label","value":"9952157 - Disclosure - Cash, Cash Equivalents and Marketable Securities","language":"en-US"},{"forObject":"rpt:group-20","labelType":"xbrl:label","value":"9955523 - Disclosure - Cash, Cash Equivalents, and Marketable Securities - Schedule of Marketable Securities (Details)","language":"en-US"},{"forObject":"rpt:group-21","labelType":"xbrl:label","value":"9955522 - Disclosure - Cash, Cash Equivalents and Marketable Securities - Summary of Cash and Cash Equivalents (Details)","language":"en-US"},{"forObject":"rpt:group-22","labelType":"xbrl:label","value":"9955512 - Disclosure - Cash, Cash Equivalents and Marketable Securities (Tables)","language":"en-US"},{"forObject":"rpt:group-23","labelType":"xbrl:label","value":"9952160 - Disclosure - Commitments and Contingencies","language":"en-US"},{"forObject":"rpt:group-24","labelType":"xbrl:label","value":"9955535 - Disclosure - Commitments and Contingencies - Narrative (Details)","language":"en-US"},{"forObject":"rpt:group-25","labelType":"xbrl:label","value":"9955533 - Disclosure - Commitments and Contingencies - Operating Lease (Details)","language":"en-US"},{"forObject":"rpt:group-26","labelType":"xbrl:label","value":"9955534 - Disclosure - Commitments and Contingencies - Operating Lease Liability (Details)","language":"en-US"},{"forObject":"rpt:group-27","labelType":"xbrl:label","value":"9955515 - Disclosure - Commitments and Contingencies (Tables)","language":"en-US"},{"forObject":"rpt:group-28","labelType":"xbrl:label","value":"0000001 - Document - Cover","language":"en-US"},{"forObject":"rpt:group-29","labelType":"xbrl:label","value":"9952156 - Disclosure - Description of Business and Significant Accounting Policies","language":"en-US"},{"forObject":"rpt:group-30","labelType":"xbrl:label","value":"9955521 - Disclosure - Description of Business and Significant Accounting Policies (Details)","language":"en-US"},{"forObject":"rpt:group-31","labelType":"xbrl:label","value":"9955511 - Disclosure - Description of Business and Significant Accounting Policies (Policies)","language":"en-US"},{"forObject":"rpt:group-32","labelType":"xbrl:label","value":"9952162 - Disclosure - Employee Benefit Plan","language":"en-US"},{"forObject":"rpt:group-33","labelType":"xbrl:label","value":"9955546 - Disclosure - Employee Benefit Plan (Details)","language":"en-US"},{"forObject":"rpt:group-34","labelType":"xbrl:label","value":"9952158 - Disclosure - Fair Value Measurements","language":"en-US"},{"forObject":"rpt:group-35","labelType":"xbrl:label","value":"9955524 - Disclosure - Fair Value Measurements (Details)","language":"en-US"},{"forObject":"rpt:group-36","labelType":"xbrl:label","value":"9955513 - Disclosure - Fair Value Measurements (Tables)","language":"en-US"},{"forObject":"rpt:group-37","labelType":"xbrl:label","value":"9952164 - Disclosure - Income Taxes","language":"en-US"},{"forObject":"rpt:group-38","labelType":"xbrl:label","value":"9955551 - Disclosure - Income Taxes - Components of Deferred Tax Assets and Liabilities (Details)","language":"en-US"},{"forObject":"rpt:group-39","labelType":"xbrl:label","value":"9955549 - Disclosure - Income Taxes - Components of Income Tax Provision (Details)","language":"en-US"},{"forObject":"rpt:group-40","labelType":"xbrl:label","value":"9955550 - Disclosure - Income Taxes - Income Tax Rate Reconciliation (Details)","language":"en-US"},{"forObject":"rpt:group-41","labelType":"xbrl:label","value":"9955553 - Disclosure - Income Taxes - Income Taxes Paid (Net of Refunds) (Details)","language":"en-US"},{"forObject":"rpt:group-42","labelType":"xbrl:label","value":"9955548 - Disclosure - Income Taxes - Loss before Provision for Income Taxes (Details)","language":"en-US"},{"forObject":"rpt:group-43","labelType":"xbrl:label","value":"9955552 - Disclosure - Income Taxes - Narrative (Details)","language":"en-US"},{"forObject":"rpt:group-44","labelType":"xbrl:label","value":"9955518 - Disclosure - Income Taxes (Tables)","language":"en-US"},{"forObject":"rpt:group-45","labelType":"xbrl:label","value":"9955554 - Disclosure - Income Taxes - Unrecognized Tax Benefits Activity (Details)","language":"en-US"},{"forObject":"rpt:group-46","labelType":"xbrl:label","value":"9952165 - Disclosure - Net Income (Loss) Per Common Share","language":"en-US"},{"forObject":"rpt:group-47","labelType":"xbrl:label","value":"9955555 - Disclosure - Net Income (Loss) Per Common Share (Details)","language":"en-US"},{"forObject":"rpt:group-48","labelType":"xbrl:label","value":"9955519 - Disclosure - Net Income (Loss) Per Common Share (Tables)","language":"en-US"},{"forObject":"rpt:group-49","labelType":"xbrl:label","value":"9952166 - Disclosure - Revenue from Contracts with Customers","language":"en-US"},{"forObject":"rpt:group-50","labelType":"xbrl:label","value":"9955559 - Disclosure - Revenue from Contracts with Customers - Concentration Risk (Details)","language":"en-US"},{"forObject":"rpt:group-51","labelType":"xbrl:label","value":"9955556 - Disclosure - Revenue from Contracts with Customers - Contract Assets and Liabilities (Details)","language":"en-US"},{"forObject":"rpt:group-52","labelType":"xbrl:label","value":"9955558 - Disclosure - Revenue from Contracts with Customers - Contract Costs (Details)","language":"en-US"},{"forObject":"rpt:group-53","labelType":"xbrl:label","value":"9955557 - Disclosure - Revenue from Contracts with Customers - Performance Obligation (Details)","language":"en-US"},{"forObject":"rpt:group-54","labelType":"xbrl:label","value":"9952167 - Disclosure - Segment Information","language":"en-US"},{"forObject":"rpt:group-55","labelType":"xbrl:label","value":"9955560 - Disclosure - Segment Information - Narrative (Details)","language":"en-US"},{"forObject":"rpt:group-56","labelType":"xbrl:label","value":"9955562 - Disclosure - Segment Information - Schedule of Property and Equipment by Geographic Region (Details)","language":"en-US"},{"forObject":"rpt:group-57","labelType":"xbrl:label","value":"9955561 - Disclosure - Segment Information - Schedule of Revenue by Geographic Region (Details)","language":"en-US"},{"forObject":"rpt:group-58","labelType":"xbrl:label","value":"9955563 - Disclosure - Segment Information - Schedule of Segment Operating Information, by Segment (Details)","language":"en-US"},{"forObject":"rpt:group-59","labelType":"xbrl:label","value":"9955520 - Disclosure - Segment Information (Tables)","language":"en-US"},{"forObject":"rpt:group-60","labelType":"xbrl:label","value":"9952161 - Disclosure - Stockholders' Equity","language":"en-US"},{"forObject":"rpt:group-61","labelType":"xbrl:label","value":"9955543 - Disclosure - Stockholders' Equity - Assumptions (Details)","language":"en-US"},{"forObject":"rpt:group-62","labelType":"xbrl:label","value":"9955540 - Disclosure - Stockholders' Equity - ESPP and Stock Based Compensation (Details)","language":"en-US"},{"forObject":"rpt:group-63","labelType":"xbrl:label","value":"9955538 - Disclosure - Stockholders' Equity - Equity Incentive Plans (Details)","language":"en-US"},{"forObject":"rpt:group-64","labelType":"xbrl:label","value":"9955542 - Disclosure - Stockholders' Equity - Fair Value of Awards Granted (Details)","language":"en-US"},{"forObject":"rpt:group-65","labelType":"xbrl:label","value":"9955545 - Disclosure - Stockholders' Equity - Shares Reserved For Future Issuance (Details)","language":"en-US"},{"forObject":"rpt:group-66","labelType":"xbrl:label","value":"9955541 - Disclosure - Stockholders' Equity - Stock-Based Compensation Expense (Details)","language":"en-US"},{"forObject":"rpt:group-67","labelType":"xbrl:label","value":"9955536 - Disclosure - Stockholders' Equity - Stock Offering, Treasury Stock Retirement, Preferred Stock and Common Stock (Details)","language":"en-US"},{"forObject":"rpt:group-68","labelType":"xbrl:label","value":"9955539 - Disclosure - Stockholders' Equity - Stock Options Activity (Details)","language":"en-US"},{"forObject":"rpt:group-69","labelType":"xbrl:label","value":"9955537 - Disclosure - Stockholders' Equity - Stock Repurchase Program (Details)","language":"en-US"},{"forObject":"rpt:group-70","labelType":"xbrl:label","value":"9955516 - Disclosure - Stockholders' Equity (Tables)","language":"en-US"},{"forObject":"rpt:group-71","labelType":"xbrl:label","value":"9955544 - Disclosure - Stockholders' Equity - Unrecognized Stock-based Compensation Expenses (Details)","language":"en-US"},{"forObject":"rpt:group-72","labelType":"xbrl:label","value":"995550 - Disclosure - Cybersecurity Risk Management and Strategy Disclosure","language":"en-US"},{"forObject":"rpt:group-73","labelType":"xbrl:label","value":"995443 - Disclosure - Award Timing Disclosure","language":"en-US"},{"forObject":"rpt:group-74","labelType":"xbrl:label","value":"995440 - Disclosure - Recovery of Erroneously Awarded Compensation","language":"en-US"},{"forObject":"rpt:group-75","labelType":"xbrl:label","value":"995445 - Disclosure - Insider Trading Arrangements","language":"en-US"},{"forObject":"rpt:group-76","labelType":"xbrl:label","value":"995447 - Disclosure - Insider Trading Policies and Procedures","language":"en-US"},{"forObject":"rpt:group-77","labelType":"xbrl:label","value":"995410 - Disclosure - Pay vs Performance Disclosure","language":"en-US"},{"forObject":"rpt:group-78","labelType":"xbrl:label","value":"9955533 - Disclosure - Commitments and Contingencies - Operating Lease (Details)","language":"en-US"},{"forObject":"rpt:group-79","labelType":"xbrl:label","value":"9955557 - Disclosure - Revenue from Contracts with Customers - Performance Obligation (Details)","language":"en-US"},{"forObject":"rpt:group-80","labelType":"xbrl:label","value":"995444 - Document - Awards Close To MNPI Disclosures","language":"en-US"},{"forObject":"rpt:group-81","labelType":"xbrl:label","value":"995441 - Document - Forgone Recoveries, by Individual","language":"en-US"},{"forObject":"rpt:group-82","labelType":"xbrl:label","value":"995446 - Document - Insider Trading Arrangements, by Individual","language":"en-US"},{"forObject":"rpt:group-83","labelType":"xbrl:label","value":"995442 - Document - Outstanding Recoveries","language":"en-US"},{"forObject":"rpt:group-84","labelType":"xbrl:label","value":"995413 - Disclosure - Adjustments to Compensation","language":"en-US"},{"forObject":"rpt:group-85","labelType":"xbrl:label","value":"995411 - Disclosure - Pay vs Performance Disclosure, with Additional Measures","language":"en-US"},{"forObject":"rpt:group-86","labelType":"xbrl:label","value":"995424 - Disclosure - Measures","language":"en-US"},{"forObject":"rpt:group-87","labelType":"xbrl:label","value":"995412 - Document - Pay vs Performance Table","language":"en-US"},{"forObject":"rpt:group-88","labelType":"xbrl:label","value":"995415 - Disclosure - Tabular List Measures","language":"en-US"},{"forObject":"rpt:group-89","labelType":"xbrl:label","value":"995414 - Disclosure - Tabular Lists by Executive Category","language":"en-US"}],"networks":[{"name":"rpt:network-presentation-48","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-49","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:AccumulatedOtherComprehensiveIncomeMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:AccumulatedOtherComprehensiveIncomeMember","target":"us-gaap:AccumulatedNetUnrealizedInvestmentGainLossMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccumulatedOtherComprehensiveIncomeLossLineItems","target":"us-gaap:AOCIAttributableToParentNetOfTaxRollForward","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AOCIAttributableToParentNetOfTaxRollForward","target":"us-gaap:StockholdersEquity","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodStartLabel"}]},{"source":"us-gaap:AccumulatedOtherComprehensiveIncomeMember","target":"us-gaap:AccumulatedTranslationAdjustmentMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccumulatedOtherComprehensiveIncomeLossTable","target":"us-gaap:AccumulatedOtherComprehensiveIncomeLossLineItems","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AOCIAttributableToParentNetOfTaxRollForward","target":"us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:AOCIAttributableToParentNetOfTaxRollForward","target":"us-gaap:StockholdersEquity","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodEndLabel"}]}]},{"name":"rpt:network-presentation-50","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-51","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"calx:AuditInformationAbstract","order":1.0},{"source":"calx:AuditInformationAbstract","target":"dei:AuditorName","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"calx:AuditInformationAbstract","target":"dei:AuditorLocation","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"calx:AuditInformationAbstract","target":"dei:AuditorFirmId","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-52","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-53","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","order":1.0},{"source":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","target":"us-gaap:AccountsReceivableGrossCurrent","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","target":"us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedLabel"}]},{"source":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","target":"us-gaap:AccountsReceivableNetCurrent","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:BalanceSheetRelatedDisclosuresAbstract","order":1.0},{"source":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","target":"us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccruedLiabilitiesCurrentAbstract","target":"us-gaap:EmployeeRelatedLiabilitiesCurrent","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","target":"us-gaap:AccruedLiabilitiesCurrentAbstract","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:AccruedLiabilitiesCurrentAbstract","target":"calx:AccruedExcessAndObsoleteInventoryAtContractManufacturer","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccruedLiabilitiesCurrentAbstract","target":"calx:AccruedCustomerAdvancesOrRebatesCurrent","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:AccruedPropertyPlantAndEquipmentCurrent","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccruedLiabilitiesCurrentAbstract","target":"calx:TaxesPayableCurrentExcludingAccruedIncomeTaxes","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccruedLiabilitiesCurrentAbstract","target":"us-gaap:OperatingLeaseLiabilityCurrent","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:AccruedLiabilitiesCurrentAbstract","target":"us-gaap:AccruedInsuranceCurrent","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccruedLiabilitiesCurrentAbstract","target":"us-gaap:ProductWarrantyAccrualClassifiedCurrent","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccruedLiabilitiesCurrentAbstract","target":"calx:AccruedFreightCurrent","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccruedLiabilitiesCurrentAbstract","target":"calx:AccruedOperationsCurrent","order":11.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccruedLiabilitiesCurrentAbstract","target":"calx:ProductReturnReserveCurrent","order":12.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccruedLiabilitiesCurrentAbstract","target":"us-gaap:OtherAccruedLiabilitiesCurrent","order":13.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:AccruedLiabilitiesCurrentAbstract","target":"us-gaap:AccruedLiabilitiesCurrent","order":14.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]}]},{"name":"rpt:network-presentation-55","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:SECSchedule1209ReserveProductReturnsMember","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-56","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:InventoryPartsAndComponentsNetOfReserves","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:InventoryNetAbstract","target":"us-gaap:InventoryFinishedGoodsNetOfReserves","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:InventoryNetAbstract","target":"us-gaap:InventoryNet","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]}]},{"name":"rpt:network-presentation-57","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","order":1.0},{"source":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","target":"us-gaap:DepreciationDepletionAndAmortization","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-58","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":"calx:StandardAndExtendedProductWarrantyAccrualIncreaseForWarrantiesIssuedNet","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-59","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":"us-gaap:ComputerEquipmentMember","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:PropertyPlantAndEquipmentTypeDomain","target":"calx:SoftwareMember","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:LeaseholdImprovementsMember","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"us-gaap:FurnitureAndFixturesMember","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]}]},{"name":"rpt:network-presentation-60","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","order":1.0},{"source":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","target":"us-gaap:DepositsAssetsCurrent","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","target":"calx:PrepaidExpensesAndOtherAssetsMiscellaneousCurrent","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","target":"us-gaap:PrepaidExpenseAndOtherAssetsCurrent","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]}]},{"name":"rpt:network-presentation-61","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":"calx:ScheduleOfChangesInAllowanceForDoubtfulAccountsAndProductReturnLiabilityTableTextBlock","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:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:BalanceSheetRelatedDisclosuresAbstract","target":"us-gaap:PropertyPlantAndEquipmentTextBlock","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"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"}]}]},{"name":"rpt:network-presentation-62","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:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"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:AccountsReceivableNetCurrent","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"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:InventoryNet","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:AssetsAbstract","target":"us-gaap:DeferredIncomeTaxAssetsNet","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:LiabilitiesCurrentAbstract","target":"us-gaap:LiabilitiesCurrent","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"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:PrepaidExpenseAndOtherAssetsCurrent","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:AssetsAbstract","target":"us-gaap:Goodwill","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"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:AssetsCurrent","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:AssetsAbstract","target":"us-gaap:OtherAssetsNoncurrent","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"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:StockholdersEquity","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:AssetsAbstract","target":"us-gaap:Assets","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:LiabilitiesAndStockholdersEquityAbstract","target":"us-gaap:LiabilitiesAndStockholdersEquity","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]}]},{"name":"rpt:network-presentation-63","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"}]}]},{"name":"rpt:network-presentation-64","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:NetIncomeLoss","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"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:DepreciationDepletionAndAmortization","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:PaymentsToAcquireAvailableForSaleSecuritiesDebt","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:NetCashProvidedByUsedInFinancingActivitiesAbstract","target":"us-gaap:PaymentsForRepurchaseOfCommonStock","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"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:DeferredIncomeTaxesAndTaxCredits","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"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:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StatementOfCashFlowsAbstract","target":"us-gaap:NetCashProvidedByUsedInFinancingActivitiesAbstract","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:NetCashProvidedByUsedInFinancingActivitiesAbstract","target":"calx:PaymentsForFinancingArrangements","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract","target":"us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments","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":"us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:NetCashProvidedByUsedInFinancingActivitiesAbstract","target":"us-gaap:NetCashProvidedByUsedInFinancingActivities","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"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: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: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:StatementOfCashFlowsAbstract","target":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodEndLabel"}]},{"source":"us-gaap:StatementOfCashFlowsAbstract","target":"us-gaap:SupplementalCashFlowInformationAbstract","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StatementOfCashFlowsAbstract","target":"us-gaap:NoncashInvestingAndFinancingItemsAbstract","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]}]},{"name":"rpt:network-presentation-65","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:ApplianceMember","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:RevenueFromContractWithCustomerExcludingAssessedTax","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:InterestIncomeExpenseNonoperatingNet","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:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:ProductsAndServicesDomain","target":"calx:SoftwareAndServiceMember","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:terseLabel"}]},{"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:OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract","target":"us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"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:OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract","target":"us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent","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:OperatingExpenses","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:StatementLineItems","target":"us-gaap:OperatingIncomeLoss","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:StatementLineItems","target":"us-gaap:NonoperatingIncomeExpenseAbstract","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:StatementLineItems","target":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest","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:NetIncomeLoss","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:NetIncomeLoss","order":12.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"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:ComprehensiveIncomeNetOfTax","order":14.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]}]},{"name":"rpt:network-presentation-66","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":"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":"us-gaap:StatementLineItems","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: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:StockIssuedDuringPeriodSharesShareBasedCompensation","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"us-gaap:StockRepurchasedDuringPeriodShares","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"calx:StockRepurchasedDuringPeriodValueNetOfExciseTaxAdjustment","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"us-gaap:NetIncomeLoss","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"us-gaap:CommonStockSharesOutstanding","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodEndLabel"}]},{"source":"us-gaap:IncreaseDecreaseInStockholdersEquityRollForward","target":"us-gaap:StockholdersEquity","order":11.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodEndLabel"}]}]},{"name":"rpt:network-presentation-67","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-68","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:CashAndCashEquivalentsAbstract","order":1.0},{"source":"us-gaap:CashAndCashEquivalentsAbstract","target":"us-gaap:DebtSecuritiesAvailableForSaleTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DebtSecuritiesAvailableForSaleTable","target":"us-gaap:FinancialInstrumentAxis","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:CorporateDebtSecuritiesMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:BalanceSheetLocationAxis","target":"us-gaap:BalanceSheetLocationDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:BalanceSheetLocationDomain","target":"calx:ShortTermMarketableSecuritiesMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfAvailableForSaleSecuritiesLineItems","target":"us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLossCurrent","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","target":"us-gaap:CommercialPaperMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DebtSecuritiesAvailableForSaleTable","target":"us-gaap:BalanceSheetLocationAxis","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:BalanceSheetLocationDomain","target":"calx:ShortTermMarketableSecuritiesAndCashEquivalentsMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfAvailableForSaleSecuritiesLineItems","target":"us-gaap:DebtSecuritiesAvailableForSaleAccumulatedGrossUnrealizedGainLossBeforeTax","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","target":"us-gaap:USGovernmentDebtSecuritiesMember","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DebtSecuritiesAvailableForSaleTable","target":"us-gaap:ScheduleOfAvailableForSaleSecuritiesLineItems","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfAvailableForSaleSecuritiesLineItems","target":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","target":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","target":"us-gaap:MunicipalNotesMember","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-69","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:CorporateDebtSecuritiesMember","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:MaximumMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:CashAndCashEquivalentsLineItems","target":"us-gaap:Cash","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember","target":"us-gaap:CommercialPaperMember","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:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","target":"us-gaap:USGovernmentDebtSecuritiesMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:CashAndCashEquivalentsLineItems","target":"us-gaap:CashEquivalentsAtCarryingValue","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember","target":"us-gaap:MoneyMarketFundsMember","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","target":"us-gaap:CommercialPaperMember","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfCashAndCashEquivalentsTable","target":"srt:RangeAxis","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:CashAndCashEquivalentsLineItems","target":"us-gaap:CashAndCashEquivalentsAtCarryingValue","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember","target":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","target":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfCashAndCashEquivalentsTable","target":"us-gaap:CashAndCashEquivalentsLineItems","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:CashAndCashEquivalentsLineItems","target":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:RestrictedCashAndCashEquivalentsCashAndCashEquivalentsMember","target":"us-gaap:USGovernmentDebtSecuritiesMember","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","target":"us-gaap:MunicipalNotesMember","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:CashAndCashEquivalentsLineItems","target":"calx:CashCashEquivalentsAndMarketableSecurities","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:CashAndCashEquivalentsLineItems","target":"us-gaap:DebtSecuritiesAvailableForSaleTerm","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-70","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"}]},{"source":"us-gaap:CashAndCashEquivalentsAbstract","target":"us-gaap:DebtSecuritiesAvailableForSaleTableTextBlock","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-71","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-72","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":"calx:OperatingLeaseAreaOfOfficeBuilding","order":1.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:LesseeOperatingLeaseLeaseNotYetCommencedTermOfContract1","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:LossContingenciesLineItems","target":"us-gaap:UnrecordedUnconditionalPurchaseObligationBalanceSheetAmount","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:LossContingenciesLineItems","target":"us-gaap:OperatingLeaseRightOfUseAsset","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:LossContingenciesLineItems","target":"us-gaap:OperatingLeaseLiability","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:LossContingenciesLineItems","target":"us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:LossContingenciesLineItems","target":"us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:LossContingenciesLineItems","target":"us-gaap:OperatingLeaseCost","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:LossContingenciesLineItems","target":"us-gaap:OperatingLeasePayments","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:LossContingenciesLineItems","target":"us-gaap:PurchaseCommitmentRemainingMinimumAmountCommitted","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-73","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-74","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:CommitmentsAndContingenciesDisclosureAbstract","order":1.0},{"source":"us-gaap:CommitmentsAndContingenciesDisclosureAbstract","target":"us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:CommitmentsAndContingenciesDisclosureAbstract","target":"us-gaap:OperatingLeaseLiabilityCurrent","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:CommitmentsAndContingenciesDisclosureAbstract","target":"us-gaap:OperatingLeaseLiabilityNoncurrent","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:CommitmentsAndContingenciesDisclosureAbstract","target":"us-gaap:OperatingLeaseLiability","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]}]},{"name":"rpt:network-presentation-75","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":"calx:LesseeOperatingLeaseLiabilityTableTextBlock","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-76","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:CurrentFiscalYearEndDate","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:DocumentTransitionReport","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityFileNumber","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityRegistrantName","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityIncorporationStateCountryCode","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityTaxIdentificationNumber","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityAddressAddressLine1","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityAddressAddressLine2","order":11.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityAddressCityOrTown","order":12.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityAddressStateOrProvince","order":13.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityAddressPostalZipCode","order":14.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:CityAreaCode","order":15.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:LocalPhoneNumber","order":16.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:Security12bTitle","order":17.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:TradingSymbol","order":18.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:SecurityExchangeName","order":19.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityWellKnownSeasonedIssuer","order":20.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityVoluntaryFilers","order":21.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityCurrentReportingStatus","order":22.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityInteractiveDataCurrent","order":23.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityFilerCategory","order":24.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntitySmallBusiness","order":25.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityEmergingGrowthCompany","order":26.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:IcfrAuditorAttestationFlag","order":27.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:DocumentFinStmtErrorCorrectionFlag","order":28.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityShellCompany","order":29.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityPublicFloat","order":30.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityCommonStockSharesOutstanding","order":31.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:DocumentsIncorporatedByReferenceTextBlock","order":32.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:EntityCentralIndexKey","order":33.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:AmendmentFlag","order":34.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:DocumentFiscalYearFocus","order":35.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"dei:CoverAbstract","target":"dei:DocumentFiscalPeriodFocus","order":36.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-77","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-78","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: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":"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":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"calx:SoftwareMember","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":"us-gaap:PropertyPlantAndEquipmentTypeDomain","target":"us-gaap:EquipmentMember","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"calx:ScheduleOfCertainTermsLineItemsLineItems","target":"us-gaap:CapitalizedContractCostAmortizationPeriod","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"calx:ScheduleOfCertainTermsTableTable","target":"us-gaap:PropertyPlantAndEquipmentByTypeAxis","order":4.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"}]},{"source":"calx:ScheduleOfCertainTermsLineItemsLineItems","target":"us-gaap:PropertyPlantAndEquipmentUsefulLife","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-79","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:RevenueFromContractWithCustomerPolicyTextBlock","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:CashCashEquivalentsAndMarketableSecuritiesPolicyPolicyTextBlock","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:CreditLossFinancialInstrumentPolicyTextBlock","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:PropertyPlantAndEquipmentPolicyTextBlock","order":13.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy","order":14.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:IncomeTaxPolicyTextBlock","order":15.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock","order":16.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:AccountingPoliciesAbstract","target":"us-gaap:FairValueMeasurementPolicyPolicyTextBlock","order":17.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-80","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-81","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-82","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-83","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:FinancialInstrumentAxis","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:USGovernmentDebtSecuritiesMember","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:verboseLabel"}]},{"source":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","target":"us-gaap:CorporateDebtSecuritiesMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable","target":"us-gaap:FairValueByFairValueHierarchyLevelAxis","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:FairValueMeasurementsFairValueHierarchyDomain","target":"us-gaap:FairValueInputsLevel2Member","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems","target":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","target":"us-gaap:CommercialPaperMember","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable","target":"us-gaap:FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems","target":"calx:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrentAndCashEquivalentsAtCarryingValue","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","target":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems","target":"us-gaap:AssetsFairValueDisclosure","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain","target":"us-gaap:MunicipalNotesMember","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-84","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-85","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-86","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:DeferredTaxLiabilitiesNetAbstract","target":"us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:DeferredTaxAssetsGrossAbstract","target":"us-gaap:TaxCreditCarryforwardAmount","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:DeferredTaxLiabilitiesNetAbstract","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DeferredTaxLiabilitiesNetAbstract","target":"us-gaap:DeferredTaxLiabilitiesLeasingArrangements","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedLabel"}]},{"source":"us-gaap:DeferredTaxAssetsGrossAbstract","target":"us-gaap:DeferredTaxAssetsInventory","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DeferredTaxLiabilitiesNetAbstract","target":"us-gaap:DeferredTaxLiabilitiesUndistributedForeignEarnings","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:DeferredTaxAssetsLiabilitiesNet","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:DeferredTaxAssetsGrossAbstract","target":"us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DeferredTaxLiabilitiesNetAbstract","target":"us-gaap:DeferredIncomeTaxLiabilities","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTotalLabel"}]},{"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":"calx:DeferredTaxAssetLeasingArrangements","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DeferredTaxAssetsGrossAbstract","target":"calx:DeferredTaxAssetsDeferredExpenseCapitalizedResearchAndDevelopmentCosts","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DeferredTaxAssetsGrossAbstract","target":"us-gaap:DeferredTaxAssetsOther","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DeferredTaxAssetsGrossAbstract","target":"us-gaap:DeferredTaxAssetsGross","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:DeferredTaxAssetsGrossAbstract","target":"us-gaap:DeferredTaxAssetsValuationAllowance","order":11.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:DeferredTaxAssetsGrossAbstract","target":"us-gaap:DeferredTaxAssetsNet","order":12.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]}]},{"name":"rpt:network-presentation-87","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:IncomeTaxDisclosureAbstract","order":1.0},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract","target":"us-gaap:CurrentFederalTaxExpenseBenefit","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract","target":"us-gaap:DeferredFederalIncomeTaxExpenseBenefit","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract","target":"us-gaap:CurrentStateAndLocalTaxExpenseBenefit","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract","target":"us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract","target":"us-gaap:CurrentForeignTaxExpenseBenefit","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract","target":"us-gaap:DeferredForeignIncomeTaxExpenseBenefit","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:IncomeTaxExpenseBenefit","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract","target":"us-gaap:CurrentIncomeTaxExpenseBenefit","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract","target":"us-gaap:DeferredIncomeTaxExpenseBenefit","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]}]},{"name":"rpt:network-presentation-88","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:IncomeTaxDisclosureAbstract","order":1.0},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:EffectiveIncomeTaxRateReconciliationTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EffectiveIncomeTaxRateReconciliationTable","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:verboseLabel"}]},{"source":"us-gaap:DomesticCountryMember","target":"country:US","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ForeignCountryMember","target":"country:CN","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EffectiveIncomeTaxRateReconciliationLineItems","target":"us-gaap:IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract","target":"us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract","target":"us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxAuthorityDomain","target":"us-gaap:ForeignCountryMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ForeignCountryMember","target":"country:IN","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EffectiveIncomeTaxRateReconciliationTable","target":"us-gaap:EffectiveIncomeTaxRateReconciliationLineItems","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract","target":"us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EffectiveIncomeTaxRateReconciliationLineItems","target":"us-gaap:EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract","target":"us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract","target":"calx:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensationAmount","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract","target":"calx:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensationPercent","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract","target":"us-gaap:IncomeTaxReconciliationNondeductibleExpenseMealsAndEntertainment","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract","target":"us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract","target":"us-gaap:IncomeTaxReconciliationNondeductibleExpenseOther","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract","target":"us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseOther","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract","target":"us-gaap:EffectiveIncomeTaxRateReconciliationCrossBorderTaxEffectAmount","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract","target":"us-gaap:EffectiveIncomeTaxRateReconciliationCrossBorderTaxEffectPercent","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract","target":"us-gaap:IncomeTaxReconciliationTaxCreditsResearch","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract","target":"us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract","target":"calx:EffectiveIncomeTaxRateReconciliationTaxCreditForeignAmountNetting","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract","target":"calx:EffectiveIncomeTaxRateReconciliationTaxCreditForeignPercentNetting","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract","target":"us-gaap:IncomeTaxReconciliationTaxContingencies","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract","target":"us-gaap:EffectiveIncomeTaxRateReconciliationTaxContingencies","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract","target":"us-gaap:IncomeTaxReconciliationOtherAdjustments","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract","target":"us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract","target":"us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes","order":11.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract","target":"us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes","order":11.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract","target":"us-gaap:IncomeTaxReconciliationRepatriationOfForeignEarnings","order":12.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract","target":"us-gaap:EffectiveIncomeTaxRateReconciliationRepatriationOfForeignEarnings","order":12.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract","target":"us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential","order":13.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract","target":"us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential","order":13.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxExpenseBenefitContinuingOperationsIncomeTaxReconciliationAbstract","target":"us-gaap:IncomeTaxExpenseBenefit","order":14.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract","target":"calx:EffectiveIncomeTaxRateReconciliationRepatriationOfForeignEarningsLossPercent","order":14.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract","target":"us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance","order":15.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract","target":"calx:EffectiveIncomeTaxRateReconciliationTaxAttributeExpirationPercent","order":16.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract","target":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","order":17.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]}]},{"name":"rpt:network-presentation-89","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:IncomeTaxDisclosureAbstract","order":1.0},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:EffectiveIncomeTaxRateReconciliationTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EffectiveIncomeTaxRateReconciliationTable","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":"stpr:PA","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EffectiveIncomeTaxRateReconciliationLineItems","target":"us-gaap:IncomeTaxPaidFederalAfterRefundReceived","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxPaidStateAndLocalAfterRefundReceivedAbstract","target":"us-gaap:IncomeTaxPaidStateAndLocalAfterRefundReceived","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxPaidForeignAfterRefundReceivedAbstract","target":"us-gaap:IncomeTaxPaidForeignAfterRefundReceived","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxAuthorityDomain","target":"stpr:SC","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EffectiveIncomeTaxRateReconciliationTable","target":"us-gaap:EffectiveIncomeTaxRateReconciliationLineItems","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EffectiveIncomeTaxRateReconciliationLineItems","target":"us-gaap:IncomeTaxPaidStateAndLocalAfterRefundReceivedAbstract","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxAuthorityDomain","target":"us-gaap:StateAndLocalTaxJurisdictionOtherMember","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EffectiveIncomeTaxRateReconciliationLineItems","target":"us-gaap:IncomeTaxPaidForeignAfterRefundReceivedAbstract","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxAuthorityDomain","target":"country:CN","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EffectiveIncomeTaxRateReconciliationLineItems","target":"us-gaap:IncomeTaxesPaidNet","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]},{"source":"us-gaap:IncomeTaxAuthorityDomain","target":"country:IN","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxAuthorityDomain","target":"us-gaap:ForeignTaxJurisdictionOtherMember","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-90","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:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]}]},{"name":"rpt:network-presentation-91","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:DeferredTaxAssetsValuationAllowance","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxAuthorityDomain","target":"us-gaap:StateAndLocalTaxJurisdictionOtherMember","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"calx:IncomeTaxesLineItems","target":"us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"calx:IncomeTaxesLineItems","target":"us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsSubjectToExpiration","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"calx:IncomeTaxesLineItems","target":"us-gaap:TaxCreditCarryforwardAmount","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"calx:IncomeTaxesLineItems","target":"us-gaap:IncomeTaxesPaidNet","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"calx:IncomeTaxesLineItems","target":"us-gaap:UnrecognizedTaxBenefits","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"calx:IncomeTaxesLineItems","target":"us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-92","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:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:IncomeTaxDisclosureAbstract","target":"us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-93","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:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward","target":"us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward","target":"us-gaap:UnrecognizedTaxBenefits","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:periodEndLabel"}]}]},{"name":"rpt:network-presentation-94","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-95","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:EarningsPerShareAbstract","order":1.0},{"source":"us-gaap:EarningsPerShareAbstract","target":"us-gaap:EarningsPerShareBasicAbstract","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:EarningsPerShareBasicAbstract","target":"us-gaap:NetIncomeLossAbstract","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:NetIncomeLossAbstract","target":"us-gaap:NetIncomeLoss","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasicAbstract","target":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasic","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:EarningsPerShareBasicAbstract","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:EarningsPerShareBasicAbstract","target":"us-gaap:EarningsPerShareBasic","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:EarningsPerShareBasicAbstract","target":"us-gaap:EarningsPerShareDiluted","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:EarningsPerShareBasicAbstract","target":"us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-96","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-97","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:RevenueFromContractWithCustomerAbstract","order":1.0},{"source":"us-gaap:RevenueFromContractWithCustomerAbstract","target":"us-gaap:RevenueFromContractWithCustomerTextBlock","order":1.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: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:CustomerOneMember","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":"srt:NameOfMajorCustomerDomain","target":"calx:CustomerTwoMember","order":2.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: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-99","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:RevenueFromContractWithCustomerAbstract","order":1.0},{"source":"us-gaap:RevenueFromContractWithCustomerAbstract","target":"us-gaap:ContractWithCustomerAssetNet","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RevenueFromContractWithCustomerAbstract","target":"calx:ContractWithCustomerAssetExpectedToBeBilledYearOnePercent","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RevenueFromContractWithCustomerAbstract","target":"us-gaap:ContractWithCustomerLiability","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RevenueFromContractWithCustomerAbstract","target":"us-gaap:IncreaseDecreaseInContractWithCustomerLiability","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RevenueFromContractWithCustomerAbstract","target":"us-gaap:ContractWithCustomerLiabilityRevenueRecognized","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-100","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"}]},{"source":"us-gaap:RevenueFromContractWithCustomerAbstract","target":"us-gaap:CapitalizedContractCostImpairmentLoss","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-101","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:RevenueFromContractWithCustomerAbstract","order":1.0},{"source":"us-gaap:RevenueFromContractWithCustomerAbstract","target":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable","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:RevenueRemainingPerformanceObligation","order":1.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:RevenueRemainingPerformanceObligationPercentage","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems","target":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-102","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:SegmentReportingAbstract","order":1.0},{"source":"us-gaap:SegmentReportingAbstract","target":"us-gaap:SegmentReportingDisclosureTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]}]},{"name":"rpt:network-presentation-103","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:SegmentReportingAbstract","order":1.0},{"source":"us-gaap:SegmentReportingAbstract","target":"us-gaap:NumberOfReportableSegments","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:SegmentReportingAbstract","target":"us-gaap:NumberOfOperatingSegments","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-104","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:SegmentReportingAbstract","order":1.0},{"source":"us-gaap:SegmentReportingAbstract","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:EntityWideRevenueMajorCustomerLineItems","target":"us-gaap:NoncurrentAssets","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:EntityWideRevenueMajorCustomerLineItems","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:SegmentGeographicalDomain","target":"country:IN","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:SegmentReportingAbstract","order":1.0},{"source":"us-gaap:SegmentReportingAbstract","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:EntityWideRevenueMajorCustomerLineItems","target":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:SegmentGeographicalDomain","target":"srt:EuropeMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable","target":"us-gaap:EntityWideRevenueMajorCustomerLineItems","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:SegmentGeographicalDomain","target":"calx:AmericasExUSMember","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:SegmentGeographicalDomain","target":"calx:RestOfWorldMember","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-106","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:SegmentReportingAbstract","order":1.0},{"source":"us-gaap:SegmentReportingAbstract","target":"us-gaap:ScheduleOfSegmentReportingInformationBySegmentTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfSegmentReportingInformationBySegmentTable","target":"us-gaap:StatementBusinessSegmentsAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:StatementBusinessSegmentsAxis","target":"us-gaap:SegmentDomain","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:SegmentDomain","target":"calx:ReportableSegmentMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:SegmentReportingInformationLineItems","target":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:ScheduleOfSegmentReportingInformationBySegmentTable","target":"us-gaap:SegmentReportingInformationLineItems","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:SegmentReportingInformationLineItems","target":"calx:CostOfGoodsAndServicesSoldAdjusted","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedLabel"}]},{"source":"us-gaap:SegmentReportingInformationLineItems","target":"calx:SellingAndMarketingOperatingExpenseAdjusted","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:SegmentReportingInformationLineItems","target":"calx:ResearchAndDevelopmentOperatingExpenseAdjusted","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:SegmentReportingInformationLineItems","target":"calx:GeneralAndAdministrativeOperatingExpenseAdjusted","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:SegmentReportingInformationLineItems","target":"us-gaap:SegmentReportingOtherItemAmount","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:SegmentReportingInformationLineItems","target":"us-gaap:NonoperatingIncomeExpense","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:SegmentReportingInformationLineItems","target":"us-gaap:IncomeTaxExpenseBenefit","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:SegmentReportingInformationLineItems","target":"us-gaap:NetIncomeLoss","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:totalLabel"}]}]},{"name":"rpt:network-presentation-107","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:SegmentReportingAbstract","order":1.0},{"source":"us-gaap:SegmentReportingAbstract","target":"us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:SegmentReportingAbstract","target":"us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-108","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:EquityAbstract","order":1.0},{"source":"us-gaap:EquityAbstract","target":"us-gaap:ShareholdersEquityAndShareBasedPaymentsTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]}]},{"name":"rpt:network-presentation-109","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: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:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]}]},{"name":"rpt:network-presentation-110","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:StockPurchaseAndMatchingPlanMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"calx:StockPurchaseAndMatchingPlanMember","target":"calx:StockPurchaseAndMatchingPlanPurchaseComponentMember","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: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":"calx:StockPurchaseAndMatchingPlanMember","target":"calx:StockPurchaseAndMatchingPlanMatchingComponentMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PlanNameDomain","target":"calx:AmendedAndRestatedEmployeeStockPurchasePlanMember","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:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:CommonStockCapitalSharesReservedForFutureIssuance","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:PlanNameDomain","target":"calx:EmployeeStockPurchasePlanMember","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","target":"srt:RangeAxis","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:CommonStockCapitalSharesReservedForFutureIssuanceSubjectToStockholderApproval","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardDecreaseInNumberOfAdditionalSharesAuthorized","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:ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumNumberOfSharesPerEmployee","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfOfferingPeriods","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:SharebasedCompensationArrangementbySharebasedPaymentAwardPurchasePriceofCommonStockOfferingPeriod","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized","order":11.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant","order":12.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:StockIssuedDuringPeriodSharesEmployeeStockOwnershipPlan","order":13.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions","order":14.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1","order":15.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumContributionPercent","order":16.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEmployeeTerminationPeriodFollowingPurchaseDateToReceiveSharesSubjectToRiskOfForfeiture","order":17.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorizedPerPurchasePeriod","order":18.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesPurchasedForAward","order":19.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod","order":20.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions","order":21.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:PercentOfHistoricalVolatility","order":22.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:PercentOfImpliedVolatility","order":23.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationCostNotyetRecognizedToBeRecognizedNextTwelveMonth","order":24.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationCostNotyetRecognizedToBeRecognizedInYearTwo","order":25.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationCostNotyetRecognizedToBeRecognizedInYearThree","order":26.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationCostNotyetRecognizedToBeRecognizedInYearFour","order":27.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-111","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:EmployeeStockOptionMember","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: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":"calx:MinimumExercisePriceOfStockOptionPercent","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"calx:PerformanceBasedStockOptionsMember","order":2.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:VestingDomain","target":"us-gaap:ShareBasedCompensationAwardTrancheTwoMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:TitleOfIndividualWithRelationshipToEntityDomain","target":"calx:BoardOfDirectorsMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:RestrictedStockMember","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":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1","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:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod","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":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrantAdditionalShares","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":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPlans","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodPercentage","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardRequisiteServicePeriod1","order":11.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesAwardTargetAchievementPerformanceThresholdPercentageAchieved","order":12.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardForfeitedPercent","order":13.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensation","order":14.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardTargetAchievementPerformanceThresholdPercent","order":15.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesGrantedIfTargetAchievementPerformanceThresholdNotMetPercent","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":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesAwardWeightedPercentForTargetAchievementPerformanceThresholdPercent","order":18.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesAwardTargetAchievementPerformanceMaximumCombinedPayoutPercent","order":19.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAcceleratedCompensationCost","order":20.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue","order":21.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised","order":22.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod","order":23.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue","order":24.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions","order":25.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1","order":26.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-112","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:StockPurchaseAndMatchingPlanMember","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:verboseLabel"}]},{"source":"us-gaap:ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable","target":"us-gaap:PlanNameAxis","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-113","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:A2019PlanMember","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:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:PlanNameDomain","target":"calx:StockPurchaseAndMatchingPlanMember","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:ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant","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:CommonStockCapitalSharesReservedForFutureIssuance","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-114","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: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":"us-gaap:CostOfSalesMember","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":"us-gaap:SellingAndMarketingExpenseMember","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":"us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense","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:IncomeStatementLocationDomain","target":"us-gaap:GeneralAndAdministrativeExpenseMember","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]}]},{"name":"rpt:network-presentation-115","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:EquityAbstract","order":1.0},{"source":"us-gaap:EquityAbstract","target":"us-gaap:PreferredStockSharesAuthorized","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:EquityAbstract","target":"us-gaap:PreferredStockSharesIssued","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:EquityAbstract","target":"us-gaap:PreferredStockSharesOutstanding","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:EquityAbstract","target":"us-gaap:CommonStockDividendsPerShareDeclared","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EquityAbstract","target":"us-gaap:CommonStockDividendsPerShareCashPaid","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-116","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:EquityAbstract","order":1.0},{"source":"us-gaap:EquityAbstract","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:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract","target":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:EquityAbstract","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward","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:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue","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:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward","target":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:EquityAbstract","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:negatedTerseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward","target":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice","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:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract","target":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract","target":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract","target":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract","target":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsAdditionalDisclosuresAbstract","target":"calx:SharebasedCompensationArrangementbySharebasedPaymentAwardOptionsOutstandingIntrinsicValueAmountPerShare","order":11.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-117","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:EquityAbstract","order":1.0},{"source":"us-gaap:EquityAbstract","target":"srt:ShareRepurchaseProgramTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:ShareRepurchaseProgramTable","target":"us-gaap:SubsequentEventTypeAxis","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":"srt:ShareRepurchaseProgramLineItems","target":"us-gaap:StockRepurchasedDuringPeriodShares","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:ShareRepurchaseProgramTable","target":"srt:ShareRepurchaseProgramLineItems","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:ShareRepurchaseProgramLineItems","target":"calx:StockRepurchasedDuringPeriodValueExcludingExciseTax","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:ShareRepurchaseProgramLineItems","target":"calx:StockRepurchasedDuringPeriodAverageCostPerShare","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:ShareRepurchaseProgramLineItems","target":"us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"srt:ShareRepurchaseProgramLineItems","target":"calx:ShareRepurchaseProgramAdditionalSharesAuthorizedAmount","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-118","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:EquityAbstract","order":1.0},{"source":"us-gaap:EquityAbstract","target":"us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EquityAbstract","target":"us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EquityAbstract","target":"calx:ScheduleOfGrantDateFairValuesTableTextBlock","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EquityAbstract","target":"us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"source":"us-gaap:EquityAbstract","target":"us-gaap:ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EquityAbstract","target":"us-gaap:ScheduleOfUnrecognizedCompensationCostNonvestedAwardsTableTextBlock","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:EquityAbstract","target":"calx:SharesReservedForFutureIssuanceTableTextBlock","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-119","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:EmployeeStockOptionMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:verboseLabel"}]},{"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:RestrictedStockMember","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":"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:verboseLabel"}]}]},{"name":"rpt:network-presentation-120","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"cyd:CybersecurityRiskManagementStrategyAndGovernanceAbstract","order":1.0},{"source":"cyd:CybersecurityRiskManagementStrategyAndGovernanceAbstract","target":"cyd:CybersecurityRiskManagementStrategyAndGovernanceTable","order":1.0},{"source":"cyd:CybersecurityRiskManagementStrategyAndGovernanceLineItems","target":"cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock","order":1.0},{"source":"cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock","target":"cyd:CybersecurityRiskManagementProcessesIntegratedFlag","order":1.0},{"source":"cyd:CybersecurityRiskBoardOfDirectorsOversightTextBlock","target":"cyd:CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock","order":1.0},{"source":"cyd:CybersecurityRiskManagementStrategyAndGovernanceAbstract","target":"cyd:CybersecurityRiskManagementStrategyAndGovernanceLineItems","order":2.0},{"source":"cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock","target":"cyd:CybersecurityRiskManagementProcessesIntegratedTextBlock","order":2.0},{"source":"cyd:CybersecurityRiskManagementStrategyAndGovernanceLineItems","target":"cyd:CybersecurityRiskBoardOfDirectorsOversightTextBlock","order":2.0},{"source":"cyd:CybersecurityRiskBoardOfDirectorsOversightTextBlock","target":"cyd:CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock","order":2.0},{"source":"cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock","target":"cyd:CybersecurityRiskManagementThirdPartyEngagedFlag","order":3.0},{"source":"cyd:CybersecurityRiskBoardOfDirectorsOversightTextBlock","target":"cyd:CybersecurityRiskRoleOfManagementTextBlock","order":3.0},{"source":"cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock","target":"cyd:CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag","order":4.0},{"source":"cyd:CybersecurityRiskBoardOfDirectorsOversightTextBlock","target":"cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag","order":4.0},{"source":"cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock","target":"cyd:CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag","order":5.0},{"source":"cyd:CybersecurityRiskBoardOfDirectorsOversightTextBlock","target":"cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock","order":5.0},{"source":"cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock","target":"cyd:CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantTextBlock","order":6.0},{"source":"cyd:CybersecurityRiskBoardOfDirectorsOversightTextBlock","target":"cyd:CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock","order":6.0},{"source":"cyd:CybersecurityRiskBoardOfDirectorsOversightTextBlock","target":"cyd:CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock","order":7.0},{"source":"cyd:CybersecurityRiskBoardOfDirectorsOversightTextBlock","target":"cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag","order":8.0}]},{"name":"rpt:network-presentation-121","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"ecd:AwardTmgDiscLineItems","order":1.0},{"source":"ecd:AwardTmgDiscLineItems","target":"ecd:AwardTmgMnpiDiscTextBlock","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AwardsCloseToMnpiDiscTable","target":"ecd:IndividualAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:IndividualAxis","target":"ecd:AllIndividualsMember","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":"ecd:AwardTmgDiscLineItems","target":"ecd:AwardTmgMethodTextBlock","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AwardsCloseToMnpiDiscTable","target":"us-gaap:AwardTypeAxis","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain","target":"us-gaap:StockAppreciationRightsSARSMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AwardTmgDiscLineItems","target":"ecd:AwardTmgPredtrmndFlag","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AwardTmgDiscLineItems","target":"ecd:AwardTmgMnpiCnsdrdFlag","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AwardTmgDiscLineItems","target":"ecd:AwardTmgHowMnpiCnsdrdTextBlock","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AwardTmgDiscLineItems","target":"ecd:MnpiDiscTimedForCompValFlag","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AwardTmgDiscLineItems","target":"ecd:AwardsCloseToMnpiDiscTableTextBlock","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AwardTmgDiscLineItems","target":"ecd:AwardsCloseToMnpiDiscTable","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AwardTmgDiscLineItems","target":"ecd:AwardsCloseToMnpiDiscIndName","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AwardTmgDiscLineItems","target":"ecd:AwardUndrlygSecuritiesAmt","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AwardTmgDiscLineItems","target":"ecd:AwardExrcPrice","order":11.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AwardTmgDiscLineItems","target":"ecd:AwardGrantDateFairValue","order":12.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AwardTmgDiscLineItems","target":"ecd:UndrlygSecurityMktPriceChngPct","order":13.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-122","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"ecd:RecoveryOfErrCompDisclosureLineItems","order":1.0},{"source":"ecd:RecoveryOfErrCompDisclosureLineItems","target":"ecd:ErrCompRecoveryTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:ErrCompRecoveryTable","target":"ecd:RestatementDateAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:IndividualAxis","target":"ecd:AllIndividualsMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AllIndividualsMember","target":"ecd:NonNeosMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:ErrCompRecoveryTable","target":"ecd:IndividualAxis","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:RecoveryOfErrCompDisclosureLineItems","target":"ecd:RestatementDeterminationDate","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:RecoveryOfErrCompDisclosureLineItems","target":"ecd:AggtErrCompAmt","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:RecoveryOfErrCompDisclosureLineItems","target":"ecd:ErrCompAnalysisTextBlock","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:RecoveryOfErrCompDisclosureLineItems","target":"ecd:StkPrcOrTsrEstimationMethodTextBlock","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:RecoveryOfErrCompDisclosureLineItems","target":"ecd:OutstandingAggtErrCompAmt","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:RecoveryOfErrCompDisclosureLineItems","target":"ecd:AggtErrCompNotYetDeterminedTextBlock","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:RecoveryOfErrCompDisclosureLineItems","target":"ecd:ForgoneRecoveryIndName","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:RecoveryOfErrCompDisclosureLineItems","target":"ecd:ForgoneRecoveryDueToExpenseOfEnforcementAmt","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:RecoveryOfErrCompDisclosureLineItems","target":"ecd:ForgoneRecoveryDueToViolationOfHomeCountryLawAmt","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:RecoveryOfErrCompDisclosureLineItems","target":"ecd:ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt","order":11.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:RecoveryOfErrCompDisclosureLineItems","target":"ecd:ForgoneRecoveryExplanationOfImpracticabilityTextBlock","order":12.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:RecoveryOfErrCompDisclosureLineItems","target":"ecd:OutstandingRecoveryIndName","order":13.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:RecoveryOfErrCompDisclosureLineItems","target":"ecd:OutstandingRecoveryCompAmt","order":14.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:RecoveryOfErrCompDisclosureLineItems","target":"ecd:RestatementDoesNotRequireRecoveryTextBlock","order":15.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-123","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"ecd:InsiderTradingArrLineItems","order":1.0},{"source":"ecd:InsiderTradingArrLineItems","target":"ecd:TradingArrByIndTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:TradingArrByIndTable","target":"ecd:TradingArrAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:TradingArrAxis","target":"ecd:AllTradingArrangementsMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:IndividualAxis","target":"ecd:AllIndividualsMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AllIndividualsMember","target":"calx:JohnDurocherMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:label"}]},{"source":"ecd:TradingArrByIndTable","target":"ecd:IndividualAxis","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AllIndividualsMember","target":"calx:KevinPetersMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:label"}]},{"source":"ecd:InsiderTradingArrLineItems","target":"ecd:MtrlTermsOfTrdArrTextBlock","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:InsiderTradingArrLineItems","target":"ecd:TrdArrIndName","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:InsiderTradingArrLineItems","target":"ecd:TrdArrIndTitle","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:InsiderTradingArrLineItems","target":"ecd:Rule10b51ArrAdoptedFlag","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:InsiderTradingArrLineItems","target":"ecd:NonRule10b51ArrAdoptedFlag","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:InsiderTradingArrLineItems","target":"ecd:TrdArrAdoptionDate","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:InsiderTradingArrLineItems","target":"ecd:Rule10b51ArrTrmntdFlag","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:InsiderTradingArrLineItems","target":"ecd:NonRule10b51ArrTrmntdFlag","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:InsiderTradingArrLineItems","target":"ecd:TrdArrTerminationDate","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:InsiderTradingArrLineItems","target":"ecd:TrdArrExpirationDate","order":11.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:InsiderTradingArrLineItems","target":"ecd:TrdArrDuration","order":12.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:InsiderTradingArrLineItems","target":"ecd:TrdArrSecuritiesAggAvailAmt","order":13.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-124","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"ecd:InsiderTradingPoliciesProcLineItems","order":1.0},{"source":"ecd:InsiderTradingPoliciesProcLineItems","target":"ecd:InsiderTrdPoliciesProcAdoptedFlag","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:InsiderTradingPoliciesProcLineItems","target":"ecd:InsiderTrdPoliciesProcNotAdoptedTextBlock","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-presentation-125","relationshipTypeName":"xbrl:parent-child","relationships":[{"source":"xbrl:rootSource","target":"ecd:PayVsPerformanceDisclosureLineItems","order":1.0},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:PvpTable","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PvpTable","target":"ecd:ExecutiveCategoryAxis","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:ExecutiveCategoryAxis","target":"ecd:AllExecutiveCategoriesMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AllExecutiveCategoriesMember","target":"ecd:PeoMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:IndividualAxis","target":"ecd:AllIndividualsMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AdjToCompAxis","target":"ecd:AllAdjToCompMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AllAdjToCompMember","target":"ecd:AggtChngPnsnValInSummryCompstnTblForAplblYrMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AggtPnsnAdjsSvcCstMember","target":"ecd:PnsnAdjsSvcCstMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:EqtyAwrdsAdjsMember","target":"ecd:EqtyAwrdsInSummryCompstnTblForAplblYrMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember","target":"ecd:YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember","order":1.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AllExecutiveCategoriesMember","target":"ecd:NonPeoNeoMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PvpTable","target":"ecd:IndividualAxis","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AllAdjToCompMember","target":"ecd:AggtPnsnAdjsSvcCstMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AggtPnsnAdjsSvcCstMember","target":"ecd:PnsnAdjsPrrSvcCstMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:EqtyAwrdsAdjsMember","target":"ecd:EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember","target":"ecd:ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:PvpTableTextBlock","order":2.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PvpTable","target":"ecd:AdjToCompAxis","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:AllAdjToCompMember","target":"ecd:EqtyAwrdsAdjsMember","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember","target":"ecd:VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:CoSelectedMeasureName","order":3.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember","target":"ecd:ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PvpTable","target":"ecd:MeasureAxis","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:NamedExecutiveOfficersFnTextBlock","order":4.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember","target":"ecd:FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:PeerGroupIssuersFnTextBlock","order":5.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember","target":"ecd:DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:ChangedPeerGroupFnTextBlock","order":6.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:PeoTotalCompAmt","order":7.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:PeoActuallyPaidCompAmt","order":8.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:AdjToPeoCompFnTextBlock","order":9.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:NonPeoNeoAvgTotalCompAmt","order":10.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:NonPeoNeoAvgCompActuallyPaidAmt","order":11.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:AdjToNonPeoNeoCompFnTextBlock","order":12.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:EquityValuationAssumptionDifferenceFnTextBlock","order":13.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:CompActuallyPaidVsTotalShareholderRtnTextBlock","order":14.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:CompActuallyPaidVsNetIncomeTextBlock","order":15.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:CompActuallyPaidVsCoSelectedMeasureTextBlock","order":16.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:TotalShareholderRtnVsPeerGroupTextBlock","order":17.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:CompActuallyPaidVsOtherMeasureTextBlock","order":18.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:TabularListTableTextBlock","order":19.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:TotalShareholderRtnAmt","order":20.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:PeerGroupTotalShareholderRtnAmt","order":21.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:CoSelectedMeasureAmt","order":23.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:OtherPerfMeasureAmt","order":24.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:AdjToCompAmt","order":25.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:PeoName","order":26.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:MeasureName","order":27.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:NonGaapMeasureDescriptionTextBlock","order":28.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:Additional402vDisclosureTextBlock","order":29.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:PnsnBnftsAdjFnTextBlock","order":30.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]},{"source":"ecd:PayVsPerformanceDisclosureLineItems","target":"ecd:EqtyAwrdsAdjFnTextBlock","order":31.0,"properties":[{"property":"xbrl:preferredLabel","value":"xbrl:terseLabel"}]}]},{"name":"rpt:network-calculation-126","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-127","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:AccruedLiabilitiesCurrent","order":1.0},{"source":"us-gaap:AccruedLiabilitiesCurrent","target":"us-gaap:OtherAccruedLiabilitiesCurrent","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AccruedLiabilitiesCurrent","target":"calx:TaxesPayableCurrentExcludingAccruedIncomeTaxes","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AccruedLiabilitiesCurrent","target":"calx:AccruedFreightCurrent","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AccruedLiabilitiesCurrent","target":"us-gaap:OperatingLeaseLiabilityCurrent","order":4.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AccruedLiabilitiesCurrent","target":"us-gaap:ProductWarrantyAccrualClassifiedCurrent","order":5.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AccruedLiabilitiesCurrent","target":"calx:AccruedExcessAndObsoleteInventoryAtContractManufacturer","order":6.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AccruedLiabilitiesCurrent","target":"calx:AccruedCustomerAdvancesOrRebatesCurrent","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":"calx:ProductReturnReserveCurrent","order":9.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AccruedLiabilitiesCurrent","target":"us-gaap:AccruedProfessionalFeesCurrent","order":10.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AccruedLiabilitiesCurrent","target":"us-gaap:AccruedInsuranceCurrent","order":11.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AccruedLiabilitiesCurrent","target":"calx:AccruedOperationsCurrent","order":12.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AccruedLiabilitiesCurrent","target":"calx:AccruedPropertyPlantAndEquipmentCurrent","order":13.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]},{"name":"rpt:network-calculation-128","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:InventoryPartsAndComponentsNetOfReserves","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: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-130","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:PrepaidExpenseAndOtherAssetsCurrent","order":1.0},{"source":"us-gaap:PrepaidExpenseAndOtherAssetsCurrent","target":"us-gaap:DepositsAssetsCurrent","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:PrepaidExpenseAndOtherAssetsCurrent","target":"calx:PrepaidExpensesAndOtherAssetsMiscellaneousCurrent","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]},{"name":"rpt:network-calculation-131","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:LiabilitiesCurrent","target":"us-gaap:AccruedLiabilitiesCurrent","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:Assets","target":"us-gaap:OtherAssetsNoncurrent","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:LiabilitiesAndStockholdersEquity","target":"us-gaap:Liabilities","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AssetsCurrent","target":"us-gaap:PrepaidExpenseAndOtherAssetsCurrent","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:LiabilitiesCurrent","target":"us-gaap:ContractWithCustomerLiabilityCurrent","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:Assets","target":"us-gaap:Goodwill","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:LiabilitiesAndStockholdersEquity","target":"us-gaap:StockholdersEquity","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AssetsCurrent","target":"us-gaap:CashAndCashEquivalentsAtCarryingValue","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:LiabilitiesCurrent","target":"us-gaap:AccountsPayableCurrent","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:Assets","target":"us-gaap:DeferredIncomeTaxAssetsNet","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:LiabilitiesAndStockholdersEquity","target":"us-gaap:CommitmentsAndContingencies","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AssetsCurrent","target":"us-gaap:AccountsReceivableNetCurrent","order":3.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:Assets","target":"us-gaap:OperatingLeaseRightOfUseAsset","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:AssetsCurrent","target":"us-gaap:InventoryNet","order":4.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:Assets","target":"us-gaap:PropertyPlantAndEquipmentNet","order":5.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AssetsCurrent","target":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","order":5.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:Assets","target":"us-gaap:AssetsCurrent","order":6.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]},{"name":"rpt:network-calculation-132","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:NetCashProvidedByUsedInOperatingActivities","target":"us-gaap:DepreciationDepletionAndAmortization","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInFinancingActivities","target":"calx:PaymentsForFinancingArrangements","order":1.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInInvestingActivities","target":"us-gaap:PaymentsToAcquireAvailableForSaleSecuritiesDebt","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:NetCashProvidedByUsedInOperatingActivities","target":"us-gaap:ShareBasedCompensation","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: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:NetCashProvidedByUsedInOperatingActivities","target":"us-gaap:IncreaseDecreaseInAccountsReceivable","order":3.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInFinancingActivities","target":"us-gaap:PaymentsForRepurchaseOfCommonStock","order":3.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInInvestingActivities","target":"us-gaap:PaymentsToAcquirePropertyPlantAndEquipment","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:NetCashProvidedByUsedInOperatingActivities","target":"us-gaap:IncreaseDecreaseInInventories","order":4.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInInvestingActivities","target":"us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt","order":4.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivities","target":"us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets","order":5.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivities","target":"us-gaap:IncreaseDecreaseInAccountsPayable","order":6.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivities","target":"us-gaap:IncreaseDecreaseInAccruedLiabilities","order":7.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivities","target":"us-gaap:IncreaseDecreaseInDeferredRevenue","order":8.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivities","target":"us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities","order":9.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivities","target":"us-gaap:DeferredIncomeTaxesAndTaxCredits","order":10.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivities","target":"us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments","order":11.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:NetCashProvidedByUsedInOperatingActivities","target":"us-gaap:NetIncomeLoss","order":12.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]},{"name":"rpt:network-calculation-133","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:ComprehensiveIncomeNetOfTax","order":1.0},{"source":"xbrl:rootSource","target":"us-gaap:NonoperatingIncomeExpense","order":2.0},{"source":"us-gaap:NonoperatingIncomeExpense","target":"us-gaap:InterestIncomeExpenseNonoperatingNet","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:ComprehensiveIncomeNetOfTax","target":"us-gaap:NetIncomeLoss","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:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent","target":"us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:GrossProfit","target":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetIncomeLoss","target":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:OperatingExpenses","target":"us-gaap:ResearchAndDevelopmentExpense","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest","target":"us-gaap:InterestIncomeExpenseNonoperatingNet","order":1.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:ComprehensiveIncomeNetOfTax","target":"us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent","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:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent","target":"us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent","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:NetIncomeLoss","target":"us-gaap:IncomeTaxExpenseBenefit","order":2.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:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest","target":"us-gaap:OtherNonoperatingIncomeExpense","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:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest","target":"us-gaap:OperatingIncomeLoss","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]},{"name":"rpt:network-calculation-134","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLossCurrent","order":1.0},{"source":"us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLossCurrent","target":"us-gaap:DebtSecuritiesAvailableForSaleAccumulatedGrossUnrealizedGainLossBeforeTax","order":1.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLossCurrent","target":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]},{"name":"rpt:network-calculation-135","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"calx:CashCashEquivalentsAndMarketableSecurities","order":1.0},{"source":"us-gaap:CashAndCashEquivalentsAtCarryingValue","target":"us-gaap:CashEquivalentsAtCarryingValue","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"calx:CashCashEquivalentsAndMarketableSecurities","target":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:CashAndCashEquivalentsAtCarryingValue","target":"us-gaap:Cash","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"calx:CashCashEquivalentsAndMarketableSecurities","target":"us-gaap:CashAndCashEquivalentsAtCarryingValue","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]},{"name":"rpt:network-calculation-136","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-137","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-138","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-139","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":"calx:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrentAndCashEquivalentsAtCarryingValue","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:AssetsFairValueDisclosure","target":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]},{"name":"rpt:network-calculation-140","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:DeferredTaxAssetsLiabilitiesNet","order":1.0},{"source":"us-gaap:DeferredIncomeTaxLiabilities","target":"us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:DeferredTaxAssetsGross","target":"us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:DeferredTaxAssetsLiabilitiesNet","target":"us-gaap:DeferredIncomeTaxLiabilities","order":1.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:DeferredTaxAssetsNet","target":"us-gaap:DeferredTaxAssetsValuationAllowance","order":1.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:DeferredIncomeTaxLiabilities","target":"us-gaap:DeferredTaxLiabilitiesLeasingArrangements","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:DeferredTaxAssetsLiabilitiesNet","target":"us-gaap:DeferredTaxAssetsNet","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:DeferredTaxAssetsNet","target":"us-gaap:DeferredTaxAssetsGross","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:DeferredIncomeTaxLiabilities","target":"us-gaap:DeferredTaxLiabilitiesUndistributedForeignEarnings","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:DeferredTaxAssetsGross","target":"us-gaap:DeferredTaxAssetsOperatingLossCarryforwards","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:DeferredTaxAssetsGross","target":"us-gaap:DeferredTaxAssetsDeferredIncome","order":4.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:DeferredTaxAssetsGross","target":"us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost","order":5.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:DeferredTaxAssetsGross","target":"calx:DeferredTaxAssetsDeferredExpenseCapitalizedResearchAndDevelopmentCosts","order":6.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:DeferredTaxAssetsGross","target":"us-gaap:DeferredTaxAssetsInventory","order":7.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:DeferredTaxAssetsGross","target":"calx:DeferredTaxAssetLeasingArrangements","order":8.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:DeferredTaxAssetsGross","target":"us-gaap:DeferredTaxAssetsOther","order":9.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]},{"name":"rpt:network-calculation-141","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:IncomeTaxExpenseBenefit","order":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":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:DeferredIncomeTaxExpenseBenefit","target":"us-gaap:DeferredFederalIncomeTaxExpenseBenefit","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:IncomeTaxExpenseBenefit","target":"us-gaap:DeferredIncomeTaxExpenseBenefit","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:CurrentIncomeTaxExpenseBenefit","target":"us-gaap:CurrentStateAndLocalTaxExpenseBenefit","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:DeferredIncomeTaxExpenseBenefit","target":"us-gaap:DeferredForeignIncomeTaxExpenseBenefit","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:CurrentIncomeTaxExpenseBenefit","target":"us-gaap:CurrentFederalTaxExpenseBenefit","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:DeferredIncomeTaxExpenseBenefit","target":"us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]},{"name":"rpt:network-calculation-142","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","order":1.0},{"source":"xbrl:rootSource","target":"us-gaap:IncomeTaxExpenseBenefit","order":2.0},{"source":"us-gaap:IncomeTaxExpenseBenefit","target":"us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","target":"us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:IncomeTaxExpenseBenefit","target":"us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","target":"us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:IncomeTaxExpenseBenefit","target":"calx:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensationAmount","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","target":"calx:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensationPercent","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:IncomeTaxExpenseBenefit","target":"us-gaap:IncomeTaxReconciliationNondeductibleExpenseMealsAndEntertainment","order":4.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","target":"us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment","order":4.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:IncomeTaxExpenseBenefit","target":"us-gaap:IncomeTaxReconciliationNondeductibleExpenseOther","order":5.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","target":"us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseOther","order":5.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:IncomeTaxExpenseBenefit","target":"us-gaap:EffectiveIncomeTaxRateReconciliationCrossBorderTaxEffectAmount","order":6.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","target":"us-gaap:EffectiveIncomeTaxRateReconciliationCrossBorderTaxEffectPercent","order":6.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:IncomeTaxExpenseBenefit","target":"us-gaap:IncomeTaxReconciliationTaxCreditsResearch","order":7.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","target":"us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch","order":7.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:IncomeTaxExpenseBenefit","target":"calx:EffectiveIncomeTaxRateReconciliationTaxCreditForeignAmountNetting","order":8.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","target":"calx:EffectiveIncomeTaxRateReconciliationTaxCreditForeignPercentNetting","order":8.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:IncomeTaxExpenseBenefit","target":"us-gaap:IncomeTaxReconciliationTaxContingencies","order":9.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","target":"us-gaap:EffectiveIncomeTaxRateReconciliationTaxContingencies","order":9.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:IncomeTaxExpenseBenefit","target":"us-gaap:IncomeTaxReconciliationOtherAdjustments","order":10.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","target":"us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments","order":10.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:IncomeTaxExpenseBenefit","target":"us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes","order":11.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","target":"us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes","order":11.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:IncomeTaxExpenseBenefit","target":"us-gaap:IncomeTaxReconciliationRepatriationOfForeignEarnings","order":12.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","target":"us-gaap:EffectiveIncomeTaxRateReconciliationRepatriationOfForeignEarnings","order":12.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:IncomeTaxExpenseBenefit","target":"us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential","order":13.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","target":"us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential","order":13.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","target":"calx:EffectiveIncomeTaxRateReconciliationRepatriationOfForeignEarningsLossPercent","order":14.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","target":"us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance","order":15.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","target":"calx:EffectiveIncomeTaxRateReconciliationTaxAttributeExpirationPercent","order":16.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]},{"name":"rpt:network-calculation-143","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:IncomeTaxesPaidNet","order":1.0},{"source":"us-gaap:IncomeTaxesPaidNet","target":"us-gaap:IncomeTaxPaidFederalAfterRefundReceived","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:IncomeTaxesPaidNet","target":"us-gaap:IncomeTaxPaidStateAndLocalAfterRefundReceived","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:IncomeTaxesPaidNet","target":"us-gaap:IncomeTaxPaidForeignAfterRefundReceived","order":3.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]},{"name":"rpt:network-calculation-144","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest","order":1.0},{"source":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest","target":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic","order":1.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest","target":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]}]},{"name":"rpt:network-calculation-145","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-146","relationshipTypeName":"xbrl:summation-item","relationships":[{"source":"xbrl:rootSource","target":"us-gaap:NetIncomeLoss","order":1.0},{"source":"us-gaap:NetIncomeLoss","target":"us-gaap:IncomeTaxExpenseBenefit","order":1.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:NetIncomeLoss","target":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","order":2.0,"properties":[{"property":"xbrl:weight","value":1.0}]},{"source":"us-gaap:NetIncomeLoss","target":"calx:CostOfGoodsAndServicesSoldAdjusted","order":3.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:NetIncomeLoss","target":"us-gaap:SegmentReportingOtherItemAmount","order":4.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:NetIncomeLoss","target":"calx:SellingAndMarketingOperatingExpenseAdjusted","order":5.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:NetIncomeLoss","target":"calx:ResearchAndDevelopmentOperatingExpenseAdjusted","order":6.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:NetIncomeLoss","target":"calx:GeneralAndAdministrativeOperatingExpenseAdjusted","order":7.0,"properties":[{"property":"xbrl:weight","value":-1.0}]},{"source":"us-gaap:NetIncomeLoss","target":"us-gaap:NonoperatingIncomeExpense","order":8.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/AuditInformation"},{"name":"rpt:group-4","groupURI":"http://www.calix.com/role/BalanceSheetDetails"},{"name":"rpt:group-5","groupURI":"http://www.calix.com/role/BalanceSheetDetailsAccountsReceivableDetails"},{"name":"rpt:group-6","groupURI":"http://www.calix.com/role/BalanceSheetDetailsAccruedLiabilitiesDetails"},{"name":"rpt:group-7","groupURI":"http://www.calix.com/role/BalanceSheetDetailsAllowanceandProductReturnReserveDetails"},{"name":"rpt:group-8","groupURI":"http://www.calix.com/role/BalanceSheetDetailsInventoryDetails"},{"name":"rpt:group-9","groupURI":"http://www.calix.com/role/BalanceSheetDetailsNarrativeDetails"},{"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/BalanceSheetDetailsScheduleofPrepaidandOtherCurrentAssetsDetails"},{"name":"rpt:group-13","groupURI":"http://www.calix.com/role/BalanceSheetDetailsTables"},{"name":"rpt:group-14","groupURI":"http://www.calix.com/role/CONSOLIDATEDBALANCESHEETS"},{"name":"rpt:group-15","groupURI":"http://www.calix.com/role/CONSOLIDATEDBALANCESHEETSParenthetical"},{"name":"rpt:group-16","groupURI":"http://www.calix.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"},{"name":"rpt:group-17","groupURI":"http://www.calix.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOMELOSS"},{"name":"rpt:group-18","groupURI":"http://www.calix.com/role/CONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITY"},{"name":"rpt:group-19","groupURI":"http://www.calix.com/role/CashCashEquivalentsandMarketableSecurities"},{"name":"rpt:group-20","groupURI":"http://www.calix.com/role/CashCashEquivalentsandMarketableSecuritiesScheduleofMarketableSecuritiesDetails"},{"name":"rpt:group-21","groupURI":"http://www.calix.com/role/CashCashEquivalentsandMarketableSecuritiesSummaryofCashandCashEquivalentsDetails"},{"name":"rpt:group-22","groupURI":"http://www.calix.com/role/CashCashEquivalentsandMarketableSecuritiesTables"},{"name":"rpt:group-23","groupURI":"http://www.calix.com/role/CommitmentsandContingencies"},{"name":"rpt:group-24","groupURI":"http://www.calix.com/role/CommitmentsandContingenciesNarrativeDetails"},{"name":"rpt:group-25","groupURI":"http://www.calix.com/role/CommitmentsandContingenciesOperatingLeaseDetails"},{"name":"rpt:group-26","groupURI":"http://www.calix.com/role/CommitmentsandContingenciesOperatingLeaseLiabilityDetails"},{"name":"rpt:group-27","groupURI":"http://www.calix.com/role/CommitmentsandContingenciesTables"},{"name":"rpt:group-28","groupURI":"http://www.calix.com/role/Cover"},{"name":"rpt:group-29","groupURI":"http://www.calix.com/role/DescriptionofBusinessandSignificantAccountingPolicies"},{"name":"rpt:group-30","groupURI":"http://www.calix.com/role/DescriptionofBusinessandSignificantAccountingPoliciesDetails"},{"name":"rpt:group-31","groupURI":"http://www.calix.com/role/DescriptionofBusinessandSignificantAccountingPoliciesPolicies"},{"name":"rpt:group-32","groupURI":"http://www.calix.com/role/EmployeeBenefitPlan"},{"name":"rpt:group-33","groupURI":"http://www.calix.com/role/EmployeeBenefitPlanDetails"},{"name":"rpt:group-34","groupURI":"http://www.calix.com/role/FairValueMeasurements"},{"name":"rpt:group-35","groupURI":"http://www.calix.com/role/FairValueMeasurementsDetails"},{"name":"rpt:group-36","groupURI":"http://www.calix.com/role/FairValueMeasurementsTables"},{"name":"rpt:group-37","groupURI":"http://www.calix.com/role/IncomeTaxes"},{"name":"rpt:group-38","groupURI":"http://www.calix.com/role/IncomeTaxesComponentsofDeferredTaxAssetsandLiabilitiesDetails"},{"name":"rpt:group-39","groupURI":"http://www.calix.com/role/IncomeTaxesComponentsofIncomeTaxProvisionDetails"},{"name":"rpt:group-40","groupURI":"http://www.calix.com/role/IncomeTaxesIncomeTaxRateReconciliationDetails"},{"name":"rpt:group-41","groupURI":"http://www.calix.com/role/IncomeTaxesIncomeTaxesPaidNetofRefundsDetails"},{"name":"rpt:group-42","groupURI":"http://www.calix.com/role/IncomeTaxesLossbeforeProvisionforIncomeTaxesDetails"},{"name":"rpt:group-43","groupURI":"http://www.calix.com/role/IncomeTaxesNarrativeDetails"},{"name":"rpt:group-44","groupURI":"http://www.calix.com/role/IncomeTaxesTables"},{"name":"rpt:group-45","groupURI":"http://www.calix.com/role/IncomeTaxesUnrecognizedTaxBenefitsActivityDetails"},{"name":"rpt:group-46","groupURI":"http://www.calix.com/role/NetIncomeLossPerCommonShare"},{"name":"rpt:group-47","groupURI":"http://www.calix.com/role/NetIncomeLossPerCommonShareDetails"},{"name":"rpt:group-48","groupURI":"http://www.calix.com/role/NetIncomeLossPerCommonShareTables"},{"name":"rpt:group-49","groupURI":"http://www.calix.com/role/RevenuefromContractswithCustomers"},{"name":"rpt:group-50","groupURI":"http://www.calix.com/role/RevenuefromContractswithCustomersConcentrationRiskDetails"},{"name":"rpt:group-51","groupURI":"http://www.calix.com/role/RevenuefromContractswithCustomersContractAssetsandLiabilitiesDetails"},{"name":"rpt:group-52","groupURI":"http://www.calix.com/role/RevenuefromContractswithCustomersContractCostsDetails"},{"name":"rpt:group-53","groupURI":"http://www.calix.com/role/RevenuefromContractswithCustomersPerformanceObligationDetails"},{"name":"rpt:group-54","groupURI":"http://www.calix.com/role/SegmentInformation"},{"name":"rpt:group-55","groupURI":"http://www.calix.com/role/SegmentInformationNarrativeDetails"},{"name":"rpt:group-56","groupURI":"http://www.calix.com/role/SegmentInformationScheduleofPropertyandEquipmentbyGeographicRegionDetails"},{"name":"rpt:group-57","groupURI":"http://www.calix.com/role/SegmentInformationScheduleofRevenuebyGeographicRegionDetails"},{"name":"rpt:group-58","groupURI":"http://www.calix.com/role/SegmentInformationScheduleofSegmentOperatingInformationbySegmentDetails"},{"name":"rpt:group-59","groupURI":"http://www.calix.com/role/SegmentInformationTables"},{"name":"rpt:group-60","groupURI":"http://www.calix.com/role/StockholdersEquity"},{"name":"rpt:group-61","groupURI":"http://www.calix.com/role/StockholdersEquityAssumptionsDetails"},{"name":"rpt:group-62","groupURI":"http://www.calix.com/role/StockholdersEquityESPPandStockBasedCompensationDetails"},{"name":"rpt:group-63","groupURI":"http://www.calix.com/role/StockholdersEquityEquityIncentivePlansDetails"},{"name":"rpt:group-64","groupURI":"http://www.calix.com/role/StockholdersEquityFairValueofAwardsGrantedDetails"},{"name":"rpt:group-65","groupURI":"http://www.calix.com/role/StockholdersEquitySharesReservedForFutureIssuanceDetails"},{"name":"rpt:group-66","groupURI":"http://www.calix.com/role/StockholdersEquityStockBasedCompensationExpenseDetails"},{"name":"rpt:group-67","groupURI":"http://www.calix.com/role/StockholdersEquityStockOfferingTreasuryStockRetirementPreferredStockandCommonStockDetails"},{"name":"rpt:group-68","groupURI":"http://www.calix.com/role/StockholdersEquityStockOptionsActivityDetails"},{"name":"rpt:group-69","groupURI":"http://www.calix.com/role/StockholdersEquityStockRepurchaseProgramDetails"},{"name":"rpt:group-70","groupURI":"http://www.calix.com/role/StockholdersEquityTables"},{"name":"rpt:group-71","groupURI":"http://www.calix.com/role/StockholdersEquityUnrecognizedStockbasedCompensationExpensesDetails"},{"name":"rpt:group-72","groupURI":"http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"},{"name":"rpt:group-73","groupURI":"http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"},{"name":"rpt:group-74","groupURI":"http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"},{"name":"rpt:group-75","groupURI":"http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"},{"name":"rpt:group-76","groupURI":"http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc"},{"name":"rpt:group-77","groupURI":"http://xbrl.sec.gov/ecd/role/PvpDisclosure"},{"name":"rpt:group-78","groupURI":"http://www.calix.com/role/CommitmentsandContingenciesOperatingLeaseDetails_1"},{"name":"rpt:group-79","groupURI":"http://www.calix.com/role/RevenuefromContractswithCustomersPerformanceObligationDetails_1"},{"name":"rpt:group-80","groupURI":"http://xbrl.sec.gov/ecd/role/AwardsCloseToMnpiDisc"},{"name":"rpt:group-81","groupURI":"http://xbrl.sec.gov/ecd/role/ForgoneRecoveries"},{"name":"rpt:group-82","groupURI":"http://xbrl.sec.gov/ecd/role/InsiderTradingArrangementsByInd"},{"name":"rpt:group-83","groupURI":"http://xbrl.sec.gov/ecd/role/OutstandingRecoveries"},{"name":"rpt:group-84","groupURI":"http://xbrl.sec.gov/ecd/role/PvpAdjustmentsToCompensation"},{"name":"rpt:group-85","groupURI":"http://xbrl.sec.gov/ecd/role/PvpDisclosureWithAdditionalMeasures"},{"name":"rpt:group-86","groupURI":"http://xbrl.sec.gov/ecd/role/PvpMeasures"},{"name":"rpt:group-87","groupURI":"http://xbrl.sec.gov/ecd/role/PvpTable"},{"name":"rpt:group-88","groupURI":"http://xbrl.sec.gov/ecd/role/TabularListMeasures"},{"name":"rpt:group-89","groupURI":"http://xbrl.sec.gov/ecd/role/TabularListsByExecutiveCategory"}],"groupContents":[{"groupName":"rpt:group-0","forObject":"rpt:network-presentation-48"},{"groupName":"rpt:group-1","forObject":"rpt:network-presentation-49"},{"groupName":"rpt:group-2","forObject":"rpt:network-presentation-50"},{"groupName":"rpt:group-3","forObject":"rpt:network-presentation-51"},{"groupName":"rpt:group-4","forObject":"rpt:network-presentation-52"},{"groupName":"rpt:group-5","forObject":"rpt:network-presentation-53"},{"groupName":"rpt:group-6","forObject":"rpt:network-presentation-54"},{"groupName":"rpt:group-7","forObject":"rpt:network-presentation-55"},{"groupName":"rpt:group-8","forObject":"rpt:network-presentation-56"},{"groupName":"rpt:group-9","forObject":"rpt:network-presentation-57"},{"groupName":"rpt:group-10","forObject":"rpt:network-presentation-58"},{"groupName":"rpt:group-11","forObject":"rpt:network-presentation-59"},{"groupName":"rpt:group-12","forObject":"rpt:network-presentation-60"},{"groupName":"rpt:group-13","forObject":"rpt:network-presentation-61"},{"groupName":"rpt:group-14","forObject":"rpt:network-presentation-62"},{"groupName":"rpt:group-15","forObject":"rpt:network-presentation-63"},{"groupName":"rpt:group-16","forObject":"rpt:network-presentation-64"},{"groupName":"rpt:group-17","forObject":"rpt:network-presentation-65"},{"groupName":"rpt:group-18","forObject":"rpt:network-presentation-66"},{"groupName":"rpt:group-19","forObject":"rpt:network-presentation-67"},{"groupName":"rpt:group-20","forObject":"rpt:network-presentation-68"},{"groupName":"rpt:group-21","forObject":"rpt:network-presentation-69"},{"groupName":"rpt:group-22","forObject":"rpt:network-presentation-70"},{"groupName":"rpt:group-23","forObject":"rpt:network-presentation-71"},{"groupName":"rpt:group-24","forObject":"rpt:network-presentation-72"},{"groupName":"rpt:group-25","forObject":"rpt:network-presentation-73"},{"groupName":"rpt:group-26","forObject":"rpt:network-presentation-74"},{"groupName":"rpt:group-27","forObject":"rpt:network-presentation-75"},{"groupName":"rpt:group-28","forObject":"rpt:network-presentation-76"},{"groupName":"rpt:group-29","forObject":"rpt:network-presentation-77"},{"groupName":"rpt:group-30","forObject":"rpt:network-presentation-78"},{"groupName":"rpt:group-31","forObject":"rpt:network-presentation-79"},{"groupName":"rpt:group-32","forObject":"rpt:network-presentation-80"},{"groupName":"rpt:group-33","forObject":"rpt:network-presentation-81"},{"groupName":"rpt:group-34","forObject":"rpt:network-presentation-82"},{"groupName":"rpt:group-35","forObject":"rpt:network-presentation-83"},{"groupName":"rpt:group-36","forObject":"rpt:network-presentation-84"},{"groupName":"rpt:group-37","forObject":"rpt:network-presentation-85"},{"groupName":"rpt:group-38","forObject":"rpt:network-presentation-86"},{"groupName":"rpt:group-39","forObject":"rpt:network-presentation-87"},{"groupName":"rpt:group-40","forObject":"rpt:network-presentation-88"},{"groupName":"rpt:group-41","forObject":"rpt:network-presentation-89"},{"groupName":"rpt:group-42","forObject":"rpt:network-presentation-90"},{"groupName":"rpt:group-43","forObject":"rpt:network-presentation-91"},{"groupName":"rpt:group-44","forObject":"rpt:network-presentation-92"},{"groupName":"rpt:group-45","forObject":"rpt:network-presentation-93"},{"groupName":"rpt:group-46","forObject":"rpt:network-presentation-94"},{"groupName":"rpt:group-47","forObject":"rpt:network-presentation-95"},{"groupName":"rpt:group-48","forObject":"rpt:network-presentation-96"},{"groupName":"rpt:group-49","forObject":"rpt:network-presentation-97"},{"groupName":"rpt:group-50","forObject":"rpt:network-presentation-98"},{"groupName":"rpt:group-51","forObject":"rpt:network-presentation-99"},{"groupName":"rpt:group-52","forObject":"rpt:network-presentation-100"},{"groupName":"rpt:group-53","forObject":"rpt:network-presentation-101"},{"groupName":"rpt:group-54","forObject":"rpt:network-presentation-102"},{"groupName":"rpt:group-55","forObject":"rpt:network-presentation-103"},{"groupName":"rpt:group-56","forObject":"rpt:network-presentation-104"},{"groupName":"rpt:group-57","forObject":"rpt:network-presentation-105"},{"groupName":"rpt:group-58","forObject":"rpt:network-presentation-106"},{"groupName":"rpt:group-59","forObject":"rpt:network-presentation-107"},{"groupName":"rpt:group-60","forObject":"rpt:network-presentation-108"},{"groupName":"rpt:group-61","forObject":"rpt:network-presentation-109"},{"groupName":"rpt:group-62","forObject":"rpt:network-presentation-110"},{"groupName":"rpt:group-63","forObject":"rpt:network-presentation-111"},{"groupName":"rpt:group-64","forObject":"rpt:network-presentation-112"},{"groupName":"rpt:group-65","forObject":"rpt:network-presentation-113"},{"groupName":"rpt:group-66","forObject":"rpt:network-presentation-114"},{"groupName":"rpt:group-67","forObject":"rpt:network-presentation-115"},{"groupName":"rpt:group-68","forObject":"rpt:network-presentation-116"},{"groupName":"rpt:group-69","forObject":"rpt:network-presentation-117"},{"groupName":"rpt:group-70","forObject":"rpt:network-presentation-118"},{"groupName":"rpt:group-71","forObject":"rpt:network-presentation-119"},{"groupName":"rpt:group-72","forObject":"rpt:network-presentation-120"},{"groupName":"rpt:group-73","forObject":"rpt:network-presentation-121"},{"groupName":"rpt:group-74","forObject":"rpt:network-presentation-122"},{"groupName":"rpt:group-75","forObject":"rpt:network-presentation-123"},{"groupName":"rpt:group-76","forObject":"rpt:network-presentation-124"},{"groupName":"rpt:group-77","forObject":"rpt:network-presentation-125"},{"groupName":"rpt:group-5","forObject":"rpt:network-calculation-126"},{"groupName":"rpt:group-6","forObject":"rpt:network-calculation-127"},{"groupName":"rpt:group-8","forObject":"rpt:network-calculation-128"},{"groupName":"rpt:group-11","forObject":"rpt:network-calculation-129"},{"groupName":"rpt:group-12","forObject":"rpt:network-calculation-130"},{"groupName":"rpt:group-14","forObject":"rpt:network-calculation-131"},{"groupName":"rpt:group-16","forObject":"rpt:network-calculation-132"},{"groupName":"rpt:group-17","forObject":"rpt:network-calculation-133"},{"groupName":"rpt:group-20","forObject":"rpt:network-calculation-134"},{"groupName":"rpt:group-21","forObject":"rpt:network-calculation-135"},{"groupName":"rpt:group-25","forObject":"rpt:network-calculation-136"},{"groupName":"rpt:group-78","forObject":"rpt:network-calculation-137"},{"groupName":"rpt:group-26","forObject":"rpt:network-calculation-138"},{"groupName":"rpt:group-35","forObject":"rpt:network-calculation-139"},{"groupName":"rpt:group-38","forObject":"rpt:network-calculation-140"},{"groupName":"rpt:group-39","forObject":"rpt:network-calculation-141"},{"groupName":"rpt:group-40","forObject":"rpt:network-calculation-142"},{"groupName":"rpt:group-41","forObject":"rpt:network-calculation-143"},{"groupName":"rpt:group-42","forObject":"rpt:network-calculation-144"},{"groupName":"rpt:group-47","forObject":"rpt:network-calculation-145"},{"groupName":"rpt:group-58","forObject":"rpt:network-calculation-146"},{"groupName":"rpt:group-1","forObject":"rpt:cube-0"},{"groupName":"rpt:group-7","forObject":"rpt:cube-1"},{"groupName":"rpt:group-11","forObject":"rpt:cube-2"},{"groupName":"rpt:group-17","forObject":"rpt:cube-3"},{"groupName":"rpt:group-18","forObject":"rpt:cube-4"},{"groupName":"rpt:group-20","forObject":"rpt:cube-5"},{"groupName":"rpt:group-21","forObject":"rpt:cube-6"},{"groupName":"rpt:group-24","forObject":"rpt:cube-7"},{"groupName":"rpt:group-30","forObject":"rpt:cube-8"},{"groupName":"rpt:group-35","forObject":"rpt:cube-9"},{"groupName":"rpt:group-40","forObject":"rpt:cube-10"},{"groupName":"rpt:group-41","forObject":"rpt:cube-11"},{"groupName":"rpt:group-43","forObject":"rpt:cube-12"},{"groupName":"rpt:group-50","forObject":"rpt:cube-13"},{"groupName":"rpt:group-53","forObject":"rpt:cube-14"},{"groupName":"rpt:group-79","forObject":"rpt:cube-15"},{"groupName":"rpt:group-56","forObject":"rpt:cube-16"},{"groupName":"rpt:group-57","forObject":"rpt:cube-17"},{"groupName":"rpt:group-58","forObject":"rpt:cube-18"},{"groupName":"rpt:group-61","forObject":"rpt:cube-19"},{"groupName":"rpt:group-62","forObject":"rpt:cube-20"},{"groupName":"rpt:group-63","forObject":"rpt:cube-21"},{"groupName":"rpt:group-64","forObject":"rpt:cube-22"},{"groupName":"rpt:group-65","forObject":"rpt:cube-23"},{"groupName":"rpt:group-66","forObject":"rpt:cube-24"},{"groupName":"rpt:group-69","forObject":"rpt:cube-25"},{"groupName":"rpt:group-71","forObject":"rpt:cube-26"},{"groupName":"rpt:group-72","forObject":"rpt:cube-27"},{"groupName":"rpt:group-73","forObject":"rpt:cube-28"},{"groupName":"rpt:group-80","forObject":"rpt:cube-29"},{"groupName":"rpt:group-74","forObject":"rpt:cube-30"},{"groupName":"rpt:group-81","forObject":"rpt:cube-31"},{"groupName":"rpt:group-82","forObject":"rpt:cube-32"},{"groupName":"rpt:group-76","forObject":"rpt:cube-33"},{"groupName":"rpt:group-83","forObject":"rpt:cube-34"},{"groupName":"rpt:group-84","forObject":"rpt:cube-35"},{"groupName":"rpt:group-77","forObject":"rpt:cube-36"},{"groupName":"rpt:group-85","forObject":"rpt:cube-37"},{"groupName":"rpt:group-86","forObject":"rpt:cube-38"},{"groupName":"rpt:group-87","forObject":"rpt:cube-39"},{"groupName":"rpt:group-88","forObject":"rpt:cube-40"},{"groupName":"rpt:group-89","forObject":"rpt:cube-41"}],"facts":[{"name":"rpt:f-0","factDimensions":{"xbrl:concept":"dei:EntityCentralIndexKey","xbrl:period":"2025-01-01T00:00:00/2026-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":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"false"}]},{"name":"rpt:f-2","factDimensions":{"xbrl:concept":"dei:DocumentFiscalYearFocus","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"2025"}]},{"name":"rpt:f-3","factDimensions":{"xbrl:concept":"dei:DocumentFiscalPeriodFocus","xbrl:period":"2025-01-01T00:00:00/2026-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":"calx:ProductWarrantyPeriod","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","srt:RangeAxis":"srt:MinimumMember"},"factValues":[{"value":"P1Y"}]},{"name":"rpt:f-5","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentUsefulLife","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","srt:RangeAxis":"srt:MinimumMember","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"calx:SoftwareMember"},"factValues":[{"value":"P3Y"}]},{"name":"rpt:f-6","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"http://fasb.org/us-gaap/2025#AccruedLiabilitiesCurrent"}]},{"name":"rpt:f-7","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"http://fasb.org/us-gaap/2025#AccruedLiabilitiesCurrent"}]},{"name":"rpt:f-8","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"http://fasb.org/us-gaap/2025#AccruedLiabilitiesCurrent"}]},{"name":"rpt:f-9","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockOptionMember","us-gaap:VestingAxis":"us-gaap:ShareBasedCompensationAwardTrancheOneMember"},"factValues":[{"value":"P1Y"}]},{"name":"rpt:f-10","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1","xbrl:period":"2025-01-01T00:00:00/2025-02-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","us-gaap:VestingAxis":"us-gaap:ShareBasedCompensationAwardTrancheOneMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember"},"factValues":[{"value":"P1Y"}]},{"name":"rpt:f-11","factDimensions":{"xbrl:concept":"us-gaap:NumberOfReportableSegments","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"calx:segment"},"factValues":[{"value":"1"}]},{"name":"rpt:f-12","factDimensions":{"xbrl:concept":"us-gaap:NumberOfOperatingSegments","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"calx:segment"},"factValues":[{"value":"1"}]},{"name":"rpt:f-13","factDimensions":{"xbrl:concept":"ecd:TrdArrDuration","xbrl:period":"2025-09-28T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","ecd:IndividualAxis":"calx:JohnDurocherMember"},"factValues":[{"value":"P273D"}]},{"name":"rpt:f-14","factDimensions":{"xbrl:concept":"ecd:TrdArrDuration","xbrl:period":"2025-09-28T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","ecd:IndividualAxis":"calx:KevinPetersMember"},"factValues":[{"value":"P638D"}]},{"name":"rpt:f-15","factDimensions":{"xbrl:concept":"dei:DocumentType","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"10-K","language":"en-us"}]},{"name":"rpt:f-16","factDimensions":{"xbrl:concept":"dei:DocumentAnnualReport","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"true"}]},{"name":"rpt:f-17","factDimensions":{"xbrl:concept":"dei:DocumentPeriodEndDate","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"2025-12-31"}]},{"name":"rpt:f-18","factDimensions":{"xbrl:concept":"dei:CurrentFiscalYearEndDate","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"--12-31"}]},{"name":"rpt:f-19","factDimensions":{"xbrl:concept":"dei:DocumentTransitionReport","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"false"}]},{"name":"rpt:f-20","factDimensions":{"xbrl:concept":"dei:EntityFileNumber","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"001-34674","language":"en-us"}]},{"name":"rpt:f-21","factDimensions":{"xbrl:concept":"dei:EntityRegistrantName","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"Calix, Inc.","language":"en-us"}]},{"name":"rpt:f-22","factDimensions":{"xbrl:concept":"dei:EntityIncorporationStateCountryCode","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"DE","language":"en-us"}]},{"name":"rpt:f-23","factDimensions":{"xbrl:concept":"dei:EntityTaxIdentificationNumber","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"68-0438710","language":"en-us"}]},{"name":"rpt:f-24","factDimensions":{"xbrl:concept":"dei:EntityAddressAddressLine1","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"3155 Olsen Drive,","language":"en-us"}]},{"name":"rpt:f-25","factDimensions":{"xbrl:concept":"dei:EntityAddressAddressLine2","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"Suite 450","language":"en-us"}]},{"name":"rpt:f-26","factDimensions":{"xbrl:concept":"dei:EntityAddressCityOrTown","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"San Jose","language":"en-us"}]},{"name":"rpt:f-27","factDimensions":{"xbrl:concept":"dei:EntityAddressStateOrProvince","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"CA","language":"en-us"}]},{"name":"rpt:f-28","factDimensions":{"xbrl:concept":"dei:EntityAddressPostalZipCode","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"95117","language":"en-us"}]},{"name":"rpt:f-29","factDimensions":{"xbrl:concept":"dei:CityAreaCode","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"408","language":"en-us"}]},{"name":"rpt:f-30","factDimensions":{"xbrl:concept":"dei:LocalPhoneNumber","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"514-3000","language":"en-us"}]},{"name":"rpt:f-31","factDimensions":{"xbrl:concept":"dei:Security12bTitle","xbrl:period":"2025-01-01T00:00:00/2026-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-32","factDimensions":{"xbrl:concept":"dei:TradingSymbol","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"CALX","language":"en-us"}]},{"name":"rpt:f-33","factDimensions":{"xbrl:concept":"dei:SecurityExchangeName","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"NYSE","language":"en-us"}]},{"name":"rpt:f-34","factDimensions":{"xbrl:concept":"dei:EntityWellKnownSeasonedIssuer","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"No","language":"en-us"}]},{"name":"rpt:f-35","factDimensions":{"xbrl:concept":"dei:EntityVoluntaryFilers","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"No","language":"en-us"}]},{"name":"rpt:f-36","factDimensions":{"xbrl:concept":"dei:EntityCurrentReportingStatus","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"Yes","language":"en-us"}]},{"name":"rpt:f-37","factDimensions":{"xbrl:concept":"dei:EntityInteractiveDataCurrent","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"Yes","language":"en-us"}]},{"name":"rpt:f-38","factDimensions":{"xbrl:concept":"dei:EntityFilerCategory","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"Large Accelerated Filer","language":"en-us"}]},{"name":"rpt:f-39","factDimensions":{"xbrl:concept":"dei:EntitySmallBusiness","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"false"}]},{"name":"rpt:f-40","factDimensions":{"xbrl:concept":"dei:EntityEmergingGrowthCompany","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"false"}]},{"name":"rpt:f-41","factDimensions":{"xbrl:concept":"dei:IcfrAuditorAttestationFlag","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"true"}]},{"name":"rpt:f-42","factDimensions":{"xbrl:concept":"dei:DocumentFinStmtErrorCorrectionFlag","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"false"}]},{"name":"rpt:f-43","factDimensions":{"xbrl:concept":"dei:EntityShellCompany","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"false"}]},{"name":"rpt:f-44","factDimensions":{"xbrl:concept":"dei:EntityPublicFloat","xbrl:period":"2025-06-28T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2101000000","decimals":-6}]},{"name":"rpt:f-45","factDimensions":{"xbrl:concept":"dei:EntityCommonStockSharesOutstanding","xbrl:period":"2026-02-10T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"65607663"}]},{"name":"rpt:f-46","factDimensions":{"xbrl:concept":"dei:DocumentsIncorporatedByReferenceTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',serif;font-size:9pt;font-weight:400;line-height:120%\">Portions of the registrant\u2019s 2025 annual report and definitive proxy statement for its 2026 annual meeting of stockholders are incorporated by reference in Item 5 of Part II and Items 10, 11, 12, 13 and 14 of Part\u00a0III.</span></div>","language":"en-us"}]},{"name":"rpt:f-47","factDimensions":{"xbrl:concept":"cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',serif;font-size:10pt;font-weight:400;line-height:115%\">We have developed and implemented a cybersecurity risk management program intended to protect the confidentiality, integrity and availability of our critical systems and information.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:115%\">We design and assess our program based on the National Institute of Standards and Technology Cybersecurity Framework (\u201cNIST CSF\u201d) and the MITRE ATT&amp;CK</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:6.47pt;font-weight:400;line-height:115%;position:relative;top:-3.48pt;vertical-align:baseline\">\u00ae</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:115%\"> framework. This does not imply that we meet any particular technical standards, specifications or requirements, only that we use the NIST CSF and MITRE ATT&amp;CK</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:6.47pt;font-weight:400;line-height:115%;position:relative;top:-3.48pt;vertical-align:baseline\">\u00ae</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:115%\"> as guides to help us identify, assess and manage cybersecurity risks relevant to our business.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Our cybersecurity risk management program is integrated into our overall enterprise risk management program and shares common methodologies, reporting channels and governance processes that apply across the enterprise risk management program to other legal, compliance, strategic, operational and financial risk areas.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Key aspects of our cybersecurity risk management program include the following:</span></div><div style=\"margin-top:6pt;padding-left:36pt;text-indent:-18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:12pt;font-weight:400;line-height:115%\">\u2022</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:115%;padding-left:13.8pt\">risk assessments designed to help identify material cybersecurity risks to our critical systems, information, products, services and our broader enterprise information-technology environment;</span></div><div style=\"margin-top:6pt;padding-left:36pt;text-indent:-18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u2022</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt\">a security team principally responsible for managing; (i) our cybersecurity risk assessment processes, (ii) our security controls and (iii) our response to cybersecurity incidents;</span></div><div style=\"margin-top:6pt;padding-left:36pt;text-indent:-18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u2022</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt\">the use of external service providers, where appropriate, to assess, test or otherwise assist with aspects of our security controls and processes;</span></div><div style=\"margin-top:6pt;padding-left:36pt;text-indent:-18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u2022</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt\">cybersecurity awareness training of our employees, incident response personnel and senior management; </span></div><div style=\"margin-top:6pt;padding-left:36pt;text-indent:-18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u2022</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt\">a cybersecurity incident response plan that includes procedures for responding to cybersecurity incidents; and</span></div><div style=\"margin-top:6pt;padding-left:36pt;text-indent:-18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">\u2022</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt\">a third-party risk management process for key service providers, suppliers and vendors.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">We have not identified risks from known cybersecurity threats, including as a result of any prior cybersecurity incidents, that have materially affected us, including our operations, business strategy, results of operations or financial condition. We face risks from certain cybersecurity threats that, if realized, are reasonably likely to materially affect us, including our operations, business strategy, results of operations, or financial condition. See Item 1A \u201cRisk Factors \u2013 Cyberattacks or other security incidents that disrupt our operations or compromise data, may expose us to liability, harm our reputation or otherwise adversely affect our business.\u201d</span></div>","language":"en-us"}]},{"name":"rpt:f-48","factDimensions":{"xbrl:concept":"cyd:CybersecurityRiskManagementProcessesIntegratedTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',serif;font-size:10pt;font-weight:400;line-height:115%\">We have developed and implemented a cybersecurity risk management program intended to protect the confidentiality, integrity and availability of our critical systems and information.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:115%\">We design and assess our program based on the National Institute of Standards and Technology Cybersecurity Framework (\u201cNIST CSF\u201d) and the MITRE ATT&amp;CK</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:6.47pt;font-weight:400;line-height:115%;position:relative;top:-3.48pt;vertical-align:baseline\">\u00ae</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:115%\"> framework. This does not imply that we meet any particular technical standards, specifications or requirements, only that we use the NIST CSF and MITRE ATT&amp;CK</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:6.47pt;font-weight:400;line-height:115%;position:relative;top:-3.48pt;vertical-align:baseline\">\u00ae</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:115%\"> as guides to help us identify, assess and manage cybersecurity risks relevant to our business.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Our cybersecurity risk management program is integrated into our overall enterprise risk management program and shares common methodologies, reporting channels and governance processes that apply across the enterprise risk management program to other legal, compliance, strategic, operational and financial risk areas.</span></div>","language":"en-us"}]},{"name":"rpt:f-49","factDimensions":{"xbrl:concept":"cyd:CybersecurityRiskManagementProcessesIntegratedFlag","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"true"}]},{"name":"rpt:f-50","factDimensions":{"xbrl:concept":"cyd:CybersecurityRiskManagementThirdPartyEngagedFlag","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"true"}]},{"name":"rpt:f-51","factDimensions":{"xbrl:concept":"cyd:CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"true"}]},{"name":"rpt:f-52","factDimensions":{"xbrl:concept":"cyd:CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"false"}]},{"name":"rpt:f-53","factDimensions":{"xbrl:concept":"cyd:CybersecurityRiskBoardOfDirectorsOversightTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',serif;font-size:10pt;font-weight:400;line-height:120%\">Our Board considers cybersecurity risk as part of its risk oversight function and has delegated to the AI and Cybersecurity Committee (the \u201cCommittee\u201d), since its formation in 2017, the oversight of business continuity, cybersecurity, privacy and other IT risks. In 2025, the Board further delegated to the Committee oversight of AI risks. The Committee oversees management\u2019s implementation of our AI and cybersecurity risk management program. </span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The Committee receives quarterly reports from management on our cybersecurity risks. In addition, management updates the Committee, as necessary, regarding any significant cybersecurity incidents. </span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The Committee reports to the full Board regarding its activities, including those related to cybersecurity. The full Board also periodically receives briefings from management on our cyber risk management program. Board members receive presentations on cybersecurity topics from our management team, internal security staff or external experts as part of the Board\u2019s continuing education on topics that impact public companies.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Our Chief Operating Officer and Chief Product Officer are primarily responsible for assessing and managing our material risks from cybersecurity threats and supervise both our internal cybersecurity personnel and our retained external cybersecurity </span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">consultants. Our former Chief Commercial Operations Officer played a pivotal role in enhancing our cybersecurity frameworks across the enterprise through his experience in risk management and IT governance. He oversaw the implementation of data governance and data protection policies and was instrumental in fostering a culture of cybersecurity awareness across the organization. Our Chief Operating Officer has assumed these responsibilities. Our Chief Product Officer has significantly contributed to our cybersecurity efforts through his experience in product management and development. He has been instrumental in integrating security by design and privacy by design into our products, helping to ensure that cybersecurity is a core component of our product strategy. Collectively, they stay informed about and monitor the prevention, detection, mitigation and remediation of key cybersecurity risks and incidents through various means, which may include briefings with internal and external security team members, threat intelligence and other information obtained from public or private sources and alerts and reports produced by security tools deployed in the IT environment.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Our cybersecurity management team also includes our Chief Information Officer, who leads the operational teams responsible for enterprise security, data governance and enterprise incident response and global operations, and our Senior Vice President of Cloud and Engineering operations, who leads the operational teams responsible for product and cloud privacy and security, data governance and product security incident response. Our operational cybersecurity teams are comprised of members with decades of collective experience in IT security systems, tooling, operations and governance; hold various IT security industry certifications and have received specialized cybersecurity training.</span></div>","language":"en-us"}]},{"name":"rpt:f-54","factDimensions":{"xbrl:concept":"cyd:CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"Our Board considers cybersecurity risk as part of its risk oversight function and has delegated to the AI and Cybersecurity Committee (the \u201cCommittee\u201d), since its formation in 2017, the oversight of business continuity, cybersecurity, privacy and other IT risks. In 2025, the Board further delegated to the Committee oversight of AI risks. The Committee oversees management\u2019s implementation of our AI and cybersecurity risk management program.","language":"en-us"}]},{"name":"rpt:f-55","factDimensions":{"xbrl:concept":"cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"true"}]},{"name":"rpt:f-56","factDimensions":{"xbrl:concept":"cyd:CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',serif;font-size:10pt;font-weight:400;line-height:120%\">The Committee receives quarterly reports from management on our cybersecurity risks. In addition, management updates the Committee, as necessary, regarding any significant cybersecurity incidents. </span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The Committee reports to the full Board regarding its activities, including those related to cybersecurity. The full Board also periodically receives briefings from management on our cyber risk management program. Board members receive presentations on cybersecurity topics from our management team, internal security staff or external experts as part of the Board\u2019s continuing education on topics that impact public companies.</span></div>","language":"en-us"}]},{"name":"rpt:f-57","factDimensions":{"xbrl:concept":"cyd:CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"The Committee receives quarterly reports from management on our cybersecurity risks. In addition, management updates the Committee, as necessary, regarding any significant cybersecurity incidents.","language":"en-us"}]},{"name":"rpt:f-58","factDimensions":{"xbrl:concept":"cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"true"}]},{"name":"rpt:f-59","factDimensions":{"xbrl:concept":"cyd:CybersecurityRiskRoleOfManagementTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',serif;font-size:10pt;font-weight:400;line-height:120%\">Our Chief Operating Officer and Chief Product Officer are primarily responsible for assessing and managing our material risks from cybersecurity threats and supervise both our internal cybersecurity personnel and our retained external cybersecurity </span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">consultants. Our former Chief Commercial Operations Officer played a pivotal role in enhancing our cybersecurity frameworks across the enterprise through his experience in risk management and IT governance. He oversaw the implementation of data governance and data protection policies and was instrumental in fostering a culture of cybersecurity awareness across the organization. Our Chief Operating Officer has assumed these responsibilities. Our Chief Product Officer has significantly contributed to our cybersecurity efforts through his experience in product management and development. He has been instrumental in integrating security by design and privacy by design into our products, helping to ensure that cybersecurity is a core component of our product strategy. Collectively, they stay informed about and monitor the prevention, detection, mitigation and remediation of key cybersecurity risks and incidents through various means, which may include briefings with internal and external security team members, threat intelligence and other information obtained from public or private sources and alerts and reports produced by security tools deployed in the IT environment.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Our cybersecurity management team also includes our Chief Information Officer, who leads the operational teams responsible for enterprise security, data governance and enterprise incident response and global operations, and our Senior Vice President of Cloud and Engineering operations, who leads the operational teams responsible for product and cloud privacy and security, data governance and product security incident response. Our operational cybersecurity teams are comprised of members with decades of collective experience in IT security systems, tooling, operations and governance; hold various IT security industry certifications and have received specialized cybersecurity training.</span></div>","language":"en-us"}]},{"name":"rpt:f-60","factDimensions":{"xbrl:concept":"cyd:CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"Our former Chief Commercial Operations Officer played a pivotal role in enhancing our cybersecurity frameworks across the enterprise through his experience in risk management and IT governance.Our Chief Product Officer has significantly contributed to our cybersecurity efforts through his experience in product management and development. Our operational cybersecurity teams are comprised of members with decades of collective experience in IT security systems, tooling, operations and governance; hold various IT security industry certifications and have received specialized cybersecurity training.","language":"en-us"}]},{"name":"rpt:f-61","factDimensions":{"xbrl:concept":"cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',serif;font-size:10pt;font-weight:400;line-height:120%\">Our cybersecurity management team also includes our Chief Information Officer, who leads the operational teams responsible for enterprise security, data governance and enterprise incident response and global operations, and our Senior Vice President of Cloud and Engineering operations, who leads the operational teams responsible for product and cloud privacy and security, data governance and product security incident response. Our operational cybersecurity teams are comprised of members with decades of collective experience in IT security systems, tooling, operations and governance; hold various IT security industry certifications and have received specialized cybersecurity training.</span></div>","language":"en-us"}]},{"name":"rpt:f-62","factDimensions":{"xbrl:concept":"dei:AuditorName","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"KPMG LLP","language":"en-us"}]},{"name":"rpt:f-63","factDimensions":{"xbrl:concept":"dei:AuditorLocation","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"Santa Clara, California","language":"en-us"}]},{"name":"rpt:f-64","factDimensions":{"xbrl:concept":"us-gaap:CashAndCashEquivalentsAtCarryingValue","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"143086000","decimals":-3}]},{"name":"rpt:f-65","factDimensions":{"xbrl:concept":"us-gaap:CashAndCashEquivalentsAtCarryingValue","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"43162000","decimals":-3}]},{"name":"rpt:f-66","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"245018000","decimals":-3}]},{"name":"rpt:f-67","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"253929000","decimals":-3}]},{"name":"rpt:f-68","factDimensions":{"xbrl:concept":"us-gaap:AccountsReceivableNetCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"99367000","decimals":-3}]},{"name":"rpt:f-69","factDimensions":{"xbrl:concept":"us-gaap:AccountsReceivableNetCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"79321000","decimals":-3}]},{"name":"rpt:f-70","factDimensions":{"xbrl:concept":"us-gaap:InventoryNet","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"133737000","decimals":-3}]},{"name":"rpt:f-71","factDimensions":{"xbrl:concept":"us-gaap:InventoryNet","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"102727000","decimals":-3}]},{"name":"rpt:f-72","factDimensions":{"xbrl:concept":"us-gaap:PrepaidExpenseAndOtherAssetsCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"70345000","decimals":-3}]},{"name":"rpt:f-73","factDimensions":{"xbrl:concept":"us-gaap:PrepaidExpenseAndOtherAssetsCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"105596000","decimals":-3}]},{"name":"rpt:f-74","factDimensions":{"xbrl:concept":"us-gaap:AssetsCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"691553000","decimals":-3}]},{"name":"rpt:f-75","factDimensions":{"xbrl:concept":"us-gaap:AssetsCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"584735000","decimals":-3}]},{"name":"rpt:f-76","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentNet","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"37812000","decimals":-3}]},{"name":"rpt:f-77","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentNet","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"31153000","decimals":-3}]},{"name":"rpt:f-78","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseRightOfUseAsset","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"14665000","decimals":-3}]},{"name":"rpt:f-79","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseRightOfUseAsset","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"6216000","decimals":-3}]},{"name":"rpt:f-80","factDimensions":{"xbrl:concept":"us-gaap:DeferredIncomeTaxAssetsNet","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"165636000","decimals":-3}]},{"name":"rpt:f-81","factDimensions":{"xbrl:concept":"us-gaap:DeferredIncomeTaxAssetsNet","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"177601000","decimals":-3}]},{"name":"rpt:f-82","factDimensions":{"xbrl:concept":"us-gaap:Goodwill","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"116175000","decimals":-3}]},{"name":"rpt:f-83","factDimensions":{"xbrl:concept":"us-gaap:Goodwill","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"116175000","decimals":-3}]},{"name":"rpt:f-84","factDimensions":{"xbrl:concept":"us-gaap:OtherAssetsNoncurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"32681000","decimals":-3}]},{"name":"rpt:f-85","factDimensions":{"xbrl:concept":"us-gaap:OtherAssetsNoncurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"23387000","decimals":-3}]},{"name":"rpt:f-86","factDimensions":{"xbrl:concept":"us-gaap:Assets","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1058522000","decimals":-3}]},{"name":"rpt:f-87","factDimensions":{"xbrl:concept":"us-gaap:Assets","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"939267000","decimals":-3}]},{"name":"rpt:f-88","factDimensions":{"xbrl:concept":"us-gaap:AccountsPayableCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"41523000","decimals":-3}]},{"name":"rpt:f-89","factDimensions":{"xbrl:concept":"us-gaap:AccountsPayableCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"20226000","decimals":-3}]},{"name":"rpt:f-90","factDimensions":{"xbrl:concept":"us-gaap:AccruedLiabilitiesCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"91339000","decimals":-3}]},{"name":"rpt:f-91","factDimensions":{"xbrl:concept":"us-gaap:AccruedLiabilitiesCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"84167000","decimals":-3}]},{"name":"rpt:f-92","factDimensions":{"xbrl:concept":"us-gaap:ContractWithCustomerLiabilityCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"30386000","decimals":-3}]},{"name":"rpt:f-93","factDimensions":{"xbrl:concept":"us-gaap:ContractWithCustomerLiabilityCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"26750000","decimals":-3}]},{"name":"rpt:f-94","factDimensions":{"xbrl:concept":"us-gaap:LiabilitiesCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"163248000","decimals":-3}]},{"name":"rpt:f-95","factDimensions":{"xbrl:concept":"us-gaap:LiabilitiesCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"131143000","decimals":-3}]},{"name":"rpt:f-96","factDimensions":{"xbrl:concept":"us-gaap:ContractWithCustomerLiabilityNoncurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"19890000","decimals":-3}]},{"name":"rpt:f-97","factDimensions":{"xbrl:concept":"us-gaap:ContractWithCustomerLiabilityNoncurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"20883000","decimals":-3}]},{"name":"rpt:f-98","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseLiabilityNoncurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"12756000","decimals":-3}]},{"name":"rpt:f-99","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseLiabilityNoncurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3720000","decimals":-3}]},{"name":"rpt:f-100","factDimensions":{"xbrl:concept":"us-gaap:OtherLiabilitiesNoncurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3409000","decimals":-3}]},{"name":"rpt:f-101","factDimensions":{"xbrl:concept":"us-gaap:OtherLiabilitiesNoncurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2581000","decimals":-3}]},{"name":"rpt:f-102","factDimensions":{"xbrl:concept":"us-gaap:Liabilities","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"199303000","decimals":-3}]},{"name":"rpt:f-103","factDimensions":{"xbrl:concept":"us-gaap:Liabilities","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"158327000","decimals":-3}]},{"name":"rpt:f-104","factDimensions":{"xbrl:concept":"us-gaap:CommitmentsAndContingencies","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"}},{"name":"rpt:f-105","factDimensions":{"xbrl:concept":"us-gaap:CommitmentsAndContingencies","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"}},{"name":"rpt:f-106","factDimensions":{"xbrl:concept":"us-gaap:PreferredStockParOrStatedValuePerShare","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"0.025"}]},{"name":"rpt:f-107","factDimensions":{"xbrl:concept":"us-gaap:PreferredStockParOrStatedValuePerShare","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"0.025"}]},{"name":"rpt:f-108","factDimensions":{"xbrl:concept":"us-gaap:PreferredStockSharesAuthorized","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"5000000","decimals":-3}]},{"name":"rpt:f-109","factDimensions":{"xbrl:concept":"us-gaap:PreferredStockSharesAuthorized","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"5000000","decimals":-3}]},{"name":"rpt:f-110","factDimensions":{"xbrl:concept":"us-gaap:PreferredStockSharesOutstanding","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"0"}]},{"name":"rpt:f-111","factDimensions":{"xbrl:concept":"us-gaap:PreferredStockSharesOutstanding","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"0"}]},{"name":"rpt:f-112","factDimensions":{"xbrl:concept":"us-gaap:PreferredStockSharesIssued","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"0"}]},{"name":"rpt:f-113","factDimensions":{"xbrl:concept":"us-gaap:PreferredStockSharesIssued","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"0"}]},{"name":"rpt:f-114","factDimensions":{"xbrl:concept":"us-gaap:PreferredStockValue","xbrl:period":"2026-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:PreferredStockValue","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-116","factDimensions":{"xbrl:concept":"us-gaap:CommonStockParOrStatedValuePerShare","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"0.025"}]},{"name":"rpt:f-117","factDimensions":{"xbrl:concept":"us-gaap:CommonStockParOrStatedValuePerShare","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"0.025"}]},{"name":"rpt:f-118","factDimensions":{"xbrl:concept":"us-gaap:CommonStockSharesAuthorized","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"100000000","decimals":-3}]},{"name":"rpt:f-119","factDimensions":{"xbrl:concept":"us-gaap:CommonStockSharesAuthorized","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"100000000","decimals":-3}]},{"name":"rpt:f-120","factDimensions":{"xbrl:concept":"us-gaap:CommonStockSharesOutstanding","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"67120000","decimals":-3}]},{"name":"rpt:f-121","factDimensions":{"xbrl:concept":"us-gaap:CommonStockSharesIssued","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"67120000","decimals":-3}]},{"name":"rpt:f-122","factDimensions":{"xbrl:concept":"us-gaap:CommonStockSharesOutstanding","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"66434000","decimals":-3}]},{"name":"rpt:f-123","factDimensions":{"xbrl:concept":"us-gaap:CommonStockSharesIssued","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"66434000","decimals":-3}]},{"name":"rpt:f-124","factDimensions":{"xbrl:concept":"us-gaap:CommonStockValue","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1678000","decimals":-3}]},{"name":"rpt:f-125","factDimensions":{"xbrl:concept":"us-gaap:CommonStockValue","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1661000","decimals":-3}]},{"name":"rpt:f-126","factDimensions":{"xbrl:concept":"us-gaap:AdditionalPaidInCapitalCommonStock","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1230191000","decimals":-3}]},{"name":"rpt:f-127","factDimensions":{"xbrl:concept":"us-gaap:AdditionalPaidInCapitalCommonStock","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1170017000","decimals":-3}]},{"name":"rpt:f-128","factDimensions":{"xbrl:concept":"us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-408000","decimals":-3}]},{"name":"rpt:f-129","factDimensions":{"xbrl:concept":"us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-612000","decimals":-3}]},{"name":"rpt:f-130","factDimensions":{"xbrl:concept":"us-gaap:RetainedEarningsAccumulatedDeficit","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-372242000","decimals":-3}]},{"name":"rpt:f-131","factDimensions":{"xbrl:concept":"us-gaap:RetainedEarningsAccumulatedDeficit","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-390126000","decimals":-3}]},{"name":"rpt:f-132","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"859219000","decimals":-3}]},{"name":"rpt:f-133","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"780940000","decimals":-3}]},{"name":"rpt:f-134","factDimensions":{"xbrl:concept":"us-gaap:LiabilitiesAndStockholdersEquity","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1058522000","decimals":-3}]},{"name":"rpt:f-135","factDimensions":{"xbrl:concept":"us-gaap:LiabilitiesAndStockholdersEquity","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"939267000","decimals":-3}]},{"name":"rpt:f-136","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:ProductOrServiceAxis":"calx:ApplianceMember"},"factValues":[{"value":"825649000","decimals":-3}]},{"name":"rpt:f-137","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:ProductOrServiceAxis":"calx:ApplianceMember"},"factValues":[{"value":"694147000","decimals":-3}]},{"name":"rpt:f-138","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:ProductOrServiceAxis":"calx:ApplianceMember"},"factValues":[{"value":"931468000","decimals":-3}]},{"name":"rpt:f-139","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:ProductOrServiceAxis":"calx:SoftwareAndServiceMember"},"factValues":[{"value":"174361000","decimals":-3}]},{"name":"rpt:f-140","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:ProductOrServiceAxis":"calx:SoftwareAndServiceMember"},"factValues":[{"value":"137371000","decimals":-3}]},{"name":"rpt:f-141","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:ProductOrServiceAxis":"calx:SoftwareAndServiceMember"},"factValues":[{"value":"108125000","decimals":-3}]},{"name":"rpt:f-142","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1000010000","decimals":-3}]},{"name":"rpt:f-143","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"831518000","decimals":-3}]},{"name":"rpt:f-144","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1039593000","decimals":-3}]},{"name":"rpt:f-145","factDimensions":{"xbrl:concept":"us-gaap:CostOfGoodsAndServicesSold","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:ProductOrServiceAxis":"calx:ApplianceMember"},"factValues":[{"value":"367088000","decimals":-3}]},{"name":"rpt:f-146","factDimensions":{"xbrl:concept":"us-gaap:CostOfGoodsAndServicesSold","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:ProductOrServiceAxis":"calx:ApplianceMember"},"factValues":[{"value":"317842000","decimals":-3}]},{"name":"rpt:f-147","factDimensions":{"xbrl:concept":"us-gaap:CostOfGoodsAndServicesSold","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:ProductOrServiceAxis":"calx:ApplianceMember"},"factValues":[{"value":"471461000","decimals":-3}]},{"name":"rpt:f-148","factDimensions":{"xbrl:concept":"us-gaap:CostOfGoodsAndServicesSold","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:ProductOrServiceAxis":"calx:SoftwareAndServiceMember"},"factValues":[{"value":"64606000","decimals":-3}]},{"name":"rpt:f-149","factDimensions":{"xbrl:concept":"us-gaap:CostOfGoodsAndServicesSold","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:ProductOrServiceAxis":"calx:SoftwareAndServiceMember"},"factValues":[{"value":"60082000","decimals":-3}]},{"name":"rpt:f-150","factDimensions":{"xbrl:concept":"us-gaap:CostOfGoodsAndServicesSold","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:ProductOrServiceAxis":"calx:SoftwareAndServiceMember"},"factValues":[{"value":"49816000","decimals":-3}]},{"name":"rpt:f-151","factDimensions":{"xbrl:concept":"us-gaap:CostOfGoodsAndServicesSold","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"431694000","decimals":-3}]},{"name":"rpt:f-152","factDimensions":{"xbrl:concept":"us-gaap:CostOfGoodsAndServicesSold","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"377924000","decimals":-3}]},{"name":"rpt:f-153","factDimensions":{"xbrl:concept":"us-gaap:CostOfGoodsAndServicesSold","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"521277000","decimals":-3}]},{"name":"rpt:f-154","factDimensions":{"xbrl:concept":"us-gaap:GrossProfit","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"568316000","decimals":-3}]},{"name":"rpt:f-155","factDimensions":{"xbrl:concept":"us-gaap:GrossProfit","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"453594000","decimals":-3}]},{"name":"rpt:f-156","factDimensions":{"xbrl:concept":"us-gaap:GrossProfit","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"518316000","decimals":-3}]},{"name":"rpt:f-157","factDimensions":{"xbrl:concept":"us-gaap:SellingAndMarketingExpense","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"248636000","decimals":-3}]},{"name":"rpt:f-158","factDimensions":{"xbrl:concept":"us-gaap:SellingAndMarketingExpense","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"217879000","decimals":-3}]},{"name":"rpt:f-159","factDimensions":{"xbrl:concept":"us-gaap:SellingAndMarketingExpense","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"214564000","decimals":-3}]},{"name":"rpt:f-160","factDimensions":{"xbrl:concept":"us-gaap:ResearchAndDevelopmentExpense","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"190356000","decimals":-3}]},{"name":"rpt:f-161","factDimensions":{"xbrl:concept":"us-gaap:ResearchAndDevelopmentExpense","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"179870000","decimals":-3}]},{"name":"rpt:f-162","factDimensions":{"xbrl:concept":"us-gaap:ResearchAndDevelopmentExpense","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"177772000","decimals":-3}]},{"name":"rpt:f-163","factDimensions":{"xbrl:concept":"us-gaap:GeneralAndAdministrativeExpense","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"108334000","decimals":-3}]},{"name":"rpt:f-164","factDimensions":{"xbrl:concept":"us-gaap:GeneralAndAdministrativeExpense","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"98879000","decimals":-3}]},{"name":"rpt:f-165","factDimensions":{"xbrl:concept":"us-gaap:GeneralAndAdministrativeExpense","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"100395000","decimals":-3}]},{"name":"rpt:f-166","factDimensions":{"xbrl:concept":"us-gaap:OperatingExpenses","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"547326000","decimals":-3}]},{"name":"rpt:f-167","factDimensions":{"xbrl:concept":"us-gaap:OperatingExpenses","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"496628000","decimals":-3}]},{"name":"rpt:f-168","factDimensions":{"xbrl:concept":"us-gaap:OperatingExpenses","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"492731000","decimals":-3}]},{"name":"rpt:f-169","factDimensions":{"xbrl:concept":"us-gaap:OperatingIncomeLoss","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"20990000","decimals":-3}]},{"name":"rpt:f-170","factDimensions":{"xbrl:concept":"us-gaap:OperatingIncomeLoss","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-43034000","decimals":-3}]},{"name":"rpt:f-171","factDimensions":{"xbrl:concept":"us-gaap:OperatingIncomeLoss","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"25585000","decimals":-3}]},{"name":"rpt:f-172","factDimensions":{"xbrl:concept":"us-gaap:InterestIncomeExpenseNonoperatingNet","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"13434000","decimals":-3}]},{"name":"rpt:f-173","factDimensions":{"xbrl:concept":"us-gaap:InterestIncomeExpenseNonoperatingNet","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"12343000","decimals":-3}]},{"name":"rpt:f-174","factDimensions":{"xbrl:concept":"us-gaap:InterestIncomeExpenseNonoperatingNet","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"9704000","decimals":-3}]},{"name":"rpt:f-175","factDimensions":{"xbrl:concept":"us-gaap:OtherNonoperatingIncomeExpense","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-256000","decimals":-3}]},{"name":"rpt:f-176","factDimensions":{"xbrl:concept":"us-gaap:OtherNonoperatingIncomeExpense","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-955000","decimals":-3}]},{"name":"rpt:f-177","factDimensions":{"xbrl:concept":"us-gaap:OtherNonoperatingIncomeExpense","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-532000","decimals":-3}]},{"name":"rpt:f-178","factDimensions":{"xbrl:concept":"us-gaap:NonoperatingIncomeExpense","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"13178000","decimals":-3}]},{"name":"rpt:f-179","factDimensions":{"xbrl:concept":"us-gaap:NonoperatingIncomeExpense","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"11388000","decimals":-3}]},{"name":"rpt:f-180","factDimensions":{"xbrl:concept":"us-gaap:NonoperatingIncomeExpense","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"9172000","decimals":-3}]},{"name":"rpt:f-181","factDimensions":{"xbrl:concept":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"34168000","decimals":-3}]},{"name":"rpt:f-182","factDimensions":{"xbrl:concept":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-31646000","decimals":-3}]},{"name":"rpt:f-183","factDimensions":{"xbrl:concept":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"34757000","decimals":-3}]},{"name":"rpt:f-184","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxExpenseBenefit","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"16284000","decimals":-3}]},{"name":"rpt:f-185","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxExpenseBenefit","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-1899000","decimals":-3}]},{"name":"rpt:f-186","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxExpenseBenefit","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"5432000","decimals":-3}]},{"name":"rpt:f-187","factDimensions":{"xbrl:concept":"us-gaap:NetIncomeLoss","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"17884000","decimals":-3}]},{"name":"rpt:f-188","factDimensions":{"xbrl:concept":"us-gaap:NetIncomeLoss","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-29747000","decimals":-3}]},{"name":"rpt:f-189","factDimensions":{"xbrl:concept":"us-gaap:NetIncomeLoss","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"29325000","decimals":-3}]},{"name":"rpt:f-190","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareBasic","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"0.27","decimals":2}]},{"name":"rpt:f-191","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareBasic","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"-0.45","decimals":2}]},{"name":"rpt:f-192","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareBasic","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"0.44","decimals":2}]},{"name":"rpt:f-193","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareDiluted","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"0.26","decimals":2}]},{"name":"rpt:f-194","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareDiluted","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"-0.45","decimals":2}]},{"name":"rpt:f-195","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareDiluted","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"0.42","decimals":2}]},{"name":"rpt:f-196","factDimensions":{"xbrl:concept":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasic","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"66041000","decimals":-3}]},{"name":"rpt:f-197","factDimensions":{"xbrl:concept":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasic","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"65879000","decimals":-3}]},{"name":"rpt:f-198","factDimensions":{"xbrl:concept":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasic","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"65980000","decimals":-3}]},{"name":"rpt:f-199","factDimensions":{"xbrl:concept":"us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"69305000","decimals":-3}]},{"name":"rpt:f-200","factDimensions":{"xbrl:concept":"us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"65879000","decimals":-3}]},{"name":"rpt:f-201","factDimensions":{"xbrl:concept":"us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"69320000","decimals":-3}]},{"name":"rpt:f-202","factDimensions":{"xbrl:concept":"us-gaap:NetIncomeLoss","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"17884000","decimals":-3}]},{"name":"rpt:f-203","factDimensions":{"xbrl:concept":"us-gaap:NetIncomeLoss","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-29747000","decimals":-3}]},{"name":"rpt:f-204","factDimensions":{"xbrl:concept":"us-gaap:NetIncomeLoss","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"29325000","decimals":-3}]},{"name":"rpt:f-205","factDimensions":{"xbrl:concept":"us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"343000","decimals":-3}]},{"name":"rpt:f-206","factDimensions":{"xbrl:concept":"us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"187000","decimals":-3}]},{"name":"rpt:f-207","factDimensions":{"xbrl:concept":"us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1701000","decimals":-3}]},{"name":"rpt:f-208","factDimensions":{"xbrl:concept":"us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-139000","decimals":-3}]},{"name":"rpt:f-209","factDimensions":{"xbrl:concept":"us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-140000","decimals":-3}]},{"name":"rpt:f-210","factDimensions":{"xbrl:concept":"us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"113000","decimals":-3}]},{"name":"rpt:f-211","factDimensions":{"xbrl:concept":"us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"204000","decimals":-3}]},{"name":"rpt:f-212","factDimensions":{"xbrl:concept":"us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"47000","decimals":-3}]},{"name":"rpt:f-213","factDimensions":{"xbrl:concept":"us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1814000","decimals":-3}]},{"name":"rpt:f-214","factDimensions":{"xbrl:concept":"us-gaap:ComprehensiveIncomeNetOfTax","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"18088000","decimals":-3}]},{"name":"rpt:f-215","factDimensions":{"xbrl:concept":"us-gaap:ComprehensiveIncomeNetOfTax","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-29700000","decimals":-3}]},{"name":"rpt:f-216","factDimensions":{"xbrl:concept":"us-gaap:ComprehensiveIncomeNetOfTax","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"31139000","decimals":-3}]},{"name":"rpt:f-217","factDimensions":{"xbrl:concept":"us-gaap:CommonStockSharesOutstanding","xbrl:period":"2023-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"65735000","decimals":-3}]},{"name":"rpt:f-218","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2023-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"1644000","decimals":-3}]},{"name":"rpt:f-219","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2023-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"1070100000","decimals":-3}]},{"name":"rpt:f-220","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2023-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AccumulatedOtherComprehensiveIncomeMember"},"factValues":[{"value":"-2473000","decimals":-3}]},{"name":"rpt:f-221","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2023-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:RetainedEarningsMember"},"factValues":[{"value":"-389704000","decimals":-3}]},{"name":"rpt:f-222","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2023-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"679567000","decimals":-3}]},{"name":"rpt:f-223","factDimensions":{"xbrl:concept":"us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"62771000","decimals":-3}]},{"name":"rpt:f-224","factDimensions":{"xbrl:concept":"us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"62771000","decimals":-3}]},{"name":"rpt:f-225","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"1527000","decimals":-3}]},{"name":"rpt:f-226","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation","xbrl:period":"2023-01-01T00:00:00/2024-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-227","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"32111000","decimals":-3}]},{"name":"rpt:f-228","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"32149000","decimals":-3}]},{"name":"rpt:f-229","factDimensions":{"xbrl:concept":"us-gaap:StockRepurchasedDuringPeriodShares","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"2210000","decimals":-3}]},{"name":"rpt:f-230","factDimensions":{"xbrl:concept":"calx:StockRepurchasedDuringPeriodValueNetOfExciseTaxAdjustment","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"55000","decimals":-3}]},{"name":"rpt:f-231","factDimensions":{"xbrl:concept":"calx:StockRepurchasedDuringPeriodValueNetOfExciseTaxAdjustment","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"86589000","decimals":-3}]},{"name":"rpt:f-232","factDimensions":{"xbrl:concept":"calx:StockRepurchasedDuringPeriodValueNetOfExciseTaxAdjustment","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"86644000","decimals":-3}]},{"name":"rpt:f-233","factDimensions":{"xbrl:concept":"us-gaap:NetIncomeLoss","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:RetainedEarningsMember"},"factValues":[{"value":"29325000","decimals":-3}]},{"name":"rpt:f-234","factDimensions":{"xbrl:concept":"us-gaap:NetIncomeLoss","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"29325000","decimals":-3}]},{"name":"rpt:f-235","factDimensions":{"xbrl:concept":"us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AccumulatedOtherComprehensiveIncomeMember"},"factValues":[{"value":"1814000","decimals":-3}]},{"name":"rpt:f-236","factDimensions":{"xbrl:concept":"us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1814000","decimals":-3}]},{"name":"rpt:f-237","factDimensions":{"xbrl:concept":"us-gaap:CommonStockSharesOutstanding","xbrl:period":"2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"65052000","decimals":-3}]},{"name":"rpt:f-238","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"1627000","decimals":-3}]},{"name":"rpt:f-239","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"1078393000","decimals":-3}]},{"name":"rpt:f-240","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AccumulatedOtherComprehensiveIncomeMember"},"factValues":[{"value":"-659000","decimals":-3}]},{"name":"rpt:f-241","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:RetainedEarningsMember"},"factValues":[{"value":"-360379000","decimals":-3}]},{"name":"rpt:f-242","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"718982000","decimals":-3}]},{"name":"rpt:f-243","factDimensions":{"xbrl:concept":"us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"70761000","decimals":-3}]},{"name":"rpt:f-244","factDimensions":{"xbrl:concept":"us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"70761000","decimals":-3}]},{"name":"rpt:f-245","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"1724000","decimals":-3}]},{"name":"rpt:f-246","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"43000","decimals":-3}]},{"name":"rpt:f-247","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"31549000","decimals":-3}]},{"name":"rpt:f-248","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"31592000","decimals":-3}]},{"name":"rpt:f-249","factDimensions":{"xbrl:concept":"us-gaap:StockRepurchasedDuringPeriodShares","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"342000","decimals":-3}]},{"name":"rpt:f-250","factDimensions":{"xbrl:concept":"calx:StockRepurchasedDuringPeriodValueNetOfExciseTaxAdjustment","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"9000","decimals":-3}]},{"name":"rpt:f-251","factDimensions":{"xbrl:concept":"calx:StockRepurchasedDuringPeriodValueNetOfExciseTaxAdjustment","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"10686000","decimals":-3}]},{"name":"rpt:f-252","factDimensions":{"xbrl:concept":"calx:StockRepurchasedDuringPeriodValueNetOfExciseTaxAdjustment","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"10695000","decimals":-3}]},{"name":"rpt:f-253","factDimensions":{"xbrl:concept":"us-gaap:NetIncomeLoss","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:RetainedEarningsMember"},"factValues":[{"value":"-29747000","decimals":-3}]},{"name":"rpt:f-254","factDimensions":{"xbrl:concept":"us-gaap:NetIncomeLoss","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-29747000","decimals":-3}]},{"name":"rpt:f-255","factDimensions":{"xbrl:concept":"us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AccumulatedOtherComprehensiveIncomeMember"},"factValues":[{"value":"47000","decimals":-3}]},{"name":"rpt:f-256","factDimensions":{"xbrl:concept":"us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"47000","decimals":-3}]},{"name":"rpt:f-257","factDimensions":{"xbrl:concept":"us-gaap:CommonStockSharesOutstanding","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"66434000","decimals":-3}]},{"name":"rpt:f-258","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"1661000","decimals":-3}]},{"name":"rpt:f-259","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"1170017000","decimals":-3}]},{"name":"rpt:f-260","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AccumulatedOtherComprehensiveIncomeMember"},"factValues":[{"value":"-612000","decimals":-3}]},{"name":"rpt:f-261","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:RetainedEarningsMember"},"factValues":[{"value":"-390126000","decimals":-3}]},{"name":"rpt:f-262","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"780940000","decimals":-3}]},{"name":"rpt:f-263","factDimensions":{"xbrl:concept":"us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"88625000","decimals":-3}]},{"name":"rpt:f-264","factDimensions":{"xbrl:concept":"us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"88625000","decimals":-3}]},{"name":"rpt:f-265","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"3208000","decimals":-3}]},{"name":"rpt:f-266","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"80000","decimals":-3}]},{"name":"rpt:f-267","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"65116000","decimals":-3}]},{"name":"rpt:f-268","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"65196000","decimals":-3}]},{"name":"rpt:f-269","factDimensions":{"xbrl:concept":"us-gaap:StockRepurchasedDuringPeriodShares","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"2522000","decimals":-3}]},{"name":"rpt:f-270","factDimensions":{"xbrl:concept":"calx:StockRepurchasedDuringPeriodValueNetOfExciseTaxAdjustment","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"63000","decimals":-3}]},{"name":"rpt:f-271","factDimensions":{"xbrl:concept":"calx:StockRepurchasedDuringPeriodValueNetOfExciseTaxAdjustment","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"93567000","decimals":-3}]},{"name":"rpt:f-272","factDimensions":{"xbrl:concept":"calx:StockRepurchasedDuringPeriodValueNetOfExciseTaxAdjustment","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"93630000","decimals":-3}]},{"name":"rpt:f-273","factDimensions":{"xbrl:concept":"us-gaap:NetIncomeLoss","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:RetainedEarningsMember"},"factValues":[{"value":"17884000","decimals":-3}]},{"name":"rpt:f-274","factDimensions":{"xbrl:concept":"us-gaap:NetIncomeLoss","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"17884000","decimals":-3}]},{"name":"rpt:f-275","factDimensions":{"xbrl:concept":"us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AccumulatedOtherComprehensiveIncomeMember"},"factValues":[{"value":"204000","decimals":-3}]},{"name":"rpt:f-276","factDimensions":{"xbrl:concept":"us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"204000","decimals":-3}]},{"name":"rpt:f-277","factDimensions":{"xbrl:concept":"us-gaap:CommonStockSharesOutstanding","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"67120000","decimals":-3}]},{"name":"rpt:f-278","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:CommonStockMember"},"factValues":[{"value":"1678000","decimals":-3}]},{"name":"rpt:f-279","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AdditionalPaidInCapitalMember"},"factValues":[{"value":"1230191000","decimals":-3}]},{"name":"rpt:f-280","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AccumulatedOtherComprehensiveIncomeMember"},"factValues":[{"value":"-408000","decimals":-3}]},{"name":"rpt:f-281","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:RetainedEarningsMember"},"factValues":[{"value":"-372242000","decimals":-3}]},{"name":"rpt:f-282","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"859219000","decimals":-3}]},{"name":"rpt:f-283","factDimensions":{"xbrl:concept":"us-gaap:NetIncomeLoss","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"17884000","decimals":-3}]},{"name":"rpt:f-284","factDimensions":{"xbrl:concept":"us-gaap:NetIncomeLoss","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-29747000","decimals":-3}]},{"name":"rpt:f-285","factDimensions":{"xbrl:concept":"us-gaap:NetIncomeLoss","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"29325000","decimals":-3}]},{"name":"rpt:f-286","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensation","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"87929000","decimals":-3}]},{"name":"rpt:f-287","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensation","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"70761000","decimals":-3}]},{"name":"rpt:f-288","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensation","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"62771000","decimals":-3}]},{"name":"rpt:f-289","factDimensions":{"xbrl:concept":"us-gaap:DepreciationDepletionAndAmortization","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"17710000","decimals":-3}]},{"name":"rpt:f-290","factDimensions":{"xbrl:concept":"us-gaap:DepreciationDepletionAndAmortization","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"19550000","decimals":-3}]},{"name":"rpt:f-291","factDimensions":{"xbrl:concept":"us-gaap:DepreciationDepletionAndAmortization","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"16631000","decimals":-3}]},{"name":"rpt:f-292","factDimensions":{"xbrl:concept":"us-gaap:DeferredIncomeTaxesAndTaxCredits","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"12911000","decimals":-3}]},{"name":"rpt:f-293","factDimensions":{"xbrl:concept":"us-gaap:DeferredIncomeTaxesAndTaxCredits","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-9969000","decimals":-3}]},{"name":"rpt:f-294","factDimensions":{"xbrl:concept":"us-gaap:DeferredIncomeTaxesAndTaxCredits","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-660000","decimals":-3}]},{"name":"rpt:f-295","factDimensions":{"xbrl:concept":"us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3697000","decimals":-3}]},{"name":"rpt:f-296","factDimensions":{"xbrl:concept":"us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"5286000","decimals":-3}]},{"name":"rpt:f-297","factDimensions":{"xbrl:concept":"us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4199000","decimals":-3}]},{"name":"rpt:f-298","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInAccountsReceivable","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"20046000","decimals":-3}]},{"name":"rpt:f-299","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInAccountsReceivable","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-46706000","decimals":-3}]},{"name":"rpt:f-300","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInAccountsReceivable","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"32222000","decimals":-3}]},{"name":"rpt:f-301","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInInventories","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"31010000","decimals":-3}]},{"name":"rpt:f-302","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInInventories","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-30258000","decimals":-3}]},{"name":"rpt:f-303","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInInventories","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-16175000","decimals":-3}]},{"name":"rpt:f-304","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-17297000","decimals":-3}]},{"name":"rpt:f-305","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-11167000","decimals":-3}]},{"name":"rpt:f-306","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"60795000","decimals":-3}]},{"name":"rpt:f-307","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInAccountsPayable","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"21509000","decimals":-3}]},{"name":"rpt:f-308","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInAccountsPayable","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-15138000","decimals":-3}]},{"name":"rpt:f-309","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInAccountsPayable","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-6369000","decimals":-3}]},{"name":"rpt:f-310","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInAccruedLiabilities","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3017000","decimals":-3}]},{"name":"rpt:f-311","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInAccruedLiabilities","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-31926000","decimals":-3}]},{"name":"rpt:f-312","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInAccruedLiabilities","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"37070000","decimals":-3}]},{"name":"rpt:f-313","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInDeferredRevenue","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2643000","decimals":-3}]},{"name":"rpt:f-314","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInDeferredRevenue","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-13900000","decimals":-3}]},{"name":"rpt:f-315","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInDeferredRevenue","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2921000","decimals":-3}]},{"name":"rpt:f-316","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"8806000","decimals":-3}]},{"name":"rpt:f-317","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-4076000","decimals":-3}]},{"name":"rpt:f-318","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-4397000","decimals":-3}]},{"name":"rpt:f-319","factDimensions":{"xbrl:concept":"us-gaap:NetCashProvidedByUsedInOperatingActivities","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"134953000","decimals":-3}]},{"name":"rpt:f-320","factDimensions":{"xbrl:concept":"us-gaap:NetCashProvidedByUsedInOperatingActivities","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"68400000","decimals":-3}]},{"name":"rpt:f-321","factDimensions":{"xbrl:concept":"us-gaap:NetCashProvidedByUsedInOperatingActivities","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"56251000","decimals":-3}]},{"name":"rpt:f-322","factDimensions":{"xbrl:concept":"us-gaap:PaymentsToAcquirePropertyPlantAndEquipment","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"19435000","decimals":-3}]},{"name":"rpt:f-323","factDimensions":{"xbrl:concept":"us-gaap:PaymentsToAcquirePropertyPlantAndEquipment","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"18054000","decimals":-3}]},{"name":"rpt:f-324","factDimensions":{"xbrl:concept":"us-gaap:PaymentsToAcquirePropertyPlantAndEquipment","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"17855000","decimals":-3}]},{"name":"rpt:f-325","factDimensions":{"xbrl:concept":"us-gaap:PaymentsToAcquireAvailableForSaleSecuritiesDebt","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"220839000","decimals":-3}]},{"name":"rpt:f-326","factDimensions":{"xbrl:concept":"us-gaap:PaymentsToAcquireAvailableForSaleSecuritiesDebt","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"301677000","decimals":-3}]},{"name":"rpt:f-327","factDimensions":{"xbrl:concept":"us-gaap:PaymentsToAcquireAvailableForSaleSecuritiesDebt","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"216193000","decimals":-3}]},{"name":"rpt:f-328","factDimensions":{"xbrl:concept":"us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"28142000","decimals":-3}]},{"name":"rpt:f-329","factDimensions":{"xbrl:concept":"us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"49902000","decimals":-3}]},{"name":"rpt:f-330","factDimensions":{"xbrl:concept":"us-gaap:ProceedsFromSaleOfAvailableForSaleSecuritiesDebt","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-331","factDimensions":{"xbrl:concept":"us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"205759000","decimals":-3}]},{"name":"rpt:f-332","factDimensions":{"xbrl:concept":"us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"160299000","decimals":-3}]},{"name":"rpt:f-333","factDimensions":{"xbrl:concept":"us-gaap:ProceedsFromMaturitiesPrepaymentsAndCallsOfAvailableForSaleSecurities","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"227803000","decimals":-3}]},{"name":"rpt:f-334","factDimensions":{"xbrl:concept":"us-gaap:NetCashProvidedByUsedInInvestingActivities","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-6373000","decimals":-3}]},{"name":"rpt:f-335","factDimensions":{"xbrl:concept":"us-gaap:NetCashProvidedByUsedInInvestingActivities","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-109530000","decimals":-3}]},{"name":"rpt:f-336","factDimensions":{"xbrl:concept":"us-gaap:NetCashProvidedByUsedInInvestingActivities","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-6245000","decimals":-3}]},{"name":"rpt:f-337","factDimensions":{"xbrl:concept":"us-gaap:ProceedsFromStockOptionsExercised","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"65196000","decimals":-3}]},{"name":"rpt:f-338","factDimensions":{"xbrl:concept":"us-gaap:ProceedsFromStockOptionsExercised","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"31592000","decimals":-3}]},{"name":"rpt:f-339","factDimensions":{"xbrl:concept":"us-gaap:ProceedsFromStockOptionsExercised","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"32149000","decimals":-3}]},{"name":"rpt:f-340","factDimensions":{"xbrl:concept":"us-gaap:PaymentsForRepurchaseOfCommonStock","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"93630000","decimals":-3}]},{"name":"rpt:f-341","factDimensions":{"xbrl:concept":"us-gaap:PaymentsForRepurchaseOfCommonStock","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"10695000","decimals":-3}]},{"name":"rpt:f-342","factDimensions":{"xbrl:concept":"us-gaap:PaymentsForRepurchaseOfCommonStock","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"86397000","decimals":-3}]},{"name":"rpt:f-343","factDimensions":{"xbrl:concept":"calx:PaymentsForFinancingArrangements","xbrl:period":"2025-01-01T00:00:00/2026-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:PaymentsForFinancingArrangements","xbrl:period":"2024-01-01T00:00:00/2025-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:PaymentsForFinancingArrangements","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"11678000","decimals":-3}]},{"name":"rpt:f-346","factDimensions":{"xbrl:concept":"us-gaap:NetCashProvidedByUsedInFinancingActivities","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-28434000","decimals":-3}]},{"name":"rpt:f-347","factDimensions":{"xbrl:concept":"us-gaap:NetCashProvidedByUsedInFinancingActivities","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"20897000","decimals":-3}]},{"name":"rpt:f-348","factDimensions":{"xbrl:concept":"us-gaap:NetCashProvidedByUsedInFinancingActivities","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-65926000","decimals":-3}]},{"name":"rpt:f-349","factDimensions":{"xbrl:concept":"us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-222000","decimals":-3}]},{"name":"rpt:f-350","factDimensions":{"xbrl:concept":"us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-14000","decimals":-3}]},{"name":"rpt:f-351","factDimensions":{"xbrl:concept":"us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"256000","decimals":-3}]},{"name":"rpt:f-352","factDimensions":{"xbrl:concept":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"99924000","decimals":-3}]},{"name":"rpt:f-353","factDimensions":{"xbrl:concept":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-20247000","decimals":-3}]},{"name":"rpt:f-354","factDimensions":{"xbrl:concept":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-15664000","decimals":-3}]},{"name":"rpt:f-355","factDimensions":{"xbrl:concept":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"43162000","decimals":-3}]},{"name":"rpt:f-356","factDimensions":{"xbrl:concept":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","xbrl:period":"2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"63409000","decimals":-3}]},{"name":"rpt:f-357","factDimensions":{"xbrl:concept":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","xbrl:period":"2023-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"79073000","decimals":-3}]},{"name":"rpt:f-358","factDimensions":{"xbrl:concept":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"143086000","decimals":-3}]},{"name":"rpt:f-359","factDimensions":{"xbrl:concept":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"43162000","decimals":-3}]},{"name":"rpt:f-360","factDimensions":{"xbrl:concept":"us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents","xbrl:period":"2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"63409000","decimals":-3}]},{"name":"rpt:f-361","factDimensions":{"xbrl:concept":"us-gaap:InterestPaidNet","xbrl:period":"2025-01-01T00:00:00/2026-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:InterestPaidNet","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-363","factDimensions":{"xbrl:concept":"us-gaap:InterestPaidNet","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"253000","decimals":-3}]},{"name":"rpt:f-364","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxesPaidNet","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"6884000","decimals":-3}]},{"name":"rpt:f-365","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxesPaidNet","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"5878000","decimals":-3}]},{"name":"rpt:f-366","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxesPaidNet","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"11873000","decimals":-3}]},{"name":"rpt:f-367","factDimensions":{"xbrl:concept":"calx:ChangeInCapitalExpendituresIncurredButNotYetPaid","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3943000","decimals":-3}]},{"name":"rpt:f-368","factDimensions":{"xbrl:concept":"calx:ChangeInCapitalExpendituresIncurredButNotYetPaid","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"484000","decimals":-3}]},{"name":"rpt:f-369","factDimensions":{"xbrl:concept":"calx:ChangeInCapitalExpendituresIncurredButNotYetPaid","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-180000","decimals":-3}]},{"name":"rpt:f-370","factDimensions":{"xbrl:concept":"us-gaap:BusinessDescriptionAndAccountingPoliciesTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',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',serif;font-size:10pt;font-weight:400;line-height:120%\">Calix, Inc. (together with its subsidiaries, \u201cCalix,\u201d \u201cwe,\u201d \u201cus,\u201d or \u201cour\u201d) was incorporated in August 1999 and is a Delaware corporation. We develop, market and sell platform, cloud and managed services, which are powered by agentic AI, that enable communications service providers (\u201cCSPs\u201d) of all types and sizes to innovate and transform their businesses to focus on delivering an outstanding subscriber experience and become Communication Experience Providers (\u201cCXPs\u201d). The platform combines the Calix Agent Workforce\u2122 with intelligent appliances, software, cloud and fully integrated SmartLife\u2122 managed services to enable simplified business models that acquire, retain and grow subscribers and revenue. Calix Customer Success guides service providers through every stage of their transformation journey with expertise across technology, business and market insights. Our partner community extends innovation so customers can grow their businesses across markets at scale. With deep broadband expertise and an end-to-end approach from the datacenters\u2019 access edge to every residential, business and municipal subscriber location, Calix enables any service provider to simplify operations, engagement, and service; innovate for their subscribers; and grow value for members, investors, and the communities they serve. This focus on subscriber experience allows CXPs to expand their brand through increased subscriber acquisition, loyalty and revenue while reducing their operating costs.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',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',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 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',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',serif;font-size:10pt;font-weight:400;line-height:120%\">The preparation of financial statements is in conformity with GAAP, which requires management to make estimates and assumptions that affect the amounts reported in the consolidated financial statements and accompanying notes. For Calix, these estimates include, but are not limited to, allowances for doubtful accounts and sales returns, excess and obsolete inventory, allowances for obligations to our contract manufacturers, valuation of stock-based compensation, useful lives assigned to long-lived assets, standard and extended warranty costs, realizability of deferred tax assets and uncertain tax positions and contingencies. Actual results could differ from those estimates, and such differences could be material to our financial position and results of operations.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',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',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 we expect to be entitled to in exchange for those goods or services. Revenue from sales of access and premises appliances is recognized when control is transferred to the customer, which is generally when the products are shipped. Revenue from software platform licenses, which provides the customer with a right to use the software as it exists, is generally recognized upfront when the license is 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',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. Our 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. Cloud-based software subscriptions can include multi-year agreements with a fixed annual fee for a minimum committed usage level. To the extent that minimum committed usage level each year varies, we have concluded that each year represents a distinct stand-ready performance obligation and the transaction price allocated to each performance obligation is recognized as revenue ratably over each annual period.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Our contracts generally include multiple performance obligations. For such arrangements, we allocate 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. </span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Observable prices of a product or service when we sell them separately based on stratification by classes of customers and products are the best estimate of stand-alone selling prices. However, when stand-alone selling prices are not directly observable, they are estimated, and judgment is required in their determination. In these instances, we determine stand-alone selling prices using all other available information, which may include pricing practices relative to geographies, market conditions, competitive landscape, characteristics of targeted customers for hardware products, internal costs and gross margin objectives for services and internal costs and value assessments for subscriptions.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Cost of Revenue</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Cost of revenue consists primarily of finished goods inventory purchased from our 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, allowances for obligations to our contract manufacturers, 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',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',serif;font-size:10pt;font-weight:400;line-height:120%\">We offer limited warranties for our hardware products for a period of <span style=\"-sec-ix-hidden:f-366\">one</span> or five years, depending on the product type. We recognize 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, we also provide fixes on specifically identified performance failures for products that are outside of the standard warranty period and recognize estimated costs related to retrofit activities as a component of cost of revenue upon identification of such product failures. We recognize 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 our estimates are limited to information available to us 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, we may initially have limited information and limited historical failure and claim rates upon which to base our 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 our estimated warranty and retrofit liability when incurred. Factors that affect our 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',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',serif;font-size:10pt;font-weight:400;line-height:120%\">Stock-based compensation expense associated with stock options, restricted stock awards (\u201cRSAs\u201d) and purchase rights under the Amended and Restated Employee Stock Purchase Plan (the \u201cESPP\u201d) and the non-executive Stock Purchase and Matching Plan (\u201cSPMP\u201d) is measured at the grant date based on the 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',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 the employee stock purchase right under the SPMP and RSAs is based on closing market price of our common stock on the date of grant.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Stock-based compensation expense associated with performance stock options (\u201cPSOs\u201d) 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',serif;font-size:10pt;font-weight:400;line-height:120%\">Compensation expense is only recognized if we have determined that it is probable that the performance condition will be met. We reassess the probability of vesting at each reporting period and adjusts compensation expense based on our probability assessment.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:10pt;font-weight:400;line-height:120%\">We occasionally face legal proceedings from business activities. We evaluate the likelihood of an unfavorable outcome and record a loss contingency when the loss is probable and reasonably estimable. This assessment involves significant judgment and uncertainty, influenced by factors beyond our control. We estimate potential losses based on available information and reassesses these estimates quarterly. Changes in estimates could impact our business, operating results or financial condition. Actual outcomes may differ from these estimates, potentially affecting us materially.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:10pt;font-weight:400;line-height:120%\">Financial instruments that potentially subject us 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. We have not experienced any losses in such accounts. We also have approximately $12.4 million of cash held by our foreign subsidiaries in India, China and the United Kingdom. We believe that the financial institutions that hold our 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',serif;font-size:10pt;font-weight:400;line-height:120%\">We depend primarily on a small number of outside contract manufacturers (\u201cCMs\u201d) and original design manufacturers (\u201cODMs\u201d) for the bulk of our finished goods inventory. We generally purchase our products through purchase orders with our suppliers. While we seek to maintain a sufficient supply of our products, our 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 our inability to obtain lower prices from our 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',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',serif;font-size:10pt;font-weight:400;line-height:120%\">The carrying amounts of cash and cash equivalents, trade receivables, accounts payable 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',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',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',serif;font-size:10pt;font-weight:400;line-height:120%\">We have invested our excess cash primarily in money market funds and highly liquid marketable securities such as U.S. treasury securities, corporate debt instruments, commercial paper and U.S. government securities. We consider all investments with maturities of three months or less when purchased to be cash equivalents. Marketable securities represent highly liquid U.S. treasury securities, 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.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Our 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 expense, net.\u201d Realized gains and losses were not significant for the years ended December\u00a031, 2025 and 2024, respectively.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">For our available-for-sale debt securities in an unrealized loss position, we determine whether a credit loss exists. In this assessment, among other factors, we consider the extent to which the fair value is less than the amortized cost, any changes to the rating of the security by a rating agency and adverse conditions specifically related to the security. If factors indicate a credit loss exists, an allowance for credit loss will be recorded to \u201cOther expense, net,\u201d limited by the amount that the fair value is less than the amortized cost basis. The amount of fair value change relating to all other factors will be recognized in other comprehensive loss.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">See Note 2 \u201c</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Cash, Cash Equivalents and Marketable Securities.\u201d</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:10pt;font-weight:400;line-height:120%\">We maintain an allowance for doubtful accounts for expected credit losses at contract inception resulting from the inability of our customers to make required payments. We record a specific allowance and revise the expected loss based on an analysis of individual past-due balances. Additionally, based on historical write-offs and our collection experience, we record an additional allowance based on a percentage of outstanding receivables. We perform credit evaluations of our 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 our estimates, and such differences could be material to our financial position and results of operations.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Inventory Valuation and Supplier Purchase Commitments</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',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) and net realizable value. Inbound shipping costs and tariffs are included in the cost of inventory. In addition, from time to time, we procure component inventory primarily due to the discontinuation of critical components by suppliers, a change in suppliers or in connection with our supply assurance plans. This component inventory is then consigned back to our suppliers to be consumed on future finished good builds.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">We regularly monitor inventory on-hand and record write-downs for excess and obsolete inventory. We also evaluate our supplier purchase commitments and record a liability for excess and obsolete components consistent with the valuation of our excess and obsolete inventory and future production requirements. These write-downs and accruals are based on our assumptions of demand for our products and require significant judgment of relevant factors including a comparison of the quantity and cost of inventory on hand to our estimated forecast of customer demand, current levels of orders and backlog, market conditions, potential obsolescence of technology, product life cycles and whether pricing trends or forecasts indicate that the carrying value of inventory exceeds our estimated selling price. Factors that could influence our assumptions and judgments include changes in economic conditions, competitive dynamics, winning or losing a key customer, changes in our customers\u2019 capital expenditures, government investment programs, technology changes, new product introductions and supply-chain lead times. 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.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Contract Costs</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">We capitalize certain sales commissions related primarily to multi-year cloud-based software subscriptions and extended warranty support contracts.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',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. We classify the unamortized portion of deferred commissions as current or noncurrent based on the timing of when we expects to recognize the expense. The current and noncurrent portions of deferred commissions are included in \u201cPrepaid expenses and other current assets\u201d and \u201cOther assets,\u201d respectively, in our Consolidated Balance Sheets.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',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',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:f-379\">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',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',serif;font-size:10pt;font-weight:400;line-height:120%\">Goodwill was recorded as a result of our acquisitions of Optical Solutions, Inc. in 2006 and Occam Networks, Inc. in 2011. We record 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. We evaluate goodwill on an annual basis as of the end of the second quarter of each fiscal year. We have 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',serif;font-size:10pt;font-weight:400;line-height:120%\">At the end of the second quarter of 2025, we completed our annual goodwill impairment test. Based on our assessment of certain qualitative factors such as market capitalization, we concluded that the fair value of Calix was more likely than not greater than the carrying amount as of July 2, 2025. 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',serif;font-size:10pt;font-weight:400;line-height:120%\">There have been no significant events or changes in circumstances subsequent to the 2025 annual impairment test that would more likely than not indicate that the carrying value of goodwill may have been impaired as of December\u00a031, 2025. There were no impairment losses for goodwill for the years ended December\u00a031, 2025, 2024 or 2023.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:10pt;font-weight:400;line-height:120%\">Deferred revenue results from transactions where we 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',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 a significant financing component.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:10pt;font-weight:400;line-height:120%\">We evaluate our tax positions and estimate our 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 our 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. </span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">In general, deferred tax assets represent future tax benefits to be received when certain expenses previously recognized in our Consolidated Statements of Comprehensive Income (Loss) become deductible expenses under applicable income tax laws or loss or credit carryforwards are utilized. Accordingly, realization of our 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',serif;font-size:10pt;font-weight:400;line-height:120%\">We must assess the likelihood that deferred tax assets will be recovered from future taxable income, and if we determine that recovery is not more likely than not, we must establish a valuation allowance. Management judgment is required in determining our provision for income taxes, deferred tax assets and liabilities and any valuation allowance recorded against our net deferred tax assets.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Newly Adopted Accounting Standards</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Income taxes</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">In December 2023, the FASB issued Accounting Standard Update (\u201cASU\u201d) No. 2023-09, </span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Income Taxes</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">, which prescribes standardized categories and disaggregation of information in the reconciliation of provision for income taxes, requires disclosure of disaggregated income taxes paid and modifies other income tax-related disclosure requirements. We adopted the new standard effective for our 2025 annual reporting period. See footnote \u201c9.  Income Taxes.\u201d</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:10pt;font-weight:400;line-height:120%\">In November 2024, the FASB issued ASU No. 2024-03, </span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Income Statement\u2014Reporting Comprehensive Income\u2014Expense Disaggregation Disclosures</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">, which requires additional disclosure of certain costs and expenses within the notes to the financial statements. The updated standard is effective for our annual periods beginning in 2027 and interim periods beginning in the first quarter of 2028. Early adoption is permitted. We are currently evaluating the impact that the updated standard will have on our financial statement disclosures.</span></div><div style=\"margin-bottom:5pt;margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">In September 2025, the FASB issued ASU No. 2025-06,</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\"> Intangibles\u2014Goodwill and Other\u2014Internal-Use Software (Subtopic 350-40): Targeted Improvements to the Accounting for Internal-Use Software</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">, which clarifies and modernizes the accounting for internal-use software. ASU No. 2025-06 is effective for us in the first quarter of fiscal 2028, with early adoption permitted. The standard permits application of the guidance using a prospective, retrospective, or modified transition approach. We are currently evaluating the impact that the updated standard will have on our financial statement disclosures.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">There have been no other accounting pronouncements or changes in accounting pronouncements that are significant or potentially significant to our Consolidated Financial Statements.</span></div>","language":"en-us"}]},{"name":"rpt:f-371","factDimensions":{"xbrl:concept":"us-gaap:BasisOfAccountingPolicyPolicyTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',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',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 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-372","factDimensions":{"xbrl:concept":"us-gaap:UseOfEstimates","xbrl:period":"2025-01-01T00:00:00/2026-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',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',serif;font-size:10pt;font-weight:400;line-height:120%\">The preparation of financial statements is in conformity with GAAP, which requires management to make estimates and assumptions that affect the amounts reported in the consolidated financial statements and accompanying notes. For Calix, these estimates include, but are not limited to, allowances for doubtful accounts and sales returns, excess and obsolete inventory, allowances for obligations to our contract manufacturers, valuation of stock-based compensation, useful lives assigned to long-lived assets, standard and extended warranty costs, realizability of deferred tax assets and uncertain tax positions and contingencies. Actual results could differ from those estimates, and such differences could be material to our financial position and results of operations.</span></div>","language":"en-us"}]},{"name":"rpt:f-373","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerPolicyTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',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',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 we expect to be entitled to in exchange for those goods or services. Revenue from sales of access and premises appliances is recognized when control is transferred to the customer, which is generally when the products are shipped. Revenue from software platform licenses, which provides the customer with a right to use the software as it exists, is generally recognized upfront when the license is 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',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. Our 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. Cloud-based software subscriptions can include multi-year agreements with a fixed annual fee for a minimum committed usage level. To the extent that minimum committed usage level each year varies, we have concluded that each year represents a distinct stand-ready performance obligation and the transaction price allocated to each performance obligation is recognized as revenue ratably over each annual period.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Our contracts generally include multiple performance obligations. For such arrangements, we allocate 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. </span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Observable prices of a product or service when we sell them separately based on stratification by classes of customers and products are the best estimate of stand-alone selling prices. However, when stand-alone selling prices are not directly observable, they are estimated, and judgment is required in their determination. In these instances, we determine stand-alone selling prices using all other available information, which may include pricing practices relative to geographies, market conditions, competitive landscape, characteristics of targeted customers for hardware products, internal costs and gross margin objectives for services and internal costs and value assessments for subscriptions.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Contract Costs</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">We capitalize certain sales commissions related primarily to multi-year cloud-based software subscriptions and extended warranty support contracts.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',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. We classify the unamortized portion of deferred commissions as current or noncurrent based on the timing of when we expects to recognize the expense. The current and noncurrent portions of deferred commissions are included in \u201cPrepaid expenses and other current assets\u201d and \u201cOther assets,\u201d respectively, in our Consolidated Balance Sheets.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:10pt;font-weight:400;line-height:120%\">Deferred revenue results from transactions where we 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',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 a significant financing component.</span></div>","language":"en-us"}]},{"name":"rpt:f-374","factDimensions":{"xbrl:concept":"us-gaap:CostOfSalesPolicyTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Cost of Revenue</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Cost of revenue consists primarily of finished goods inventory purchased from our 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, allowances for obligations to our contract manufacturers, 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-375","factDimensions":{"xbrl:concept":"us-gaap:StandardProductWarrantyPolicy","xbrl:period":"2025-01-01T00:00:00/2026-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',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',serif;font-size:10pt;font-weight:400;line-height:120%\">We offer limited warranties for our hardware products for a period of <span style=\"-sec-ix-hidden:f-366\">one</span> or five years, depending on the product type. We recognize 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, we also provide fixes on specifically identified performance failures for products that are outside of the standard warranty period and recognize estimated costs related to retrofit activities as a component of cost of revenue upon identification of such product failures. We recognize 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 our estimates are limited to information available to us 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, we may initially have limited information and limited historical failure and claim rates upon which to base our 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 our estimated warranty and retrofit liability when incurred. Factors that affect our 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-376","factDimensions":{"xbrl:concept":"calx:ProductWarrantyPeriod","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","srt:RangeAxis":"srt:MaximumMember"},"factValues":[{"value":"P5Y"}]},{"name":"rpt:f-377","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy","xbrl:period":"2025-01-01T00:00:00/2026-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',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',serif;font-size:10pt;font-weight:400;line-height:120%\">Stock-based compensation expense associated with stock options, restricted stock awards (\u201cRSAs\u201d) and purchase rights under the Amended and Restated Employee Stock Purchase Plan (the \u201cESPP\u201d) and the non-executive Stock Purchase and Matching Plan (\u201cSPMP\u201d) is measured at the grant date based on the 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',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 the employee stock purchase right under the SPMP and RSAs is based on closing market price of our common stock on the date of grant.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Stock-based compensation expense associated with performance stock options (\u201cPSOs\u201d) 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',serif;font-size:10pt;font-weight:400;line-height:120%\">Compensation expense is only recognized if we have determined that it is probable that the performance condition will be met. We reassess the probability of vesting at each reporting period and adjusts compensation expense based on our probability assessment.</span></div>","language":"en-us"}]},{"name":"rpt:f-378","factDimensions":{"xbrl:concept":"us-gaap:CommitmentsAndContingenciesPolicyTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',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',serif;font-size:10pt;font-weight:400;line-height:120%\">We occasionally face legal proceedings from business activities. We evaluate the likelihood of an unfavorable outcome and record a loss contingency when the loss is probable and reasonably estimable. This assessment involves significant judgment and uncertainty, influenced by factors beyond our control. We estimate potential losses based on available information and reassesses these estimates quarterly. Changes in estimates could impact our business, operating results or financial condition. Actual outcomes may differ from these estimates, potentially affecting us materially.</span></div>","language":"en-us"}]},{"name":"rpt:f-379","factDimensions":{"xbrl:concept":"us-gaap:ConcentrationRiskCreditRisk","xbrl:period":"2025-01-01T00:00:00/2026-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',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',serif;font-size:10pt;font-weight:400;line-height:120%\">Financial instruments that potentially subject us 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. We have not experienced any losses in such accounts. We also have approximately $12.4 million of cash held by our foreign subsidiaries in India, China and the United Kingdom. We believe that the financial institutions that hold our 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',serif;font-size:10pt;font-weight:400;line-height:120%\">We depend primarily on a small number of outside contract manufacturers (\u201cCMs\u201d) and original design manufacturers (\u201cODMs\u201d) for the bulk of our finished goods inventory. We generally purchase our products through purchase orders with our suppliers. While we seek to maintain a sufficient supply of our products, our 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 our inability to obtain lower prices from our CMs, ODMs and other suppliers in response to competitive pressures.</span></div>","language":"en-us"}]},{"name":"rpt:f-380","factDimensions":{"xbrl:concept":"us-gaap:Cash","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"calx:BrazilChinaAndUnitedKingdomMember","srt:ConsolidatedEntitiesAxis":"srt:SubsidiariesMember"},"factValues":[{"value":"12400000","decimals":-5}]},{"name":"rpt:f-381","factDimensions":{"xbrl:concept":"us-gaap:FairValueOfFinancialInstrumentsPolicy","xbrl:period":"2025-01-01T00:00:00/2026-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',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',serif;font-size:10pt;font-weight:400;line-height:120%\">The carrying amounts of cash and cash equivalents, trade receivables, accounts payable 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-382","factDimensions":{"xbrl:concept":"calx:CashCashEquivalentsAndMarketableSecuritiesPolicyPolicyTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',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',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',serif;font-size:10pt;font-weight:400;line-height:120%\">We have invested our excess cash primarily in money market funds and highly liquid marketable securities such as U.S. treasury securities, corporate debt instruments, commercial paper and U.S. government securities. We consider all investments with maturities of three months or less when purchased to be cash equivalents. Marketable securities represent highly liquid U.S. treasury securities, 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.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Our 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 expense, net.\u201d Realized gains and losses were not significant for the years ended December\u00a031, 2025 and 2024, respectively.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">For our available-for-sale debt securities in an unrealized loss position, we determine whether a credit loss exists. In this assessment, among other factors, we consider the extent to which the fair value is less than the amortized cost, any changes to the rating of the security by a rating agency and adverse conditions specifically related to the security. If factors indicate a credit loss exists, an allowance for credit loss will be recorded to \u201cOther expense, net,\u201d limited by the amount that the fair value is less than the amortized cost basis. The amount of fair value change relating to all other factors will be recognized in other comprehensive loss.</span></div>","language":"en-us"}]},{"name":"rpt:f-383","factDimensions":{"xbrl:concept":"us-gaap:CreditLossFinancialInstrumentPolicyTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',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',serif;font-size:10pt;font-weight:400;line-height:120%\">We maintain an allowance for doubtful accounts for expected credit losses at contract inception resulting from the inability of our customers to make required payments. We record a specific allowance and revise the expected loss based on an analysis of individual past-due balances. Additionally, based on historical write-offs and our collection experience, we record an additional allowance based on a percentage of outstanding receivables. We perform credit evaluations of our 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 our estimates, and such differences could be material to our financial position and results of operations.</span></div>","language":"en-us"}]},{"name":"rpt:f-384","factDimensions":{"xbrl:concept":"us-gaap:InventoryPolicyTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Inventory Valuation and Supplier Purchase Commitments</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',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) and net realizable value. Inbound shipping costs and tariffs are included in the cost of inventory. In addition, from time to time, we procure component inventory primarily due to the discontinuation of critical components by suppliers, a change in suppliers or in connection with our supply assurance plans. This component inventory is then consigned back to our suppliers to be consumed on future finished good builds.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">We regularly monitor inventory on-hand and record write-downs for excess and obsolete inventory. We also evaluate our supplier purchase commitments and record a liability for excess and obsolete components consistent with the valuation of our excess and obsolete inventory and future production requirements. These write-downs and accruals are based on our assumptions of demand for our products and require significant judgment of relevant factors including a comparison of the quantity and cost of inventory on hand to our estimated forecast of customer demand, current levels of orders and backlog, market conditions, potential obsolescence of technology, product life cycles and whether pricing trends or forecasts indicate that the carrying value of inventory exceeds our estimated selling price. Factors that could influence our assumptions and judgments include changes in economic conditions, competitive dynamics, winning or losing a key customer, changes in our customers\u2019 capital expenditures, government investment programs, technology changes, new product introductions and supply-chain lead times. 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.</span></div>","language":"en-us"}]},{"name":"rpt:f-385","factDimensions":{"xbrl:concept":"us-gaap:CapitalizedContractCostAmortizationPeriod","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"P5Y"}]},{"name":"rpt:f-386","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentPolicyTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',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',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:f-379\">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-387","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentUsefulLife","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:ComputerEquipmentMember"},"factValues":[{"value":"P2Y"}]},{"name":"rpt:f-388","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentUsefulLife","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","srt:RangeAxis":"srt:MaximumMember","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"calx:SoftwareMember"},"factValues":[{"value":"P5Y"}]},{"name":"rpt:f-389","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentUsefulLife","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:EquipmentMember"},"factValues":[{"value":"P3Y"}]},{"name":"rpt:f-390","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentUsefulLife","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:FurnitureAndFixturesMember"},"factValues":[{"value":"P7Y"}]},{"name":"rpt:f-391","factDimensions":{"xbrl:concept":"us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy","xbrl:period":"2025-01-01T00:00:00/2026-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',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',serif;font-size:10pt;font-weight:400;line-height:120%\">Goodwill was recorded as a result of our acquisitions of Optical Solutions, Inc. in 2006 and Occam Networks, Inc. in 2011. We record 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. We evaluate goodwill on an annual basis as of the end of the second quarter of each fiscal year. We have 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',serif;font-size:10pt;font-weight:400;line-height:120%\">At the end of the second quarter of 2025, we completed our annual goodwill impairment test. Based on our assessment of certain qualitative factors such as market capitalization, we concluded that the fair value of Calix was more likely than not greater than the carrying amount as of July 2, 2025. As such, it was not necessary to perform the two-step quantitative goodwill impairment test at the time.</span></div>","language":"en-us"}]},{"name":"rpt:f-392","factDimensions":{"xbrl:concept":"us-gaap:GoodwillImpairmentLoss","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0"}]},{"name":"rpt:f-393","factDimensions":{"xbrl:concept":"us-gaap:GoodwillImpairmentLoss","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0"}]},{"name":"rpt:f-394","factDimensions":{"xbrl:concept":"us-gaap:GoodwillImpairmentLoss","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0"}]},{"name":"rpt:f-395","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxPolicyTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',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',serif;font-size:10pt;font-weight:400;line-height:120%\">We evaluate our tax positions and estimate our 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 our 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. </span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">In general, deferred tax assets represent future tax benefits to be received when certain expenses previously recognized in our Consolidated Statements of Comprehensive Income (Loss) become deductible expenses under applicable income tax laws or loss or credit carryforwards are utilized. Accordingly, realization of our 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',serif;font-size:10pt;font-weight:400;line-height:120%\">We must assess the likelihood that deferred tax assets will be recovered from future taxable income, and if we determine that recovery is not more likely than not, we must establish a valuation allowance. Management judgment is required in determining our provision for income taxes, deferred tax assets and liabilities and any valuation allowance recorded against our net deferred tax assets.</span></div>","language":"en-us"}]},{"name":"rpt:f-396","factDimensions":{"xbrl:concept":"us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Newly Adopted Accounting Standards</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Income taxes</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">In December 2023, the FASB issued Accounting Standard Update (\u201cASU\u201d) No. 2023-09, </span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Income Taxes</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">, which prescribes standardized categories and disaggregation of information in the reconciliation of provision for income taxes, requires disclosure of disaggregated income taxes paid and modifies other income tax-related disclosure requirements. We adopted the new standard effective for our 2025 annual reporting period. See footnote \u201c9.  Income Taxes.\u201d</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:10pt;font-weight:400;line-height:120%\">In November 2024, the FASB issued ASU No. 2024-03, </span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Income Statement\u2014Reporting Comprehensive Income\u2014Expense Disaggregation Disclosures</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">, which requires additional disclosure of certain costs and expenses within the notes to the financial statements. The updated standard is effective for our annual periods beginning in 2027 and interim periods beginning in the first quarter of 2028. Early adoption is permitted. We are currently evaluating the impact that the updated standard will have on our financial statement disclosures.</span></div><div style=\"margin-bottom:5pt;margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">In September 2025, the FASB issued ASU No. 2025-06,</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\"> Intangibles\u2014Goodwill and Other\u2014Internal-Use Software (Subtopic 350-40): Targeted Improvements to the Accounting for Internal-Use Software</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">, which clarifies and modernizes the accounting for internal-use software. ASU No. 2025-06 is effective for us in the first quarter of fiscal 2028, with early adoption permitted. The standard permits application of the guidance using a prospective, retrospective, or modified transition approach. We are currently evaluating the impact that the updated standard will have on our financial statement disclosures.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">There have been no other accounting pronouncements or changes in accounting pronouncements that are significant or potentially significant to our Consolidated Financial Statements.</span></div>","language":"en-us"}]},{"name":"rpt:f-397","factDimensions":{"xbrl:concept":"us-gaap:CashCashEquivalentsAndMarketableSecuritiesTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"Cash, Cash Equivalents and Marketable Securities<div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Cash, cash equivalents and marketable securities consisted of the following (in thousands):</span></div><div style=\"margin-top:5pt;text-indent:22.5pt\"><span><br/></span></div><div style=\"margin-top:5pt;text-indent:22.5pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;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',serif;font-size:8pt;font-weight:700;line-height:100%\">December 31,</span></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=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:8pt;font-weight:700;line-height:100%\">2025</span></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:8pt;font-weight:700;line-height:100%\">2024</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',serif;font-size:9pt;font-weight:400;line-height:100%\">Cash and cash equivalents:</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000;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 #000;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',serif;font-size:9pt;font-weight:400;line-height:100%\">Cash</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">23,644\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">20,664\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Commercial paper</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',serif;font-size:9pt;font-weight:400;line-height:100%\">75,100\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',serif;font-size:9pt;font-weight:400;line-height:100%\">10,058\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Money market funds</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',serif;font-size:9pt;font-weight:400;line-height:100%\">40,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',serif;font-size:9pt;font-weight:400;line-height:100%\">4,890\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',serif;font-size:9pt;font-weight:400;line-height:100%\">U.S. government agency securities</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',serif;font-size:9pt;font-weight:400;line-height:100%\">3,463\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',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 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">7,550\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Total cash and cash equivalents</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',serif;font-size:9pt;font-weight:400;line-height:100%\">143,086\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',serif;font-size:9pt;font-weight:400;line-height:100%\">43,162\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><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',serif;font-size:9pt;font-weight:400;line-height:100%\">Marketable securities:</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #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:1pt solid #000;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',serif;font-size:9pt;font-weight:400;line-height:100%\">Corporate debt securities</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',serif;font-size:9pt;font-weight:400;line-height:100%\">177,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=\"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',serif;font-size:9pt;font-weight:400;line-height:100%\">123,701\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">40,510\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',serif;font-size:9pt;font-weight:400;line-height:100%\">66,582\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Commercial paper</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',serif;font-size:9pt;font-weight:400;line-height:100%\">9,653\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',serif;font-size:9pt;font-weight:400;line-height:100%\">22,715\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',serif;font-size:9pt;font-weight:400;line-height:100%\">U.S. government agency 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',serif;font-size:9pt;font-weight:400;line-height:100%\">9,027\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',serif;font-size:9pt;font-weight:400;line-height:100%\">24,411\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Certificates of deposit</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',serif;font-size:9pt;font-weight:400;line-height:100%\">8,701\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',serif;font-size:9pt;font-weight:400;line-height:100%\">16,520\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Total marketable securities</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',serif;font-size:9pt;font-weight:400;line-height:100%\">245,018\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',serif;font-size:9pt;font-weight:400;line-height:100%\">253,929\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: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 #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:9pt;font-weight:400;line-height:100%\">388,104\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">297,091\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:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The carrying amounts of our money market funds approximate their fair values due to their nature, duration and short maturities. As of December\u00a031, 2025, all marketable securities were due in three years or less.</span></div><div style=\"margin-top:12pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The amortized cost and fair value of marketable securities as of December\u00a031, 2025 were as follows (in thousands):</span></div><div style=\"margin-top:7pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:45.245%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:2.139%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:14.835%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.554%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:14.835%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.554%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:14.838%\"></td><td style=\"width:0.1%\"></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=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:8pt;font-weight:700;line-height:100%\">Amortized Cost</span></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',serif;font-size:8pt;font-weight:700;line-height:100%\">Gross Unrealized Gains, net</span></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',serif;font-size:8pt;font-weight:700;line-height:100%\">Fair Value</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',serif;font-size:9pt;font-weight:400;line-height:100%\">Corporate debt securities</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;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',serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">176,572\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;border-top:1pt solid #000;padding:0 1pt\"></td><td style=\"background-color:#ffffff;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',serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">555\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 style=\"background-color:#ffffff;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',serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">177,127\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><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',serif;font-size:9pt;font-weight:400;line-height:100%\">Commercial paper</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',serif;font-size:9pt;font-weight:400;line-height:100%\">84,752\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',serif;font-size:9pt;font-weight:400;line-height:100%\">1\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',serif;font-size:9pt;font-weight:400;line-height:100%\">84,753\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',serif;font-size:9pt;font-weight:400;line-height:100%\">U.S. government securities</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',serif;font-size:9pt;font-weight:400;line-height:100%\">40,382\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',serif;font-size:9pt;font-weight:400;line-height:100%\">128\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',serif;font-size:9pt;font-weight:400;line-height:100%\">40,510\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',serif;font-size:9pt;font-weight:400;line-height:100%\">U.S. government agency 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',serif;font-size:9pt;font-weight:400;line-height:100%\">12,465\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',serif;font-size:9pt;font-weight:400;line-height:100%\">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=\"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',serif;font-size:9pt;font-weight:400;line-height:100%\">12,490\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Certificates of deposit</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',serif;font-size:9pt;font-weight:400;line-height:100%\">8,692\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',serif;font-size:9pt;font-weight:400;line-height:100%\">9\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',serif;font-size:9pt;font-weight:400;line-height:100%\">8,701\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">322,863\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">718\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">323,581\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><div style=\"margin-top:12pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The amortized cost and fair value of marketable securities as of December\u00a031, 2024 were as follows (in thousands):</span></div><div style=\"margin-top:7pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:45.245%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:2.139%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:14.835%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.554%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:14.835%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.554%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:14.838%\"></td><td style=\"width:0.1%\"></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=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:8pt;font-weight:700;line-height:100%\">Amortized Cost</span></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',serif;font-size:8pt;font-weight:700;line-height:100%\">Gross Unrealized Gains, net</span></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',serif;font-size:8pt;font-weight:700;line-height:100%\">Fair Value</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',serif;font-size:9pt;font-weight:400;line-height:100%\">Corporate debt securities</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;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',serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">123,519\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;border-top:1pt solid #000;padding:0 1pt\"></td><td style=\"background-color:#ffffff;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',serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">182\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 style=\"background-color:#ffffff;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',serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">123,701\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><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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">74,118\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">74,132\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',serif;font-size:9pt;font-weight:400;line-height:100%\">U.S. government agency securities</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',serif;font-size:9pt;font-weight:400;line-height:100%\">24,380\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',serif;font-size:9pt;font-weight:400;line-height:100%\">31\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',serif;font-size:9pt;font-weight:400;line-height:100%\">24,411\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Certificates of deposit</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',serif;font-size:9pt;font-weight:400;line-height:100%\">16,505\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',serif;font-size:9pt;font-weight:400;line-height:100%\">15\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',serif;font-size:9pt;font-weight:400;line-height:100%\">16,520\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Commercial paper</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',serif;font-size:9pt;font-weight:400;line-height:100%\">32,766\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',serif;font-size:9pt;font-weight:400;line-height:100%\">7\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',serif;font-size:9pt;font-weight:400;line-height:100%\">32,773\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">271,288\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">249\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">271,537\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-398","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfCashAndCashEquivalentsTableTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',serif;font-size:10pt;font-weight:400;line-height:120%\">Cash, cash equivalents and marketable securities consisted of the following (in thousands):</span></div><div style=\"margin-top:5pt;text-indent:22.5pt\"><span><br/></span></div><div style=\"margin-top:5pt;text-indent:22.5pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;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',serif;font-size:8pt;font-weight:700;line-height:100%\">December 31,</span></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=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:8pt;font-weight:700;line-height:100%\">2025</span></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:8pt;font-weight:700;line-height:100%\">2024</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',serif;font-size:9pt;font-weight:400;line-height:100%\">Cash and cash equivalents:</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000;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 #000;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',serif;font-size:9pt;font-weight:400;line-height:100%\">Cash</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">23,644\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">20,664\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Commercial paper</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',serif;font-size:9pt;font-weight:400;line-height:100%\">75,100\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',serif;font-size:9pt;font-weight:400;line-height:100%\">10,058\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Money market funds</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',serif;font-size:9pt;font-weight:400;line-height:100%\">40,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',serif;font-size:9pt;font-weight:400;line-height:100%\">4,890\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',serif;font-size:9pt;font-weight:400;line-height:100%\">U.S. government agency securities</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',serif;font-size:9pt;font-weight:400;line-height:100%\">3,463\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',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 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">7,550\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Total cash and cash equivalents</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',serif;font-size:9pt;font-weight:400;line-height:100%\">143,086\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',serif;font-size:9pt;font-weight:400;line-height:100%\">43,162\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><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',serif;font-size:9pt;font-weight:400;line-height:100%\">Marketable securities:</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #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:1pt solid #000;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',serif;font-size:9pt;font-weight:400;line-height:100%\">Corporate debt securities</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',serif;font-size:9pt;font-weight:400;line-height:100%\">177,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=\"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',serif;font-size:9pt;font-weight:400;line-height:100%\">123,701\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">40,510\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',serif;font-size:9pt;font-weight:400;line-height:100%\">66,582\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Commercial paper</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',serif;font-size:9pt;font-weight:400;line-height:100%\">9,653\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',serif;font-size:9pt;font-weight:400;line-height:100%\">22,715\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',serif;font-size:9pt;font-weight:400;line-height:100%\">U.S. government agency 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',serif;font-size:9pt;font-weight:400;line-height:100%\">9,027\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',serif;font-size:9pt;font-weight:400;line-height:100%\">24,411\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Certificates of deposit</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',serif;font-size:9pt;font-weight:400;line-height:100%\">8,701\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',serif;font-size:9pt;font-weight:400;line-height:100%\">16,520\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Total marketable securities</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',serif;font-size:9pt;font-weight:400;line-height:100%\">245,018\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',serif;font-size:9pt;font-weight:400;line-height:100%\">253,929\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: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 #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:9pt;font-weight:400;line-height:100%\">388,104\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">297,091\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-399","factDimensions":{"xbrl:concept":"us-gaap:Cash","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:CashAndCashEquivalentsAxis":"us-gaap:CashMember"},"factValues":[{"value":"23644000","decimals":-3}]},{"name":"rpt:f-400","factDimensions":{"xbrl:concept":"us-gaap:Cash","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:CashAndCashEquivalentsAxis":"us-gaap:CashMember"},"factValues":[{"value":"20664000","decimals":-3}]},{"name":"rpt:f-401","factDimensions":{"xbrl:concept":"us-gaap:CashEquivalentsAtCarryingValue","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:CashAndCashEquivalentsAxis":"us-gaap:CommercialPaperMember"},"factValues":[{"value":"75100000","decimals":-3}]},{"name":"rpt:f-402","factDimensions":{"xbrl:concept":"us-gaap:CashEquivalentsAtCarryingValue","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:CashAndCashEquivalentsAxis":"us-gaap:CommercialPaperMember"},"factValues":[{"value":"10058000","decimals":-3}]},{"name":"rpt:f-403","factDimensions":{"xbrl:concept":"us-gaap:CashEquivalentsAtCarryingValue","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:CashAndCashEquivalentsAxis":"us-gaap:MoneyMarketFundsMember"},"factValues":[{"value":"40879000","decimals":-3}]},{"name":"rpt:f-404","factDimensions":{"xbrl:concept":"us-gaap:CashEquivalentsAtCarryingValue","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:CashAndCashEquivalentsAxis":"us-gaap:MoneyMarketFundsMember"},"factValues":[{"value":"4890000","decimals":-3}]},{"name":"rpt:f-405","factDimensions":{"xbrl:concept":"us-gaap:CashEquivalentsAtCarryingValue","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:CashAndCashEquivalentsAxis":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember"},"factValues":[{"value":"3463000","decimals":-3}]},{"name":"rpt:f-406","factDimensions":{"xbrl:concept":"us-gaap:CashEquivalentsAtCarryingValue","xbrl:period":"2025-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-407","factDimensions":{"xbrl:concept":"us-gaap:CashEquivalentsAtCarryingValue","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:CashAndCashEquivalentsAxis":"us-gaap:USGovernmentDebtSecuritiesMember"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-408","factDimensions":{"xbrl:concept":"us-gaap:CashEquivalentsAtCarryingValue","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:CashAndCashEquivalentsAxis":"us-gaap:USGovernmentDebtSecuritiesMember"},"factValues":[{"value":"7550000","decimals":-3}]},{"name":"rpt:f-409","factDimensions":{"xbrl:concept":"us-gaap:CashAndCashEquivalentsAtCarryingValue","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"143086000","decimals":-3}]},{"name":"rpt:f-410","factDimensions":{"xbrl:concept":"us-gaap:CashAndCashEquivalentsAtCarryingValue","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"43162000","decimals":-3}]},{"name":"rpt:f-411","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:CorporateDebtSecuritiesMember"},"factValues":[{"value":"177127000","decimals":-3}]},{"name":"rpt:f-412","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:CorporateDebtSecuritiesMember"},"factValues":[{"value":"123701000","decimals":-3}]},{"name":"rpt:f-413","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:USGovernmentDebtSecuritiesMember"},"factValues":[{"value":"40510000","decimals":-3}]},{"name":"rpt:f-414","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:USGovernmentDebtSecuritiesMember"},"factValues":[{"value":"66582000","decimals":-3}]},{"name":"rpt:f-415","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:CommercialPaperMember"},"factValues":[{"value":"9653000","decimals":-3}]},{"name":"rpt:f-416","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:CommercialPaperMember"},"factValues":[{"value":"22715000","decimals":-3}]},{"name":"rpt:f-417","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember"},"factValues":[{"value":"9027000","decimals":-3}]},{"name":"rpt:f-418","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember"},"factValues":[{"value":"24411000","decimals":-3}]},{"name":"rpt:f-419","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:MunicipalNotesMember"},"factValues":[{"value":"8701000","decimals":-3}]},{"name":"rpt:f-420","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:MunicipalNotesMember"},"factValues":[{"value":"16520000","decimals":-3}]},{"name":"rpt:f-421","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"245018000","decimals":-3}]},{"name":"rpt:f-422","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"253929000","decimals":-3}]},{"name":"rpt:f-423","factDimensions":{"xbrl:concept":"calx:CashCashEquivalentsAndMarketableSecurities","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"388104000","decimals":-3}]},{"name":"rpt:f-424","factDimensions":{"xbrl:concept":"calx:CashCashEquivalentsAndMarketableSecurities","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"297091000","decimals":-3}]},{"name":"rpt:f-425","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleTerm","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","srt:RangeAxis":"srt:MaximumMember"},"factValues":[{"value":"P3Y"}]},{"name":"rpt:f-426","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleTableTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',serif;font-size:10pt;font-weight:400;line-height:120%\">The amortized cost and fair value of marketable securities as of December\u00a031, 2025 were as follows (in thousands):</span></div><div style=\"margin-top:7pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:45.245%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:2.139%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:14.835%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.554%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:14.835%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.554%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:14.838%\"></td><td style=\"width:0.1%\"></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=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:8pt;font-weight:700;line-height:100%\">Amortized Cost</span></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',serif;font-size:8pt;font-weight:700;line-height:100%\">Gross Unrealized Gains, net</span></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',serif;font-size:8pt;font-weight:700;line-height:100%\">Fair Value</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',serif;font-size:9pt;font-weight:400;line-height:100%\">Corporate debt securities</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;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',serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">176,572\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;border-top:1pt solid #000;padding:0 1pt\"></td><td style=\"background-color:#ffffff;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',serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">555\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 style=\"background-color:#ffffff;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',serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">177,127\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><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',serif;font-size:9pt;font-weight:400;line-height:100%\">Commercial paper</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',serif;font-size:9pt;font-weight:400;line-height:100%\">84,752\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',serif;font-size:9pt;font-weight:400;line-height:100%\">1\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',serif;font-size:9pt;font-weight:400;line-height:100%\">84,753\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',serif;font-size:9pt;font-weight:400;line-height:100%\">U.S. government securities</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',serif;font-size:9pt;font-weight:400;line-height:100%\">40,382\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',serif;font-size:9pt;font-weight:400;line-height:100%\">128\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',serif;font-size:9pt;font-weight:400;line-height:100%\">40,510\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',serif;font-size:9pt;font-weight:400;line-height:100%\">U.S. government agency 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',serif;font-size:9pt;font-weight:400;line-height:100%\">12,465\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',serif;font-size:9pt;font-weight:400;line-height:100%\">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=\"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',serif;font-size:9pt;font-weight:400;line-height:100%\">12,490\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Certificates of deposit</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',serif;font-size:9pt;font-weight:400;line-height:100%\">8,692\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',serif;font-size:9pt;font-weight:400;line-height:100%\">9\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',serif;font-size:9pt;font-weight:400;line-height:100%\">8,701\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">322,863\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">718\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">323,581\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><div style=\"margin-top:12pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The amortized cost and fair value of marketable securities as of December\u00a031, 2024 were as follows (in thousands):</span></div><div style=\"margin-top:7pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:45.245%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:2.139%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:14.835%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.554%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:14.835%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.554%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:14.838%\"></td><td style=\"width:0.1%\"></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=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:8pt;font-weight:700;line-height:100%\">Amortized Cost</span></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',serif;font-size:8pt;font-weight:700;line-height:100%\">Gross Unrealized Gains, net</span></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',serif;font-size:8pt;font-weight:700;line-height:100%\">Fair Value</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',serif;font-size:9pt;font-weight:400;line-height:100%\">Corporate debt securities</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;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',serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">123,519\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;border-top:1pt solid #000;padding:0 1pt\"></td><td style=\"background-color:#ffffff;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',serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">182\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 style=\"background-color:#ffffff;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',serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">123,701\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><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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">74,118\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">74,132\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',serif;font-size:9pt;font-weight:400;line-height:100%\">U.S. government agency securities</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',serif;font-size:9pt;font-weight:400;line-height:100%\">24,380\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',serif;font-size:9pt;font-weight:400;line-height:100%\">31\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',serif;font-size:9pt;font-weight:400;line-height:100%\">24,411\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Certificates of deposit</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',serif;font-size:9pt;font-weight:400;line-height:100%\">16,505\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',serif;font-size:9pt;font-weight:400;line-height:100%\">15\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',serif;font-size:9pt;font-weight:400;line-height:100%\">16,520\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Commercial paper</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',serif;font-size:9pt;font-weight:400;line-height:100%\">32,766\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',serif;font-size:9pt;font-weight:400;line-height:100%\">7\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',serif;font-size:9pt;font-weight:400;line-height:100%\">32,773\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">271,288\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">249\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">271,537\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-427","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLossCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:CorporateDebtSecuritiesMember","us-gaap:BalanceSheetLocationAxis":"calx:ShortTermMarketableSecuritiesMember"},"factValues":[{"value":"176572000","decimals":-3}]},{"name":"rpt:f-428","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleAccumulatedGrossUnrealizedGainLossBeforeTax","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:CorporateDebtSecuritiesMember","us-gaap:BalanceSheetLocationAxis":"calx:ShortTermMarketableSecuritiesMember"},"factValues":[{"value":"555000","decimals":-3}]},{"name":"rpt:f-429","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:CorporateDebtSecuritiesMember","us-gaap:BalanceSheetLocationAxis":"calx:ShortTermMarketableSecuritiesMember"},"factValues":[{"value":"177127000","decimals":-3}]},{"name":"rpt:f-430","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLossCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:CommercialPaperMember","us-gaap:BalanceSheetLocationAxis":"calx:ShortTermMarketableSecuritiesAndCashEquivalentsMember"},"factValues":[{"value":"84752000","decimals":-3}]},{"name":"rpt:f-431","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleAccumulatedGrossUnrealizedGainLossBeforeTax","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:CommercialPaperMember","us-gaap:BalanceSheetLocationAxis":"calx:ShortTermMarketableSecuritiesAndCashEquivalentsMember"},"factValues":[{"value":"1000","decimals":-3}]},{"name":"rpt:f-432","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:CommercialPaperMember","us-gaap:BalanceSheetLocationAxis":"calx:ShortTermMarketableSecuritiesAndCashEquivalentsMember"},"factValues":[{"value":"84753000","decimals":-3}]},{"name":"rpt:f-433","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLossCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:USGovernmentDebtSecuritiesMember","us-gaap:BalanceSheetLocationAxis":"calx:ShortTermMarketableSecuritiesAndCashEquivalentsMember"},"factValues":[{"value":"40382000","decimals":-3}]},{"name":"rpt:f-434","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleAccumulatedGrossUnrealizedGainLossBeforeTax","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:USGovernmentDebtSecuritiesMember","us-gaap:BalanceSheetLocationAxis":"calx:ShortTermMarketableSecuritiesAndCashEquivalentsMember"},"factValues":[{"value":"128000","decimals":-3}]},{"name":"rpt:f-435","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:USGovernmentDebtSecuritiesMember","us-gaap:BalanceSheetLocationAxis":"calx:ShortTermMarketableSecuritiesAndCashEquivalentsMember"},"factValues":[{"value":"40510000","decimals":-3}]},{"name":"rpt:f-436","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLossCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember","us-gaap:BalanceSheetLocationAxis":"calx:ShortTermMarketableSecuritiesMember"},"factValues":[{"value":"12465000","decimals":-3}]},{"name":"rpt:f-437","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleAccumulatedGrossUnrealizedGainLossBeforeTax","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember","us-gaap:BalanceSheetLocationAxis":"calx:ShortTermMarketableSecuritiesMember"},"factValues":[{"value":"25000","decimals":-3}]},{"name":"rpt:f-438","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember","us-gaap:BalanceSheetLocationAxis":"calx:ShortTermMarketableSecuritiesMember"},"factValues":[{"value":"12490000","decimals":-3}]},{"name":"rpt:f-439","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLossCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:MunicipalNotesMember","us-gaap:BalanceSheetLocationAxis":"calx:ShortTermMarketableSecuritiesMember"},"factValues":[{"value":"8692000","decimals":-3}]},{"name":"rpt:f-440","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleAccumulatedGrossUnrealizedGainLossBeforeTax","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:MunicipalNotesMember","us-gaap:BalanceSheetLocationAxis":"calx:ShortTermMarketableSecuritiesMember"},"factValues":[{"value":"9000","decimals":-3}]},{"name":"rpt:f-441","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:MunicipalNotesMember","us-gaap:BalanceSheetLocationAxis":"calx:ShortTermMarketableSecuritiesMember"},"factValues":[{"value":"8701000","decimals":-3}]},{"name":"rpt:f-442","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLossCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:BalanceSheetLocationAxis":"calx:ShortTermMarketableSecuritiesAndCashEquivalentsMember"},"factValues":[{"value":"322863000","decimals":-3}]},{"name":"rpt:f-443","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleAccumulatedGrossUnrealizedGainLossBeforeTax","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:BalanceSheetLocationAxis":"calx:ShortTermMarketableSecuritiesAndCashEquivalentsMember"},"factValues":[{"value":"718000","decimals":-3}]},{"name":"rpt:f-444","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:BalanceSheetLocationAxis":"calx:ShortTermMarketableSecuritiesAndCashEquivalentsMember"},"factValues":[{"value":"323581000","decimals":-3}]},{"name":"rpt:f-445","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLossCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:CorporateDebtSecuritiesMember","us-gaap:BalanceSheetLocationAxis":"calx:ShortTermMarketableSecuritiesAndCashEquivalentsMember"},"factValues":[{"value":"123519000","decimals":-3}]},{"name":"rpt:f-446","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleAccumulatedGrossUnrealizedGainLossBeforeTax","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:CorporateDebtSecuritiesMember","us-gaap:BalanceSheetLocationAxis":"calx:ShortTermMarketableSecuritiesAndCashEquivalentsMember"},"factValues":[{"value":"182000","decimals":-3}]},{"name":"rpt:f-447","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:CorporateDebtSecuritiesMember","us-gaap:BalanceSheetLocationAxis":"calx:ShortTermMarketableSecuritiesAndCashEquivalentsMember"},"factValues":[{"value":"123701000","decimals":-3}]},{"name":"rpt:f-448","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLossCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:USGovernmentDebtSecuritiesMember","us-gaap:BalanceSheetLocationAxis":"calx:ShortTermMarketableSecuritiesAndCashEquivalentsMember"},"factValues":[{"value":"74118000","decimals":-3}]},{"name":"rpt:f-449","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleAccumulatedGrossUnrealizedGainLossBeforeTax","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:USGovernmentDebtSecuritiesMember","us-gaap:BalanceSheetLocationAxis":"calx:ShortTermMarketableSecuritiesAndCashEquivalentsMember"},"factValues":[{"value":"14000","decimals":-3}]},{"name":"rpt:f-450","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:USGovernmentDebtSecuritiesMember","us-gaap:BalanceSheetLocationAxis":"calx:ShortTermMarketableSecuritiesAndCashEquivalentsMember"},"factValues":[{"value":"74132000","decimals":-3}]},{"name":"rpt:f-451","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLossCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember","us-gaap:BalanceSheetLocationAxis":"calx:ShortTermMarketableSecuritiesMember"},"factValues":[{"value":"24380000","decimals":-3}]},{"name":"rpt:f-452","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleAccumulatedGrossUnrealizedGainLossBeforeTax","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember","us-gaap:BalanceSheetLocationAxis":"calx:ShortTermMarketableSecuritiesMember"},"factValues":[{"value":"31000","decimals":-3}]},{"name":"rpt:f-453","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember","us-gaap:BalanceSheetLocationAxis":"calx:ShortTermMarketableSecuritiesMember"},"factValues":[{"value":"24411000","decimals":-3}]},{"name":"rpt:f-454","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLossCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:MunicipalNotesMember","us-gaap:BalanceSheetLocationAxis":"calx:ShortTermMarketableSecuritiesMember"},"factValues":[{"value":"16505000","decimals":-3}]},{"name":"rpt:f-455","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleAccumulatedGrossUnrealizedGainLossBeforeTax","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:MunicipalNotesMember","us-gaap:BalanceSheetLocationAxis":"calx:ShortTermMarketableSecuritiesMember"},"factValues":[{"value":"15000","decimals":-3}]},{"name":"rpt:f-456","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:MunicipalNotesMember","us-gaap:BalanceSheetLocationAxis":"calx:ShortTermMarketableSecuritiesMember"},"factValues":[{"value":"16520000","decimals":-3}]},{"name":"rpt:f-457","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLossCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:CommercialPaperMember","us-gaap:BalanceSheetLocationAxis":"calx:ShortTermMarketableSecuritiesMember"},"factValues":[{"value":"32766000","decimals":-3}]},{"name":"rpt:f-458","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleAccumulatedGrossUnrealizedGainLossBeforeTax","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:CommercialPaperMember","us-gaap:BalanceSheetLocationAxis":"calx:ShortTermMarketableSecuritiesMember"},"factValues":[{"value":"7000","decimals":-3}]},{"name":"rpt:f-459","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:CommercialPaperMember","us-gaap:BalanceSheetLocationAxis":"calx:ShortTermMarketableSecuritiesMember"},"factValues":[{"value":"32773000","decimals":-3}]},{"name":"rpt:f-460","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostExcludingAccruedInterestAfterAllowanceForCreditLossCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:BalanceSheetLocationAxis":"calx:ShortTermMarketableSecuritiesAndCashEquivalentsMember"},"factValues":[{"value":"271288000","decimals":-3}]},{"name":"rpt:f-461","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleAccumulatedGrossUnrealizedGainLossBeforeTax","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:BalanceSheetLocationAxis":"calx:ShortTermMarketableSecuritiesAndCashEquivalentsMember"},"factValues":[{"value":"249000","decimals":-3}]},{"name":"rpt:f-462","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:BalanceSheetLocationAxis":"calx:ShortTermMarketableSecuritiesAndCashEquivalentsMember"},"factValues":[{"value":"271537000","decimals":-3}]},{"name":"rpt:f-463","factDimensions":{"xbrl:concept":"us-gaap:FairValueDisclosuresTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',serif;font-size:10pt;font-weight:400;line-height:120%\">We measure our 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. We utilize 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',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',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',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 us 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',serif;font-size:10pt;font-weight:400;line-height:120%\">The following tables sets forth our 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-top:5pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:64.835%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:9.572%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.823%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:9.572%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.823%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:9.575%\"></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',serif;font-size:9pt;font-weight:700;line-height:100%\">As of December 31, 2025</span></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:100%\">Level 1</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',serif;font-size:9pt;font-weight:700;line-height:100%\">Level 2</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',serif;font-size:9pt;font-weight:700;line-height:100%\">Total</span></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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">40,879\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;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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\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;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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">40,879\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 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:9pt;font-weight:400;line-height:100%\">40,510\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">40,510\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Corporate debt securities</span></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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">177,127\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',serif;font-size:9pt;font-weight:400;line-height:100%\">177,127\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Commercial paper</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">84,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',serif;font-size:9pt;font-weight:400;line-height:100%\">84,753\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',serif;font-size:9pt;font-weight:400;line-height:100%\">U.S. government agency securities</span></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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">12,490\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',serif;font-size:9pt;font-weight:400;line-height:100%\">12,490\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Certificates of deposit</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">8,701\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',serif;font-size:9pt;font-weight:400;line-height:100%\">8,701\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 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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">81,389\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">283,071\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">364,460\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><div style=\"margin-top:5pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:64.835%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:9.572%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.823%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:9.572%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.823%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:9.575%\"></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',serif;font-size:9pt;font-weight:700;line-height:100%\">As of December 31, 2024</span></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:100%\">Level 1</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',serif;font-size:9pt;font-weight:700;line-height:100%\">Level 2</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',serif;font-size:9pt;font-weight:700;line-height:100%\">Total</span></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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">4,890\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;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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\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;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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">4,890\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 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:9pt;font-weight:400;line-height:100%\">74,132\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">74,132\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Corporate debt securities</span></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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">123,701\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',serif;font-size:9pt;font-weight:400;line-height:100%\">123,701\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Commercial paper</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">32,773\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',serif;font-size:9pt;font-weight:400;line-height:100%\">32,773\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',serif;font-size:9pt;font-weight:400;line-height:100%\">U.S. government agency securities</span></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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">24,411\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',serif;font-size:9pt;font-weight:400;line-height:100%\">24,411\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Certificates of deposit</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">16,520\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',serif;font-size:9pt;font-weight:400;line-height:100%\">16,520\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 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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">79,022\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">197,405\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">276,427\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-464","factDimensions":{"xbrl:concept":"us-gaap:FairValueMeasurementPolicyPolicyTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',serif;font-size:10pt;font-weight:400;line-height:120%\">We measure our 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. We utilize 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',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',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',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 us 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>","language":"en-us"}]},{"name":"rpt:f-465","factDimensions":{"xbrl:concept":"us-gaap:FairValueAssetsMeasuredOnRecurringBasisTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',serif;font-size:10pt;font-weight:400;line-height:120%\">The following tables sets forth our 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-top:5pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:64.835%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:9.572%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.823%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:9.572%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.823%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:9.575%\"></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',serif;font-size:9pt;font-weight:700;line-height:100%\">As of December 31, 2025</span></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:100%\">Level 1</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',serif;font-size:9pt;font-weight:700;line-height:100%\">Level 2</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',serif;font-size:9pt;font-weight:700;line-height:100%\">Total</span></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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">40,879\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;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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\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;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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">40,879\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 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:9pt;font-weight:400;line-height:100%\">40,510\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">40,510\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Corporate debt securities</span></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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">177,127\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',serif;font-size:9pt;font-weight:400;line-height:100%\">177,127\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Commercial paper</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">84,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',serif;font-size:9pt;font-weight:400;line-height:100%\">84,753\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',serif;font-size:9pt;font-weight:400;line-height:100%\">U.S. government agency securities</span></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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">12,490\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',serif;font-size:9pt;font-weight:400;line-height:100%\">12,490\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Certificates of deposit</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">8,701\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',serif;font-size:9pt;font-weight:400;line-height:100%\">8,701\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 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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">81,389\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">283,071\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">364,460\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><div style=\"margin-top:5pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:64.835%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:9.572%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.823%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:9.572%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.823%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:9.575%\"></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',serif;font-size:9pt;font-weight:700;line-height:100%\">As of December 31, 2024</span></td><td colspan=\"3\" style=\"padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:700;line-height:100%\">Level 1</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',serif;font-size:9pt;font-weight:700;line-height:100%\">Level 2</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',serif;font-size:9pt;font-weight:700;line-height:100%\">Total</span></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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">4,890\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;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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">\u2014\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;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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">4,890\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 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:9pt;font-weight:400;line-height:100%\">74,132\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">74,132\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Corporate debt securities</span></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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">123,701\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',serif;font-size:9pt;font-weight:400;line-height:100%\">123,701\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Commercial paper</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">32,773\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',serif;font-size:9pt;font-weight:400;line-height:100%\">32,773\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',serif;font-size:9pt;font-weight:400;line-height:100%\">U.S. government agency securities</span></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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">24,411\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',serif;font-size:9pt;font-weight:400;line-height:100%\">24,411\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Certificates of deposit</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">16,520\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',serif;font-size:9pt;font-weight:400;line-height:100%\">16,520\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 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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">79,022\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">197,405\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">276,427\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-466","factDimensions":{"xbrl:concept":"us-gaap:CashAndCashEquivalentsFairValueDisclosure","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FairValueByFairValueHierarchyLevelAxis":"us-gaap:FairValueInputsLevel1Member"},"factValues":[{"value":"40879000","decimals":-3}]},{"name":"rpt:f-467","factDimensions":{"xbrl:concept":"us-gaap:CashAndCashEquivalentsFairValueDisclosure","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FairValueByFairValueHierarchyLevelAxis":"us-gaap:FairValueInputsLevel2Member"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-468","factDimensions":{"xbrl:concept":"us-gaap:CashAndCashEquivalentsFairValueDisclosure","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"40879000","decimals":-3}]},{"name":"rpt:f-469","factDimensions":{"xbrl:concept":"calx:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrentAndCashEquivalentsAtCarryingValue","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:USGovernmentDebtSecuritiesMember","us-gaap:FairValueByFairValueHierarchyLevelAxis":"us-gaap:FairValueInputsLevel1Member"},"factValues":[{"value":"40510000","decimals":-3}]},{"name":"rpt:f-470","factDimensions":{"xbrl:concept":"calx:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrentAndCashEquivalentsAtCarryingValue","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:USGovernmentDebtSecuritiesMember","us-gaap:FairValueByFairValueHierarchyLevelAxis":"us-gaap:FairValueInputsLevel2Member"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-471","factDimensions":{"xbrl:concept":"calx:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrentAndCashEquivalentsAtCarryingValue","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:USGovernmentDebtSecuritiesMember"},"factValues":[{"value":"40510000","decimals":-3}]},{"name":"rpt:f-472","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:CorporateDebtSecuritiesMember","us-gaap:FairValueByFairValueHierarchyLevelAxis":"us-gaap:FairValueInputsLevel1Member"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-473","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:CorporateDebtSecuritiesMember","us-gaap:FairValueByFairValueHierarchyLevelAxis":"us-gaap:FairValueInputsLevel2Member"},"factValues":[{"value":"177127000","decimals":-3}]},{"name":"rpt:f-474","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:CorporateDebtSecuritiesMember"},"factValues":[{"value":"177127000","decimals":-3}]},{"name":"rpt:f-475","factDimensions":{"xbrl:concept":"calx:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrentAndCashEquivalentsAtCarryingValue","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:CommercialPaperMember","us-gaap:FairValueByFairValueHierarchyLevelAxis":"us-gaap:FairValueInputsLevel1Member"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-476","factDimensions":{"xbrl:concept":"calx:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrentAndCashEquivalentsAtCarryingValue","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:CommercialPaperMember","us-gaap:FairValueByFairValueHierarchyLevelAxis":"us-gaap:FairValueInputsLevel2Member"},"factValues":[{"value":"84753000","decimals":-3}]},{"name":"rpt:f-477","factDimensions":{"xbrl:concept":"calx:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrentAndCashEquivalentsAtCarryingValue","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:CommercialPaperMember"},"factValues":[{"value":"84753000","decimals":-3}]},{"name":"rpt:f-478","factDimensions":{"xbrl:concept":"calx:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrentAndCashEquivalentsAtCarryingValue","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember","us-gaap:FairValueByFairValueHierarchyLevelAxis":"us-gaap:FairValueInputsLevel1Member"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-479","factDimensions":{"xbrl:concept":"calx:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrentAndCashEquivalentsAtCarryingValue","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember","us-gaap:FairValueByFairValueHierarchyLevelAxis":"us-gaap:FairValueInputsLevel2Member"},"factValues":[{"value":"12490000","decimals":-3}]},{"name":"rpt:f-480","factDimensions":{"xbrl:concept":"calx:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrentAndCashEquivalentsAtCarryingValue","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember"},"factValues":[{"value":"12490000","decimals":-3}]},{"name":"rpt:f-481","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:MunicipalNotesMember","us-gaap:FairValueByFairValueHierarchyLevelAxis":"us-gaap:FairValueInputsLevel1Member"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-482","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:MunicipalNotesMember","us-gaap:FairValueByFairValueHierarchyLevelAxis":"us-gaap:FairValueInputsLevel2Member"},"factValues":[{"value":"8701000","decimals":-3}]},{"name":"rpt:f-483","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:MunicipalNotesMember"},"factValues":[{"value":"8701000","decimals":-3}]},{"name":"rpt:f-484","factDimensions":{"xbrl:concept":"us-gaap:AssetsFairValueDisclosure","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FairValueByFairValueHierarchyLevelAxis":"us-gaap:FairValueInputsLevel1Member"},"factValues":[{"value":"81389000","decimals":-3}]},{"name":"rpt:f-485","factDimensions":{"xbrl:concept":"us-gaap:AssetsFairValueDisclosure","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FairValueByFairValueHierarchyLevelAxis":"us-gaap:FairValueInputsLevel2Member"},"factValues":[{"value":"283071000","decimals":-3}]},{"name":"rpt:f-486","factDimensions":{"xbrl:concept":"us-gaap:AssetsFairValueDisclosure","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"364460000","decimals":-3}]},{"name":"rpt:f-487","factDimensions":{"xbrl:concept":"us-gaap:CashAndCashEquivalentsFairValueDisclosure","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FairValueByFairValueHierarchyLevelAxis":"us-gaap:FairValueInputsLevel1Member"},"factValues":[{"value":"4890000","decimals":-3}]},{"name":"rpt:f-488","factDimensions":{"xbrl:concept":"us-gaap:CashAndCashEquivalentsFairValueDisclosure","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FairValueByFairValueHierarchyLevelAxis":"us-gaap:FairValueInputsLevel2Member"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-489","factDimensions":{"xbrl:concept":"us-gaap:CashAndCashEquivalentsFairValueDisclosure","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4890000","decimals":-3}]},{"name":"rpt:f-490","factDimensions":{"xbrl:concept":"calx:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrentAndCashEquivalentsAtCarryingValue","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:USGovernmentDebtSecuritiesMember","us-gaap:FairValueByFairValueHierarchyLevelAxis":"us-gaap:FairValueInputsLevel1Member"},"factValues":[{"value":"74132000","decimals":-3}]},{"name":"rpt:f-491","factDimensions":{"xbrl:concept":"calx:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrentAndCashEquivalentsAtCarryingValue","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:USGovernmentDebtSecuritiesMember","us-gaap:FairValueByFairValueHierarchyLevelAxis":"us-gaap:FairValueInputsLevel2Member"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-492","factDimensions":{"xbrl:concept":"calx:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrentAndCashEquivalentsAtCarryingValue","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:USGovernmentDebtSecuritiesMember"},"factValues":[{"value":"74132000","decimals":-3}]},{"name":"rpt:f-493","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:CorporateDebtSecuritiesMember","us-gaap:FairValueByFairValueHierarchyLevelAxis":"us-gaap:FairValueInputsLevel1Member"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-494","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:CorporateDebtSecuritiesMember","us-gaap:FairValueByFairValueHierarchyLevelAxis":"us-gaap:FairValueInputsLevel2Member"},"factValues":[{"value":"123701000","decimals":-3}]},{"name":"rpt:f-495","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:CorporateDebtSecuritiesMember"},"factValues":[{"value":"123701000","decimals":-3}]},{"name":"rpt:f-496","factDimensions":{"xbrl:concept":"calx:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrentAndCashEquivalentsAtCarryingValue","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:CommercialPaperMember","us-gaap:FairValueByFairValueHierarchyLevelAxis":"us-gaap:FairValueInputsLevel1Member"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-497","factDimensions":{"xbrl:concept":"calx:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrentAndCashEquivalentsAtCarryingValue","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:CommercialPaperMember","us-gaap:FairValueByFairValueHierarchyLevelAxis":"us-gaap:FairValueInputsLevel2Member"},"factValues":[{"value":"32773000","decimals":-3}]},{"name":"rpt:f-498","factDimensions":{"xbrl:concept":"calx:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrentAndCashEquivalentsAtCarryingValue","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:CommercialPaperMember"},"factValues":[{"value":"32773000","decimals":-3}]},{"name":"rpt:f-499","factDimensions":{"xbrl:concept":"calx:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrentAndCashEquivalentsAtCarryingValue","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember","us-gaap:FairValueByFairValueHierarchyLevelAxis":"us-gaap:FairValueInputsLevel1Member"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-500","factDimensions":{"xbrl:concept":"calx:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrentAndCashEquivalentsAtCarryingValue","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember","us-gaap:FairValueByFairValueHierarchyLevelAxis":"us-gaap:FairValueInputsLevel2Member"},"factValues":[{"value":"24411000","decimals":-3}]},{"name":"rpt:f-501","factDimensions":{"xbrl:concept":"calx:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrentAndCashEquivalentsAtCarryingValue","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:USGovernmentAgenciesDebtSecuritiesMember"},"factValues":[{"value":"24411000","decimals":-3}]},{"name":"rpt:f-502","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:MunicipalNotesMember","us-gaap:FairValueByFairValueHierarchyLevelAxis":"us-gaap:FairValueInputsLevel1Member"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-503","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:MunicipalNotesMember","us-gaap:FairValueByFairValueHierarchyLevelAxis":"us-gaap:FairValueInputsLevel2Member"},"factValues":[{"value":"16520000","decimals":-3}]},{"name":"rpt:f-504","factDimensions":{"xbrl:concept":"us-gaap:DebtSecuritiesAvailableForSaleExcludingAccruedInterestCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FinancialInstrumentAxis":"us-gaap:MunicipalNotesMember"},"factValues":[{"value":"16520000","decimals":-3}]},{"name":"rpt:f-505","factDimensions":{"xbrl:concept":"us-gaap:AssetsFairValueDisclosure","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FairValueByFairValueHierarchyLevelAxis":"us-gaap:FairValueInputsLevel1Member"},"factValues":[{"value":"79022000","decimals":-3}]},{"name":"rpt:f-506","factDimensions":{"xbrl:concept":"us-gaap:AssetsFairValueDisclosure","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:FairValueByFairValueHierarchyLevelAxis":"us-gaap:FairValueInputsLevel2Member"},"factValues":[{"value":"197405000","decimals":-3}]},{"name":"rpt:f-507","factDimensions":{"xbrl:concept":"us-gaap:AssetsFairValueDisclosure","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"276427000","decimals":-3}]},{"name":"rpt:f-508","factDimensions":{"xbrl:concept":"us-gaap:SupplementalBalanceSheetDisclosuresTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',serif;font-size:10pt;font-weight:400;line-height:120%\">Accounts receivable, net consisted of the following (in thousands):</span></div><div style=\"margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.538%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:73.380%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.432%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.027%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.432%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.029%\"></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',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',serif;font-size:9pt;font-weight:700;line-height:100%\">2025</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',serif;font-size:9pt;font-weight:700;line-height:100%\">2024</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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">99,732\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">79,632\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(365)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(311)</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">99,367\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">79,321\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:4pt\"><span style=\"color:#000000;font-family:'Times New Roman',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-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.076%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:46.490%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.456%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.345%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.456%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.345%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.456%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.345%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.456%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.351%\"></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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">Additions Charged to Expenses or Revenue Net of Recoveries</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',serif;font-size:8pt;font-weight:700;line-height:100%\">Write Offs and Returns</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">Year Ended December 31, 2025:</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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">311\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">179\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(125)</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">365\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,428\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',serif;font-size:9pt;font-weight:400;line-height:100%\">220\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',serif;font-size:9pt;font-weight:400;line-height:100%\">(1,702)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">946\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Year Ended December 31, 2024:</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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">304\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">264\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(257)</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">311\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,897\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',serif;font-size:9pt;font-weight:400;line-height:100%\">3,212\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',serif;font-size:9pt;font-weight:400;line-height:100%\">(3,681)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,428\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Year Ended December 31, 2023:</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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">397\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">43\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(136)</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">304\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,961\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',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><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',serif;font-size:9pt;font-weight:400;line-height:100%\">(4,825)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,897\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:4pt\"><span><br/></span></div><div style=\"margin-top:4pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Inventory consisted of the following (in thousands):</span></div><div style=\"margin-top:5pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.222%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:73.035%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.454%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.178%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.454%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.179%\"></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',serif;font-size:10pt;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',serif;font-size:10pt;font-weight:700;line-height:100%\">2025</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',serif;font-size:10pt;font-weight:700;line-height:100%\">2024</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',serif;font-size:10pt;font-weight:400;line-height:100%\">Components</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',serif;font-size:10pt;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',serif;font-size:10pt;font-weight:400;line-height:100%\">2,327\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',serif;font-size:10pt;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',serif;font-size:10pt;font-weight:400;line-height:100%\">21,735\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',serif;font-size:10pt;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',serif;font-size:10pt;font-weight:400;line-height:100%\">131,410\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',serif;font-size:10pt;font-weight:400;line-height:100%\">80,992\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',serif;font-size:10pt;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',serif;font-size:10pt;font-weight:400;line-height:100%\">133,737\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',serif;font-size:10pt;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',serif;font-size:10pt;font-weight:400;line-height:100%\">102,727\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><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Prepaid expenses and other current assets consisted of the following (in thousands):</span></div><div style=\"margin-top:5pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.660%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:73.750%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.446%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:9.828%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.446%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:9.830%\"></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',serif;font-size:10pt;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',serif;font-size:10pt;font-weight:700;line-height:100%\">2025</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',serif;font-size:10pt;font-weight:700;line-height:100%\">2024</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',serif;font-size:10pt;font-weight:400;line-height:100%\">Supplier deposits</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',serif;font-size:10pt;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',serif;font-size:10pt;font-weight:400;line-height:100%\">13,887\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',serif;font-size:10pt;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',serif;font-size:10pt;font-weight:400;line-height:100%\">62,620\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',serif;font-size:10pt;font-weight:400;line-height:100%\">Prepaid expenses and other current 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',serif;font-size:10pt;font-weight:400;line-height:100%\">56,458\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',serif;font-size:10pt;font-weight:400;line-height:100%\">42,976\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',serif;font-size:10pt;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',serif;font-size:10pt;font-weight:400;line-height:100%\">70,345\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',serif;font-size:10pt;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',serif;font-size:10pt;font-weight:400;line-height:100%\">105,596\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:4pt\"><span style=\"color:#000000;font-family:'Times New Roman',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-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.222%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:73.035%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.454%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.178%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.454%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.179%\"></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',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',serif;font-size:9pt;font-weight:700;line-height:100%\">2025</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',serif;font-size:9pt;font-weight:700;line-height:100%\">2024</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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">66,750\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">57,595\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Computer equipment</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',serif;font-size:9pt;font-weight:400;line-height:100%\">14,469\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',serif;font-size:9pt;font-weight:400;line-height:100%\">14,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:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Software</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',serif;font-size:9pt;font-weight:400;line-height:100%\">11,499\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',serif;font-size:9pt;font-weight:400;line-height:100%\">11,146\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Leasehold improvements</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',serif;font-size:9pt;font-weight:400;line-height:100%\">4,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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,173\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Furniture and fixtures</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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,682\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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,268\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',serif;font-size:9pt;font-weight:400;line-height:100%\">98,803\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',serif;font-size:9pt;font-weight:400;line-height:100%\">86,743\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(60,991)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(55,590)</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">37,812\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">31,153\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:7pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Depreciation and amortization expenses were\u00a0$17.7 million, $19.6 million and\u00a0$16.6 million for the years ended December\u00a031, 2025, 2024 and 2023, respectively.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\"><span style=\"-sec-ix-hidden:f-567\"><span style=\"-sec-ix-hidden:f-568\">Accrued liabilities</span></span> consisted of the following (in thousands):</span></div><div style=\"margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.222%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:73.035%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.454%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.178%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.454%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.179%\"></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',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',serif;font-size:9pt;font-weight:700;line-height:100%\">2025</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',serif;font-size:9pt;font-weight:700;line-height:100%\">2024</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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">44,097\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">36,004\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Component inventory held by suppliers</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',serif;font-size:9pt;font-weight:400;line-height:100%\">9,665\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',serif;font-size:9pt;font-weight:400;line-height:100%\">8,855\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">5,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',serif;font-size:9pt;font-weight:400;line-height:100%\">4,882\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">4,981\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',serif;font-size:9pt;font-weight:400;line-height:100%\">5,385\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Fixed 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',serif;font-size:9pt;font-weight:400;line-height:100%\">4,857\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',serif;font-size:9pt;font-weight:400;line-height:100%\">716\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">4,744\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',serif;font-size:9pt;font-weight:400;line-height:100%\">5,048\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,837\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',serif;font-size:9pt;font-weight:400;line-height:100%\">4,303\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Insurance</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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,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 colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">2,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;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Current portion of warranty and retrofit</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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,961\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',serif;font-size:9pt;font-weight:400;line-height:100%\">5,288\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Freight</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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,571\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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,640\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,180\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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,735\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">946\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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,428\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">7,153\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',serif;font-size:9pt;font-weight:400;line-height:100%\">5,864\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">91,339\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">84,167\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',serif;font-size:10pt;font-weight:400;line-height:120%\">Changes in our accrued warranty and retrofit liability were as follows (in thousands):</span></div><div style=\"margin-top:11pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.076%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:60.044%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.456%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.195%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.456%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.195%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.456%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.198%\"></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',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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2025</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',serif;font-size:8pt;font-weight:700;line-height:100%\">2024</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',serif;font-size:8pt;font-weight:700;line-height:100%\">2023</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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">7,287\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">8,029\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">8,386\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(38)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,268\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',serif;font-size:9pt;font-weight:400;line-height:100%\">3,282\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(3,417)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(3,010)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(3,639)</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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">3,832\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">7,287\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">8,029\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-509","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',serif;font-size:10pt;font-weight:400;line-height:120%\">Accounts receivable, net consisted of the following (in thousands):</span></div><div style=\"margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.538%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:73.380%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.432%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.027%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.432%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.029%\"></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',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',serif;font-size:9pt;font-weight:700;line-height:100%\">2025</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',serif;font-size:9pt;font-weight:700;line-height:100%\">2024</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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">99,732\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">79,632\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(365)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(311)</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">99,367\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">79,321\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-510","factDimensions":{"xbrl:concept":"us-gaap:AccountsReceivableGrossCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"99732000","decimals":-3}]},{"name":"rpt:f-511","factDimensions":{"xbrl:concept":"us-gaap:AccountsReceivableGrossCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"79632000","decimals":-3}]},{"name":"rpt:f-512","factDimensions":{"xbrl:concept":"us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"365000","decimals":-3}]},{"name":"rpt:f-513","factDimensions":{"xbrl:concept":"us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"311000","decimals":-3}]},{"name":"rpt:f-514","factDimensions":{"xbrl:concept":"us-gaap:AccountsReceivableNetCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"99367000","decimals":-3}]},{"name":"rpt:f-515","factDimensions":{"xbrl:concept":"us-gaap:AccountsReceivableNetCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"79321000","decimals":-3}]},{"name":"rpt:f-516","factDimensions":{"xbrl:concept":"calx:ScheduleOfChangesInAllowanceForDoubtfulAccountsAndProductReturnLiabilityTableTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:4pt\"><span style=\"color:#000000;font-family:'Times New Roman',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-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.076%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:46.490%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.456%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.345%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.456%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.345%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.456%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.345%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.456%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.351%\"></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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">Additions Charged to Expenses or Revenue Net of Recoveries</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',serif;font-size:8pt;font-weight:700;line-height:100%\">Write Offs and Returns</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">Year Ended December 31, 2025:</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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">311\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">179\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(125)</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">365\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,428\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',serif;font-size:9pt;font-weight:400;line-height:100%\">220\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',serif;font-size:9pt;font-weight:400;line-height:100%\">(1,702)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">946\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Year Ended December 31, 2024:</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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">304\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">264\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(257)</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">311\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,897\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',serif;font-size:9pt;font-weight:400;line-height:100%\">3,212\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',serif;font-size:9pt;font-weight:400;line-height:100%\">(3,681)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,428\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Year Ended December 31, 2023:</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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">397\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">43\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(136)</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">304\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,961\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',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><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',serif;font-size:9pt;font-weight:400;line-height:100%\">(4,825)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,897\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-517","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesBalance","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"us-gaap:AllowanceForCreditLossMember"},"factValues":[{"value":"311000","decimals":-3}]},{"name":"rpt:f-518","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"us-gaap:AllowanceForCreditLossMember"},"factValues":[{"value":"179000","decimals":-3}]},{"name":"rpt:f-519","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesDeductions","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"us-gaap:AllowanceForCreditLossMember"},"factValues":[{"value":"125000","decimals":-3}]},{"name":"rpt:f-520","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesBalance","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"us-gaap:AllowanceForCreditLossMember"},"factValues":[{"value":"365000","decimals":-3}]},{"name":"rpt:f-521","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesBalance","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"calx:SECSchedule1209ReserveProductReturnsMember"},"factValues":[{"value":"2428000","decimals":-3}]},{"name":"rpt:f-522","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"calx:SECSchedule1209ReserveProductReturnsMember"},"factValues":[{"value":"220000","decimals":-3}]},{"name":"rpt:f-523","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesDeductions","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"calx:SECSchedule1209ReserveProductReturnsMember"},"factValues":[{"value":"1702000","decimals":-3}]},{"name":"rpt:f-524","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesBalance","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"calx:SECSchedule1209ReserveProductReturnsMember"},"factValues":[{"value":"946000","decimals":-3}]},{"name":"rpt:f-525","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesBalance","xbrl:period":"2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"us-gaap:AllowanceForCreditLossMember"},"factValues":[{"value":"304000","decimals":-3}]},{"name":"rpt:f-526","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"us-gaap:AllowanceForCreditLossMember"},"factValues":[{"value":"264000","decimals":-3}]},{"name":"rpt:f-527","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesDeductions","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"us-gaap:AllowanceForCreditLossMember"},"factValues":[{"value":"257000","decimals":-3}]},{"name":"rpt:f-528","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesBalance","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"us-gaap:AllowanceForCreditLossMember"},"factValues":[{"value":"311000","decimals":-3}]},{"name":"rpt:f-529","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesBalance","xbrl:period":"2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"calx:SECSchedule1209ReserveProductReturnsMember"},"factValues":[{"value":"2897000","decimals":-3}]},{"name":"rpt:f-530","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"calx:SECSchedule1209ReserveProductReturnsMember"},"factValues":[{"value":"3212000","decimals":-3}]},{"name":"rpt:f-531","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesDeductions","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"calx:SECSchedule1209ReserveProductReturnsMember"},"factValues":[{"value":"3681000","decimals":-3}]},{"name":"rpt:f-532","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesBalance","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"calx:SECSchedule1209ReserveProductReturnsMember"},"factValues":[{"value":"2428000","decimals":-3}]},{"name":"rpt:f-533","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesBalance","xbrl:period":"2023-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"us-gaap:AllowanceForCreditLossMember"},"factValues":[{"value":"397000","decimals":-3}]},{"name":"rpt:f-534","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"us-gaap:AllowanceForCreditLossMember"},"factValues":[{"value":"43000","decimals":-3}]},{"name":"rpt:f-535","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesDeductions","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"us-gaap:AllowanceForCreditLossMember"},"factValues":[{"value":"136000","decimals":-3}]},{"name":"rpt:f-536","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesBalance","xbrl:period":"2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"us-gaap:AllowanceForCreditLossMember"},"factValues":[{"value":"304000","decimals":-3}]},{"name":"rpt:f-537","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesBalance","xbrl:period":"2023-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"calx:SECSchedule1209ReserveProductReturnsMember"},"factValues":[{"value":"2961000","decimals":-3}]},{"name":"rpt:f-538","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"calx:SECSchedule1209ReserveProductReturnsMember"},"factValues":[{"value":"4761000","decimals":-3}]},{"name":"rpt:f-539","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesDeductions","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"calx:SECSchedule1209ReserveProductReturnsMember"},"factValues":[{"value":"4825000","decimals":-3}]},{"name":"rpt:f-540","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowancesAndReservesBalance","xbrl:period":"2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:ValuationAllowancesAndReservesTypeAxis":"calx:SECSchedule1209ReserveProductReturnsMember"},"factValues":[{"value":"2897000","decimals":-3}]},{"name":"rpt:f-541","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfInventoryCurrentTableTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:4pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Inventory consisted of the following (in thousands):</span></div><div style=\"margin-top:5pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.222%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:73.035%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.454%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.178%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.454%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.179%\"></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',serif;font-size:10pt;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',serif;font-size:10pt;font-weight:700;line-height:100%\">2025</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',serif;font-size:10pt;font-weight:700;line-height:100%\">2024</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',serif;font-size:10pt;font-weight:400;line-height:100%\">Components</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',serif;font-size:10pt;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',serif;font-size:10pt;font-weight:400;line-height:100%\">2,327\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',serif;font-size:10pt;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',serif;font-size:10pt;font-weight:400;line-height:100%\">21,735\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',serif;font-size:10pt;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',serif;font-size:10pt;font-weight:400;line-height:100%\">131,410\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',serif;font-size:10pt;font-weight:400;line-height:100%\">80,992\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',serif;font-size:10pt;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',serif;font-size:10pt;font-weight:400;line-height:100%\">133,737\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',serif;font-size:10pt;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',serif;font-size:10pt;font-weight:400;line-height:100%\">102,727\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-542","factDimensions":{"xbrl:concept":"us-gaap:InventoryPartsAndComponentsNetOfReserves","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2327000","decimals":-3}]},{"name":"rpt:f-543","factDimensions":{"xbrl:concept":"us-gaap:InventoryPartsAndComponentsNetOfReserves","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"21735000","decimals":-3}]},{"name":"rpt:f-544","factDimensions":{"xbrl:concept":"us-gaap:InventoryFinishedGoodsNetOfReserves","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"131410000","decimals":-3}]},{"name":"rpt:f-545","factDimensions":{"xbrl:concept":"us-gaap:InventoryFinishedGoodsNetOfReserves","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"80992000","decimals":-3}]},{"name":"rpt:f-546","factDimensions":{"xbrl:concept":"us-gaap:InventoryNet","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"133737000","decimals":-3}]},{"name":"rpt:f-547","factDimensions":{"xbrl:concept":"us-gaap:InventoryNet","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"102727000","decimals":-3}]},{"name":"rpt:f-548","factDimensions":{"xbrl:concept":"us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',serif;font-size:10pt;font-weight:400;line-height:120%\">Prepaid expenses and other current assets consisted of the following (in thousands):</span></div><div style=\"margin-top:5pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.660%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:73.750%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.446%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:9.828%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.446%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:9.830%\"></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',serif;font-size:10pt;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',serif;font-size:10pt;font-weight:700;line-height:100%\">2025</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',serif;font-size:10pt;font-weight:700;line-height:100%\">2024</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',serif;font-size:10pt;font-weight:400;line-height:100%\">Supplier deposits</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',serif;font-size:10pt;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',serif;font-size:10pt;font-weight:400;line-height:100%\">13,887\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',serif;font-size:10pt;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',serif;font-size:10pt;font-weight:400;line-height:100%\">62,620\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',serif;font-size:10pt;font-weight:400;line-height:100%\">Prepaid expenses and other current 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',serif;font-size:10pt;font-weight:400;line-height:100%\">56,458\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',serif;font-size:10pt;font-weight:400;line-height:100%\">42,976\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',serif;font-size:10pt;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',serif;font-size:10pt;font-weight:400;line-height:100%\">70,345\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',serif;font-size:10pt;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',serif;font-size:10pt;font-weight:400;line-height:100%\">105,596\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-549","factDimensions":{"xbrl:concept":"us-gaap:DepositsAssetsCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"13887000","decimals":-3}]},{"name":"rpt:f-550","factDimensions":{"xbrl:concept":"us-gaap:DepositsAssetsCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"62620000","decimals":-3}]},{"name":"rpt:f-551","factDimensions":{"xbrl:concept":"calx:PrepaidExpensesAndOtherAssetsMiscellaneousCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"56458000","decimals":-3}]},{"name":"rpt:f-552","factDimensions":{"xbrl:concept":"calx:PrepaidExpensesAndOtherAssetsMiscellaneousCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"42976000","decimals":-3}]},{"name":"rpt:f-553","factDimensions":{"xbrl:concept":"us-gaap:PrepaidExpenseAndOtherAssetsCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"70345000","decimals":-3}]},{"name":"rpt:f-554","factDimensions":{"xbrl:concept":"us-gaap:PrepaidExpenseAndOtherAssetsCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"105596000","decimals":-3}]},{"name":"rpt:f-555","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:4pt\"><span style=\"color:#000000;font-family:'Times New Roman',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-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.222%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:73.035%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.454%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.178%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.454%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.179%\"></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',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',serif;font-size:9pt;font-weight:700;line-height:100%\">2025</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',serif;font-size:9pt;font-weight:700;line-height:100%\">2024</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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">66,750\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">57,595\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Computer equipment</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',serif;font-size:9pt;font-weight:400;line-height:100%\">14,469\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',serif;font-size:9pt;font-weight:400;line-height:100%\">14,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:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Software</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',serif;font-size:9pt;font-weight:400;line-height:100%\">11,499\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',serif;font-size:9pt;font-weight:400;line-height:100%\">11,146\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Leasehold improvements</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',serif;font-size:9pt;font-weight:400;line-height:100%\">4,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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,173\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Furniture and fixtures</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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,682\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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,268\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',serif;font-size:9pt;font-weight:400;line-height:100%\">98,803\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',serif;font-size:9pt;font-weight:400;line-height:100%\">86,743\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(60,991)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(55,590)</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">37,812\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">31,153\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-556","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:EquipmentMember"},"factValues":[{"value":"66750000","decimals":-3}]},{"name":"rpt:f-557","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:EquipmentMember"},"factValues":[{"value":"57595000","decimals":-3}]},{"name":"rpt:f-558","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:ComputerEquipmentMember"},"factValues":[{"value":"14469000","decimals":-3}]},{"name":"rpt:f-559","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:ComputerEquipmentMember"},"factValues":[{"value":"14561000","decimals":-3}]},{"name":"rpt:f-560","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"calx:SoftwareMember"},"factValues":[{"value":"11499000","decimals":-3}]},{"name":"rpt:f-561","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"calx:SoftwareMember"},"factValues":[{"value":"11146000","decimals":-3}]},{"name":"rpt:f-562","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:LeaseholdImprovementsMember"},"factValues":[{"value":"4403000","decimals":-3}]},{"name":"rpt:f-563","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:LeaseholdImprovementsMember"},"factValues":[{"value":"2173000","decimals":-3}]},{"name":"rpt:f-564","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:FurnitureAndFixturesMember"},"factValues":[{"value":"1682000","decimals":-3}]},{"name":"rpt:f-565","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:PropertyPlantAndEquipmentByTypeAxis":"us-gaap:FurnitureAndFixturesMember"},"factValues":[{"value":"1268000","decimals":-3}]},{"name":"rpt:f-566","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"98803000","decimals":-3}]},{"name":"rpt:f-567","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentGross","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"86743000","decimals":-3}]},{"name":"rpt:f-568","factDimensions":{"xbrl:concept":"us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"60991000","decimals":-3}]},{"name":"rpt:f-569","factDimensions":{"xbrl:concept":"us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"55590000","decimals":-3}]},{"name":"rpt:f-570","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentNet","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"37812000","decimals":-3}]},{"name":"rpt:f-571","factDimensions":{"xbrl:concept":"us-gaap:PropertyPlantAndEquipmentNet","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"31153000","decimals":-3}]},{"name":"rpt:f-572","factDimensions":{"xbrl:concept":"us-gaap:DepreciationDepletionAndAmortization","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"17700000","decimals":-5}]},{"name":"rpt:f-573","factDimensions":{"xbrl:concept":"us-gaap:DepreciationDepletionAndAmortization","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"19600000","decimals":-5}]},{"name":"rpt:f-574","factDimensions":{"xbrl:concept":"us-gaap:DepreciationDepletionAndAmortization","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"16600000","decimals":-5}]},{"name":"rpt:f-575","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',serif;font-size:10pt;font-weight:400;line-height:120%\"><span style=\"-sec-ix-hidden:f-567\"><span style=\"-sec-ix-hidden:f-568\">Accrued liabilities</span></span> consisted of the following (in thousands):</span></div><div style=\"margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.222%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:73.035%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.454%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.178%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.454%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.179%\"></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',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',serif;font-size:9pt;font-weight:700;line-height:100%\">2025</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',serif;font-size:9pt;font-weight:700;line-height:100%\">2024</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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">44,097\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">36,004\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Component inventory held by suppliers</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',serif;font-size:9pt;font-weight:400;line-height:100%\">9,665\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',serif;font-size:9pt;font-weight:400;line-height:100%\">8,855\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">5,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',serif;font-size:9pt;font-weight:400;line-height:100%\">4,882\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">4,981\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',serif;font-size:9pt;font-weight:400;line-height:100%\">5,385\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Fixed 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',serif;font-size:9pt;font-weight:400;line-height:100%\">4,857\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',serif;font-size:9pt;font-weight:400;line-height:100%\">716\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">4,744\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',serif;font-size:9pt;font-weight:400;line-height:100%\">5,048\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,837\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',serif;font-size:9pt;font-weight:400;line-height:100%\">4,303\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Insurance</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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,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 colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">2,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;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Current portion of warranty and retrofit</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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,961\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',serif;font-size:9pt;font-weight:400;line-height:100%\">5,288\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Freight</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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,571\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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,640\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,180\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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,735\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">946\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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,428\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">7,153\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',serif;font-size:9pt;font-weight:400;line-height:100%\">5,864\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">91,339\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">84,167\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-576","factDimensions":{"xbrl:concept":"us-gaap:EmployeeRelatedLiabilitiesCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"44097000","decimals":-3}]},{"name":"rpt:f-577","factDimensions":{"xbrl:concept":"us-gaap:EmployeeRelatedLiabilitiesCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"36004000","decimals":-3}]},{"name":"rpt:f-578","factDimensions":{"xbrl:concept":"calx:AccruedExcessAndObsoleteInventoryAtContractManufacturer","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"9665000","decimals":-3}]},{"name":"rpt:f-579","factDimensions":{"xbrl:concept":"calx:AccruedExcessAndObsoleteInventoryAtContractManufacturer","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"8855000","decimals":-3}]},{"name":"rpt:f-580","factDimensions":{"xbrl:concept":"calx:AccruedCustomerAdvancesOrRebatesCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"5062000","decimals":-3}]},{"name":"rpt:f-581","factDimensions":{"xbrl:concept":"calx:AccruedCustomerAdvancesOrRebatesCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4882000","decimals":-3}]},{"name":"rpt:f-582","factDimensions":{"xbrl:concept":"us-gaap:AccruedProfessionalFeesCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4981000","decimals":-3}]},{"name":"rpt:f-583","factDimensions":{"xbrl:concept":"us-gaap:AccruedProfessionalFeesCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"5385000","decimals":-3}]},{"name":"rpt:f-584","factDimensions":{"xbrl:concept":"calx:AccruedPropertyPlantAndEquipmentCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4857000","decimals":-3}]},{"name":"rpt:f-585","factDimensions":{"xbrl:concept":"calx:AccruedPropertyPlantAndEquipmentCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"716000","decimals":-3}]},{"name":"rpt:f-586","factDimensions":{"xbrl:concept":"calx:TaxesPayableCurrentExcludingAccruedIncomeTaxes","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4744000","decimals":-3}]},{"name":"rpt:f-587","factDimensions":{"xbrl:concept":"calx:TaxesPayableCurrentExcludingAccruedIncomeTaxes","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"5048000","decimals":-3}]},{"name":"rpt:f-588","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseLiabilityCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2837000","decimals":-3}]},{"name":"rpt:f-589","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseLiabilityCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4303000","decimals":-3}]},{"name":"rpt:f-590","factDimensions":{"xbrl:concept":"us-gaap:AccruedInsuranceCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2285000","decimals":-3}]},{"name":"rpt:f-591","factDimensions":{"xbrl:concept":"us-gaap:AccruedInsuranceCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2019000","decimals":-3}]},{"name":"rpt:f-592","factDimensions":{"xbrl:concept":"us-gaap:ProductWarrantyAccrualClassifiedCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1961000","decimals":-3}]},{"name":"rpt:f-593","factDimensions":{"xbrl:concept":"us-gaap:ProductWarrantyAccrualClassifiedCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"5288000","decimals":-3}]},{"name":"rpt:f-594","factDimensions":{"xbrl:concept":"calx:AccruedFreightCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1571000","decimals":-3}]},{"name":"rpt:f-595","factDimensions":{"xbrl:concept":"calx:AccruedFreightCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1640000","decimals":-3}]},{"name":"rpt:f-596","factDimensions":{"xbrl:concept":"calx:AccruedOperationsCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1180000","decimals":-3}]},{"name":"rpt:f-597","factDimensions":{"xbrl:concept":"calx:AccruedOperationsCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1735000","decimals":-3}]},{"name":"rpt:f-598","factDimensions":{"xbrl:concept":"calx:ProductReturnReserveCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"946000","decimals":-3}]},{"name":"rpt:f-599","factDimensions":{"xbrl:concept":"calx:ProductReturnReserveCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2428000","decimals":-3}]},{"name":"rpt:f-600","factDimensions":{"xbrl:concept":"us-gaap:OtherAccruedLiabilitiesCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"7153000","decimals":-3}]},{"name":"rpt:f-601","factDimensions":{"xbrl:concept":"us-gaap:OtherAccruedLiabilitiesCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"5864000","decimals":-3}]},{"name":"rpt:f-602","factDimensions":{"xbrl:concept":"us-gaap:AccruedLiabilitiesCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"91339000","decimals":-3}]},{"name":"rpt:f-603","factDimensions":{"xbrl:concept":"us-gaap:AccruedLiabilitiesCurrent","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"84167000","decimals":-3}]},{"name":"rpt:f-604","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',serif;font-size:10pt;font-weight:400;line-height:120%\">Changes in our accrued warranty and retrofit liability were as follows (in thousands):</span></div><div style=\"margin-top:11pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.076%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:60.044%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.456%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.195%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.456%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.195%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.456%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.198%\"></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',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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2025</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',serif;font-size:8pt;font-weight:700;line-height:100%\">2024</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',serif;font-size:8pt;font-weight:700;line-height:100%\">2023</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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">7,287\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">8,029\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">8,386\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(38)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,268\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',serif;font-size:9pt;font-weight:400;line-height:100%\">3,282\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(3,417)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(3,010)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(3,639)</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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">3,832\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">7,287\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">8,029\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-605","factDimensions":{"xbrl:concept":"us-gaap:ProductWarrantyAccrual","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"7287000","decimals":-3}]},{"name":"rpt:f-606","factDimensions":{"xbrl:concept":"us-gaap:ProductWarrantyAccrual","xbrl:period":"2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"8029000","decimals":-3}]},{"name":"rpt:f-607","factDimensions":{"xbrl:concept":"us-gaap:ProductWarrantyAccrual","xbrl:period":"2023-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"8386000","decimals":-3}]},{"name":"rpt:f-608","factDimensions":{"xbrl:concept":"calx:StandardAndExtendedProductWarrantyAccrualIncreaseForWarrantiesIssuedNet","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-38000","decimals":-3}]},{"name":"rpt:f-609","factDimensions":{"xbrl:concept":"calx:StandardAndExtendedProductWarrantyAccrualIncreaseForWarrantiesIssuedNet","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2268000","decimals":-3}]},{"name":"rpt:f-610","factDimensions":{"xbrl:concept":"calx:StandardAndExtendedProductWarrantyAccrualIncreaseForWarrantiesIssuedNet","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3282000","decimals":-3}]},{"name":"rpt:f-611","factDimensions":{"xbrl:concept":"us-gaap:ProductWarrantyAccrualPayments","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3417000","decimals":-3}]},{"name":"rpt:f-612","factDimensions":{"xbrl:concept":"us-gaap:ProductWarrantyAccrualPayments","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3010000","decimals":-3}]},{"name":"rpt:f-613","factDimensions":{"xbrl:concept":"us-gaap:ProductWarrantyAccrualPayments","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3639000","decimals":-3}]},{"name":"rpt:f-614","factDimensions":{"xbrl:concept":"us-gaap:ProductWarrantyAccrual","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3832000","decimals":-3}]},{"name":"rpt:f-615","factDimensions":{"xbrl:concept":"us-gaap:ProductWarrantyAccrual","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"7287000","decimals":-3}]},{"name":"rpt:f-616","factDimensions":{"xbrl:concept":"us-gaap:ProductWarrantyAccrual","xbrl:period":"2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"8029000","decimals":-3}]},{"name":"rpt:f-617","factDimensions":{"xbrl:concept":"us-gaap:CommitmentsAndContingenciesDisclosureTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Lease Commitments</span></div><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">We lease office space under non-cancelable operating leases. Certain of our operating leases contain renewal options and rent acceleration clauses. Future minimum payments under the non-cancelable operating leases for leases that have commenced consisted of the following as of December\u00a031, 2025 (in\u00a0thousands):</span></div><div style=\"margin-top:10pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.660%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:75.546%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:6.834%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:14.320%\"></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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">2026</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">3,610\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',serif;font-size:9pt;font-weight:400;line-height:100%\">2027</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',serif;font-size:9pt;font-weight:400;line-height:100%\">3,365\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',serif;font-size:9pt;font-weight:400;line-height:100%\">2028</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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,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',serif;font-size:9pt;font-weight:400;line-height:100%\">2029</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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,623\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',serif;font-size:9pt;font-weight:400;line-height:100%\">2030</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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,333\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">3,616\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">18,382\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(2,789)</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">15,593\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:1pt\"><span><br/></span></div><div style=\"margin-top:1pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">As of December\u00a031, 2025, the operating lease liability consisted of the following (in thousands):</span></div><div style=\"margin-top:11pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:79.398%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:3.152%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:14.150%\"></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',serif;font-size:9pt;font-weight:400;line-height:100%\"><span style=\"-sec-ix-hidden:f-623\">Accrued liabilities - current portion of operating leases</span></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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,837\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">12,756\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">15,593\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:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">In December 2024, we entered into a new headquarters office lease agreement for 23,000 square feet in San Jose, California. The lease commenced in August 2025 for a term of 90 months. The future minimum lease payments of $8.9\u00a0million are included in the table above. We recorded a right-of-use operating lease asset and operating lease liability of $7.0\u00a0million in the third quarter of 2025. Our previous lease in San Jose, California expired in October 2025.</span></div><div style=\"margin-bottom:5pt;margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The above tables also include future minimum lease payments for our office facilities in Petaluma, California; Plymouth, Minnesota; Richardson, Texas; Bangalore, India; and Nanjing, China, which expire at various dates through 2031.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The weighted average discount rate for our operating leases as of December\u00a031, 2025 was 5.4%. The weighted average remaining lease term as of December\u00a031, 2025 was 5.7 years.</span></div><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">For the years ended December\u00a031, 2025, 2024 and 2023, total rent expense was $4.5 million, $5.1 million and $4.8 million, respectively. Cash paid within operating cash flows for operating leases was $3.9\u00a0million for the year ended December\u00a031, 2025 and $4.5\u00a0million for each of the years ended December\u00a031, 2024 and 2023.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Purchase Commitments</span></div><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Our CMs and ODMs place orders for component inventory based upon our build forecasts and pursuant to stated component lead times to ensure adequate component supply. The components are used by the CMs and ODMs to build the products included in the build forecasts. We generally do not take ownership of the components held by CMs and ODMs. We place purchase orders with our CMs and ODMs in order to fulfill our monthly finished product inventory requirements. We incur a liability when the CMs and ODMs convert the component inventory to a finished product and takes ownership of the finished goods inventory. As of December\u00a031, 2025 and 2024, we had approximately $317.8\u00a0million and $248.7\u00a0million, respectively, of outstanding purchase commitments to be delivered by our third-party manufacturers and other vendors such as enterprise software vendors.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Litigation</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">From time to time, we are involved in various legal proceedings arising from the normal course of business activities. We are not currently a party to any legal proceeding that, if determined adversely to us, in management's opinion, is currently expected to individually or in the aggregate have a material adverse effect on our 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',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Indemnifications</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">From time to time, we enter 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 we may be required to indemnify property owners for </span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">environmental and other liabilities, and other claims arising from our use of the applicable premises, (ii)\u00a0agreements with our officers, directors and certain employees, under which we may be required to indemnify such persons for liabilities arising out of their relationship with us, (iii)\u00a0contracts under which we may be required to indemnify customers against third-party claims that our product infringes a patent, copyright or other intellectual property right and (iv)\u00a0agreements under which the we may be required to indemnify the counterparty for certain claims that may be brought against them arising from our 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',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, we have 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-618","factDimensions":{"xbrl:concept":"us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"Future minimum payments under the non-cancelable operating leases for leases that have commenced consisted of the following as of December\u00a031, 2025 (in\u00a0thousands):<div style=\"margin-top:10pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.660%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:75.546%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:6.834%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:14.320%\"></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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">2026</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">3,610\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',serif;font-size:9pt;font-weight:400;line-height:100%\">2027</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',serif;font-size:9pt;font-weight:400;line-height:100%\">3,365\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',serif;font-size:9pt;font-weight:400;line-height:100%\">2028</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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,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',serif;font-size:9pt;font-weight:400;line-height:100%\">2029</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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,623\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',serif;font-size:9pt;font-weight:400;line-height:100%\">2030</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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,333\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">3,616\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">18,382\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(2,789)</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">15,593\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-619","factDimensions":{"xbrl:concept":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3610000","decimals":-3}]},{"name":"rpt:f-620","factDimensions":{"xbrl:concept":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3365000","decimals":-3}]},{"name":"rpt:f-621","factDimensions":{"xbrl:concept":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2835000","decimals":-3}]},{"name":"rpt:f-622","factDimensions":{"xbrl:concept":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2623000","decimals":-3}]},{"name":"rpt:f-623","factDimensions":{"xbrl:concept":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2333000","decimals":-3}]},{"name":"rpt:f-624","factDimensions":{"xbrl:concept":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3616000","decimals":-3}]},{"name":"rpt:f-625","factDimensions":{"xbrl:concept":"us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"18382000","decimals":-3}]},{"name":"rpt:f-626","factDimensions":{"xbrl:concept":"us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2789000","decimals":-3}]},{"name":"rpt:f-627","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseLiability","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"15593000","decimals":-3}]},{"name":"rpt:f-628","factDimensions":{"xbrl:concept":"calx:LesseeOperatingLeaseLiabilityTableTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:1pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">As of December\u00a031, 2025, the operating lease liability consisted of the following (in thousands):</span></div><div style=\"margin-top:11pt\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:79.398%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:3.152%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:14.150%\"></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',serif;font-size:9pt;font-weight:400;line-height:100%\"><span style=\"-sec-ix-hidden:f-623\">Accrued liabilities - current portion of operating leases</span></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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,837\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">12,756\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">15,593\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-629","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseLiabilityCurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2837000","decimals":-3}]},{"name":"rpt:f-630","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseLiabilityNoncurrent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"12756000","decimals":-3}]},{"name":"rpt:f-631","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseLiability","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"15593000","decimals":-3}]},{"name":"rpt:f-632","factDimensions":{"xbrl:concept":"calx:OperatingLeaseAreaOfOfficeBuilding","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"utr:sqft","srt:StatementGeographicalAxis":"calx:SanJoseCaliforniaMember"},"factValues":[{"value":"23000","decimals":0}]},{"name":"rpt:f-633","factDimensions":{"xbrl:concept":"us-gaap:LesseeOperatingLeaseLeaseNotYetCommencedTermOfContract1","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","srt:StatementGeographicalAxis":"calx:SanJoseCaliforniaMember"},"factValues":[{"value":"P90M"}]},{"name":"rpt:f-634","factDimensions":{"xbrl:concept":"us-gaap:UnrecordedUnconditionalPurchaseObligationBalanceSheetAmount","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"calx:SanJoseCaliforniaMember"},"factValues":[{"value":"8900000","decimals":-5}]},{"name":"rpt:f-635","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseLiability","xbrl:period":"2025-09-28T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"calx:SanJoseCaliforniaMember"},"factValues":[{"value":"7000000.0","decimals":-5}]},{"name":"rpt:f-636","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseRightOfUseAsset","xbrl:period":"2025-09-28T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"calx:SanJoseCaliforniaMember"},"factValues":[{"value":"7000000.0","decimals":-5}]},{"name":"rpt:f-637","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.054","decimals":3}]},{"name":"rpt:f-638","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"P5Y8M12D"}]},{"name":"rpt:f-639","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseCost","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4500000","decimals":-5}]},{"name":"rpt:f-640","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseCost","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"5100000","decimals":-5}]},{"name":"rpt:f-641","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeaseCost","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4800000","decimals":-5}]},{"name":"rpt:f-642","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeasePayments","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3900000","decimals":-5}]},{"name":"rpt:f-643","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeasePayments","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4500000","decimals":-5}]},{"name":"rpt:f-644","factDimensions":{"xbrl:concept":"us-gaap:OperatingLeasePayments","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4500000","decimals":-5}]},{"name":"rpt:f-645","factDimensions":{"xbrl:concept":"us-gaap:PurchaseCommitmentRemainingMinimumAmountCommitted","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"317800000","decimals":-5}]},{"name":"rpt:f-646","factDimensions":{"xbrl:concept":"us-gaap:PurchaseCommitmentRemainingMinimumAmountCommitted","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"248700000","decimals":-5}]},{"name":"rpt:f-647","factDimensions":{"xbrl:concept":"us-gaap:ShareholdersEquityAndShareBasedPaymentsTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Preferred Stock</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The Board of Directors has the authority, without a further vote of the stockholders, to designate and issue up to 5.0\u00a0million 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 our 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 Calix or other corporate action. Since our 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',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Common Stock</span></div><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Holders of our 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, 2025.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Stock Repurchase Program</span></div><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">We maintain a common stock repurchase program. Under the repurchase program, repurchases can be made from time to time using a variety of methods, which may include open market purchases, privately negotiated transactions or otherwise, all in accordance with the rules of the SEC and other applicable legal requirements. The specific timing, price and size of the purchases depends on prevailing stock prices, general economic and market conditions, and other considerations consistent with our capital allocation strategy. The repurchase program does not obligate us to acquire a particular amount of common stock, and the repurchase program may be suspended or discontinued at any time at our discretion. During the year ended December\u00a031, 2025, we purchased 2.5\u00a0million shares of common stock for $93.6\u00a0million at an average price per share of $37.11. As of December\u00a031, 2025, the remaining authorized balance under this program was $109.3\u00a0million. In January 2026, our Board of Directors authorized a $125.0\u00a0million increase to this program. In 2026 to date, we repurchased $148.7\u00a0million of our common stock.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Equity Incentive Plans</span></div><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:10pt;font-weight:400;line-height:120%\">Employees and consultants of Calix, our subsidiaries and affiliates and our Board of Directors members are eligible to receive awards under the 2019 Equity Incentive Award Plan (the \u201c2019 Plan\u201d). The 2019 Plan provides for the grant of stock options, stock appreciation rights, restricted stock, restricted stock units or other stock or cash-based awards and dividend equivalents to eligible individuals. 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. At our 2025 annual meeting of stockholders, the stockholders approved an increase in the number of shares of common stock issuable under the 2019 Plan by 4.0\u00a0million shares. As of December\u00a031, 2025, there were 3.7 million shares available for issuance under the 2019 Plan.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">In February 2024, PSO awards exercisable for up to an aggregate of 2.4\u00a0million shares of common stock were granted to certain of our executives with a grant date exercise price of $34.26 per share and divided into two plans, with the first plan accounting for 75% of the total shares granted and the second plan accounting for 25% of the total shares granted. The actual number of shares earned was contingent upon achievement of annual financial targets for bookings and non-GAAP net operating income for 2024 (collectively, the \u201c2024 Performance Targets\u201d) during the one-year performance period. In January 2025, the Talent and Compensation Committee (\u201cCompensation Committee\u201d) certified the achievement related to the 2024 Performance Targets </span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">and determined that 58.9% of shares underlying the PSOs were earned, subject to the on-going service condition, and 41.1% of the shares underlying the PSOs were immediately forfeited. Pursuant to the grant, 25% of the earned PSOs were vested and became exercisable on the first anniversary of the grant date, and the remaining 75% of the shares of common stock will vest and become exercisable in substantially equal quarterly installments over the subsequent three years, subject to the executive\u2019s continued service with Calix through the respective vesting dates. Stock-based compensation expense of $6.8\u00a0million and $13.1\u00a0million was recognized for the years ended December\u00a031, 2025 and 2024, respectively, related to these awards.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">In February 2025, stock option awards exercisable for up to an aggregate of 3.1\u00a0million shares of common stock were granted to certain members of our leadership team with a grant date exercise price of $39.68 per share. The actual number of shares earned is contingent upon achievement of annual corporate financial targets for bookings and non-GAAP net operating income for 2025 (collectively, the \u201c2025 Performance Targets\u201d) during the one-year performance period. The stock option awards will vest, subject to certification by the Compensation Committee upon the achievement of the 2025 Performance Targets, as to 25% of the shares of common stock earned on the one year anniversary of the date of grant, and as to the remaining 75% of the shares of common stock earned, in substantially equal quarterly installments over the subsequent 36 months, subject to the executive\u2019s continuous service with Calix through the respective vesting dates. If the combined non-GAAP net operating income target and the bookings target are achieved below 50% of target, 50% of the shares would be awarded, and the balance would be forfeited. If the combined target is achieved at the minimum threshold of 50% of target, then 75% of the shares would be awarded, with an increasing percentage of shares awarded above the minimum thresholds up to 100% of the granted shares for each target. Each target result is then weighted by 50% and the combined total determines the percent of target shares. The maximum combined award is 100%.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">In May 2025, the Compensation Committee modified a departed executive\u2019s stock options to accelerate vesting and extend the exercise period for outstanding grants. As a result, a charge of $4.9\u00a0million was recognized for the year ended December\u00a031, 2025.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">In February 2026, the Compensation Committee certified the achievement related to the 2025 Performance Targets and determined that 100% of shares underlying the stock option awards were earned, subject to the on-going service condition. Stock-based compensation expense of $21.5\u00a0million was recognized for the year ended December\u00a031, 2025 related to these awards.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The following table summarizes the stock option activity under our equity incentive plans (in thousands, except per share data):</span></div><div style=\"margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;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',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',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',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',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',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',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',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',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',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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">Intrinsic</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',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',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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">\u00a0\u00a0\u00a0Value </span><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:9pt;font-weight:400;line-height:100%\">Outstanding as of December 31, 2024</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',serif;font-size:9pt;font-weight:400;line-height:100%\">12,183\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">33.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\"></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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">4,210\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',serif;font-size:9pt;font-weight:400;line-height:100%\">42.10\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(2,071)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">17.10\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(1,112)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">35.00\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Outstanding as of December 31, 2025</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',serif;font-size:9pt;font-weight:400;line-height:100%\">13,210\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">38.87\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',serif;font-size:9pt;font-weight:400;line-height:100%\">6.7</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">206,534\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Vested and expected to vest as of\u00a0December 31, 2025</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',serif;font-size:9pt;font-weight:400;line-height:100%\">12,826\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">38.78\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',serif;font-size:9pt;font-weight:400;line-height:100%\">6.6</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">202,061\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Options vested and exercisable as of December 31, 2025</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',serif;font-size:9pt;font-weight:400;line-height:100%\">7,152\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">36.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 colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">5.2</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">134,242\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',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><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:112%\">(1) Amounts represent the difference between the exercise price and the fair market value of common stock at December 31, 2025 of $52.93 per share for all \u201cin-the-money\u201d options outstanding.</span></div></td></tr></table></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">During the years ended December\u00a031, 2025, 2024 and 2023, total intrinsic value of stock options exercised was $86.5 million, $9.0\u00a0million and $16.7\u00a0million, respectively. Cash received from employee stock option exercises in 2025, 2024 and 2023 was $35.4\u00a0million, $2.8\u00a0million and $5.2\u00a0million, respectively.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">During the year ended December\u00a031, 2025, 38,000 RSAs, with a one-year vesting period, were granted to our Board of Directors with a grant date fair value of $42.65 per share.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:10pt;font-weight:400;line-height:120%\">We maintain two plans under which employees can purchase our common stock - the ESPP and the non-executive SPMP. In March 2025, our Board of Directors approved amending and restating the Third Amended and Restated 2017 Nonqualified </span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Employee Stock Purchase Plan as the SPMP, which better describes the nature of the plan whereby when a non-executive employee buys a share, we match it. Our Board of Directors approval included reserving 2.9\u00a0million shares of our common stock under each of the purchase component and the matching component of the SPMP, including 1.25\u00a0million shares for the matching component subject to stockholder approval, with a corresponding decrease in shares authorized in the ESPP of 2.5\u00a0million shares. At our 2025 annual meeting of stockholders, the stockholders approved an increase to the authorized shares to the SPMP of 1.25\u00a0million shares of common stock under the matching component, resulting in a corresponding decrease in the shares authorized for issuance under the ESPP of 2.5\u00a0million shares. Shares were issued from the SPMP starting with the August 8, 2025 purchase period.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The ESPP allows eligible employees to purchase shares of our common stock through payroll deductions of up to 15% of their eligible compensation subject to certain Internal Revenue Code limitations. In addition, participants may purchase up to 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',serif;font-size:10pt;font-weight:400;line-height:120%\">The offering periods under the ESPP are two six-month offering periods from August 15</span><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:10pt;font-weight:400;line-height:120%\"> through February 14</span><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:10pt;font-weight:400;line-height:120%\"> and February 15</span><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:10pt;font-weight:400;line-height:120%\"> through August 14</span><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:10pt;font-weight:400;line-height:120%\"> of each year. 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. The total shares authorized for issuance under the ESPP is 9.9\u00a0million shares. As of December\u00a031, 2025, there were 1.5\u00a0million shares available for issuance under the ESPP. During the year ended December\u00a031, 2025, 0.3\u00a0million shares were purchased under the ESPP. As of December\u00a031, 2025, 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',serif;font-size:10pt;font-weight:400;line-height:120%\">The SPMP allows eligible employees to purchase shares of our common stock through payroll deductions of up to 25% of their eligible recurring 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 our common stock on the last day of such offering period and (b) receive an equal number of shares of our 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. The SPMP provides quarterly offering periods from February 8</span><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:10pt;font-weight:400;line-height:120%\"> through May 7</span><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:10pt;font-weight:400;line-height:120%\">, May 8</span><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:10pt;font-weight:400;line-height:120%\"> through August 7</span><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:10pt;font-weight:400;line-height:120%\">, August 8</span><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:10pt;font-weight:400;line-height:120%\"> through November 7</span><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:10pt;font-weight:400;line-height:120%\"> and November 8</span><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:10pt;font-weight:400;line-height:120%\"> through February 7</span><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:10pt;font-weight:400;line-height:120%\">of each year, with a maximum of 0.35\u00a0million shares allocated per purchase period.</span></div><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The maximum number of shares of common stock currently authorized for issuance under the SPMP is 5.8\u00a0million shares. As of December\u00a031, 2025, there were 2.8\u00a0million shares available for issuance for each of the SPMP purchase and matching components. During the year ended December\u00a031, 2025, 0.9\u00a0million shares were purchased and issued. As of December\u00a031, 2025, unrecognized stock-based compensation expense of $12.2\u00a0million related to the SPMP is expected to be recognized over a remaining weighted-average service period of 0.8 years.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',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',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-top:10pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;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',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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2025</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',serif;font-size:8pt;font-weight:700;line-height:100%\">2024</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',serif;font-size:8pt;font-weight:700;line-height:100%\">2023</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',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 style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:9pt;font-weight:400;line-height:100%\">3,068\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,933\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,913\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">30,732\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',serif;font-size:9pt;font-weight:400;line-height:100%\">20,810\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',serif;font-size:9pt;font-weight:400;line-height:100%\">16,893\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">23,336\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',serif;font-size:9pt;font-weight:400;line-height:100%\">19,083\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',serif;font-size:9pt;font-weight:400;line-height:100%\">17,000\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">30,851\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',serif;font-size:9pt;font-weight:400;line-height:100%\">27,935\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',serif;font-size:9pt;font-weight:400;line-height:100%\">25,965\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-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:9pt;font-weight:400;line-height:100%\">87,987\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">70,761\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">62,771\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Income tax benefits recognized</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">9,868\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000;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;border-bottom:3pt double #000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">6,964\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000;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;border-bottom:3pt double #000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">10,993\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000;border-top:3pt double #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',serif;font-size:10pt;font-weight:400;line-height:120%\">The following table summarizes the weighted-average grant date fair values of our stock-based awards granted in the periods indicated:</span></div><div style=\"margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2025</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',serif;font-size:8pt;font-weight:700;line-height:100%\">2024</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',serif;font-size:8pt;font-weight:700;line-height:100%\">2023</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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">22.86\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">17.21\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">23.02\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=\"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',serif;font-size:9pt;font-weight:400;line-height:100%\">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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">13.09\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">10.53\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">17.96\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',serif;font-size:9pt;font-weight:400;line-height:100%\">SPMP</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">48.09\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">33.66\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">42.51\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:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">We value employee stock purchase rights under the SPMP at the closing market price of our common stock on the date of grant.</span></div><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">We estimate 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',serif;font-size:10pt;font-weight:400;line-height:120%\">(i)</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:8.57pt\">Expected volatility of our common stock \u2013 We compute our expected volatility assumption based on a blended volatility (50% historical volatility and 50% implied volatility from traded options on our common stock). The selection of a blended volatility assumption was based upon our assessment that a blended volatility is more representative of our 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',serif;font-size:10pt;font-weight:400;line-height:120%\">(ii)</span><span style=\"color:#000000;font-family:'Times New Roman',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. Our 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',serif;font-size:10pt;font-weight:400;line-height:120%\">(iii)</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:3.03pt\">Expected dividend yield \u2013 The assumption is zero based on our 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',serif;font-size:10pt;font-weight:400;line-height:120%\">(iv)</span><span style=\"color:#000000;font-family:'Times New Roman',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',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-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;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',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',serif;font-size:9pt;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',serif;font-size:8pt;font-weight:700;line-height:100%\">2025</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',serif;font-size:8pt;font-weight:700;line-height:100%\">2024</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',serif;font-size:8pt;font-weight:700;line-height:100%\">2023</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">49\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">51\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">52\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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">6.1</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',serif;font-size:9pt;font-weight:400;line-height:100%\">6.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',serif;font-size:9pt;font-weight:400;line-height:100%\">6.1</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></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',serif;font-size:9pt;font-weight:400;line-height:100%\">Risk-free interest rate</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',serif;font-size:9pt;font-weight:400;line-height:100%\">4.27\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',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;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">4.27\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',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;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">4.02\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td></tr></table></div><div style=\"text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;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',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',serif;font-size:9pt;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',serif;font-size:8pt;font-weight:700;line-height:100%\">2025</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',serif;font-size:8pt;font-weight:700;line-height:100%\">2024</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',serif;font-size:8pt;font-weight:700;line-height:100%\">2023</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">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\"><span style=\"color:#000000;font-family:'Times New Roman',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',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',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',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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">0.5</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',serif;font-size:9pt;font-weight:400;line-height:100%\">0.5</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',serif;font-size:9pt;font-weight:400;line-height:100%\">0.5</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></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',serif;font-size:9pt;font-weight:400;line-height:100%\">Risk-free interest rate</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',serif;font-size:9pt;font-weight:400;line-height:100%\">4.22\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',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;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">5.15\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',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;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">5.31\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td></tr></table></div><div style=\"margin-top:4pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">In addition, we apply an estimated forfeiture rate to awards granted and record stock-based compensation expense only for those awards that are expected to vest. Forfeiture rates are estimated at the time of grant based on our historical experience. Further, to the extent our actual forfeiture rate is different from our estimate, stock-based compensation is adjusted accordingly.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">As of December\u00a031, 2025, 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-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;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 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.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.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',serif;font-size:8pt;font-weight:700;line-height:100%\">Stock Option</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',serif;font-size:8pt;font-weight:700;line-height:100%\">RSAs</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',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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">86,413\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">561\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">12,582\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">2.1</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',serif;font-size:10pt;font-weight:400;line-height:100%\">0.4</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',serif;font-size:9pt;font-weight:400;line-height:100%\">0.8</span></td></tr></table></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">We expect to recognize stock-based compensation expense of $55.5 million in 2026, $24.2 million in 2027, $15.8 million in 2028 and $4.1 million in 2029. </span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:10pt;font-weight:400;line-height:120%\">As of December\u00a031, 2025, we had common shares reserved for future issuance as follows (in thousands):</span></div><div style=\"margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">13,210\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',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:#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',serif;font-size:9pt;font-weight:400;line-height:100%\">3,685\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Shares available for future issuance under SPMP</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',serif;font-size:9pt;font-weight:400;line-height:100%\">5,574\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,459\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:0 1pt 0 12.25pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;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',serif;font-size:9pt;font-weight:400;line-height:100%\">23,928\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></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-648","factDimensions":{"xbrl:concept":"us-gaap:PreferredStockSharesAuthorized","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"5000000.0","decimals":-5}]},{"name":"rpt:f-649","factDimensions":{"xbrl:concept":"us-gaap:PreferredStockSharesOutstanding","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"0"}]},{"name":"rpt:f-650","factDimensions":{"xbrl:concept":"us-gaap:PreferredStockSharesOutstanding","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"0"}]},{"name":"rpt:f-651","factDimensions":{"xbrl:concept":"us-gaap:PreferredStockSharesIssued","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"0"}]},{"name":"rpt:f-652","factDimensions":{"xbrl:concept":"us-gaap:PreferredStockSharesIssued","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"0"}]},{"name":"rpt:f-653","factDimensions":{"xbrl:concept":"us-gaap:CommonStockDividendsPerShareDeclared","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"0"}]},{"name":"rpt:f-654","factDimensions":{"xbrl:concept":"us-gaap:CommonStockDividendsPerShareCashPaid","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"0"}]},{"name":"rpt:f-655","factDimensions":{"xbrl:concept":"us-gaap:StockRepurchasedDuringPeriodShares","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"2500000","decimals":-5}]},{"name":"rpt:f-656","factDimensions":{"xbrl:concept":"calx:StockRepurchasedDuringPeriodValueExcludingExciseTax","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"93600000","decimals":-5}]},{"name":"rpt:f-657","factDimensions":{"xbrl:concept":"calx:StockRepurchasedDuringPeriodAverageCostPerShare","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"37.11","decimals":2}]},{"name":"rpt:f-658","factDimensions":{"xbrl:concept":"us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"109300000","decimals":-5}]},{"name":"rpt:f-659","factDimensions":{"xbrl:concept":"calx:ShareRepurchaseProgramAdditionalSharesAuthorizedAmount","xbrl:period":"2026-01-01T00:00:00/2026-02-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:SubsequentEventTypeAxis":"us-gaap:SubsequentEventMember"},"factValues":[{"value":"125000000.0"}]},{"name":"rpt:f-660","factDimensions":{"xbrl:concept":"calx:StockRepurchasedDuringPeriodValueExcludingExciseTax","xbrl:period":"2026-01-01T00:00:00/2026-02-21T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:SubsequentEventTypeAxis":"us-gaap:SubsequentEventMember"},"factValues":[{"value":"148700000","decimals":-5}]},{"name":"rpt:f-661","factDimensions":{"xbrl:concept":"calx:MinimumExercisePriceOfStockOptionPercent","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockOptionMember","us-gaap:VestingAxis":"us-gaap:ShareBasedCompensationAwardTrancheOneMember"},"factValues":[{"value":"1","decimals":2}]},{"name":"rpt:f-662","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockOptionMember","us-gaap:VestingAxis":"us-gaap:ShareBasedCompensationAwardTrancheOneMember"},"factValues":[{"value":"0.25"}]},{"name":"rpt:f-663","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockOptionMember","us-gaap:VestingAxis":"us-gaap:ShareBasedCompensationAwardTrancheTwoMember"},"factValues":[{"value":"P3Y"}]},{"name":"rpt:f-664","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockOptionMember","us-gaap:VestingAxis":"us-gaap:ShareBasedCompensationAwardTrancheTwoMember"},"factValues":[{"value":"P10Y"}]},{"name":"rpt:f-665","factDimensions":{"xbrl:concept":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrantAdditionalShares","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:PlanNameAxis":"calx:A2019EquityIncentiveAwardPlanMember"},"factValues":[{"value":"4000000.0","decimals":-5}]},{"name":"rpt:f-666","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:PlanNameAxis":"calx:A2019EquityIncentiveAwardPlanMember"},"factValues":[{"value":"3700000","decimals":-5}]},{"name":"rpt:f-667","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross","xbrl:period":"2024-02-01T00:00:00/2024-03-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember"},"factValues":[{"value":"2400000"}]},{"name":"rpt:f-668","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","xbrl:period":"2024-02-01T00:00:00/2024-03-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember"},"factValues":[{"value":"34.26","decimals":2}]},{"name":"rpt:f-669","factDimensions":{"xbrl:concept":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPlans","xbrl:period":"2024-03-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"calx:plan","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember"},"factValues":[{"value":"2"}]},{"name":"rpt:f-670","factDimensions":{"xbrl:concept":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodPercentage","xbrl:period":"2024-02-01T00:00:00/2024-03-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","us-gaap:VestingAxis":"us-gaap:ShareBasedCompensationAwardTrancheOneMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember"},"factValues":[{"value":"0.75"}]},{"name":"rpt:f-671","factDimensions":{"xbrl:concept":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodPercentage","xbrl:period":"2024-02-01T00:00:00/2024-03-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","us-gaap:VestingAxis":"us-gaap:ShareBasedCompensationAwardTrancheTwoMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember"},"factValues":[{"value":"0.25"}]},{"name":"rpt:f-672","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardRequisiteServicePeriod1","xbrl:period":"2024-02-01T00:00:00/2024-03-01T00:00:00","xbrl:entity":"cik:0001406666","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember"},"factValues":[{"value":"P1Y"}]},{"name":"rpt:f-673","factDimensions":{"xbrl:concept":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesAwardTargetAchievementPerformanceThresholdPercentageAchieved","xbrl:period":"2025-01-01T00:00:00/2025-02-01T00:00:00","xbrl:entity":"cik:0001406666","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember"},"factValues":[{"value":"0.589","decimals":3}]},{"name":"rpt:f-674","factDimensions":{"xbrl:concept":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardForfeitedPercent","xbrl:period":"2025-01-01T00:00:00/2025-02-01T00:00:00","xbrl:entity":"cik:0001406666","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember"},"factValues":[{"value":"0.411","decimals":3}]},{"name":"rpt:f-675","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage","xbrl:period":"2025-01-01T00:00:00/2025-02-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","us-gaap:VestingAxis":"us-gaap:ShareBasedCompensationAwardTrancheOneMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember"},"factValues":[{"value":"0.25"}]},{"name":"rpt:f-676","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage","xbrl:period":"2025-01-01T00:00:00/2025-02-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","us-gaap:VestingAxis":"us-gaap:ShareBasedCompensationAwardTrancheTwoMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember"},"factValues":[{"value":"0.75"}]},{"name":"rpt:f-677","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1","xbrl:period":"2025-01-01T00:00:00/2025-02-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","us-gaap:VestingAxis":"us-gaap:ShareBasedCompensationAwardTrancheTwoMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember"},"factValues":[{"value":"P3Y"}]},{"name":"rpt:f-678","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensation","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember"},"factValues":[{"value":"6800000","decimals":-5}]},{"name":"rpt:f-679","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensation","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember"},"factValues":[{"value":"13100000","decimals":-5}]},{"name":"rpt:f-680","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross","xbrl:period":"2025-02-01T00:00:00/2025-03-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember"},"factValues":[{"value":"3100000"}]},{"name":"rpt:f-681","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","xbrl:period":"2025-02-01T00:00:00/2025-03-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember"},"factValues":[{"value":"39.68","decimals":2}]},{"name":"rpt:f-682","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardRequisiteServicePeriod1","xbrl:period":"2025-02-01T00:00:00/2025-03-01T00:00:00","xbrl:entity":"cik:0001406666","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember"},"factValues":[{"value":"P1Y"}]},{"name":"rpt:f-683","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage","xbrl:period":"2025-02-01T00:00:00/2025-03-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","us-gaap:VestingAxis":"us-gaap:ShareBasedCompensationAwardTrancheOneMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember"},"factValues":[{"value":"0.25"}]},{"name":"rpt:f-684","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1","xbrl:period":"2025-02-01T00:00:00/2025-03-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","us-gaap:VestingAxis":"us-gaap:ShareBasedCompensationAwardTrancheOneMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember"},"factValues":[{"value":"P1Y"}]},{"name":"rpt:f-685","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardAwardVestingRightsPercentage","xbrl:period":"2025-02-01T00:00:00/2025-03-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","us-gaap:VestingAxis":"us-gaap:ShareBasedCompensationAwardTrancheTwoMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember"},"factValues":[{"value":"0.75"}]},{"name":"rpt:f-686","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1","xbrl:period":"2025-02-01T00:00:00/2025-03-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","us-gaap:VestingAxis":"us-gaap:ShareBasedCompensationAwardTrancheTwoMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember"},"factValues":[{"value":"P36M"}]},{"name":"rpt:f-687","factDimensions":{"xbrl:concept":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardTargetAchievementPerformanceThresholdPercent","xbrl:period":"2025-02-01T00:00:00/2025-03-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","us-gaap:VestingAxis":"us-gaap:ShareBasedCompensationAwardTrancheOneMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember"},"factValues":[{"value":"0.50"}]},{"name":"rpt:f-688","factDimensions":{"xbrl:concept":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesGrantedIfTargetAchievementPerformanceThresholdNotMetPercent","xbrl:period":"2025-02-01T00:00:00/2025-03-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","us-gaap:VestingAxis":"us-gaap:ShareBasedCompensationAwardTrancheOneMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember"},"factValues":[{"value":"0.50"}]},{"name":"rpt:f-689","factDimensions":{"xbrl:concept":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardTargetAchievementPerformanceThresholdPercent","xbrl:period":"2025-02-01T00:00:00/2025-03-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","us-gaap:VestingAxis":"us-gaap:ShareBasedCompensationAwardTrancheTwoMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember"},"factValues":[{"value":"0.50"}]},{"name":"rpt:f-690","factDimensions":{"xbrl:concept":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesGrantedIfTargetAchievementPerformanceThresholdNotMetPercent","xbrl:period":"2025-02-01T00:00:00/2025-03-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","us-gaap:VestingAxis":"us-gaap:ShareBasedCompensationAwardTrancheTwoMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember"},"factValues":[{"value":"0.75"}]},{"name":"rpt:f-691","factDimensions":{"xbrl:concept":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesAwardTargetAchievementPerformanceThresholdPercent","xbrl:period":"2025-02-01T00:00:00/2025-03-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","us-gaap:VestingAxis":"us-gaap:ShareBasedCompensationAwardTrancheOneMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember"},"factValues":[{"value":"1"}]},{"name":"rpt:f-692","factDimensions":{"xbrl:concept":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesAwardWeightedPercentForTargetAchievementPerformanceThresholdPercent","xbrl:period":"2025-02-01T00:00:00/2025-03-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","us-gaap:VestingAxis":"us-gaap:ShareBasedCompensationAwardTrancheOneMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember"},"factValues":[{"value":"0.50"}]},{"name":"rpt:f-693","factDimensions":{"xbrl:concept":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesAwardTargetAchievementPerformanceMaximumCombinedPayoutPercent","xbrl:period":"2025-03-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","us-gaap:VestingAxis":"us-gaap:ShareBasedCompensationAwardTrancheOneMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember"},"factValues":[{"value":"1"}]},{"name":"rpt:f-694","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAcceleratedCompensationCost","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockOptionMember"},"factValues":[{"value":"4900000","decimals":-5}]},{"name":"rpt:f-695","factDimensions":{"xbrl:concept":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesAwardTargetAchievementPerformanceThresholdPercentageAchieved","xbrl:period":"2026-02-01T00:00:00/2026-03-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"calx:PerformanceBasedStockOptionsMember","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember","us-gaap:SubsequentEventTypeAxis":"us-gaap:SubsequentEventMember"},"factValues":[{"value":"1"}]},{"name":"rpt:f-696","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensation","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:TitleOfIndividualAxis":"srt:ExecutiveOfficerMember","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockOptionMember"},"factValues":[{"value":"21500000","decimals":-5}]},{"name":"rpt:f-697","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',serif;font-size:10pt;font-weight:400;line-height:120%\">The following table summarizes the stock option activity under our equity incentive plans (in thousands, except per share data):</span></div><div style=\"margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;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',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',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',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',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',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',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',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',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',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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">Intrinsic</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',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',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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">\u00a0\u00a0\u00a0Value </span><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:9pt;font-weight:400;line-height:100%\">Outstanding as of December 31, 2024</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',serif;font-size:9pt;font-weight:400;line-height:100%\">12,183\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">33.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\"></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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">4,210\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',serif;font-size:9pt;font-weight:400;line-height:100%\">42.10\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(2,071)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">17.10\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(1,112)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">35.00\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Outstanding as of December 31, 2025</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',serif;font-size:9pt;font-weight:400;line-height:100%\">13,210\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">38.87\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',serif;font-size:9pt;font-weight:400;line-height:100%\">6.7</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">206,534\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Vested and expected to vest as of\u00a0December 31, 2025</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',serif;font-size:9pt;font-weight:400;line-height:100%\">12,826\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">38.78\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',serif;font-size:9pt;font-weight:400;line-height:100%\">6.6</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">202,061\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Options vested and exercisable as of December 31, 2025</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',serif;font-size:9pt;font-weight:400;line-height:100%\">7,152\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">36.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 colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">5.2</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">134,242\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',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><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:112%\">(1) Amounts represent the difference between the exercise price and the fair market value of common stock at December 31, 2025 of $52.93 per share for all \u201cin-the-money\u201d options outstanding.</span></div></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-698","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"12183000","decimals":-3}]},{"name":"rpt:f-699","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"33.70","decimals":2}]},{"name":"rpt:f-700","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"4210000","decimals":-3}]},{"name":"rpt:f-701","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"42.10","decimals":2}]},{"name":"rpt:f-702","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"2071000","decimals":-3}]},{"name":"rpt:f-703","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"17.10","decimals":2}]},{"name":"rpt:f-704","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"1112000","decimals":-3}]},{"name":"rpt:f-705","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"35.00","decimals":2}]},{"name":"rpt:f-706","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"13210000","decimals":-3}]},{"name":"rpt:f-707","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"13210000","decimals":-3}]},{"name":"rpt:f-708","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"38.87","decimals":2}]},{"name":"rpt:f-709","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"P6Y8M12D"}]},{"name":"rpt:f-710","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"206534000","decimals":-3}]},{"name":"rpt:f-711","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"12826000","decimals":-3}]},{"name":"rpt:f-712","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"38.78","decimals":2}]},{"name":"rpt:f-713","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"P6Y7M6D"}]},{"name":"rpt:f-714","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"202061000","decimals":-3}]},{"name":"rpt:f-715","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"7152000","decimals":-3}]},{"name":"rpt:f-716","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"36.34","decimals":2}]},{"name":"rpt:f-717","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"P5Y2M12D"}]},{"name":"rpt:f-718","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"134242000","decimals":-3}]},{"name":"rpt:f-719","factDimensions":{"xbrl:concept":"calx:SharebasedCompensationArrangementbySharebasedPaymentAwardOptionsOutstandingIntrinsicValueAmountPerShare","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"52.93","decimals":2}]},{"name":"rpt:f-720","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"86500000","decimals":-5}]},{"name":"rpt:f-721","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"9000000.0","decimals":-5}]},{"name":"rpt:f-722","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"16700000","decimals":-5}]},{"name":"rpt:f-723","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"35400000","decimals":-5}]},{"name":"rpt:f-724","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2800000","decimals":-5}]},{"name":"rpt:f-725","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"5200000","decimals":-5}]},{"name":"rpt:f-726","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","srt:TitleOfIndividualAxis":"calx:BoardOfDirectorsMember","us-gaap:AwardTypeAxis":"us-gaap:RestrictedStockMember"},"factValues":[{"value":"38000","decimals":-3}]},{"name":"rpt:f-727","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","srt:TitleOfIndividualAxis":"calx:BoardOfDirectorsMember","us-gaap:AwardTypeAxis":"us-gaap:RestrictedStockMember"},"factValues":[{"value":"P1Y"}]},{"name":"rpt:f-728","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares","srt:TitleOfIndividualAxis":"calx:BoardOfDirectorsMember","us-gaap:AwardTypeAxis":"us-gaap:RestrictedStockMember"},"factValues":[{"value":"42.65","decimals":2}]},{"name":"rpt:f-729","factDimensions":{"xbrl:concept":"calx:NumberOfEmployeeStockPurchasePlans","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"calx:plan"},"factValues":[{"value":"2"}]},{"name":"rpt:f-730","factDimensions":{"xbrl:concept":"us-gaap:CommonStockCapitalSharesReservedForFutureIssuance","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:PlanNameAxis":"calx:StockPurchaseAndMatchingPlanPurchaseComponentMember","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"2900000","decimals":-5}]},{"name":"rpt:f-731","factDimensions":{"xbrl:concept":"us-gaap:CommonStockCapitalSharesReservedForFutureIssuance","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:PlanNameAxis":"calx:StockPurchaseAndMatchingPlanMatchingComponentMember","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"2900000","decimals":-5}]},{"name":"rpt:f-732","factDimensions":{"xbrl:concept":"calx:CommonStockCapitalSharesReservedForFutureIssuanceSubjectToStockholderApproval","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:PlanNameAxis":"calx:StockPurchaseAndMatchingPlanMatchingComponentMember","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"1250000","decimals":-4}]},{"name":"rpt:f-733","factDimensions":{"xbrl:concept":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardDecreaseInNumberOfAdditionalSharesAuthorized","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:PlanNameAxis":"calx:AmendedAndRestatedEmployeeStockPurchasePlanMember","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"2500000","decimals":-5}]},{"name":"rpt:f-734","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:PlanNameAxis":"calx:StockPurchaseAndMatchingPlanMatchingComponentMember","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"1250000","decimals":-4}]},{"name":"rpt:f-735","factDimensions":{"xbrl:concept":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardDecreaseInNumberOfAdditionalSharesAuthorized","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:PlanNameAxis":"calx:AmendedAndRestatedEmployeeStockPurchasePlanMember","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"2500000","decimals":-5}]},{"name":"rpt:f-736","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:PlanNameAxis":"calx:EmployeeStockPurchasePlanMember","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"0.15"}]},{"name":"rpt:f-737","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumNumberOfSharesPerEmployee","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:PlanNameAxis":"calx:EmployeeStockPurchasePlanMember","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"2000"}]},{"name":"rpt:f-738","factDimensions":{"xbrl:concept":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfOfferingPeriods","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"calx:period","us-gaap:PlanNameAxis":"calx:EmployeeStockPurchasePlanMember","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"2"}]},{"name":"rpt:f-739","factDimensions":{"xbrl:concept":"calx:SharebasedCompensationArrangementbySharebasedPaymentAwardPurchasePriceofCommonStockOfferingPeriod","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:PlanNameAxis":"calx:EmployeeStockPurchasePlanMember","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"P6M"}]},{"name":"rpt:f-740","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardPurchasePriceOfCommonStockPercent","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:PlanNameAxis":"calx:EmployeeStockPurchasePlanMember","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"0.85"}]},{"name":"rpt:f-741","factDimensions":{"xbrl:concept":"calx:SharebasedCompensationArrangementbySharebasedPaymentAwardPurchasePriceofCommonStockOfferingPeriod","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:PlanNameAxis":"calx:EmployeeStockPurchasePlanMember","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"P6M"}]},{"name":"rpt:f-742","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:PlanNameAxis":"calx:EmployeeStockPurchasePlanMember","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"9900000","decimals":-5}]},{"name":"rpt:f-743","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:PlanNameAxis":"calx:EmployeeStockPurchasePlanMember","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"1500000"}]},{"name":"rpt:f-744","factDimensions":{"xbrl:concept":"us-gaap:StockIssuedDuringPeriodSharesEmployeeStockOwnershipPlan","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:PlanNameAxis":"calx:EmployeeStockPurchasePlanMember","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"300000","decimals":-5}]},{"name":"rpt:f-745","factDimensions":{"xbrl:concept":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:PlanNameAxis":"calx:EmployeeStockPurchasePlanMember","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"400000","decimals":-5}]},{"name":"rpt:f-746","factDimensions":{"xbrl:concept":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:PlanNameAxis":"calx:EmployeeStockPurchasePlanMember","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"P0Y1M6D"}]},{"name":"rpt:f-747","factDimensions":{"xbrl:concept":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumContributionPercent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:PlanNameAxis":"calx:StockPurchaseAndMatchingPlanMember","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"0.25"}]},{"name":"rpt:f-748","factDimensions":{"xbrl:concept":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardEmployeeTerminationPeriodFollowingPurchaseDateToReceiveSharesSubjectToRiskOfForfeiture","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:PlanNameAxis":"calx:StockPurchaseAndMatchingPlanMember","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"P1Y"}]},{"name":"rpt:f-749","factDimensions":{"xbrl:concept":"calx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorizedPerPurchasePeriod","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:PlanNameAxis":"calx:StockPurchaseAndMatchingPlanMember","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"350000"}]},{"name":"rpt:f-750","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:PlanNameAxis":"calx:StockPurchaseAndMatchingPlanMember","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"5800000"}]},{"name":"rpt:f-751","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:PlanNameAxis":"calx:StockPurchaseAndMatchingPlanMember","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"2800000","decimals":-5}]},{"name":"rpt:f-752","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesPurchasedForAward","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:PlanNameAxis":"calx:StockPurchaseAndMatchingPlanMember","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"900000","decimals":-5}]},{"name":"rpt:f-753","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:PlanNameAxis":"calx:StockPurchaseAndMatchingPlanMember","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"900000","decimals":-5}]},{"name":"rpt:f-754","factDimensions":{"xbrl:concept":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:PlanNameAxis":"calx:StockPurchaseAndMatchingPlanMember","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"12200000","decimals":-5}]},{"name":"rpt:f-755","factDimensions":{"xbrl:concept":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:PlanNameAxis":"calx:StockPurchaseAndMatchingPlanMember","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"P0Y9M18D"}]},{"name":"rpt:f-756","factDimensions":{"xbrl:concept":"us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',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-top:10pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;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',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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2025</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',serif;font-size:8pt;font-weight:700;line-height:100%\">2024</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',serif;font-size:8pt;font-weight:700;line-height:100%\">2023</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',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 style=\"background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:9pt;font-weight:400;line-height:100%\">3,068\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,933\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,913\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">30,732\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',serif;font-size:9pt;font-weight:400;line-height:100%\">20,810\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',serif;font-size:9pt;font-weight:400;line-height:100%\">16,893\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">23,336\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',serif;font-size:9pt;font-weight:400;line-height:100%\">19,083\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',serif;font-size:9pt;font-weight:400;line-height:100%\">17,000\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">30,851\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',serif;font-size:9pt;font-weight:400;line-height:100%\">27,935\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',serif;font-size:9pt;font-weight:400;line-height:100%\">25,965\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-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:9pt;font-weight:400;line-height:100%\">87,987\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">70,761\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">62,771\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Income tax benefits recognized</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">9,868\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000;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;border-bottom:3pt double #000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">6,964\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000;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;border-bottom:3pt double #000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">$</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">10,993\u00a0</span></td><td style=\"background-color:#ffffff;border-bottom:3pt double #000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-757","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementLocationAxis":"us-gaap:CostOfSalesMember"},"factValues":[{"value":"3068000","decimals":-3}]},{"name":"rpt:f-758","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementLocationAxis":"us-gaap:CostOfSalesMember"},"factValues":[{"value":"2933000","decimals":-3}]},{"name":"rpt:f-759","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementLocationAxis":"us-gaap:CostOfSalesMember"},"factValues":[{"value":"2913000","decimals":-3}]},{"name":"rpt:f-760","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementLocationAxis":"us-gaap:SellingAndMarketingExpenseMember"},"factValues":[{"value":"30732000","decimals":-3}]},{"name":"rpt:f-761","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementLocationAxis":"us-gaap:SellingAndMarketingExpenseMember"},"factValues":[{"value":"20810000","decimals":-3}]},{"name":"rpt:f-762","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementLocationAxis":"us-gaap:SellingAndMarketingExpenseMember"},"factValues":[{"value":"16893000","decimals":-3}]},{"name":"rpt:f-763","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementLocationAxis":"us-gaap:ResearchAndDevelopmentExpenseMember"},"factValues":[{"value":"23336000","decimals":-3}]},{"name":"rpt:f-764","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementLocationAxis":"us-gaap:ResearchAndDevelopmentExpenseMember"},"factValues":[{"value":"19083000","decimals":-3}]},{"name":"rpt:f-765","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementLocationAxis":"us-gaap:ResearchAndDevelopmentExpenseMember"},"factValues":[{"value":"17000000","decimals":-3}]},{"name":"rpt:f-766","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementLocationAxis":"us-gaap:GeneralAndAdministrativeExpenseMember"},"factValues":[{"value":"30851000","decimals":-3}]},{"name":"rpt:f-767","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementLocationAxis":"us-gaap:GeneralAndAdministrativeExpenseMember"},"factValues":[{"value":"27935000","decimals":-3}]},{"name":"rpt:f-768","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeStatementLocationAxis":"us-gaap:GeneralAndAdministrativeExpenseMember"},"factValues":[{"value":"25965000","decimals":-3}]},{"name":"rpt:f-769","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"87987000","decimals":-3}]},{"name":"rpt:f-770","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"70761000","decimals":-3}]},{"name":"rpt:f-771","factDimensions":{"xbrl:concept":"us-gaap:AllocatedShareBasedCompensationExpense","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"62771000","decimals":-3}]},{"name":"rpt:f-772","factDimensions":{"xbrl:concept":"us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"9868000","decimals":-3}]},{"name":"rpt:f-773","factDimensions":{"xbrl:concept":"us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"6964000","decimals":-3}]},{"name":"rpt:f-774","factDimensions":{"xbrl:concept":"us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"10993000","decimals":-3}]},{"name":"rpt:f-775","factDimensions":{"xbrl:concept":"calx:ScheduleOfGrantDateFairValuesTableTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',serif;font-size:10pt;font-weight:400;line-height:120%\">The following table summarizes the weighted-average grant date fair values of our stock-based awards granted in the periods indicated:</span></div><div style=\"margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2025</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',serif;font-size:8pt;font-weight:700;line-height:100%\">2024</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',serif;font-size:8pt;font-weight:700;line-height:100%\">2023</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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">22.86\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">17.21\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">23.02\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=\"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',serif;font-size:9pt;font-weight:400;line-height:100%\">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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">13.09\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">10.53\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">17.96\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',serif;font-size:9pt;font-weight:400;line-height:100%\">SPMP</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">48.09\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">33.66\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">42.51\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-776","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"22.86","decimals":2}]},{"name":"rpt:f-777","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"17.21","decimals":2}]},{"name":"rpt:f-778","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"23.02","decimals":2}]},{"name":"rpt:f-779","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"13.09","decimals":2}]},{"name":"rpt:f-780","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"10.53","decimals":2}]},{"name":"rpt:f-781","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"17.96","decimals":2}]},{"name":"rpt:f-782","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares","us-gaap:PlanNameAxis":"calx:StockPurchaseAndMatchingPlanMember","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"48.09","decimals":2}]},{"name":"rpt:f-783","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares","us-gaap:PlanNameAxis":"calx:StockPurchaseAndMatchingPlanMember","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"33.66","decimals":2}]},{"name":"rpt:f-784","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares","us-gaap:PlanNameAxis":"calx:StockPurchaseAndMatchingPlanMember","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"42.51","decimals":2}]},{"name":"rpt:f-785","factDimensions":{"xbrl:concept":"calx:PercentOfHistoricalVolatility","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.50","decimals":2}]},{"name":"rpt:f-786","factDimensions":{"xbrl:concept":"calx:PercentOfImpliedVolatility","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.50","decimals":2}]},{"name":"rpt:f-787","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',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-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;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',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',serif;font-size:9pt;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',serif;font-size:8pt;font-weight:700;line-height:100%\">2025</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',serif;font-size:8pt;font-weight:700;line-height:100%\">2024</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',serif;font-size:8pt;font-weight:700;line-height:100%\">2023</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">49\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">51\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">52\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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">6.1</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',serif;font-size:9pt;font-weight:400;line-height:100%\">6.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',serif;font-size:9pt;font-weight:400;line-height:100%\">6.1</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></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',serif;font-size:9pt;font-weight:400;line-height:100%\">Risk-free interest rate</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',serif;font-size:9pt;font-weight:400;line-height:100%\">4.27\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',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;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">4.27\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',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;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">4.02\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-788","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockOptionMember"},"factValues":[{"value":"0.49","decimals":2}]},{"name":"rpt:f-789","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockOptionMember"},"factValues":[{"value":"0.51","decimals":2}]},{"name":"rpt:f-790","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockOptionMember"},"factValues":[{"value":"0.52","decimals":2}]},{"name":"rpt:f-791","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockOptionMember"},"factValues":[{"value":"P6Y1M6D"}]},{"name":"rpt:f-792","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockOptionMember"},"factValues":[{"value":"P6Y"}]},{"name":"rpt:f-793","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockOptionMember"},"factValues":[{"value":"P6Y1M6D"}]},{"name":"rpt:f-794","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockOptionMember"},"factValues":[{"value":"0.0427","decimals":4}]},{"name":"rpt:f-795","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockOptionMember"},"factValues":[{"value":"0.0427","decimals":4}]},{"name":"rpt:f-796","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockOptionMember"},"factValues":[{"value":"0.0402","decimals":4}]},{"name":"rpt:f-797","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfShareBasedPaymentAwardEmployeeStockPurchasePlanValuationAssumptionsTableTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;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',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',serif;font-size:9pt;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',serif;font-size:8pt;font-weight:700;line-height:100%\">2025</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',serif;font-size:8pt;font-weight:700;line-height:100%\">2024</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',serif;font-size:8pt;font-weight:700;line-height:100%\">2023</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">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\"><span style=\"color:#000000;font-family:'Times New Roman',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',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',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',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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">0.5</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',serif;font-size:9pt;font-weight:400;line-height:100%\">0.5</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',serif;font-size:9pt;font-weight:400;line-height:100%\">0.5</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></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',serif;font-size:9pt;font-weight:400;line-height:100%\">Risk-free interest rate</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',serif;font-size:9pt;font-weight:400;line-height:100%\">4.22\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',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;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">5.15\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',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;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">5.31\u00a0</span></td><td style=\"background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-798","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"0.41","decimals":2}]},{"name":"rpt:f-799","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"0.48","decimals":2}]},{"name":"rpt:f-800","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"0.47","decimals":2}]},{"name":"rpt:f-801","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"P0Y6M"}]},{"name":"rpt:f-802","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"P0Y6M"}]},{"name":"rpt:f-803","factDimensions":{"xbrl:concept":"us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"P0Y6M"}]},{"name":"rpt:f-804","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"0.0422","decimals":4}]},{"name":"rpt:f-805","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"0.0515","decimals":4}]},{"name":"rpt:f-806","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"0.0531","decimals":4}]},{"name":"rpt:f-807","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfUnrecognizedCompensationCostNonvestedAwardsTableTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',serif;font-size:10pt;font-weight:400;line-height:120%\">As of December\u00a031, 2025, 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-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;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 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.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.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',serif;font-size:8pt;font-weight:700;line-height:100%\">Stock Option</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',serif;font-size:8pt;font-weight:700;line-height:100%\">RSAs</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',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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">86,413\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">561\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">12,582\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">2.1</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',serif;font-size:10pt;font-weight:400;line-height:100%\">0.4</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',serif;font-size:9pt;font-weight:400;line-height:100%\">0.8</span></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-808","factDimensions":{"xbrl:concept":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockOptionMember"},"factValues":[{"value":"86413000","decimals":-3}]},{"name":"rpt:f-809","factDimensions":{"xbrl:concept":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:AwardTypeAxis":"us-gaap:RestrictedStockMember"},"factValues":[{"value":"561000","decimals":-3}]},{"name":"rpt:f-810","factDimensions":{"xbrl:concept":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"12582000","decimals":-3}]},{"name":"rpt:f-811","factDimensions":{"xbrl:concept":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockOptionMember"},"factValues":[{"value":"P2Y1M6D"}]},{"name":"rpt:f-812","factDimensions":{"xbrl:concept":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:RestrictedStockMember"},"factValues":[{"value":"P0Y4M24D"}]},{"name":"rpt:f-813","factDimensions":{"xbrl:concept":"us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"P0Y9M18D"}]},{"name":"rpt:f-814","factDimensions":{"xbrl:concept":"calx:EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationCostNotyetRecognizedToBeRecognizedNextTwelveMonth","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"55500000","decimals":-5}]},{"name":"rpt:f-815","factDimensions":{"xbrl:concept":"calx:EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationCostNotyetRecognizedToBeRecognizedInYearTwo","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"24200000","decimals":-5}]},{"name":"rpt:f-816","factDimensions":{"xbrl:concept":"calx:EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationCostNotyetRecognizedToBeRecognizedInYearThree","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"15800000","decimals":-5}]},{"name":"rpt:f-817","factDimensions":{"xbrl:concept":"calx:EmployeeServiceSharebasedCompensationNonvestedAwardsCompensationCostNotyetRecognizedToBeRecognizedInYearFour","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4100000","decimals":-5}]},{"name":"rpt:f-818","factDimensions":{"xbrl:concept":"calx:SharesReservedForFutureIssuanceTableTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',serif;font-size:10pt;font-weight:400;line-height:120%\">As of December\u00a031, 2025, we had common shares reserved for future issuance as follows (in thousands):</span></div><div style=\"margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">13,210\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',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:#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',serif;font-size:9pt;font-weight:400;line-height:100%\">3,685\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Shares available for future issuance under SPMP</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',serif;font-size:9pt;font-weight:400;line-height:100%\">5,574\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,459\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:0 1pt 0 12.25pt\"></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></td><td colspan=\"2\" style=\"background-color:#cceeff;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',serif;font-size:9pt;font-weight:400;line-height:100%\">23,928\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></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-819","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"13210000","decimals":-3}]},{"name":"rpt:f-820","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"13210000","decimals":-3}]},{"name":"rpt:f-821","factDimensions":{"xbrl:concept":"us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:PlanNameAxis":"calx:A2019PlanMember"},"factValues":[{"value":"3685000","decimals":-3}]},{"name":"rpt:f-822","factDimensions":{"xbrl:concept":"us-gaap:CommonStockCapitalSharesReservedForFutureIssuance","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:PlanNameAxis":"calx:StockPurchaseAndMatchingPlanMember","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"5574000","decimals":-3}]},{"name":"rpt:f-823","factDimensions":{"xbrl:concept":"us-gaap:CommonStockCapitalSharesReservedForFutureIssuance","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","us-gaap:AwardTypeAxis":"us-gaap:EmployeeStockMember"},"factValues":[{"value":"1459000","decimals":-3}]},{"name":"rpt:f-824","factDimensions":{"xbrl:concept":"us-gaap:CommonStockCapitalSharesReservedForFutureIssuance","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"23928000","decimals":-3}]},{"name":"rpt:f-825","factDimensions":{"xbrl:concept":"us-gaap:CompensationAndEmployeeBenefitPlansTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"Employee Benefit Plan<div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">We sponsor 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 </span></div><div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">pursuant to Section\u00a0401(k) of the Internal Revenue Code. At the discretion of the Board of Directors, we may make additional matching contributions on behalf of the participants. We made matching contributions totaling $5.7 million, $5.5 million and $5.2 million in 2025, 2024 and 2023, respectively.</span></div>","language":"en-us"}]},{"name":"rpt:f-826","factDimensions":{"xbrl:concept":"us-gaap:DefinedContributionPlanCostRecognized","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"5700000","decimals":-5}]},{"name":"rpt:f-827","factDimensions":{"xbrl:concept":"us-gaap:DefinedContributionPlanCostRecognized","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"5500000","decimals":-5}]},{"name":"rpt:f-828","factDimensions":{"xbrl:concept":"us-gaap:DefinedContributionPlanCostRecognized","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"5200000","decimals":-5}]},{"name":"rpt:f-829","factDimensions":{"xbrl:concept":"us-gaap:ComprehensiveIncomeNoteTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"Accumulated Other Comprehensive Loss<div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',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-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:80.263%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:51.905%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.710%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:12.561%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.803%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:13.654%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.803%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:12.564%\"></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',serif;font-size:8pt;font-weight:700;line-height:100%\">Unrealized Gains and Losses on Available-for-Sale Marketable Securities</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',serif;font-size:8pt;font-weight:700;line-height:100%\">Foreign Currency Translation Adjustments</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',serif;font-size:8pt;font-weight:700;line-height:100%\">Total</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></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',serif;font-size:9pt;font-weight:400;line-height:100%\">Balance as of December 31, 2023</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">1\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(660)</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(659)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">Other comprehensive 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',serif;font-size:9pt;font-weight:400;line-height:100%\">187\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',serif;font-size:9pt;font-weight:400;line-height:100%\">(140)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">47\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Balance as of December 31, 2024</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',serif;font-size:9pt;font-weight:400;line-height:100%\">188\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',serif;font-size:9pt;font-weight:400;line-height:100%\">(800)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(612)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">Other comprehensive 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',serif;font-size:9pt;font-weight:400;line-height:100%\">343\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',serif;font-size:9pt;font-weight:400;line-height:100%\">(139)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">204\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Balance as of December 31, 2025</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">531\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(939)</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(408)</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',serif;font-size:10pt;font-weight:400;line-height:120%\">Assets and liabilities of our 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, 2025, 2024 or 2023 and were recorded in \u201cOther expense, net\u201d in our Consolidated Statements of Comprehensive Income (Loss). Realized gains and losses on sales of available-for-sale marketable securities, if any, are reclassified from accumulated other comprehensive loss to \u201cOther expense, net\u201d in our Consolidated Statements of Comprehensive Income (Loss).</span></div>","language":"en-us"}]},{"name":"rpt:f-830","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfAccumulatedOtherComprehensiveIncomeLossTableTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',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-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:80.263%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:51.905%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.710%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:12.561%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.803%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:13.654%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.803%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:12.564%\"></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',serif;font-size:8pt;font-weight:700;line-height:100%\">Unrealized Gains and Losses on Available-for-Sale Marketable Securities</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',serif;font-size:8pt;font-weight:700;line-height:100%\">Foreign Currency Translation Adjustments</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',serif;font-size:8pt;font-weight:700;line-height:100%\">Total</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></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',serif;font-size:9pt;font-weight:400;line-height:100%\">Balance as of December 31, 2023</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">1\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(660)</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(659)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">Other comprehensive 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',serif;font-size:9pt;font-weight:400;line-height:100%\">187\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',serif;font-size:9pt;font-weight:400;line-height:100%\">(140)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">47\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Balance as of December 31, 2024</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',serif;font-size:9pt;font-weight:400;line-height:100%\">188\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',serif;font-size:9pt;font-weight:400;line-height:100%\">(800)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(612)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">Other comprehensive 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',serif;font-size:9pt;font-weight:400;line-height:100%\">343\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',serif;font-size:9pt;font-weight:400;line-height:100%\">(139)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">204\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Balance as of December 31, 2025</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">531\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(939)</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(408)</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-831","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AccumulatedNetUnrealizedInvestmentGainLossMember"},"factValues":[{"value":"1000","decimals":-3}]},{"name":"rpt:f-832","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AccumulatedTranslationAdjustmentMember"},"factValues":[{"value":"-660000","decimals":-3}]},{"name":"rpt:f-833","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AccumulatedOtherComprehensiveIncomeMember"},"factValues":[{"value":"-659000","decimals":-3}]},{"name":"rpt:f-834","factDimensions":{"xbrl:concept":"us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AccumulatedNetUnrealizedInvestmentGainLossMember"},"factValues":[{"value":"187000","decimals":-3}]},{"name":"rpt:f-835","factDimensions":{"xbrl:concept":"us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AccumulatedTranslationAdjustmentMember"},"factValues":[{"value":"-140000","decimals":-3}]},{"name":"rpt:f-836","factDimensions":{"xbrl:concept":"us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"47000","decimals":-3}]},{"name":"rpt:f-837","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AccumulatedNetUnrealizedInvestmentGainLossMember"},"factValues":[{"value":"188000","decimals":-3}]},{"name":"rpt:f-838","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AccumulatedTranslationAdjustmentMember"},"factValues":[{"value":"-800000","decimals":-3}]},{"name":"rpt:f-839","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AccumulatedOtherComprehensiveIncomeMember"},"factValues":[{"value":"-612000","decimals":-3}]},{"name":"rpt:f-840","factDimensions":{"xbrl:concept":"us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AccumulatedNetUnrealizedInvestmentGainLossMember"},"factValues":[{"value":"343000","decimals":-3}]},{"name":"rpt:f-841","factDimensions":{"xbrl:concept":"us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AccumulatedTranslationAdjustmentMember"},"factValues":[{"value":"-139000","decimals":-3}]},{"name":"rpt:f-842","factDimensions":{"xbrl:concept":"us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"204000","decimals":-3}]},{"name":"rpt:f-843","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AccumulatedNetUnrealizedInvestmentGainLossMember"},"factValues":[{"value":"531000","decimals":-3}]},{"name":"rpt:f-844","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AccumulatedTranslationAdjustmentMember"},"factValues":[{"value":"-939000","decimals":-3}]},{"name":"rpt:f-845","factDimensions":{"xbrl:concept":"us-gaap:StockholdersEquity","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementEquityComponentsAxis":"us-gaap:AccumulatedOtherComprehensiveIncomeMember"},"factValues":[{"value":"-408000","decimals":-3}]},{"name":"rpt:f-846","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxDisclosureTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',serif;font-size:10pt;font-weight:400;line-height:120%\">The domestic and foreign components of income before incomes taxes were as follows (in thousands):</span></div><div style=\"margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2025</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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2024</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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2023</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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">25,846\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(36,990)</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">30,983\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">8,322\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',serif;font-size:9pt;font-weight:400;line-height:100%\">5,344\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',serif;font-size:9pt;font-weight:400;line-height:100%\">3,774\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">34,168\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(31,646)</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">34,757\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;text-indent:18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Income taxes consisted of the following (in thousands):</span></div><div style=\"margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2025</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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2024</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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2023</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">Federal</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(464)</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">3,181\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(2,407)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">State</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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,773\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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,110\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',serif;font-size:9pt;font-weight:400;line-height:100%\">6,493\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,064\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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,779\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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,006\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Current income tax</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',serif;font-size:9pt;font-weight:400;line-height:100%\">3,373\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',serif;font-size:9pt;font-weight:400;line-height:100%\">8,070\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',serif;font-size:9pt;font-weight:400;line-height:100%\">6,092\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\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Deferred:</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000;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 #000;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 #000;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',serif;font-size:9pt;font-weight:400;line-height:100%\">Federal</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',serif;font-size:9pt;font-weight:400;line-height:100%\">13,573\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',serif;font-size:9pt;font-weight:400;line-height:100%\">(8,120)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,050\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',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 colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">(166)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(926)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(2,525)</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(496)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(923)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(185)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">Deferred 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',serif;font-size:9pt;font-weight:400;line-height:100%\">12,911\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',serif;font-size:9pt;font-weight:400;line-height:100%\">(9,969)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(660)</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:0 1pt 0 37pt\"></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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">16,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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(1,899)</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">5,432\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:4pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The effective income tax rate for the year ended December 31, 2025 differs from the statutory federal income tax rate as follows (dollars in thousands):</span></div><div style=\"margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;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',serif;font-size:8pt;font-weight:700;line-height:100%\">December 31, 2025</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',serif;font-size:9pt;font-weight:400;line-height:100%\">Provision for income taxes at U.S. federal statutory rate</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">7,175\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;border-top:1pt solid #000;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',serif;font-size:9pt;font-weight:400;line-height:100%\">21.0\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:9pt;font-weight:400;line-height:100%\">U.S. federal tax:</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></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Non-taxable or non-deductible items:</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></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',serif;font-size:9pt;font-weight:400;line-height:100%\">Share-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',serif;font-size:9pt;font-weight:400;line-height:100%\">8,242\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',serif;font-size:9pt;font-weight:400;line-height:100%\">24.1\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Executive 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',serif;font-size:9pt;font-weight:400;line-height:100%\">666\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',serif;font-size:9pt;font-weight:400;line-height:100%\">1.9\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Entertainment</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',serif;font-size:9pt;font-weight:400;line-height:100%\">517\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',serif;font-size:9pt;font-weight:400;line-height:100%\">1.5\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">70\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',serif;font-size:9pt;font-weight:400;line-height:100%\">0.2\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 7pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Effects of cross-border tax laws</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',serif;font-size:9pt;font-weight:400;line-height:100%\">130\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',serif;font-size:9pt;font-weight:400;line-height:100%\">0.4\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 7pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Tax credits:</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></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',serif;font-size:9pt;font-weight:400;line-height:100%\">Research and development tax credit</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(3,182)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(9.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 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Foreign tax credit</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',serif;font-size:9pt;font-weight:400;line-height:100%\">384\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',serif;font-size:9pt;font-weight:400;line-height:100%\">1.1\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Changes in unrecognized tax benefits</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',serif;font-size:9pt;font-weight:400;line-height:100%\">238\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',serif;font-size:9pt;font-weight:400;line-height:100%\">0.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 2px 7pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Other Adjustments</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',serif;font-size:9pt;font-weight:400;line-height:100%\">111\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',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\"><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">State and local income tax, net of federal benefit </span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline\">(1)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,091\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',serif;font-size:9pt;font-weight:400;line-height:100%\">3.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',serif;font-size:9pt;font-weight:400;line-height:100%\">Foreign tax effects:</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></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',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=\"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',serif;font-size:9pt;font-weight:400;line-height:100%\">Non-deductible share-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',serif;font-size:9pt;font-weight:400;line-height:100%\">480\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',serif;font-size:9pt;font-weight:400;line-height:100%\">1.4\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(190)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(0.5)</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 7pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">India:</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></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',serif;font-size:9pt;font-weight:400;line-height:100%\">Withholding tax on repatriation</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',serif;font-size:9pt;font-weight:400;line-height:100%\">457\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',serif;font-size:9pt;font-weight:400;line-height:100%\">1.3\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">44\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',serif;font-size:9pt;font-weight:400;line-height:100%\">0.1\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 7pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Other foreign jurisdictions</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',serif;font-size:9pt;font-weight:400;line-height:100%\">51\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',serif;font-size:9pt;font-weight:400;line-height:100%\">0.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:0 1pt 0 25.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 #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:9pt;font-weight:400;line-height:100%\">16,284\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 colspan=\"2\" style=\"background-color:#cceeff;border-bottom:3pt double #000000;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',serif;font-size:9pt;font-weight:400;line-height:100%\">47.6\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\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td></tr></table></div><div style=\"margin-top:5pt;padding-left:22.5pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:5.85pt;font-weight:400;line-height:112%;position:relative;top:-3.15pt;vertical-align:baseline\">(1)</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:112%\"> During the year ended December 31, 2025, state taxes in Florida, Pennsylvania, South Carolina and Texas comprised greater than 50% of the tax effect in this category.</span></div><div style=\"margin-top:1pt\"><span><br/></span></div><div style=\"margin-top:4pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">As previously disclosed, prior to the adoption of ASU 2023-09, the effective income tax rate differs from the statutory federal income tax rate as follows:</span></div><div style=\"margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:91.666%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:71.467%\"></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.554%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.861%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.554%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.864%\"></td><td style=\"width:0.1%\"></td></tr><tr><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: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',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=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2024</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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2023</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',serif;font-size:9pt;font-weight:400;line-height:100%\">Federal statutory rate</span></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 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',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',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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">Impact of state taxes</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=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">0.9\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',serif;font-size:9pt;font-weight:400;line-height:100%\">2.6\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Foreign operations</span></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 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',serif;font-size:9pt;font-weight:400;line-height:100%\">(4.2)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">0.8\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',serif;font-size:9pt;font-weight:400;line-height:100%\">R&amp;D tax credits</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=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">14.0\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',serif;font-size:9pt;font-weight:400;line-height:100%\">(13.5)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">U.S. tax impact of foreign operations</span></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 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',serif;font-size:9pt;font-weight:400;line-height:100%\">(0.4)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(2.4)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">Stock-based compensation</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=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">(24.3)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">8.8\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Other permanent items</span></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 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',serif;font-size:9pt;font-weight:400;line-height:100%\">(1.7)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">2.5\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Provision to return adjustments</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=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">6.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',serif;font-size:9pt;font-weight:400;line-height:100%\">(9.7)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">Valuation allowance</span></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 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',serif;font-size:9pt;font-weight:400;line-height:100%\">(2.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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">Attribute expiration</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=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">(0.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',serif;font-size:9pt;font-weight:400;line-height:100%\">0.8\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Uncertain tax positions</span></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 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',serif;font-size:9pt;font-weight:400;line-height:100%\">(3.5)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">4.7\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=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></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 #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">6.0\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\"><span style=\"color:#000000;font-family:'Times New Roman',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 #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">15.6\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\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td></tr></table></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The significant components of our deferred tax assets were as follows (in thousands):</span></div><div style=\"margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2025</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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2024</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',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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">22,836\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',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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">59,049\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',serif;font-size:9pt;font-weight:400;line-height:100%\">53,788\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Inventory</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',serif;font-size:9pt;font-weight:400;line-height:100%\">13,090\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',serif;font-size:9pt;font-weight:400;line-height:100%\">14,737\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">4,618\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',serif;font-size:9pt;font-weight:400;line-height:100%\">5,017\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">7,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',serif;font-size:9pt;font-weight:400;line-height:100%\">9,476\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">14,122\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',serif;font-size:9pt;font-weight:400;line-height:100%\">13,787\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Lease 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',serif;font-size:9pt;font-weight:400;line-height:100%\">3,383\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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,445\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Capitalized R&amp;D</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',serif;font-size:9pt;font-weight:400;line-height:100%\">78,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=\"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',serif;font-size:9pt;font-weight:400;line-height:100%\">110,581\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,254\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',serif;font-size:9pt;font-weight:400;line-height:100%\">701\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Gross deferred tax assets</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',serif;font-size:9pt;font-weight:400;line-height:100%\">204,246\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',serif;font-size:9pt;font-weight:400;line-height:100%\">210,937\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 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Valuation allowance</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(32,325)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(30,571)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">Total deferred tax assets</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',serif;font-size:9pt;font-weight:400;line-height:100%\">171,921\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',serif;font-size:9pt;font-weight:400;line-height:100%\">180,366\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\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Deferred tax liabilities:</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000;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 #000;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',serif;font-size:9pt;font-weight:400;line-height:100%\">Fixed 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',serif;font-size:9pt;font-weight:400;line-height:100%\">(3,127)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(1,760)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">Right of use 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',serif;font-size:9pt;font-weight:400;line-height:100%\">(3,159)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(1,006)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">Undistributed earnings of foreign subsidiaries</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(1,056)</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',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 25.75pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Total deferred tax liabilities</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(7,342)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(2,766)</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:0 1pt 0 25.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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">164,579\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">177,600\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:1pt\"><span><br/></span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:10pt;font-weight:400;line-height:120%\">A valuation allowance is required when, based upon an assessment of various factors, including recent operating loss history, anticipated future earnings, and prudent and reasonable tax planning strategies, it is more likely than not that some portion of the deferred tax assets will not be realized. At each reporting period, we assess the estimated future realizability of the gross carrying value of our deferred tax assets. Our periodic assessments take into consideration both positive evidence (future profitability projections for example and recent financial performance) and negative evidence (historical financial performance for example) as it relates to evaluating the future recoverability of our deferred tax assets. The valuation allowance increased by $1.8\u00a0million from 2024 to 2025. We continue to maintain a valuation allowance of $32.3\u00a0million on certain California state deferred tax assets that we believe are not more likely than not to be realized in future periods. </span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">As of December\u00a031, 2025, we had a U.S. federal net operating loss of approximately $96.8\u00a0million that does not expire and $41.1\u00a0million of state net operating losses which will expire at various dates through 2040 if not utilized. Additionally, we have U.S. federal, California and other state research and development credits of approximately $45.5\u00a0million, $55.3\u00a0million and $2.6\u00a0million as of December\u00a031, 2025, respectively. The U.S. federal research and development credits will expire at various dates through 2045 if not utilized. The California research 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 2040.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%\">Income Taxes Paid</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Income taxes paid (net of refunds) were as follows (in thousands):</span></div><div style=\"margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:95.175%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:78.316%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.489%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:17.795%\"></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: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',serif;font-size:8pt;font-weight:700;line-height:100%\">Year Ended<br/> December 31, 2025</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=\"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',serif;font-size:9pt;font-weight:400;line-height:100%\">Federal</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,294\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;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">States:</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt\"></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',serif;font-size:9pt;font-weight:400;line-height:100%\">Pennsylvania</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',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=\"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',serif;font-size:9pt;font-weight:400;line-height:100%\">South Carolina</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',serif;font-size:9pt;font-weight:400;line-height:100%\">359\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:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,447\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><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 25.75pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Total state</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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,256\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=\"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',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=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt\"></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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">780\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:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">India</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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,371\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><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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">183\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:2px 1pt 2px 25.75pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Total foreign</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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,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=\"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:#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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">6,884\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=\"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 style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Cash taxes paid prior to the adoption of ASU 2023-09 were $5.9\u00a0million in 2024 and $11.9\u00a0million in 2023.</span></div><div style=\"margin-top:9pt\"><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:10pt;font-weight:400;line-height:120%\">ASC 740, </span><span style=\"color:#000000;font-family:'Times New Roman',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',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 us 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. We recognize accrued interest and penalties related to unrecognized tax benefits as interest expense and income tax expense, respectively, in our Consolidated Statements of Comprehensive Income (Loss).</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Our unrecognized tax benefits were as follows (in thousands):</span></div><div style=\"margin-top:6pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:61.125%\"></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:9.880%\"></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:9.880%\"></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:9.885%\"></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',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 #000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:8pt;font-weight:700;line-height:100%\">2025</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></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',serif;font-size:8pt;font-weight:700;line-height:100%\">2024</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',serif;font-size:8pt;font-weight:700;line-height:100%\">2023</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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">34,638\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">32,449\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">29,215\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',serif;font-size:9pt;font-weight:400;line-height:100%\">\u00a0\u00a0\u00a0\u00a0Reduction 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',serif;font-size:9pt;font-weight:400;line-height:100%\">(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',serif;font-size:9pt;font-weight:400;line-height:100%\">(121)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(19)</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 7.75pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">\u00a0\u00a0\u00a0\u00a0Additions for tax positions related to prior 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',serif;font-size:9pt;font-weight:400;line-height:100%\">275\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">580\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 7.75pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',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:#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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,389\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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,310\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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,673\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Balance at end of year</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">37,298\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">34,638\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">32,449\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:6pt;margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">As of December\u00a031, 2025 and 2024, we had unrecognized tax benefits of $37.3\u00a0million and $34.6\u00a0million, respectively, $20.6\u00a0million of which would affect our effective tax rate if recognized. Accrued interest or penalties for uncertain tax positions as of December\u00a031, 2025 was not significant.</span></div><div style=\"margin-bottom:6pt;margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">We file tax returns in the United States and various state jurisdictions, China, India, Ireland and the United Kingdom. The tax years 2000 through 2025 remain open and subject to examination by the appropriate governmental agencies due to tax attribute carryforwards. We are currently under examination in India, and no adjustments have been proposed to date.</span></div><div style=\"margin-bottom:6pt;margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">In December 2021, the Organization for Economic Cooperation and Development enacted model rules for a new global minimum tax framework (\u201cPillar Two\u201d), and certain governments in countries which we operate have enacted local Pillar Two legislation, with an effective date from January 1, 2024. We currently do not expect Pillar Two to have a material impact on our financial statements.</span></div><div style=\"margin-bottom:6pt;margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">In July 2025, President Trump signed the One Big Beautiful Bill Act (\"OBBBA\"), which includes a broad range of tax reform provisions affecting businesses. The OBBBA includes numerous changes to existing tax law including extending or making permanent certain business and international tax measures initially established under the 2017 Tax Cuts and Jobs Act, which were set to expire. Additionally, the OBBBA permanently eliminates the requirement to capitalize and amortize U.S.-based research and experimental expenditures over five years, making these expenditures fully deductible in the period incurred. The Company has accounted for the effects of the OBBBA in the financial statements for the period ended December 31, 2025, of which the primary impact is a reduction of current tax liabilities and a corresponding reduction in deferred tax assets. The </span></div><div style=\"margin-bottom:6pt;margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Company will continue to evaluate the impacts of OBBBA including the potential impacts on future periods and tax planning strategies.</span></div>","language":"en-us"}]},{"name":"rpt:f-847","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',serif;font-size:10pt;font-weight:400;line-height:120%\">The domestic and foreign components of income before incomes taxes were as follows (in thousands):</span></div><div style=\"margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2025</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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2024</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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2023</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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">25,846\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(36,990)</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">30,983\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">8,322\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',serif;font-size:9pt;font-weight:400;line-height:100%\">5,344\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',serif;font-size:9pt;font-weight:400;line-height:100%\">3,774\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">34,168\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(31,646)</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">34,757\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-848","factDimensions":{"xbrl:concept":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"25846000","decimals":-3}]},{"name":"rpt:f-849","factDimensions":{"xbrl:concept":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-36990000","decimals":-3}]},{"name":"rpt:f-850","factDimensions":{"xbrl:concept":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"30983000","decimals":-3}]},{"name":"rpt:f-851","factDimensions":{"xbrl:concept":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"8322000","decimals":-3}]},{"name":"rpt:f-852","factDimensions":{"xbrl:concept":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"5344000","decimals":-3}]},{"name":"rpt:f-853","factDimensions":{"xbrl:concept":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3774000","decimals":-3}]},{"name":"rpt:f-854","factDimensions":{"xbrl:concept":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"34168000","decimals":-3}]},{"name":"rpt:f-855","factDimensions":{"xbrl:concept":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-31646000","decimals":-3}]},{"name":"rpt:f-856","factDimensions":{"xbrl:concept":"us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"34757000","decimals":-3}]},{"name":"rpt:f-857","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:9pt;text-indent:18pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Income taxes consisted of the following (in thousands):</span></div><div style=\"margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2025</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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2024</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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2023</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">Federal</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(464)</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">3,181\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(2,407)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">State</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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,773\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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,110\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',serif;font-size:9pt;font-weight:400;line-height:100%\">6,493\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,064\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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,779\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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,006\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Current income tax</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',serif;font-size:9pt;font-weight:400;line-height:100%\">3,373\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',serif;font-size:9pt;font-weight:400;line-height:100%\">8,070\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',serif;font-size:9pt;font-weight:400;line-height:100%\">6,092\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\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Deferred:</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000;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 #000;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 #000;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',serif;font-size:9pt;font-weight:400;line-height:100%\">Federal</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',serif;font-size:9pt;font-weight:400;line-height:100%\">13,573\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',serif;font-size:9pt;font-weight:400;line-height:100%\">(8,120)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,050\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',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 colspan=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">(166)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(926)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(2,525)</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(496)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(923)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(185)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">Deferred 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',serif;font-size:9pt;font-weight:400;line-height:100%\">12,911\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',serif;font-size:9pt;font-weight:400;line-height:100%\">(9,969)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(660)</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:0 1pt 0 37pt\"></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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">16,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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(1,899)</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">5,432\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-858","factDimensions":{"xbrl:concept":"us-gaap:CurrentFederalTaxExpenseBenefit","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-464000","decimals":-3}]},{"name":"rpt:f-859","factDimensions":{"xbrl:concept":"us-gaap:CurrentFederalTaxExpenseBenefit","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3181000","decimals":-3}]},{"name":"rpt:f-860","factDimensions":{"xbrl:concept":"us-gaap:CurrentFederalTaxExpenseBenefit","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-2407000","decimals":-3}]},{"name":"rpt:f-861","factDimensions":{"xbrl:concept":"us-gaap:CurrentStateAndLocalTaxExpenseBenefit","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1773000","decimals":-3}]},{"name":"rpt:f-862","factDimensions":{"xbrl:concept":"us-gaap:CurrentStateAndLocalTaxExpenseBenefit","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2110000","decimals":-3}]},{"name":"rpt:f-863","factDimensions":{"xbrl:concept":"us-gaap:CurrentStateAndLocalTaxExpenseBenefit","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"6493000","decimals":-3}]},{"name":"rpt:f-864","factDimensions":{"xbrl:concept":"us-gaap:CurrentForeignTaxExpenseBenefit","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2064000","decimals":-3}]},{"name":"rpt:f-865","factDimensions":{"xbrl:concept":"us-gaap:CurrentForeignTaxExpenseBenefit","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2779000","decimals":-3}]},{"name":"rpt:f-866","factDimensions":{"xbrl:concept":"us-gaap:CurrentForeignTaxExpenseBenefit","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2006000","decimals":-3}]},{"name":"rpt:f-867","factDimensions":{"xbrl:concept":"us-gaap:CurrentIncomeTaxExpenseBenefit","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3373000","decimals":-3}]},{"name":"rpt:f-868","factDimensions":{"xbrl:concept":"us-gaap:CurrentIncomeTaxExpenseBenefit","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"8070000","decimals":-3}]},{"name":"rpt:f-869","factDimensions":{"xbrl:concept":"us-gaap:CurrentIncomeTaxExpenseBenefit","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"6092000","decimals":-3}]},{"name":"rpt:f-870","factDimensions":{"xbrl:concept":"us-gaap:DeferredFederalIncomeTaxExpenseBenefit","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"13573000","decimals":-3}]},{"name":"rpt:f-871","factDimensions":{"xbrl:concept":"us-gaap:DeferredFederalIncomeTaxExpenseBenefit","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-8120000","decimals":-3}]},{"name":"rpt:f-872","factDimensions":{"xbrl:concept":"us-gaap:DeferredFederalIncomeTaxExpenseBenefit","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2050000","decimals":-3}]},{"name":"rpt:f-873","factDimensions":{"xbrl:concept":"us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-166000","decimals":-3}]},{"name":"rpt:f-874","factDimensions":{"xbrl:concept":"us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-926000","decimals":-3}]},{"name":"rpt:f-875","factDimensions":{"xbrl:concept":"us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-2525000","decimals":-3}]},{"name":"rpt:f-876","factDimensions":{"xbrl:concept":"us-gaap:DeferredForeignIncomeTaxExpenseBenefit","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-496000","decimals":-3}]},{"name":"rpt:f-877","factDimensions":{"xbrl:concept":"us-gaap:DeferredForeignIncomeTaxExpenseBenefit","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-923000","decimals":-3}]},{"name":"rpt:f-878","factDimensions":{"xbrl:concept":"us-gaap:DeferredForeignIncomeTaxExpenseBenefit","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-185000","decimals":-3}]},{"name":"rpt:f-879","factDimensions":{"xbrl:concept":"us-gaap:DeferredIncomeTaxExpenseBenefit","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"12911000","decimals":-3}]},{"name":"rpt:f-880","factDimensions":{"xbrl:concept":"us-gaap:DeferredIncomeTaxExpenseBenefit","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-9969000","decimals":-3}]},{"name":"rpt:f-881","factDimensions":{"xbrl:concept":"us-gaap:DeferredIncomeTaxExpenseBenefit","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-660000","decimals":-3}]},{"name":"rpt:f-882","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxExpenseBenefit","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"16284000","decimals":-3}]},{"name":"rpt:f-883","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxExpenseBenefit","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-1899000","decimals":-3}]},{"name":"rpt:f-884","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxExpenseBenefit","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"5432000","decimals":-3}]},{"name":"rpt:f-885","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"<div style=\"margin-top:4pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The effective income tax rate for the year ended December 31, 2025 differs from the statutory federal income tax rate as follows (dollars in thousands):</span></div><div style=\"margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;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',serif;font-size:8pt;font-weight:700;line-height:100%\">December 31, 2025</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',serif;font-size:9pt;font-weight:400;line-height:100%\">Provision for income taxes at U.S. federal statutory rate</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">7,175\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;border-top:1pt solid #000;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',serif;font-size:9pt;font-weight:400;line-height:100%\">21.0\u00a0</span></td><td style=\"background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:9pt;font-weight:400;line-height:100%\">U.S. federal tax:</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></tr><tr><td colspan=\"3\" style=\"background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Non-taxable or non-deductible items:</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></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',serif;font-size:9pt;font-weight:400;line-height:100%\">Share-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',serif;font-size:9pt;font-weight:400;line-height:100%\">8,242\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',serif;font-size:9pt;font-weight:400;line-height:100%\">24.1\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Executive 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',serif;font-size:9pt;font-weight:400;line-height:100%\">666\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',serif;font-size:9pt;font-weight:400;line-height:100%\">1.9\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Entertainment</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',serif;font-size:9pt;font-weight:400;line-height:100%\">517\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',serif;font-size:9pt;font-weight:400;line-height:100%\">1.5\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">70\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',serif;font-size:9pt;font-weight:400;line-height:100%\">0.2\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 7pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Effects of cross-border tax laws</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',serif;font-size:9pt;font-weight:400;line-height:100%\">130\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',serif;font-size:9pt;font-weight:400;line-height:100%\">0.4\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 7pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Tax credits:</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></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',serif;font-size:9pt;font-weight:400;line-height:100%\">Research and development tax credit</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(3,182)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(9.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 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Foreign tax credit</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',serif;font-size:9pt;font-weight:400;line-height:100%\">384\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',serif;font-size:9pt;font-weight:400;line-height:100%\">1.1\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Changes in unrecognized tax benefits</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',serif;font-size:9pt;font-weight:400;line-height:100%\">238\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',serif;font-size:9pt;font-weight:400;line-height:100%\">0.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 2px 7pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Other Adjustments</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',serif;font-size:9pt;font-weight:400;line-height:100%\">111\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',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\"><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">State and local income tax, net of federal benefit </span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline\">(1)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,091\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',serif;font-size:9pt;font-weight:400;line-height:100%\">3.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',serif;font-size:9pt;font-weight:400;line-height:100%\">Foreign tax effects:</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></tr><tr><td colspan=\"3\" style=\"background-color:#ffffff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',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=\"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',serif;font-size:9pt;font-weight:400;line-height:100%\">Non-deductible share-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',serif;font-size:9pt;font-weight:400;line-height:100%\">480\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',serif;font-size:9pt;font-weight:400;line-height:100%\">1.4\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(190)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(0.5)</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 7pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">India:</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></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',serif;font-size:9pt;font-weight:400;line-height:100%\">Withholding tax on repatriation</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',serif;font-size:9pt;font-weight:400;line-height:100%\">457\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',serif;font-size:9pt;font-weight:400;line-height:100%\">1.3\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">44\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',serif;font-size:9pt;font-weight:400;line-height:100%\">0.1\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 7pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Other foreign jurisdictions</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',serif;font-size:9pt;font-weight:400;line-height:100%\">51\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',serif;font-size:9pt;font-weight:400;line-height:100%\">0.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:0 1pt 0 25.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 #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:9pt;font-weight:400;line-height:100%\">16,284\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 colspan=\"2\" style=\"background-color:#cceeff;border-bottom:3pt double #000000;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',serif;font-size:9pt;font-weight:400;line-height:100%\">47.6\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\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td></tr></table></div><div style=\"margin-top:5pt;padding-left:22.5pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:5.85pt;font-weight:400;line-height:112%;position:relative;top:-3.15pt;vertical-align:baseline\">(1)</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:112%\"> During the year ended December 31, 2025, state taxes in Florida, Pennsylvania, South Carolina and Texas comprised greater than 50% of the tax effect in this category.</span></div><div style=\"margin-top:1pt\"><span><br/></span></div><div style=\"margin-top:4pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">As previously disclosed, prior to the adoption of ASU 2023-09, the effective income tax rate differs from the statutory federal income tax rate as follows:</span></div><div style=\"margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:91.666%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:71.467%\"></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.554%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.861%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.554%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:10.864%\"></td><td style=\"width:0.1%\"></td></tr><tr><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: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',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=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2024</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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2023</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',serif;font-size:9pt;font-weight:400;line-height:100%\">Federal statutory rate</span></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 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',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',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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">Impact of state taxes</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=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">0.9\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',serif;font-size:9pt;font-weight:400;line-height:100%\">2.6\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Foreign operations</span></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 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',serif;font-size:9pt;font-weight:400;line-height:100%\">(4.2)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">0.8\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',serif;font-size:9pt;font-weight:400;line-height:100%\">R&amp;D tax credits</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=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">14.0\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',serif;font-size:9pt;font-weight:400;line-height:100%\">(13.5)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">U.S. tax impact of foreign operations</span></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 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',serif;font-size:9pt;font-weight:400;line-height:100%\">(0.4)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(2.4)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">Stock-based compensation</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=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">(24.3)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">8.8\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Other permanent items</span></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 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',serif;font-size:9pt;font-weight:400;line-height:100%\">(1.7)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">2.5\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Provision to return adjustments</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=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">6.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',serif;font-size:9pt;font-weight:400;line-height:100%\">(9.7)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">Valuation allowance</span></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 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',serif;font-size:9pt;font-weight:400;line-height:100%\">(2.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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">Attribute expiration</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=\"2\" style=\"background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">(0.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',serif;font-size:9pt;font-weight:400;line-height:100%\">0.8\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Uncertain tax positions</span></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 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',serif;font-size:9pt;font-weight:400;line-height:100%\">(3.5)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">4.7\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=\"display:none\"></td><td colspan=\"3\" style=\"display:none\"></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 #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">6.0\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\"><span style=\"color:#000000;font-family:'Times New Roman',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 #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">15.6\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\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">%</span></td></tr></table></div>","language":"en-us"}]},{"name":"rpt:f-886","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"7175000","decimals":-3}]},{"name":"rpt:f-887","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.210"}]},{"name":"rpt:f-888","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeTaxAuthorityAxis":"country:US"},"factValues":[{"value":"8242000","decimals":-3}]},{"name":"rpt:f-889","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:IncomeTaxAuthorityAxis":"country:US"},"factValues":[{"value":"0.241","decimals":3}]},{"name":"rpt:f-890","factDimensions":{"xbrl:concept":"calx:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensationAmount","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"666000","decimals":-3}]},{"name":"rpt:f-891","factDimensions":{"xbrl:concept":"calx:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseExecutiveCompensationPercent","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.019","decimals":3}]},{"name":"rpt:f-892","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxReconciliationNondeductibleExpenseMealsAndEntertainment","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"517000","decimals":-3}]},{"name":"rpt:f-893","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseMealsAndEntertainment","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.015","decimals":3}]},{"name":"rpt:f-894","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxReconciliationNondeductibleExpenseOther","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"70000","decimals":-3}]},{"name":"rpt:f-895","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseOther","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.002","decimals":3}]},{"name":"rpt:f-896","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationCrossBorderTaxEffectAmount","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"130000","decimals":-3}]},{"name":"rpt:f-897","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationCrossBorderTaxEffectPercent","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.004","decimals":3}]},{"name":"rpt:f-898","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxReconciliationTaxCreditsResearch","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3182000","decimals":-3}]},{"name":"rpt:f-899","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.093","decimals":3}]},{"name":"rpt:f-900","factDimensions":{"xbrl:concept":"calx:EffectiveIncomeTaxRateReconciliationTaxCreditForeignAmountNetting","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-384000","decimals":-3}]},{"name":"rpt:f-901","factDimensions":{"xbrl:concept":"calx:EffectiveIncomeTaxRateReconciliationTaxCreditForeignPercentNetting","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"-0.011","decimals":3}]},{"name":"rpt:f-902","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxReconciliationTaxContingencies","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"238000","decimals":-3}]},{"name":"rpt:f-903","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationTaxContingencies","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.007","decimals":3}]},{"name":"rpt:f-904","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxReconciliationOtherAdjustments","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeTaxAuthorityAxis":"country:US"},"factValues":[{"value":"111000","decimals":-3}]},{"name":"rpt:f-905","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:IncomeTaxAuthorityAxis":"country:US"},"factValues":[{"value":"0.003","decimals":3}]},{"name":"rpt:f-906","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxReconciliationStateAndLocalIncomeTaxes","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1091000","decimals":-3}]},{"name":"rpt:f-907","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.032","decimals":3}]},{"name":"rpt:f-908","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxReconciliationNondeductibleExpenseShareBasedCompensationCost","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeTaxAuthorityAxis":"country:CN"},"factValues":[{"value":"480000","decimals":-3}]},{"name":"rpt:f-909","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:IncomeTaxAuthorityAxis":"country:CN"},"factValues":[{"value":"0.014","decimals":3}]},{"name":"rpt:f-910","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxReconciliationOtherAdjustments","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeTaxAuthorityAxis":"country:CN"},"factValues":[{"value":"-190000","decimals":-3}]},{"name":"rpt:f-911","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:IncomeTaxAuthorityAxis":"country:CN"},"factValues":[{"value":"-0.005","decimals":3}]},{"name":"rpt:f-912","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxReconciliationRepatriationOfForeignEarnings","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"457000","decimals":-3}]},{"name":"rpt:f-913","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationRepatriationOfForeignEarnings","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.013","decimals":3}]},{"name":"rpt:f-914","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxReconciliationOtherAdjustments","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeTaxAuthorityAxis":"country:IN"},"factValues":[{"value":"44000","decimals":-3}]},{"name":"rpt:f-915","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:IncomeTaxAuthorityAxis":"country:IN"},"factValues":[{"value":"0.001","decimals":3}]},{"name":"rpt:f-916","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxReconciliationForeignIncomeTaxRateDifferential","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"51000","decimals":-3}]},{"name":"rpt:f-917","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.002","decimals":3}]},{"name":"rpt:f-918","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxExpenseBenefit","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"16284000","decimals":-3}]},{"name":"rpt:f-919","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.476","decimals":3}]},{"name":"rpt:f-920","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.210"}]},{"name":"rpt:f-921","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.210"}]},{"name":"rpt:f-922","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.009","decimals":3}]},{"name":"rpt:f-923","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.026","decimals":3}]},{"name":"rpt:f-924","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"-0.042","decimals":3}]},{"name":"rpt:f-925","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.008","decimals":3}]},{"name":"rpt:f-926","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"-0.140","decimals":3}]},{"name":"rpt:f-927","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.135","decimals":3}]},{"name":"rpt:f-928","factDimensions":{"xbrl:concept":"calx:EffectiveIncomeTaxRateReconciliationRepatriationOfForeignEarningsLossPercent","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"-0.004","decimals":3}]},{"name":"rpt:f-929","factDimensions":{"xbrl:concept":"calx:EffectiveIncomeTaxRateReconciliationRepatriationOfForeignEarningsLossPercent","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"-0.024","decimals":3}]},{"name":"rpt:f-930","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"-0.243","decimals":3}]},{"name":"rpt:f-931","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.088","decimals":3}]},{"name":"rpt:f-932","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseOther","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"-0.017","decimals":3}]},{"name":"rpt:f-933","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseOther","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.025","decimals":3}]},{"name":"rpt:f-934","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.064","decimals":3}]},{"name":"rpt:f-935","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"-0.097","decimals":3}]},{"name":"rpt:f-936","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"-0.021","decimals":3}]},{"name":"rpt:f-937","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0","decimals":3}]},{"name":"rpt:f-938","factDimensions":{"xbrl:concept":"calx:EffectiveIncomeTaxRateReconciliationTaxAttributeExpirationPercent","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"-0.001","decimals":3}]},{"name":"rpt:f-939","factDimensions":{"xbrl:concept":"calx:EffectiveIncomeTaxRateReconciliationTaxAttributeExpirationPercent","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.008","decimals":3}]},{"name":"rpt:f-940","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationTaxContingencies","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"-0.035","decimals":3}]},{"name":"rpt:f-941","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateReconciliationTaxContingencies","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.047","decimals":3}]},{"name":"rpt:f-942","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.060","decimals":3}]},{"name":"rpt:f-943","factDimensions":{"xbrl:concept":"us-gaap:EffectiveIncomeTaxRateContinuingOperations","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.156","decimals":3}]},{"name":"rpt:f-944","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',serif;font-size:10pt;font-weight:400;line-height:120%\">The significant components of our deferred tax assets were as follows (in thousands):</span></div><div style=\"margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2025</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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2024</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',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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">22,836\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',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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">59,049\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',serif;font-size:9pt;font-weight:400;line-height:100%\">53,788\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Inventory</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',serif;font-size:9pt;font-weight:400;line-height:100%\">13,090\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',serif;font-size:9pt;font-weight:400;line-height:100%\">14,737\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">4,618\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',serif;font-size:9pt;font-weight:400;line-height:100%\">5,017\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">7,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',serif;font-size:9pt;font-weight:400;line-height:100%\">9,476\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">14,122\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',serif;font-size:9pt;font-weight:400;line-height:100%\">13,787\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Lease 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',serif;font-size:9pt;font-weight:400;line-height:100%\">3,383\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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,445\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Capitalized R&amp;D</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',serif;font-size:9pt;font-weight:400;line-height:100%\">78,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=\"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',serif;font-size:9pt;font-weight:400;line-height:100%\">110,581\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,254\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',serif;font-size:9pt;font-weight:400;line-height:100%\">701\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Gross deferred tax assets</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',serif;font-size:9pt;font-weight:400;line-height:100%\">204,246\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',serif;font-size:9pt;font-weight:400;line-height:100%\">210,937\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 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Valuation allowance</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(32,325)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(30,571)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">Total deferred tax assets</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',serif;font-size:9pt;font-weight:400;line-height:100%\">171,921\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',serif;font-size:9pt;font-weight:400;line-height:100%\">180,366\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\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Deferred tax liabilities:</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000;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 #000;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',serif;font-size:9pt;font-weight:400;line-height:100%\">Fixed 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',serif;font-size:9pt;font-weight:400;line-height:100%\">(3,127)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(1,760)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">Right of use 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',serif;font-size:9pt;font-weight:400;line-height:100%\">(3,159)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(1,006)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">Undistributed earnings of foreign subsidiaries</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(1,056)</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',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 25.75pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Total deferred tax liabilities</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(7,342)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(2,766)</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:0 1pt 0 25.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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">164,579\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">177,600\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-945","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsOperatingLossCarryforwards","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"22836000","decimals":-3}]},{"name":"rpt:f-946","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsOperatingLossCarryforwards","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1405000","decimals":-3}]},{"name":"rpt:f-947","factDimensions":{"xbrl:concept":"us-gaap:TaxCreditCarryforwardAmount","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"59049000","decimals":-3}]},{"name":"rpt:f-948","factDimensions":{"xbrl:concept":"us-gaap:TaxCreditCarryforwardAmount","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"53788000","decimals":-3}]},{"name":"rpt:f-949","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsInventory","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"13090000","decimals":-3}]},{"name":"rpt:f-950","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsInventory","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"14737000","decimals":-3}]},{"name":"rpt:f-951","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4618000","decimals":-3}]},{"name":"rpt:f-952","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"5017000","decimals":-3}]},{"name":"rpt:f-953","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsDeferredIncome","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"7093000","decimals":-3}]},{"name":"rpt:f-954","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsDeferredIncome","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"9476000","decimals":-3}]},{"name":"rpt:f-955","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"14122000","decimals":-3}]},{"name":"rpt:f-956","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"13787000","decimals":-3}]},{"name":"rpt:f-957","factDimensions":{"xbrl:concept":"calx:DeferredTaxAssetLeasingArrangements","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3383000","decimals":-3}]},{"name":"rpt:f-958","factDimensions":{"xbrl:concept":"calx:DeferredTaxAssetLeasingArrangements","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1445000","decimals":-3}]},{"name":"rpt:f-959","factDimensions":{"xbrl:concept":"calx:DeferredTaxAssetsDeferredExpenseCapitalizedResearchAndDevelopmentCosts","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"78801000","decimals":-3}]},{"name":"rpt:f-960","factDimensions":{"xbrl:concept":"calx:DeferredTaxAssetsDeferredExpenseCapitalizedResearchAndDevelopmentCosts","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"110581000","decimals":-3}]},{"name":"rpt:f-961","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsOther","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1254000","decimals":-3}]},{"name":"rpt:f-962","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsOther","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"701000","decimals":-3}]},{"name":"rpt:f-963","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsGross","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"204246000","decimals":-3}]},{"name":"rpt:f-964","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsGross","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"210937000","decimals":-3}]},{"name":"rpt:f-965","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsValuationAllowance","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"32325000","decimals":-3}]},{"name":"rpt:f-966","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsValuationAllowance","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"30571000","decimals":-3}]},{"name":"rpt:f-967","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsNet","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"171921000","decimals":-3}]},{"name":"rpt:f-968","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsNet","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"180366000","decimals":-3}]},{"name":"rpt:f-969","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3127000","decimals":-3}]},{"name":"rpt:f-970","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1760000","decimals":-3}]},{"name":"rpt:f-971","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxLiabilitiesLeasingArrangements","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"3159000","decimals":-3}]},{"name":"rpt:f-972","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxLiabilitiesLeasingArrangements","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1006000","decimals":-3}]},{"name":"rpt:f-973","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxLiabilitiesUndistributedForeignEarnings","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1056000","decimals":-3}]},{"name":"rpt:f-974","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxLiabilitiesUndistributedForeignEarnings","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-975","factDimensions":{"xbrl:concept":"us-gaap:DeferredIncomeTaxLiabilities","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"7342000","decimals":-3}]},{"name":"rpt:f-976","factDimensions":{"xbrl:concept":"us-gaap:DeferredIncomeTaxLiabilities","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2766000","decimals":-3}]},{"name":"rpt:f-977","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsLiabilitiesNet","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"164579000","decimals":-3}]},{"name":"rpt:f-978","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsLiabilitiesNet","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"177600000","decimals":-3}]},{"name":"rpt:f-979","factDimensions":{"xbrl:concept":"us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1800000","decimals":-5}]},{"name":"rpt:f-980","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsValuationAllowance","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"32300000","decimals":-5}]},{"name":"rpt:f-981","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"96800000","decimals":-5}]},{"name":"rpt:f-982","factDimensions":{"xbrl:concept":"us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsSubjectToExpiration","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"41100000","decimals":-5}]},{"name":"rpt:f-983","factDimensions":{"xbrl:concept":"us-gaap:TaxCreditCarryforwardAmount","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeTaxAuthorityAxis":"us-gaap:DomesticCountryMember"},"factValues":[{"value":"45500000","decimals":-5}]},{"name":"rpt:f-984","factDimensions":{"xbrl:concept":"us-gaap:TaxCreditCarryforwardAmount","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeTaxAuthorityAxis":"us-gaap:StateAndLocalJurisdictionMember"},"factValues":[{"value":"55300000","decimals":-5}]},{"name":"rpt:f-985","factDimensions":{"xbrl:concept":"us-gaap:TaxCreditCarryforwardAmount","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeTaxAuthorityAxis":"us-gaap:StateAndLocalTaxJurisdictionOtherMember"},"factValues":[{"value":"2600000","decimals":-5}]},{"name":"rpt:f-986","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',serif;font-size:10pt;font-weight:400;line-height:120%\">Income taxes paid (net of refunds) were as follows (in thousands):</span></div><div style=\"margin-top:5pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:95.175%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:78.316%\"></td><td style=\"width:0.1%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.489%\"></td><td style=\"width:0.1%\"></td><td style=\"width:1.0%\"></td><td style=\"width:17.795%\"></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: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',serif;font-size:8pt;font-weight:700;line-height:100%\">Year Ended<br/> December 31, 2025</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=\"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',serif;font-size:9pt;font-weight:400;line-height:100%\">Federal</span></td><td colspan=\"3\" style=\"background-color:#cceeff;padding:0 1pt\"></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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,294\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;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">States:</span></td><td colspan=\"3\" style=\"background-color:#ffffff;padding:0 1pt\"></td><td colspan=\"3\" style=\"background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt\"></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',serif;font-size:9pt;font-weight:400;line-height:100%\">Pennsylvania</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',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=\"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',serif;font-size:9pt;font-weight:400;line-height:100%\">South Carolina</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',serif;font-size:9pt;font-weight:400;line-height:100%\">359\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:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,447\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><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 25.75pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Total state</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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,256\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=\"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',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=\"3\" style=\"background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt\"></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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">780\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:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">India</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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,371\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><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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">183\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:2px 1pt 2px 25.75pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Total foreign</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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,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=\"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:#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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">6,884\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=\"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-987","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxPaidFederalAfterRefundReceived","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2294000","decimals":-3}]},{"name":"rpt:f-988","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxPaidStateAndLocalAfterRefundReceived","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeTaxAuthorityAxis":"stpr:PA"},"factValues":[{"value":"450000","decimals":-3}]},{"name":"rpt:f-989","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxPaidStateAndLocalAfterRefundReceived","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeTaxAuthorityAxis":"stpr:SC"},"factValues":[{"value":"359000","decimals":-3}]},{"name":"rpt:f-990","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxPaidStateAndLocalAfterRefundReceived","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeTaxAuthorityAxis":"us-gaap:StateAndLocalTaxJurisdictionOtherMember"},"factValues":[{"value":"1447000","decimals":-3}]},{"name":"rpt:f-991","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxPaidStateAndLocalAfterRefundReceived","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2256000","decimals":-3}]},{"name":"rpt:f-992","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxPaidForeignAfterRefundReceived","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeTaxAuthorityAxis":"country:CN"},"factValues":[{"value":"780000","decimals":-3}]},{"name":"rpt:f-993","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxPaidForeignAfterRefundReceived","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeTaxAuthorityAxis":"country:IN"},"factValues":[{"value":"1371000","decimals":-3}]},{"name":"rpt:f-994","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxPaidForeignAfterRefundReceived","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:IncomeTaxAuthorityAxis":"us-gaap:ForeignTaxJurisdictionOtherMember"},"factValues":[{"value":"183000","decimals":-3}]},{"name":"rpt:f-995","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxPaidForeignAfterRefundReceived","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2334000","decimals":-3}]},{"name":"rpt:f-996","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxesPaidNet","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"6884000","decimals":-3}]},{"name":"rpt:f-997","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxesPaidNet","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"5900000","decimals":-5}]},{"name":"rpt:f-998","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxesPaidNet","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"11900000","decimals":-5}]},{"name":"rpt:f-999","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',serif;font-size:10pt;font-weight:400;line-height:120%\">Our unrecognized tax benefits were as follows (in thousands):</span></div><div style=\"margin-top:6pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:61.125%\"></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:9.880%\"></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:9.880%\"></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:9.885%\"></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',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 #000;padding:2px 1pt;text-align:center;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:8pt;font-weight:700;line-height:100%\">2025</span></td><td colspan=\"3\" style=\"border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:100%\">\u00a0</span></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',serif;font-size:8pt;font-weight:700;line-height:100%\">2024</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',serif;font-size:8pt;font-weight:700;line-height:100%\">2023</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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">34,638\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">32,449\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">29,215\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',serif;font-size:9pt;font-weight:400;line-height:100%\">\u00a0\u00a0\u00a0\u00a0Reduction 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',serif;font-size:9pt;font-weight:400;line-height:100%\">(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',serif;font-size:9pt;font-weight:400;line-height:100%\">(121)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(19)</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 7.75pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">\u00a0\u00a0\u00a0\u00a0Additions for tax positions related to prior 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',serif;font-size:9pt;font-weight:400;line-height:100%\">275\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">580\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 7.75pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',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:#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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,389\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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,310\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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,673\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Balance at end of year</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">37,298\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">34,638\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">32,449\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-1000","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefits","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"34638000","decimals":-3}]},{"name":"rpt:f-1001","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefits","xbrl:period":"2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"32449000","decimals":-3}]},{"name":"rpt:f-1002","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefits","xbrl:period":"2023-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"29215000","decimals":-3}]},{"name":"rpt:f-1003","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4000","decimals":-3}]},{"name":"rpt:f-1004","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"121000","decimals":-3}]},{"name":"rpt:f-1005","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"19000","decimals":-3}]},{"name":"rpt:f-1006","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"275000","decimals":-3}]},{"name":"rpt:f-1007","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-1008","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"580000","decimals":-3}]},{"name":"rpt:f-1009","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2389000","decimals":-3}]},{"name":"rpt:f-1010","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2310000","decimals":-3}]},{"name":"rpt:f-1011","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2673000","decimals":-3}]},{"name":"rpt:f-1012","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefits","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"37298000","decimals":-3}]},{"name":"rpt:f-1013","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefits","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"34638000","decimals":-3}]},{"name":"rpt:f-1014","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefits","xbrl:period":"2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"32449000","decimals":-3}]},{"name":"rpt:f-1015","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefits","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"37300000","decimals":-5}]},{"name":"rpt:f-1016","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefits","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"34600000","decimals":-5}]},{"name":"rpt:f-1017","factDimensions":{"xbrl:concept":"us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"20600000","decimals":-5}]},{"name":"rpt:f-1018","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"Net Income (Loss) Per Common Share<div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The computation of basic and diluted net income (loss) per common share for the periods indicated was as follows (in thousands, except per share data):</span></div><div style=\"margin-top:6pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;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',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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2025</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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2024</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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2023</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',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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">17,884\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(29,747)</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">29,325\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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">66,041\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',serif;font-size:9pt;font-weight:400;line-height:100%\">65,879\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',serif;font-size:9pt;font-weight:400;line-height:100%\">65,980\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">3,264\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">3,340\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">69,305\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',serif;font-size:9pt;font-weight:400;line-height:100%\">65,879\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',serif;font-size:9pt;font-weight:400;line-height:100%\">69,320\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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">0.27\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(0.45)</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">0.44\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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">0.26\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(0.45)</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">0.42\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">7,059\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',serif;font-size:9pt;font-weight:400;line-height:100%\">12,057\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',serif;font-size:9pt;font-weight:400;line-height:100%\">4,688\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:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Unvested restricted stock awards are included in the calculation of basic weighted-average shares for all periods presented with net income because such shares are participating securities; however, the impact was immaterial.</span></div><div style=\"margin-bottom:6pt;margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Potentially dilutive shares have been excluded from the computation of diluted net income per common share when their effect is antidilutive. These antidilutive shares were primarily from stock options.</span></div>","language":"en-us"}]},{"name":"rpt:f-1019","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',serif;font-size:10pt;font-weight:400;line-height:120%\">The computation of basic and diluted net income (loss) per common share for the periods indicated was as follows (in thousands, except per share data):</span></div><div style=\"margin-top:6pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;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',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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2025</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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2024</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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2023</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',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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">17,884\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(29,747)</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">29,325\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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">66,041\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',serif;font-size:9pt;font-weight:400;line-height:100%\">65,879\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',serif;font-size:9pt;font-weight:400;line-height:100%\">65,980\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">3,264\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">3,340\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">69,305\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',serif;font-size:9pt;font-weight:400;line-height:100%\">65,879\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',serif;font-size:9pt;font-weight:400;line-height:100%\">69,320\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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">0.27\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(0.45)</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">0.44\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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">0.26\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(0.45)</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">0.42\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">7,059\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',serif;font-size:9pt;font-weight:400;line-height:100%\">12,057\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',serif;font-size:9pt;font-weight:400;line-height:100%\">4,688\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-1020","factDimensions":{"xbrl:concept":"us-gaap:NetIncomeLoss","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"17884000","decimals":-3}]},{"name":"rpt:f-1021","factDimensions":{"xbrl:concept":"us-gaap:NetIncomeLoss","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"-29747000","decimals":-3}]},{"name":"rpt:f-1022","factDimensions":{"xbrl:concept":"us-gaap:NetIncomeLoss","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"29325000","decimals":-3}]},{"name":"rpt:f-1023","factDimensions":{"xbrl:concept":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasic","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"66041000","decimals":-3}]},{"name":"rpt:f-1024","factDimensions":{"xbrl:concept":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasic","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"65879000","decimals":-3}]},{"name":"rpt:f-1025","factDimensions":{"xbrl:concept":"us-gaap:WeightedAverageNumberOfSharesOutstandingBasic","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"65980000","decimals":-3}]},{"name":"rpt:f-1026","factDimensions":{"xbrl:concept":"us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"3264000","decimals":-3}]},{"name":"rpt:f-1027","factDimensions":{"xbrl:concept":"us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"0","decimals":-3}]},{"name":"rpt:f-1028","factDimensions":{"xbrl:concept":"us-gaap:IncrementalCommonSharesAttributableToShareBasedPaymentArrangements","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"3340000","decimals":-3}]},{"name":"rpt:f-1029","factDimensions":{"xbrl:concept":"us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"69305000","decimals":-3}]},{"name":"rpt:f-1030","factDimensions":{"xbrl:concept":"us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"65879000","decimals":-3}]},{"name":"rpt:f-1031","factDimensions":{"xbrl:concept":"us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"69320000","decimals":-3}]},{"name":"rpt:f-1032","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareBasic","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"0.27","decimals":2}]},{"name":"rpt:f-1033","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareBasic","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"-0.45","decimals":2}]},{"name":"rpt:f-1034","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareBasic","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"0.44","decimals":2}]},{"name":"rpt:f-1035","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareDiluted","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"0.26","decimals":2}]},{"name":"rpt:f-1036","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareDiluted","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"-0.45","decimals":2}]},{"name":"rpt:f-1037","factDimensions":{"xbrl:concept":"us-gaap:EarningsPerShareDiluted","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD/xbrla:shares"},"factValues":[{"value":"0.42","decimals":2}]},{"name":"rpt:f-1038","factDimensions":{"xbrl:concept":"us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"7059000","decimals":-3}]},{"name":"rpt:f-1039","factDimensions":{"xbrl:concept":"us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"12057000","decimals":-3}]},{"name":"rpt:f-1040","factDimensions":{"xbrl:concept":"us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares"},"factValues":[{"value":"4688000","decimals":-3}]},{"name":"rpt:f-1041","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"Revenue from Contracts with Customers<div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Contract Asset</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Contract assets include amounts recognized as revenue prior to our contractual right to bill the customer and are included in \u201cPrepaid expenses and other current assets\u201d in our Consolidated Balance Sheets. Amounts are billed in accordance with the agreed-upon contractual terms. The balance as of December\u00a031, 2025 was $4.8\u00a0million of which we expect to bill 20% of the balance during 2026. The balance as of December 31, 2024 was $2.8\u00a0million.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Contract Liability</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Deferred revenue was $50.3\u00a0million and $47.6\u00a0million as of December\u00a031, 2025 and 2024, respectively. The increase in deferred revenue of $2.7\u00a0million is primarily driven by cash payments received or due in advance of satisfying our performance obligations partially offset by revenue recognized of $20.1\u00a0million 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',serif;font-size:10pt;font-weight:400;line-height:120%\">Revenue allocated to remaining performance obligations (\u201cRPOs\u201d) represents 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 but excludes variable consideration where the monthly invoicing is based on usage or where actual usage exceeds the minimum commitment. RPOs were $385.0 million as of December\u00a031, 2025, and we expect to recognize as revenue 39% of this amount over the next 12 months and a large majority of the remainder over the two years thereafter.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:10pt;font-weight:400;line-height:120%\">We capitalize certain sales commissions related primarily to multi-year subscriptions and extended warranty support for which the expected amortization period is greater than one year. As of December\u00a031, 2025 and 2024, the unamortized balance of deferred commissions was $20.7\u00a0million and $17.9 million, respectively.\u00a0For the years ended December\u00a031, 2025, 2024 and 2023, the amount of amortization was $11.2\u00a0million, $8.9 million and $6.5\u00a0million, respectively. There was no impairment loss in relation to the costs capitalized for these respective periods.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',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',serif;font-size:10pt;font-weight:400;line-height:120%\">No customer accounted for more than 10% of our revenue for the years ended December\u00a031, 2025, 2024 and 2023. </span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">One customer represented 12% of our accounts receivable as of December\u00a031, 2025. Another customer represented 23% of our accounts receivable as of December 31, 2024.</span></div>","language":"en-us"}]},{"name":"rpt:f-1042","factDimensions":{"xbrl:concept":"us-gaap:ContractWithCustomerAssetNet","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"4800000","decimals":-5}]},{"name":"rpt:f-1043","factDimensions":{"xbrl:concept":"calx:ContractWithCustomerAssetExpectedToBeBilledYearOnePercent","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"0.20","decimals":2}]},{"name":"rpt:f-1044","factDimensions":{"xbrl:concept":"us-gaap:ContractWithCustomerAssetNet","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2800000","decimals":-5}]},{"name":"rpt:f-1045","factDimensions":{"xbrl:concept":"us-gaap:ContractWithCustomerLiability","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"50300000","decimals":-5}]},{"name":"rpt:f-1046","factDimensions":{"xbrl:concept":"us-gaap:ContractWithCustomerLiability","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"47600000","decimals":-5}]},{"name":"rpt:f-1047","factDimensions":{"xbrl:concept":"us-gaap:IncreaseDecreaseInContractWithCustomerLiability","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"2700000","decimals":-5}]},{"name":"rpt:f-1048","factDimensions":{"xbrl:concept":"us-gaap:ContractWithCustomerLiabilityRevenueRecognized","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"20100000","decimals":-5}]},{"name":"rpt:f-1049","factDimensions":{"xbrl:concept":"us-gaap:RevenueRemainingPerformanceObligation","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"385000000.0","decimals":-5}]},{"name":"rpt:f-1050","factDimensions":{"xbrl:concept":"us-gaap:RevenueRemainingPerformanceObligationPercentage","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis":"2026-01-01"},"factValues":[{"value":"0.39","decimals":2}]},{"name":"rpt:f-1051","factDimensions":{"xbrl:concept":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis":"2026-01-01"},"factValues":[{"value":"P12M"}]},{"name":"rpt:f-1052","factDimensions":{"xbrl:concept":"us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","us-gaap:RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis":"2027-01-01"},"factValues":[{"value":"P2Y"}]},{"name":"rpt:f-1053","factDimensions":{"xbrl:concept":"us-gaap:CapitalizedContractCostGross","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"20700000","decimals":-5}]},{"name":"rpt:f-1054","factDimensions":{"xbrl:concept":"us-gaap:CapitalizedContractCostGross","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"17900000","decimals":-5}]},{"name":"rpt:f-1055","factDimensions":{"xbrl:concept":"us-gaap:CapitalizedContractCostAmortization","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"11200000","decimals":-5}]},{"name":"rpt:f-1056","factDimensions":{"xbrl:concept":"us-gaap:CapitalizedContractCostAmortization","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"8900000","decimals":-5}]},{"name":"rpt:f-1057","factDimensions":{"xbrl:concept":"us-gaap:CapitalizedContractCostAmortization","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"6500000","decimals":-5}]},{"name":"rpt:f-1058","factDimensions":{"xbrl:concept":"us-gaap:CapitalizedContractCostImpairmentLoss","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0"}]},{"name":"rpt:f-1059","factDimensions":{"xbrl:concept":"us-gaap:CapitalizedContractCostImpairmentLoss","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0"}]},{"name":"rpt:f-1060","factDimensions":{"xbrl:concept":"us-gaap:CapitalizedContractCostImpairmentLoss","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"0"}]},{"name":"rpt:f-1061","factDimensions":{"xbrl:concept":"us-gaap:ConcentrationRiskPercentage1","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","srt:MajorCustomersAxis":"calx:CustomerOneMember","us-gaap:ConcentrationRiskByTypeAxis":"us-gaap:CustomerConcentrationRiskMember","us-gaap:ConcentrationRiskByBenchmarkAxis":"us-gaap:AccountsReceivableMember"},"factValues":[{"value":"0.12","decimals":2}]},{"name":"rpt:f-1062","factDimensions":{"xbrl:concept":"us-gaap:ConcentrationRiskPercentage1","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","srt:MajorCustomersAxis":"calx:CustomerTwoMember","us-gaap:ConcentrationRiskByTypeAxis":"us-gaap:CustomerConcentrationRiskMember","us-gaap:ConcentrationRiskByBenchmarkAxis":"us-gaap:AccountsReceivableMember"},"factValues":[{"value":"0.23","decimals":2}]},{"name":"rpt:f-1063","factDimensions":{"xbrl:concept":"us-gaap:SegmentReportingDisclosureTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"Segment Information<div style=\"margin-top:5pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">We develop, market and sell an appliance-based broadband platform, cloud and managed services, and there are no segment managers who are held accountable for operations, operating results and plans for levels or components below the unit level. Accordingly, Calix is considered to be in a single reporting segment and operating unit structure. Our chief operating decision maker (\u201cCODM\u201d) is our Chief Executive Officer, who reviews financial information presented on a company-wide basis, for purposes of allocating resources and evaluating financial performance. The CODM assesses the performance of the single segment and allocates resources based on revenue and measures derived from gross margin and operating income (loss) that is reported in the Consolidated Statements of Comprehensive Income (Loss). In addition, the CODM uses a measure derived from operating expenses in the Consolidated Statements of Comprehensive Income (Loss) to monitor budget versus actual results to determine Calix\u2019s and management\u2019s performance. We do not have intra-entity sales or transfers. The measure of the single segment assets is the consolidated assets in the Consolidated Balance Sheet. The accounting policies of the single segment are the same as described in the significant accounting policies.</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Geographic Information:</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">A summary of revenue disaggregated by geographic region based upon the location of the customers was as follows (in thousands):</span></div><div style=\"margin-top:6pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:61.125%\"></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:9.880%\"></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:9.880%\"></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:9.885%\"></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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2025</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',serif;font-size:8pt;font-weight:700;line-height:100%\">2024</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',serif;font-size:8pt;font-weight:700;line-height:100%\">2023</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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">934,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><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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">764,593\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">944,201\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">33,419\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',serif;font-size:9pt;font-weight:400;line-height:100%\">34,322\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',serif;font-size:9pt;font-weight:400;line-height:100%\">54,265\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Americas excluding U.S.</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',serif;font-size:9pt;font-weight:400;line-height:100%\">25,304\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',serif;font-size:9pt;font-weight:400;line-height:100%\">25,583\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',serif;font-size:9pt;font-weight:400;line-height:100%\">32,696\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:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Rest of world</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',serif;font-size:9pt;font-weight:400;line-height:100%\">6,458\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',serif;font-size:9pt;font-weight:400;line-height:100%\">7,020\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',serif;font-size:9pt;font-weight:400;line-height:100%\">8,431\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,000,010\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">831,518\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,039,593\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',serif;font-size:10pt;font-weight:400;line-height:120%\">Our property and equipment, net of accumulated depreciation, were located in the following geographical areas (in thousands):</span></div><div style=\"margin-top:6pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:73.716%\"></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:9.880%\"></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:9.884%\"></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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2025</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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2024</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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">33,544\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">27,601\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,616\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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,818\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',serif;font-size:9pt;font-weight:400;line-height:100%\">India</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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,652\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',serif;font-size:9pt;font-weight:400;line-height:100%\">734\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 0 7.75pt\"></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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">37,812\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">31,153\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',serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%\">Selected Financial Information:</span></div><div style=\"margin-top:6pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">The following table presents selected financial information with respect to our single operating segment (in thousands):</span></div><div style=\"margin-top:6pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:61.125%\"></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:9.880%\"></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:9.880%\"></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:9.885%\"></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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2025</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',serif;font-size:8pt;font-weight:700;line-height:100%\">2024</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',serif;font-size:8pt;font-weight:700;line-height:100%\">2023</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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,000,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><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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">831,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=\"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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,039,593\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\"><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Adjusted cost of revenue </span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline\">(1)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(427,718)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(372,177)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(515,633)</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\"><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Adjusted sales and marketing operating expenses </span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline\">(2)</span></div></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',serif;font-size:9pt;font-weight:400;line-height:100%\">(217,904)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(197,069)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(197,671)</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\"><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Adjusted research and development operating expenses </span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline\">(3)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(167,020)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(160,787)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(160,772)</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\"><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Adjusted general and administrative operating expenses </span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline\">(4)</span></div></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',serif;font-size:9pt;font-weight:400;line-height:100%\">(77,483)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(70,944)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(71,180)</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\"><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Other segment items </span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline\">(5)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(88,895)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(73,575)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(68,752)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">Interest income and other expenses, net</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',serif;font-size:9pt;font-weight:400;line-height:100%\">13,178\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',serif;font-size:9pt;font-weight:400;line-height:100%\">11,388\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',serif;font-size:9pt;font-weight:400;line-height:100%\">9,172\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Income taxes</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(16,284)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,899\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',serif;font-size:9pt;font-weight:400;line-height:100%\">(5,432)</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',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 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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">17,884\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(29,747)</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">29,325\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><div style=\"margin-top:6pt\"><span><br/></span></div><div style=\"margin-top:6pt;padding-left:22.5pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:5.85pt;font-weight:400;line-height:112%;position:relative;top:-3.15pt;vertical-align:baseline\">(1)</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:112%\"> GAAP cost of revenue adjusted for stock-based compensation and intangible asset amortization.</span></div><div style=\"margin-top:6pt;padding-left:22.5pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:5.85pt;font-weight:400;line-height:112%;position:relative;top:-3.15pt;vertical-align:baseline\">(2)</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:112%\"> GAAP sales and marketing operating expenses adjusted for stock-based compensation.</span></div><div style=\"margin-top:6pt;padding-left:22.5pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:5.85pt;font-weight:400;line-height:120%;position:relative;top:-3.15pt;vertical-align:baseline\">(3)</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:120%\"> </span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">GAAP research and development operating expenses adjusted for stock-based compensation.</span></div><div style=\"margin-top:6pt;padding-left:22.5pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:5.85pt;font-weight:400;line-height:120%;position:relative;top:-3.15pt;vertical-align:baseline\">(4)</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:120%\"> </span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">GAAP general and administrative operating expenses adjusted for stock-based compensation and litigation settlement (2023 only).</span></div><div style=\"margin-top:6pt;padding-left:22.5pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:5.85pt;font-weight:400;line-height:120%;position:relative;top:-3.15pt;vertical-align:baseline\">(5)</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:120%\"> </span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Other segment items consisted of stock-based compensation expense, intangible asset amortization and litigation settlement (2023 only).</span></div>","language":"en-us"}]},{"name":"rpt:f-1064","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',serif;font-size:10pt;font-weight:400;line-height:120%\">A summary of revenue disaggregated by geographic region based upon the location of the customers was as follows (in thousands):</span></div><div style=\"margin-top:6pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:61.125%\"></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:9.880%\"></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:9.880%\"></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:9.885%\"></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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2025</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',serif;font-size:8pt;font-weight:700;line-height:100%\">2024</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',serif;font-size:8pt;font-weight:700;line-height:100%\">2023</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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">934,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><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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">764,593\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">944,201\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">33,419\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',serif;font-size:9pt;font-weight:400;line-height:100%\">34,322\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',serif;font-size:9pt;font-weight:400;line-height:100%\">54,265\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Americas excluding U.S.</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',serif;font-size:9pt;font-weight:400;line-height:100%\">25,304\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',serif;font-size:9pt;font-weight:400;line-height:100%\">25,583\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',serif;font-size:9pt;font-weight:400;line-height:100%\">32,696\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:2px 1pt;text-align:left;vertical-align:bottom\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Rest of world</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',serif;font-size:9pt;font-weight:400;line-height:100%\">6,458\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',serif;font-size:9pt;font-weight:400;line-height:100%\">7,020\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',serif;font-size:9pt;font-weight:400;line-height:100%\">8,431\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,000,010\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">831,518\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,039,593\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',serif;font-size:10pt;font-weight:400;line-height:120%\">Our property and equipment, net of accumulated depreciation, were located in the following geographical areas (in thousands):</span></div><div style=\"margin-top:6pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:73.716%\"></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:9.880%\"></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:9.884%\"></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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2025</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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2024</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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">33,544\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">27,601\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,616\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',serif;font-size:9pt;font-weight:400;line-height:100%\">2,818\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',serif;font-size:9pt;font-weight:400;line-height:100%\">India</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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,652\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',serif;font-size:9pt;font-weight:400;line-height:100%\">734\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 0 7.75pt\"></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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">37,812\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">31,153\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-1065","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"country:US"},"factValues":[{"value":"934829000","decimals":-3}]},{"name":"rpt:f-1066","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"country:US"},"factValues":[{"value":"764593000","decimals":-3}]},{"name":"rpt:f-1067","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"country:US"},"factValues":[{"value":"944201000","decimals":-3}]},{"name":"rpt:f-1068","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"srt:EuropeMember"},"factValues":[{"value":"33419000","decimals":-3}]},{"name":"rpt:f-1069","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"srt:EuropeMember"},"factValues":[{"value":"34322000","decimals":-3}]},{"name":"rpt:f-1070","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"srt:EuropeMember"},"factValues":[{"value":"54265000","decimals":-3}]},{"name":"rpt:f-1071","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"calx:AmericasExUSMember"},"factValues":[{"value":"25304000","decimals":-3}]},{"name":"rpt:f-1072","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"calx:AmericasExUSMember"},"factValues":[{"value":"25583000","decimals":-3}]},{"name":"rpt:f-1073","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"calx:AmericasExUSMember"},"factValues":[{"value":"32696000","decimals":-3}]},{"name":"rpt:f-1074","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"calx:RestOfWorldMember"},"factValues":[{"value":"6458000","decimals":-3}]},{"name":"rpt:f-1075","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"calx:RestOfWorldMember"},"factValues":[{"value":"7020000","decimals":-3}]},{"name":"rpt:f-1076","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"calx:RestOfWorldMember"},"factValues":[{"value":"8431000","decimals":-3}]},{"name":"rpt:f-1077","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1000010000","decimals":-3}]},{"name":"rpt:f-1078","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"831518000","decimals":-3}]},{"name":"rpt:f-1079","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"1039593000","decimals":-3}]},{"name":"rpt:f-1080","factDimensions":{"xbrl:concept":"us-gaap:NoncurrentAssets","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"country:US"},"factValues":[{"value":"33544000","decimals":-3}]},{"name":"rpt:f-1081","factDimensions":{"xbrl:concept":"us-gaap:NoncurrentAssets","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"country:US"},"factValues":[{"value":"27601000","decimals":-3}]},{"name":"rpt:f-1082","factDimensions":{"xbrl:concept":"us-gaap:NoncurrentAssets","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"country:CN"},"factValues":[{"value":"2616000","decimals":-3}]},{"name":"rpt:f-1083","factDimensions":{"xbrl:concept":"us-gaap:NoncurrentAssets","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"country:CN"},"factValues":[{"value":"2818000","decimals":-3}]},{"name":"rpt:f-1084","factDimensions":{"xbrl:concept":"us-gaap:NoncurrentAssets","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"country:IN"},"factValues":[{"value":"1652000","decimals":-3}]},{"name":"rpt:f-1085","factDimensions":{"xbrl:concept":"us-gaap:NoncurrentAssets","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","srt:StatementGeographicalAxis":"country:IN"},"factValues":[{"value":"734000","decimals":-3}]},{"name":"rpt:f-1086","factDimensions":{"xbrl:concept":"us-gaap:NoncurrentAssets","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"37812000","decimals":-3}]},{"name":"rpt:f-1087","factDimensions":{"xbrl:concept":"us-gaap:NoncurrentAssets","xbrl:period":"2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD"},"factValues":[{"value":"31153000","decimals":-3}]},{"name":"rpt:f-1088","factDimensions":{"xbrl:concept":"us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock","xbrl:period":"2025-01-01T00:00:00/2026-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',serif;font-size:10pt;font-weight:400;line-height:120%\">The following table presents selected financial information with respect to our single operating segment (in thousands):</span></div><div style=\"margin-top:6pt;text-align:center\"><table style=\"border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%\"><tr><td style=\"width:1.0%\"></td><td style=\"width:61.125%\"></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:9.880%\"></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:9.880%\"></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:9.885%\"></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',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',serif;font-size:8pt;font-weight:700;line-height:100%\">2025</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',serif;font-size:8pt;font-weight:700;line-height:100%\">2024</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',serif;font-size:8pt;font-weight:700;line-height:100%\">2023</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',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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,000,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><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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">831,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=\"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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,039,593\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\"><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Adjusted cost of revenue </span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline\">(1)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(427,718)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(372,177)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(515,633)</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\"><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Adjusted sales and marketing operating expenses </span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline\">(2)</span></div></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',serif;font-size:9pt;font-weight:400;line-height:100%\">(217,904)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(197,069)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(197,671)</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\"><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Adjusted research and development operating expenses </span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline\">(3)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(167,020)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(160,787)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(160,772)</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\"><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Adjusted general and administrative operating expenses </span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline\">(4)</span></div></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',serif;font-size:9pt;font-weight:400;line-height:100%\">(77,483)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(70,944)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(71,180)</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\"><div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:100%\">Other segment items </span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:5.85pt;font-weight:400;line-height:100%;position:relative;top:-3.15pt;vertical-align:baseline\">(5)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(88,895)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(73,575)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(68,752)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">Interest income and other expenses, net</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',serif;font-size:9pt;font-weight:400;line-height:100%\">13,178\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',serif;font-size:9pt;font-weight:400;line-height:100%\">11,388\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',serif;font-size:9pt;font-weight:400;line-height:100%\">9,172\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',serif;font-size:9pt;font-weight:400;line-height:100%\">Income taxes</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',serif;font-size:9pt;font-weight:400;line-height:100%\">(16,284)</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',serif;font-size:9pt;font-weight:400;line-height:100%\">1,899\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',serif;font-size:9pt;font-weight:400;line-height:100%\">(5,432)</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',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 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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">17,884\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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">(29,747)</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',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',serif;font-size:9pt;font-weight:400;line-height:100%\">29,325\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><div style=\"margin-top:6pt\"><span><br/></span></div><div style=\"margin-top:6pt;padding-left:22.5pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:5.85pt;font-weight:400;line-height:112%;position:relative;top:-3.15pt;vertical-align:baseline\">(1)</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:112%\"> GAAP cost of revenue adjusted for stock-based compensation and intangible asset amortization.</span></div><div style=\"margin-top:6pt;padding-left:22.5pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:5.85pt;font-weight:400;line-height:112%;position:relative;top:-3.15pt;vertical-align:baseline\">(2)</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:112%\"> GAAP sales and marketing operating expenses adjusted for stock-based compensation.</span></div><div style=\"margin-top:6pt;padding-left:22.5pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:5.85pt;font-weight:400;line-height:120%;position:relative;top:-3.15pt;vertical-align:baseline\">(3)</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:120%\"> </span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">GAAP research and development operating expenses adjusted for stock-based compensation.</span></div><div style=\"margin-top:6pt;padding-left:22.5pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:5.85pt;font-weight:400;line-height:120%;position:relative;top:-3.15pt;vertical-align:baseline\">(4)</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:120%\"> </span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">GAAP general and administrative operating expenses adjusted for stock-based compensation and litigation settlement (2023 only).</span></div><div style=\"margin-top:6pt;padding-left:22.5pt\"><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:5.85pt;font-weight:400;line-height:120%;position:relative;top:-3.15pt;vertical-align:baseline\">(5)</span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:9pt;font-weight:400;line-height:120%\"> </span><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">Other segment items consisted of stock-based compensation expense, intangible asset amortization and litigation settlement (2023 only).</span></div>","language":"en-us"}]},{"name":"rpt:f-1089","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementBusinessSegmentsAxis":"calx:ReportableSegmentMember"},"factValues":[{"value":"1000010000","decimals":-3}]},{"name":"rpt:f-1090","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementBusinessSegmentsAxis":"calx:ReportableSegmentMember"},"factValues":[{"value":"831518000","decimals":-3}]},{"name":"rpt:f-1091","factDimensions":{"xbrl:concept":"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementBusinessSegmentsAxis":"calx:ReportableSegmentMember"},"factValues":[{"value":"1039593000","decimals":-3}]},{"name":"rpt:f-1092","factDimensions":{"xbrl:concept":"calx:CostOfGoodsAndServicesSoldAdjusted","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementBusinessSegmentsAxis":"calx:ReportableSegmentMember"},"factValues":[{"value":"427718000","decimals":-3}]},{"name":"rpt:f-1093","factDimensions":{"xbrl:concept":"calx:CostOfGoodsAndServicesSoldAdjusted","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementBusinessSegmentsAxis":"calx:ReportableSegmentMember"},"factValues":[{"value":"372177000","decimals":-3}]},{"name":"rpt:f-1094","factDimensions":{"xbrl:concept":"calx:CostOfGoodsAndServicesSoldAdjusted","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementBusinessSegmentsAxis":"calx:ReportableSegmentMember"},"factValues":[{"value":"515633000","decimals":-3}]},{"name":"rpt:f-1095","factDimensions":{"xbrl:concept":"calx:SellingAndMarketingOperatingExpenseAdjusted","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementBusinessSegmentsAxis":"calx:ReportableSegmentMember"},"factValues":[{"value":"217904000","decimals":-3}]},{"name":"rpt:f-1096","factDimensions":{"xbrl:concept":"calx:SellingAndMarketingOperatingExpenseAdjusted","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementBusinessSegmentsAxis":"calx:ReportableSegmentMember"},"factValues":[{"value":"197069000","decimals":-3}]},{"name":"rpt:f-1097","factDimensions":{"xbrl:concept":"calx:SellingAndMarketingOperatingExpenseAdjusted","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementBusinessSegmentsAxis":"calx:ReportableSegmentMember"},"factValues":[{"value":"197671000","decimals":-3}]},{"name":"rpt:f-1098","factDimensions":{"xbrl:concept":"calx:ResearchAndDevelopmentOperatingExpenseAdjusted","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementBusinessSegmentsAxis":"calx:ReportableSegmentMember"},"factValues":[{"value":"167020000","decimals":-3}]},{"name":"rpt:f-1099","factDimensions":{"xbrl:concept":"calx:ResearchAndDevelopmentOperatingExpenseAdjusted","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementBusinessSegmentsAxis":"calx:ReportableSegmentMember"},"factValues":[{"value":"160787000","decimals":-3}]},{"name":"rpt:f-1100","factDimensions":{"xbrl:concept":"calx:ResearchAndDevelopmentOperatingExpenseAdjusted","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementBusinessSegmentsAxis":"calx:ReportableSegmentMember"},"factValues":[{"value":"160772000","decimals":-3}]},{"name":"rpt:f-1101","factDimensions":{"xbrl:concept":"calx:GeneralAndAdministrativeOperatingExpenseAdjusted","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementBusinessSegmentsAxis":"calx:ReportableSegmentMember"},"factValues":[{"value":"77483000","decimals":-3}]},{"name":"rpt:f-1102","factDimensions":{"xbrl:concept":"calx:GeneralAndAdministrativeOperatingExpenseAdjusted","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementBusinessSegmentsAxis":"calx:ReportableSegmentMember"},"factValues":[{"value":"70944000","decimals":-3}]},{"name":"rpt:f-1103","factDimensions":{"xbrl:concept":"calx:GeneralAndAdministrativeOperatingExpenseAdjusted","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementBusinessSegmentsAxis":"calx:ReportableSegmentMember"},"factValues":[{"value":"71180000","decimals":-3}]},{"name":"rpt:f-1104","factDimensions":{"xbrl:concept":"us-gaap:SegmentReportingOtherItemAmount","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementBusinessSegmentsAxis":"calx:ReportableSegmentMember"},"factValues":[{"value":"88895000","decimals":-3}]},{"name":"rpt:f-1105","factDimensions":{"xbrl:concept":"us-gaap:SegmentReportingOtherItemAmount","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementBusinessSegmentsAxis":"calx:ReportableSegmentMember"},"factValues":[{"value":"73575000","decimals":-3}]},{"name":"rpt:f-1106","factDimensions":{"xbrl:concept":"us-gaap:SegmentReportingOtherItemAmount","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementBusinessSegmentsAxis":"calx:ReportableSegmentMember"},"factValues":[{"value":"68752000","decimals":-3}]},{"name":"rpt:f-1107","factDimensions":{"xbrl:concept":"us-gaap:NonoperatingIncomeExpense","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementBusinessSegmentsAxis":"calx:ReportableSegmentMember"},"factValues":[{"value":"13178000","decimals":-3}]},{"name":"rpt:f-1108","factDimensions":{"xbrl:concept":"us-gaap:NonoperatingIncomeExpense","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementBusinessSegmentsAxis":"calx:ReportableSegmentMember"},"factValues":[{"value":"11388000","decimals":-3}]},{"name":"rpt:f-1109","factDimensions":{"xbrl:concept":"us-gaap:NonoperatingIncomeExpense","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementBusinessSegmentsAxis":"calx:ReportableSegmentMember"},"factValues":[{"value":"9172000","decimals":-3}]},{"name":"rpt:f-1110","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxExpenseBenefit","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementBusinessSegmentsAxis":"calx:ReportableSegmentMember"},"factValues":[{"value":"16284000","decimals":-3}]},{"name":"rpt:f-1111","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxExpenseBenefit","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementBusinessSegmentsAxis":"calx:ReportableSegmentMember"},"factValues":[{"value":"-1899000","decimals":-3}]},{"name":"rpt:f-1112","factDimensions":{"xbrl:concept":"us-gaap:IncomeTaxExpenseBenefit","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementBusinessSegmentsAxis":"calx:ReportableSegmentMember"},"factValues":[{"value":"5432000","decimals":-3}]},{"name":"rpt:f-1113","factDimensions":{"xbrl:concept":"us-gaap:NetIncomeLoss","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementBusinessSegmentsAxis":"calx:ReportableSegmentMember"},"factValues":[{"value":"17884000","decimals":-3}]},{"name":"rpt:f-1114","factDimensions":{"xbrl:concept":"us-gaap:NetIncomeLoss","xbrl:period":"2024-01-01T00:00:00/2025-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementBusinessSegmentsAxis":"calx:ReportableSegmentMember"},"factValues":[{"value":"-29747000","decimals":-3}]},{"name":"rpt:f-1115","factDimensions":{"xbrl:concept":"us-gaap:NetIncomeLoss","xbrl:period":"2023-01-01T00:00:00/2024-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"iso4217:USD","us-gaap:StatementBusinessSegmentsAxis":"calx:ReportableSegmentMember"},"factValues":[{"value":"29325000","decimals":-3}]},{"name":"rpt:f-1116","factDimensions":{"xbrl:concept":"ecd:NonRule10b51ArrAdoptedFlag","xbrl:period":"2025-09-28T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"false"}]},{"name":"rpt:f-1117","factDimensions":{"xbrl:concept":"ecd:NonRule10b51ArrTrmntdFlag","xbrl:period":"2025-09-28T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"false"}]},{"name":"rpt:f-1118","factDimensions":{"xbrl:concept":"ecd:Rule10b51ArrTrmntdFlag","xbrl:period":"2025-09-28T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"false"}]},{"name":"rpt:f-1119","factDimensions":{"xbrl:concept":"ecd:MtrlTermsOfTrdArrTextBlock","xbrl:period":"2025-09-28T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us","ecd:IndividualAxis":"calx:JohnDurocherMember"},"factValues":[{"value":"<div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">On November 25, 2025, John Durocher, Chief Operating Officer of the Company, adopted a Rule 10b5-1 trading arrangement (the \u201cDurocher 10b5-1 Plan\u201d) that is intended to satisfy the affirmative defense of Rule 10b5-1(c) of the Securities Exchange Act of 1934, as amended. The Durocher 10b5-1 Plan allows for the contemporaneous exercise of options and sale of up to 216,370 shares of Common Stock, at specific market prices, commencing on or about February 25, 2026, and continuing until all such options are exercised and the underlying shares are sold, or November 25, 2026, whichever comes first.</span></div>","language":"en-us"}]},{"name":"rpt:f-1120","factDimensions":{"xbrl:concept":"ecd:TrdArrAdoptionDate","xbrl:period":"2025-09-28T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us","ecd:IndividualAxis":"calx:JohnDurocherMember"},"factValues":[{"value":"November 25, 2025","language":"en-us"}]},{"name":"rpt:f-1121","factDimensions":{"xbrl:concept":"ecd:TrdArrIndName","xbrl:period":"2025-09-28T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us","ecd:IndividualAxis":"calx:JohnDurocherMember"},"factValues":[{"value":"John Durocher","language":"en-us"}]},{"name":"rpt:f-1122","factDimensions":{"xbrl:concept":"ecd:TrdArrIndTitle","xbrl:period":"2025-09-28T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us","ecd:IndividualAxis":"calx:JohnDurocherMember"},"factValues":[{"value":"Chief Operating Officer","language":"en-us"}]},{"name":"rpt:f-1123","factDimensions":{"xbrl:concept":"ecd:Rule10b51ArrAdoptedFlag","xbrl:period":"2025-09-28T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","ecd:IndividualAxis":"calx:JohnDurocherMember"},"factValues":[{"value":"true"}]},{"name":"rpt:f-1124","factDimensions":{"xbrl:concept":"ecd:TrdArrSecuritiesAggAvailAmt","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","ecd:IndividualAxis":"calx:JohnDurocherMember"},"factValues":[{"value":"216370"}]},{"name":"rpt:f-1125","factDimensions":{"xbrl:concept":"ecd:TrdArrExpirationDate","xbrl:period":"2025-09-28T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us","ecd:IndividualAxis":"calx:JohnDurocherMember"},"factValues":[{"value":"November 25, 2026","language":"en-us"}]},{"name":"rpt:f-1126","factDimensions":{"xbrl:concept":"ecd:MtrlTermsOfTrdArrTextBlock","xbrl:period":"2025-09-28T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us","ecd:IndividualAxis":"calx:KevinPetersMember"},"factValues":[{"value":"<div><span style=\"color:#000000;font-family:'Times New Roman',serif;font-size:10pt;font-weight:400;line-height:120%\">On November 26, 2025, Kevin Peters, Lead Independent Director of the Board of Directors of the Company, adopted a Rule 10b5-1 trading arrangement (the \u201cPeters 10b5-1 Plan\u201d) that is intended to satisfy the affirmative defense of Rule 10b5-1(c) of the Securities Exchange Act of 1934, as amended. The Peters 10b5-1 Plan allows for the contemporaneous exercise of options and sale of up to 39,478 shares of Common Stock, at specific market prices, commencing on or about February 25, 2026, and continuing until all such options are exercised and the underlying shares are sold, or November 25, 2027, whichever comes first.</span></div>","language":"en-us"}]},{"name":"rpt:f-1127","factDimensions":{"xbrl:concept":"ecd:TrdArrAdoptionDate","xbrl:period":"2025-09-28T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us","ecd:IndividualAxis":"calx:KevinPetersMember"},"factValues":[{"value":"November 26, 2025","language":"en-us"}]},{"name":"rpt:f-1128","factDimensions":{"xbrl:concept":"ecd:TrdArrIndName","xbrl:period":"2025-09-28T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us","ecd:IndividualAxis":"calx:KevinPetersMember"},"factValues":[{"value":"Kevin Peters","language":"en-us"}]},{"name":"rpt:f-1129","factDimensions":{"xbrl:concept":"ecd:TrdArrIndTitle","xbrl:period":"2025-09-28T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us","ecd:IndividualAxis":"calx:KevinPetersMember"},"factValues":[{"value":"Lead Independent Director of the Board of Directors","language":"en-us"}]},{"name":"rpt:f-1130","factDimensions":{"xbrl:concept":"ecd:Rule10b51ArrAdoptedFlag","xbrl:period":"2025-09-28T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","ecd:IndividualAxis":"calx:KevinPetersMember"},"factValues":[{"value":"true"}]},{"name":"rpt:f-1131","factDimensions":{"xbrl:concept":"ecd:TrdArrSecuritiesAggAvailAmt","xbrl:period":"2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:unit":"xbrla:shares","ecd:IndividualAxis":"calx:KevinPetersMember"},"factValues":[{"value":"39478"}]},{"name":"rpt:f-1132","factDimensions":{"xbrl:concept":"ecd:TrdArrExpirationDate","xbrl:period":"2025-09-28T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us","ecd:IndividualAxis":"calx:KevinPetersMember"},"factValues":[{"value":"November 25, 2027","language":"en-us"}]},{"name":"rpt:f-1133","factDimensions":{"xbrl:concept":"ecd:InsiderTrdPoliciesProcAdoptedFlag","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666"},"factValues":[{"value":"true"}]},{"name":"rpt:f-1134","factDimensions":{"xbrl:concept":"dei:AuditorFirmId","xbrl:period":"2025-01-01T00:00:00/2026-01-01T00:00:00","xbrl:entity":"cik:0001406666","xbrl:language":"en-us"},"factValues":[{"value":"185","language":"en-us"}]}]}}