Restatement of Consolidated Annual Financial Statements - Additional Information (Details) - USD ($) $ in Thousands |
3 Months Ended | 6 Months Ended | 9 Months Ended | 12 Months Ended | |||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Sep. 30, 2024 |
Jun. 30, 2024 |
Mar. 31, 2024 |
Sep. 30, 2023 |
Jun. 30, 2023 |
Mar. 31, 2023 |
Jun. 30, 2024 |
Jun. 30, 2023 |
Sep. 30, 2024 |
Sep. 30, 2023 |
Dec. 31, 2024 |
Dec. 31, 2023 |
Dec. 31, 2022 |
|||||||||||||||||||||||||||||||
| Reclassification [Line Items] | |||||||||||||||||||||||||||||||||||||||||||
| Revenues | $ 44,668 | [1],[2] | $ 45,233 | [1],[2] | $ 47,070 | [1],[2] | $ 44,608 | [1],[2] | $ 53,720 | [1],[2] | $ 75,971 | [1],[2] | $ 92,303 | [1],[2] | $ 129,691 | [1],[2] | $ 136,971 | [1],[2] | $ 174,299 | [1],[2] | $ 177,286 | $ 226,767 | |||||||||||||||||||||
| Cost of revenues | 25,198 | [2],[3] | 30,527 | [2],[3] | 33,063 | [2],[3] | 32,698 | [1],[2],[3] | 32,786 | [1],[2],[3] | 39,954 | [1],[2],[3] | 63,590 | [2],[3] | 72,740 | [1],[2],[3] | 88,788 | [2],[3] | 105,438 | [1],[2],[3] | 114,355 | 149,928 | |||||||||||||||||||||
| Gross profit | 19,470 | 14,706 | 14,007 | 11,910 | 20,934 | 36,017 | 28,713 | 56,951 | 48,183 | 68,861 | 62,931 | 76,839 | |||||||||||||||||||||||||||||||
| Current accrued liabilities | 35,822 | [1],[4],[5] | 35,882 | [1],[4],[5] | 34,992 | [1],[5] | 35,571 | [1],[5] | 43,174 | [1],[5] | 38,169 | [1],[5] | 35,882 | [1],[4],[5] | 43,174 | [1],[5] | 35,822 | [1],[4],[5] | 35,571 | [1],[5] | 30,980 | 39,588 | |||||||||||||||||||||
| Decrease in accrued liabilities | (2,287) | [1],[5],[6] | 3,714 | [1],[5],[6] | (1,006) | [1],[6] | 648 | [1],[5],[6] | (1,947) | [1],[6] | (4,360) | [1],[5],[6] | (1,320) | (555) | |||||||||||||||||||||||||||||
| Decrease in accounts receivable, net | (968) | [1],[7] | 8,070 | [1],[7] | (4,155) | [1],[7] | (10,946) | [1],[7] | (4,430) | [1],[7] | (40,494) | [1],[7] | (8,267) | (37,417) | |||||||||||||||||||||||||||||
| Accounts receivable, net | 49,461 | [5],[7] | 48,820 | [5],[7] | 51,163 | [5],[7] | 53,802 | [5],[7],[8] | 85,456 | [5],[7] | 96,709 | [5],[7] | 48,820 | [5],[7] | 85,456 | [5],[7] | 49,461 | [5],[7] | 53,802 | [5],[7],[8] | 40,405 | 56,253 | |||||||||||||||||||||
| Reduction in receivables, net | (968) | [1],[7] | 8,070 | [1],[7] | (4,155) | [1],[7] | (10,946) | [1],[7] | (4,430) | [1],[7] | (40,494) | [1],[7] | (8,267) | (37,417) | |||||||||||||||||||||||||||||
| Inventories, net | 47,608 | [2],[3],[5] | 53,213 | [2],[3],[5] | 57,817 | [2],[3],[5] | 76,642 | [2],[3],[5],[8] | 78,772 | [2],[3],[5] | 65,177 | [2],[3],[5] | 53,213 | [2],[3],[5] | 78,772 | [2],[3],[5] | 47,608 | [2],[3],[5] | 76,642 | [2],[3],[5],[8] | 41,990 | 68,078 | |||||||||||||||||||||
| Inventory reserves | (29,430) | (24,018) | $ (10,746) | ||||||||||||||||||||||||||||||||||||||||
| Provision for estimated credit losses | 669 | [3] | 164 | [7] | 893 | [7] | 212 | [7] | 1,039 | (25) | [7] | 851 | 456 | ||||||||||||||||||||||||||||||
| Deferred tax expense | 5,596 | 2,520 | |||||||||||||||||||||||||||||||||||||||||
| Current prepaid expenses | 7,597 | [5],[9] | 5,953 | [5],[9] | 9,733 | [5],[9] | 5,942 | [5],[9] | 5,111 | [5],[9] | 6,434 | [5],[9] | 5,953 | [5],[9] | 5,111 | [5],[9] | 7,597 | [5],[9] | 5,942 | [5],[9] | 11,667 | 4,461 | |||||||||||||||||||||
| Other noncurrent assets | 10,377 | [5],[9] | 8,036 | [5],[9] | 4,635 | [5],[9] | 3,748 | 3,860 | [5],[9] | 5,234 | [5],[9] | 8,036 | [5],[9] | 3,860 | [5],[9] | 10,377 | [5],[9] | 3,748 | 13,644 | 3,463 | |||||||||||||||||||||||
| Other noncurrent liabilities | 18,429 | [5],[9] | 17,589 | [5],[9] | 13,999 | [5],[9] | 3,722 | [5],[9] | 2,682 | [5],[9] | 2,143 | [5],[9] | 17,589 | [5],[9] | 2,682 | [5],[9] | 18,429 | [5],[9] | 3,722 | [5],[9] | 18,422 | 13,536 | |||||||||||||||||||||
| Sales and marketing | 8,398 | 9,706 | 9,721 | 9,668 | [5] | 11,535 | [5] | 11,977 | [5] | 19,427 | 23,512 | [5] | 27,825 | 33,180 | [5] | 36,719 | 42,906 | ||||||||||||||||||||||||||
| General and administrative | 6,240 | [7] | 6,472 | [7] | 7,434 | [7] | 8,309 | [5],[7] | 5,834 | [5],[7] | 6,868 | [7] | 13,906 | [7] | 12,702 | [5],[7] | 20,146 | [7] | 21,011 | [5],[7] | 26,010 | 28,065 | |||||||||||||||||||||
| Retained earnings | (151,623) | [1],[2],[3],[5],[6],[7],[8],[10] | (117,097) | [1],[2],[3],[5],[6],[7],[8] | (102,851) | [1],[2],[3],[5],[6],[7] | (59,464) | [1],[2],[3],[5],[6],[7],[8] | (23,089) | [1],[2],[3],[5],[10] | (9,652) | [1],[2],[3],[5],[7],[10] | (117,097) | [1],[2],[3],[5],[6],[7],[8] | (23,089) | [1],[2],[3],[5],[10] | (151,623) | [1],[2],[3],[5],[6],[7],[8],[10] | (59,464) | [1],[2],[3],[5],[6],[7],[8] | $ (158,855) | (84,403) | |||||||||||||||||||||
| Adjustment | |||||||||||||||||||||||||||||||||||||||||||
| Reclassification [Line Items] | |||||||||||||||||||||||||||||||||||||||||||
| Revenues | 942 | [1],[2] | (713) | [1],[2] | 4,733 | [1],[2] | 1,562 | [1],[2] | (5,822) | [1],[2] | (1,430) | [1],[2] | 4,020 | [1],[2] | (7,252) | [1],[2] | 4,962 | [1],[2] | (5,690) | [1],[2] | 6,572 | ||||||||||||||||||||||
| Cost of revenues | (1,083) | [2],[3] | (1,009) | [2],[3] | (589) | [2],[3] | 611 | [1],[2],[3] | 2,486 | [1],[2],[3] | 2,213 | [1],[2],[3] | (1,598) | [2],[3] | 4,699 | [1],[2],[3] | (2,681) | [2],[3] | 5,310 | [1],[2],[3] | (1,436) | ||||||||||||||||||||||
| Gross profit | 2,025 | 296 | 5,322 | 951 | (8,308) | (3,643) | 5,618 | (11,951) | 7,643 | (11,000) | 8,008 | ||||||||||||||||||||||||||||||||
| Current accrued liabilities | (10,316) | [1],[4],[5] | (10,573) | [1],[4],[5] | (7,519) | [1],[5] | 14,881 | [1],[5] | 16,810 | [1],[5] | 6,512 | [1],[5] | (10,573) | [1],[4],[5] | 16,810 | [1],[5] | (10,316) | [1],[4],[5] | 14,881 | [1],[5] | (7,481) | ||||||||||||||||||||||
| Decrease in accrued liabilities | (716) | [1],[5],[6] | (24) | [1],[5],[6] | (3,515) | [1],[6] | (33) | [1],[5],[6] | (4,012) | [1],[6] | (3,096) | [1],[5],[6] | (13,064) | ||||||||||||||||||||||||||||||
| Decrease in accounts receivable, net | 1,417 | [1],[7] | (903) | [1],[7] | (96) | [1],[7] | (10,754) | [1],[7] | (646) | [1],[7] | (17,845) | [1],[7] | (5,369) | ||||||||||||||||||||||||||||||
| Accounts receivable, net | (7,814) | [5],[7] | (7,860) | [5],[7] | (6,994) | [5],[7] | (6,642) | [5],[7],[8] | (1,363) | [5],[7] | (1,498) | [5],[7] | (7,860) | [5],[7] | (1,363) | [5],[7] | (7,814) | [5],[7] | (6,642) | [5],[7],[8] | (7,850) | ||||||||||||||||||||||
| Reduction in receivables, net | 1,417 | [1],[7] | (903) | [1],[7] | (96) | [1],[7] | (10,754) | [1],[7] | (646) | [1],[7] | (17,845) | [1],[7] | (5,369) | ||||||||||||||||||||||||||||||
| Inventories, net | 4,628 | [2],[3],[5] | 3,244 | [2],[3],[5] | 2,224 | [2],[3],[5] | (3,122) | [2],[3],[5],[8] | (3,576) | [2],[3],[5] | (3,156) | [2],[3],[5] | 3,244 | [2],[3],[5] | (3,576) | [2],[3],[5] | 4,628 | [2],[3],[5] | (3,122) | [2],[3],[5],[8] | 1,200 | ||||||||||||||||||||||
| Provision for estimated credit losses | 92 | [3] | 201 | [7] | 612 | [7] | 189 | [7] | 820 | (182) | [7] | 750 | |||||||||||||||||||||||||||||||
| Current prepaid expenses | (8,331) | [5],[9] | (6,104) | [5],[9] | (3,019) | [5],[9] | (2,868) | [5],[9] | (2,931) | [5],[9] | (4,358) | [5],[9] | (6,104) | [5],[9] | (2,931) | [5],[9] | (8,331) | [5],[9] | (2,868) | [5],[9] | (2,128) | ||||||||||||||||||||||
| Other noncurrent assets | 9,394 | [5],[9] | 6,778 | [5],[9] | 3,355 | [5],[9] | 2,868 | 2,931 | [5],[9] | 4,358 | [5],[9] | 6,778 | [5],[9] | 2,931 | [5],[9] | 9,394 | [5],[9] | 2,868 | 2,128 | ||||||||||||||||||||||||
| Other noncurrent liabilities | 16,604 | [5],[9] | 15,823 | [5],[9] | 12,311 | [5],[9] | 2,017 | [5],[9] | 1,050 | [5],[9] | 614 | [5],[9] | 15,823 | [5],[9] | 1,050 | [5],[9] | 16,604 | [5],[9] | 2,017 | [5],[9] | 11,917 | ||||||||||||||||||||||
| Sales and marketing | 0 | 0 | 0 | (7) | [5] | 7 | [5] | 307 | [5] | 0 | 314 | [5] | 0 | 307 | [5] | 307 | |||||||||||||||||||||||||||
| General and administrative | 91 | [7] | 484 | [7] | (76) | [7] | (379) | [5],[7] | (2) | [5],[7] | 201 | [7] | 408 | [7] | 199 | [5],[7] | 499 | [7] | (180) | [5],[7] | 667 | ||||||||||||||||||||||
| Retained earnings | (41,759) | [1],[2],[3],[5],[6],[7],[8],[10] | (16,909) | [1],[2],[3],[5],[6],[7],[8] | (11,806) | [1],[2],[3],[5],[6],[7] | (47,720) | [1],[2],[3],[5],[6],[7],[8] | (37,545) | [1],[2],[3],[5],[10] | (26,750) | [1],[2],[3],[5],[7],[10] | (16,909) | [1],[2],[3],[5],[6],[7],[8] | (37,545) | [1],[2],[3],[5],[10] | (41,759) | [1],[2],[3],[5],[6],[7],[8],[10] | (47,720) | [1],[2],[3],[5],[6],[7],[8] | (19,805) | ||||||||||||||||||||||
| Adjustment | Pre 2023 Restatement Adjustments | |||||||||||||||||||||||||||||||||||||||||||
| Reclassification [Line Items] | |||||||||||||||||||||||||||||||||||||||||||
| Retained earnings | (23,100) | ||||||||||||||||||||||||||||||||||||||||||
| Revenue Adjustment Customer Incentives | |||||||||||||||||||||||||||||||||||||||||||
| Reclassification [Line Items] | |||||||||||||||||||||||||||||||||||||||||||
| Revenues | (921) | [1] | (1,203) | [1] | 218 | [1] | (1,440) | [1] | (9,974) | [1] | (1,049) | [1] | (985) | [1] | (11,023) | [1] | (1,906) | [1] | (12,463) | [1] | 289 | ||||||||||||||||||||||
| Estimate of Variable Consideration For Customer Incentives | |||||||||||||||||||||||||||||||||||||||||||
| Reclassification [Line Items] | |||||||||||||||||||||||||||||||||||||||||||
| Revenues | 300 | ||||||||||||||||||||||||||||||||||||||||||
| Decrease in accrued liabilities | (300) | ||||||||||||||||||||||||||||||||||||||||||
| Estimate of Variable Consideration For Customer Incentives | Pre 2023 Restatement Adjustments | |||||||||||||||||||||||||||||||||||||||||||
| Reclassification [Line Items] | |||||||||||||||||||||||||||||||||||||||||||
| Revenues | (5,900) | ||||||||||||||||||||||||||||||||||||||||||
| Estimate of Variable Consideration for Sales Returns | |||||||||||||||||||||||||||||||||||||||||||
| Reclassification [Line Items] | |||||||||||||||||||||||||||||||||||||||||||
| Revenues | 10,400 | ||||||||||||||||||||||||||||||||||||||||||
| Cost of revenues | 2,200 | ||||||||||||||||||||||||||||||||||||||||||
| Gross profit | 8,200 | ||||||||||||||||||||||||||||||||||||||||||
| Decrease in other current assets | (2,200) | ||||||||||||||||||||||||||||||||||||||||||
| Decrease in accrued liabilities | (10,400) | ||||||||||||||||||||||||||||||||||||||||||
| Estimate of Variable Consideration for Sales Returns | Pre 2023 Restatement Adjustments | |||||||||||||||||||||||||||||||||||||||||||
| Reclassification [Line Items] | |||||||||||||||||||||||||||||||||||||||||||
| Revenues | (17,200) | ||||||||||||||||||||||||||||||||||||||||||
| Cost of revenues | (3,800) | ||||||||||||||||||||||||||||||||||||||||||
| Estimate of Inventory Excess and Obsolescence Reserves | |||||||||||||||||||||||||||||||||||||||||||
| Reclassification [Line Items] | |||||||||||||||||||||||||||||||||||||||||||
| Cost of revenues | 2,600 | ||||||||||||||||||||||||||||||||||||||||||
| Inventory reserves | (2,600) | ||||||||||||||||||||||||||||||||||||||||||
| Estimate of Inventory Excess and Obsolescence Reserves | Pre 2023 Restatement Adjustments | |||||||||||||||||||||||||||||||||||||||||||
| Reclassification [Line Items] | |||||||||||||||||||||||||||||||||||||||||||
| Cost of revenues | 2,700 | ||||||||||||||||||||||||||||||||||||||||||
| Revenue Adjustment Sales Returns | |||||||||||||||||||||||||||||||||||||||||||
| Reclassification [Line Items] | |||||||||||||||||||||||||||||||||||||||||||
| Revenues | $ 1,944 | [2] | $ 496 | [2] | $ 4,515 | [2] | $ 6,886 | [2] | $ 4,152 | [2] | $ (381) | [2] | $ 5,011 | [2] | $ 3,771 | [2] | $ 6,955 | [2] | $ 10,657 | [2] | 10,444 | ||||||||||||||||||||||
| Improper Revenue Recognition on Non-Standard Contracts | |||||||||||||||||||||||||||||||||||||||||||
| Reclassification [Line Items] | |||||||||||||||||||||||||||||||||||||||||||
| Revenues | (3,800) | ||||||||||||||||||||||||||||||||||||||||||
| Cost of revenues | (1,400) | ||||||||||||||||||||||||||||||||||||||||||
| Gross profit | (2,400) | ||||||||||||||||||||||||||||||||||||||||||
| Decrease in accounts receivable, net | (3,800) | ||||||||||||||||||||||||||||||||||||||||||
| Reduction in receivables, net | (3,800) | ||||||||||||||||||||||||||||||||||||||||||
| Inventories, net | 1,400 | ||||||||||||||||||||||||||||||||||||||||||
| Timely recognition of a valuation allowance on deferred tax assets | |||||||||||||||||||||||||||||||||||||||||||
| Reclassification [Line Items] | |||||||||||||||||||||||||||||||||||||||||||
| Reduction in deferred tax assets, net | (3,700) | ||||||||||||||||||||||||||||||||||||||||||
| Deferred tax expense | 3,700 | ||||||||||||||||||||||||||||||||||||||||||
| Estimate of Allowance for Credit Losses | |||||||||||||||||||||||||||||||||||||||||||
| Reclassification [Line Items] | |||||||||||||||||||||||||||||||||||||||||||
| Revenues | (100) | ||||||||||||||||||||||||||||||||||||||||||
| Decrease in accounts receivable, net | (800) | ||||||||||||||||||||||||||||||||||||||||||
| Reduction in receivables, net | (800) | ||||||||||||||||||||||||||||||||||||||||||
| Provision for estimated credit losses | 700 | ||||||||||||||||||||||||||||||||||||||||||
| Estimate of Allowance for Credit Losses | Pre 2023 Restatement Adjustments | |||||||||||||||||||||||||||||||||||||||||||
| Reclassification [Line Items] | |||||||||||||||||||||||||||||||||||||||||||
| Revenues | (100) | ||||||||||||||||||||||||||||||||||||||||||
| General and administrative | (1,500) | ||||||||||||||||||||||||||||||||||||||||||
| Prepaid Supplier Payment | Other Adjustments | |||||||||||||||||||||||||||||||||||||||||||
| Reclassification [Line Items] | |||||||||||||||||||||||||||||||||||||||||||
| Current prepaid expenses | 3,200 | ||||||||||||||||||||||||||||||||||||||||||
| Other noncurrent assets | (3,200) | ||||||||||||||||||||||||||||||||||||||||||
| Supplier Commitments | Other Adjustments | |||||||||||||||||||||||||||||||||||||||||||
| Reclassification [Line Items] | |||||||||||||||||||||||||||||||||||||||||||
| Current accrued liabilities | (11,400) | ||||||||||||||||||||||||||||||||||||||||||
| Decrease in accrued liabilities | 300 | ||||||||||||||||||||||||||||||||||||||||||
| Supplier commitment expense | 300 | ||||||||||||||||||||||||||||||||||||||||||
| Other noncurrent liabilities | 11,400 | ||||||||||||||||||||||||||||||||||||||||||
| Variable Incentive Compensation | Pre 2023 Restatement Adjustments | |||||||||||||||||||||||||||||||||||||||||||
| Reclassification [Line Items] | |||||||||||||||||||||||||||||||||||||||||||
| Sales and marketing | (300) | ||||||||||||||||||||||||||||||||||||||||||
| Variable Incentive Compensation | Other Adjustments | |||||||||||||||||||||||||||||||||||||||||||
| Reclassification [Line Items] | |||||||||||||||||||||||||||||||||||||||||||
| Sales and marketing | 300 | ||||||||||||||||||||||||||||||||||||||||||
| Employee compensation accrual | 300 | ||||||||||||||||||||||||||||||||||||||||||
| Derecognition of Revenue | Other Adjustments | |||||||||||||||||||||||||||||||||||||||||||
| Reclassification [Line Items] | |||||||||||||||||||||||||||||||||||||||||||
| Revenues | (100) | ||||||||||||||||||||||||||||||||||||||||||
| Accounts receivable, net | (100) | ||||||||||||||||||||||||||||||||||||||||||
| Recognition of Revenue | Pre 2023 Restatement Adjustments | |||||||||||||||||||||||||||||||||||||||||||
| Reclassification [Line Items] | |||||||||||||||||||||||||||||||||||||||||||
| Revenues | $ 100 | ||||||||||||||||||||||||||||||||||||||||||
| Over Accrual of 401(K) Employer Contribution | Other Adjustments | |||||||||||||||||||||||||||||||||||||||||||
| Reclassification [Line Items] | |||||||||||||||||||||||||||||||||||||||||||
| Employee compensation accrual | (100) | ||||||||||||||||||||||||||||||||||||||||||
| General and administrative | (100) | ||||||||||||||||||||||||||||||||||||||||||
| Under Accrual of Other Manufacturing Costs | Other Adjustments | |||||||||||||||||||||||||||||||||||||||||||
| Reclassification [Line Items] | |||||||||||||||||||||||||||||||||||||||||||
| Cost of revenues | 100 | ||||||||||||||||||||||||||||||||||||||||||
| Current accrued liabilities | 100 | ||||||||||||||||||||||||||||||||||||||||||
| Reverse freight | Other Adjustments | |||||||||||||||||||||||||||||||||||||||||||
| Reclassification [Line Items] | |||||||||||||||||||||||||||||||||||||||||||
| Revenues | (100) | ||||||||||||||||||||||||||||||||||||||||||
| Cost of revenues | $ (100) | ||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||