 | us-gaap:OtherInventoryMaterialsSuppliesAndMerchandiseUnderConsignment | parent-child | http://fasb.org/us-gaap/role/disclosure/Inventory |
 | us-gaap:OtherInventoryWarehouse | parent-child | http://fasb.org/us-gaap/role/disclosure/Inventory |
 | us-gaap:OtherInventoryScrap | parent-child | http://fasb.org/us-gaap/role/disclosure/Inventory |
 | us-gaap:OtherInventoriesSpareParts | parent-child | http://fasb.org/us-gaap/role/disclosure/Inventory |
 | us-gaap:OtherInventoryDemo | parent-child | http://fasb.org/us-gaap/role/disclosure/Inventory |
 | us-gaap:OtherInventoryPurchasedGoods | parent-child | http://fasb.org/us-gaap/role/disclosure/Inventory |
 | us-gaap:OtherInventoryInventoryAtOffSitePremises | parent-child | http://fasb.org/us-gaap/role/disclosure/Inventory |
 | us-gaap:OtherInventoryInTransit | parent-child | http://fasb.org/us-gaap/role/disclosure/Inventory |
 | us-gaap:OtherInventoryCapitalizedCosts | parent-child | http://fasb.org/us-gaap/role/disclosure/Inventory |
 | us-gaap:OtherInventory | parent-child | http://fasb.org/us-gaap/role/disclosure/Inventory |
 | us-gaap:OtherInventoryMaterialsSuppliesAndMerchandiseUnderConsignment | domain-member | http://fasb.org/us-gaap/role/disclosure/InventoryInventoryCurrentTable |
 | us-gaap:OtherInventoryWarehouse | domain-member | http://fasb.org/us-gaap/role/disclosure/InventoryInventoryCurrentTable |
 | us-gaap:OtherInventoryScrap | domain-member | http://fasb.org/us-gaap/role/disclosure/InventoryInventoryCurrentTable |
 | us-gaap:OtherInventoriesSpareParts | domain-member | http://fasb.org/us-gaap/role/disclosure/InventoryInventoryCurrentTable |
 | us-gaap:OtherInventoryDemo | domain-member | http://fasb.org/us-gaap/role/disclosure/InventoryInventoryCurrentTable |
 | us-gaap:OtherInventoryPurchasedGoods | domain-member | http://fasb.org/us-gaap/role/disclosure/InventoryInventoryCurrentTable |
 | us-gaap:OtherInventoryInventoryAtOffSitePremises | domain-member | http://fasb.org/us-gaap/role/disclosure/InventoryInventoryCurrentTable |
 | us-gaap:OtherInventoryInTransit | domain-member | http://fasb.org/us-gaap/role/disclosure/InventoryInventoryCurrentTable |
 | us-gaap:OtherInventoryCapitalizedCosts | domain-member | http://fasb.org/us-gaap/role/disclosure/InventoryInventoryCurrentTable |
 | us-gaap:OtherInventory | domain-member | http://fasb.org/us-gaap/role/disclosure/InventoryInventoryCurrentTable |