| 7. 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,  |  
|  |      | 2024 |      | 2023 |      | 2024 |      | 2023 |  
| Numerator: |   |  |    |   |  |    |   |  |    |   |  |    |  
| Net loss ─ basic |  | $ |  (8,629) |  | $ |  (5,600) |  | $ |  (19,901) |  | $ |  (17,015) |  
| Net loss ─ diluted |  | $ |  (8,629) |  | $ |  (5,600) |  | $ |  (19,901) |  | $ |  (17,015) |  
|  |  |  |  |  |  |  |  |  |  |  |  |  |  
| Denominator: |  |   |    |  |   |    |  |   |    |  |   |    |  
| Weighted-average common shares ─ basic |  |   |  34,710 |  |   |  34,496 |  |   |  34,650 |  |   |  34,453 |  
| Potential dilution from share-based awards |  |  |  — |  |  |  — |  |  |  — |  |  |  — |  
| Weighted-average common and common share equivalents ─ diluted |  |   |  34,710 |  |   |  34,496 |  |   |  34,650 |  |   |  34,453 |  
| Anti-dilutive share-based awards excluded from the calculation of diluted loss per share |  |   |  4,408 |  |   |  4,079 |  |   |  4,310 |  |   |  3,962 |   |