| 10. EARNINGS (LOSS) PER SHARE The table below reconciles basic and diluted loss per share of common stock:   
|  |  |  |  |  |  |  |  |  |  |  |  |  |  
| (In thousands) |  | Three Months Ended  |  | Six Months Ended  |  
|  |  | June 30,  |  | June 30,  |  
|  |      | 2025 |      | 2024 |      | 2025 |      | 2024 |  
| Numerator: |   |  |    |   |  |    |   |  |    |   |  |    |  
| Net loss ─ basic |  | $ |  (10,383) |  | $ |  (8,629) |  | $ |  (20,148) |  | $ |  (19,901) |  
| Net loss ─ diluted |  | $ |  (10,383) |  | $ |  (8,629) |  | $ |  (20,148) |  | $ |  (19,901) |  
|  |  |  |  |  |  |  |  |  |  |  |  |  |  
| Denominator: |  |  |    |  |  |    |  |  |    |  |  |    |  
| Weighted-average common shares ─ basic |  |  |  36,055 |  |  |  34,710 |  |  |  35,944 |  |  |  34,650 |  
| Potential dilution from share-based awards |  |  |  — |  |  |  — |  |  |  — |  |  |  — |  
| Weighted-average common and common share equivalents ─ diluted |  |  |  36,055 |  |  |  34,710 |  |  |  35,944 |  |  |  34,650 |  
| Anti-dilutive share-based awards excluded from the calculation of diluted loss per share |  |  |  3,394 |  |  |  4,408 |  |  |  3,249 |  |  |  4,310 |   |