v3.21.1

Summary of significant accounting policies - Revenue recognition - Practical expedient (Details) | 3 Months Ended
--- | ---
Mar. 31, 2021
Summary of significant accounting policies |
Practical expedient of financing component | true
Practical expedient of incremental cost | true

X
- References No definition available. + Details
Name: | us-gaap_AccountingPoliciesAbstract
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition Indicates (true false) whether practical expedient was elected not to adjust consideration for effect of financing component when transfer and customer payment for product or service occurs within one year or less. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 606 -SubTopic 10 -Section 50 -Paragraph 22 -URI http://asc.fasb.org/extlink&oid=121604090&loc=SL49130569-203045 + Details
Name: | us-gaap_RevenuePracticalExpedientFinancingComponent
Namespace Prefix: | us-gaap_
Data Type: | xbrli:booleanItemType
Balance Type: | na
Period Type: | duration

X
- Definition Indicates (true false) whether practical expedient was elected to recognize incremental cost of obtaining contract as expense when incurred if amortization period would have been one year or less. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 340 -SubTopic 40 -Section 50 -Paragraph 5 -URI http://asc.fasb.org/extlink&oid=68051541&loc=SL51790836-203054 Reference 2: http://www.xbrl.org/2003/role/disclosureRef -Publisher FASB -Name Accounting Standards Codification -Topic 606 -SubTopic 10 -Section 50 -Paragraph 22 -URI http://asc.fasb.org/extlink&oid=121604090&loc=SL49130569-203045 + Details
Name: | us-gaap_RevenuePracticalExpedientIncrementalCostOfObtainingContract
Namespace Prefix: | us-gaap_
Data Type: | xbrli:booleanItemType
Balance Type: | na
Period Type: | duration