 | us-gaap:TaxYear2006Member | parent-child | http://fasb.org/us-gaap/role/disclosure/IncomeTaxes |
 | us-gaap:TaxYear2007Member | parent-child | http://fasb.org/us-gaap/role/disclosure/IncomeTaxes |
 | us-gaap:TaxYear2008Member | parent-child | http://fasb.org/us-gaap/role/disclosure/IncomeTaxes |
 | us-gaap:TaxYear2009Member | parent-child | http://fasb.org/us-gaap/role/disclosure/IncomeTaxes |
 | us-gaap:TaxYear2010Member | parent-child | http://fasb.org/us-gaap/role/disclosure/IncomeTaxes |
 | us-gaap:TaxYear2011Member | parent-child | http://fasb.org/us-gaap/role/disclosure/IncomeTaxes |
 | us-gaap:TaxYear2012Member | parent-child | http://fasb.org/us-gaap/role/disclosure/IncomeTaxes |
 | us-gaap:TaxYear2013Member | parent-child | http://fasb.org/us-gaap/role/disclosure/IncomeTaxes |
 | us-gaap:TaxYear2014Member | parent-child | http://fasb.org/us-gaap/role/disclosure/IncomeTaxes |
 | us-gaap:TaxYear2015Member | parent-child | http://fasb.org/us-gaap/role/disclosure/IncomeTaxes |
 | us-gaap:TaxYear2016Member | parent-child | http://fasb.org/us-gaap/role/disclosure/IncomeTaxes |
 | us-gaap:TaxYear2017Member | parent-child | http://fasb.org/us-gaap/role/disclosure/IncomeTaxes |
 | us-gaap:TaxYear2018Member | parent-child | http://fasb.org/us-gaap/role/disclosure/IncomeTaxes |
 | us-gaap:TaxYear2019Member | parent-child | http://fasb.org/us-gaap/role/disclosure/IncomeTaxes |
 | us-gaap:TaxYear2020Member | parent-child | http://fasb.org/us-gaap/role/disclosure/IncomeTaxes |
 | us-gaap:TaxYear2021Member | parent-child | http://fasb.org/us-gaap/role/disclosure/IncomeTaxes |
 | us-gaap:EarliestTaxYearMember | parent-child | http://fasb.org/us-gaap/role/disclosure/IncomeTaxes |
 | us-gaap:LatestTaxYearMember | parent-child | http://fasb.org/us-gaap/role/disclosure/IncomeTaxes |
 | us-gaap:TaxYear2006Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesIncomeTaxContingencyTable |
 | us-gaap:TaxYear2007Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesIncomeTaxContingencyTable |
 | us-gaap:TaxYear2008Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesIncomeTaxContingencyTable |
 | us-gaap:TaxYear2009Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesIncomeTaxContingencyTable |
 | us-gaap:TaxYear2010Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesIncomeTaxContingencyTable |
 | us-gaap:TaxYear2011Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesIncomeTaxContingencyTable |
 | us-gaap:TaxYear2012Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesIncomeTaxContingencyTable |
 | us-gaap:TaxYear2013Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesIncomeTaxContingencyTable |
 | us-gaap:TaxYear2014Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesIncomeTaxContingencyTable |
 | us-gaap:TaxYear2015Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesIncomeTaxContingencyTable |
 | us-gaap:TaxYear2016Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesIncomeTaxContingencyTable |
 | us-gaap:TaxYear2017Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesIncomeTaxContingencyTable |
 | us-gaap:TaxYear2018Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesIncomeTaxContingencyTable |
 | us-gaap:TaxYear2019Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesIncomeTaxContingencyTable |
 | us-gaap:TaxYear2020Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesIncomeTaxContingencyTable |
 | us-gaap:TaxYear2021Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesIncomeTaxContingencyTable |
 | us-gaap:EarliestTaxYearMember | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesIncomeTaxContingencyTable |
 | us-gaap:LatestTaxYearMember | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesIncomeTaxContingencyTable |
 | us-gaap:TaxYear2006Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesOperatingLossCarryforwardsTable |
 | us-gaap:TaxYear2007Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesOperatingLossCarryforwardsTable |
 | us-gaap:TaxYear2008Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesOperatingLossCarryforwardsTable |
 | us-gaap:TaxYear2009Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesOperatingLossCarryforwardsTable |
 | us-gaap:TaxYear2010Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesOperatingLossCarryforwardsTable |
 | us-gaap:TaxYear2011Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesOperatingLossCarryforwardsTable |
 | us-gaap:TaxYear2012Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesOperatingLossCarryforwardsTable |
 | us-gaap:TaxYear2013Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesOperatingLossCarryforwardsTable |
 | us-gaap:TaxYear2014Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesOperatingLossCarryforwardsTable |
 | us-gaap:TaxYear2015Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesOperatingLossCarryforwardsTable |
 | us-gaap:TaxYear2016Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesOperatingLossCarryforwardsTable |
 | us-gaap:TaxYear2017Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesOperatingLossCarryforwardsTable |
 | us-gaap:TaxYear2018Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesOperatingLossCarryforwardsTable |
 | us-gaap:TaxYear2019Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesOperatingLossCarryforwardsTable |
 | us-gaap:TaxYear2020Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesOperatingLossCarryforwardsTable |
 | us-gaap:TaxYear2021Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesOperatingLossCarryforwardsTable |
 | us-gaap:EarliestTaxYearMember | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesOperatingLossCarryforwardsTable |
 | us-gaap:LatestTaxYearMember | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesOperatingLossCarryforwardsTable |
 | us-gaap:TaxYear2006Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesTaxCreditCarryforwardTable |
 | us-gaap:TaxYear2007Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesTaxCreditCarryforwardTable |
 | us-gaap:TaxYear2008Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesTaxCreditCarryforwardTable |
 | us-gaap:TaxYear2009Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesTaxCreditCarryforwardTable |
 | us-gaap:TaxYear2010Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesTaxCreditCarryforwardTable |
 | us-gaap:TaxYear2011Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesTaxCreditCarryforwardTable |
 | us-gaap:TaxYear2012Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesTaxCreditCarryforwardTable |
 | us-gaap:TaxYear2013Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesTaxCreditCarryforwardTable |
 | us-gaap:TaxYear2014Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesTaxCreditCarryforwardTable |
 | us-gaap:TaxYear2015Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesTaxCreditCarryforwardTable |
 | us-gaap:TaxYear2016Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesTaxCreditCarryforwardTable |
 | us-gaap:TaxYear2017Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesTaxCreditCarryforwardTable |
 | us-gaap:TaxYear2018Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesTaxCreditCarryforwardTable |
 | us-gaap:TaxYear2019Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesTaxCreditCarryforwardTable |
 | us-gaap:TaxYear2020Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesTaxCreditCarryforwardTable |
 | us-gaap:TaxYear2021Member | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesTaxCreditCarryforwardTable |
 | us-gaap:EarliestTaxYearMember | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesTaxCreditCarryforwardTable |
 | us-gaap:LatestTaxYearMember | domain-member | http://fasb.org/us-gaap/role/disclosure/IncomeTaxesTaxCreditCarryforwardTable |