| Type | including |
|---|---|
| Role | http://fasb.org/us-gaap/role/disclosure/RevenuefromContractswithCustomersDisaggregationOfRevenueTable |
| Type | Element |
|---|---|
| Hypercube | us-gaap:DisaggregationOfRevenueTable |
| Explicit | srt:ProductOrServiceAxis |
| Member | srt:ProductsAndServicesDomain |
| Explicit | srt:StatementGeographicalAxis |
| Member | srt:SegmentGeographicalDomain |
| Member | srt:AsiaMember |
| Member | srt:AsiaPacificMember |
| Member | srt:AfricaMember |
| Member | srt:AmericasMember |
| Member | srt:CentralAmericaMember |
| Member | us-gaap:EMEAMember |
| Member | srt:EuropeMember |
| Member | us-gaap:EuropeanUnionMember |
| Member | srt:LatinAmericaMember |
| Member | us-gaap:MiddleEastMember |
| Member | srt:NorthAmericaMember |
| Member | srt:SouthAmericaMember |
| Explicit | us-gaap:ContractWithCustomerBasisOfPricingAxis |
| Member | us-gaap:ContractWithCustomerBasisOfPricingDomain |
| Member | us-gaap:FixedPriceContractMember |
| Member | us-gaap:TimeAndMaterialsContractMember |
| Explicit | us-gaap:ContractWithCustomerDurationAxis |
| Member | us-gaap:ContractWithCustomerDurationDomain |
| Member | us-gaap:ShortTermContractWithCustomerMember |
| Member | us-gaap:LongTermContractWithCustomerMember |
| Explicit | us-gaap:TimingOfTransferOfGoodOrServiceAxis |
| Member | us-gaap:TimingOfTransferOfGoodOrServiceDomain |
| Member | us-gaap:TransferredAtPointInTimeMember |
| Member | us-gaap:TransferredOverTimeMember |
| Explicit | us-gaap:ContractWithCustomerSalesChannelAxis |
| Member | us-gaap:ContractWithCustomerSalesChannelDomain |
| Member | us-gaap:SalesChannelDirectlyToConsumerMember |
| Member | us-gaap:SalesChannelThroughIntermediaryMember |
| Explicit | srt:MajorCustomersAxis |
| Member | srt:NameOfMajorCustomerDomain |
| Label/QName |
|---|
us-gaap:DisaggregationOfRevenueLineItems |
us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax |
us-gaap:ExciseAndSalesTaxes |
us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax |
us-gaap:RevenueFromContractWithCustomerProductAndServiceExtensibleList |
us-gaap:RevenueFromContractWithCustomerGeographicalExtensibleList |
us-gaap:RevenueFromContractWithCustomerBasisOfPricingExtensibleList |
us-gaap:RevenueFromContractWithCustomerDurationExtensibleList |
us-gaap:RevenueFromContractWithCustomerTimingOfTransferOfGoodOrServiceExtensibleList |
us-gaap:RevenueFromContractWithCustomerSalesChannelExtensibleList |