Revenue Recognition (ASC 606 Adoption) (Details) - USD ($)
$ / shares in Units, $ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2018
Jun. 30, 2017
Jun. 30, 2018
Jun. 30, 2017
Dec. 31, 2017
Revenue, Initial Application Period Cumulative Effect Transition [Line Items]          
Revenue $ 69,228 $ 61,252 $ 128,377 $ 111,460  
Income tax expense (benefit) 161 242 45 (2,544)  
Net income $ 6,640 $ 3,741 $ 7,606 $ 4,562  
Basic earnings per share (in dollars per share) $ 0.25 $ 0.15 $ 0.29 $ 0.19  
Diluted earnings per share (in dollars per share) $ 0.24 $ 0.14 $ 0.28 $ 0.18  
Other assets $ 1,491   $ 1,491   $ 1,618
Current portion of deferred revenue 4,990   4,990   4,538
Other long-term liabilities 4,164   4,164   3,942
Stockholders' equity $ 171,093   $ 171,093   169,528
Accounting Standards Update 2014-09 | As previously reported          
Revenue, Initial Application Period Cumulative Effect Transition [Line Items]          
Revenue   $ 61,409   $ 111,644  
Income tax expense (benefit)   247   (2,534)  
Net income   $ 3,893   $ 4,736  
Basic earnings per share (in dollars per share)   $ 0.16   $ 0.19  
Diluted earnings per share (in dollars per share)   $ 0.15   $ 0.18  
Other assets         1,576
Current portion of deferred revenue         2,311
Other long-term liabilities         882
Stockholders' equity         174,773
Accounting Standards Update 2014-09 | ASC 606 adjustment          
Revenue, Initial Application Period Cumulative Effect Transition [Line Items]          
Revenue   $ (157)   $ (184)  
Income tax expense (benefit)   (5)   (10)  
Net income   $ (152)   $ (174)  
Basic earnings per share (in dollars per share)   $ (0.01)      
Diluted earnings per share (in dollars per share)   $ (0.01)      
Other assets         42
Current portion of deferred revenue         2,227
Other long-term liabilities         3,060
Stockholders' equity         $ (5,245)