CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY - USD ($) shares in Thousands, $ in Thousands | Total | Common Stock | Additional Paid-in Capital | Treasury Stock | Accumulated Other Comprehensive Income | Retained Earnings (Accumulated Deficit) |
Beginning balance (in shares) at Dec. 31, 2019 | | 114,549 | | | | |
Beginning balance at Dec. 31, 2019 | $ 371,182 | $ 120 | $ 457,060 | $ (62,704) | $ 261 | $ (23,555) |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | |
Issuance of common stock upon exercise of options (in shares) | | 67 | | | | |
Issuance of common stock upon exercise of options | 480 | | 480 | | | |
Purchases of treasury stock (in shares) | | (20) | | | | |
Purchases of treasury stock | (275) | | | (275) | | |
Stock-based compensation | 7,988 | | 7,988 | | | |
Other comprehensive income (loss), net of tax | 49 | | | | 49 | |
Net income | 30,065 | | | | | 30,065 |
Ending balance (in shares) at Mar. 31, 2020 | | 114,596 | | | | |
Ending balance at Mar. 31, 2020 | 409,489 | $ 120 | 465,528 | (62,979) | 310 | 6,510 |
Beginning balance (in shares) at Dec. 31, 2019 | | 114,549 | | | | |
Beginning balance at Dec. 31, 2019 | $ 371,182 | $ 120 | 457,060 | (62,704) | 261 | (23,555) |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | |
Issuance of common stock upon exercise of options (in shares) | 1,100 | | | | | |
Shares purchased to satisfy cost and statutory withholding requirements for net settlement of cashless option exercises | (100) | | | | | |
Net income | $ 58,392 | | | | | |
Ending balance (in shares) at Jun. 30, 2020 | | 115,553 | | | | |
Ending balance at Jun. 30, 2020 | 453,698 | $ 121 | 481,714 | (63,814) | 840 | 34,837 |
Beginning balance (in shares) at Mar. 31, 2020 | | 114,596 | | | | |
Beginning balance at Mar. 31, 2020 | $ 409,489 | $ 120 | 465,528 | (62,979) | 310 | 6,510 |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | |
Issuance of common stock upon exercise of options (in shares) | 1,000 | 1,011 | | | | |
Issuance of common stock upon exercise of options | $ 7,639 | $ 1 | 7,638 | | | |
Shares purchased to satisfy cost and statutory withholding requirements for net settlement of cashless option exercises | (100) | (54) | | | | |
Shares purchased to satisfy cost and statutory withholding requirements for net settlement of cashless option exercises | $ (835) | | | (835) | | |
Stock-based compensation | 8,548 | | 8,548 | | | |
Other comprehensive income (loss), net of tax | 530 | | | | 530 | |
Net income | 28,327 | | | | | 28,327 |
Ending balance (in shares) at Jun. 30, 2020 | | 115,553 | | | | |
Ending balance at Jun. 30, 2020 | 453,698 | $ 121 | 481,714 | (63,814) | 840 | 34,837 |
Beginning balance (in shares) at Dec. 31, 2020 | | 116,735 | | | | |
Beginning balance at Dec. 31, 2020 | 523,338 | $ 122 | 516,140 | (75,795) | 415 | 82,456 |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | |
Issuance of common stock upon exercise of options (in shares) | | 1,832 | | | | |
Issuance of common stock upon exercise of options | 10,083 | $ 2 | 10,081 | | | |
Purchases of treasury stock (in shares) | | (1,282) | | | | |
Purchases of treasury stock | (33,540) | | | (33,540) | | |
Shares purchased to satisfy cost and statutory withholding requirements for net settlement of cashless option exercises | | (808) | | | | |
Shares purchased to satisfy cost and statutory withholding requirements for net settlement of cashless option exercises | (22,520) | | | (22,520) | | |
Stock-based compensation | 10,142 | | 10,142 | | | |
Other comprehensive income (loss), net of tax | (166) | | | | (166) | |
Net income | 23,465 | | | | | 23,465 |
Ending balance (in shares) at Mar. 31, 2021 | | 116,477 | | | | |
Ending balance at Mar. 31, 2021 | 510,802 | $ 124 | 536,363 | (131,855) | 249 | 105,921 |
Beginning balance (in shares) at Dec. 31, 2020 | | 116,735 | | | | |
Beginning balance at Dec. 31, 2020 | $ 523,338 | $ 122 | 516,140 | (75,795) | 415 | 82,456 |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | |
Issuance of common stock upon exercise of options (in shares) | 2,700 | | | | | |
Shares purchased to satisfy cost and statutory withholding requirements for net settlement of cashless option exercises | (1,000) | | | | | |
Net income | $ 49,988 | | | | | |
Ending balance (in shares) at Jun. 30, 2021 | | 115,821 | | | | |
Ending balance at Jun. 30, 2021 | 522,675 | $ 125 | 554,154 | (164,263) | 215 | 132,444 |
Beginning balance (in shares) at Mar. 31, 2021 | | 116,477 | | | | |
Beginning balance at Mar. 31, 2021 | $ 510,802 | $ 124 | 536,363 | (131,855) | 249 | 105,921 |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | |
Issuance of common stock upon exercise of options (in shares) | 900 | 855 | | | | |
Issuance of common stock upon exercise of options | $ 6,661 | $ 1 | 6,660 | | | |
Purchases of treasury stock (in shares) | | (1,365) | | | | |
Purchases of treasury stock | $ (29,170) | | | (29,170) | | |
Shares purchased to satisfy cost and statutory withholding requirements for net settlement of cashless option exercises | (100) | (146) | | | | |
Shares purchased to satisfy cost and statutory withholding requirements for net settlement of cashless option exercises | $ (3,238) | | | (3,238) | | |
Stock-based compensation | 11,131 | | 11,131 | | | |
Other comprehensive income (loss), net of tax | (34) | | | | (34) | |
Net income | 26,523 | | | | | 26,523 |
Ending balance (in shares) at Jun. 30, 2021 | | 115,821 | | | | |
Ending balance at Jun. 30, 2021 | $ 522,675 | $ 125 | $ 554,154 | $ (164,263) | $ 215 | $ 132,444 |