Share-Based Compensation (Tables)
   | 
12 Months Ended | 
Dec. 31, 2022  | 
| Share-Based Payment Arrangement [Abstract] | 
 
 | 
| Disclosure of Share-based Compensation Arrangements by Share-based Payment Award | 
 The following table presents the total stock-based compensation expense, which is included in selling, general and administrative expenses (in thousands): 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 
 | 
 | 
Years Ended December 31, | 
 
 | 
 | 
2022 | 
 | 
2021 | 
 | 
2020 | 
 
| Restricted share expense | 
 | 
$ | 
2,683  | 
 | 
 | 
$ | 
4,491  | 
 | 
 | 
$ | 
1,687  | 
 | 
 
| Stock option and SARs expense | 
 | 
1,142  | 
 | 
 | 
1,913  | 
 | 
 | 
923  | 
 | 
 
| Total stock-based compensation expense | 
 | 
$ | 
3,825  | 
 | 
 | 
$ | 
6,404  | 
 | 
 | 
$ | 
2,610  | 
 | 
 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 
| Tax benefit related to stock-based compensation | 
 | 
$ | 
857  | 
 | 
 | 
$ | 
2,234  | 
 | 
 | 
$ | 
1,652  | 
 | 
 
  
 | 
| Nonvested Restricted Stock Shares Activity | 
 The following table summarizes the Company’s restricted share activity, excluding the Company’s employee stock purchase plan: 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 
 | 
Number of shares | 
 | 
Weighted average grant date fair value | 
 
 | 
 | 
 | 
 | 
 
| Unvested at December 31, 2021 | 
290,942  | 
 | 
 | 
$ | 
15.61  | 
 | 
 
| Granted | 
340,677  | 
 | 
 | 
9.44  | 
 | 
 
| Vested | 
(25,583) | 
 | 
 | 
15.43  | 
 | 
 
| Vested shares forgone to satisfy minimum statutory withholding | 
(16,982) | 
 | 
 | 
15.43  | 
 | 
 
| Forfeitures | 
(54,974) | 
 | 
 | 
14.11  | 
 | 
 
| Unvested at December 31, 2022 | 
534,080  | 
 | 
 | 
$ | 
11.85  | 
 | 
 
  
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 
 | 
Year Ended December 31, | 
 
 | 
2022 | 
 | 
2021 | 
 | 
2020 | 
 
 | 
 | 
 | 
 | 
 | 
 | 
 
| Weighted average grant date fair value of awards granted | 
$ | 
9.44  | 
 | 
 | 
$ | 
18.85  | 
 | 
 | 
$ | 
10.12  | 
 | 
 
| Total fair value of shares vested | 
$ | 
260,112  | 
 | 
 | 
$ | 
920,125  | 
 | 
 | 
$ | 
367,273  | 
 | 
 
| Total fair value of shares forgone to satisfy minimum statutory withholding | 
$ | 
172,662  | 
 | 
 | 
$ | 
32,282  | 
 | 
 | 
$ | 
62,479  | 
 | 
 
  
 | 
| Share-based Payment Arrangement, Performance Shares, Activity | 
 The following table summarizes the Company’s PSU activity: 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 
 | 
Number of shares | 
 | 
Weighted average grant  date fair value | 
 
 | 
 | 
 | 
 | 
 
| Unvested at December 31, 2021 | 
239,976  | 
 | 
 | 
$ | 
14.74  | 
 | 
 
| Granted | 
53,864  | 
 | 
 | 
8.58  | 
 | 
 
| Performance adjustment upon vesting | 
24,675  | 
 | 
 | 
11.68  | 
 | 
 
| Vested | 
(80,267) | 
 | 
 | 
15.19  | 
 | 
 
| Vested shares forgone to satisfy minimum statutory withholding | 
(59,730) | 
 | 
 | 
15.19  | 
 | 
 
| Forfeitures | 
(53,401) | 
 | 
 | 
18.18  | 
 | 
 
| Unvested at December 31, 2022 | 
125,117  | 
 | 
 | 
$ | 
9.51  | 
 | 
 
  
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 
 | 
Year Ended December 31, | 
 
 | 
2022 | 
 | 
2021 | 
 | 
2020 | 
 
 | 
 | 
 | 
 | 
 | 
 | 
 
| Weighted average grant date fair value of awards granted | 
$ | 
8.58  | 
 | 
 | 
$ | 
19.50  | 
 | 
 | 
$ | 
9.06  | 
 | 
 
| Total fair value of shares vested | 
$ | 
680,026  | 
 | 
 | 
$ | 
1,335,053  | 
 | 
 | 
N/A | 
 
| Total fair value of shares forgone to satisfy minimum statutory withholding | 
$ | 
506,036  | 
 | 
 | 
$ | 
1,078,747  | 
 | 
 | 
N/A | 
 
  
 | 
| Schedule of Share-based Compensation, Employee Stock Purchase Plan, Activity | 
The following table summarizes the activity relating to the Company’s ESPP program:
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 
 | 
Years Ended December 31, | 
 
 | 
2022 | 
 | 
