Consolidated Statements of Shareholders' Equity - USD ($) $ in Thousands | Total | Common Stock | Additional Paid-In Capital | Retained Earnings | Accumulated Other Comprehensive Loss |
Beginning balance (in shares) at Dec. 31, 2021 | | 27,465,945 | | | |
Beginning balance at Dec. 31, 2021 | $ 828,493 | $ 28 | $ 468,548 | $ 376,734 | $ (16,817) |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | |
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (in shares) | | 27,716 | | | |
Common shares issued on exercise of options and other, net of shares withheld for tax obligations | (462) | | (462) | | |
Stock-based compensation expense | 4,397 | | 4,397 | | |
Net income | 5,095 | | | 5,095 | |
Other comprehensive income (loss) | | | | | |
Foreign currency translation adjustment | (4,972) | | | | (4,972) |
Net unrealized gains (losses) on investments in securities | (516) | | | | (516) |
Comprehensive income | (393) | | | | |
Ending balance (in shares) at Mar. 31, 2022 | | 27,493,661 | | | |
Ending balance at Mar. 31, 2022 | 832,035 | $ 28 | 472,483 | 381,829 | (22,305) |
Beginning balance (in shares) at Dec. 31, 2021 | | 27,465,945 | | | |
Beginning balance at Dec. 31, 2021 | 828,493 | $ 28 | 468,548 | 376,734 | (16,817) |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | |
Net income | 11,603 | | | | |
Other comprehensive income (loss) | | | | | |
Comprehensive income | (18,604) | | | | |
Ending balance (in shares) at Sep. 30, 2022 | | 27,326,750 | | | |
Ending balance at Sep. 30, 2022 | 810,846 | $ 28 | 477,107 | 380,735 | (47,024) |
Beginning balance (in shares) at Mar. 31, 2022 | | 27,493,661 | | | |
Beginning balance at Mar. 31, 2022 | 832,035 | $ 28 | 472,483 | 381,829 | (22,305) |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | |
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (in shares) | | 122,705 | | | |
Common shares issued on exercise of options and other, net of shares withheld for tax obligations | 1,158 | | 1,158 | | |
Stock-based compensation expense | 4,031 | | 4,031 | | |
Repurchases of common stock and other (in shares) | | (113,266) | | | |
Repurchases of common stock and other | (5,239) | | (1,932) | (3,307) | |
Net income | 2,557 | | | 2,557 | |
Other comprehensive income (loss) | | | | | |
Foreign currency translation adjustment | (13,515) | | | | (13,515) |
Net unrealized gains (losses) on investments in securities | (329) | | | | (329) |
Comprehensive income | (11,287) | | | | |
Ending balance (in shares) at Jun. 30, 2022 | | 27,503,100 | | | |
Ending balance at Jun. 30, 2022 | 820,698 | $ 28 | 475,740 | 381,079 | (36,149) |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | |
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (in shares) | | 31,150 | | | |
Common shares issued on exercise of options and other, net of shares withheld for tax obligations | 0 | | 0 | | |
Stock-based compensation expense | 4,907 | | 4,907 | | |
Repurchases of common stock and other (in shares) | | (207,500) | | | |
Repurchases of common stock and other | (7,835) | | (3,540) | (4,295) | |
Net income | 3,951 | | | 3,951 | |
Other comprehensive income (loss) | | | | | |
Foreign currency translation adjustment | (10,287) | | | | (10,287) |
Net unrealized gains (losses) on investments in securities | (588) | | | | (588) |
Comprehensive income | (6,924) | | | | |
Ending balance (in shares) at Sep. 30, 2022 | | 27,326,750 | | | |
Ending balance at Sep. 30, 2022 | $ 810,846 | $ 28 | 477,107 | 380,735 | (47,024) |
Beginning balance (in shares) at Dec. 31, 2022 | 26,888,425 | 26,888,425 | | | |
Beginning balance at Dec. 31, 2022 | $ 697,648 | $ 27 | 473,740 | 258,236 | (34,355) |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | |
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (in shares) | | 26,798 | | | |
Common shares issued on exercise of options and other, net of shares withheld for tax obligations | (401) | | (401) | | |
Stock-based compensation expense | 3,695 | | 3,695 | | |
Repurchases of common stock and other (in shares) | | (712,500) | | | |
Repurchases of common stock and other | (21,325) | $ (1) | (11,849) | (9,475) | |
Net income | 2,659 | | | 2,659 | |
Other comprehensive income (loss) | | | | | |
Foreign currency translation adjustment | 527 | | | | 527 |
Net unrealized gains (losses) on investments in securities | 334 | | | | 334 |
Comprehensive income | 3,520 | | | | |
Ending balance (in shares) at Mar. 31, 2023 | | 26,202,723 | | | |
Ending balance at Mar. 31, 2023 | $ 683,137 | $ 26 | 465,185 | 251,420 | (33,494) |
Beginning balance (in shares) at Dec. 31, 2022 | 26,888,425 | 26,888,425 | | | |
Beginning balance at Dec. 31, 2022 | $ 697,648 | $ 27 | 473,740 | 258,236 | (34,355) |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | |
Net income | 10,230 | | | | |
Other comprehensive income (loss) | | | | | |
Comprehensive income | $ 14,297 | | | | |
Ending balance (in shares) at Sep. 30, 2023 | 25,785,903 | 25,785,903 | | | |
Ending balance at Sep. 30, 2023 | $ 684,922 | $ 26 | 463,908 | 251,276 | (30,288) |
Beginning balance (in shares) at Mar. 31, 2023 | | 26,202,723 | | | |
Beginning balance at Mar. 31, 2023 | 683,137 | $ 26 | 465,185 | 251,420 | (33,494) |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | |
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (in shares) | | 169,229 | | | |
Common shares issued on exercise of options and other, net of shares withheld for tax obligations | 962 | | 962 | | |
Stock-based compensation expense | 3,675 | | 3,675 | | |
Repurchases of common stock and other (in shares) | | (276,518) | | | |
Repurchases of common stock and other | (8,979) | | (4,872) | (4,107) | |
Net income | (383) | | | (383) | |
Other comprehensive income (loss) | | | | | |
Foreign currency translation adjustment | 4,254 | | | | 4,254 |
Net unrealized gains (losses) on investments in securities | 19 | | | | 19 |
Comprehensive income | 3,890 | | | | |
Ending balance (in shares) at Jun. 30, 2023 | | 26,095,434 | | | |
Ending balance at Jun. 30, 2023 | 682,685 | $ 26 | 464,950 | 246,930 | (29,221) |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | |
Common shares issued on exercise of options and other, net of shares withheld for tax obligations (in shares) | | 1,037 | | | |
Common shares issued on exercise of options and other, net of shares withheld for tax obligations | (11) | | (11) | | |
Stock-based compensation expense | 4,441 | | 4,441 | | |
Repurchases of common stock and other (in shares) | | (310,568) | | | |
Repurchases of common stock and other | (9,080) | | (5,472) | (3,608) | |
Net income | 7,954 | | | 7,954 | |
Other comprehensive income (loss) | | | | | |
Foreign currency translation adjustment | (1,307) | | | | (1,307) |
Net unrealized gains (losses) on investments in securities | 240 | | | | 240 |
Comprehensive income | $ 6,887 | | | | |
Ending balance (in shares) at Sep. 30, 2023 | 25,785,903 | 25,785,903 | | | |
Ending balance at Sep. 30, 2023 | $ 684,922 | $ 26 | $ 463,908 | $ 251,276 | $ (30,288) |