Net Income Per Share - Schedule of Anti-dilutive Net Income Per Share (Details) - shares shares in Thousands |
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 anti-dilutive shares (in shares) | 1,908 | 1,048 | 1,771 | 1,041 |
| Stock options | ||||
| Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items] | ||||
| Total anti-dilutive shares (in shares) | 1,133 | 832 | 1,077 | 823 |
| Restricted stock units | ||||
| Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items] | ||||
| Total anti-dilutive shares (in shares) | 745 | 192 | 678 | 206 |
| Employee stock purchase plan | ||||
| Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items] | ||||
| Total anti-dilutive shares (in shares) | 30 | 24 | 16 | 12 |