Condensed Consolidated Statements of Stockholders' Equity (Unaudited) - USD ($) shares in Thousands, $ in Thousands | Common Stock Outstanding [Member] | Additional Paid-in Capital [Member] | Treasury Stock [Member] | Retained Earnings [Member] | AOCI Attributable to Parent [Member] | Total |
Balances (in shares) at Dec. 31, 2018 | 32,382 | | 8,295 | | | |
Balances at Dec. 31, 2018 | $ 5 | $ 310,660 | $ (79,142) | $ (30,452) | $ (1,276) | $ 199,795 |
Issuance of common stock in connection with employee stock purchase plan (in shares) | 87 | | 0 | | | |
Issuance of common stock in connection with employee stock purchase plan | $ 0 | 782 | $ 0 | 0 | 0 | 782 |
Issuance of common stock in connection with exercise of options (in shares) | 87 | | 0 | | | |
Issuance of common stock in connection with exercise of options | $ 0 | 518 | $ 0 | 0 | 0 | 518 |
Vesting of restricted stock units (in shares) | 104 | | 0 | | | |
Vesting of restricted stock units | $ 0 | 0 | $ 0 | 0 | 0 | 0 |
Purchases of treasury stock in connection with tax withholdings on restricted stock grants (in shares) | 0 | | 54 | | | |
Purchases of treasury stock in connection with tax withholdings on restricted stock grants | $ 0 | 0 | $ (557) | 0 | 0 | (557) |
Stock-based compensation expense | 0 | 3,469 | 0 | 0 | 0 | 3,469 |
Comprehensive income (loss) | $ 0 | 0 | $ 0 | (2,691) | (52) | (2,743) |
Repurchases of common stock (in shares) | (314) | | 314 | | | |
Repurchases of common stock | $ 0 | 0 | $ (3,917) | 0 | 0 | (3,917) |
Balances (in shares) at Mar. 31, 2019 | 32,346 | | 8,663 | | | |
Balances at Mar. 31, 2019 | $ 5 | 315,429 | $ (83,616) | (33,143) | (1,328) | 197,347 |
Balances (in shares) at Dec. 31, 2018 | 32,382 | | 8,295 | | | |
Balances at Dec. 31, 2018 | $ 5 | 310,660 | $ (79,142) | (30,452) | (1,276) | 199,795 |
Comprehensive income (loss) | | | | | | (4,565) |
Balances (in shares) at Sep. 30, 2019 | 32,350 | | 9,246 | | | |
Balances at Sep. 30, 2019 | $ 5 | 322,183 | $ (90,908) | (34,540) | (1,753) | 194,987 |
Balances (in shares) at Mar. 31, 2019 | 32,346 | | 8,663 | | | |
Balances at Mar. 31, 2019 | $ 5 | 315,429 | $ (83,616) | (33,143) | (1,328) | 197,347 |
Issuance of common stock in connection with exercise of options (in shares) | 69 | | 0 | | | |
Issuance of common stock in connection with exercise of options | $ 0 | 326 | $ 0 | 0 | 0 | 326 |
Vesting of restricted stock units (in shares) | 176 | | 0 | | | |
Vesting of restricted stock units | $ 0 | 0 | $ 0 | 0 | 0 | 0 |
Purchases of treasury stock in connection with tax withholdings on restricted stock grants (in shares) | 0 | | 72 | | | |
Purchases of treasury stock in connection with tax withholdings on restricted stock grants | $ 0 | 0 | $ (918) | 0 | 0 | (918) |
Stock-based compensation expense | 0 | 2,601 | 0 | 0 | 0 | 2,601 |
Comprehensive income (loss) | $ 0 | 0 | $ 0 | (710) | 36 | (674) |
Repurchases of common stock (in shares) | (300) | | 300 | | | |
Repurchases of common stock | $ 0 | 0 | $ (3,790) | 0 | 0 | (3,790) |
Balances (in shares) at Jun. 30, 2019 | 32,291 | | 9,035 | | | |
Balances at Jun. 30, 2019 | $ 5 | 318,356 | $ (88,324) | (33,853) | (1,292) | 194,892 |
Issuance of common stock in connection with employee stock purchase plan (in shares) | 85 | | 0 | | | |
Issuance of common stock in connection with employee stock purchase plan | $ 0 | 751 | $ 0 | 0 | 0 | 751 |
Issuance of common stock in connection with exercise of options (in shares) | 53 | | 0 | | | |
Issuance of common stock in connection with exercise of options | $ 0 | 267 | $ 0 | 0 | 0 | 267 |
Vesting of restricted stock units (in shares) | 92 | | 0 | | | |
Vesting of restricted stock units | $ 0 | 0 | $ 0 | 0 | 0 | 0 |
Purchases of treasury stock in connection with tax withholdings on restricted stock grants (in shares) | 0 | | 40 | | | |
Purchases of treasury stock in connection with tax withholdings on restricted stock grants | $ 0 | 0 | $ (524) | 0 | 0 | (524) |
Stock-based compensation expense | 0 | 2,809 | 0 | 0 | 0 | 2,809 |
Comprehensive income (loss) | $ 0 | 0 | $ 0 | (687) | (461) | (1,148) |
Repurchases of common stock (in shares) | (171) | | 171 | | | |
Repurchases of common stock | $ 0 | 0 | $ (2,060) | 0 | 0 | (2,060) |
Balances (in shares) at Sep. 30, 2019 | 32,350 | | 9,246 | | | |
Balances at Sep. 30, 2019 | $ 5 | 322,183 | $ (90,908) | (34,540) | (1,753) | 194,987 |
Balances (in shares) at Dec. 31, 2019 | 32,503 | | 9,294 | | | |
Balances at Dec. 31, 2019 | $ 5 | 325,197 | $ (91,695) | (35,870) | (1,480) | 196,157 |
Issuance of common stock in connection with employee stock purchase plan (in shares) | 89 | | 0 | | | |
Issuance of common stock in connection with employee stock purchase plan | $ 0 | 810 | $ 0 | 0 | 0 | 810 |
Issuance of common stock in connection with exercise of options (in shares) | 21 | | 0 | | | |
Issuance of common stock in connection with exercise of options | $ 0 | 161 | $ 0 | 0 | 0 | 161 |
Vesting of restricted stock units (in shares) | 182 | | 0 | | | |
Vesting of restricted stock units | $ 0 | 0 | $ 0 | 0 | 0 | 0 |
Purchases of treasury stock in connection with tax withholdings on restricted stock grants (in shares) | 0 | | 93 | | | |
Purchases of treasury stock in connection with tax withholdings on restricted stock grants | $ 0 | 0 | $ (1,478) | 0 | 0 | (1,478) |
Stock-based compensation expense | 0 | 3,513 | 0 | 0 | 0 | 3,513 |
Comprehensive income (loss) | $ 0 | 0 | $ 0 | (528) | (166) | (694) |
Balances (in shares) at Mar. 31, 2020 | 32,795 | | 9,387 | | | |
Balances at Mar. 31, 2020 | $ 5 | 329,681 | $ (93,173) | (36,398) | (1,646) | 198,469 |
Balances (in shares) at Dec. 31, 2019 | 32,503 | | 9,294 | | | |
Balances at Dec. 31, 2019 | $ 5 | 325,197 | $ (91,695) | (35,870) | (1,480) | $ 196,157 |
Issuance of common stock in connection with exercise of options (in shares) | | | | | | 177 |
Comprehensive income (loss) | | | | | | $ (6,336) |
Balances (in shares) at Sep. 30, 2020 | 36,626 | | 9,491 | | | |
Balances at Sep. 30, 2020 | $ 5 | 403,450 | $ (94,992) | (42,784) | (902) | 264,777 |
Balances (in shares) at Mar. 31, 2020 | 32,795 | | 9,387 | | | |
Balances at Mar. 31, 2020 | $ 5 | 329,681 | $ (93,173) | (36,398) | (1,646) | 198,469 |
Issuance of common stock in connection with exercise of options (in shares) | 56 | | 0 | | | |
Issuance of common stock in connection with exercise of options | $ 0 | 463 | $ 0 | 0 | 0 | 463 |
Vesting of restricted stock units (in shares) | 131 | | 0 | | | |
Vesting of restricted stock units | $ 0 | 0 | $ 0 | 0 | 0 | 0 |
Purchases of treasury stock in connection with tax withholdings on restricted stock grants (in shares) | 0 | | 52 | | | |
Purchases of treasury stock in connection with tax withholdings on restricted stock grants | $ 0 | 0 | $ (795) | 0 | 0 | (795) |
Stock-based compensation expense | 0 | 3,013 | 0 | 0 | 0 | 3,013 |
Comprehensive income (loss) | $ 0 | 0 | $ 0 | (3,652) | 207 | (3,445) |
Balances (in shares) at Jun. 30, 2020 | 32,982 | | 9,439 | | | |
Balances at Jun. 30, 2020 | $ 5 | 333,157 | $ (93,968) | (40,050) | (1,439) | 197,705 |
Issuance of common stock in connection with employee stock purchase plan (in shares) | 93 | | 0 | | | |
Issuance of common stock in connection with employee stock purchase plan | $ 0 | 860 | $ 0 | 0 | 0 | 860 |
Issuance of common stock in connection with exercise of options (in shares) | 101 | | 0 | | | |
Issuance of common stock in connection with exercise of options | $ 0 | 1,210 | $ 0 | 0 | 0 | 1,210 |
Vesting of restricted stock units (in shares) | 143 | | 0 | | | |
Vesting of restricted stock units | $ 0 | 0 | $ 0 | 0 | 0 | 0 |
Purchases of treasury stock in connection with tax withholdings on restricted stock grants (in shares) | 0 | | 52 | | | |
Purchases of treasury stock in connection with tax withholdings on restricted stock grants | $ 0 | 0 | $ (1,024) | 0 | 0 | (1,024) |
Stock-based compensation expense | 0 | 3,146 | 0 | 0 | 0 | 3,146 |
Comprehensive income (loss) | $ 0 | 0 | $ 0 | (2,734) | 537 | (2,197) |
Issuance of common stock, net of issuance costs of $0.1 million (in shares) | 3,307 | | 0 | | | |
Issuance of common stock, net of issuance costs of $0.1 million | $ 0 | 65,077 | $ 0 | 0 | 0 | 65,077 |
Balances (in shares) at Sep. 30, 2020 | 36,626 | | 9,491 | | | |
Balances at Sep. 30, 2020 | $ 5 | $ 403,450 | $ (94,992) | $ (42,784) | $ (902) | $ 264,777 |