CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY - USD ($) shares in Thousands, $ in Thousands | Common Stock | Retained EarningsReclassify upon adoption of ASU | Retained Earnings | Accumulated Other Comprehensive Income (Loss) | Reclassify upon adoption of ASU | Total |
Beginning balance (ASU 2016-13) at Dec. 31, 2019 | | $ (575) | | | $ (575) | |
Beginning balance at Dec. 31, 2019 | $ 587,017 | | $ 368,221 | $ (5,294) | | $ 949,944 |
Beginning balance (in shares) at Dec. 31, 2019 | 55,213 | | | | | |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | |
Net income (loss) | | | (3,154) | | | (3,154) |
Other comprehensive income (loss) | | | | (9,465) | | (9,465) |
Stock-based compensation expense | $ 2,641 | | | | | 2,641 |
Options exercised | $ 2,369 | | | | | 2,369 |
Options exercised (in shares) | 174 | | | | | |
Issuance of common stock under Employee Stock Purchase Plan | $ 371 | | | | | 371 |
Issuance of common stock under Employee Stock Purchase Plans (in shares) | 13 | | | | | |
Shares surrendered in exchange for payment of payroll tax liabilities | $ (866) | | | | | (866) |
Shares surrendered in exchange for payment of payroll tax liabilities (in shares) | (23) | | | | | |
Shares surrendered in exchange for exercise of stock options | $ (1,467) | | | | | (1,467) |
Shares surrendered in exchange for exercise of stock options (in shares) | (39) | | | | | |
Ending balance at Mar. 31, 2020 | $ 590,065 | | 364,492 | (14,759) | | 939,798 |
Ending balance (in shares) at Mar. 31, 2020 | 55,338 | | | | | |
Beginning balance (ASU 2016-13) at Dec. 31, 2019 | | $ (575) | | | $ (575) | |
Beginning balance at Dec. 31, 2019 | $ 587,017 | | 368,221 | (5,294) | | 949,944 |
Beginning balance (in shares) at Dec. 31, 2019 | 55,213 | | | | | |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | |
Net income (loss) | | | | | | (25,221) |
Other comprehensive income (loss) | | | | | | (4,031) |
Shares surrendered in exchange for exercise of stock options | | | | | | (1,467) |
Ending balance at Sep. 30, 2020 | $ 600,737 | | 342,425 | (9,325) | | 933,837 |
Ending balance (in shares) at Sep. 30, 2020 | 55,538 | | | | | |
Beginning balance at Mar. 31, 2020 | $ 590,065 | | 364,492 | (14,759) | | 939,798 |
Beginning balance (in shares) at Mar. 31, 2020 | 55,338 | | | | | |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | |
Net income (loss) | | | (19,058) | | | (19,058) |
Other comprehensive income (loss) | | | | 2,446 | | 2,446 |
Stock-based compensation expense | $ 3,197 | | | | | 3,197 |
Options exercised | $ 2,229 | | | | | 2,229 |
Options exercised (in shares) | 138 | | | | | |
Issuance of common stock under Employee Stock Purchase Plan | $ 235 | | | | | 235 |
Issuance of common stock under Employee Stock Purchase Plans (in shares) | 5 | | | | | |
Ending balance at Jun. 30, 2020 | $ 595,726 | | 345,434 | (12,313) | | 928,847 |
Ending balance (in shares) at Jun. 30, 2020 | 55,481 | | | | | |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | |
Net income (loss) | | | (3,009) | | | (3,009) |
Other comprehensive income (loss) | | | | 2,988 | | 2,988 |
Stock-based compensation expense | $ 3,794 | | | | | 3,794 |
Options exercised | $ 950 | | | | | 950 |
Options exercised (in shares) | 50 | | | | | |
Issuance of common stock under Employee Stock Purchase Plan | $ 267 | | | | | 267 |
Issuance of common stock under Employee Stock Purchase Plans (in shares) | 7 | | | | | |
Ending balance at Sep. 30, 2020 | $ 600,737 | | 342,425 | (9,325) | | 933,837 |
Ending balance (in shares) at Sep. 30, 2020 | 55,538 | | | | | |
Beginning balance at Dec. 31, 2020 | $ 606,224 | | 357,803 | (5,452) | | $ 958,575 |
Beginning balance (in shares) at Dec. 31, 2020 | 55,623 | | | | | 55,623 |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | |
Net income (loss) | | | 10,958 | | | $ 10,958 |
Other comprehensive income (loss) | | | | (1,730) | | (1,730) |
Stock-based compensation expense | $ 3,310 | | | | | 3,310 |
Options exercised | $ 5,897 | | | | | 5,897 |
Options exercised (in shares) | 291 | | | | | |
Issuance of common stock under Employee Stock Purchase Plan | $ 263 | | | | | 263 |
Issuance of common stock under Employee Stock Purchase Plans (in shares) | 5 | | | | | |
Shares issued from time-vested restricted stock units (in shares) | 25 | | | | | |
Shares surrendered in exchange for payment of payroll tax liabilities | $ (488) | | | | | (488) |
Shares surrendered in exchange for payment of payroll tax liabilities (in shares) | (9) | | | | | |
Shares surrendered in exchange for exercise of stock options | $ (93) | | | | | (93) |
Shares surrendered in exchange for exercise of stock options (in shares) | (2) | | | | | |
Ending balance at Mar. 31, 2021 | $ 615,113 | | 368,761 | (7,182) | | 976,692 |
Ending balance (in shares) at Mar. 31, 2021 | 55,933 | | | | | |
Beginning balance at Dec. 31, 2020 | $ 606,224 | | 357,803 | (5,452) | | $ 958,575 |
Beginning balance (in shares) at Dec. 31, 2020 | 55,623 | | | | | 55,623 |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | |
Net income (loss) | | | | | | $ 27,841 |
Other comprehensive income (loss) | | | | | | (764) |
Shares surrendered in exchange for exercise of stock options | | | | | | (179) |
Ending balance at Sep. 30, 2021 | $ 633,948 | | 385,644 | (6,216) | | $ 1,013,376 |
Ending balance (in shares) at Sep. 30, 2021 | 56,452 | | | | | 56,452 |
Beginning balance at Mar. 31, 2021 | $ 615,113 | | 368,761 | (7,182) | | $ 976,692 |
Beginning balance (in shares) at Mar. 31, 2021 | 55,933 | | | | | |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | |
Net income (loss) | | | 4,916 | | | 4,916 |
Other comprehensive income (loss) | | | | 2,348 | | 2,348 |
Stock-based compensation expense | $ 2,765 | | | | | 2,765 |
Options exercised | $ 5,455 | | | | | 5,455 |
Options exercised (in shares) | 253 | | | | | |
Issuance of common stock under Employee Stock Purchase Plan | $ 258 | | | | | 258 |
Issuance of common stock under Employee Stock Purchase Plans (in shares) | 4 | | | | | |
Shares issued from time-vested restricted stock units (in shares) | 34 | | | | | |
Ending balance at Jun. 30, 2021 | $ 623,591 | | 373,677 | (4,834) | | 992,434 |
Ending balance (in shares) at Jun. 30, 2021 | 56,224 | | | | | |
Increase (Decrease) in Stockholders' Equity [Roll Forward] | | | | | | |
Net income (loss) | | | 11,967 | | | 11,967 |
Other comprehensive income (loss) | | | | (1,382) | | (1,382) |
Stock-based compensation expense | $ 4,411 | | | | | 4,411 |
Options exercised | $ 5,806 | | | | | 5,806 |
Options exercised (in shares) | 225 | | | | | |
Issuance of common stock under Employee Stock Purchase Plan | $ 314 | | | | | 314 |
Issuance of common stock under Employee Stock Purchase Plans (in shares) | 5 | | | | | |
Shares surrendered in exchange for payment of payroll tax liabilities | $ (88) | | | | | (88) |
Shares surrendered in exchange for payment of payroll tax liabilities (in shares) | (1) | | | | | |
Shares surrendered in exchange for exercise of stock options | $ (86) | | | | | (86) |
Shares surrendered in exchange for exercise of stock options (in shares) | (1) | | | | | |
Ending balance at Sep. 30, 2021 | $ 633,948 | | $ 385,644 | $ (6,216) | | $ 1,013,376 |
Ending balance (in shares) at Sep. 30, 2021 | 56,452 | | | | | 56,452 |