v3.24.0.1

Stockholders' Equity - Stock Option Plan (Details) - USD ($) $ / shares in Units, $ in Millions | 12 Months Ended
--- | ---
Dec. 31, 2023 | Dec. 31, 2022 | Dec. 31, 2021
Equity [Abstract] |  |  |
Weighted average grant-date fair value of stock options granted (in dollars per share) | $ 42.43 | $ 36.66 | $ 139.76
Intrinsic value of stock options exercised | $ 38.9 | $ 210.0 | $ 997.6
Unrecognized stock compensation expense | $ 69.4 |  |
Expected weighted average period to recognize unrecognized stock compensation expense | 2 years 2 months 12 days |  |

X
- Definition Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (i) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
Namespace Prefix: | us-gaap_
Data Type: | xbrli:durationItemType
Balance Type: | na
Period Type: | duration

X
- Definition Amount of cost to be recognized for option under share-based payment arrangement. + References Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (i) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

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

X
- Definition Amount of accumulated difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (d)(2) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | duration

X
- Definition The weighted average grant-date fair value of options granted during the reporting period as calculated by applying the disclosed option pricing methodology. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 718 -SubTopic 10 -Name Accounting Standards Codification -Section 50 -Paragraph 2 -Subparagraph (d)(1) -Publisher FASB -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2 + Details
Name: | us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:perShareItemType
Balance Type: | na
Period Type: | duration