Note 13 - Stock-based Compensation (Details Textual) | Aug. 16, 2021 | May 29, 2014shares | Apr. 30, 2021USD ($)$ / shares | Mar. 31, 2021$ / sharesshares | Aug. 31, 2020USD ($)$ / sharesshares | Apr. 30, 2020$ / sharesshares | Mar. 31, 2020$ / sharesshares | Jan. 31, 2020$ / sharesshares | May 31, 2019$ / sharesshares | Apr. 30, 2019$ / sharesshares | Jun. 30, 2020shares | Mar. 31, 2020shares | Mar. 31, 2019shares | Sep. 30, 2021USD ($)shares | Dec. 31, 2021USD ($)$ / sharesshares | Dec. 31, 2020USD ($)$ / sharesshares | Dec. 31, 2019USD ($)$ / sharesshares |
Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Gross (in shares) | shares | | | | | | | | | | | | | | | 0 | 0 | 0 |
Share-based Compensation Arrangement by Share-based Payment Award, Options, Vested in Period, Fair Value | $ | | | | | | | | | | | | | | | $ 203,000 | $ 759,000 | $ 953,000 |
Share-based Payment Arrangement, Expense | $ | | | | | | | | | | | | | | | 441,000 | 461,000 | 912,000 |
Share-based Payment Arrangement, Expense, Tax Benefit | $ | | | | | | | | | | | | | | | $ 110,000 | $ 100,000 | $ 200,000 |
Allocated Share-based Compensation Expense, Impact on Earnings Per Share, Diluted (in dollars per share) | $ / shares | | | | | | | | | | | | | | | $ 0.03 | $ 0.06 | $ 0.12 |
Allocated Share-based Compensation Expense, Impact on Earnings Per Share, Basic (in dollars per share) | $ / shares | | | | | | | | | | | | | | | $ 0.02 | | |
Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount, Total | $ | | | | | | | | | | | | | | | $ 1,847,000 | | |
Director [Member] | Salaries, Wages and Benefits [Member] | | | | | | | | | | | | | | | | | |
Share-based Payment Arrangement, Expense | $ | | | | | | | | | | | | | | $ 80,000 | | $ 90,000 | $ 100,000 |
Share-based Compensation Arrangement by Share-based Payment Award, Options, Additional Grants in Period (in shares) | shares | | | | | | | | | | | | | 410 | 326 | | | |
Restricted Stock [Member] | | | | | | | | | | | | | | | | | |
Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period (in shares) | shares | | | | | | | | | | | | | | | 7,608 | | |
Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value (in dollars per share) | $ / shares | | | | | | | | | | | | | | | $ 30.40 | | |
Stock Award [Member] | Director [Member] | | | | | | | | | | | | | | | | | |
Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period (in shares) | shares | | | | | | 484 | | | | | | | | | | | |
Accrual Shares to Each Non-employee Director [Member] | Nine Non-Employee Directors [Member] | | | | | | | | | | | | | | | | | |
Share-based Compensation Arrangement by Share-based Payment Award, Options, Additional Grants in Period (in shares) | shares | | | | | | | | | | | 484 | 652 | | | | | |
Stock Split To [Member] | | | | | | | | | | | | | | | | | |
Stockholders' Equity Note, Stock Split, Conversion Ratio | 2 | | | | | | | | | | | | | | | | |
The 2014 Stock Option Plan [Member] | | | | | | | | | | | | | | | | | |
Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Authorized (in shares) | shares | | 1,500,000 | | | | | | | | | | | | | | | |
Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Gross (in shares) | shares | | | | | | | | | | | | | | | 0 | 0 | |
Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number, Ending Balance (in shares) | shares | | | | | | | | | | | | | | | 0 | 0 | |
Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Available for Grant (in shares) | shares | | | | | | | | | | | | | | | 716,000 | | |
The 2014 Stock Option Plan [Member] | Stock Award [Member] | Director [Member] | | | | | | | | | | | | | | | | | |
Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period (in shares) | shares | | | | 2,608 | | | 5,216 | | 426 | 3,690 | | | | | | | |
Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value (in dollars per share) | $ / shares | | | | $ 30.85 | | $ 20.70 | $ 15.38 | | $ 23.53 | $ 24.47 | | | | | | | |
The 2014 Stock Option Plan [Member] | Stock Award [Member] | Key Employees [Member] | | | | | | | | | | | | | | | | | |
Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period (in shares) | shares | | | | | 26,664 | | | 14,000 | | | | | | | | | |
Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value (in dollars per share) | $ / shares | | | $ 30.17 | | $ 15.13 | | | $ 28.23 | | | | | | | | | |
Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Rights, Number of Shares | $ | | | $ 5,000 | | | | | | | | | | | | | | |
Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Period (Year) | | | 4 years | | 4 years | | | 4 years | | | | | | | | | |
The 2014 Stock Option Plan [Member] | Stock Award [Member] | Chief Executive Officer [Member] | | | | | | | | | | | | | | | | | |
Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period (in shares) | shares | | | | | 80,000 | | | | | | | | | | | | |
Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value (in dollars per share) | $ / shares | | | | | $ 17.69 | | | | | | | | | | | | |
The 2014 Stock Option Plan [Member] | Stock Award [Member] | Chief Executive Officer [Member] | The 2024 [Member] | | | | | | | | | | | | | | | | | |
Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Rights, Number of Shares | $ | | | | | $ 10,000 | | | | | | | | | | | | |
The 2014 Stock Option Plan [Member] | Stock Award [Member] | Chief Executive Officer [Member] | The 2025 [Member] | | | | | | | | | | | | | | | | | |
Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Rights, Number of Shares | $ | | | | | 20,000 | | | | | | | | | | | | |
The 2014 Stock Option Plan [Member] | Stock Award [Member] | Chief Executive Officer [Member] | The 2022 [Member] | | | | | | | | | | | | | | | | | |
Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Rights, Number of Shares | $ | | | | | 10,000 | | | | | | | | | | | | |
The 2014 Stock Option Plan [Member] | Stock Award [Member] | Chief Executive Officer [Member] | The 2023 [Member] | | | | | | | | | | | | | | | | | |
Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Rights, Number of Shares | $ | | | | | 10,000 | | | | | | | | | | | | |
The 2014 Stock Option Plan [Member] | Stock Award [Member] | Chief Executive Officer [Member] | The 2027 [Member] | | | | | | | | | | | | | | | | | |
Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Rights, Number of Shares | $ | | | | | 10,000 | | | | | | | | | | | | |
The 2014 Stock Option Plan [Member] | Stock Award [Member] | Chief Executive Officer [Member] | The 2026 [Member] | | | | | | | | | | | | | | | | | |
Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Rights, Number of Shares | $ | | | | | $ 20,000 | | | | | | | | | | | | |
The 2014 Stock Option Plan [Member] | Minimum [Member] | Restricted Stock [Member] | | | | | | | | | | | | | | | | | |
Share-based Compensation Arrangement by Share-based Payment Award, Purchase Price of Common Stock, Percent | | 85.00% | | | | | | | | | | | | | | | |