| Standard label: | Revenue, Remaining Performance Obligation, Provision for Loss [Policy Text Block] |
| Name: | us-gaap:RevenueRemainingPerformanceObligationProvisionForLossPolicyTextBlock |
| Documentation: | Disclosure of accounting policy election for whether provision for loss for performance obligation was determined at contract or performance obligation level. |
| Object type: | cm:Level2TextBlock |
| Data type: | Text Block (HTML) (nonnum:textBlockItemType) |
| Period type: | For Period (duration) |
| Balance type: | (no balance type) |
| Abstract: | false |
| Workiva Wdesk Taxonomy Analyzer: | us-gaap:RevenueRemainingPerformanceObligationProvisionForLossPolicyTextBlock |
| Label | Role | Language |
| Revenue, Remaining Performance Obligation, Provision for Loss [Policy Text Block] | http://www.xbrl.org/2003/role/label | en-US |
| Reference | Role | Topic |
| FASB Accounting Standards Codification 605 35 25 47 | http://www.xbrl.org/2003/role/disclosureRef | 605 |