CONDENSED CONSOLIDATED STATEMENTS OF INCOME (Parenthetical) - USD ($) $ in Thousands |
3 Months Ended | 6 Months Ended | ||
|---|---|---|---|---|
Jun. 30, 2026 |
Jun. 30, 2025 |
Jun. 30, 2026 |
Jun. 30, 2025 |
|
| Share-based compensation expense | $ 5,760 | $ 4,207 | $ 10,024 | $ 8,471 |
| Income Statement Location [Axis]: us-gaap:CostOfRevenue | ||||
| Share-based compensation expense | 621 | 511 | 1,063 | 987 |
| Income Statement Location [Axis]: us-gaap:GeneralAndAdministrativeExpense | ||||
| Share-based compensation expense | 3,827 | 2,887 | 6,760 | 5,856 |
| Income Statement Location [Axis]: us-gaap:ResearchAndDevelopmentExpense | ||||
| Share-based compensation expense | 318 | 107 | 456 | 212 |
| Income Statement Location [Axis]: us-gaap:SellingAndMarketingExpense | ||||
| Share-based compensation expense | $ 994 | $ 702 | $ 1,745 | $ 1,416 |