Condensed Consolidated Statements of Stockholders' Equity (Unaudited) - USD ($) shares in Thousands, $ in Thousands | Common Stock [Member] | Additional Paid-in Capital [Member] | Retained Earnings [Member] | AOCI Attributable to Parent [Member] | Total |
Balance (in shares) at Dec. 31, 2017 | 14,688 | | | | |
Balance at Dec. 31, 2017 | $ 147 | $ 68,617 | $ 199,511 | $ (4,784) | $ 263,491 |
Issuance of common stock for equity awards (in shares) | 89 | | | | |
Issuance of common stock for equity awards | $ 1 | 511 | | | 512 |
Retirement of common stock for minimum tax withholdings (in shares) | (32) | | | | |
Retirement of common stock for minimum tax withholdings | $ (1) | (1,735) | | | (1,736) |
Stock-based compensation expense | | 7,565 | | | 7,565 |
Net income | | | (6,686) | | (6,686) |
Other comprehensive Income (loss) | | | | 620 | 620 |
Issuance of common stock for equity awards (in shares) | 89 | | | | |
Balance (in shares) at Mar. 31, 2018 | 14,745 | | | | |
Balance at Mar. 31, 2018 | $ 147 | 74,958 | 192,825 | (4,164) | 263,766 |
Balance (in shares) at Dec. 31, 2017 | 14,688 | | | | |
Balance at Dec. 31, 2017 | $ 147 | 68,617 | 199,511 | (4,784) | 263,491 |
Net income | | | | | 11,004 |
Balance (in shares) at Sep. 30, 2018 | 14,211 | | | | |
Balance at Sep. 30, 2018 | $ 142 | 49,836 | 210,515 | (5,228) | 255,265 |
Balance (in shares) at Mar. 31, 2018 | 14,745 | | | | |
Balance at Mar. 31, 2018 | $ 147 | 74,958 | 192,825 | (4,164) | 263,766 |
Issuance of common stock for equity awards (in shares) | 273 | | | | |
Issuance of common stock for equity awards | $ 3 | 2,372 | | | 2,375 |
Stock-based compensation expense | | 1,322 | | | 1,322 |
Net income | | | 10,091 | | 10,091 |
Other comprehensive Income (loss) | | | | (951) | (951) |
Issuance of common stock for equity awards (in shares) | 273 | | | | |
Repurchase of common stock (in shares) | (434) | | | | |
Repurchase of common stock | $ (4) | (29,996) | | | (30,000) |
Balance (in shares) at Jun. 30, 2018 | 14,584 | | | | |
Balance at Jun. 30, 2018 | $ 146 | 48,656 | 202,916 | (5,115) | 246,603 |
Stock-based compensation expense | | 1,177 | | | 1,177 |
Net income | | | 7,599 | | 7,599 |
Other comprehensive Income (loss) | | | | (113) | (113) |
Repurchase of common stock (in shares) | (373) | | | | |
Repurchase of common stock | $ (4) | 3 | | | (1) |
Balance (in shares) at Sep. 30, 2018 | 14,211 | | | | |
Balance at Sep. 30, 2018 | $ 142 | 49,836 | 210,515 | (5,228) | 255,265 |
Balance (in shares) at Dec. 31, 2018 | 14,210 | | | | |
Balance at Dec. 31, 2018 | $ 142 | 50,763 | 218,233 | (5,526) | 263,612 |
Issuance of common stock for equity awards (in shares) | 7 | | | | |
Issuance of common stock for equity awards | | 5 | | | 5 |
Retirement of common stock for minimum tax withholdings (in shares) | (3) | | | | |
Retirement of common stock for minimum tax withholdings | | (124) | | | (124) |
Stock-based compensation expense | | 1,386 | | | 1,386 |
Net income | | | 4,507 | | 4,507 |
Other comprehensive Income (loss) | | | | (315) | (315) |
Issuance of common stock for equity awards (in shares) | 7 | | | | |
Balance (in shares) at Mar. 31, 2019 | 14,214 | | | | |
Balance at Mar. 31, 2019 | $ 142 | 52,030 | 222,740 | (5,841) | 269,071 |
Balance (in shares) at Dec. 31, 2018 | 14,210 | | | | |
Balance at Dec. 31, 2018 | $ 142 | 50,763 | 218,233 | (5,526) | 263,612 |
Net income | | | | | 23,142 |
Balance (in shares) at Sep. 30, 2019 | 14,269 | | | | |
Balance at Sep. 30, 2019 | $ 143 | 46,482 | 241,375 | (6,318) | 281,682 |
Balance (in shares) at Mar. 31, 2019 | 14,214 | | | | |
Balance at Mar. 31, 2019 | $ 142 | 52,030 | 222,740 | (5,841) | 269,071 |
Issuance of common stock for equity awards (in shares) | 30 | | | | |
Issuance of common stock for equity awards | $ 1 | 851 | | | 852 |
Stock-based compensation expense | | 1,443 | | | 1,443 |
Net income | | | 9,435 | | 9,435 |
Other comprehensive Income (loss) | | | | 145 | 145 |
Issuance of common stock for equity awards (in shares) | 30 | | | | |
Forfeiture of restricted stock (in shares) | (7) | | | | |
Forfeiture of restricted stock | | | | | |
Repurchase of common stock (in shares) | (452) | | | | |
Repurchase of common stock | $ (5) | (29,995) | | | (30,000) |
Balance (in shares) at Jun. 30, 2019 | 13,785 | | | | |
Balance at Jun. 30, 2019 | $ 138 | 24,329 | 232,175 | (5,696) | 250,946 |
Issuance of common stock for equity awards (in shares) | 488 | | | | |
Issuance of common stock for equity awards | $ 5 | 20,962 | | | 20,967 |
Retirement of common stock for minimum tax withholdings (in shares) | (2) | | | | |
Retirement of common stock for minimum tax withholdings | | (120) | | | (120) |
Stock-based compensation expense | | 1,311 | | | 1,311 |
Net income | | | 9,200 | | 9,200 |
Other comprehensive Income (loss) | | | | (622) | (622) |
Issuance of common stock for equity awards (in shares) | 488 | | | | |
Forfeiture of restricted stock (in shares) | (2) | | | | |
Forfeiture of restricted stock | | | | | |
Balance (in shares) at Sep. 30, 2019 | 14,269 | | | | |
Balance at Sep. 30, 2019 | $ 143 | $ 46,482 | $ 241,375 | $ (6,318) | $ 281,682 |