Organization record
INNEOVA Holdings Limited
All evidence-backed facts for this organization, identity resolved across official registers.
Facts on record
Newest first; every row links to its evidence page.
| Fact | Value | Period | Source |
|---|---|---|---|
| accounts_receivable | {"amount": 12395000, "concept": "us-gaap:AccountsReceivableNetCurrent", "currency": "USD"} | 2025-06-30 | sec_edgar |
| accounts_receivable | {"amount": 13154000, "concept": "us-gaap:AccountsReceivableNetCurrent", "currency": "USD"} | 2024-12-31 | sec_edgar |
| accounts_receivable | {"amount": 14550000, "concept": "us-gaap:AccountsReceivableNetCurrent", "currency": "USD"} | 2023-12-31 | sec_edgar |
| capex | {"amount": 10000, "concept": "us-gaap:PaymentsToAcquirePropertyPlantAndEquipment", "curren | 2025-12-31 | sec_edgar |
| capex | {"amount": 1180000, "concept": "us-gaap:PaymentsToAcquirePropertyPlantAndEquipment", "curr | 2025-06-30 | sec_edgar |
| capex | {"amount": 739000, "concept": "us-gaap:PaymentsToAcquirePropertyPlantAndEquipment", "curre | 2024-12-31 | sec_edgar |
| capex | {"amount": 945000, "concept": "us-gaap:PaymentsToAcquirePropertyPlantAndEquipment", "curre | 2024-06-30 | sec_edgar |
| capex | {"amount": 309000, "concept": "us-gaap:PaymentsToAcquirePropertyPlantAndEquipment", "curre | 2023-12-31 | sec_edgar |
| capex | {"amount": 283000, "concept": "us-gaap:PaymentsToAcquirePropertyPlantAndEquipment", "curre | 2022-12-31 | sec_edgar |
| cash_and_equivalents | {"amount": 1059000, "concept": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "currency" | 2025-12-31 | sec_edgar |
| cash_and_equivalents | {"amount": 2139000, "concept": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "currency" | 2025-06-30 | sec_edgar |
| cash_and_equivalents | {"amount": 1790000, "concept": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "currency" | 2024-12-31 | sec_edgar |
| cash_and_equivalents | {"amount": 842000, "concept": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "currency": | 2024-06-30 | sec_edgar |
| cash_and_equivalents | {"amount": 690000, "concept": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "currency": | 2023-12-31 | sec_edgar |
| cash_and_restricted_cash | {"amount": 2450000, "concept": "us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCash | 2025-06-30 | sec_edgar |
| cash_and_restricted_cash | {"amount": 1134000, "concept": "us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCash | 2024-06-30 | sec_edgar |
| cashflow_financing | {"amount": -5461000, "concept": "us-gaap:NetCashProvidedByUsedInFinancingActivities", "cur | 2025-12-31 | sec_edgar |
| cashflow_financing | {"amount": 777000, "concept": "us-gaap:NetCashProvidedByUsedInFinancingActivities", "curre | 2025-06-30 | sec_edgar |
| cashflow_financing | {"amount": -628000, "concept": "us-gaap:NetCashProvidedByUsedInFinancingActivities", "curr | 2024-12-31 | sec_edgar |
| cashflow_financing | {"amount": 140000, "concept": "us-gaap:NetCashProvidedByUsedInFinancingActivities", "curre | 2024-06-30 | sec_edgar |
| cashflow_financing | {"amount": -3816000, "concept": "us-gaap:NetCashProvidedByUsedInFinancingActivities", "cur | 2023-12-31 | sec_edgar |
| cashflow_financing | {"amount": 2139000, "concept": "us-gaap:NetCashProvidedByUsedInFinancingActivities", "curr | 2022-12-31 | sec_edgar |
| cashflow_investing | {"amount": -10000, "concept": "us-gaap:NetCashProvidedByUsedInInvestingActivities", "curre | 2025-12-31 | sec_edgar |
| cashflow_investing | {"amount": -1180000, "concept": "us-gaap:NetCashProvidedByUsedInInvestingActivities", "cur | 2025-06-30 | sec_edgar |
| cashflow_investing | {"amount": -739000, "concept": "us-gaap:NetCashProvidedByUsedInInvestingActivities", "curr | 2024-12-31 | sec_edgar |
| cashflow_investing | {"amount": -945000, "concept": "us-gaap:NetCashProvidedByUsedInInvestingActivities", "curr | 2024-06-30 | sec_edgar |
| cashflow_investing | {"amount": -309000, "concept": "us-gaap:NetCashProvidedByUsedInInvestingActivities", "curr | 2023-12-31 | sec_edgar |
| cashflow_investing | {"amount": -283000, "concept": "us-gaap:NetCashProvidedByUsedInInvestingActivities", "curr | 2022-12-31 | sec_edgar |
| cashflow_operating | {"amount": 4441000, "concept": "us-gaap:NetCashProvidedByUsedInOperatingActivities", "curr | 2025-12-31 | sec_edgar |
| cashflow_operating | {"amount": -301000, "concept": "us-gaap:NetCashProvidedByUsedInOperatingActivities", "curr | 2025-06-30 | sec_edgar |
| cashflow_operating | {"amount": 2534000, "concept": "us-gaap:NetCashProvidedByUsedInOperatingActivities", "curr | 2024-12-31 | sec_edgar |
| cashflow_operating | {"amount": 1162000, "concept": "us-gaap:NetCashProvidedByUsedInOperatingActivities", "curr | 2024-06-30 | sec_edgar |
| cashflow_operating | {"amount": 3739000, "concept": "us-gaap:NetCashProvidedByUsedInOperatingActivities", "curr | 2023-12-31 | sec_edgar |
| cashflow_operating | {"amount": -2056000, "concept": "us-gaap:NetCashProvidedByUsedInOperatingActivities", "cur | 2022-12-31 | sec_edgar |
| common_shares_issued | {"unit": "shares", "value": 16527249, "concept": "us-gaap:CommonStockSharesIssued"} | 2025-12-31 | sec_edgar |
| common_shares_issued | {"unit": "shares", "value": 16170624, "concept": "us-gaap:CommonStockSharesIssued"} | 2025-06-30 | sec_edgar |
| common_shares_issued | {"unit": "shares", "value": 10250000, "concept": "us-gaap:CommonStockSharesIssued"} | 2024-12-31 | sec_edgar |
| common_shares_issued | {"unit": "shares", "value": 9000000, "concept": "us-gaap:CommonStockSharesIssued"} | 2023-12-31 | sec_edgar |
| common_shares_outstanding | {"unit": "shares", "value": 16527249, "concept": "us-gaap:CommonStockSharesOutstanding"} | 2025-12-31 | sec_edgar |
| common_shares_outstanding | {"unit": "shares", "value": 16170624, "concept": "us-gaap:CommonStockSharesOutstanding"} | 2025-06-30 | sec_edgar |
| common_shares_outstanding | {"unit": "shares", "value": 10250000, "concept": "us-gaap:CommonStockSharesOutstanding"} | 2024-12-31 | sec_edgar |
| common_shares_outstanding | {"unit": "shares", "value": 9000000, "concept": "us-gaap:CommonStockSharesOutstanding"} | 2023-12-31 | sec_edgar |
| cost_of_revenue | {"amount": 47204000, "concept": "us-gaap:CostOfRevenue", "currency": "USD"} | 2025-12-31 | sec_edgar |
| cost_of_revenue | {"amount": 24845000, "concept": "us-gaap:CostOfRevenue", "currency": "USD"} | 2025-06-30 | sec_edgar |
| cost_of_revenue | {"amount": 50439000, "concept": "us-gaap:CostOfRevenue", "currency": "USD"} | 2024-12-31 | sec_edgar |
| cost_of_revenue | {"amount": 22103000, "concept": "us-gaap:CostOfRevenue", "currency": "USD"} | 2024-06-30 | sec_edgar |
| cost_of_revenue | {"amount": 50697000, "concept": "us-gaap:CostOfRevenue", "currency": "USD"} | 2023-12-31 | sec_edgar |
| cost_of_revenue | {"amount": 42165000, "concept": "us-gaap:CostOfRevenue", "currency": "USD"} | 2022-12-31 | sec_edgar |
| current_assets | {"amount": 36521000, "concept": "us-gaap:AssetsCurrent", "currency": "USD"} | 2025-12-31 | sec_edgar |
| current_assets | {"amount": 42484000, "concept": "us-gaap:AssetsCurrent", "currency": "USD"} | 2025-06-30 | sec_edgar |
| current_assets | {"amount": 41276000, "concept": "us-gaap:AssetsCurrent", "currency": "USD"} | 2024-12-31 | sec_edgar |
| current_assets | {"amount": 37598000, "concept": "us-gaap:AssetsCurrent", "currency": "USD"} | 2023-12-31 | sec_edgar |
| current_liabilities | {"amount": 34444000, "concept": "us-gaap:LiabilitiesCurrent", "currency": "USD"} | 2025-12-31 | sec_edgar |
| current_liabilities | {"amount": 37609000, "concept": "us-gaap:LiabilitiesCurrent", "currency": "USD"} | 2025-06-30 | sec_edgar |
| current_liabilities | {"amount": 37025000, "concept": "us-gaap:LiabilitiesCurrent", "currency": "USD"} | 2024-12-31 | sec_edgar |
| current_liabilities | {"amount": 34450000, "concept": "us-gaap:LiabilitiesCurrent", "currency": "USD"} | 2023-12-31 | sec_edgar |
| dei:EntityCommonStockSharesOutstanding | {"unit": "shares", "value": 16527249} | 2025-12-31 | sec_edgar |
| dei:EntityCommonStockSharesOutstanding | {"unit": "shares", "value": 9875000} | 2024-12-31 | sec_edgar |
| dei:EntityListingParValuePerShare | {"per": "shares", "amount": 0.0005, "currency": "USD"} | 2025-12-31 | sec_edgar |
| dei:EntityListingParValuePerShare | {"per": "shares", "amount": 0.0005, "currency": "USD"} | 2024-12-31 | sec_edgar |
| eps_basic | {"per": "shares", "amount": -0.03, "concept": "us-gaap:EarningsPerShareBasic", "currency": | 2025-12-31 | sec_edgar |
| eps_basic | {"per": "shares", "amount": 0.02, "concept": "us-gaap:EarningsPerShareBasic", "currency": | 2025-06-30 | sec_edgar |
| eps_basic | {"per": "shares", "amount": 0.04, "concept": "us-gaap:EarningsPerShareBasic", "currency": | 2024-12-31 | sec_edgar |
| eps_basic | {"per": "shares", "amount": 0.19, "concept": "us-gaap:EarningsPerShareBasic", "currency": | 2024-06-30 | sec_edgar |
| eps_basic | {"per": "shares", "amount": 0.2, "concept": "us-gaap:EarningsPerShareBasic", "currency": " | 2023-12-31 | sec_edgar |
| eps_basic | {"per": "shares", "amount": 0.0008, "concept": "us-gaap:EarningsPerShareBasic", "currency" | 2022-12-31 | sec_edgar |
| eps_diluted | {"per": "shares", "amount": -0.03, "concept": "us-gaap:EarningsPerShareDiluted", "currency | 2025-12-31 | sec_edgar |
| eps_diluted | {"per": "shares", "amount": 0.02, "concept": "us-gaap:EarningsPerShareDiluted", "currency" | 2025-06-30 | sec_edgar |
| eps_diluted | {"per": "shares", "amount": 0.04, "concept": "us-gaap:EarningsPerShareDiluted", "currency" | 2024-12-31 | sec_edgar |
| eps_diluted | {"per": "shares", "amount": 0.19, "concept": "us-gaap:EarningsPerShareDiluted", "currency" | 2024-06-30 | sec_edgar |
| eps_diluted | {"per": "shares", "amount": 0.2, "concept": "us-gaap:EarningsPerShareDiluted", "currency": | 2023-12-31 | sec_edgar |
| eps_diluted | {"per": "shares", "amount": 0.0008, "concept": "us-gaap:EarningsPerShareDiluted", "currenc | 2022-12-31 | sec_edgar |
| gross_profit | {"amount": 11221000, "concept": "us-gaap:GrossProfit", "currency": "USD"} | 2025-12-31 | sec_edgar |
| gross_profit | {"amount": 5926000, "concept": "us-gaap:GrossProfit", "currency": "USD"} | 2025-06-30 | sec_edgar |
| gross_profit | {"amount": 12302000, "concept": "us-gaap:GrossProfit", "currency": "USD"} | 2024-12-31 | sec_edgar |
| gross_profit | {"amount": 5797000, "concept": "us-gaap:GrossProfit", "currency": "USD"} | 2024-06-30 | sec_edgar |
| gross_profit | {"amount": 11996000, "concept": "us-gaap:GrossProfit", "currency": "USD"} | 2023-12-31 | sec_edgar |
| gross_profit | {"amount": 9280000, "concept": "us-gaap:GrossProfit", "currency": "USD"} | 2022-12-31 | sec_edgar |
| income_tax_expense | {"amount": -656000, "concept": "us-gaap:IncomeTaxExpenseBenefit", "currency": "USD"} | 2025-12-31 | sec_edgar |
| income_tax_expense | {"amount": 86000, "concept": "us-gaap:IncomeTaxExpenseBenefit", "currency": "USD"} | 2025-06-30 | sec_edgar |
| income_tax_expense | {"amount": 125000, "concept": "us-gaap:IncomeTaxExpenseBenefit", "currency": "USD"} | 2024-12-31 | sec_edgar |
| income_tax_expense | {"amount": 110000, "concept": "us-gaap:IncomeTaxExpenseBenefit", "currency": "USD"} | 2024-06-30 | sec_edgar |
| income_tax_expense | {"amount": 285000, "concept": "us-gaap:IncomeTaxExpenseBenefit", "currency": "USD"} | 2023-12-31 | sec_edgar |
| income_tax_expense | {"amount": 325000, "concept": "us-gaap:IncomeTaxExpenseBenefit", "currency": "USD"} | 2022-12-31 | sec_edgar |
| industry_sic | {"code": "5010", "scheme": "SIC", "description": "Wholesale-Motor Vehicles & Motor Vehicle | sec_edgar | |
| interest_expense | {"amount": 1290000, "concept": "us-gaap:InterestExpenseNonoperating", "currency": "USD"} | 2025-12-31 | sec_edgar |
| interest_expense | {"amount": 1367000, "concept": "us-gaap:InterestExpenseNonoperating", "currency": "USD"} | 2024-12-31 | sec_edgar |
| interest_expense | {"amount": 1116000, "concept": "us-gaap:InterestExpenseNonoperating", "currency": "USD"} | 2023-12-31 | sec_edgar |
| inventory | {"amount": 18553000, "concept": "us-gaap:InventoryNet", "currency": "USD"} | 2025-12-31 | sec_edgar |
| inventory | {"amount": 18187000, "concept": "us-gaap:InventoryNet", "currency": "USD"} | 2025-06-30 | sec_edgar |
| inventory | {"amount": 19390000, "concept": "us-gaap:InventoryNet", "currency": "USD"} | 2024-12-31 | sec_edgar |
| inventory | {"amount": 18959000, "concept": "us-gaap:InventoryNet", "currency": "USD"} | 2023-12-31 | sec_edgar |
| long_term_debt | {"amount": 1241000, "concept": "us-gaap:LongTermDebt", "currency": "USD"} | 2025-12-31 | sec_edgar |
| long_term_debt | {"amount": 2905000, "concept": "us-gaap:LongTermDebt", "currency": "USD"} | 2025-06-30 | sec_edgar |
| long_term_debt | {"amount": 3103000, "concept": "us-gaap:LongTermDebt", "currency": "USD"} | 2024-12-31 | sec_edgar |
| long_term_debt | {"amount": 991000, "concept": "us-gaap:LongTermDebt", "currency": "USD"} | 2023-12-31 | sec_edgar |
| net_income | {"amount": -397000, "concept": "us-gaap:NetIncomeLoss", "currency": "USD"} | 2025-12-31 | sec_edgar |
| net_income | {"amount": 243000, "concept": "us-gaap:NetIncomeLoss", "currency": "USD"} | 2025-06-30 | sec_edgar |
| net_income | {"amount": 376000, "concept": "us-gaap:NetIncomeLoss", "currency": "USD"} | 2024-12-31 | sec_edgar |
| net_income | {"amount": 1676000, "concept": "us-gaap:NetIncomeLoss", "currency": "USD"} | 2024-06-30 | sec_edgar |
| net_income | {"amount": 1860000, "concept": "us-gaap:NetIncomeLoss", "currency": "USD"} | 2023-12-31 | sec_edgar |
| net_income | {"amount": 1527000, "concept": "us-gaap:NetIncomeLoss", "currency": "USD"} | 2022-12-31 | sec_edgar |
| noncurrent_assets | {"amount": 4897000, "concept": "us-gaap:AssetsNoncurrent", "currency": "USD"} | 2025-12-31 | sec_edgar |
| noncurrent_assets | {"amount": 10100000, "concept": "us-gaap:AssetsNoncurrent", "currency": "USD"} | 2025-06-30 | sec_edgar |
| noncurrent_assets | {"amount": 4499000, "concept": "us-gaap:AssetsNoncurrent", "currency": "USD"} | 2024-12-31 | sec_edgar |
| noncurrent_assets | {"amount": 1458000, "concept": "us-gaap:AssetsNoncurrent", "currency": "USD"} | 2023-12-31 | sec_edgar |
| noncurrent_liabilities | {"amount": 2001000, "concept": "us-gaap:LiabilitiesNoncurrent", "currency": "USD"} | 2025-12-31 | sec_edgar |
| noncurrent_liabilities | {"amount": 3809000, "concept": "us-gaap:LiabilitiesNoncurrent", "currency": "USD"} | 2025-06-30 | sec_edgar |
| noncurrent_liabilities | {"amount": 3839000, "concept": "us-gaap:LiabilitiesNoncurrent", "currency": "USD"} | 2024-12-31 | sec_edgar |
| noncurrent_liabilities | {"amount": 1555000, "concept": "us-gaap:LiabilitiesNoncurrent", "currency": "USD"} | 2023-12-31 | sec_edgar |
| operating_expenses | {"amount": 11272000, "concept": "us-gaap:OperatingExpenses", "currency": "USD"} | 2025-12-31 | sec_edgar |
| operating_expenses | {"amount": 4824000, "concept": "us-gaap:OperatingExpenses", "currency": "USD"} | 2025-06-30 | sec_edgar |
| operating_expenses | {"amount": 11053000, "concept": "us-gaap:OperatingExpenses", "currency": "USD"} | 2024-12-31 | sec_edgar |
| operating_expenses | {"amount": 3998000, "concept": "us-gaap:OperatingExpenses", "currency": "USD"} | 2024-06-30 | sec_edgar |
| operating_expenses | {"amount": 9141000, "concept": "us-gaap:OperatingExpenses", "currency": "USD"} | 2023-12-31 | sec_edgar |
| operating_expenses | {"amount": 7670000, "concept": "us-gaap:OperatingExpenses", "currency": "USD"} | 2022-12-31 | sec_edgar |
| operating_income | {"amount": -51000, "concept": "us-gaap:OperatingIncomeLoss", "currency": "USD"} | 2025-12-31 | sec_edgar |
| operating_income | {"amount": 1102000, "concept": "us-gaap:OperatingIncomeLoss", "currency": "USD"} | 2025-06-30 | sec_edgar |
| operating_income | {"amount": 1249000, "concept": "us-gaap:OperatingIncomeLoss", "currency": "USD"} | 2024-12-31 | sec_edgar |
| operating_income | {"amount": 1799000, "concept": "us-gaap:OperatingIncomeLoss", "currency": "USD"} | 2024-06-30 | sec_edgar |
| operating_income | {"amount": 2855000, "concept": "us-gaap:OperatingIncomeLoss", "currency": "USD"} | 2023-12-31 | sec_edgar |
| operating_income | {"amount": 1610000, "concept": "us-gaap:OperatingIncomeLoss", "currency": "USD"} | 2022-12-31 | sec_edgar |
| operating_lease_liability | {"amount": 684000, "concept": "us-gaap:OperatingLeaseLiability", "currency": "USD"} | 2025-12-31 | sec_edgar |
| operating_lease_liability | {"amount": 718000, "concept": "us-gaap:OperatingLeaseLiability", "currency": "USD"} | 2024-12-31 | sec_edgar |
| ppe_net | {"amount": 2129000, "concept": "us-gaap:PropertyPlantAndEquipmentNet", "currency": "USD"} | 2025-12-31 | sec_edgar |
| ppe_net | {"amount": 3162000, "concept": "us-gaap:PropertyPlantAndEquipmentNet", "currency": "USD"} | 2025-06-30 | sec_edgar |
| ppe_net | {"amount": 2404000, "concept": "us-gaap:PropertyPlantAndEquipmentNet", "currency": "USD"} | 2024-12-31 | sec_edgar |
| ppe_net | {"amount": 1458000, "concept": "us-gaap:PropertyPlantAndEquipmentNet", "currency": "USD"} | 2023-12-31 | sec_edgar |
| pretax_income | {"amount": -1053000, "concept": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTax | 2025-12-31 | sec_edgar |
| pretax_income | {"amount": 329000, "concept": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxes | 2025-06-30 | sec_edgar |
| pretax_income | {"amount": 501000, "concept": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxes | 2024-12-31 | sec_edgar |
| pretax_income | {"amount": 1786000, "concept": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxe | 2024-06-30 | sec_edgar |
| pretax_income | {"amount": 2145000, "concept": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxe | 2023-12-31 | sec_edgar |
| pretax_income | {"amount": 1852000, "concept": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxe | 2022-12-31 | sec_edgar |
| profit_loss | {"amount": 8000, "concept": "us-gaap:ProfitLoss", "currency": "USD"} | 2024-12-31 | sec_edgar |
| profit_loss | {"amount": 1629000, "concept": "us-gaap:ProfitLoss", "currency": "USD"} | 2023-12-31 | sec_edgar |
| profit_loss | {"amount": 1527000, "concept": "us-gaap:ProfitLoss", "currency": "USD"} | 2022-12-31 | sec_edgar |
| retained_earnings | {"amount": 4494000, "concept": "us-gaap:RetainedEarningsAccumulatedDeficit", "currency": " | 2025-12-31 | sec_edgar |
| retained_earnings | {"amount": 2057000, "concept": "us-gaap:RetainedEarningsAccumulatedDeficit", "currency": " | 2025-06-30 | sec_edgar |
| retained_earnings | {"amount": 4891000, "concept": "us-gaap:RetainedEarningsAccumulatedDeficit", "currency": " | 2024-12-31 | sec_edgar |
| retained_earnings | {"amount": 1806000, "concept": "us-gaap:RetainedEarningsAccumulatedDeficit", "currency": " | 2023-12-31 | sec_edgar |
| revenue | {"amount": 58425000, "concept": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedT | 2025-12-31 | sec_edgar |
| revenue | {"amount": 30771000, "concept": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedT | 2025-06-30 | sec_edgar |
| revenue | {"amount": 62741000, "concept": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedT | 2024-12-31 | sec_edgar |
| revenue | {"amount": 27900000, "concept": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedT | 2024-06-30 | sec_edgar |
| revenue | {"amount": 62693000, "concept": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedT | 2023-12-31 | sec_edgar |
| revenue | {"amount": 51445000, "concept": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedT | 2022-12-31 | sec_edgar |
| sga_expense | {"amount": 9287000, "concept": "us-gaap:GeneralAndAdministrativeExpense", "currency": "USD | 2025-12-31 | sec_edgar |
| sga_expense | {"amount": 3993000, "concept": "us-gaap:GeneralAndAdministrativeExpense", "currency": "USD | 2025-06-30 | sec_edgar |
| sga_expense | {"amount": 8704000, "concept": "us-gaap:GeneralAndAdministrativeExpense", "currency": "USD | 2024-12-31 | sec_edgar |
| sga_expense | {"amount": 3314000, "concept": "us-gaap:GeneralAndAdministrativeExpense", "currency": "USD | 2024-06-30 | sec_edgar |
| sga_expense | {"amount": 7097000, "concept": "us-gaap:GeneralAndAdministrativeExpense", "currency": "USD | 2023-12-31 | sec_edgar |
| sga_expense | {"amount": 5978000, "concept": "us-gaap:GeneralAndAdministrativeExpense", "currency": "USD | 2022-12-31 | sec_edgar |
| shares_wavg_basic | {"unit": "shares", "value": 14402000, "concept": "us-gaap:WeightedAverageNumberOfSharesOut | 2025-12-31 | sec_edgar |
| shares_wavg_basic | {"unit": "shares", "value": 16170000, "concept": "us-gaap:WeightedAverageNumberOfSharesOut | 2025-06-30 | sec_edgar |
| shares_wavg_basic | {"unit": "shares", "value": 9545000, "concept": "us-gaap:WeightedAverageNumberOfSharesOuts | 2024-12-31 | sec_edgar |
| shares_wavg_basic | {"unit": "shares", "value": 9000000, "concept": "us-gaap:WeightedAverageNumberOfSharesOuts | 2024-06-30 | sec_edgar |
| shares_wavg_basic | {"unit": "shares", "value": 9375000, "concept": "us-gaap:WeightedAverageNumberOfSharesOuts | 2023-12-31 | sec_edgar |
| shares_wavg_basic | {"unit": "shares", "value": 9875000, "concept": "us-gaap:WeightedAverageNumberOfSharesOuts | 2022-12-31 | sec_edgar |
| shares_wavg_diluted | {"unit": "shares", "value": 14402000, "concept": "us-gaap:WeightedAverageNumberOfDilutedSh | 2025-12-31 | sec_edgar |
| shares_wavg_diluted | {"unit": "shares", "value": 16170000, "concept": "us-gaap:WeightedAverageNumberOfDilutedSh | 2025-06-30 | sec_edgar |
| shares_wavg_diluted | {"unit": "shares", "value": 9545000, "concept": "us-gaap:WeightedAverageNumberOfDilutedSha | 2024-12-31 | sec_edgar |
| shares_wavg_diluted | {"unit": "shares", "value": 9000000, "concept": "us-gaap:WeightedAverageNumberOfDilutedSha | 2024-06-30 | sec_edgar |
| shares_wavg_diluted | {"unit": "shares", "value": 9375000, "concept": "us-gaap:WeightedAverageNumberOfDilutedSha | 2023-12-31 | sec_edgar |
| shares_wavg_diluted | {"unit": "shares", "value": 9875000, "concept": "us-gaap:WeightedAverageNumberOfDilutedSha | 2022-12-31 | sec_edgar |
| stockholders_equity | {"amount": 4973000, "concept": "us-gaap:StockholdersEquity", "currency": "USD"} | 2025-12-31 | sec_edgar |
| stockholders_equity | {"amount": 11166000, "concept": "us-gaap:StockholdersEquity", "currency": "USD"} | 2025-06-30 | sec_edgar |
| stockholders_equity | {"amount": 4911000, "concept": "us-gaap:StockholdersEquity", "currency": "USD"} | 2024-12-31 | sec_edgar |
| stockholders_equity | {"amount": 5059000, "concept": "us-gaap:StockholdersEquity", "currency": "USD"} | 2023-12-31 | sec_edgar |
| stockholders_equity | {"amount": 3085000, "concept": "us-gaap:StockholdersEquity", "currency": "USD"} | 2022-12-31 | sec_edgar |
| stockholders_equity | {"amount": 1286000, "concept": "us-gaap:StockholdersEquity", "currency": "USD"} | 2021-12-31 | sec_edgar |
| total_assets | {"amount": 41418000, "concept": "us-gaap:Assets", "currency": "USD"} | 2025-12-31 | sec_edgar |
| total_assets | {"amount": 52584000, "concept": "us-gaap:Assets", "currency": "USD"} | 2025-06-30 | sec_edgar |
| total_assets | {"amount": 45775000, "concept": "us-gaap:Assets", "currency": "USD"} | 2024-12-31 | sec_edgar |
| total_assets | {"amount": 39610000, "concept": "us-gaap:Assets", "currency": "USD"} | 2024-06-30 | sec_edgar |
| total_assets | {"amount": 44161000, "concept": "us-gaap:Assets", "currency": "USD"} | 2023-12-31 | sec_edgar |
| total_assets | {"amount": 40333000, "concept": "us-gaap:Assets", "currency": "USD"} | 2022-12-31 | sec_edgar |
| total_equity | {"amount": 11166000, "concept": "us-gaap:StockholdersEquityIncludingPortionAttributableToN | 2025-06-30 | sec_edgar |
| total_equity | {"amount": 8875000, "concept": "us-gaap:StockholdersEquityIncludingPortionAttributableToNo | 2024-12-31 | sec_edgar |
| total_equity | {"amount": 2959000, "concept": "us-gaap:StockholdersEquityIncludingPortionAttributableToNo | 2024-06-30 | sec_edgar |
| total_equity | {"amount": 3051000, "concept": "us-gaap:StockholdersEquityIncludingPortionAttributableToNo | 2023-12-31 | sec_edgar |
| total_liabilities | {"amount": 36445000, "concept": "us-gaap:Liabilities", "currency": "USD"} | 2025-12-31 | sec_edgar |
| total_liabilities | {"amount": 41418000, "concept": "us-gaap:Liabilities", "currency": "USD"} | 2025-06-30 | sec_edgar |
| total_liabilities | {"amount": 40864000, "concept": "us-gaap:Liabilities", "currency": "USD"} | 2024-12-31 | sec_edgar |
| total_liabilities | {"amount": 36005000, "concept": "us-gaap:Liabilities", "currency": "USD"} | 2023-12-31 | sec_edgar |
| total_liabilities_and_equity | {"amount": 41418000, "concept": "us-gaap:LiabilitiesAndStockholdersEquity", "currency": "U | 2025-12-31 | sec_edgar |
| total_liabilities_and_equity | {"amount": 52584000, "concept": "us-gaap:LiabilitiesAndStockholdersEquity", "currency": "U | 2025-06-30 | sec_edgar |
| total_liabilities_and_equity | {"amount": 45775000, "concept": "us-gaap:LiabilitiesAndStockholdersEquity", "currency": "U | 2024-12-31 | sec_edgar |
| total_liabilities_and_equity | {"amount": 39056000, "concept": "us-gaap:LiabilitiesAndStockholdersEquity", "currency": "U | 2023-12-31 | sec_edgar |
| xbrl:AccountsAndOtherReceivablesNetCurrent | {"amount": 13142000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AccountsAndOtherReceivablesNetCurrent | {"amount": 16218000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AccountsPayableAndAccruedLiabilitiesCurrent | {"amount": 5054000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AccountsPayableAndAccruedLiabilitiesCurrent | {"amount": 5220000, "currency": "USD"} | 2025-06-30 | sec_edgar |
| xbrl:AccountsPayableAndAccruedLiabilitiesCurrent | {"amount": 4924000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AccountsPayableAndAccruedLiabilitiesCurrent | {"amount": 4649000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:AccountsReceivableNet | {"amount": 10565000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AccountsReceivableNet | {"amount": 13579000, "currency": "USD"} | 2025-06-30 | sec_edgar |
| xbrl:AccountsReceivableNet | {"amount": 14553000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AccountsReceivableNet | {"amount": 14550000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:AccountsReceivableNetCurrent | {"amount": 12395000, "currency": "USD"} | 2025-06-30 | sec_edgar |