Organization record
China Automotive Systems, Inc.
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 |
|---|---|---|---|
| capex | {"amount": 37189000, "concept": "us-gaap:PaymentsToAcquirePropertyPlantAndEquipment", "cur | 2025-12-31 | sec_edgar |
| capex | {"amount": 43656000, "concept": "us-gaap:PaymentsToAcquirePropertyPlantAndEquipment", "cur | 2024-12-31 | sec_edgar |
| capex | {"amount": 18235000, "concept": "us-gaap:PaymentsToAcquirePropertyPlantAndEquipment", "cur | 2023-12-31 | sec_edgar |
| cash_and_equivalents | {"amount": 142001000, "concept": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "currenc | 2025-12-31 | sec_edgar |
| cash_and_equivalents | {"amount": 56961000, "concept": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "currency | 2024-12-31 | sec_edgar |
| cash_and_restricted_cash | {"amount": 194281000, "concept": "us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCa | 2025-12-31 | sec_edgar |
| cash_and_restricted_cash | {"amount": 101824000, "concept": "us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCa | 2024-12-31 | sec_edgar |
| cash_and_restricted_cash | {"amount": 155194000, "concept": "us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCa | 2023-12-31 | sec_edgar |
| cash_and_restricted_cash | {"amount": 158951000, "concept": "us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCa | 2022-12-31 | sec_edgar |
| cashflow_financing | {"amount": 11452000, "concept": "us-gaap:NetCashProvidedByUsedInFinancingActivities", "cur | 2025-12-31 | sec_edgar |
| cashflow_financing | {"amount": 17365000, "concept": "us-gaap:NetCashProvidedByUsedInFinancingActivities", "cur | 2024-12-31 | sec_edgar |
| cashflow_financing | {"amount": 6798000, "concept": "us-gaap:NetCashProvidedByUsedInFinancingActivities", "curr | 2023-12-31 | sec_edgar |
| cashflow_investing | {"amount": -31490000, "concept": "us-gaap:NetCashProvidedByUsedInInvestingActivities", "cu | 2025-12-31 | sec_edgar |
| cashflow_investing | {"amount": -77931000, "concept": "us-gaap:NetCashProvidedByUsedInInvestingActivities", "cu | 2024-12-31 | sec_edgar |
| cashflow_investing | {"amount": -28637000, "concept": "us-gaap:NetCashProvidedByUsedInInvestingActivities", "cu | 2023-12-31 | sec_edgar |
| cashflow_operating | {"amount": 111632000, "concept": "us-gaap:NetCashProvidedByUsedInOperatingActivities", "cu | 2025-12-31 | sec_edgar |
| cashflow_operating | {"amount": 9776000, "concept": "us-gaap:NetCashProvidedByUsedInOperatingActivities", "curr | 2024-12-31 | sec_edgar |
| cashflow_operating | {"amount": 19906000, "concept": "us-gaap:NetCashProvidedByUsedInOperatingActivities", "cur | 2023-12-31 | sec_edgar |
| common_shares_issued | {"unit": "shares", "value": 32338302, "concept": "us-gaap:CommonStockSharesIssued"} | 2025-12-31 | sec_edgar |
| common_shares_issued | {"unit": "shares", "value": 32338302, "concept": "us-gaap:CommonStockSharesIssued"} | 2024-12-31 | sec_edgar |
| common_shares_outstanding | {"unit": "shares", "value": 30170702, "concept": "dei:EntityCommonStockSharesOutstanding"} | 2025-12-31 | sec_edgar |
| cost_of_revenue | {"amount": 620273000, "concept": "us-gaap:CostOfGoodsAndServicesSold", "currency": "USD"} | 2025-12-31 | sec_edgar |
| cost_of_revenue | {"amount": 541751000, "concept": "us-gaap:CostOfGoodsAndServicesSold", "currency": "USD"} | 2024-12-31 | sec_edgar |
| cost_of_revenue | {"amount": 472603000, "concept": "us-gaap:CostOfGoodsAndServicesSold", "currency": "USD"} | 2023-12-31 | sec_edgar |
| current_assets | {"amount": 738185000, "concept": "us-gaap:AssetsCurrent", "currency": "USD"} | 2025-12-31 | sec_edgar |
| current_assets | {"amount": 602638000, "concept": "us-gaap:AssetsCurrent", "currency": "USD"} | 2024-12-31 | sec_edgar |
| current_liabilities | {"amount": 541441000, "concept": "us-gaap:LiabilitiesCurrent", "currency": "USD"} | 2025-12-31 | sec_edgar |
| current_liabilities | {"amount": 456482000, "concept": "us-gaap:LiabilitiesCurrent", "currency": "USD"} | 2024-12-31 | sec_edgar |
| debt_current | {"amount": 81341000, "concept": "us-gaap:DebtCurrent", "currency": "USD"} | 2025-12-31 | sec_edgar |
| debt_current | {"amount": 72566000, "concept": "us-gaap:DebtCurrent", "currency": "USD"} | 2024-12-31 | sec_edgar |
| dei:EntityCommonStockSharesOutstanding | {"unit": "shares", "value": 30170702} | 2025-12-31 | sec_edgar |
| depreciation_amortization | {"amount": 14259000, "concept": "us-gaap:DepreciationDepletionAndAmortization", "currency" | 2025-12-31 | sec_edgar |
| depreciation_amortization | {"amount": 20224000, "concept": "us-gaap:DepreciationDepletionAndAmortization", "currency" | 2024-12-31 | sec_edgar |
| depreciation_amortization | {"amount": 18708000, "concept": "us-gaap:DepreciationDepletionAndAmortization", "currency" | 2023-12-31 | sec_edgar |
| dividends_paid | {"amount": 2190000, "concept": "us-gaap:PaymentsOfDividendsCommonStock", "currency": "USD" | 2025-12-31 | sec_edgar |
| dividends_paid | {"amount": 22433000, "concept": "us-gaap:PaymentsOfDividendsCommonStock", "currency": "USD | 2024-12-31 | sec_edgar |
| eps_basic | {"per": "shares", "amount": 1.42, "concept": "us-gaap:EarningsPerShareBasic", "currency": | 2025-12-31 | sec_edgar |
| eps_basic | {"per": "shares", "amount": 0.99, "concept": "us-gaap:EarningsPerShareBasic", "currency": | 2024-12-31 | sec_edgar |
| eps_basic | {"per": "shares", "amount": 1.25, "concept": "us-gaap:EarningsPerShareBasic", "currency": | 2023-12-31 | sec_edgar |
| eps_diluted | {"per": "shares", "amount": 1.42, "concept": "us-gaap:EarningsPerShareDiluted", "currency" | 2025-12-31 | sec_edgar |
| eps_diluted | {"per": "shares", "amount": 0.99, "concept": "us-gaap:EarningsPerShareDiluted", "currency" | 2024-12-31 | sec_edgar |
| eps_diluted | {"per": "shares", "amount": 1.25, "concept": "us-gaap:EarningsPerShareDiluted", "currency" | 2023-12-31 | sec_edgar |
| gross_profit | {"amount": 145463000, "concept": "us-gaap:GrossProfit", "currency": "USD"} | 2025-12-31 | sec_edgar |
| gross_profit | {"amount": 109184000, "concept": "us-gaap:GrossProfit", "currency": "USD"} | 2024-12-31 | sec_edgar |
| gross_profit | {"amount": 103751000, "concept": "us-gaap:GrossProfit", "currency": "USD"} | 2023-12-31 | sec_edgar |
| income_tax_expense | {"amount": 11576000, "concept": "us-gaap:IncomeTaxExpenseBenefit", "currency": "USD"} | 2025-12-31 | sec_edgar |
| income_tax_expense | {"amount": 5892000, "concept": "us-gaap:IncomeTaxExpenseBenefit", "currency": "USD"} | 2024-12-31 | sec_edgar |
| income_tax_expense | {"amount": 5137000, "concept": "us-gaap:IncomeTaxExpenseBenefit", "currency": "USD"} | 2023-12-31 | sec_edgar |
| industry_sic | {"code": "3714", "scheme": "SIC", "description": "Motor Vehicle Parts & Accessories"} | sec_edgar | |
| intangible_assets | {"amount": 3599000, "concept": "us-gaap:IntangibleAssetsNetExcludingGoodwill", "currency": | 2025-12-31 | sec_edgar |
| intangible_assets | {"amount": 3417000, "concept": "us-gaap:IntangibleAssetsNetExcludingGoodwill", "currency": | 2024-12-31 | sec_edgar |
| interest_expense | {"amount": 1702000, "concept": "us-gaap:InterestExpense", "currency": "USD"} | 2025-12-31 | sec_edgar |
| interest_expense | {"amount": 1813000, "concept": "us-gaap:InterestExpense", "currency": "USD"} | 2024-12-31 | sec_edgar |
| interest_expense | {"amount": 1021000, "concept": "us-gaap:InterestExpense", "currency": "USD"} | 2023-12-31 | sec_edgar |
| inventory | {"amount": 124418000, "concept": "us-gaap:InventoryNet", "currency": "USD"} | 2025-12-31 | sec_edgar |
| inventory | {"amount": 112558000, "concept": "us-gaap:InventoryNet", "currency": "USD"} | 2024-12-31 | sec_edgar |
| long_term_debt_current | {"amount": 697000, "concept": "us-gaap:LongTermDebtCurrent", "currency": "USD"} | 2024-12-31 | sec_edgar |
| net_income | {"amount": 42838000, "concept": "us-gaap:NetIncomeLoss", "currency": "USD"} | 2025-12-31 | sec_edgar |
| net_income | {"amount": 29979000, "concept": "us-gaap:NetIncomeLoss", "currency": "USD"} | 2024-12-31 | sec_edgar |
| net_income | {"amount": 37658000, "concept": "us-gaap:NetIncomeLoss", "currency": "USD"} | 2023-12-31 | sec_edgar |
| operating_expenses | {"amount": 95413000, "concept": "us-gaap:OperatingExpenses", "currency": "USD"} | 2025-12-31 | sec_edgar |
| operating_expenses | {"amount": 73232000, "concept": "us-gaap:OperatingExpenses", "currency": "USD"} | 2024-12-31 | sec_edgar |
| operating_expenses | {"amount": 70294000, "concept": "us-gaap:OperatingExpenses", "currency": "USD"} | 2023-12-31 | sec_edgar |
| operating_income | {"amount": 53631000, "concept": "us-gaap:OperatingIncomeLoss", "currency": "USD"} | 2025-12-31 | sec_edgar |
| operating_income | {"amount": 40255000, "concept": "us-gaap:OperatingIncomeLoss", "currency": "USD"} | 2024-12-31 | sec_edgar |
| operating_income | {"amount": 39245000, "concept": "us-gaap:OperatingIncomeLoss", "currency": "USD"} | 2023-12-31 | sec_edgar |
| ppe_net | {"amount": 133548000, "concept": "us-gaap:PropertyPlantAndEquipmentNet", "currency": "USD" | 2025-12-31 | sec_edgar |
| ppe_net | {"amount": 103820000, "concept": "us-gaap:PropertyPlantAndEquipmentNet", "currency": "USD" | 2024-12-31 | sec_edgar |
| pretax_income | {"amount": 61400000, "concept": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTax | 2025-12-31 | sec_edgar |
| pretax_income | {"amount": 44131000, "concept": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTax | 2024-12-31 | sec_edgar |
| pretax_income | {"amount": 48235000, "concept": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTax | 2023-12-31 | sec_edgar |
| profit_loss | {"amount": 51912000, "concept": "us-gaap:ProfitLoss", "currency": "USD"} | 2025-12-31 | sec_edgar |
| profit_loss | {"amount": 37899000, "concept": "us-gaap:ProfitLoss", "currency": "USD"} | 2024-12-31 | sec_edgar |
| profit_loss | {"amount": 42738000, "concept": "us-gaap:ProfitLoss", "currency": "USD"} | 2023-12-31 | sec_edgar |
| revenue | {"amount": 765736000, "concept": "us-gaap:Revenues", "currency": "USD"} | 2025-12-31 | sec_edgar |
| revenue | {"amount": 650935000, "concept": "us-gaap:Revenues", "currency": "USD"} | 2024-12-31 | sec_edgar |
| revenue | {"amount": 576354000, "concept": "us-gaap:Revenues", "currency": "USD"} | 2023-12-31 | sec_edgar |
| rnd_expense | {"amount": 45061000, "concept": "us-gaap:ResearchAndDevelopmentExpense", "currency": "USD" | 2025-12-31 | sec_edgar |
| rnd_expense | {"amount": 27649000, "concept": "us-gaap:ResearchAndDevelopmentExpense", "currency": "USD" | 2024-12-31 | sec_edgar |
| rnd_expense | {"amount": 29181000, "concept": "us-gaap:ResearchAndDevelopmentExpense", "currency": "USD" | 2023-12-31 | sec_edgar |
| sga_expense | {"amount": 29660000, "concept": "us-gaap:SellingGeneralAndAdministrativeExpense", "currenc | 2025-12-31 | sec_edgar |
| sga_expense | {"amount": 27728000, "concept": "us-gaap:SellingGeneralAndAdministrativeExpense", "currenc | 2024-12-31 | sec_edgar |
| sga_expense | {"amount": 25503000, "concept": "us-gaap:SellingGeneralAndAdministrativeExpense", "currenc | 2023-12-31 | sec_edgar |
| share_repurchase | {"amount": 68000, "concept": "us-gaap:PaymentsForRepurchaseOfCommonStock", "currency": "US | 2024-12-31 | sec_edgar |
| shares_wavg_basic | {"unit": "shares", "value": 30170702, "concept": "us-gaap:WeightedAverageNumberOfSharesOut | 2025-12-31 | sec_edgar |
| shares_wavg_basic | {"unit": "shares", "value": 30184513, "concept": "us-gaap:WeightedAverageNumberOfSharesOut | 2024-12-31 | sec_edgar |
| shares_wavg_basic | {"unit": "shares", "value": 30185702, "concept": "us-gaap:WeightedAverageNumberOfSharesOut | 2023-12-31 | sec_edgar |
| shares_wavg_diluted | {"unit": "shares", "value": 30170702, "concept": "us-gaap:WeightedAverageNumberOfDilutedSh | 2025-12-31 | sec_edgar |
| shares_wavg_diluted | {"unit": "shares", "value": 30184513, "concept": "us-gaap:WeightedAverageNumberOfDilutedSh | 2024-12-31 | sec_edgar |
| shares_wavg_diluted | {"unit": "shares", "value": 30189421, "concept": "us-gaap:WeightedAverageNumberOfDilutedSh | 2023-12-31 | sec_edgar |
| short_term_investments | {"amount": 35930000, "concept": "us-gaap:ShortTermInvestments", "currency": "USD"} | 2025-12-31 | sec_edgar |
| short_term_investments | {"amount": 27563000, "concept": "us-gaap:ShortTermInvestments", "currency": "USD"} | 2024-12-31 | sec_edgar |
| stockholders_equity | {"amount": 401339000, "concept": "us-gaap:StockholdersEquity", "currency": "USD"} | 2025-12-31 | sec_edgar |
| stockholders_equity | {"amount": 349569000, "concept": "us-gaap:StockholdersEquity", "currency": "USD"} | 2024-12-31 | sec_edgar |
| stockholders_equity | {"amount": 344464000, "concept": "us-gaap:StockholdersEquity", "currency": "USD"} | 2023-12-31 | sec_edgar |
| total_assets | {"amount": 1001698000, "concept": "us-gaap:Assets", "currency": "USD"} | 2025-12-31 | sec_edgar |
| total_assets | {"amount": 850579000, "concept": "us-gaap:Assets", "currency": "USD"} | 2024-12-31 | sec_edgar |
| total_equity | {"amount": 450702000, "concept": "us-gaap:StockholdersEquityIncludingPortionAttributableTo | 2025-12-31 | sec_edgar |
| total_equity | {"amount": 389789000, "concept": "us-gaap:StockholdersEquityIncludingPortionAttributableTo | 2024-12-31 | sec_edgar |
| total_equity | {"amount": 367809000, "concept": "us-gaap:StockholdersEquityIncludingPortionAttributableTo | 2023-12-31 | sec_edgar |
| total_liabilities | {"amount": 550996000, "concept": "us-gaap:Liabilities", "currency": "USD"} | 2025-12-31 | sec_edgar |
| total_liabilities | {"amount": 460790000, "concept": "us-gaap:Liabilities", "currency": "USD"} | 2024-12-31 | sec_edgar |
| total_liabilities_and_equity | {"amount": 1001698000, "concept": "us-gaap:LiabilitiesAndStockholdersEquity", "currency": | 2025-12-31 | sec_edgar |
| total_liabilities_and_equity | {"amount": 850579000, "concept": "us-gaap:LiabilitiesAndStockholdersEquity", "currency": " | 2024-12-31 | sec_edgar |
| treasury_stock_value | {"amount": 7763000, "concept": "us-gaap:TreasuryStockValue", "currency": "USD"} | 2025-12-31 | sec_edgar |
| treasury_stock_value | {"amount": 7763000, "concept": "us-gaap:TreasuryStockValue", "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AccountsAndNotesReceivableNet | {"amount": 361779000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AccountsAndNotesReceivableNet | {"amount": 343499000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AccruedIncomeTaxesCurrent | {"amount": 3627000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AccruedIncomeTaxesCurrent | {"amount": 1944000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AccruedLiabilitiesCurrent | {"amount": 76138000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AccruedLiabilitiesCurrent | {"amount": 59238000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment | {"amount": 228520000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment | {"amount": 227850000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AccumulatedOtherComprehensiveIncomeLossNetOfTax | {"amount": -6726000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AccumulatedOtherComprehensiveIncomeLossNetOfTax | {"amount": -14780000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AdditionalPaidInCapitalCommonStock | {"amount": 70505000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AdditionalPaidInCapitalCommonStock | {"amount": 69656000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AdvancesOnInventoryPurchases | {"amount": 2093000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AdvancesOnInventoryPurchases | {"amount": 2804000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AllowanceForDoubtfulAccountsReceivable | {"amount": 8176000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AllowanceForDoubtfulAccountsReceivable | {"amount": 13246000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AllowanceForDoubtfulAccountsReceivable | {"amount": 17003000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:AllowanceForDoubtfulAccountsReceivable | {"amount": 16122000, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease | {"amount": 206000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease | {"amount": -278000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease | {"amount": -248000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:AllowanceForDoubtfulAccountsReceivableRecoveries | {"amount": 1813000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AllowanceForDoubtfulAccountsReceivableRecoveries | {"amount": 1213000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AllowanceForDoubtfulAccountsReceivableRecoveries | {"amount": 463000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:AllowanceForDoubtfulAccountsReceivableWriteOffs | {"amount": 4586000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AllowanceForDoubtfulAccountsReceivableWriteOffs | {"amount": 2544000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AllowanceForDoubtfulAccountsReceivableWriteOffs | {"amount": 410000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:AmortizationOfIntangibleAssets | {"amount": 1200000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AmortizationOfIntangibleAssets | {"amount": 1100000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AmortizationOfIntangibleAssets | {"amount": 1000000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:Assets | {"amount": 1001698000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:Assets | {"amount": 850579000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AssetsCurrent | {"amount": 738185000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AssetsCurrent | {"amount": 602638000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:CapitalizedComputerSoftwareGross | {"amount": 8424000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:CapitalizedComputerSoftwareGross | {"amount": 7215000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:CashAndCashEquivalentsAtCarryingValue | {"amount": 142001000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:CashAndCashEquivalentsAtCarryingValue | {"amount": 56961000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents | {"amount": 194281000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents | {"amount": 101824000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents | {"amount": 155194000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents | {"amount": 158951000, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect | {"amount": 92457000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect | {"amount": -53370000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect | {"amount": -3757000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:CommonStockParOrStatedValuePerShare | {"per": "shares", "amount": 0.001, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:CommonStockParOrStatedValuePerShare | {"per": "shares", "amount": 0.0001, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:CommonStockSharesAuthorized | {"unit": "shares", "value": 50000000} | 2025-12-31 | sec_edgar |
| xbrl:CommonStockSharesAuthorized | {"unit": "shares", "value": 80000000} | 2024-12-31 | sec_edgar |
| xbrl:CommonStockSharesIssued | {"unit": "shares", "value": 32338302} | 2025-12-31 | sec_edgar |
| xbrl:CommonStockSharesIssued | {"unit": "shares", "value": 32338302} | 2024-12-31 | sec_edgar |
| xbrl:CommonStockValue | {"amount": 32000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:CommonStockValue | {"amount": 3000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:ComprehensiveIncomeNetOfTax | {"amount": 50892000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:ComprehensiveIncomeNetOfTax | {"amount": 23457000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:ComprehensiveIncomeNetOfTax | {"amount": 32813000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:ComprehensiveIncomeNetOfTaxAttributableToNoncontrollingInterest | {"amount": 10220000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:ComprehensiveIncomeNetOfTaxAttributableToNoncontrollingInterest | {"amount": 7296000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:ComprehensiveIncomeNetOfTaxAttributableToNoncontrollingInterest | {"amount": 4704000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest | {"amount": 61112000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest | {"amount": 30776000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest | {"amount": 37547000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:ContractualObligation | {"amount": 37130000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:ContractualObligationDueInNextTwelveMonths | {"amount": 32738000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:ContractualObligationDueInSecondYear | {"amount": 4392000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:ContractWithCustomerRefundLiabilityCurrent | {"amount": 5504000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:ContractWithCustomerRefundLiabilityCurrent | {"amount": 4447000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:CostOfGoodsAndServicesSold | {"amount": 620273000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:CostOfGoodsAndServicesSold | {"amount": 541751000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:CostOfGoodsAndServicesSold | {"amount": 472603000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:DebtCurrent | {"amount": 81341000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:DebtCurrent | {"amount": 72566000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:DebtLongtermAndShorttermCombinedAmount | {"amount": 87032000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:DebtLongtermAndShorttermCombinedAmount | {"amount": 72711000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:DeferredIncomeTaxAssetsNet | {"amount": 16510000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:DeferredIncomeTaxAssetsNet | {"amount": 14748000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:DeferredIncomeTaxExpenseBenefit | {"amount": -1444000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:DeferredIncomeTaxExpenseBenefit | {"amount": -6036000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:DeferredIncomeTaxExpenseBenefit | {"amount": -1319000, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:DeferredIncomeTaxLiabilities | {"amount": 7618000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:DeferredIncomeTaxLiabilities | {"amount": 6594000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:DeferredIncomeTaxLiabilitiesNet | {"amount": 3864000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:DeferredIncomeTaxLiabilitiesNet | {"amount": 3885000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:DeferredTaxAssetsGross | {"amount": 33141000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:DeferredTaxAssetsGross | {"amount": 29135000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:DeferredTaxAssetsNet | {"amount": 20264000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:DeferredTaxAssetsNet | {"amount": 17457000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:DeferredTaxAssetsOperatingLossCarryforwardsForeign | {"amount": 7049000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:DeferredTaxAssetsOperatingLossCarryforwardsForeign | {"amount": 5938000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:DeferredTaxAssetsPropertyPlantAndEquipment | {"amount": 6235000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:DeferredTaxAssetsPropertyPlantAndEquipment | {"amount": 7183000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:DeferredTaxAssetsTaxDeferredExpenseOther | {"amount": 3733000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:DeferredTaxAssetsTaxDeferredExpenseOther | {"amount": 3210000, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsOther | {"amount": 3896000, "currency": "USD"} | 2025-12-31 | sec_edgar |