{"id":4919,"date":"2026-01-18T13:46:24","date_gmt":"2026-01-18T17:46:24","guid":{"rendered":"https:\/\/qrprincipal.com\/?page_id=4919"},"modified":"2026-01-19T16:32:19","modified_gmt":"2026-01-19T20:32:19","slug":"coti","status":"publish","type":"page","link":"https:\/\/qrprincipal.com\/en\/coti\/","title":{"rendered":"coti"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"4919\" class=\"elementor elementor-4919\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-d475bca elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"d475bca\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5ca74ba\" data-id=\"5ca74ba\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-52a7894 elementor-widget elementor-widget-html\" data-id=\"52a7894\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<!DOCTYPE html>\n<html lang=\"es\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Calculadora de Costos de Importaci\u00f3n<\/title>\n    <style>\n        \/* Reset y estilos base *\/\n        * {\n            margin: 0;\n            padding: 0;\n            box-sizing: border-box;\n        }\n        \n        body {\n            font-family: Arial, sans-serif;\n            background-color: #f5f5f5;\n            line-height: 1.6;\n            padding: 10px;\n            min-height: 100vh;\n        }\n        \n        .container {\n            max-width: 1200px;\n            margin: 0 auto;\n            background-color: white;\n            border-radius: 10px;\n            box-shadow: 0 0 20px rgba(0,0,0,0.1);\n            overflow: hidden;\n        }\n        \n        \/* Header *\/\n        .header {\n            background-color: #2c3e50;\n            color: white;\n            padding: clamp(20px, 4vw, 25px);\n            text-align: center;\n        }\n        \n        h1 {\n            margin: 0;\n            font-size: clamp(20px, 5vw, 24px);\n            color: white;\n        }\n        \n        .subtitle {\n            color: #bdc3c7;\n            margin-top: 5px;\n            font-size: clamp(12px, 3vw, 14px);\n        }\n        \n        .calculator {\n            padding: clamp(15px, 3vw, 30px);\n        }\n        \n        \/* Secciones *\/\n        .input-section, .results-section {\n            margin-bottom: clamp(25px, 4vw, 40px);\n        }\n        \n        .section-title {\n            color: #2c3e50;\n            border-bottom: 2px solid #ecf0f1;\n            padding-bottom: 10px;\n            margin-bottom: clamp(15px, 3vw, 25px);\n            font-size: clamp(16px, 4vw, 18px);\n            display: flex;\n            flex-wrap: wrap;\n            align-items: center;\n            gap: 10px;\n        }\n        \n        \/* Formulario responsivo *\/\n        .form-group {\n            display: flex;\n            flex-direction: column;\n            margin-bottom: 15px;\n            padding: clamp(12px, 3vw, 15px);\n            background-color: #f8f9fa;\n            border-radius: 8px;\n            border-left: 4px solid #3498db;\n            transition: all 0.3s ease;\n        }\n        \n        @media (min-width: 768px) {\n            .form-group {\n                flex-direction: row;\n                align-items: center;\n            }\n        }\n        \n        .form-group.changed {\n            background-color: #e8f4fc;\n            border-left-color: #e74c3c;\n        }\n        \n        .form-label {\n            font-weight: 600;\n            color: #34495e;\n            margin-bottom: 8px;\n            flex: 1;\n            min-width: 0;\n            font-size: clamp(14px, 3vw, 16px);\n        }\n        \n        @media (min-width: 768px) {\n            .form-label {\n                margin-bottom: 0;\n                min-width: 300px;\n            }\n        }\n        \n        .form-input {\n            flex: 0 0 auto;\n            width: 100%;\n        }\n        \n        @media (min-width: 768px) {\n            .form-input {\n                width: 200px;\n            }\n        }\n        \n        input {\n            width: 100%;\n            padding: clamp(8px, 2vw, 10px) clamp(10px, 2vw, 15px);\n            border: 2px solid #ddd;\n            border-radius: 6px;\n            font-size: clamp(14px, 3vw, 16px);\n            text-align: right;\n            transition: all 0.3s;\n        }\n        \n        input:focus {\n            outline: none;\n            border-color: #3498db;\n            box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.2);\n        }\n        \n        .input-changed {\n            border-color: #e74c3c;\n            background-color: #ffeaea;\n        }\n        \n        input::placeholder {\n            color: #95a5a6;\n            font-style: italic;\n        }\n        \n        \/* Bot\u00f3n responsivo *\/\n        .button-container {\n            text-align: center;\n            margin: clamp(20px, 4vw, 30px) 0;\n            padding: clamp(15px, 3vw, 20px);\n            background-color: #f8f9fa;\n            border-radius: 8px;\n            border-top: 3px solid #ecf0f1;\n            display: flex;\n            flex-direction: column;\n            gap: 15px;\n            align-items: center;\n        }\n        \n        @media (min-width: 480px) {\n            .button-container {\n                flex-direction: row;\n                justify-content: center;\n                gap: 20px;\n            }\n        }\n        \n        .calculate-btn {\n            background: #3498db;\n            color: white;\n            border: none;\n            padding: clamp(12px, 3vw, 15px) clamp(25px, 5vw, 40px);\n            border-radius: 6px;\n            font-size: clamp(16px, 4vw, 18px);\n            font-weight: 600;\n            cursor: pointer;\n            transition: all 0.3s;\n            box-shadow: 0 4px 6px rgba(0,0,0,0.1);\n            display: inline-flex;\n            align-items: center;\n            justify-content: center;\n            gap: 10px;\n            width: 100%;\n            max-width: 300px;\n        }\n        \n        .calculate-btn:hover {\n            transform: translateY(-2px);\n            box-shadow: 0 6px 8px rgba(0,0,0,0.15);\n            background: #2980b9;\n        }\n        \n        .calculate-btn:active {\n            transform: translateY(0);\n        }\n        \n        .clear-btn {\n            background: #e74c3c;\n            color: white;\n            border: none;\n            padding: clamp(12px, 3vw, 15px) clamp(20px, 4vw, 30px);\n            border-radius: 6px;\n            font-size: clamp(16px, 4vw, 18px);\n            font-weight: 600;\n            cursor: pointer;\n            transition: all 0.3s;\n            box-shadow: 0 4px 6px rgba(0,0,0,0.1);\n            display: inline-flex;\n            align-items: center;\n            justify-content: center;\n            gap: 10px;\n            width: 100%;\n            max-width: 300px;\n        }\n        \n        .clear-btn:hover {\n            transform: translateY(-2px);\n            box-shadow: 0 6px 8px rgba(0,0,0,0.15);\n            background: #c0392b;\n        }\n        \n        .clear-btn:active {\n            transform: translateY(0);\n        }\n        \n        \/* Grid de resultados responsivo *\/\n        .results-grid {\n            display: grid;\n            grid-template-columns: 1fr;\n            gap: 20px;\n            margin-bottom: 30px;\n        }\n        \n        @media (min-width: 768px) {\n            .results-grid {\n                grid-template-columns: repeat(2, 1fr);\n            }\n        }\n        \n        @media (min-width: 1024px) {\n            .results-grid {\n                grid-template-columns: repeat(3, 1fr);\n            }\n        }\n        \n        \/* Tarjetas de resultados *\/\n        .result-card {\n            background-color: white;\n            border-radius: 8px;\n            padding: clamp(15px, 3vw, 20px);\n            box-shadow: 0 3px 10px rgba(0,0,0,0.08);\n            transition: all 0.3s;\n            position: relative;\n            overflow: hidden;\n            display: flex;\n            flex-direction: column;\n        }\n        \n        .result-card.updated {\n            animation: highlightUpdate 1s ease;\n        }\n        \n        @keyframes highlightUpdate {\n            0% { background-color: #e8f4fc; }\n            100% { background-color: white; }\n        }\n        \n        \/* Colores de las tarjetas *\/\n        .usd-card { border-top: 4px solid #3498db; }\n        .bs-card { border-top: 4px solid #27ae60; }\n        .usdt-card { border-top: 4px solid #f39c12; }\n        .summary-card { \n            border-top: 4px solid #9b59b6;\n            background-color: #f8f9fa;\n        }\n        \n        .purchase-summary-card {\n            border-top: 4px solid #3498db;\n            background-color: #f0f8ff;\n        }\n        \n        .transport-summary-card {\n            border-top: 4px solid #e74c3c;\n            background-color: #fef5e7;\n        }\n        \n        .result-title {\n            font-size: clamp(14px, 3vw, 16px);\n            color: #2c3e50;\n            margin-bottom: 15px;\n            font-weight: 600;\n            text-align: center;\n            padding-bottom: 10px;\n            border-bottom: 2px solid #ecf0f1;\n        }\n        \n        \/* Estilos para los items dentro de las tarjetas *\/\n        .result-item {\n            margin-bottom: 12px;\n            padding-bottom: 12px;\n            border-bottom: 1px dashed #eee;\n        }\n        \n        .result-item:last-child {\n            border-bottom: none;\n            margin-bottom: 0;\n            padding-bottom: 0;\n        }\n        \n        .item-label {\n            font-size: clamp(13px, 2.5vw, 14px);\n            color: #7f8c8d;\n            margin-bottom: 5px;\n            display: block;\n        }\n        \n        .item-value {\n            font-size: clamp(16px, 3.5vw, 18px);\n            font-weight: 700;\n            color: #2c3e50;\n            display: block;\n        }\n        \n        .currency {\n            font-size: clamp(14px, 3vw, 15px);\n            color: #3498db;\n            font-weight: 600;\n        }\n        \n        .currency-bs {\n            color: #27ae60;\n        }\n        \n        .currency-usdt {\n            color: #f39c12;\n        }\n        \n        \/* Resumen final *\/\n        .summary-section {\n            margin-top: 20px;\n            padding: 20px;\n            border-radius: 8px;\n            border-left: 4px solid #9b59b6;\n        }\n        \n        .summary-grid {\n            display: grid;\n            grid-template-columns: 1fr;\n            gap: 15px;\n            margin-top: 20px;\n        }\n        \n        @media (min-width: 768px) {\n            .summary-grid {\n                grid-template-columns: repeat(3, 1fr);\n            }\n        }\n        \n        .summary-item {\n            text-align: center;\n            padding: 15px;\n            background-color: white;\n            border-radius: 6px;\n            box-shadow: 0 2px 5px rgba(0,0,0,0.05);\n        }\n        \n        .summary-label {\n            font-size: clamp(13px, 2.5vw, 14px);\n            color: #7f8c8d;\n            margin-bottom: 8px;\n        }\n        \n        .summary-value {\n            font-size: clamp(18px, 4vw, 22px);\n            font-weight: 700;\n            color: #2c3e50;\n        }\n        \n        \/* Pasos de c\u00e1lculo *\/\n        .calculation-steps {\n            margin-top: 40px;\n            padding: clamp(15px, 3vw, 20px);\n            background-color: #f8f9fa;\n            border-radius: 8px;\n            border-left: 4px solid #9b59b6;\n        }\n        \n        .step {\n            margin-bottom: 15px;\n            padding-bottom: 15px;\n            border-bottom: 1px dashed #ddd;\n        }\n        \n        .step:last-child {\n            border-bottom: none;\n            margin-bottom: 0;\n            padding-bottom: 0;\n        }\n        \n        .step-formula {\n            font-family: monospace;\n            background-color: #2c3e50;\n            color: #ecf0f1;\n            padding: 8px 12px;\n            border-radius: 4px;\n            margin: 5px 0;\n            font-size: clamp(12px, 2.5vw, 14px);\n            overflow-x: auto;\n            white-space: nowrap;\n        }\n        \n        \/* Barra de estado *\/\n        .status-bar {\n            display: flex;\n            flex-direction: column;\n            gap: 10px;\n            margin-top: 20px;\n            padding: clamp(10px, 2vw, 15px);\n            background-color: #f8f9fa;\n            border-radius: 6px;\n            font-size: clamp(12px, 2.5vw, 14px);\n        }\n        \n        @media (min-width: 640px) {\n            .status-bar {\n                flex-direction: row;\n                justify-content: space-between;\n                align-items: center;\n            }\n        }\n        \n        .status-indicator {\n            padding: 6px 12px;\n            border-radius: 4px;\n            font-weight: 600;\n            font-size: clamp(12px, 2.5vw, 14px);\n            text-align: center;\n        }\n        \n        .status-pending {\n            background-color: #f39c12;\n            color: white;\n        }\n        \n        .status-updated {\n            background-color: #27ae60;\n            color: white;\n        }\n        \n        \/* Responsive adjustments *\/\n        @media (max-width: 480px) {\n            .container {\n                border-radius: 8px;\n            }\n            \n            .calculator {\n                padding: 15px;\n            }\n            \n            .calculate-btn, .clear-btn {\n                padding: 12px 20px;\n                font-size: 16px;\n            }\n        }\n        \n        @media (min-width: 481px) and (max-width: 768px) {\n            .results-grid {\n                gap: 15px;\n            }\n        }\n        \n        \/* Highlight *\/\n        .highlight {\n            background-color: #fffacd;\n            padding: 2px 5px;\n            border-radius: 3px;\n        }\n        \n        \/* Instrucci\u00f3n inicial *\/\n        .initial-instruction {\n            text-align: center;\n            padding: 15px;\n            background-color: #e8f4fc;\n            border-radius: 6px;\n            margin-bottom: 20px;\n            border-left: 4px solid #3498db;\n            font-size: clamp(14px, 3vw, 16px);\n            color: #2c3e50;\n        }\n        \n        .decimal-note {\n            font-size: 12px;\n            color: #95a5a6;\n            font-style: italic;\n            margin-top: 5px;\n        }\n        \n        \/* Estilo para los nuevos campos de peso y dimensiones *\/\n        .dimensions-section {\n            display: grid;\n            grid-template-columns: 1fr;\n            gap: 15px;\n            margin-top: 20px;\n            padding: 15px;\n            background-color: #f0f8ff;\n            border-radius: 8px;\n            border-left: 4px solid #3498db;\n        }\n        \n        @media (min-width: 768px) {\n            .dimensions-section {\n                grid-template-columns: repeat(2, 1fr);\n            }\n        }\n        \n        .weight-comparison {\n            background-color: #e8f6f3;\n            padding: 15px;\n            border-radius: 6px;\n            margin-top: 15px;\n            border-left: 4px solid #27ae60;\n        }\n        \n        .comparison-result {\n            background-color: #fff3cd;\n            padding: 10px;\n            border-radius: 4px;\n            margin-top: 10px;\n            font-weight: bold;\n            text-align: center;\n        }\n        \n        .air-freight-card {\n            border-top: 4px solid #e74c3c;\n        }\n        \n        \/* Estilos para las secciones de resumen *\/\n        .summary-sections-container {\n            display: grid;\n            grid-template-columns: 1fr;\n            gap: 20px;\n            margin-top: 30px;\n        }\n        \n        @media (min-width: 768px) {\n            .summary-sections-container {\n                grid-template-columns: repeat(2, 1fr);\n            }\n        }\n    <\/style>\n<\/head>\n<body>\n    <div class=\"container\">\n        <div class=\"header\">\n            <h1>Calculadora de Costos de Importaci\u00f3n<\/h1>\n            <div class=\"subtitle\">Ingresa los datos desde cero y haz clic en \"Calcular Valores\" para obtener resultados<\/div>\n        <\/div>\n        \n        <div class=\"calculator\">\n            <!-- Instrucci\u00f3n inicial -->\n            <div class=\"initial-instruction\">\n                \ud83d\udca1 Ingresa todos los valores desde cero. Los campos tienen valores de ejemplo en placeholder.\n            <\/div>\n            \n            <!-- Secci\u00f3n de entrada de datos -->\n            <div class=\"input-section\">\n                <div class=\"section-title\">\n                    <span>\ud83d\udcca Datos de Entrada<\/span>\n                    <span class=\"status-indicator status-updated\" id=\"statusIndicator\">\u2713 Esperando datos<\/span>\n                <\/div>\n                \n                <div class=\"form-group\" id=\"groupPrice\">\n                    <div class=\"form-label\">Precio del Producto en USD:<\/div>\n                    <div class=\"form-input\">\n                        <input type=\"number\" id=\"usdPrice\" value=\"0\" step=\"0.01\" min=\"0\" placeholder=\"Ej: 1500\">\n                    <\/div>\n                <\/div>\n                \n                <div class=\"form-group\" id=\"groupTax\">\n                    <div class=\"form-label\">Porcentaje Impuesto USA (%):<\/div>\n                    <div class=\"form-input\">\n                        <input type=\"number\" id=\"taxPercent\" value=\"0\" step=\"0.1\" min=\"0\" max=\"100\" placeholder=\"Ej: 7\">\n                    <\/div>\n                <\/div>\n                \n                <div class=\"form-group\" id=\"groupShipping\">\n                    <div class=\"form-label\">Env\u00edo y Manejo en USA en USD:<\/div>\n                    <div class=\"form-input\">\n                        <input type=\"number\" id=\"shipping\" value=\"0\" step=\"0.01\" min=\"0\" placeholder=\"Ej: 6\">\n                    <\/div>\n                <\/div>\n                \n                <!-- NUEVA SECCI\u00d3N: Datos de peso y dimensiones -->\n                <div class=\"dimensions-section\">\n                    <div class=\"form-group\" id=\"groupPricePerKilo\">\n                        <div class=\"form-label\">Precio del kilo en USD:<\/div>\n                        <div class=\"form-input\">\n                            <input type=\"number\" id=\"pricePerKilo\" value=\"0\" step=\"0.01\" min=\"0\" placeholder=\"Ej: 45\">\n                        <\/div>\n                    <\/div>\n                    \n                    <div class=\"form-group\" id=\"groupProductWeight\">\n                        <div class=\"form-label\">Peso del Producto en (Kg):<\/div>\n                        <div class=\"form-input\">\n                            <input type=\"number\" id=\"productWeight\" value=\"0\" step=\"0.01\" min=\"0\" placeholder=\"Ej: 5\">\n                        <\/div>\n                    <\/div>\n                    \n                    <div class=\"form-group\" id=\"groupHeight\">\n                        <div class=\"form-label\">Medida de Alto en (cm):<\/div>\n                        <div class=\"form-input\">\n                            <input type=\"number\" id=\"height\" value=\"0\" step=\"0.1\" min=\"0\" placeholder=\"Ej: 35\">\n                        <\/div>\n                    <\/div>\n                    \n                    <div class=\"form-group\" id=\"groupWidth\">\n                        <div class=\"form-label\">Medida de Ancho en (cm):<\/div>\n                        <div class=\"form-input\">\n                            <input type=\"number\" id=\"width\" value=\"0\" step=\"0.1\" min=\"0\" placeholder=\"Ej: 20\">\n                        <\/div>\n                    <\/div>\n                    \n                    <div class=\"form-group\" id=\"groupLength\">\n                        <div class=\"form-label\">Medida de Largo en (cm):<\/div>\n                        <div class=\"form-input\">\n                            <input type=\"number\" id=\"length\" value=\"0\" step=\"0.1\" min=\"0\" placeholder=\"Ej: 15\">\n                        <\/div>\n                    <\/div>\n                <\/div>\n                <!-- FIN NUEVA SECCI\u00d3N -->\n                \n                <div class=\"form-group\" id=\"groupProfit\">\n                    <div class=\"form-label\">Porcentaje de Comisi\u00f3n (%):<\/div>\n                    <div class=\"form-input\">\n                        <input type=\"number\" id=\"profitPercent\" value=\"0\" step=\"0.1\" min=\"0\" max=\"100\" placeholder=\"Ej: 12\">\n                    <\/div>\n                <\/div>\n                \n                <div class=\"form-group\" id=\"groupExchange\">\n                    <div class=\"form-label\">Tipo de Cambio por USD (Bs):<\/div>\n                    <div class=\"form-input\">\n                        <input type=\"number\" id=\"exchangeRate\" value=\"0\" step=\"0.01\" min=\"0\" placeholder=\"Ej: 11\">\n                    <\/div>\n                <\/div>\n                \n                <div class=\"form-group\" id=\"groupBinance\">\n                    <div class=\"form-label\">Porcentaje de comisi\u00f3n Binance (%):<\/div>\n                    <div class=\"form-input\">\n                        <input type=\"number\" id=\"binancePercent\" value=\"0\" step=\"0.1\" min=\"0\" max=\"100\" placeholder=\"Ej: 3\">\n                    <\/div>\n                <\/div>\n            <\/div>\n            \n            <!-- Botones -->\n            <div class=\"button-container\">\n                <button class=\"calculate-btn\" id=\"calculateBtn\">\n                    <span>\ud83d\udcca<\/span>\n                    <span>Calcular Valores<\/span>\n                <\/button>\n                <button class=\"clear-btn\" id=\"clearBtn\">\n                    <span>\ud83d\uddd1\ufe0f<\/span>\n                    <span>Limpiar Todo<\/span>\n                <\/button>\n            <\/div>\n            \n            <!-- Secci\u00f3n de resultados -->\n            <div class=\"results-section\">\n                <div class=\"section-title\">\n                    <span>\ud83d\udcc8 Resultados Calculados<\/span>\n                    <div style=\"font-size: clamp(12px, 2.5vw, 14px); color:#7f8c8d;\" id=\"lastUpdated\">Ingresa datos y haz clic en Calcular<\/div>\n                <\/div>\n                \n                <div class=\"results-grid\">\n                    <!-- Resultados en USD -->\n                    <div class=\"result-card usd-card\" id=\"cardUsd\">\n                        <div class=\"result-title\">EN D\u00d3LARES (USD)<\/div>\n                        \n                        <div class=\"result-item\">\n                            <span class=\"item-label\">Precio del Producto en USD:<\/span>\n                            <span class=\"item-value\"><span class=\"currency\">USD<\/span> <span id=\"resultPrice\">0,00<\/span><\/span>\n                        <\/div>\n                        \n                        <div class=\"result-item\">\n                            <span class=\"item-label\">Impuesto (% del precio):<\/span>\n                            <span class=\"item-value\"><span class=\"currency\">USD<\/span> <span id=\"resultTaxAmount\">0,00<\/span><\/span>\n                        <\/div>\n                        \n                        <div class=\"result-item\">\n                            <span class=\"item-label\">Total (Precio + Impuesto + Env\u00edo):<\/span>\n                            <span class=\"item-value\"><span class=\"currency\">USD<\/span> <span id=\"resultTotalUsd\">0,00<\/span><\/span>\n                        <\/div>\n                        \n                        <div class=\"result-item\">\n                            <span class=\"item-label\">Comisi\u00f3n (% del total):<\/span>\n                            <span class=\"item-value\"><span class=\"currency\">USD<\/span> <span id=\"resultProfitAmount\">0,00<\/span><\/span>\n                        <\/div>\n                        \n                        <div class=\"result-item\">\n                            <span class=\"item-label\">TOTAL + Comisi\u00f3n:<\/span>\n                            <span class=\"item-value\"><span class=\"currency\">USD<\/span> <span id=\"resultTotalWithCommission\">0,00<\/span><\/span>\n                            <div class=\"decimal-note\">(con 2 decimales)<\/div>\n                        <\/div>\n                        \n                        <!-- NUEVO: Flete Bolivia -->\n                        <div class=\"result-item\">\n                            <span class=\"item-label\">Precio Flete Bolivia:<\/span>\n                            <span class=\"item-value\"><span class=\"currency\">USD<\/span> <span id=\"resultBoliviaFreight\">0,00<\/span><\/span>\n                        <\/div>\n                        \n                        <!-- NUEVO: Total USD -->\n                        <div class=\"result-item\" style=\"border-top: 2px solid #3498db; padding-top: 15px; margin-top: 15px;\">\n                            <span class=\"item-label\">TOTAL USD:<\/span>\n                            <span class=\"item-value\" style=\"color: #e74c3c; font-size: 20px;\">\n                                <span class=\"currency\">USD<\/span> <span id=\"resultTotalUsdWithFreight\">0,00<\/span>\n                            <\/span>\n                            <div class=\"decimal-note\">(TOTAL + COMISI\u00d3N + Flete Bolivia)<\/div>\n                        <\/div>\n                    <\/div>\n                    \n                    <!-- Resultados en Bolivianos -->\n                    <div class=\"result-card bs-card\" id=\"cardBs\">\n                        <div class=\"result-title\">EN BOLIVIANOS (Bs)<\/div>\n                        \n                        <div class=\"result-item\">\n                            <span class=\"item-label\">TOTAL USD (con flete) \u00d7 Tipo de Cambio:<\/span>\n                            <span class=\"item-value\"><span class=\"currency currency-bs\">BS<\/span> <span id=\"resultTotalBs\">0,00<\/span><\/span>\n                        <\/div>\n                    <\/div>\n                    \n                    <!-- Resultados en USDT -->\n                    <div class=\"result-card usdt-card\" id=\"cardUsdt\">\n                        <div class=\"result-title\">EN CRIPTOMONEDA (USDT)<\/div>\n                        \n                        <div class=\"result-item\">\n                            <span class=\"item-label\">TOTAL USD (con flete) \u00d7 Comisi\u00f3n Binance:<\/span>\n                            <span class=\"item-value\"><span class=\"currency currency-usdt\">USDT<\/span> <span id=\"resultTotalUsdt\">0,00<\/span><\/span>\n                            <div class=\"decimal-note\">(con 2 decimales)<\/div>\n                        <\/div>\n                    <\/div>\n                    \n                    <!-- NUEVA TARJETA: C\u00e1lculos de peso y flete -->\n                    <div class=\"result-card air-freight-card\" id=\"cardWeight\">\n                        <div class=\"result-title\">C\u00c1LCULOS DE PESO Y FLETE<\/div>\n                        \n                        <div class=\"result-item\">\n                            <span class=\"item-label\">Peso del Producto (Kg):<\/span>\n                            <span class=\"item-value\"><span id=\"resultProductWeight\">0,00<\/span> Kg<\/span>\n                        <\/div>\n                        \n                        <div class=\"result-item\">\n                            <span class=\"item-label\">Peso Volumen (Kg):<\/span>\n                            <span class=\"item-value\"><span id=\"resultVolumeWeight\">0,00<\/span> Kg<\/span>\n                            <div class=\"decimal-note\">(Alto \u00d7 Ancho \u00d7 Largo \u00f7 5000)<\/div>\n                        <\/div>\n                        \n                        <div class=\"weight-comparison\">\n                            <div class=\"item-label\">Comparaci\u00f3n de pesos:<\/div>\n                            <div class=\"comparison-result\">\n                                Peso a utilizar: <span id=\"resultWeightToUse\">0,00<\/span> Kg\n                                <div style=\"font-size: 12px; margin-top: 5px; font-weight: normal;\">\n                                    <span id=\"weightComparisonText\">Se utiliza el mayor entre peso real y peso volumen<\/span>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                        \n                        <div class=\"result-item\">\n                            <span class=\"item-label\">Precio por kilo en USD:<\/span>\n                            <span class=\"item-value\"><span class=\"currency\">USD<\/span> <span id=\"resultPricePerKilo\">0,00<\/span><\/span>\n                        <\/div>\n                        \n                        <div class=\"result-item\" style=\"border-top: 2px solid #e74c3c; padding-top: 15px; margin-top: 15px;\">\n                            <span class=\"item-label\">Flete Bolivia:<\/span>\n                            <span class=\"item-value\" style=\"color: #e74c3c;\">\n                                <span class=\"currency\">USD<\/span> <span id=\"resultFreightCalculation\">0,00<\/span>\n                            <\/span>\n                            <div class=\"decimal-note\">(Precio\/kilo \u00d7 Peso mayor)<\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n                \n                <!-- NUEVA SECCI\u00d3N: Resumen Final Compra -->\n                <div class=\"summary-section purchase-summary-card\" id=\"purchaseSummaryCard\">\n                    <div class=\"section-title\">\n                        \ud83d\udccb RESUMEN FINAL COMPRA\n                        <div style=\"font-size: clamp(12px, 2.5vw, 14px); color:#7f8c8d;\">(redondeado mayor, sin decimales)<\/div>\n                    <\/div>\n                    \n                    <div class=\"summary-grid\">\n                        <div class=\"summary-item\">\n                            <div class=\"summary-label\">Total (Precio + Impuesto + Env\u00edo + Comisi\u00f3n)<\/div>\n                            <div class=\"summary-value\"><span class=\"currency\">USD<\/span> <span id=\"summaryPurchaseTotalUsd\">0<\/span><\/div>\n                        <\/div>\n                        \n                        <div class=\"summary-item\">\n                            <div class=\"summary-label\">Total en Bs<\/div>\n                            <div class=\"summary-value\"><span class=\"currency currency-bs\">BS<\/span> <span id=\"summaryPurchaseTotalBs\">0<\/span><\/div>\n                        <\/div>\n                        \n                        <div class=\"summary-item\">\n                            <div class=\"summary-label\">TOTAL USDT<\/div>\n                            <div class=\"summary-value\"><span class=\"currency currency-usdt\">USDT<\/span> <span id=\"summaryPurchaseTotalUsdt\">0<\/span><\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n                \n                <!-- SECCI\u00d3N ACTUAL: Resumen Final Compra y Transporte a Bolivia -->\n                <div class=\"summary-section transport-summary-card\" id=\"transportSummaryCard\">\n                    <div class=\"section-title\">\n                        \ud83d\ude9a RESUMEN FINAL COMPRA Y TRANSPORTE A BOLIVIA\n                        <div style=\"font-size: clamp(12px, 2.5vw, 14px); color:#7f8c8d;\">(redondeado mayor, sin decimales)<\/div>\n                    <\/div>\n                    \n                    <div class=\"summary-grid\">\n                        <div class=\"summary-item\">\n                            <div class=\"summary-label\">Total (Precio + Impuesto + Env\u00edo + Comisi\u00f3n + Flete Bolivia)<\/div>\n                            <div class=\"summary-value\"><span class=\"currency\">USD<\/span> <span id=\"summaryTransportTotalUsd\">0<\/span><\/div>\n                        <\/div>\n                        \n                        <div class=\"summary-item\">\n                            <div class=\"summary-label\">Total en Bs<\/div>\n                            <div class=\"summary-value\"><span class=\"currency currency-bs\">BS<\/span> <span id=\"summaryTransportTotalBs\">0<\/span><\/div>\n                        <\/div>\n                        \n                        <div class=\"summary-item\">\n                            <div class=\"summary-label\">TOTAL USDT<\/div>\n                            <div class=\"summary-value\"><span class=\"currency currency-usdt\">USDT<\/span> <span id=\"summaryTransportTotalUsdt\">0<\/span><\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n                \n                <div class=\"status-bar\">\n                    <div>\n                        <span id=\"changeCount\">Ingresa valores en todos los campos<\/span>\n                    <\/div>\n                    <div>\n                        <span id=\"resultTimestamp\">Esperando c\u00e1lculo...<\/span>\n                    <\/div>\n                <\/div>\n            <\/div>\n            \n            <!-- Pasos de c\u00e1lculo -->\n            <div class=\"calculation-steps\">\n                <div class=\"section-title\">\n                    \ud83e\uddee Pasos del C\u00e1lculo\n                <\/div>\n                \n                <div class=\"step\">\n                    <div class=\"step-formula\" id=\"step1\">Impuesto = [Precio USD] \u00d7 ([% Impuesto USA] \u00f7 100)<\/div>\n                    <div style=\"font-size: clamp(13px, 2.5vw, 14px);\">Se calcula el impuesto sobre el precio original<\/div>\n                <\/div>\n                \n                <div class=\"step\">\n                    <div class=\"step-formula\" id=\"step2\">Total USA = [Precio] + [Impuesto] + [Env\u00edo y Manejo]<\/div>\n                    <div style=\"font-size: clamp(13px, 2.5vw, 14px);\">Se suman precio, impuesto y env\u00edo<\/div>\n                <\/div>\n                \n                <div class=\"step\">\n                    <div class=\"step-formula\" id=\"step3\">Comisi\u00f3n = [Total USA] \u00d7 ([% Comisi\u00f3n] \u00f7 100)<\/div>\n                    <div style=\"font-size: clamp(13px, 2.5vw, 14px);\">Se calcula la comisi\u00f3n sobre el total USA<\/div>\n                <\/div>\n                \n                <div class=\"step\">\n                    <div class=\"step-formula\" id=\"step4\">TOTAL + Comisi\u00f3n = [Total USA] + [Comisi\u00f3n]<\/div>\n                    <div style=\"font-size: clamp(13px, 2.5vw, 14px);\">Se suma la comisi\u00f3n al total USA<\/div>\n                <\/div>\n                \n                <!-- NUEVOS PASOS: C\u00e1lculos de peso y flete Bolivia -->\n                <div class=\"step\">\n                    <div class=\"step-formula\" id=\"step5\">Peso Volumen = [Alto] \u00d7 [Ancho] \u00d7 [Largo] \u00f7 5000<\/div>\n                    <div style=\"font-size: clamp(13px, 2.5vw, 14px);\">Se calcula el peso volumen a\u00e9reo del producto<\/div>\n                <\/div>\n                \n                <div class=\"step\">\n                    <div class=\"step-formula\" id=\"step6\">Peso a utilizar = Mayor entre [Peso Producto] y [Peso Volumen]<\/div>\n                    <div style=\"font-size: clamp(13px, 2.5vw, 14px);\">Se toma el mayor valor entre peso real y peso volumen<\/div>\n                <\/div>\n                \n                <div class=\"step\">\n                    <div class=\"step-formula\" id=\"step7\">Precio Flete Bolivia = [Precio\/kilo] \u00d7 [Peso a utilizar]<\/div>\n                    <div style=\"font-size: clamp(13px, 2.5vw, 14px);\">Se calcula el flete a\u00e9reo a Bolivia<\/div>\n                <\/div>\n                \n                <div class=\"step\">\n                    <div class=\"step-formula\" id=\"step8\">TOTAL USD = [TOTAL + Comisi\u00f3n] + [Precio Flete Bolivia]<\/div>\n                    <div style=\"font-size: clamp(13px, 2.5vw, 14px);\">Se suma el flete al total anterior<\/div>\n                <\/div>\n                \n                <div class=\"step\">\n                    <div class=\"step-formula\" id=\"step9\">Bolivianos = [TOTAL USD] \u00d7 [Tipo de Cambio]<\/div>\n                    <div style=\"font-size: clamp(13px, 2.5vw, 14px);\">Se convierte a bolivianos usando el tipo de cambio<\/div>\n                <\/div>\n                \n                <div class=\"step\">\n                    <div class=\"step-formula\" id=\"step10\">USDT = [TOTAL USD] \u00d7 (1 + [% Comisi\u00f3n Binance] \u00f7 100)<\/div>\n                    <div style=\"font-size: clamp(13px, 2.5vw, 14px);\">Se agrega el porcentaje de comisi\u00f3n de Binance<\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <script>\n        \/\/ Variables globales\n        let originalValues = {};\n        let hasChanges = false;\n        let changeCount = 0;\n        \n        \/\/ Obtener elementos de entrada ORIGINALES\n        const usdPriceInput = document.getElementById('usdPrice');\n        const taxPercentInput = document.getElementById('taxPercent');\n        const shippingInput = document.getElementById('shipping');\n        const profitPercentInput = document.getElementById('profitPercent');\n        const exchangeRateInput = document.getElementById('exchangeRate');\n        const binancePercentInput = document.getElementById('binancePercent');\n        \n        \/\/ Obtener elementos de entrada NUEVOS\n        const pricePerKiloInput = document.getElementById('pricePerKilo');\n        const productWeightInput = document.getElementById('productWeight');\n        const heightInput = document.getElementById('height');\n        const widthInput = document.getElementById('width');\n        const lengthInput = document.getElementById('length');\n        \n        \/\/ Obtener botones\n        const calculateBtn = document.getElementById('calculateBtn');\n        const clearBtn = document.getElementById('clearBtn');\n        \n        \/\/ Obtener elementos de resultados ORIGINALES\n        const resultPrice = document.getElementById('resultPrice');\n        const resultTaxAmount = document.getElementById('resultTaxAmount');\n        const resultTotalUsd = document.getElementById('resultTotalUsd');\n        const resultProfitAmount = document.getElementById('resultProfitAmount');\n        const resultTotalWithCommission = document.getElementById('resultTotalWithCommission');\n        const resultTotalBs = document.getElementById('resultTotalBs');\n        const resultTotalUsdt = document.getElementById('resultTotalUsdt');\n        \n        \/\/ Obtener elementos de resultados NUEVOS\n        const resultBoliviaFreight = document.getElementById('resultBoliviaFreight');\n        const resultTotalUsdWithFreight = document.getElementById('resultTotalUsdWithFreight');\n        const resultProductWeight = document.getElementById('resultProductWeight');\n        const resultVolumeWeight = document.getElementById('resultVolumeWeight');\n        const resultWeightToUse = document.getElementById('resultWeightToUse');\n        const weightComparisonText = document.getElementById('weightComparisonText');\n        const resultPricePerKilo = document.getElementById('resultPricePerKilo');\n        const resultFreightCalculation = document.getElementById('resultFreightCalculation');\n        \n        \/\/ Obtener elementos del resumen de COMPRA\n        const summaryPurchaseTotalUsd = document.getElementById('summaryPurchaseTotalUsd');\n        const summaryPurchaseTotalBs = document.getElementById('summaryPurchaseTotalBs');\n        const summaryPurchaseTotalUsdt = document.getElementById('summaryPurchaseTotalUsdt');\n        \n        \/\/ Obtener elementos del resumen de TRANSPORTE\n        const summaryTransportTotalUsd = document.getElementById('summaryTransportTotalUsd');\n        const summaryTransportTotalBs = document.getElementById('summaryTransportTotalBs');\n        const summaryTransportTotalUsdt = document.getElementById('summaryTransportTotalUsdt');\n        \n        \/\/ Obtener elementos de estado\n        const statusIndicator = document.getElementById('statusIndicator');\n        const lastUpdated = document.getElementById('lastUpdated');\n        const changeCountElement = document.getElementById('changeCount');\n        const resultTimestamp = document.getElementById('resultTimestamp');\n        \n        \/\/ Obtener tarjetas de resultados\n        const cardUsd = document.getElementById('cardUsd');\n        const cardBs = document.getElementById('cardBs');\n        const cardUsdt = document.getElementById('cardUsdt');\n        const cardWeight = document.getElementById('cardWeight');\n        const purchaseSummaryCard = document.getElementById('purchaseSummaryCard');\n        const transportSummaryCard = document.getElementById('transportSummaryCard');\n        \n        \/\/ Obtener grupos de formulario\n        const groupPrice = document.getElementById('groupPrice');\n        const groupTax = document.getElementById('groupTax');\n        const groupShipping = document.getElementById('groupShipping');\n        const groupProfit = document.getElementById('groupProfit');\n        const groupExchange = document.getElementById('groupExchange');\n        const groupBinance = document.getElementById('groupBinance');\n        const groupPricePerKilo = document.getElementById('groupPricePerKilo');\n        const groupProductWeight = document.getElementById('groupProductWeight');\n        const groupHeight = document.getElementById('groupHeight');\n        const groupWidth = document.getElementById('groupWidth');\n        const groupLength = document.getElementById('groupLength');\n        \n        \/\/ Obtener elementos de pasos de c\u00e1lculo\n        const step1 = document.getElementById('step1');\n        const step2 = document.getElementById('step2');\n        const step3 = document.getElementById('step3');\n        const step4 = document.getElementById('step4');\n        const step5 = document.getElementById('step5');\n        const step6 = document.getElementById('step6');\n        const step7 = document.getElementById('step7');\n        const step8 = document.getElementById('step8');\n        const step9 = document.getElementById('step9');\n        const step10 = document.getElementById('step10');\n        \n        \/\/ Funci\u00f3n para formatear n\u00fameros con decimales\n        function formatNumberWithDecimals(num, decimals = 2) {\n            if (isNaN(num) || !isFinite(num)) return '0,00';\n            return num.toLocaleString('es-ES', {\n                minimumFractionDigits: decimals,\n                maximumFractionDigits: decimals\n            });\n        }\n        \n        \/\/ Funci\u00f3n para formatear n\u00fameros sin decimales\n        function formatNumberWithoutDecimals(num) {\n            if (isNaN(num) || !isFinite(num)) return '0';\n            const rounded = Math.ceil(num);\n            return rounded.toLocaleString('es-ES', {\n                minimumFractionDigits: 0,\n                maximumFractionDigits: 0\n            });\n        }\n        \n        \/\/ Funci\u00f3n para limpiar todos los campos\n        function clearAllFields() {\n            \/\/ Campos originales\n            usdPriceInput.value = '0';\n            taxPercentInput.value = '0';\n            shippingInput.value = '0';\n            profitPercentInput.value = '0';\n            exchangeRateInput.value = '0';\n            binancePercentInput.value = '0';\n            \n            \/\/ Nuevos campos\n            pricePerKiloInput.value = '0';\n            productWeightInput.value = '0';\n            heightInput.value = '0';\n            widthInput.value = '0';\n            lengthInput.value = '0';\n            \n            \/\/ Guardar valores originales\n            saveOriginalValues();\n            \n            \/\/ Resetear todos los resultados\n            resetAllResults();\n            \n            \/\/ Actualizar estado\n            hasChanges = false;\n            updateUIForChanges();\n            \n            \/\/ Actualizar mensajes\n            statusIndicator.textContent = \"\u2713 Campos limpiados\";\n            statusIndicator.className = \"status-indicator status-updated\";\n            lastUpdated.textContent = \"Campos listos para nuevos datos\";\n            resultTimestamp.textContent = \"Esperando c\u00e1lculo...\";\n            changeCountElement.textContent = \"Ingresa valores en todos los campos\";\n            \n            \/\/ Enfocar el primer campo\n            usdPriceInput.focus();\n        }\n        \n        \/\/ Funci\u00f3n para resetear todos los resultados\n        function resetAllResults() {\n            \/\/ Resetear resultados ORIGINALES\n            resultPrice.textContent = '0,00';\n            resultTaxAmount.textContent = '0,00';\n            resultTotalUsd.textContent = '0,00';\n            resultProfitAmount.textContent = '0,00';\n            resultTotalWithCommission.textContent = '0,00';\n            resultTotalBs.textContent = '0,00';\n            resultTotalUsdt.textContent = '0,00';\n            \n            \/\/ Resetear resultados NUEVOS\n            resultBoliviaFreight.textContent = '0,00';\n            resultTotalUsdWithFreight.textContent = '0,00';\n            resultProductWeight.textContent = '0,00';\n            resultVolumeWeight.textContent = '0,00';\n            resultWeightToUse.textContent = '0,00';\n            weightComparisonText.textContent = 'Se utiliza el mayor entre peso real y peso volumen';\n            resultPricePerKilo.textContent = '0,00';\n            resultFreightCalculation.textContent = '0,00';\n            \n            \/\/ Resetear resumen de COMPRA\n            summaryPurchaseTotalUsd.textContent = '0';\n            summaryPurchaseTotalBs.textContent = '0';\n            summaryPurchaseTotalUsdt.textContent = '0';\n            \n            \/\/ Resetear resumen de TRANSPORTE\n            summaryTransportTotalUsd.textContent = '0';\n            summaryTransportTotalBs.textContent = '0';\n            summaryTransportTotalUsdt.textContent = '0';\n            \n            \/\/ Resetear pasos de c\u00e1lculo\n            resetCalculationSteps();\n        }\n        \n        \/\/ Funci\u00f3n para resetear pasos de c\u00e1lculo\n        function resetCalculationSteps() {\n            step1.textContent = `Impuesto = [Precio USD] \u00d7 ([% Impuesto USA] \u00f7 100)`;\n            step2.textContent = `Total USA = [Precio] + [Impuesto] + [Env\u00edo y Manejo]`;\n            step3.textContent = `Comisi\u00f3n = [Total USA] \u00d7 ([% Comisi\u00f3n] \u00f7 100)`;\n            step4.textContent = `TOTAL + Comisi\u00f3n = [Total USA] + [Comisi\u00f3n]`;\n            step5.textContent = `Peso Volumen = [Alto] \u00d7 [Ancho] \u00d7 [Largo] \u00f7 5000`;\n            step6.textContent = `Peso a utilizar = Mayor entre [Peso Producto] y [Peso Volumen]`;\n            step7.textContent = `Precio Flete Bolivia = [Precio\/kilo] \u00d7 [Peso a utilizar]`;\n            step8.textContent = `TOTAL USD = [TOTAL + Comisi\u00f3n] + [Precio Flete Bolivia]`;\n            step9.textContent = `Bolivianos = [TOTAL USD] \u00d7 [Tipo de Cambio]`;\n            step10.textContent = `USDT = [TOTAL USD] \u00d7 (1 + [% Comisi\u00f3n Binance] \u00f7 100)`;\n        }\n        \n        \/\/ Guardar valores originales\n        function saveOriginalValues() {\n            originalValues = {\n                usdPrice: parseFloat(usdPriceInput.value) || 0,\n                taxPercent: parseFloat(taxPercentInput.value) || 0,\n                shipping: parseFloat(shippingInput.value) || 0,\n                profitPercent: parseFloat(profitPercentInput.value) || 0,\n                exchangeRate: parseFloat(exchangeRateInput.value) || 0,\n                binancePercent: parseFloat(binancePercentInput.value) || 0,\n                pricePerKilo: parseFloat(pricePerKiloInput.value) || 0,\n                productWeight: parseFloat(productWeightInput.value) || 0,\n                height: parseFloat(heightInput.value) || 0,\n                width: parseFloat(widthInput.value) || 0,\n                length: parseFloat(lengthInput.value) || 0\n            };\n        }\n        \n        \/\/ Verificar si hay datos ingresados\n        function hasDataEntered() {\n            const currentValues = {\n                usdPrice: parseFloat(usdPriceInput.value) || 0,\n                taxPercent: parseFloat(taxPercentInput.value) || 0,\n                shipping: parseFloat(shippingInput.value) || 0,\n                profitPercent: parseFloat(profitPercentInput.value) || 0,\n                exchangeRate: parseFloat(exchangeRateInput.value) || 0,\n                binancePercent: parseFloat(binancePercentInput.value) || 0,\n                pricePerKilo: parseFloat(pricePerKiloInput.value) || 0,\n                productWeight: parseFloat(productWeightInput.value) || 0,\n                height: parseFloat(heightInput.value) || 0,\n                width: parseFloat(widthInput.value) || 0,\n                length: parseFloat(lengthInput.value) || 0\n            };\n            \n            \/\/ Verificar si al menos un campo tiene valor mayor a 0\n            return Object.values(currentValues).some(value => value > 0);\n        }\n        \n        \/\/ Verificar cambios en los inputs\n        function checkForChanges() {\n            changeCount = 0;\n            hasChanges = false;\n            \n            const currentValues = {\n                usdPrice: parseFloat(usdPriceInput.value) || 0,\n                taxPercent: parseFloat(taxPercentInput.value) || 0,\n                shipping: parseFloat(shippingInput.value) || 0,\n                profitPercent: parseFloat(profitPercentInput.value) || 0,\n                exchangeRate: parseFloat(exchangeRateInput.value) || 0,\n                binancePercent: parseFloat(binancePercentInput.value) || 0,\n                pricePerKilo: parseFloat(pricePerKiloInput.value) || 0,\n                productWeight: parseFloat(productWeightInput.value) || 0,\n                height: parseFloat(heightInput.value) || 0,\n                width: parseFloat(widthInput.value) || 0,\n                length: parseFloat(lengthInput.value) || 0\n            };\n            \n            \/\/ Verificar cada campo\n            const fields = [\n                {name: 'usdPrice', element: groupPrice, input: usdPriceInput},\n                {name: 'taxPercent', element: groupTax, input: taxPercentInput},\n                {name: 'shipping', element: groupShipping, input: shippingInput},\n                {name: 'profitPercent', element: groupProfit, input: profitPercentInput},\n                {name: 'exchangeRate', element: groupExchange, input: exchangeRateInput},\n                {name: 'binancePercent', element: groupBinance, input: binancePercentInput},\n                {name: 'pricePerKilo', element: groupPricePerKilo, input: pricePerKiloInput},\n                {name: 'productWeight', element: groupProductWeight, input: productWeightInput},\n                {name: 'height', element: groupHeight, input: heightInput},\n                {name: 'width', element: groupWidth, input: widthInput},\n                {name: 'length', element: groupLength, input: lengthInput}\n            ];\n            \n            fields.forEach(field => {\n                const hasChanged = currentValues[field.name] !== originalValues[field.name];\n                \n                if (hasChanged) {\n                    changeCount++;\n                    field.element.classList.add('changed');\n                    field.input.classList.add('input-changed');\n                    hasChanges = true;\n                } else {\n                    field.element.classList.remove('changed');\n                    field.input.classList.remove('input-changed');\n                }\n            });\n            \n            \/\/ Actualizar interfaz seg\u00fan cambios\n            updateUIForChanges();\n        }\n        \n        \/\/ Actualizar UI seg\u00fan cambios detectados\n        function updateUIForChanges() {\n            if (hasChanges) {\n                statusIndicator.textContent = \"\u26a0 Datos modificados\";\n                statusIndicator.className = \"status-indicator status-pending\";\n                \n                changeCountElement.textContent = `${changeCount} campo(s) modificado(s)`;\n                changeCountElement.style.color = \"#e74c3c\";\n                changeCountElement.style.fontWeight = \"600\";\n            } else {\n                statusIndicator.textContent = \"\u2713 Datos actualizados\";\n                statusIndicator.className = \"status-indicator status-updated\";\n                \n                changeCountElement.textContent = \"0 campos modificados\";\n                changeCountElement.style.color = \"#7f8c8d\";\n                changeCountElement.style.fontWeight = \"normal\";\n            }\n            \n            \/\/ Verificar si hay datos para calcular\n            if (hasDataEntered()) {\n                calculateBtn.innerHTML = '<span>\ud83d\udcca<\/span><span>Calcular Valores<\/span>';\n            } else {\n                calculateBtn.innerHTML = '<span>\ud83d\udcdd<\/span><span>Ingresa datos primero<\/span>';\n            }\n        }\n        \n        \/\/ Actualizar pasos de c\u00e1lculo\n        function updateCalculationSteps(usdPrice, taxPercent, shipping, profitPercent, exchangeRate, binancePercent,\n                                       pricePerKilo, productWeight, height, width, length,\n                                       volumeWeight, weightToUse, freightBolivia,\n                                       taxAmount, totalUsd, profitAmount, totalWithCommission, \n                                       totalUsdWithFreight, totalBs, totalUsdt) {\n            step1.textContent = `Impuesto = ${formatNumberWithDecimals(usdPrice)} \u00d7 (${taxPercent} \u00f7 100) = USD ${formatNumberWithDecimals(taxAmount)}`;\n            step2.textContent = `Total USA = ${formatNumberWithDecimals(usdPrice)} + ${formatNumberWithDecimals(taxAmount)} + ${formatNumberWithDecimals(shipping)} = USD ${formatNumberWithDecimals(totalUsd)}`;\n            step3.textContent = `Comisi\u00f3n = ${formatNumberWithDecimals(totalUsd)} \u00d7 (${profitPercent} \u00f7 100) = USD ${formatNumberWithDecimals(profitAmount)}`;\n            step4.textContent = `TOTAL + Comisi\u00f3n = ${formatNumberWithDecimals(totalUsd)} + ${formatNumberWithDecimals(profitAmount)} = USD ${formatNumberWithDecimals(totalWithCommission)}`;\n            step5.textContent = `Peso Volumen = ${formatNumberWithDecimals(height, 1)} \u00d7 ${formatNumberWithDecimals(width, 1)} \u00d7 ${formatNumberWithDecimals(length, 1)} \u00f7 5000 = ${formatNumberWithDecimals(volumeWeight, 2)} Kg`;\n            step6.textContent = `Peso a utilizar = Mayor entre ${formatNumberWithDecimals(productWeight, 2)} Kg y ${formatNumberWithDecimals(volumeWeight, 2)} Kg = ${formatNumberWithDecimals(weightToUse, 2)} Kg`;\n            step7.textContent = `Precio Flete Bolivia = ${formatNumberWithDecimals(pricePerKilo, 2)} \u00d7 ${formatNumberWithDecimals(weightToUse, 2)} = USD ${formatNumberWithDecimals(freightBolivia, 2)}`;\n            step8.textContent = `TOTAL USD = ${formatNumberWithDecimals(totalWithCommission, 2)} + ${formatNumberWithDecimals(freightBolivia, 2)} = USD ${formatNumberWithDecimals(totalUsdWithFreight, 2)}`;\n            step9.textContent = `Bolivianos = ${formatNumberWithDecimals(totalUsdWithFreight, 2)} \u00d7 ${formatNumberWithDecimals(exchangeRate, 2)} = BS ${formatNumberWithDecimals(totalBs)}`;\n            step10.textContent = `USDT = ${formatNumberWithDecimals(totalUsdWithFreight, 2)} \u00d7 (1 + ${binancePercent} \u00f7 100) = USDT ${formatNumberWithDecimals(totalUsdt)}`;\n        }\n        \n        \/\/ Funci\u00f3n principal de c\u00e1lculo\n        function calculateAll() {\n            \/\/ Verificar si hay datos ingresados\n            if (!hasDataEntered()) {\n                alert(\"Por favor, ingresa valores mayores a 0 en los campos para calcular.\");\n                usdPriceInput.focus();\n                return;\n            }\n            \n            \/\/ Obtener valores de entrada ORIGINALES\n            const usdPrice = parseFloat(usdPriceInput.value) || 0;\n            const taxPercent = parseFloat(taxPercentInput.value) || 0;\n            const shipping = parseFloat(shippingInput.value) || 0;\n            const profitPercent = parseFloat(profitPercentInput.value) || 0;\n            const exchangeRate = parseFloat(exchangeRateInput.value) || 0;\n            const binancePercent = parseFloat(binancePercentInput.value) || 0;\n            \n            \/\/ Obtener valores de entrada NUEVOS\n            const pricePerKilo = parseFloat(pricePerKiloInput.value) || 0;\n            const productWeight = parseFloat(productWeightInput.value) || 0;\n            const height = parseFloat(heightInput.value) || 0;\n            const width = parseFloat(widthInput.value) || 0;\n            const length = parseFloat(lengthInput.value) || 0;\n            \n            \/\/ Realizar c\u00e1lculos ORIGINALES\n            const taxAmount = usdPrice * (taxPercent \/ 100);\n            const totalUsd = usdPrice + taxAmount + shipping;\n            const profitAmount = totalUsd * (profitPercent \/ 100);\n            const totalWithCommission = totalUsd + profitAmount;\n            \n            \/\/ Realizar c\u00e1lculos NUEVOS para peso y flete\n            const volumeWeight = (height * width * length) \/ 5000;\n            const weightToUse = Math.max(productWeight, volumeWeight);\n            const freightBolivia = pricePerKilo * weightToUse;\n            \n            \/\/ Calcular el TOTAL USD con flete incluido\n            const totalUsdWithFreight = totalWithCommission + freightBolivia;\n            \n            \/\/ Calcular totales de COMPRA (sin flete)\n            const purchaseTotalBs = totalWithCommission * exchangeRate;\n            const purchaseTotalUsdt = totalWithCommission * (1 + (binancePercent \/ 100));\n            \n            \/\/ Calcular totales de TRANSPORTE (con flete)\n            const transportTotalBs = totalUsdWithFreight * exchangeRate;\n            const transportTotalUsdt = totalUsdWithFreight * (1 + (binancePercent \/ 100));\n            \n            \/\/ Actualizar resultados ORIGINALES\n            resultPrice.textContent = formatNumberWithDecimals(usdPrice);\n            resultTaxAmount.textContent = formatNumberWithDecimals(taxAmount);\n            resultTotalUsd.textContent = formatNumberWithDecimals(totalUsd);\n            resultProfitAmount.textContent = formatNumberWithDecimals(profitAmount);\n            resultTotalWithCommission.textContent = formatNumberWithDecimals(totalWithCommission);\n            resultTotalBs.textContent = formatNumberWithDecimals(transportTotalBs);\n            resultTotalUsdt.textContent = formatNumberWithDecimals(transportTotalUsdt);\n            \n            \/\/ Actualizar resultados NUEVOS\n            resultBoliviaFreight.textContent = formatNumberWithDecimals(freightBolivia);\n            resultTotalUsdWithFreight.textContent = formatNumberWithDecimals(totalUsdWithFreight);\n            resultProductWeight.textContent = formatNumberWithDecimals(productWeight, 2);\n            resultVolumeWeight.textContent = formatNumberWithDecimals(volumeWeight, 2);\n            resultWeightToUse.textContent = formatNumberWithDecimals(weightToUse, 2);\n            resultPricePerKilo.textContent = formatNumberWithDecimals(pricePerKilo);\n            resultFreightCalculation.textContent = formatNumberWithDecimals(freightBolivia);\n            \n            \/\/ Actualizar texto de comparaci\u00f3n de pesos\n            if (productWeight >= volumeWeight) {\n                weightComparisonText.textContent = `Se utiliza el Peso del Producto (${formatNumberWithDecimals(productWeight, 2)} Kg) porque es mayor o igual que el Peso Volumen (${formatNumberWithDecimals(volumeWeight, 2)} Kg)`;\n            } else {\n                weightComparisonText.textContent = `Se utiliza el Peso Volumen (${formatNumberWithDecimals(volumeWeight, 2)} Kg) porque es mayor que el Peso del Producto (${formatNumberWithDecimals(productWeight, 2)} Kg)`;\n            }\n            \n            \/\/ Actualizar resumen de COMPRA (sin flete)\n            summaryPurchaseTotalUsd.textContent = formatNumberWithoutDecimals(totalWithCommission);\n            summaryPurchaseTotalBs.textContent = formatNumberWithoutDecimals(purchaseTotalBs);\n            summaryPurchaseTotalUsdt.textContent = formatNumberWithoutDecimals(purchaseTotalUsdt);\n            \n            \/\/ Actualizar resumen de TRANSPORTE (con flete)\n            summaryTransportTotalUsd.textContent = formatNumberWithoutDecimals(totalUsdWithFreight);\n            summaryTransportTotalBs.textContent = formatNumberWithoutDecimals(transportTotalBs);\n            summaryTransportTotalUsdt.textContent = formatNumberWithoutDecimals(transportTotalUsdt);\n            \n            \/\/ Animar tarjetas de resultados\n            animateResultCards();\n            \n            \/\/ Actualizar pasos de c\u00e1lculo\n            updateCalculationSteps(usdPrice, taxPercent, shipping, profitPercent, exchangeRate, binancePercent,\n                                 pricePerKilo, productWeight, height, width, length,\n                                 volumeWeight, weightToUse, freightBolivia,\n                                 taxAmount, totalUsd, profitAmount, totalWithCommission,\n                                 totalUsdWithFreight, transportTotalBs, transportTotalUsdt);\n            \n            \/\/ Guardar nuevos valores como originales\n            saveOriginalValues();\n            \n            \/\/ Actualizar estado\n            hasChanges = false;\n            updateUIForChanges();\n            \n            \/\/ Actualizar timestamp\n            const now = new Date();\n            const timeString = now.toLocaleTimeString('es-ES', { \n                hour: '2-digit', \n                minute: '2-digit',\n                second: '2-digit'\n            });\n            lastUpdated.textContent = `\u00daltimo c\u00e1lculo: ${timeString}`;\n            resultTimestamp.textContent = `Resultados calculados: ${timeString}`;\n        }\n        \n        \/\/ Funci\u00f3n para animar tarjetas de resultados\n        function animateResultCards() {\n            \/\/ A\u00f1adir clase de actualizaci\u00f3n\n            cardUsd.classList.add('updated');\n            cardBs.classList.add('updated');\n            cardUsdt.classList.add('updated');\n            cardWeight.classList.add('updated');\n            purchaseSummaryCard.classList.add('updated');\n            transportSummaryCard.classList.add('updated');\n            \n            \/\/ Remover clase despu\u00e9s de animaci\u00f3n\n            setTimeout(() => {\n                cardUsd.classList.remove('updated');\n                cardBs.classList.remove('updated');\n                cardUsdt.classList.remove('updated');\n                cardWeight.classList.remove('updated');\n                purchaseSummaryCard.classList.remove('updated');\n                transportSummaryCard.classList.remove('updated');\n            }, 1000);\n        }\n        \n        \/\/ Inicializar\n        function init() {\n            \/\/ Guardar valores iniciales\n            saveOriginalValues();\n            \n            \/\/ Configurar event listeners para todos los inputs\n            const allInputs = [\n                usdPriceInput, taxPercentInput, shippingInput, \n                profitPercentInput, exchangeRateInput, binancePercentInput,\n                pricePerKiloInput, productWeightInput, heightInput, \n                widthInput, lengthInput\n            ];\n            \n            allInputs.forEach(input => {\n                input.addEventListener('input', checkForChanges);\n                input.addEventListener('change', checkForChanges);\n            });\n            \n            \/\/ Configurar bot\u00f3n de calcular\n            calculateBtn.addEventListener('click', calculateAll);\n            \n            \/\/ Configurar bot\u00f3n de limpiar\n            clearBtn.addEventListener('click', clearAllFields);\n            \n            \/\/ Tambi\u00e9n permitir calcular con Enter en todos los inputs\n            allInputs.forEach(input => {\n                input.addEventListener('keypress', function(e) {\n                    if (e.key === 'Enter') {\n                        calculateAll();\n                    }\n                });\n            });\n            \n            \/\/ Mensaje inicial\n            statusIndicator.textContent = \"\u2713 Esperando datos\";\n            statusIndicator.className = \"status-indicator status-updated\";\n        }\n        \n        \/\/ Iniciar cuando el DOM est\u00e9 cargado\n        document.addEventListener('DOMContentLoaded', init);\n    <\/script>\n<\/body>\n<\/html>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Calculadora de Costos de Importaci\u00f3n Calculadora de Costos de Importaci\u00f3n Ingresa los datos desde cero y haz clic en &#8220;Calcular Valores&#8221; para obtener resultados \ud83d\udca1 Ingresa todos los valores desde cero. Los campos tienen valores de ejemplo en placeholder. \ud83d\udcca Datos de Entrada \u2713 Esperando datos Precio del Producto en USD: Porcentaje Impuesto USA (%): [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"folder":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v20.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>coti - QRPRINCIPAL<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/qrprincipal.com\/en\/coti\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"coti\" \/>\n<meta property=\"og:description\" content=\"Calculadora de Costos de Importaci\u00f3n Calculadora de Costos de Importaci\u00f3n Ingresa los datos desde cero y haz clic en &#8220;Calcular Valores&#8221; para obtener resultados \ud83d\udca1 Ingresa todos los valores desde cero. Los campos tienen valores de ejemplo en placeholder. \ud83d\udcca Datos de Entrada \u2713 Esperando datos Precio del Producto en USD: Porcentaje Impuesto USA (%): [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/qrprincipal.com\/en\/coti\/\" \/>\n<meta property=\"og:site_name\" content=\"QRPRINCIPAL\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-19T20:32:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/qrprincipal.com\/wp-content\/uploads\/2023\/04\/qrpbg.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/qrprincipal.com\/coti\/\",\"url\":\"https:\/\/qrprincipal.com\/coti\/\",\"name\":\"coti - QRPRINCIPAL\",\"isPartOf\":{\"@id\":\"https:\/\/qrprincipal.com\/#website\"},\"datePublished\":\"2026-01-18T17:46:24+00:00\",\"dateModified\":\"2026-01-19T20:32:19+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/qrprincipal.com\/coti\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/qrprincipal.com\/coti\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/qrprincipal.com\/coti\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/qrprincipal.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"coti\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/qrprincipal.com\/#website\",\"url\":\"https:\/\/qrprincipal.com\/\",\"name\":\"QRPRINCIPAL\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/qrprincipal.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/qrprincipal.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/qrprincipal.com\/#organization\",\"name\":\"QRPRINCIPAL\",\"alternateName\":\"QRP\",\"url\":\"https:\/\/qrprincipal.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/qrprincipal.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/qrprincipal.com\/wp-content\/uploads\/2022\/12\/redesqrprincipal.jpg\",\"contentUrl\":\"https:\/\/qrprincipal.com\/wp-content\/uploads\/2022\/12\/redesqrprincipal.jpg\",\"width\":500,\"height\":500,\"caption\":\"QRPRINCIPAL\"},\"image\":{\"@id\":\"https:\/\/qrprincipal.com\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"coti - QRPRINCIPAL","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/qrprincipal.com\/en\/coti\/","og_locale":"en_US","og_type":"article","og_title":"coti","og_description":"Calculadora de Costos de Importaci\u00f3n Calculadora de Costos de Importaci\u00f3n Ingresa los datos desde cero y haz clic en &#8220;Calcular Valores&#8221; para obtener resultados \ud83d\udca1 Ingresa todos los valores desde cero. Los campos tienen valores de ejemplo en placeholder. \ud83d\udcca Datos de Entrada \u2713 Esperando datos Precio del Producto en USD: Porcentaje Impuesto USA (%): [&hellip;]","og_url":"https:\/\/qrprincipal.com\/en\/coti\/","og_site_name":"QRPRINCIPAL","article_modified_time":"2026-01-19T20:32:19+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/qrprincipal.com\/wp-content\/uploads\/2023\/04\/qrpbg.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/qrprincipal.com\/coti\/","url":"https:\/\/qrprincipal.com\/coti\/","name":"coti - QRPRINCIPAL","isPartOf":{"@id":"https:\/\/qrprincipal.com\/#website"},"datePublished":"2026-01-18T17:46:24+00:00","dateModified":"2026-01-19T20:32:19+00:00","breadcrumb":{"@id":"https:\/\/qrprincipal.com\/coti\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/qrprincipal.com\/coti\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/qrprincipal.com\/coti\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/qrprincipal.com\/"},{"@type":"ListItem","position":2,"name":"coti"}]},{"@type":"WebSite","@id":"https:\/\/qrprincipal.com\/#website","url":"https:\/\/qrprincipal.com\/","name":"QRPRINCIPAL","description":"","publisher":{"@id":"https:\/\/qrprincipal.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/qrprincipal.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/qrprincipal.com\/#organization","name":"QRPRINCIPAL","alternateName":"QRP","url":"https:\/\/qrprincipal.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/qrprincipal.com\/#\/schema\/logo\/image\/","url":"https:\/\/qrprincipal.com\/wp-content\/uploads\/2022\/12\/redesqrprincipal.jpg","contentUrl":"https:\/\/qrprincipal.com\/wp-content\/uploads\/2022\/12\/redesqrprincipal.jpg","width":500,"height":500,"caption":"QRPRINCIPAL"},"image":{"@id":"https:\/\/qrprincipal.com\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/qrprincipal.com\/en\/wp-json\/wp\/v2\/pages\/4919"}],"collection":[{"href":"https:\/\/qrprincipal.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/qrprincipal.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/qrprincipal.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/qrprincipal.com\/en\/wp-json\/wp\/v2\/comments?post=4919"}],"version-history":[{"count":10,"href":"https:\/\/qrprincipal.com\/en\/wp-json\/wp\/v2\/pages\/4919\/revisions"}],"predecessor-version":[{"id":4945,"href":"https:\/\/qrprincipal.com\/en\/wp-json\/wp\/v2\/pages\/4919\/revisions\/4945"}],"wp:attachment":[{"href":"https:\/\/qrprincipal.com\/en\/wp-json\/wp\/v2\/media?parent=4919"}],"wp:term":[{"taxonomy":"folder","embeddable":true,"href":"https:\/\/qrprincipal.com\/en\/wp-json\/wp\/v2\/folder?post=4919"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}