{"id":364,"date":"2026-03-10T11:53:09","date_gmt":"2026-03-10T11:53:09","guid":{"rendered":"https:\/\/coffeebe.com.br\/?page_id=364"},"modified":"2026-03-12T11:52:46","modified_gmt":"2026-03-12T11:52:46","slug":"cotacao","status":"publish","type":"page","link":"https:\/\/coffeebe.com.br\/en\/cotacao\/","title":{"rendered":"Cota\u00e7\u00e3o"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"364\" class=\"elementor elementor-364\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-19a31e3 e-con-full e-flex e-con e-parent\" data-id=\"19a31e3\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-be5f0ee elementor-widget elementor-widget-cotacao_cafe_widget\" data-id=\"be5f0ee\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"cotacao_cafe_widget.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\n    .coffee-widget-wrapper {\n        --cw-brand: #BD995F;\n        --cw-bg: #1D1D1D;\n        --cw-title-color: #BD995F;\n        --cw-text-main: #FFFFFF;\n        --cw-text-muted: #94a3b8;\n        --cw-border: #334155;\n        --cw-surface: #1e293b;\n        --cw-header-bg: #000000;\n        --cw-header-text: #ffffff;\n        --cw-card-bg: #000000;\n        --cw-footer-bg: #000000;\n        \n        --cw-news-bg: #000000;\n        --cw-news-title-color: #FFFFFF;\n        --cw-news-headline-color: #334155;\n        --cw-news-headline-hover: #ea580c;\n        --cw-news-date-color: #94a3b8;\n        \n        --cw-fs-color: #ffffff;\n        --cw-fs-size: 32px;\n        --cw-fs-text-color: #cbd5e1;\n\n        width: 100%;\n        font-family: 'Inter', system-ui, -apple-system, sans-serif;\n        background-color: var(--cw-bg);\n        width: 100%;\n    }\n\n    .cw-header {\n        position: relative;\n        background-color: var(--cw-header-bg, #1e293b);\n        color: var(--cw-header-text, #ffffff);\n        padding: 16px 24px;\n        display: flex;\n        justify-content: space-between;\n        align-items: center;\n        border-bottom: 2px solid var(--cw-brand, #ea580c);\n    }\n\n    .cw-header h2 {\n        margin: 0;\n        font-size: 1.25rem;\n        font-weight: 600;\n        display: flex;\n        align-items: center;\n        gap: 8px;\n        white-space: nowrap;\n    }\n\n    .cw-header-title-container {\n        position: absolute;\n        left: 0;\n        right: 0;\n        pointer-events: none;\n    }\n\n    .cw-header-title-container h2 {\n        display: inline-flex;\n        pointer-events: auto;\n    }\n\n    .cw-logo-container {\n        display: flex;\n        align-items: center;\n        z-index: 2;\n    }\n\n    .cw-logo-img {\n        max-height: 40px;\n        max-width: 150px;\n        object-fit: contain;\n    }\n\n    .cw-header h2 svg {\n        width: 24px;\n        height: 24px;\n        color: var(--cw-brand);\n    }\n\n    .cw-time {\n        font-size: 0.875rem;\n        color: #cbd5e1;\n        display: flex;\n        align-items: center;\n        gap: 6px;\n    }\n\n    .cw-live-indicator {\n        width: 8px;\n        height: 8px;\n        background-color: var(--cw-up, #10b981);\n        border-radius: 50%;\n        animation: cw-pulse 2s infinite;\n    }\n\n    @keyframes cw-pulse {\n        0% {\n            box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7);\n        }\n\n        70% {\n            box-shadow: 0 0 0 6px rgba(16, 185, 129, 0);\n        }\n\n        100% {\n            box-shadow: 0 0 0 0 rgba(16, 185, 129, 0);\n        }\n    }\n\n    .cw-grid {\n        display: grid;\n        grid-template-columns: 1fr;\n        gap: 1px;\n        background-color: var(--cw-border, #e2e8f0);\n    }\n\n    .cw-section {\n        background-color: var(--cw-bg, #ffffff);\n        padding: 20px;\n        overflow: hidden;\n        max-width: 100%;\n        box-sizing: border-box;\n    }\n\n    .cw-section-title {\n        font-family: 'Inter', system-ui, -apple-system, sans-serif;\n        font-size: 1rem;\n        font-weight: 600;\n        color: var(--cw-title-color);\n        margin: 0 0 16px 0;\n        display: flex;\n        align-items: center;\n        justify-content: space-between;\n    }\n\n    .cw-section-subtitle {\n        font-size: 0.75rem;\n        font-weight: 400;\n        color: var(--cw-text-muted, #64748b);\n        text-transform: uppercase;\n        letter-spacing: 0.05em;\n    }\n\n    .cw-table-responsive {\n        width: 100%;\n        max-width: 100%;\n        overflow-x: auto;\n        -webkit-overflow-scrolling: touch;\n        box-sizing: border-box;\n    }\n\n    .cw-table {\n        width: 100%;\n        border-collapse: collapse;\n        font-size: 0.875rem;\n    }\n\n    .cw-table th {\n        text-align: center;\n        padding: 8px 4px;\n        color: var(--cw-text-muted, #64748b);\n        font-weight: 500;\n        border-bottom: 1px solid var(--cw-border, #e2e8f0);\n        white-space: nowrap;\n        font-family: 'Inter', sans-serif;\n    }\n\n    .cw-table th:first-child {\n        text-align: left;\n    }\n\n    .cw-table td {\n        text-align: center;\n        padding: 12px 4px;\n        border-bottom: 1px solid var(--cw-border, #e2e8f0);\n        font-variant-numeric: tabular-nums;\n        transition: background-color 0.3s ease;\n        font-family: 'Inter', sans-serif;\n        color: var(--cw-text-main, #0f172a);\n    }\n\n    .cw-table td:first-child {\n        text-align: left;\n        font-weight: 600;\n    }\n\n    .cw-table tr:last-child td {\n        border-bottom: none;\n    }\n\n    .cw-val {\n        font-weight: 500;\n    }\n\n    .cw-var {\n        font-weight: 600;\n        white-space: nowrap;\n    }\n\n    .cw-var-flex {\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        gap: 4px;\n    }\n\n    .cw-up-text, .cw-table td.cw-up-text {\n        color: var(--cw-up, #10b981);\n    }\n\n    .cw-down-text, .cw-table td.cw-down-text {\n        color: var(--cw-down, #ef4444);\n    }\n\n    .update-flash-up {\n        animation: flashGreen 1s ease-out;\n    }\n\n    .update-flash-down {\n        animation: flashRed 1s ease-out;\n    }\n\n    @keyframes flashGreen {\n        0% {\n            background-color: var(--cw-up-bg, #d1fae5);\n        }\n\n        100% {\n            background-color: transparent;\n        }\n    }\n\n    @keyframes flashRed {\n        0% {\n            background-color: var(--cw-down-bg, #fee2e2);\n        }\n\n        100% {\n            background-color: transparent;\n        }\n    }\n\n    .cw-summary-cards {\n        display: grid;\n        grid-template-columns: 1fr 1fr;\n        gap: 12px;\n        margin-top: 16px;\n    }\n\n    .cw-card {\n        background-color: var(--cw-card-bg, #f8fafc);\n        border: 1px solid var(--cw-border, #e2e8f0);\n        border-radius: 8px;\n        padding: 12px;\n        display: flex;\n        flex-direction: column;\n        gap: 4px;\n    }\n\n    .cw-card-title {\n        font-family: 'Inter', sans-serif;\n        font-size: 0.75rem;\n        color: var(--cw-text-muted, #64748b);\n        font-weight: 500;\n    }\n\n    .cw-card-value {\n        font-family: 'Inter', sans-serif;\n        font-size: 1.125rem;\n        font-weight: 700;\n        color: var(--cw-text-main, #0f172a);\n    }\n\n    .cw-card-var {\n        font-family: 'Inter', sans-serif;\n        font-size: 0.75rem;\n        font-weight: 600;\n        display: flex;\n        align-items: center;\n        gap: 2px;\n    }\n\n    .cw-footer {\n        font-family: 'Inter', sans-serif;\n        background-color: var(--cw-footer-bg, #f8fafc);\n        padding: 12px 24px;\n        text-align: center;\n        font-size: 0.75rem;\n        color: var(--cw-text-muted, #64748b);\n        border-top: 1px solid var(--cw-border, #e2e8f0);\n    }\n\n    @media (max-width: 640px) {\n        .cw-header {\n            flex-direction: column;\n            align-items: center;\n            gap: 12px;\n        }\n\n        .cw-header h2 {\n            font-size: 1.125rem;\n        }\n\n        .cw-header-title-container {\n            position: relative;\n            text-align: center !important;\n        }\n\n        .cw-logo-container {\n            align-self: center;\n        }\n    }\n\n    .cw-table {\n        font-size: 0.8rem;\n    }\n\n    .cw-section {\n        padding: 16px;\n    }\n\n    .cw-grid {\n        grid-template-columns: 1fr;\n    }\n    }\n\n    body.elementor-editor-active .cw-live-indicator {\n        animation: none;\n        background-color: #cbd5e1;\n    }\n    \n    \/* ESTILOS NOTICIAS *\/\n    .cw-news-wrapper {\n        background-color: var(--cw-news-bg);\n        padding: 16px 24px;\n        border-top: 1px solid var(--cw-border);\n    }\n    .cw-news-header {\n        color: var(--cw-news-title-color);\n        font-size: 1rem;\n        font-weight: 700;\n        margin-bottom: 12px;\n        display: flex;\n        align-items: center;\n        gap: 8px;\n    }\n    .cw-news-list {\n        display: flex;\n        flex-direction: column;\n        gap: 12px;\n    }\n    .cw-news-item {\n        display: flex;\n        flex-direction: column;\n        gap: 2px;\n    }\n    .cw-news-item a.cw-news-title {\n        color: var(--cw-news-headline-color);\n        text-decoration: none;\n        font-size: 0.9rem;\n        font-weight: 600;\n        line-height: 1.3;\n        transition: color 0.2s ease;\n    }\n    .cw-news-item a.cw-news-title:hover {\n        color: var(--cw-news-headline-hover);\n    }\n    .cw-news-item .cw-news-date {\n        color: var(--cw-news-date-color);\n        font-size: 0.75rem;\n    }\n    .cw-loading-news {\n        color: var(--cw-text-muted);\n        font-size: 0.85rem;\n        font-style: italic;\n    }\n    \n    \/* ESTILOS FULLSCREEN BTN *\/\n    .cw-fullscreen-wrapper {\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        gap: 4px;\n        margin-left: 12px;\n    }\n    .cw-fullscreen-btn {\n        width: var(--cw-fs-size, 32px);\n        height: var(--cw-fs-size, 32px);\n        border-radius: 50%;\n        border: 1px solid var(--cw-fs-color, #ffffff);\n        background: transparent;\n        color: var(--cw-fs-color, #ffffff);\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        cursor: pointer;\n        transition: all 0.2s;\n        padding: 0;\n    }\n    .cw-fullscreen-btn svg {\n        width: 45%;\n        height: 45%;\n    }\n    .cw-fullscreen-btn:hover {\n        background: rgba(255, 255, 255, 0.1);\n    }\n    .cw-fullscreen-label {\n        color: var(--cw-fs-text-color, #cbd5e1);\n        font-size: 10px;\n        line-height: 1;\n        text-align: center;\n        white-space: nowrap;\n    }\n<\/style>\n\n<div class=\"coffee-widget-wrapper\">\n    <div class=\"cw-header\">\n        <div class=\"cw-logo-container\">\n                        <img decoding=\"async\" src=\"https:\/\/coffeebe.com.br\/wp-content\/uploads\/2024\/07\/Logo-Coffeebe-Preta.png\" alt=\"Logo\" class=\"cw-logo-img\" \/>\n                    <\/div>\n        <div class=\"cw-header-title-container\">\n            <h2>\n                Painel de Cota\u00e7\u00f5es            <\/h2>\n        <\/div>\n        <div class=\"cw-time\">\n            <div class=\"cw-live-indicator\" id=\"cwLivePulse\" style=\"background-color: #cbd5e1; animation: none;\">\n            <\/div>\n            <span id=\"cwClock\">Conectando...<\/span>\n            <div class=\"cw-fullscreen-wrapper\">\n                <button id=\"cwFullscreenBtn\" class=\"cw-fullscreen-btn\" title=\"Tela Cheia\">\n                    <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                        <path d=\"M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3\"><\/path>\n                    <\/svg>\n                <\/button>\n                <div class=\"cw-fullscreen-label\">Tela Cheia<\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <!-- Moedas e \u00cdndices Principais -->\n    <div class=\"cw-section\" style=\"border-bottom: 1px solid var(--cw-border, #e2e8f0);\">\n        <h3 class=\"cw-section-title\">Indicadores Financeiros<\/h3>\n        <div class=\"cw-summary-cards\" style=\"grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\">\n            <div class=\"cw-card\" id=\"cardDolar\">\n                <span class=\"cw-card-title\">D\u00f3lar Comercial<\/span>\n                <span class=\"cw-card-value cw-val\">-<\/span>\n                <span class=\"cw-card-var\">-<\/span>\n            <\/div>\n            <div class=\"cw-card\" id=\"cardEuro\">\n                <span class=\"cw-card-title\">Euro Comercial<\/span>\n                <span class=\"cw-card-value cw-val\">-<\/span>\n                <span class=\"cw-card-var\">-<\/span>\n            <\/div>\n            <div class=\"cw-card\" id=\"cardCoffeeNY\">\n                <span class=\"cw-card-title\">Coffee C Futures<\/span>\n                <span class=\"cw-card-value cw-val\" style=\"font-size: 1.5rem;\">-<\/span>\n                <span class=\"cw-card-var\">-<\/span>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <div class=\"cw-grid\">\n        <!-- Caf\u00e9 Ar\u00e1bica NY -->\n        <div class=\"cw-section\">\n            <h3 class=\"cw-section-title\">\n                Caf\u00e9 Ar\u00e1bica - ICE US (NY)\n                <span class=\"cw-section-subtitle\">Cents\/lb<\/span>\n            <\/h3>\n            <div class=\"cw-table-responsive\">\n                <table class=\"cw-table\">\n                    <thead>\n                        <tr>\n                            <th>Vencimento<\/th>\n                            <th>Pre\u00e7o<\/th>\n                            <th>Var. %<\/th>\n                            <th>Var.<\/th>\n                            <th>M\u00e1x<\/th>\n                            <th>M\u00edn<\/th>\n                        <\/tr>\n                    <\/thead>\n                    <tbody id=\"cwNyTable\">\n                        <tr>\n                            <td colspan=\"6\" style=\"text-align: center;\">Carregando...<\/td>\n                        <\/tr>\n                    <\/tbody>\n                <\/table>\n            <\/div>\n        <\/div>\n\n        <!-- Caf\u00e9 Robusta Europa -->\n        <div class=\"cw-section\">\n            <h3 class=\"cw-section-title\">\n                Caf\u00e9 Robusta - ICE EU (Londres)\n                <span class=\"cw-section-subtitle\">USD\/Ton<\/span>\n            <\/h3>\n            <div class=\"cw-table-responsive\">\n                <table class=\"cw-table\">\n                    <thead>\n                        <tr>\n                            <th>Vencimento<\/th>\n                            <th>Pre\u00e7o<\/th>\n                            <th>Var. %<\/th>\n                            <th>Var.<\/th>\n                            <th>M\u00e1x<\/th>\n                            <th>M\u00edn<\/th>\n                        <\/tr>\n                    <\/thead>\n                    <tbody id=\"cwReTable\">\n                        <tr>\n                            <td colspan=\"6\" style=\"text-align: center;\">Carregando...<\/td>\n                        <\/tr>\n                    <\/tbody>\n                <\/table>\n            <\/div>\n        <\/div>\n\n        <!-- Caf\u00e9 Ar\u00e1bica B3 -->\n        <div class=\"cw-section\">\n            <h3 class=\"cw-section-title\">\n                Caf\u00e9 Ar\u00e1bica - B3\n                <span class=\"cw-section-subtitle\">USD\/Saca<\/span>\n            <\/h3>\n            <div class=\"cw-table-responsive\">\n                <table class=\"cw-table\">\n                    <thead>\n                        <tr>\n                            <th>Vencimento<\/th>\n                            <th>Pre\u00e7o<\/th>\n                            <th>Var. %<\/th>\n                            <th>Var.<\/th>\n                            <th>M\u00e1x<\/th>\n                            <th>M\u00edn<\/th>\n                        <\/tr>\n                    <\/thead>\n                    <tbody id=\"cwB3Table\">\n                        <tr>\n                            <td colspan=\"6\" style=\"text-align: center;\">Carregando...<\/td>\n                        <\/tr>\n                    <\/tbody>\n                <\/table>\n            <\/div>\n        <\/div>\n\n        <!-- Milho B3 -->\n        <div class=\"cw-section\">\n            <h3 class=\"cw-section-title\">\n                Milho - B3\n                <span class=\"cw-section-subtitle\">BRL\/Saca (60kg)<\/span>\n            <\/h3>\n            <div class=\"cw-table-responsive\">\n                <table class=\"cw-table\">\n                    <thead>\n                        <tr>\n                            <th>Vencimento<\/th>\n                            <th>Pre\u00e7o<\/th>\n                            <th>Var. %<\/th>\n                            <th>Var.<\/th>\n                            <th>M\u00e1x<\/th>\n                            <th>M\u00edn<\/th>\n                        <\/tr>\n                    <\/thead>\n                    <tbody id=\"cwMiTable\">\n                        <tr>\n                            <td colspan=\"6\" style=\"text-align: center;\">Carregando...<\/td>\n                        <\/tr>\n                    <\/tbody>\n                <\/table>\n            <\/div>\n        <\/div>\n    <\/div>\n    \n        <!-- M\u00f3dulo de Not\u00edcias -->\n    <div class=\"cw-news-wrapper\">\n        <div class=\"cw-news-header\">\n            <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"var(--cw-brand)\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                <path d=\"M4 22h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16a2 2 0 0 1-2 2Zm0 0a2 2 0 0 1-2-2v-9c0-1.1.9-2 2-2h2\"><\/path>\n                <path d=\"M18 14h-8\"><\/path>\n                <path d=\"M15 18h-5\"><\/path>\n                <path d=\"M10 6h8v4h-8V6Z\"><\/path>\n            <\/svg>\n            \u00daltimas Not\u00edcias\n        <\/div>\n        <div class=\"cw-news-list\" id=\"cwNewsContainer\">\n            <span class=\"cw-loading-news\">Buscando not\u00edcias no momento...<\/span>\n        <\/div>\n    <\/div>\n    \n    <div class=\"cw-footer\">\n        Dados fornecidos para fins informativos. Cota\u00e7\u00f5es sujeitas a atraso ou simula\u00e7\u00e3o caso a API n\u00e3o responda.\n    <\/div>\n<\/div>\n\n<script>\n    (function () {\n        if (window.CoffeeWidgetInitData) return;\n        window.CoffeeWidgetInitData = true;\n\n        const iconUp = '<svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m18 15-6-6-6 6\"\/><\/svg>';\n        const iconDown = '<svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"m6 9 6 6 6-6\"\/><\/svg>';\n\n        let localState = {\n            ny: [], robusta_europa: [], b3_cafe: [], b3_milho: []\n        };\n\n        function formatNum(num, decimals = 2) {\n            return Number(num).toLocaleString('pt-BR', { minimumFractionDigits: decimals, maximumFractionDigits: decimals });\n        }\n\n        function getVarClass(diff) {\n            if (diff > 0) return 'cw-up-text';\n            if (diff < 0) return 'cw-down-text';\n            return '';\n        }\n\n        function getVarIcon(diff) {\n            if (diff > 0) return iconUp;\n            if (diff < 0) return iconDown;\n            return '';\n        }\n\n        const fakeData = {\n            ny: [\n                { id: 'ny-1', v: 'Mai\/24', last: 185.50, diff: 1.25, diff_pct: 0.68, min: 184.10, max: 187.00 },\n                { id: 'ny-2', v: 'Jul\/24', last: 183.20, diff: 0.90, diff_pct: 0.49, min: 182.00, max: 184.50 },\n                { id: 'ny-3', v: 'Set\/24', last: 182.10, diff: -0.45, diff_pct: -0.24, min: 181.50, max: 183.00 }\n            ],\n            robusta_europa: [\n                { id: 're-1', v: 'Mai\/24', last: 3250.00, diff: 25.00, diff_pct: 0.77, min: 3210.00, max: 3280.00 },\n                { id: 're-2', v: 'Jul\/24', last: 3180.00, diff: 15.00, diff_pct: 0.47, min: 3150.00, max: 3200.00 }\n            ],\n            b3_cafe: [\n                { id: 'b3-cf-1', v: 'Mai\/24', last: 235.10, diff: 1.50, diff_pct: 0.64, min: 233.00, max: 236.50 },\n                { id: 'b3-cf-2', v: 'Jul\/24', last: 234.00, diff: 1.10, diff_pct: 0.47, min: 232.50, max: 235.00 }\n            ],\n            b3_milho: [\n                { id: 'b3-mi-1', v: 'Mai\/24', last: 58.20, diff: -0.30, diff_pct: -0.51, min: 58.00, max: 58.80 },\n                { id: 'b3-mi-2', v: 'Jul\/24', last: 59.10, diff: -0.10, diff_pct: -0.16, min: 58.90, max: 59.50 }\n            ],\n            moedas: {\n                dolar: { last: 5.032, changePercent: -0.45 },\n                euro: { last: 5.450, changePercent: 0.15 },\n                ibovespa: { last: 128400, changePercent: -0.30 }\n            }\n        };\n\n        function renderRow(row) {\n            const varClass = getVarClass(row.diff);\n            const varIcon = getVarIcon(row.diff);\n            const sign = row.diff > 0 ? '+' : '';\n\n            let html = `<tr id=\"tr-${row.id}\">\n            <td>${row.v}<\/td>\n            <td class=\"cw-val\" id=\"val-last-${row.id}\">${formatNum(row.last)}<\/td>\n            <td class=\"cw-var ${varClass}\" id=\"val-diffpct-${row.id}\">${sign}${formatNum(row.diff_pct)}%<\/td>\n            <td class=\"cw-var ${varClass}\" id=\"val-diff-${row.id}\"><div class=\"cw-var-flex\">${varIcon} <span>${sign}${formatNum(row.diff)}<\/span><\/div><\/td>\n            <td id=\"val-max-${row.id}\">${formatNum(row.max)}<\/td>\n            <td id=\"val-min-${row.id}\">${formatNum(row.min)}<\/td>\n            <\/tr>`;\n            return html;\n        }\n\n        function updateRowDOM(tableId, dataKey, item) {\n            let tr = document.getElementById(`tr-${item.id}`);\n\n            if (!tr) {\n                localState[dataKey] = [];\n                const tbody = document.getElementById(tableId);\n                return false;\n            }\n\n            const tdLast = document.getElementById(`val-last-${item.id}`);\n            const tdDiffPct = document.getElementById(`val-diffpct-${item.id}`);\n            const tdDiff = document.getElementById(`val-diff-${item.id}`);\n            const tdMax = document.getElementById(`val-max-${item.id}`);\n            const tdMin = document.getElementById(`val-min-${item.id}`);\n\n            if (tdLast && tdDiff && tr) {\n                let oldVal = parseFloat(tdLast.textContent.replace(\/\\.\/g, '').replace(',', '.'));\n                let newVal = parseFloat(item.last);\n                let isUp = newVal > oldVal;\n                let isDown = newVal < oldVal;\n\n                tdLast.textContent = formatNum(item.last);\n                \n                if (tdMax) tdMax.textContent = formatNum(item.max);\n                if (tdMin) tdMin.textContent = formatNum(item.min);\n\n                const varClass = getVarClass(item.diff);\n                const varIcon = getVarIcon(item.diff);\n                const sign = item.diff > 0 ? '+' : '';\n\n                if (tdDiffPct) {\n                    tdDiffPct.className = `cw-var ${varClass}`;\n                    tdDiffPct.innerHTML = `${sign}${formatNum(item.diff_pct)}%`;\n                }\n\n                tdDiff.className = `cw-var ${varClass}`;\n                tdDiff.innerHTML = `<div class=\"cw-var-flex\">${varIcon} <span>${sign}${formatNum(item.diff)}<\/span><\/div>`;\n\n                if (isUp || isDown) {\n                    tr.classList.remove('update-flash-up', 'update-flash-down');\n                    void tr.offsetWidth;\n                    tr.classList.add(isUp ? 'update-flash-up' : 'update-flash-down');\n                }\n            }\n            return true;\n        }\n\n        function renderFullTable(tableId, dataArray) {\n            const tbody = document.getElementById(tableId);\n            if (tbody) tbody.innerHTML = dataArray.map(renderRow).join('');\n        }\n\n        function updateCardDOM(cardIdSuffix, dataObj, prefix = '', decimals = 2, suffix = '') {\n            if (!dataObj) return;\n            const card = document.getElementById(`card${cardIdSuffix}`);\n            if (!card) return;\n            const valEl = card.querySelector('.cw-card-value');\n            const varEl = card.querySelector('.cw-card-var');\n            if (valEl) {\n                if (suffix) {\n                    valEl.innerHTML = `${prefix}${formatNum(dataObj.last, decimals)} <span style=\"font-size: 0.6em; opacity: 0.8; font-weight: normal;\">${suffix}<\/span>`;\n                } else {\n                    valEl.textContent = prefix + formatNum(dataObj.last, decimals);\n                }\n            }\n            if (varEl) {\n                const changePct = dataObj.changePercent !== undefined ? dataObj.changePercent : dataObj.diff_pct;\n                const changeAbs = dataObj.diff !== undefined ? dataObj.diff : null;\n                const varClass = getVarClass(changePct);\n                const varIcon = getVarIcon(changePct);\n                const sign = changePct > 0 ? '+' : '';\n                varEl.className = `cw-card-var ${varClass}`;\n                \n                if (changeAbs !== null) {\n                    varEl.innerHTML = `<div class=\"cw-var-flex\" style=\"font-size: 1rem;\">${varIcon} <span>${sign}${formatNum(changeAbs)}<\/span> <span style=\"margin-left:6px;\">${sign}${formatNum(changePct)}%<\/span><\/div>`;\n                } else {\n                    varEl.innerHTML = `<div class=\"cw-var-flex\">${varIcon} <span>${sign}${formatNum(changePct)}%<\/span><\/div>`;\n                }\n            }\n        }\n\n        async function fetchRealData() {\n            const baseUrl = 'https:\/\/coffeebe.com.br\/en\/wp-json\/cotacao\/v1\/dados';\n            const apiUrl = baseUrl + (baseUrl.includes('?') ? '&' : '?') + '_t=' + Date.now();\n            try {\n                const response = await fetch(apiUrl);\n                if (!response.ok) throw new Error('Erro na API: ' + response.status);\n                const data = await response.json();\n\n                const pulse = document.getElementById('cwLivePulse');\n                if (pulse) {\n                    pulse.style.backgroundColor = 'var(--cw-brand)';\n                    pulse.style.animation = 'pulse 2s infinite';\n                }\n\n                const applyData = (key, tableId) => {\n                    if (data[key] && data[key].length > 0) {\n                        if (localState[key].length === 0) {\n                            renderFullTable(tableId, data[key]);\n                        } else {\n                            data[key].forEach(item => {\n                                if (!updateRowDOM(tableId, key, item)) {\n                                    localState[key] = [];\n                                    renderFullTable(tableId, data[key]);\n                                }\n                            });\n                        }\n                    }\n                };\n\n                applyData('ny', 'cwNyTable');\n                applyData('robusta_europa', 'cwReTable');\n                applyData('b3_cafe', 'cwB3Table');\n                applyData('b3_milho', 'cwMiTable');\n\n                if (data.moedas) {\n                    updateCardDOM('Dolar', data.moedas.dolar, 'R$ ', 3);\n                    updateCardDOM('Euro', data.moedas.euro, 'R$ ', 3);\n                }\n                if (data.ny && data.ny.length > 0) {\n                    const nyCardData = data.ny.length > 1 ? data.ny[1] : data.ny[0];\n                    updateCardDOM('CoffeeNY', nyCardData, '', 2, 'USX\/LBR');\n                }\n\n            } catch (error) {\n                console.warn('Backend indispon\u00edvel, usando fake data. Erro: ', error);\n                \n                const applyFakeData = (key, tableId) => {\n                    if (localState[key].length === 0) {\n                        localState[key] = [...fakeData[key]];\n                        renderFullTable(tableId, fakeData[key]);\n                    } else {\n                        fakeData[key].forEach(item => {\n                            updateRowDOM(tableId, key, item);\n                        });\n                    }\n                };\n\n                applyFakeData('ny', 'cwNyTable');\n                applyFakeData('robusta_europa', 'cwReTable');\n                applyFakeData('b3_cafe', 'cwB3Table');\n                applyFakeData('b3_milho', 'cwMiTable');\n\n                updateCardDOM('Dolar', fakeData.moedas.dolar, 'R$ ', 3);\n                updateCardDOM('Euro', fakeData.moedas.euro, 'R$ ', 3);\n                \n                const fakeNyCardData = fakeData.ny.length > 1 ? fakeData.ny[1] : fakeData.ny[0];\n                updateCardDOM('CoffeeNY', fakeNyCardData, '', 2, 'USX\/LBR');\n            }\n\n            const now = new Date();\n            const clock = document.getElementById('cwClock');\n            if (clock) {\n                clock.textContent = 'Atualizado ' + now.toLocaleTimeString('pt-BR', { hour: '2-digit', minute: '2-digit' });\n            }\n        }\n        \n        async function fetchNewsData() {\n            const container = document.getElementById('cwNewsContainer');\n            if (!container) return;\n            \n            const baseUrl = 'https:\/\/coffeebe.com.br\/en\/wp-json\/cotacao\/v1\/noticias';\n            const apiUrl = baseUrl + (baseUrl.includes('?') ? '&' : '?') + '_t=' + Date.now();\n            try {\n                const response = await fetch(apiUrl);\n                if (!response.ok) throw new Error('Erro ao buscar not\u00edcias');\n                const news = await response.json();\n                \n                if (news && news.length > 0) {\n                    container.innerHTML = news.map(item => `\n                        <div class=\"cw-news-item\">\n                            <a href=\"${item.link}\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"cw-news-title\">${item.title}<\/a>\n                            <span class=\"cw-news-date\">${item.date}<\/span>\n                        <\/div>\n                    `).join('');\n                } else {\n                    container.innerHTML = '<span class=\"cw-loading-news\">Nenhuma not\u00edcia dispon\u00edvel no momento.<\/span>';\n                }\n            } catch (error) {\n                console.warn('Erro ao carregar not\u00edcias', error);\n                container.innerHTML = '<span class=\"cw-loading-news\" style=\"color:#ef4444;\">Falha ao carregar as not\u00edcias.<\/span>';\n            }\n        }\n\n        \/\/ Fullscreen Logic\n        const wrapper = document.querySelector('.coffee-widget-wrapper');\n        const fullscreenBtn = document.getElementById('cwFullscreenBtn');\n\n        if (fullscreenBtn && wrapper) {\n            fullscreenBtn.addEventListener('click', () => {\n                if (!document.fullscreenElement) {\n                    if (wrapper.requestFullscreen) {\n                        wrapper.requestFullscreen().catch(err => console.log(err));\n                    } else if (wrapper.webkitRequestFullscreen) { \/* Safari *\/\n                        wrapper.webkitRequestFullscreen();\n                    } else if (wrapper.msRequestFullscreen) { \/* IE11 *\/\n                        wrapper.msRequestFullscreen();\n                    }\n                } else {\n                    if (document.exitFullscreen) {\n                        document.exitFullscreen();\n                    } else if (document.webkitExitFullscreen) { \/* Safari *\/\n                        document.webkitExitFullscreen();\n                    } else if (document.msExitFullscreen) { \/* IE11 *\/\n                        document.msExitFullscreen();\n                    }\n                }\n            });\n\n            document.addEventListener('fullscreenchange', () => {\n                if (document.fullscreenElement) {\n                    wrapper.classList.add('cw-is-fullscreen');\n                } else {\n                    wrapper.classList.remove('cw-is-fullscreen');\n                }\n            });\n        }\n\n        \/\/ Initial fetch\n        fetchRealData();\n        fetchNewsData();\n\n        \/\/ Setup interval (Cota\u00e7\u00f5es a cada 15s)\n        setInterval(fetchRealData, 15000);\n        \n        \/\/ Setup interval Not\u00edcias (A cada 15 minutos = 900000 ms)\n        setInterval(fetchNewsData, 900000);\n\n    })();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Painel de Cota\u00e7\u00f5es Conectando&#8230; Indicadores Financeiros D\u00f3lar Comercial &#8211; &#8211; Euro Comercial &#8211; &#8211; Coffee C Futures &#8211; &#8211; Caf\u00e9 Ar\u00e1bica &#8211; ICE US (NY) Cents\/lb Vencimento Pre\u00e7o Var. % Var. M\u00e1x M\u00edn Carregando&#8230; Caf\u00e9 Robusta &#8211; ICE EU (Londres) USD\/Ton Vencimento Pre\u00e7o Var. % Var. M\u00e1x M\u00edn Carregando&#8230; Caf\u00e9 Ar\u00e1bica &#8211; B3 USD\/Saca Vencimento [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-364","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/coffeebe.com.br\/en\/wp-json\/wp\/v2\/pages\/364","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/coffeebe.com.br\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/coffeebe.com.br\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/coffeebe.com.br\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/coffeebe.com.br\/en\/wp-json\/wp\/v2\/comments?post=364"}],"version-history":[{"count":40,"href":"https:\/\/coffeebe.com.br\/en\/wp-json\/wp\/v2\/pages\/364\/revisions"}],"predecessor-version":[{"id":416,"href":"https:\/\/coffeebe.com.br\/en\/wp-json\/wp\/v2\/pages\/364\/revisions\/416"}],"wp:attachment":[{"href":"https:\/\/coffeebe.com.br\/en\/wp-json\/wp\/v2\/media?parent=364"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}