Net Income Per Share - Schedule of Potentially Dilutive Securities (Details) - shares |
3 Months Ended | 6 Months Ended | ||
|---|---|---|---|---|
Jun. 30, 2026 |
Jun. 30, 2025 |
Jun. 30, 2026 |
Jun. 30, 2025 |
|
| Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items] | ||||
| Total (in shares) | 16,470,430 | 16,959,812 | 16,536,110 | 17,018,821 |
| Options to purchase common stock | ||||
| Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items] | ||||
| Total (in shares) | 15,522,001 | 15,199,884 | 15,522,238 | 15,207,450 |
| Shares issuable under ESPP | ||||
| Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items] | ||||
| Total (in shares) | 6,887 | 0 | 9,564 | 933 |
| Restricted stock units | ||||
| Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items] | ||||
| Total (in shares) | 941,542 | 1,759,928 | 1,004,308 | 1,810,438 |