| Standard label: | Revenue, Performance Obligation Satisfied over Time, Method Used, Explanation |
| Name: | us-gaap:RevenuePerformanceObligationSatisfiedOverTimeMethodUsedExplanation |
| Documentation: | Description of why method used to recognize revenue provides faithful depiction of transfer of good and service for performance obligation satisfied over time. |
| Object type: | cm:Concept |
| Data type: | Text/String (xbrli:stringItemType) |
| Period type: | For Period (duration) |
| Balance type: | (no balance type) |
| Abstract: | false |
| Workiva Wdesk Taxonomy Analyzer: | us-gaap:RevenuePerformanceObligationSatisfiedOverTimeMethodUsedExplanation |
| Label | Role | Language |
| Revenue, Performance Obligation Satisfied over Time, Method Used, Explanation | http://www.xbrl.org/2003/role/label | en-US |
| Reference | Role | Topic |
| FASB Accounting Standards Codification 606 10 50 18 (b) | http://www.xbrl.org/2003/role/disclosureRef | 606 |