XML 15 R25.htm IDEA: XBRL DOCUMENT v2.4.1.9
Fair Value of Financial Instruments (Details 4) (USD $)
In Thousands, unless otherwise specified
Apr. 30, 2015
Jul. 31, 2014
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Total assets $ 610,210us-gaap_AvailableForSaleSecurities $ 619,932us-gaap_AvailableForSaleSecurities
Level 1    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Total assets 68,002us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
53,959us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
Level 2    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Total assets 542,208us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
565,973us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
Level 3    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Total assets 0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_AvailableForSaleSecurities
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
U.S. agency securities    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Short-term investments: 68,391us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
29,062us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
Municipal debt securities 23,172us-gaap_AvailableForSaleSecuritiesNoncurrent
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
64,995us-gaap_AvailableForSaleSecuritiesNoncurrent
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
Total assets 91,563us-gaap_AvailableForSaleSecurities
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
94,057us-gaap_AvailableForSaleSecurities
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
U.S. agency securities | Level 1    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Short-term investments: 0us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
0us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
Municipal debt securities 0us-gaap_AvailableForSaleSecuritiesNoncurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
0us-gaap_AvailableForSaleSecuritiesNoncurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
U.S. agency securities | Level 2    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Short-term investments: 68,391us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
29,062us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
Municipal debt securities 23,172us-gaap_AvailableForSaleSecuritiesNoncurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
64,995us-gaap_AvailableForSaleSecuritiesNoncurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
U.S. agency securities | Level 3    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Short-term investments: 0us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
0us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
Municipal debt securities 0us-gaap_AvailableForSaleSecuritiesNoncurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
0us-gaap_AvailableForSaleSecuritiesNoncurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USGovernmentAgenciesDebtSecuritiesMember
Asset-backed securities    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Short-term investments:   1,361us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_AssetBackedSecuritiesMember
Total assets   1,361us-gaap_AvailableForSaleSecurities
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_AssetBackedSecuritiesMember
Asset-backed securities | Level 1    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Short-term investments:   0us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_AssetBackedSecuritiesMember
Asset-backed securities | Level 2    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Short-term investments:   1,361us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_AssetBackedSecuritiesMember
Asset-backed securities | Level 3    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Short-term investments:   0us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_AssetBackedSecuritiesMember
Commercial paper    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Short-term investments: 54,321us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialPaperMember
66,159us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialPaperMember
Total assets 109,654us-gaap_AvailableForSaleSecurities
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialPaperMember
132,452us-gaap_AvailableForSaleSecurities
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialPaperMember
Commercial paper | Level 1    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Short-term investments: 0us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialPaperMember
0us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialPaperMember
Commercial paper | Level 2    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Short-term investments: 54,321us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialPaperMember
66,159us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialPaperMember
Commercial paper | Level 3    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Short-term investments: 0us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialPaperMember
0us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CommercialPaperMember
Corporate bonds    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Short-term investments: 247,414us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CorporateBondSecuritiesMember
172,648us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CorporateBondSecuritiesMember
Municipal debt securities 58,954us-gaap_AvailableForSaleSecuritiesNoncurrent
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CorporateBondSecuritiesMember
125,005us-gaap_AvailableForSaleSecuritiesNoncurrent
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CorporateBondSecuritiesMember
Total assets 306,368us-gaap_AvailableForSaleSecurities
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CorporateBondSecuritiesMember
297,653us-gaap_AvailableForSaleSecurities
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CorporateBondSecuritiesMember
Corporate bonds | Level 1    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Short-term investments: 0us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CorporateBondSecuritiesMember
0us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CorporateBondSecuritiesMember
Municipal debt securities 0us-gaap_AvailableForSaleSecuritiesNoncurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CorporateBondSecuritiesMember
0us-gaap_AvailableForSaleSecuritiesNoncurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CorporateBondSecuritiesMember
Corporate bonds | Level 2    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Short-term investments: 247,414us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CorporateBondSecuritiesMember
172,648us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CorporateBondSecuritiesMember
Municipal debt securities 58,954us-gaap_AvailableForSaleSecuritiesNoncurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CorporateBondSecuritiesMember
125,005us-gaap_AvailableForSaleSecuritiesNoncurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CorporateBondSecuritiesMember
Corporate bonds | Level 3    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Short-term investments: 0us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CorporateBondSecuritiesMember
0us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CorporateBondSecuritiesMember
Municipal debt securities 0us-gaap_AvailableForSaleSecuritiesNoncurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CorporateBondSecuritiesMember
0us-gaap_AvailableForSaleSecuritiesNoncurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CorporateBondSecuritiesMember
U.S. government bonds    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Short-term investments: 14,993us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasurySecuritiesMember
9,995us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasurySecuritiesMember
Municipal debt securities 8,796us-gaap_AvailableForSaleSecuritiesNoncurrent
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasurySecuritiesMember
7,996us-gaap_AvailableForSaleSecuritiesNoncurrent
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasurySecuritiesMember
Total assets 23,789us-gaap_AvailableForSaleSecurities
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasurySecuritiesMember
17,991us-gaap_AvailableForSaleSecurities
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasurySecuritiesMember
U.S. government bonds | Level 1    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Short-term investments: 0us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasurySecuritiesMember
0us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasurySecuritiesMember
Municipal debt securities 0us-gaap_AvailableForSaleSecuritiesNoncurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasurySecuritiesMember
0us-gaap_AvailableForSaleSecuritiesNoncurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasurySecuritiesMember
U.S. government bonds | Level 2    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Short-term investments: 14,993us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasurySecuritiesMember
9,995us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasurySecuritiesMember
Municipal debt securities 8,796us-gaap_AvailableForSaleSecuritiesNoncurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasurySecuritiesMember
7,996us-gaap_AvailableForSaleSecuritiesNoncurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasurySecuritiesMember
U.S. government bonds | Level 3    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Short-term investments: 0us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasurySecuritiesMember
0us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasurySecuritiesMember
Municipal debt securities 0us-gaap_AvailableForSaleSecuritiesNoncurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasurySecuritiesMember
0us-gaap_AvailableForSaleSecuritiesNoncurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_USTreasurySecuritiesMember
Municipal debt securities    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Short-term investments: 2,513us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_MunicipalBondsMember
12,997us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_MunicipalBondsMember
Total assets 2,513us-gaap_AvailableForSaleSecurities
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_MunicipalBondsMember
12,997us-gaap_AvailableForSaleSecurities
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_MunicipalBondsMember
Municipal debt securities | Level 1    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Short-term investments: 0us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_MunicipalBondsMember
0us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_MunicipalBondsMember
Municipal debt securities | Level 2    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Short-term investments: 2,513us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_MunicipalBondsMember
12,997us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_MunicipalBondsMember
Municipal debt securities | Level 3    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Short-term investments: 0us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_MunicipalBondsMember
0us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_MunicipalBondsMember
Certificates of deposit    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Short-term investments: 2,700us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CertificatesOfDepositMember
4,009us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CertificatesOfDepositMember
Municipal debt securities   2,699us-gaap_AvailableForSaleSecuritiesNoncurrent
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CertificatesOfDepositMember
Total assets 2,700us-gaap_AvailableForSaleSecurities
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CertificatesOfDepositMember
6,708us-gaap_AvailableForSaleSecurities
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CertificatesOfDepositMember
Certificates of deposit | Level 1    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Short-term investments: 0us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CertificatesOfDepositMember
0us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CertificatesOfDepositMember
Municipal debt securities   0us-gaap_AvailableForSaleSecuritiesNoncurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CertificatesOfDepositMember
Certificates of deposit | Level 2    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Short-term investments: 2,700us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CertificatesOfDepositMember
4,009us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CertificatesOfDepositMember
Municipal debt securities   2,699us-gaap_AvailableForSaleSecuritiesNoncurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CertificatesOfDepositMember
Certificates of deposit | Level 3    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Short-term investments: 0us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CertificatesOfDepositMember
0us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CertificatesOfDepositMember
Municipal debt securities   0us-gaap_AvailableForSaleSecuritiesNoncurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_CertificatesOfDepositMember
Foreign government bonds    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Short-term investments: 2,719us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
 
