| Standard label: | Schedule of Inventory, Noncurrent [Table Text Block] |
| Name: | us-gaap:ScheduleOfInventoryNoncurrentTableTextBlock |
| Documentation: | Tabular disclosure of inventories not expected to be converted to cash, sold or exchanged within the normal operating cycle including inventoried costs relating to long-term contracts or programs. |
| Object type: | cm:Level3TextBlock |
| 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:ScheduleOfInventoryNoncurrentTableTextBlock |
| Examples of this text block disclosure: | InventoryNoncurrent |
| Label | Role | Language |
| Schedule of Inventory, Noncurrent [Table Text Block] | http://www.xbrl.org/2003/role/label | en-US |
| Reference | Role | Topic |
| FASB Accounting Standards Codification 210 10 S99 1 (SX 210.5-02(6)(a)) | http://fasb.org/us-gaap/role/ref/legacyRef | 210 |
| FASB Accounting Standards Codification 210 10 S99 1 (SX 210.5-02(6)(b)) | http://fasb.org/us-gaap/role/ref/legacyRef | 210 |
| FASB Accounting Standards Codification 210 10 S99 1 (SX 210.5-02(6)(c)) | http://fasb.org/us-gaap/role/ref/legacyRef | 210 |
| FASB Accounting Standards Codification 210 10 S99 1 (SX 210.5-02(6)(d)) | http://fasb.org/us-gaap/role/ref/legacyRef | 210 |
| FASB Accounting Standards Codification 210 10 50 1 | http://fasb.org/us-gaap/role/ref/legacyRef | 210 |