| Note 7 - Leases - Summary of Supplemental Balance Sheet Information Related to Leases (Details) - USD ($) $ in Thousands | Mar. 31, 2023 | Dec. 31, 2022 | 
|---|---|---|
| Operating lease right-of-use assets | $ 16,414 | $ 17,432 | 
| Other current liabilities | 4,888 | 4,862 | 
| Operating lease liabilities | 12,951 | 14,025 | 
| Total operating lease liabilities | $ 17,839 | $ 18,887 | 
| Operating leases (in months) (Month) | 57 months | 59 months | 
| Operating leases | 4.70% | 4.69% | 
| X | ||||||||||
| 
- Definition Present value of lessee's discounted obligation for lease payments from operating lease. Reference 1: http://www.xbrl.org/2003/role/disclosureRef 
 | 
| X | ||||||||||
| 
- Definition Present value of lessee's discounted obligation for lease payments from operating lease, classified as current. Reference 1: http://www.xbrl.org/2003/role/disclosureRef 
 | 
| X | ||||||||||
| 
- Definition Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent. Reference 1: http://www.xbrl.org/2003/role/disclosureRef 
 | 
| X | ||||||||||
| 
- Definition Amount of lessee's right to use underlying asset under operating lease. Reference 1: http://www.xbrl.org/2003/role/disclosureRef 
 | 
| X | ||||||||||
| 
- Definition Weighted average discount rate for operating lease calculated at point in time. Reference 1: http://www.xbrl.org/2003/role/exampleRef 
 | 
| X | ||||||||||
| 
- Definition Weighted average remaining lease term for operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Reference 1: http://www.xbrl.org/2003/role/exampleRef 
 |