2021 | 
 | 
2020 | 
 
| Compensation expense | 
$ | 
229,064  | 
 | 
 | 
$ | 
173,561  | 
 | 
 | 
$ | 
108,589  | 
 | 
 
| Shares of stock sold to employees | 
60,673  | 
 | 
 | 
31,624  | 
 | 
 | 
30,012  | 
 | 
 
| Weighted average fair value per ESPP award | 
$ | 
11.53  | 
 | 
 | 
$ | 
16.95  | 
 | 
 | 
$ | 
7.43  | 
 | 
 
 
 | 
| Share-based Payment Arrangement, Option, Activity | 
 The following tables detail the various stock option activity: 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 
| 2014 Plan (Options) | 
 | 
Number of Authorized Shares | 
 | 
Weighted- Average Exercise Price | 
 | 
Weighted- Average Remaining Contractual Term (in Years) | 
 | 
Aggregate Intrinsic Value | 
 
| Outstanding at December 31, 2021 | 
 | 
1,731,841  | 
 | 
 | 
$ | 
4.92  | 
 | 
 | 
3.93 | 
 | 
$ | 
21,051,101  | 
 | 
 
| Granted | 
 | 
—  | 
 | 
 | 
—  | 
 | 
 | 
 | 
 | 
 | 
 
| Exercised | 
 | 
(413,786) | 
 | 
 | 
2.43  | 
 | 
 | 
 | 
 | 
 | 
 
| Exercised shares forgone to satisfy minimum statutory withholding | 
 | 
(60,006) | 
 | 
 | 
2.00  | 
 | 
 | 
 | 
 | 
 | 
 
| Cashless exercise | 
 | 
(42,655) | 
 | 
 | 
2.00  | 
 | 
 | 
 | 
 | 
 | 
 
| Forfeitures and expirations | 
 | 
(40,667) | 
 | 
 | 
12.14  | 
 | 
 | 
 | 
 | 
 | 
 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 
| Outstanding at December 31, 2022 | 
 | 
1,174,727  | 
 | 
 | 
$ | 
5.76  | 
 | 
 | 
3.95 | 
 | 
$ | 
4,463,307  | 
 | 
 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 
| Exercisable at December 31, 2022 | 
 | 
1,085,060  | 
 | 
 | 
$ | 
5.18  | 
 | 
 | 
3.73 | 
 | 
$ | 
4,431,477  | 
 | 
 
  
Aggregate Intrinsic Value = Excess of market value over the option exercise price of all in-the-money stock options. 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 
| 2021 Plan (Options) | 
 | 
Number of Authorized Shares | 
 | 
Weighted- Average Exercise Price | 
 | 
Weighted- Average Remaining Contractual Term (in Years) | 
 | 
Aggregate Intrinsic Value | 
 
| Outstanding at December 31, 2021 | 
 | 
273,269  | 
 | 
 | 
$ | 
19.47  | 
 | 
 | 
9.38 | 
 | 
$ | 
—  | 
 | 
 
| Granted | 
 | 
332,008  | 
 | 
 | 
8.82  | 
 | 
 | 
 | 
 | 
 | 
 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 
| Forfeitures and expirations | 
 | 
(60,478) | 
 | 
 | 
15.59  | 
 | 
 | 
 | 
 | 
 | 
 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 
| Outstanding at December 31, 2022 | 
 | 
544,799  | 
 | 
 | 
$ | 
13.41  | 
 | 
 | 
8.93 | 
 | 
$ | 
27,396  | 
 | 
 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 
| Exercisable at December 31, 2022 (a) | 
 | 
156,096  | 
 | 
 | 
$ | 
19.48  | 
 | 
 | 
8.38 | 
 | 
$ | 
—  | 
 | 
 
  
(a) Aggregate Intrinsic Value - no exercisable options were in-the-money as of December 31, 2022 
Aggregate Intrinsic Value = Excess of market value over the option exercise price of all in-the-money stock options. 
 | 
| Schedule of Share-based Payment Award, Stock Options, Valuation Assumptions | 
 The following is the average fair value per share estimated on the date of grant and the assumptions used for options granted: 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 
 | 
 | 
Years Ended December 31, | 
 
| Stock Options: | 
 | 
2022 | 
 | 
2021 | 
 | 
2020 | 
 
| Expected volatility | 
 | 
51% to 53%  | 
 | 
43% to 46%  | 
 | 
42% to 51%  | 
 
| Risk free interest rate | 
 | 
1.71% to 3.01%  | 
 | 
0.31% to 0.54%  | 
 | 
0.20% to 1.56%  | 
 
| Expected lives at date of grant (in years) | 
 | 
3.73 | 
 | 
3.62 | 
 | 
3.25 | 
 
| Weighted average fair value of options granted | 
 | 
$3.67 | 
 | 
$6.56 | 
 | 
$3.87 | 
 
| Total intrinsic value of options exercised | 
 | 
$ | 
3,762,978  | 
 | 
 | 
$ | 
4,248,401  | 
 | 
 | 
$ | 
3,377,730  | 
 | 
 
  
 |