Organization record
ORIENTAL RISE 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": 762000, "concept": "us-gaap:AccountsReceivableNetCurrent", "currency": "USD"} | 2025-12-31 | sec_edgar |
| accounts_receivable | {"amount": 681000, "concept": "us-gaap:AccountsReceivableNetCurrent", "currency": "USD"} | 2024-12-31 | sec_edgar |
| accounts_receivable | {"amount": 936000, "concept": "us-gaap:AccountsReceivableNetCurrent", "currency": "USD"} | 2023-12-31 | sec_edgar |
| accounts_receivable | {"amount": 859000, "concept": "us-gaap:AccountsReceivableNetCurrent", "currency": "USD"} | 2022-12-31 | sec_edgar |
| capex | {"amount": 2397000, "concept": "us-gaap:PaymentsToAcquirePropertyPlantAndEquipment", "curr | 2025-12-31 | sec_edgar |
| capex | {"amount": 258000, "concept": "us-gaap:PaymentsToAcquirePropertyPlantAndEquipment", "curre | 2024-12-31 | sec_edgar |
| capex | {"amount": 1763000, "concept": "us-gaap:PaymentsToAcquirePropertyPlantAndEquipment", "curr | 2023-12-31 | sec_edgar |
| capex | {"amount": 2000, "concept": "us-gaap:PaymentsToAcquirePropertyPlantAndEquipment", "currenc | 2022-12-31 | sec_edgar |
| cash_and_equivalents | {"amount": 48412000, "concept": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "currency | 2025-12-31 | sec_edgar |
| cash_and_equivalents | {"amount": 43015000, "concept": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "currency | 2024-12-31 | sec_edgar |
| cash_and_equivalents | {"amount": 36711000, "concept": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "currency | 2023-12-31 | sec_edgar |
| cash_and_equivalents | {"amount": 25739000, "concept": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "currency | 2022-12-31 | sec_edgar |
| cash_and_restricted_cash | {"amount": 48412000, "concept": "us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCas | 2025-12-31 | sec_edgar |
| cash_and_restricted_cash | {"amount": 43015000, "concept": "us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCas | 2024-12-31 | sec_edgar |
| cash_and_restricted_cash | {"amount": 34166000, "concept": "us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCas | 2023-12-31 | sec_edgar |
| cash_and_restricted_cash | {"amount": 23174000, "concept": "us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCas | 2022-12-31 | sec_edgar |
| cash_and_restricted_cash | {"amount": 10793000, "concept": "us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCas | 2021-12-31 | sec_edgar |
| cashflow_financing | {"amount": 6642000, "concept": "us-gaap:NetCashProvidedByUsedInFinancingActivities", "curr | 2025-12-31 | sec_edgar |
| cashflow_financing | {"amount": 7079000, "concept": "us-gaap:NetCashProvidedByUsedInFinancingActivities", "curr | 2024-12-31 | sec_edgar |
| cashflow_financing | {"amount": 750000, "concept": "us-gaap:NetCashProvidedByUsedInFinancingActivities", "curre | 2023-12-31 | sec_edgar |
| cashflow_financing | {"amount": 384000, "concept": "us-gaap:NetCashProvidedByUsedInFinancingActivities", "curre | 2022-12-31 | sec_edgar |
| cashflow_investing | {"amount": -2397000, "concept": "us-gaap:NetCashProvidedByUsedInInvestingActivities", "cur | 2025-12-31 | sec_edgar |
| cashflow_investing | {"amount": -258000, "concept": "us-gaap:NetCashProvidedByUsedInInvestingActivities", "curr | 2024-12-31 | sec_edgar |
| cashflow_investing | {"amount": -1763000, "concept": "us-gaap:NetCashProvidedByUsedInInvestingActivities", "cur | 2023-12-31 | sec_edgar |
| cashflow_investing | {"amount": 63000, "concept": "us-gaap:NetCashProvidedByUsedInInvestingActivities", "curren | 2022-12-31 | sec_edgar |
| cashflow_operating | {"amount": -583000, "concept": "us-gaap:NetCashProvidedByUsedInOperatingActivities", "curr | 2025-12-31 | sec_edgar |
| cashflow_operating | {"amount": 3150000, "concept": "us-gaap:NetCashProvidedByUsedInOperatingActivities", "curr | 2024-12-31 | sec_edgar |
| cashflow_operating | {"amount": 12551000, "concept": "us-gaap:NetCashProvidedByUsedInOperatingActivities", "cur | 2023-12-31 | sec_edgar |
| cashflow_operating | {"amount": 13578000, "concept": "us-gaap:NetCashProvidedByUsedInOperatingActivities", "cur | 2022-12-31 | sec_edgar |
| common_shares_issued | {"unit": "shares", "value": 4206788, "concept": "us-gaap:CommonStockSharesIssued"} | 2025-12-31 | sec_edgar |
| common_shares_issued | {"unit": "shares", "value": 1100625, "concept": "us-gaap:CommonStockSharesIssued"} | 2024-12-31 | sec_edgar |
| common_shares_issued | {"unit": "shares", "value": 20000000, "concept": "us-gaap:CommonStockSharesIssued"} | 2023-12-31 | sec_edgar |
| common_shares_issued | {"unit": "shares", "value": 12000000, "concept": "us-gaap:CommonStockSharesIssued"} | 2022-12-31 | sec_edgar |
| common_shares_outstanding | {"unit": "shares", "value": 4206788, "concept": "us-gaap:CommonStockSharesOutstanding"} | 2025-12-31 | sec_edgar |
| common_shares_outstanding | {"unit": "shares", "value": 1100625, "concept": "us-gaap:CommonStockSharesOutstanding"} | 2024-12-31 | sec_edgar |
| common_shares_outstanding | {"unit": "shares", "value": 20000000, "concept": "us-gaap:CommonStockSharesOutstanding"} | 2023-12-31 | sec_edgar |
| common_shares_outstanding | {"unit": "shares", "value": 12000000, "concept": "us-gaap:CommonStockSharesOutstanding"} | 2022-12-31 | sec_edgar |
| cost_of_revenue | {"amount": 10905000, "concept": "us-gaap:CostOfRevenue", "currency": "USD"} | 2025-12-31 | sec_edgar |
| cost_of_revenue | {"amount": 11084000, "concept": "us-gaap:CostOfRevenue", "currency": "USD"} | 2024-12-31 | sec_edgar |
| cost_of_revenue | {"amount": 11338000, "concept": "us-gaap:CostOfRevenue", "currency": "USD"} | 2023-12-31 | sec_edgar |
| cost_of_revenue | {"amount": 11656000, "concept": "us-gaap:CostOfRevenue", "currency": "USD"} | 2022-12-31 | sec_edgar |
| current_assets | {"amount": 52140000, "concept": "us-gaap:AssetsCurrent", "currency": "USD"} | 2025-12-31 | sec_edgar |
| current_assets | {"amount": 45566000, "concept": "us-gaap:AssetsCurrent", "currency": "USD"} | 2024-12-31 | sec_edgar |
| current_assets | {"amount": 39671000, "concept": "us-gaap:AssetsCurrent", "currency": "USD"} | 2023-12-31 | sec_edgar |
| current_assets | {"amount": 28551000, "concept": "us-gaap:AssetsCurrent", "currency": "USD"} | 2022-12-31 | sec_edgar |
| current_liabilities | {"amount": 2615000, "concept": "us-gaap:LiabilitiesCurrent", "currency": "USD"} | 2025-12-31 | sec_edgar |
| current_liabilities | {"amount": 1837000, "concept": "us-gaap:LiabilitiesCurrent", "currency": "USD"} | 2024-12-31 | sec_edgar |
| current_liabilities | {"amount": 4478000, "concept": "us-gaap:LiabilitiesCurrent", "currency": "USD"} | 2023-12-31 | sec_edgar |
| current_liabilities | {"amount": 3391000, "concept": "us-gaap:LiabilitiesCurrent", "currency": "USD"} | 2022-12-31 | sec_edgar |
| dei:EntityCommonStockSharesOutstanding | {"unit": "shares", "value": 4206788} | 2025-12-31 | sec_edgar |
| dei:EntityCommonStockSharesOutstanding | {"unit": "shares", "value": 22012500} | 2024-12-31 | sec_edgar |
| dei:EntityCommonStockSharesOutstanding | {"unit": "shares", "value": 20000000} | 2023-12-31 | sec_edgar |
| eps_basic | {"per": "shares", "amount": 0.34, "concept": "us-gaap:EarningsPerShareBasic", "currency": | 2025-12-31 | sec_edgar |
| eps_basic | {"per": "shares", "amount": 3.36, "concept": "us-gaap:EarningsPerShareBasic", "currency": | 2024-12-31 | sec_edgar |
| eps_basic | {"per": "shares", "amount": 19.17, "concept": "us-gaap:EarningsPerShareBasic", "currency": | 2023-12-31 | sec_edgar |
| eps_basic | {"per": "shares", "amount": 0.99, "concept": "us-gaap:EarningsPerShareBasic", "currency": | 2022-12-31 | sec_edgar |
| eps_diluted | {"per": "shares", "amount": 3.36, "concept": "us-gaap:EarningsPerShareDiluted", "currency" | 2024-12-31 | sec_edgar |
| eps_diluted | {"per": "shares", "amount": 19.17, "concept": "us-gaap:EarningsPerShareDiluted", "currency | 2023-12-31 | sec_edgar |
| eps_diluted | {"per": "shares", "amount": 0.99, "concept": "us-gaap:EarningsPerShareDiluted", "currency" | 2022-12-31 | sec_edgar |
| gross_profit | {"amount": 1314000, "concept": "us-gaap:GrossProfit", "currency": "USD"} | 2025-12-31 | sec_edgar |
| gross_profit | {"amount": 3930000, "concept": "us-gaap:GrossProfit", "currency": "USD"} | 2024-12-31 | sec_edgar |
| gross_profit | {"amount": 12784000, "concept": "us-gaap:GrossProfit", "currency": "USD"} | 2023-12-31 | sec_edgar |
| gross_profit | {"amount": 12650000, "concept": "us-gaap:GrossProfit", "currency": "USD"} | 2022-12-31 | sec_edgar |
| income_tax_expense | {"amount": 182000, "concept": "us-gaap:IncomeTaxExpenseBenefit", "currency": "USD"} | 2025-12-31 | sec_edgar |
| income_tax_expense | {"amount": -85000, "concept": "us-gaap:IncomeTaxExpenseBenefit", "currency": "USD"} | 2024-12-31 | sec_edgar |
| income_tax_expense | {"amount": -118000, "concept": "us-gaap:IncomeTaxExpenseBenefit", "currency": "USD"} | 2023-12-31 | sec_edgar |
| income_tax_expense | {"amount": 88000, "concept": "us-gaap:IncomeTaxExpenseBenefit", "currency": "USD"} | 2022-12-31 | sec_edgar |
| industry_sic | {"code": "0100", "scheme": "SIC", "description": "Agricultural Production-Crops"} | sec_edgar | |
| inventory | {"amount": 2279000, "concept": "us-gaap:InventoryNet", "currency": "USD"} | 2025-12-31 | sec_edgar |
| inventory | {"amount": 1869000, "concept": "us-gaap:InventoryNet", "currency": "USD"} | 2024-12-31 | sec_edgar |
| inventory | {"amount": 2014000, "concept": "us-gaap:InventoryNet", "currency": "USD"} | 2023-12-31 | sec_edgar |
| inventory | {"amount": 1948000, "concept": "us-gaap:InventoryNet", "currency": "USD"} | 2022-12-31 | sec_edgar |
| net_income | {"amount": 681000, "concept": "us-gaap:NetIncomeLoss", "currency": "USD"} | 2025-12-31 | sec_edgar |
| net_income | {"amount": 2088000, "concept": "us-gaap:NetIncomeLoss", "currency": "USD"} | 2024-12-31 | sec_edgar |
| net_income | {"amount": 11501000, "concept": "us-gaap:NetIncomeLoss", "currency": "USD"} | 2023-12-31 | sec_edgar |
| net_income | {"amount": 11853000, "concept": "us-gaap:NetIncomeLoss", "currency": "USD"} | 2022-12-31 | sec_edgar |
| noncurrent_assets | {"amount": 29005000, "concept": "us-gaap:AssetsNoncurrent", "currency": "USD"} | 2025-12-31 | sec_edgar |
| noncurrent_assets | {"amount": 26554000, "concept": "us-gaap:AssetsNoncurrent", "currency": "USD"} | 2024-12-31 | sec_edgar |
| noncurrent_assets | {"amount": 28049000, "concept": "us-gaap:AssetsNoncurrent", "currency": "USD"} | 2023-12-31 | sec_edgar |
| noncurrent_assets | {"amount": 27692000, "concept": "us-gaap:AssetsNoncurrent", "currency": "USD"} | 2022-12-31 | sec_edgar |
| noncurrent_liabilities | {"amount": 168000, "concept": "us-gaap:LiabilitiesNoncurrent", "currency": "USD"} | 2025-12-31 | sec_edgar |
| noncurrent_liabilities | {"amount": 179000, "concept": "us-gaap:LiabilitiesNoncurrent", "currency": "USD"} | 2024-12-31 | sec_edgar |
| noncurrent_liabilities | {"amount": 200000, "concept": "us-gaap:LiabilitiesNoncurrent", "currency": "USD"} | 2023-12-31 | sec_edgar |
| noncurrent_liabilities | {"amount": 159000, "concept": "us-gaap:LiabilitiesNoncurrent", "currency": "USD"} | 2022-12-31 | sec_edgar |
| operating_expenses | {"amount": 2216000, "concept": "us-gaap:OperatingExpenses", "currency": "USD"} | 2025-12-31 | sec_edgar |
| operating_expenses | {"amount": 1850000, "concept": "us-gaap:OperatingExpenses", "currency": "USD"} | 2024-12-31 | sec_edgar |
| operating_expenses | {"amount": 1378000, "concept": "us-gaap:OperatingExpenses", "currency": "USD"} | 2023-12-31 | sec_edgar |
| operating_expenses | {"amount": 738000, "concept": "us-gaap:OperatingExpenses", "currency": "USD"} | 2022-12-31 | sec_edgar |
| operating_income | {"amount": -902000, "concept": "us-gaap:OperatingIncomeLoss", "currency": "USD"} | 2025-12-31 | sec_edgar |
| operating_income | {"amount": 2080000, "concept": "us-gaap:OperatingIncomeLoss", "currency": "USD"} | 2024-12-31 | sec_edgar |
| operating_income | {"amount": 11406000, "concept": "us-gaap:OperatingIncomeLoss", "currency": "USD"} | 2023-12-31 | sec_edgar |
| operating_income | {"amount": 11912000, "concept": "us-gaap:OperatingIncomeLoss", "currency": "USD"} | 2022-12-31 | sec_edgar |
| operating_lease_liability | {"amount": 196000, "concept": "us-gaap:OperatingLeaseLiability", "currency": "USD"} | 2026-07-12 | sec_edgar |
| operating_lease_liability | {"amount": 216000, "concept": "us-gaap:OperatingLeaseLiability", "currency": "USD"} | 2025-07-11 | sec_edgar |
| operating_lease_liability | {"amount": 170000, "concept": "us-gaap:OperatingLeaseLiability", "currency": "USD"} | 2022-12-31 | sec_edgar |
| ppe_net | {"amount": 25771000, "concept": "us-gaap:PropertyPlantAndEquipmentNet", "currency": "USD"} | 2025-12-31 | sec_edgar |
| ppe_net | {"amount": 25691000, "concept": "us-gaap:PropertyPlantAndEquipmentNet", "currency": "USD"} | 2024-12-31 | sec_edgar |
| ppe_net | {"amount": 27375000, "concept": "us-gaap:PropertyPlantAndEquipmentNet", "currency": "USD"} | 2023-12-31 | sec_edgar |
| ppe_net | {"amount": 20397000, "concept": "us-gaap:PropertyPlantAndEquipmentNet", "currency": "USD"} | 2022-12-31 | sec_edgar |
| retained_earnings | {"amount": 65388000, "concept": "us-gaap:RetainedEarningsAccumulatedDeficit", "currency": | 2025-12-31 | sec_edgar |
| retained_earnings | {"amount": 64707000, "concept": "us-gaap:RetainedEarningsAccumulatedDeficit", "currency": | 2024-12-31 | sec_edgar |
| retained_earnings | {"amount": 62619000, "concept": "us-gaap:RetainedEarningsAccumulatedDeficit", "currency": | 2023-12-31 | sec_edgar |
| retained_earnings | {"amount": 51118000, "concept": "us-gaap:RetainedEarningsAccumulatedDeficit", "currency": | 2022-12-31 | sec_edgar |
| revenue | {"amount": 12219000, "concept": "us-gaap:Revenues", "currency": "USD"} | 2025-12-31 | sec_edgar |
| revenue | {"amount": 15014000, "concept": "us-gaap:Revenues", "currency": "USD"} | 2024-12-31 | sec_edgar |
| revenue | {"amount": 24122000, "concept": "us-gaap:Revenues", "currency": "USD"} | 2023-12-31 | sec_edgar |
| revenue | {"amount": 24306000, "concept": "us-gaap:Revenues", "currency": "USD"} | 2022-12-31 | sec_edgar |
| sga_expense | {"amount": 2066000, "concept": "us-gaap:GeneralAndAdministrativeExpense", "currency": "USD | 2025-12-31 | sec_edgar |
| sga_expense | {"amount": 1412000, "concept": "us-gaap:GeneralAndAdministrativeExpense", "currency": "USD | 2024-12-31 | sec_edgar |
| sga_expense | {"amount": 1305000, "concept": "us-gaap:GeneralAndAdministrativeExpense", "currency": "USD | 2023-12-31 | sec_edgar |
| sga_expense | {"amount": 668000, "concept": "us-gaap:GeneralAndAdministrativeExpense", "currency": "USD" | 2022-12-31 | sec_edgar |
| shares_wavg_basic | {"unit": "shares", "value": 2006185, "concept": "us-gaap:WeightedAverageNumberOfSharesOuts | 2025-12-31 | sec_edgar |
| shares_wavg_basic | {"unit": "shares", "value": 620532, "concept": "us-gaap:WeightedAverageNumberOfSharesOutst | 2024-12-31 | sec_edgar |
| shares_wavg_basic | {"unit": "shares", "value": 600000, "concept": "us-gaap:WeightedAverageNumberOfSharesOutst | 2023-12-31 | sec_edgar |
| shares_wavg_basic | {"unit": "shares", "value": 12000000, "concept": "us-gaap:WeightedAverageNumberOfSharesOut | 2022-12-31 | sec_edgar |
| shares_wavg_diluted | {"unit": "shares", "value": 2006185, "concept": "us-gaap:WeightedAverageNumberOfDilutedSha | 2025-12-31 | sec_edgar |
| shares_wavg_diluted | {"unit": "shares", "value": 620532, "concept": "us-gaap:WeightedAverageNumberOfDilutedShar | 2024-12-31 | sec_edgar |
| shares_wavg_diluted | {"unit": "shares", "value": 600000, "concept": "us-gaap:WeightedAverageNumberOfDilutedShar | 2023-12-31 | sec_edgar |
| shares_wavg_diluted | {"unit": "shares", "value": 12000000, "concept": "us-gaap:WeightedAverageNumberOfDilutedSh | 2022-12-31 | sec_edgar |
| stockholders_equity | {"amount": 78362000, "concept": "us-gaap:StockholdersEquity", "currency": "USD"} | 2025-12-31 | sec_edgar |
| stockholders_equity | {"amount": 70104000, "concept": "us-gaap:StockholdersEquity", "currency": "USD"} | 2024-12-31 | sec_edgar |
| stockholders_equity | {"amount": 63042000, "concept": "us-gaap:StockholdersEquity", "currency": "USD"} | 2023-12-31 | sec_edgar |
| stockholders_equity | {"amount": 52693000, "concept": "us-gaap:StockholdersEquity", "currency": "USD"} | 2022-12-31 | sec_edgar |
| stockholders_equity | {"amount": 45395000, "concept": "us-gaap:StockholdersEquity", "currency": "USD"} | 2021-12-31 | sec_edgar |
| total_assets | {"amount": 81145000, "concept": "us-gaap:Assets", "currency": "USD"} | 2025-12-31 | sec_edgar |
| total_assets | {"amount": 72120000, "concept": "us-gaap:Assets", "currency": "USD"} | 2024-12-31 | sec_edgar |
| total_assets | {"amount": 67720000, "concept": "us-gaap:Assets", "currency": "USD"} | 2023-12-31 | sec_edgar |
| total_assets | {"amount": 56243000, "concept": "us-gaap:Assets", "currency": "USD"} | 2022-12-31 | sec_edgar |
| total_liabilities | {"amount": 2783000, "concept": "us-gaap:Liabilities", "currency": "USD"} | 2025-12-31 | sec_edgar |
| total_liabilities | {"amount": 2016000, "concept": "us-gaap:Liabilities", "currency": "USD"} | 2024-12-31 | sec_edgar |
| total_liabilities | {"amount": 4678000, "concept": "us-gaap:Liabilities", "currency": "USD"} | 2023-12-31 | sec_edgar |
| total_liabilities | {"amount": 3550000, "concept": "us-gaap:Liabilities", "currency": "USD"} | 2022-12-31 | sec_edgar |
| total_liabilities_and_equity | {"amount": 81145000, "concept": "us-gaap:LiabilitiesAndStockholdersEquity", "currency": "U | 2025-12-31 | sec_edgar |
| total_liabilities_and_equity | {"amount": 72120000, "concept": "us-gaap:LiabilitiesAndStockholdersEquity", "currency": "U | 2024-12-31 | sec_edgar |
| total_liabilities_and_equity | {"amount": 67720000, "concept": "us-gaap:LiabilitiesAndStockholdersEquity", "currency": "U | 2023-12-31 | sec_edgar |
| total_liabilities_and_equity | {"amount": 56243000, "concept": "us-gaap:LiabilitiesAndStockholdersEquity", "currency": "U | 2022-12-31 | sec_edgar |
| xbrl:AccountsPayableAndOtherAccruedLiabilitiesCurrent | {"amount": 529000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:AccountsPayableAndOtherAccruedLiabilitiesCurrent | {"amount": 105000, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:AccountsPayableTradeCurrent | {"amount": 12000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AccountsPayableTradeCurrent | {"amount": 28000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AccountsReceivableNetCurrent | {"amount": 762000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AccountsReceivableNetCurrent | {"amount": 681000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AccountsReceivableNetCurrent | {"amount": 936000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:AccountsReceivableNetCurrent | {"amount": 859000, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:AccrualForTaxesOtherThanIncomeTaxesCurrent | {"amount": 45000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AccrualForTaxesOtherThanIncomeTaxesCurrent | {"amount": 21000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:AccruedSalariesCurrent | {"amount": 154000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AccruedSalariesCurrent | {"amount": 110000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AccruedSalariesCurrent | {"amount": 23000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:AccruedSalariesCurrent | {"amount": 19000, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment | {"amount": 7858000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment | {"amount": 6376000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment | {"amount": 5452000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:AccumulatedOtherComprehensiveIncomeLossNetOfTax | {"amount": -2729000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AccumulatedOtherComprehensiveIncomeLossNetOfTax | {"amount": -5695000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AccumulatedOtherComprehensiveIncomeLossNetOfTax | {"amount": -3783000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:AccumulatedOtherComprehensiveIncomeLossNetOfTax | {"amount": -2631000, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:Assets | {"amount": 81145000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:Assets | {"amount": 72120000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:Assets | {"amount": 67720000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:Assets | {"amount": 56243000, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:AssetsCurrent | {"amount": 52140000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AssetsCurrent | {"amount": 45566000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AssetsCurrent | {"amount": 39671000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:AssetsCurrent | {"amount": 28551000, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:AssetsNoncurrent | {"amount": 29005000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AssetsNoncurrent | {"amount": 26554000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AssetsNoncurrent | {"amount": 28049000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:AssetsNoncurrent | {"amount": 27692000, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:BankOverdrafts | {"amount": 2545000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:BankOverdrafts | {"amount": 2565000, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:Cash | {"amount": 2000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:Cash | {"amount": 7000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:Cash | {"amount": 2000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:Cash | {"amount": 5000, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:CashAndCashEquivalentsAtCarryingValue | {"amount": 48412000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:CashAndCashEquivalentsAtCarryingValue | {"amount": 43015000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:CashAndCashEquivalentsAtCarryingValue | {"amount": 36711000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:CashAndCashEquivalentsAtCarryingValue | {"amount": 25739000, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:CashAndDueFromBanks | {"amount": 48410000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:CashAndDueFromBanks | {"amount": 43008000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:CashAndDueFromBanks | {"amount": 36709000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents | {"amount": 48412000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents | {"amount": 43015000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents | {"amount": 34166000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents | {"amount": 23174000, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents | {"amount": 10793000, "currency": "USD"} | 2021-12-31 | sec_edgar |
| xbrl:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect | {"amount": 3662000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect | {"amount": 9971000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect | {"amount": 11538000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect | {"amount": 14025000, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1 | {"per": "shares", "amount": 0.4681, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:CommonStockParOrStatedValuePerShare | {"per": "shares", "amount": 0.016, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:CommonStockParOrStatedValuePerShare | {"per": "shares", "amount": 0.016, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:CommonStockParOrStatedValuePerShare | {"per": "shares", "amount": 0.0008, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:CommonStockParOrStatedValuePerShare | {"per": "shares", "amount": 0.001, "currency": "USD"} | 2023-09-27 | sec_edgar |
| xbrl:CommonStockParOrStatedValuePerShare | {"per": "shares", "amount": 0.008, "currency": "HKD"} | 2022-12-31 | sec_edgar |
| xbrl:CommonStockSharesAuthorized | {"unit": "shares", "value": 6125000} | 2025-12-31 | sec_edgar |
| xbrl:CommonStockSharesAuthorized | {"unit": "shares", "value": 6250000} | 2024-12-31 | sec_edgar |
| xbrl:CommonStockSharesAuthorized | {"unit": "shares", "value": 125000000} | 2023-12-31 | sec_edgar |