Net Income Per Share - Anti-dilutive Net Income Per Share (Details) - shares shares in Thousands |
3 Months Ended | |
|---|---|---|
Mar. 31, 2026 |
Mar. 31, 2025 |
|
| Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items] | ||
| Total anti-dilutive shares (in shares) | 1,633 | 1,034 |
| Stock options | ||
| Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items] | ||
| Total anti-dilutive shares (in shares) | 1,021 | 813 |
| Restricted stock units | ||
| Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items] | ||
| Total anti-dilutive shares (in shares) | 612 | 220 |
| Employee stock purchase plan | ||
| Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items] | ||
| Total anti-dilutive shares (in shares) | 0 | 1 |