CIK 0001982708
| Fakt | Wert | Zeit | Quelle |
|---|---|---|---|
| accounts_payable | {"amount": 0, "concept": "us-gaap:AccountsPayableCurrent", "currency": "USD"} | 2025-12-31 | sec_edgar |
| accounts_payable | {"amount": 1625255, "concept": "us-gaap:AccountsPayableCurrent", "currency": "USD"} | 2024-12-31 | sec_edgar |
| accounts_payable | {"amount": 827151, "concept": "us-gaap:AccountsPayableCurrent", "currency": "USD"} | 2023-12-31 | sec_edgar |
| accounts_receivable | {"amount": 3655964, "concept": "us-gaap:AccountsReceivableNetCurrent", "currency": "USD"} | 2025-12-31 | sec_edgar |
| accounts_receivable | {"amount": 1064794, "concept": "us-gaap:AccountsReceivableNetCurrent", "currency": "USD"} | 2024-12-31 | sec_edgar |
| accounts_receivable | {"amount": 1884960, "concept": "us-gaap:AccountsReceivableNetCurrent", "currency": "USD"} | 2023-12-31 | sec_edgar |
| cash_and_equivalents | {"amount": 7766738, "concept": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "currency" | 2025-12-31 | sec_edgar |
| cash_and_equivalents | {"amount": 11760859, "concept": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "currency | 2024-12-31 | sec_edgar |
| cash_and_equivalents | {"amount": 9687976, "concept": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "currency" | 2023-12-31 | sec_edgar |
| cash_and_restricted_cash | {"amount": 7766738, "concept": "us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCash | 2025-12-31 | sec_edgar |
| cash_and_restricted_cash | {"amount": 11760859, "concept": "us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCas | 2024-12-31 | sec_edgar |
| cash_and_restricted_cash | {"amount": 9687976, "concept": "us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCash | 2023-12-31 | sec_edgar |
| cash_and_restricted_cash | {"amount": 7102271, "concept": "us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCash | 2022-12-31 | sec_edgar |
| cash_and_restricted_cash | {"amount": 4181325, "concept": "us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCash | 2021-12-31 | sec_edgar |
| cashflow_financing | {"amount": 6947450, "concept": "us-gaap:NetCashProvidedByUsedInFinancingActivities", "curr | 2025-12-31 | sec_edgar |
| cashflow_financing | {"amount": -344605, "concept": "us-gaap:NetCashProvidedByUsedInFinancingActivities", "curr | 2024-12-31 | sec_edgar |
| cashflow_financing | {"amount": -42835, "concept": "us-gaap:NetCashProvidedByUsedInFinancingActivities", "curre | 2023-12-31 | sec_edgar |
| cashflow_investing | {"amount": -4202496, "concept": "us-gaap:NetCashProvidedByUsedInInvestingActivities", "cur | 2025-12-31 | sec_edgar |
| cashflow_investing | {"amount": 337101, "concept": "us-gaap:NetCashProvidedByUsedInInvestingActivities", "curre | 2024-12-31 | sec_edgar |
| cashflow_investing | {"amount": 1730173, "concept": "us-gaap:NetCashProvidedByUsedInInvestingActivities", "curr | 2023-12-31 | sec_edgar |
| cashflow_investing | {"amount": -1527900, "concept": "us-gaap:NetCashProvidedByUsedInInvestingActivities", "cur | 2022-12-31 | sec_edgar |
| cashflow_operating | {"amount": -6739075, "concept": "us-gaap:NetCashProvidedByUsedInOperatingActivities", "cur | 2025-12-31 | sec_edgar |
| cashflow_operating | {"amount": 2080387, "concept": "us-gaap:NetCashProvidedByUsedInOperatingActivities", "curr | 2024-12-31 | sec_edgar |
| cashflow_operating | {"amount": 898367, "concept": "us-gaap:NetCashProvidedByUsedInOperatingActivities", "curre | 2023-12-31 | sec_edgar |
| cashflow_operating | {"amount": 4448846, "concept": "us-gaap:NetCashProvidedByUsedInOperatingActivities", "curr | 2022-12-31 | sec_edgar |
| cost_of_revenue | {"amount": 1103682, "concept": "us-gaap:CostOfRevenue", "currency": "USD"} | 2025-12-31 | sec_edgar |
| cost_of_revenue | {"amount": 2299762, "concept": "us-gaap:CostOfRevenue", "currency": "USD"} | 2024-12-31 | sec_edgar |
| cost_of_revenue | {"amount": 3351121, "concept": "us-gaap:CostOfRevenue", "currency": "USD"} | 2023-12-31 | sec_edgar |
| cost_of_revenue | {"amount": 10980847, "concept": "us-gaap:CostOfRevenue", "currency": "USD"} | 2022-12-31 | sec_edgar |
| current_assets | {"amount": 30242859, "concept": "us-gaap:AssetsCurrent", "currency": "USD"} | 2025-12-31 | sec_edgar |
| current_assets | {"amount": 18534344, "concept": "us-gaap:AssetsCurrent", "currency": "USD"} | 2024-12-31 | sec_edgar |
| current_assets | {"amount": 15749631, "concept": "us-gaap:AssetsCurrent", "currency": "USD"} | 2023-12-31 | sec_edgar |
| current_liabilities | {"amount": 87836, "concept": "us-gaap:LiabilitiesCurrent", "currency": "USD"} | 2025-12-31 | sec_edgar |
| current_liabilities | {"amount": 1730234, "concept": "us-gaap:LiabilitiesCurrent", "currency": "USD"} | 2024-12-31 | sec_edgar |
| current_liabilities | {"amount": 993060, "concept": "us-gaap:LiabilitiesCurrent", "currency": "USD"} | 2023-12-31 | sec_edgar |
| eps_basic | {"per": "shares", "amount": 0.147, "concept": "us-gaap:EarningsPerShareBasic", "currency": | 2025-12-31 | sec_edgar |
| eps_basic | {"per": "shares", "amount": 0.056, "concept": "us-gaap:EarningsPerShareBasic", "currency": | 2024-12-31 | sec_edgar |
| eps_basic | {"per": "shares", "amount": 0.105, "concept": "us-gaap:EarningsPerShareBasic", "currency": | 2023-12-31 | sec_edgar |
| eps_basic | {"per": "shares", "amount": 100112, "concept": "us-gaap:EarningsPerShareBasic", "currency" | 2022-12-31 | sec_edgar |
| eps_diluted | {"per": "shares", "amount": 0.147, "concept": "us-gaap:EarningsPerShareDiluted", "currency | 2025-12-31 | sec_edgar |
| eps_diluted | {"per": "shares", "amount": 0.056, "concept": "us-gaap:EarningsPerShareDiluted", "currency | 2024-12-31 | sec_edgar |
| eps_diluted | {"per": "shares", "amount": 0.105, "concept": "us-gaap:EarningsPerShareDiluted", "currency | 2023-12-31 | sec_edgar |
| eps_diluted | {"per": "shares", "amount": 100112, "concept": "us-gaap:EarningsPerShareDiluted", "currenc | 2022-12-31 | sec_edgar |
| gross_profit | {"amount": 7543162, "concept": "us-gaap:GrossProfit", "currency": "USD"} | 2025-12-31 | sec_edgar |
| gross_profit | {"amount": 5885384, "concept": "us-gaap:GrossProfit", "currency": "USD"} | 2024-12-31 | sec_edgar |
| gross_profit | {"amount": 3360869, "concept": "us-gaap:GrossProfit", "currency": "USD"} | 2023-12-31 | sec_edgar |
| gross_profit | {"amount": 12563805, "concept": "us-gaap:GrossProfit", "currency": "USD"} | 2022-12-31 | sec_edgar |
| income_tax_expense | {"amount": 0, "concept": "us-gaap:IncomeTaxExpenseBenefit", "currency": "USD"} | 2025-12-31 | sec_edgar |
| income_tax_expense | {"amount": 0, "concept": "us-gaap:IncomeTaxExpenseBenefit", "currency": "USD"} | 2024-12-31 | sec_edgar |
| income_tax_expense | {"amount": 0, "concept": "us-gaap:IncomeTaxExpenseBenefit", "currency": "USD"} | 2023-12-31 | sec_edgar |
| industry_sic | {"code": "2835", "scheme": "SIC", "description": "In Vitro & In Vivo Diagnostic Substances | sec_edgar | |
| interest_expense | {"amount": 7999, "concept": "us-gaap:InterestExpenseNonoperating", "currency": "USD"} | 2022-12-31 | sec_edgar |
| net_income | {"amount": 6403463, "concept": "us-gaap:NetIncomeLoss", "currency": "USD"} | 2025-12-31 | sec_edgar |
| net_income | {"amount": 2372842, "concept": "us-gaap:NetIncomeLoss", "currency": "USD"} | 2024-12-31 | sec_edgar |
| net_income | {"amount": 2253709, "concept": "us-gaap:NetIncomeLoss", "currency": "USD"} | 2023-12-31 | sec_edgar |
| net_income | {"amount": 10011177, "concept": "us-gaap:NetIncomeLoss", "currency": "USD"} | 2022-12-31 | sec_edgar |
| operating_expenses | {"amount": 1775422, "concept": "us-gaap:OperatingExpenses", "currency": "USD"} | 2025-12-31 | sec_edgar |
| operating_expenses | {"amount": 3890017, "concept": "us-gaap:OperatingExpenses", "currency": "USD"} | 2024-12-31 | sec_edgar |
| operating_expenses | {"amount": 1399940, "concept": "us-gaap:OperatingExpenses", "currency": "USD"} | 2023-12-31 | sec_edgar |
| operating_expenses | {"amount": 2368217, "concept": "us-gaap:OperatingExpenses", "currency": "USD"} | 2022-12-31 | sec_edgar |
| operating_income | {"amount": 5767740, "concept": "us-gaap:OperatingIncomeLoss", "currency": "USD"} | 2025-12-31 | sec_edgar |
| operating_income | {"amount": 1995367, "concept": "us-gaap:OperatingIncomeLoss", "currency": "USD"} | 2024-12-31 | sec_edgar |
| operating_income | {"amount": 1960929, "concept": "us-gaap:OperatingIncomeLoss", "currency": "USD"} | 2023-12-31 | sec_edgar |
| operating_income | {"amount": 10195588, "concept": "us-gaap:OperatingIncomeLoss", "currency": "USD"} | 2022-12-31 | sec_edgar |
| pretax_income | {"amount": 6403463, "concept": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxe | 2025-12-31 | sec_edgar |
| pretax_income | {"amount": 2372842, "concept": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxe | 2024-12-31 | sec_edgar |
| pretax_income | {"amount": 2253709, "concept": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxe | 2023-12-31 | sec_edgar |
| pretax_income | {"amount": 10011177, "concept": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTax | 2022-12-31 | sec_edgar |
| retained_earnings | {"amount": 23577004, "concept": "us-gaap:RetainedEarningsAccumulatedDeficit", "currency": | 2025-12-31 | sec_edgar |
| retained_earnings | {"amount": 17173541, "concept": "us-gaap:RetainedEarningsAccumulatedDeficit", "currency": | 2024-12-31 | sec_edgar |
| retained_earnings | {"amount": 14800699, "concept": "us-gaap:RetainedEarningsAccumulatedDeficit", "currency": | 2023-12-31 | sec_edgar |
| revenue | {"amount": 8646844, "concept": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTa | 2025-12-31 | sec_edgar |
| revenue | {"amount": 8185146, "concept": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTa | 2024-12-31 | sec_edgar |
| revenue | {"amount": 6711990, "concept": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTa | 2023-12-31 | sec_edgar |
| revenue | {"amount": 23544652, "concept": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedT | 2022-12-31 | sec_edgar |
| rnd_expense | {"amount": 201305, "concept": "us-gaap:ResearchAndDevelopmentExpense", "currency": "USD"} | 2025-12-31 | sec_edgar |
| rnd_expense | {"amount": 454227, "concept": "us-gaap:ResearchAndDevelopmentExpense", "currency": "USD"} | 2024-12-31 | sec_edgar |
| rnd_expense | {"amount": 134700, "concept": "us-gaap:ResearchAndDevelopmentExpense", "currency": "USD"} | 2023-12-31 | sec_edgar |
| rnd_expense | {"amount": 200000, "concept": "us-gaap:ResearchAndDevelopmentExpense", "currency": "USD"} | 2022-12-31 | sec_edgar |
| sga_expense | {"amount": 1574117, "concept": "us-gaap:SellingGeneralAndAdministrativeExpense", "currency | 2025-12-31 | sec_edgar |
| sga_expense | {"amount": 3435790, "concept": "us-gaap:SellingGeneralAndAdministrativeExpense", "currency | 2024-12-31 | sec_edgar |
| sga_expense | {"amount": 1265240, "concept": "us-gaap:SellingGeneralAndAdministrativeExpense", "currency | 2023-12-31 | sec_edgar |
| sga_expense | {"amount": 2168217, "concept": "us-gaap:SellingGeneralAndAdministrativeExpense", "currency | 2022-12-31 | sec_edgar |
| shares_wavg_basic | {"unit": "shares", "value": 43672022, "concept": "us-gaap:WeightedAverageNumberOfSharesOut | 2025-12-31 | sec_edgar |
| shares_wavg_basic | {"unit": "shares", "value": 42291200, "concept": "us-gaap:WeightedAverageNumberOfSharesOut | 2024-12-31 | sec_edgar |
| shares_wavg_basic | {"unit": "shares", "value": 21435315, "concept": "us-gaap:WeightedAverageNumberOfSharesOut | 2023-12-31 | sec_edgar |
| shares_wavg_basic | {"unit": "shares", "value": 100, "concept": "us-gaap:WeightedAverageNumberOfSharesOutstand | 2022-12-31 | sec_edgar |
| shares_wavg_diluted | {"unit": "shares", "value": 43672022, "concept": "us-gaap:WeightedAverageNumberOfDilutedSh | 2025-12-31 | sec_edgar |
| shares_wavg_diluted | {"unit": "shares", "value": 42291200, "concept": "us-gaap:WeightedAverageNumberOfDilutedSh | 2024-12-31 | sec_edgar |
| shares_wavg_diluted | {"unit": "shares", "value": 21435315, "concept": "us-gaap:WeightedAverageNumberOfDilutedSh | 2023-12-31 | sec_edgar |
| short_term_investments | {"amount": 4134493, "concept": "us-gaap:ShortTermInvestments", "currency": "USD"} | 2025-12-31 | sec_edgar |
| short_term_investments | {"amount": 0, "concept": "us-gaap:ShortTermInvestments", "currency": "USD"} | 2024-12-31 | sec_edgar |
| stockholders_equity | {"amount": 30155023, "concept": "us-gaap:StockholdersEquity", "currency": "USD"} | 2025-12-31 | sec_edgar |
| stockholders_equity | {"amount": 17191550, "concept": "us-gaap:StockholdersEquity", "currency": "USD"} | 2024-12-31 | sec_edgar |
| stockholders_equity | {"amount": 14818708, "concept": "us-gaap:StockholdersEquity", "currency": "USD"} | 2023-12-31 | sec_edgar |
| stockholders_equity | {"amount": 12546990, "concept": "us-gaap:StockholdersEquity", "currency": "USD"} | 2022-12-31 | sec_edgar |
| total_assets | {"amount": 30242859, "concept": "us-gaap:Assets", "currency": "USD"} | 2025-12-31 | sec_edgar |
| total_assets | {"amount": 18921784, "concept": "us-gaap:Assets", "currency": "USD"} | 2024-12-31 | sec_edgar |
| total_assets | {"amount": 15811768, "concept": "us-gaap:Assets", "currency": "USD"} | 2023-12-31 | sec_edgar |
| total_liabilities | {"amount": 87836, "concept": "us-gaap:Liabilities", "currency": "USD"} | 2025-12-31 | sec_edgar |
| total_liabilities | {"amount": 1730234, "concept": "us-gaap:Liabilities", "currency": "USD"} | 2024-12-31 | sec_edgar |
| total_liabilities | {"amount": 993060, "concept": "us-gaap:Liabilities", "currency": "USD"} | 2023-12-31 | sec_edgar |
| total_liabilities_and_equity | {"amount": 30242859, "concept": "us-gaap:LiabilitiesAndStockholdersEquity", "currency": "U | 2025-12-31 | sec_edgar |
| total_liabilities_and_equity | {"amount": 18921784, "concept": "us-gaap:LiabilitiesAndStockholdersEquity", "currency": "U | 2024-12-31 | sec_edgar |
| total_liabilities_and_equity | {"amount": 15811768, "concept": "us-gaap:LiabilitiesAndStockholdersEquity", "currency": "U | 2023-12-31 | sec_edgar |
| xbrl:AccountsPayableCurrent | {"amount": 0, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AccountsPayableCurrent | {"amount": 1625255, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AccountsPayableCurrent | {"amount": 827151, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:AccountsPayableOtherCurrent | {"amount": 104979, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AccountsPayableOtherCurrent | {"amount": 34942, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:AccountsReceivableGrossCurrent | {"amount": 3655964, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AccountsReceivableGrossCurrent | {"amount": 1064794, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AccountsReceivableGrossCurrent | {"amount": 1884960, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:AccountsReceivableNetCurrent | {"amount": 3655964, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AccountsReceivableNetCurrent | {"amount": 1064794, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AccountsReceivableNetCurrent | {"amount": 1884960, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:AccruedPayrollTaxesCurrent | {"amount": 87836, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AccruedPayrollTaxesCurrent | {"amount": 104979, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AccruedPayrollTaxesCurrent | {"amount": 130967, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:AdditionalPaidInCapitalCommonStock | {"amount": 6563630, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AdditionalPaidInCapitalCommonStock | {"amount": 3780, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AdditionalPaidInCapitalCommonStock | {"amount": 3780, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:AllowanceForDoubtfulAccountsReceivableCurrent | {"amount": 0, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AllowanceForDoubtfulAccountsReceivableCurrent | {"amount": 0, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:Assets | {"amount": 30242859, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:Assets | {"amount": 18921784, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:Assets | {"amount": 15811768, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:AssetsCurrent | {"amount": 30242859, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:AssetsCurrent | {"amount": 18534344, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:AssetsCurrent | {"amount": 15749631, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:CashAndCashEquivalentsAtCarryingValue | {"amount": 7766738, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:CashAndCashEquivalentsAtCarryingValue | {"amount": 11760859, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:CashAndCashEquivalentsAtCarryingValue | {"amount": 9687976, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents | {"amount": 7766738, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents | {"amount": 11760859, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents | {"amount": 9687976, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents | {"amount": 7102271, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents | {"amount": 4181325, "currency": "USD"} | 2021-12-31 | sec_edgar |
| xbrl:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect | {"amount": -3994121, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect | {"amount": 2072883, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect | {"amount": 2585705, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect | {"amount": 2920946, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:CashFDICInsuredAmount | {"amount": 64000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:CashFDICInsuredAmount | {"amount": 64350, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:CashUninsuredAmount | {"amount": 7347861, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:CashUninsuredAmount | {"amount": 11635998, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:CashUninsuredAmount | {"amount": 9536497, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:CostOfRevenue | {"amount": 1103682, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:CostOfRevenue | {"amount": 2299762, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:CostOfRevenue | {"amount": 3351121, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:CostOfRevenue | {"amount": 10980847, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:DeferredCosts | {"amount": 0, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:DeferredCosts | {"amount": 387440, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:DeferredCosts | {"amount": 42835, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:DeferredOfferingCosts | {"amount": 387440, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:DepositsAssetsCurrent | {"amount": 1294, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:DepositsAssetsCurrent | {"amount": 3263, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:DepositsAssetsNoncurrent | {"amount": 1293, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:EarningsPerShareBasic | {"per": "shares", "amount": 0.147, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:EarningsPerShareBasic | {"per": "shares", "amount": 0.056, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:EarningsPerShareBasic | {"per": "shares", "amount": 0.105, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:EarningsPerShareBasic | {"per": "shares", "amount": 100112, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:EarningsPerShareDiluted | {"per": "shares", "amount": 0.147, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:EarningsPerShareDiluted | {"per": "shares", "amount": 0.056, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:EarningsPerShareDiluted | {"per": "shares", "amount": 0.105, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:EarningsPerShareDiluted | {"per": "shares", "amount": 100112, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:FederalDepositInsuranceCorporationPremiumExpense | {"amount": 250000, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:ForeignCurrencyTransactionGainLossBeforeTax | {"amount": 493562, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:ForeignCurrencyTransactionGainLossBeforeTax | {"amount": 20469, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:ForeignCurrencyTransactionGainLossBeforeTax | {"amount": 119419, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:ForeignCurrencyTransactionGainLossBeforeTax | {"amount": -262219, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:GrossProfit | {"amount": 7543162, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:GrossProfit | {"amount": 5885384, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:GrossProfit | {"amount": 3360869, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:GrossProfit | {"amount": 12563805, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest | {"amount": 6403463, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest | {"amount": 2372842, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest | {"amount": 2253709, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest | {"amount": 10011177, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:IncomeTaxExpenseBenefit | {"amount": 0, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:IncomeTaxExpenseBenefit | {"amount": 0, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:IncomeTaxExpenseBenefit | {"amount": 0, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:IncreaseDecreaseInAccountsPayable | {"amount": -1625255, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:IncreaseDecreaseInAccountsPayable | {"amount": 798104, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:IncreaseDecreaseInAccountsPayable | {"amount": -580891, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:IncreaseDecreaseInAccountsPayable | {"amount": -481824, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:IncreaseDecreaseInAccountsReceivable | {"amount": 2591170, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:IncreaseDecreaseInAccountsReceivable | {"amount": -820166, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:IncreaseDecreaseInAccountsReceivable | {"amount": 1884960, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:IncreaseDecreaseInAccountsReceivable | {"amount": -717500, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:IncreaseDecreaseInDepositOtherAssets | {"amount": 0, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:IncreaseDecreaseInDepositOtherAssets | {"amount": -1293, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:IncreaseDecreaseInDepositOtherAssets | {"amount": -1696, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:IncreaseDecreaseInDepositOtherAssets | {"amount": 2989, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:IncreaseDecreaseInInventories | {"amount": -353872, "currency": "USD"} | 2023-12-31 | sec_edgar |
| xbrl:IncreaseDecreaseInInventories | {"amount": 353871, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:IncreaseDecreaseInOperatingLeaseLiability | {"amount": -18311, "currency": "USD"} | 2022-12-31 | sec_edgar |
| xbrl:IncreaseDecreaseInOtherCurrentLiabilities | {"amount": -17143, "currency": "USD"} | 2025-12-31 | sec_edgar |
| xbrl:IncreaseDecreaseInOtherCurrentLiabilities | {"amount": -60930, "currency": "USD"} | 2024-12-31 | sec_edgar |
| xbrl:IncreaseDecreaseInOtherCurrentLiabilities | {"amount": 162666, "currency": "USD"} | 2023-12-31 | sec_edgar |