CONDENSED CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY - USD ($) shares in Thousands, $ in Thousands | Total | Cumulative Effect, Period of Adoption, Adjustment | Common Stock | Additional Paid-In Capital | Accumulated Other Comprehensive Income | Retained Earnings | Retained EarningsCumulative Effect, Period of Adoption, Adjustment |
Balance at beginning of period at Dec. 31, 2018 | $ 394,567 | | | $ 270,447 | | $ 124,120 | |
Balance at beginning of period (in shares) at Dec. 31, 2018 | | | 43,864 | | | | |
Exercise of common stock options | 9,502 | | | 9,502 | | | |
Exercise of common stock options (in shares) | | | 592 | | | | |
Restricted stock, net of forfeitures and shares withheld for taxes | (1,146) | | | (1,146) | | | |
Restricted stock, net of forfeitures and shares withheld for taxes (in shares) | | | 23 | | | | |
Stock-based compensation | 16,324 | | | 16,324 | | | |
Net income | 10,151 | | | | | 10,151 | |
Balance at end of period at Mar. 31, 2019 | 429,398 | | | 295,127 | | 134,271 | |
Balance at end of period (in shares) at Mar. 31, 2019 | | | 44,479 | | | | |
Balance at beginning of period at Dec. 31, 2018 | 394,567 | | | 270,447 | | 124,120 | |
Balance at beginning of period (in shares) at Dec. 31, 2018 | | | 43,864 | | | | |
Net income | 57,373 | | | | | | |
Balance at end of period at Sep. 30, 2019 | 535,392 | | | 353,899 | | 181,493 | |
Balance at end of period (in shares) at Sep. 30, 2019 | | | 45,121 | | | | |
Balance at beginning of period at Mar. 31, 2019 | 429,398 | | | 295,127 | | 134,271 | |
Balance at beginning of period (in shares) at Mar. 31, 2019 | | | 44,479 | | | | |
Exercise of common stock options | 7,473 | | | 7,473 | | | |
Exercise of common stock options (in shares) | | | 284 | | | | |
Restricted stock, net of forfeitures and shares withheld for taxes | (2,488) | | | (2,488) | | | |
Restricted stock, net of forfeitures and shares withheld for taxes (in shares) | | | 7 | | | | |
Stock-based compensation | 21,390 | | | 21,390 | | | |
Issuance of common stock under employee stock purchase plan | 8,648 | | | 8,648 | | | |
Issuance of common stock under employee stock purchase plan (in shares) | | | 153 | | | | |
Net income | 27,800 | | | | | 27,800 | |
Balance at end of period at Jun. 30, 2019 | 492,221 | | | 330,150 | | 162,071 | |
Balance at end of period (in shares) at Jun. 30, 2019 | | | 44,923 | | | | |
Exercise of common stock options | 4,936 | | | 4,936 | | | |
Exercise of common stock options (in shares) | | | 196 | | | | |
Restricted stock, net of forfeitures and shares withheld for taxes | (1,110) | | | (1,110) | | | |
Restricted stock, net of forfeitures and shares withheld for taxes (in shares) | | | 2 | | | | |
Stock-based compensation | 19,923 | | | 19,923 | | | |
Net income | 19,422 | | | | | 19,422 | |
Balance at end of period at Sep. 30, 2019 | 535,392 | | | 353,899 | | 181,493 | |
Balance at end of period (in shares) at Sep. 30, 2019 | | | 45,121 | | | | |
Balance at beginning of period at Dec. 31, 2019 | $ 612,517 | $ (388) | | 380,079 | | 232,438 | $ (388) |
Balance at beginning of period (in shares) at Dec. 31, 2019 | | | 45,476 | | | | |
Accounting Standards Update [Extensible List] | us-gaap:AccountingStandardsUpdate201613Member | | | | | | |
Exercise of common stock options | $ 19,320 | | | 19,320 | | | |
Exercise of common stock options (in shares) | | | 539 | | | | |
Restricted stock, net of forfeitures and shares withheld for taxes | (4,893) | | | (4,893) | | | |
Restricted stock, net of forfeitures and shares withheld for taxes (in shares) | | | 20 | | | | |
Stock-based compensation | 23,263 | | | 23,263 | | | |
Other comprehensive income | 158 | | | | $ 158 | | |
Net income | 24,057 | | | | | 24,057 | |
Balance at end of period at Mar. 31, 2020 | 674,034 | | | 417,769 | 158 | 256,107 | |
Balance at end of period (in shares) at Mar. 31, 2020 | | | 46,035 | | | | |
Balance at beginning of period at Dec. 31, 2019 | 612,517 | $ (388) | | 380,079 | | 232,438 | $ (388) |
Balance at beginning of period (in shares) at Dec. 31, 2019 | | | 45,476 | | | | |
Net income | 90,415 | | | | | | |
Balance at end of period at Sep. 30, 2020 | 832,627 | | | 510,017 | 145 | 322,465 | |
Balance at end of period (in shares) at Sep. 30, 2020 | | | 46,945 | | | | |
Balance at beginning of period at Mar. 31, 2020 | 674,034 | | | 417,769 | 158 | 256,107 | |
Balance at beginning of period (in shares) at Mar. 31, 2020 | | | 46,035 | | | | |
Exercise of common stock options | 22,375 | | | 22,375 | | | |
Exercise of common stock options (in shares) | | | 431 | | | | |
Restricted stock, net of forfeitures and shares withheld for taxes | (2,836) | | | (2,836) | | | |
Restricted stock, net of forfeitures and shares withheld for taxes (in shares) | | | 61 | | | | |
Stock-based compensation | 24,516 | | | 24,516 | | | |
Issuance of common stock under employee stock purchase plan | 15,035 | | | 15,035 | | | |
Issuance of common stock under employee stock purchase plan (in shares) | | | 202 | | | | |
Other comprehensive income | 116 | | | | 116 | | |
Net income | 25,111 | | | | | 25,111 | |
Balance at end of period at Jun. 30, 2020 | 758,351 | | | 476,859 | 274 | 281,218 | |
Balance at end of period (in shares) at Jun. 30, 2020 | | | 46,729 | | | | |
Exercise of common stock options | 12,247 | | | 12,247 | | | |
Exercise of common stock options (in shares) | | | 224 | | | | |
Restricted stock, net of forfeitures and shares withheld for taxes | (6,455) | | | (6,455) | | | |
Restricted stock, net of forfeitures and shares withheld for taxes (in shares) | | | (8) | | | | |
Stock-based compensation | 27,366 | | | 27,366 | | | |
Other comprehensive income | (129) | | | | (129) | | |
Net income | 41,247 | | | | | 41,247 | |
Balance at end of period at Sep. 30, 2020 | $ 832,627 | | | $ 510,017 | $ 145 | $ 322,465 | |
Balance at end of period (in shares) at Sep. 30, 2020 | | | 46,945 | | | | |