Municipal debt securities 2,902us-gaap_AvailableForSaleSecuritiesNoncurrent
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
2,754us-gaap_AvailableForSaleSecuritiesNoncurrent
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
Total assets 5,621us-gaap_AvailableForSaleSecurities
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
2,754us-gaap_AvailableForSaleSecurities
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
Foreign government bonds | Level 1    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Short-term investments: 0us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
 
Municipal debt securities 0us-gaap_AvailableForSaleSecuritiesNoncurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
0us-gaap_AvailableForSaleSecuritiesNoncurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
Foreign government bonds | Level 2    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Short-term investments: 2,719us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
 
Municipal debt securities 2,902us-gaap_AvailableForSaleSecuritiesNoncurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
2,754us-gaap_AvailableForSaleSecuritiesNoncurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
Foreign government bonds | Level 3    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Short-term investments: 0us-gaap_AvailableForSaleSecuritiesCurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
 
Municipal debt securities 0us-gaap_AvailableForSaleSecuritiesNoncurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
0us-gaap_AvailableForSaleSecuritiesNoncurrent
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
/ us-gaap_MajorTypesOfDebtAndEquitySecuritiesAxis
= us-gaap_ForeignGovernmentDebtSecuritiesMember
Commercial paper    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Cash and cash equivalents: 55,333us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_CommercialPaperMember
66,293us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_CommercialPaperMember
Commercial paper | Level 1    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Cash and cash equivalents: 0us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_CommercialPaperMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
0us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_CommercialPaperMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
Commercial paper | Level 2    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Cash and cash equivalents: 55,333us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_CommercialPaperMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
66,293us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_CommercialPaperMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
Commercial paper | Level 3    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Cash and cash equivalents: 0us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_CommercialPaperMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
0us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_CommercialPaperMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
Money market funds    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Cash and cash equivalents: 68,002us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_MoneyMarketFundsMember
53,959us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_MoneyMarketFundsMember
Money market funds | Level 1    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Cash and cash equivalents: 68,002us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_MoneyMarketFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
53,959us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_MoneyMarketFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel1Member
Money market funds | Level 2    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Cash and cash equivalents: 0us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_MoneyMarketFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
0us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_MoneyMarketFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel2Member
Money market funds | Level 3    
Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]    
Cash and cash equivalents: $ 0us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_MoneyMarketFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member
$ 0us-gaap_CashAndCashEquivalentsFairValueDisclosure
/ us-gaap_CashAndCashEquivalentsAxis
= us-gaap_MoneyMarketFundsMember
/ us-gaap_FairValueByFairValueHierarchyLevelAxis
= us-gaap_FairValueInputsLevel3Member