    

{"id":6652,"date":"2026-04-15T18:24:36","date_gmt":"2026-04-15T18:24:36","guid":{"rendered":"https:\/\/rmimoveis.pt\/credito\/?page_id=6652"},"modified":"2026-04-16T10:03:41","modified_gmt":"2026-04-16T10:03:41","slug":"calculadora-emprestimo","status":"publish","type":"page","link":"https:\/\/rmimoveis.pt\/credito\/calculadora-emprestimo\/","title":{"rendered":"Plugin &#8211; Calculadora de emprestimo"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"6652\" class=\"elementor elementor-6652\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7b6a84c e-flex e-con-boxed e-con e-parent\" data-id=\"7b6a84c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4ab50f9 elementor-widget elementor-widget-shortcode\" data-id=\"4ab50f9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">    <style>\n        \/* ... todo o CSS mantido como original, sem altera\u00e7\u00f5es ... *\/\n        .rmi-calc-wrap{\n            width:100%;\n            padding:18px 0 28px;\n        }\n\n        .rmi-calc-card{\n            max-width:980px;\n            margin:0 auto;\n            background:#ffffff;\n            border:1px solid #d9e6f3;\n            border-radius:0px;\n            box-shadow:0 10px 28px rgba(15,58,93,.08);\n            padding:28px 28px 24px;\n            position:relative;\n            overflow:hidden;\n        }\n\n        .rmi-calc-card::before{\n            content:\"\";\n            position:absolute;\n            top:50%;\n            left:50%;\n            width:900px;\n            height:900px;\n            background-image:url('\/wp-content\/uploads\/2026\/03\/Logo_512x512.png');\n            background-repeat:no-repeat;\n            background-position:center;\n            background-size:80%;\n            opacity:0.04;\n            transform:translate(-50%,-50%);\n            pointer-events:none;\n            z-index:0;\n        }\n\n        .rmi-calc-card > *{\n            position:relative;\n            z-index:1;\n        }\n\n        .rmi-calc-header{\n            max-width:860px;\n            margin:0 auto 18px;\n            padding:0 4px 14px;\n            border-bottom:1px solid #e6eef7;\n        }\n\n        .rmi-calc-header h2{\n            margin:0 0 6px;\n            font-size:30px;\n            line-height:1.15;\n            color:#163a5f;\n            font-weight:700;\n            letter-spacing:-0.02em;\n        }\n\n        .rmi-calc-header p{\n            margin:0;\n            font-size:14px;\n            color:#5f6f82;\n            line-height:1.5;\n        }\n\n        .rmi-calc-section{\n            margin:0px auto 0;\n            max-width:860px;\n            width:100%;\n            background:rgba(247,251,255,.82);\n            border:1px solid #d7e7f5;\n            border-radius:0px;\n            padding:18px 18px 16px;\n            box-shadow:0 4px 14px rgba(30,115,190,.04);\n        }\n\n        .rmi-calc-section-title{\n            margin:0 0 12px;\n            font-size:20px;\n            line-height:1.2;\n            font-weight:700;\n            color:#163a5f;\n            letter-spacing:-0.01em;\n        }\n\n        .rmi-section-subtitle{\n            margin:-4px 0 12px;\n            font-size:13px;\n            color:#6a7888;\n            line-height:1.5;\n        }\n\n        .rmi-grid-2{\n            display:grid;\n            gap:14px;\n            grid-template-columns:1fr 1fr;\n        }\n\n        .rmi-grid-3{\n            display:grid;\n            gap:14px;\n            grid-template-columns:1fr 1fr 1fr;\n        }\n\n        .rmi-field-group{\n            display:flex;\n            flex-direction:column;\n            gap:6px;\n        }\n\n        .rmi-field-group label{\n            font-size:12px;\n            font-weight:700;\n            color:#1e3a5f;\n            letter-spacing:.01em;\n        }\n\n        .rmi-input,\n        .rmi-select,\n        .rmi-textarea{\n            width:100%;\n            min-height:42px;\n            padding:10px 12px;\n            border:1px solid #cddcec;\n            border-radius:0px;\n            background:#ffffff;\n            font-size:13px;\n            color:#163a5f;\n            box-sizing:border-box;\n            outline:none;\n            transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;\n        }\n\n        .rmi-textarea{\n            min-height:110px;\n            resize:vertical;\n        }\n\n        .rmi-input:focus,\n        .rmi-select:focus,\n        .rmi-textarea:focus{\n            border-color:#1e73be;\n            background:#fff;\n            box-shadow:0 0 0 3px rgba(30,115,190,.10);\n        }\n\n        .rmi-checkbox-row{\n            margin:0 0 10px 0;\n        }\n\n        .rmi-checkbox-label{\n            display:flex;\n            align-items:flex-start;\n            gap:8px;\n            font-size:13px;\n            font-weight:400 !important;\n            color:#4b5d70;\n            line-height:1.45;\n        }\n\n        .rmi-checkbox-label input[type=\"checkbox\"]{\n            margin-top:2px;\n        }\n\n        .rmi-actions{\n            display:flex;\n            flex-wrap:wrap;\n            gap:10px;\n            margin:0 auto 0;\n            max-width:860px;\n            width:100%;\n            padding:0 2px;\n        }\n\n        .rmi-btn{\n            min-height:40px;\n            padding:9px 16px;\n            border-radius:0px;\n            border:1px solid #e64173;\n            background:#fff;\n            font-size:13px;\n            font-weight:600;\n            cursor:pointer;\n            color:#e64173;\n            transition:all .15s ease;\n        }\n\n        .rmi-btn:hover{\n            transform:translateY(-1px);\n            box-shadow:0 8px 18px rgba(230,65,115,.12);\n        }\n\n        .rmi-box{\n            margin:0px auto 0;\n            padding:18px 18px 16px;\n            background:rgba(247,251,255,.88);\n            border:1px solid #d7e7f5;\n            border-radius:0px;\n            max-width:860px;\n            width:100%;\n            box-shadow:0 4px 14px rgba(30,115,190,.04);\n        }\n\n        .rmi-box h3{\n            margin:0 0 12px;\n            font-size:20px;\n            line-height:1.2;\n            font-weight:700;\n            color:#163a5f;\n        }\n\n        .rmi-glossary-list{\n            display:flex;\n            flex-direction:column;\n            gap:12px;\n        }\n\n        .rmi-glossary-item{\n            padding:0 0 12px;\n            border-bottom:1px solid #e6eef7;\n        }\n\n        .rmi-glossary-item:last-child{\n            border-bottom:none;\n            padding-bottom:0;\n        }\n\n        .rmi-glossary-item strong{\n            display:block;\n            color:#163a5f;\n            margin-bottom:4px;\n            font-size:15px;\n        }\n\n        .rmi-legal-text,\n        .rmi-empty-state{\n            color:#5f6f82;\n            font-size:13px;\n            line-height:1.6;\n        }\n\n        .rmi-note{\n            margin:14px auto 0;\n            font-size:11px;\n            line-height:1.45;\n            color:#6a7888;\n            max-width:860px;\n            width:100%;\n        }\n\n        .rmi-table-wrap{\n            overflow-x:auto;\n        }\n\n        .rmi-table{\n            width:100%;\n            border-collapse:separate;\n            border-spacing:0;\n            background:#fff;\n            border:1px solid #dbe7f3;\n            border-radius:0px;\n            overflow:hidden;\n        }\n\n        .rmi-table th,\n        .rmi-table td{\n            padding:12px 14px;\n            border-bottom:1px solid #e6eef7;\n            font-size:13px;\n            text-align:left;\n            vertical-align:top;\n        }\n\n        .rmi-table tr:last-child td{\n            border-bottom:none;\n        }\n\n        .rmi-table th{\n            background:#f4f9ff;\n            color:#163a5f;\n            font-weight:700;\n        }\n\n        .rmi-indicator-card{\n            background:#fff;\n            border:1px solid #dbe7f3;\n            border-radius:0px;\n            padding:16px;\n            box-shadow:0 4px 14px rgba(30,115,190,.04);\n        }\n\n        .rmi-indicator-title{\n            margin:0 0 8px;\n            color:#163a5f;\n            font-size:18px;\n            font-weight:700;\n        }\n\n        \/* ===============================\n           ULTRA COMPACTO (M\u00c1XIMO)\n        =============================== *\/\n\n        .rmi-field-group {\n            display: grid;\n            grid-template-columns: 110px 1fr;\n            align-items: center;\n            gap: 2px !important;\n            margin-bottom: 0 !important;\n        }\n\n        .rmi-field-group label {\n            font-size: 11px;\n            font-weight: 600;\n            margin: 0;\n            line-height: 1;\n            white-space: nowrap;\n        }\n\n        .rmi-input,\n        .rmi-select {\n            height: 28px !important;\n            padding: 4px 6px;\n            font-size: 12px;\n            line-height: 1;\n        }\n\n        .rmi-textarea {\n            min-height: 50px;\n            padding: 6px;\n            font-size: 12px;\n        }\n\n        \/* reduzir espa\u00e7os entre blocos *\/\n        .rmi-calc-section {\n            margin-top: 0px;\n        }\n\n        .rmi-grid-2 {\n             gap: 0 !important;\n        }\n\n        .rmi-calc-card {\n            padding: 18px 18px 14px;\n        }\n\n        \/* checkboxes mais compactos *\/\n        .rmi-checkbox-row {\n            margin: 0;\n        }\n\n        .rmi-checkbox-label {\n            font-size: 12px;\n            gap: 6px;\n        }\n\n        \/* mobile mant\u00e9m leg\u00edvel *\/\n        @media (max-width: 767px) {\n            .rmi-field-group {\n                grid-template-columns: 1fr;\n            }\n        }\n\n        \/* ===============================\n           MODO RET\u00c2NGULO + SEM ESPA\u00c7OS\n        =============================== *\/\n\n        .rmi-calc-card,\n        .rmi-calc-section,\n        .rmi-box {\n            border-radius: 0 !important;\n        }\n\n        \/* remover espa\u00e7amento vertical *\/\n        .rmi-field-group {\n            margin-bottom: 0 !important;\n            gap: 2px !important;\n        }\n\n        \/* inputs totalmente colados *\/\n        .rmi-input,\n        .rmi-select {\n            margin: 0 !important;\n            border-radius: 0 !important;\n            height: 30px;\n        }\n\n        \/* labels mais colados *\/\n        .rmi-field-group label {\n            margin: 0;\n            padding: 0;\n        }\n\n        \/* eliminar espa\u00e7o entre sec\u00e7\u00f5es *\/\n        .rmi-calc-section {\n            margin-top: 0 !important;\n        }\n\n        \/* grelha sem espa\u00e7o *\/\n        .rmi-grid-2 {\n            gap: 0 !important;\n        }\n\n        \/* remover \u201car\u201d interno *\/\n        .rmi-calc-card {\n            padding: 12px !important;\n        }\n        \n        \/* Sec\u00e7\u00f5es Explica\u00e7\u00e3o das rubricas e Limita\u00e7\u00e3o de responsabilidade em azul *\/\n        .rmi-box:last-of-type,\n        .rmi-box:nth-last-of-type(2) {\n            background: #eef5ff !important;\n            border: 2px solid #163a5f !important;\n            box-shadow: 0 4px 12px rgba(30,115,190,0.1);\n        }\n        \n     \n        \n    <\/style>\n        <script>\n    document.addEventListener('DOMContentLoaded', function() {\n        \/\/ Formata\u00e7\u00e3o de n\u00fameros (milhares)\n        function formatNumberInput(el) {\n            let digits = el.value.replace(\/\\D+\/g, '');\n            if (!digits) {\n                el.value = '';\n                return;\n            }\n            el.value = digits.replace(\/\\B(?=(\\d{3})+(?!\\d))\/g, ' ');\n        }\n\n        \/\/ Aplica a todos os campos com a classe rmi-number-input\n        document.querySelectorAll('.rmi-number-input').forEach(input => {\n            input.addEventListener('input', function() { formatNumberInput(this); });\n            \/\/ Se j\u00e1 tiver valor, formata\n            formatNumberInput(input);\n        });\n\n        \/\/ Bot\u00e3o de limpar (se existir)\n        const clearBtn = document.getElementById('rmi-clear-form');\n        if (clearBtn) {\n            clearBtn.addEventListener('click', function(e) {\n                const form = this.closest('form');\n                if (!form) return;\n                \/\/ Limpa inputs, selects e textareas (excepto hidden\/submit)\n                form.querySelectorAll('input:not([type=\"hidden\"]):not([type=\"submit\"]), select, textarea').forEach(field => {\n                    if (field.type === 'checkbox' || field.type === 'radio') {\n                        field.checked = false;\n                    } else {\n                        field.value = '';\n                    }\n                });\n                \/\/ Dispara evento customizado para que a calculadora limpe os resultados\n                const clearEvent = new CustomEvent('rmi_calc_clear', { detail: { form: form } });\n                form.dispatchEvent(clearEvent);\n            });\n        }\n    });\n    <\/script>\n    <style>\n        #rmi-analise-emprestimo-wrap .rmi-calc-card{max-width:880px;padding:18px 16px 18px;}\n        #rmi-analise-emprestimo-wrap .rmi-calc-header{margin-bottom:12px;padding-bottom:10px;}\n        #rmi-analise-emprestimo-wrap .rmi-calc-header h2{font-size:24px;}\n        #rmi-analise-emprestimo-wrap .rmi-calc-header p{font-size:13px;}\n        #rmi-analise-emprestimo-wrap .rmi-calc-section, #rmi-analise-emprestimo-wrap .rmi-box{margin-top:0 !important;padding:14px 14px 12px;border-radius:14px;}\n        #rmi-analise-emprestimo-wrap .rmi-box{max-width:860px;}\n        #rmi-analise-emprestimo-wrap .rmi-calc-section-title, #rmi-analise-emprestimo-wrap .rmi-box h3{font-size:18px;margin-bottom:10px;}\n        #rmi-analise-emprestimo-wrap .rmi-section-subtitle{font-size:12px;margin:-2px 0 10px;}\n        #rmi-analise-emprestimo-wrap .rmi-field-group label{font-size:11px;}\n        #rmi-analise-emprestimo-wrap .rmi-input, #rmi-analise-emprestimo-wrap .rmi-select, #rmi-analise-emprestimo-wrap .rmi-textarea{min-height:38px;padding:8px 10px;font-size:13px;border-radius:10px;}\n        #rmi-analise-emprestimo-wrap .rmi-textarea{min-height:90px;}\n        #rmi-analise-emprestimo-wrap .rmi-grid-2{gap:10px;}\n        #rmi-analise-emprestimo-wrap .rmi-actions{max-width:860px;gap:8px;margin-top:14px;}\n        #rmi-analise-emprestimo-wrap .rmi-btn{min-height:36px;padding:7px 12px;border-radius:10px;font-size:12px;}\n        #rmi-analise-emprestimo-wrap .rmi-table th, #rmi-analise-emprestimo-wrap .rmi-table td{padding:10px 12px;font-size:12px;}\n        #rmi-analise-emprestimo-wrap .rmi-note{max-width:860px;}\n        \n        #rmi-analise-emprestimo-wrap .rmi-top-grid{\n            max-width:860px !important;\n            margin:0 auto;\n            display:grid;\n            grid-template-columns:1fr 1fr;\n            gap:6px;\n            align-items:end;\n        }\n        #rmi-analise-emprestimo-wrap .rmi-top-grid > .rmi-calc-section{\n            max-width:100%;\n            margin:0;\n            padding:10px;\n            height:100%;\n        }\n        #rmi-analise-emprestimo-wrap .rmi-top-grid .rmi-grid-2{\n            grid-template-columns:1fr;\n            gap:4px;\n        }\n        #rmi-analise-emprestimo-wrap .rmi-checkbox-row{\n            margin-bottom:2px;\n        }\n        #rmi-analise-emprestimo-wrap .rmi-top-grid > .rmi-calc-section:last-child{\n            min-height:190px;\n        }\n        \n        #rmi-analise-emprestimo-wrap .rmi-box {background:#fff9e6 !important;border:2px solid #e64173 !important;box-shadow:0 4px 12px rgba(230,65,115,0.2);}\n        #rmi-analise-emprestimo-wrap .rmi-box:last-of-type,\n        #rmi-analise-emprestimo-wrap .rmi-box:nth-last-of-type(2) {background:#eef5ff !important;border:2px solid #163a5f !important;box-shadow:0 4px 12px rgba(30,115,190,0.1);}\n        #rmi-analise-emprestimo-wrap .rmi-business-table .rmi-table td:first-child,\n        #rmi-analise-emprestimo-wrap .rmi-business-table .rmi-table th:first-child{white-space:nowrap;}\n        #rmi-analise-emprestimo-wrap .rmi-obras-technical-section{max-width:920px;}\n        #rmi-analise-emprestimo-wrap .rmi-obras-tech-group{display:flex;flex-direction:column;gap:6px;}\n        #rmi-analise-emprestimo-wrap .rmi-obras-tech-divider{margin:10px 0;border:none;border-top:1px solid #d7e7f5;}\n        #rmi-analise-emprestimo-wrap .rmi-obras-tech-grid{\n            display:grid;\n            grid-template-columns:minmax(170px, 1fr) 120px minmax(170px, 1fr) 120px;\n            gap:8px 12px;\n            align-items:center;\n        }\n        #rmi-analise-emprestimo-wrap .rmi-obras-tech-grid label{\n            font-size:13px;\n            font-weight:600;\n            color:#163a5f;\n            line-height:1.2;\n            min-width:0;\n            white-space:normal;\n        }\n        #rmi-analise-emprestimo-wrap .rmi-obras-tech-input{\n            width:120px;\n            min-width:120px;\n            min-height:30px !important;\n            height:30px !important;\n            padding:4px 8px !important;\n            font-size:12px !important;\n            text-align:right;\n            justify-self:end;\n        }\n        #rmi-analise-emprestimo-wrap .rmi-obras-tech-empty{\n            visibility:hidden;\n            height:0;\n            min-height:0;\n            padding:0;\n            margin:0;\n        }\n        \n        #rmi-analise-emprestimo-wrap .rmi-scenarios-grid {\n            display: grid;\n            grid-template-columns: 1fr 1fr;\n            gap: 16px;\n            margin: 16px 0;\n        }\n        #rmi-analise-emprestimo-wrap .rmi-scenario-card {\n            background: #fff;\n            border: 1px solid #d7e7f5;\n            border-radius: 14px;\n            padding: 14px;\n        }\n        #rmi-analise-emprestimo-wrap .rmi-traffic-badge {\n            display: inline-block;\n            padding: 4px 10px;\n            border-radius: 20px;\n            font-size: 12px;\n            font-weight: 700;\n        }\n\n        @media (max-width: 900px){\n            #rmi-analise-emprestimo-wrap .rmi-calc-card{max-width:100% !important;}\n            #rmi-analise-emprestimo-wrap .rmi-calc-header,\n            #rmi-analise-emprestimo-wrap .rmi-calc-section,\n            #rmi-analise-emprestimo-wrap .rmi-actions,\n            #rmi-analise-emprestimo-wrap .rmi-box,\n            #rmi-analise-emprestimo-wrap .rmi-note{max-width:100% !important;}\n            #rmi-analise-emprestimo-wrap .rmi-obras-tech-grid{grid-template-columns:1fr !important;}\n            #rmi-analise-emprestimo-wrap .rmi-obras-tech-input{max-width:100% !important;}\n        }\n        \n        @media (max-width:767px){\n            #rmi-analise-emprestimo-wrap .rmi-calc-card{padding:12px 10px 14px;border-radius:14px;}\n            #rmi-analise-emprestimo-wrap .rmi-calc-header h2{font-size:21px;}\n            #rmi-analise-emprestimo-wrap .rmi-top-grid{max-width:100% !important;grid-template-columns:1fr !important;gap:10px !important;}\n            #rmi-analise-emprestimo-wrap .rmi-top-grid > .rmi-calc-section:last-child{min-height:0;border-left:none !important;}\n            #rmi-analise-emprestimo-wrap .rmi-top-grid .rmi-field-group{grid-template-columns:1fr !important;}\n            #rmi-analise-emprestimo-wrap .rmi-calc-section, #rmi-analise-emprestimo-wrap .rmi-box{padding:12px 10px 10px;border-radius:12px;}\n            #rmi-analise-emprestimo-wrap .rmi-calc-section-title, #rmi-analise-emprestimo-wrap .rmi-box h3{font-size:16px;}\n            #rmi-analise-emprestimo-wrap .rmi-input, #rmi-analise-emprestimo-wrap .rmi-select, #rmi-analise-emprestimo-wrap .rmi-textarea{min-height:36px;font-size:12px;padding:7px 9px;}\n            #rmi-analise-emprestimo-wrap .rmi-obras-tech-grid{grid-template-columns:1fr;}\n            #rmi-analise-emprestimo-wrap .rmi-obras-tech-grid label{font-size:12px;}\n            #rmi-analise-emprestimo-wrap .rmi-obras-tech-input{width:100%;min-width:0;justify-self:stretch;min-height:36px !important;height:36px !important;text-align:left;}\n            #rmi-analise-emprestimo-wrap .rmi-obras-tech-empty{display:none;}\n            #rmi-analise-emprestimo-wrap .rmi-btn{width:100%;}\n            #rmi-analise-emprestimo-wrap .rmi-scenarios-grid{grid-template-columns:1fr;}\n        }\n        \n        #rmi-analise-emprestimo-wrap .rmi-glossary-item{\n            padding:0 0 8px !important;\n            margin:0 !important;\n        }\n        #rmi-analise-emprestimo-wrap .rmi-glossary-item strong{\n            display:inline !important;\n            margin-right:4px !important;\n        }\n        #rmi-analise-emprestimo-wrap .rmi-glossary-item strong::after{\n            content:\" \u2014 \";\n        }\n        #rmi-analise-emprestimo-wrap .rmi-glossary-item .rmi-legal-text{\n            display:inline !important;\n            font-size:13px !important;\n            line-height:1.5 !important;\n        }\n        #rmi-analise-emprestimo-wrap .rmi-glossary-item.rubrica-titulo strong{\n            display:block !important;\n            font-size:15px !important;\n            font-weight:700 !important;\n            color:#163a5f !important;\n            margin:10px 0 4px !important;\n        }\n        #rmi-analise-emprestimo-wrap .rmi-glossary-item.rubrica-titulo strong::after{\n            content:\"\" !important;\n        }\n        #rmi-analise-emprestimo-wrap .rmi-glossary-item.rubrica-titulo .rmi-legal-text{\n            display:none !important;\n        }\n    <\/style>    <div class=\"rmi-calc-wrap\" id=\"rmi-analise-emprestimo-wrap\">\n        <div class=\"rmi-calc-card \">\n            <div class=\"rmi-calc-header\">\n                <h2>Simula\u00e7\u00e3o de Empr\u00e9stimo<\/h2>\n                                    <p>Simule o empr\u00e9stimo com capital pr\u00f3prio, custos de aquisi\u00e7\u00e3o e an\u00e1lise de taxa de esfor\u00e7o.<\/p>\n                            <\/div>\n    <form method=\"post\" id=\"rmi-emprestimo-form\"><input type=\"hidden\" id=\"rmi_emprestimo_nonce\" name=\"rmi_emprestimo_nonce\" value=\"9303846802\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/credito\/wp-json\/wp\/v2\/pages\/6652\" \/><div class=\"rmi-top-grid\"><input type=\"hidden\" id=\"is_admin_session\" value=\"0\">    <div class=\"rmi-calc-section\">\n        <h3 class=\"rmi-calc-section-title\">Dados do potencial cliente<\/h3>\n\n        <div class=\"rmi-grid-2\">\n            <div class=\"rmi-field-group\">\n                <label for=\"client_name\">Nome *<\/label>\n                <input type=\"text\" id=\"client_name\" name=\"client_name\" class=\"rmi-input\" value=\"\" placeholder=\"Nome completo\">\n            <\/div>\n\n            <div class=\"rmi-field-group\">\n                <label for=\"client_email\">Email *<\/label>\n                <input type=\"email\" id=\"client_email\" name=\"client_email\" class=\"rmi-input\" value=\"\" placeholder=\"email@exemplo.pt\">\n            <\/div>\n        <\/div>\n\n                    <div class=\"rmi-grid-2\">\n                <div class=\"rmi-field-group\">\n                    <label for=\"client_phone\">Telefone<\/label>\n                    <input type=\"text\" id=\"client_phone\" name=\"client_phone\" class=\"rmi-input\" value=\"\" placeholder=\"Opcional\">\n                <\/div>\n                <div><\/div>\n            <\/div>\n        \n        <div>\n            <div class=\"rmi-checkbox-row\">\n                <label for=\"client_consent\" class=\"rmi-checkbox-label\">\n                    <input type=\"checkbox\" id=\"client_consent\" name=\"client_consent\" value=\"1\" >\n                    Aceito a partilha dos meus dados para c\u00e1lculo e eventual contacto *.\n                <\/label>\n            <\/div>\n\n                    <\/div>\n    <\/div>\n        <div class=\"rmi-calc-section\">\n        <h3 class=\"rmi-calc-section-title\">Informa\u00e7\u00e3o do im\u00f3vel<\/h3>\n\n        <div class=\"rmi-grid-2\">\n                            <div class=\"rmi-field-group\">\n                    <label for=\"property_address\">Rua \/ Morada<\/label>\n                    <input type=\"text\" id=\"property_address\" name=\"property_address\" class=\"rmi-input\" value=\"\" placeholder=\"Morada do im\u00f3vel\">\n                <\/div>\n            \n                            <div class=\"rmi-field-group\">\n                    <label for=\"property_parish\">Freguesia<\/label>\n                    <input type=\"text\" id=\"property_parish\" name=\"property_parish\" class=\"rmi-input\" value=\"\" placeholder=\"Freguesia\">\n                <\/div>\n                    <\/div>\n\n                    <div class=\"rmi-grid-2\">\n                <div class=\"rmi-field-group\">\n                    <label for=\"property_district\">Distrito<\/label>\n                    <input type=\"text\" id=\"property_district\" name=\"property_district\" class=\"rmi-input\" value=\"\" placeholder=\"Distrito\">\n                <\/div>\n                <div><\/div>\n            <\/div>\n            <\/div>\n    <\/div>    <div class=\"rmi-calc-section rmi-obras-technical-section\">\n        <h3 class=\"rmi-calc-section-title\">Conte\u00fado t\u00e9cnico da calculadora<\/h3>\n\n        <!-- Modo de simula\u00e7\u00e3o -->\n        <div class=\"rmi-obras-tech-group\">\n            <div class=\"rmi-section-subtitle\">Modo de simula\u00e7\u00e3o<\/div>\n            <div class=\"rmi-obras-tech-grid\" style=\"grid-template-columns: 1fr 1fr;\">\n                <label>\n                    <input type=\"radio\" name=\"simulation_mode\" value=\"defined\"  checked='checked'>\n                    Montante definido\n                <\/label>\n                <label>\n                    <input type=\"radio\" name=\"simulation_mode\" value=\"maximum\" >\n                    Montante m\u00e1ximo poss\u00edvel\n                <\/label>\n            <\/div>\n        <\/div>\n\n        <hr class=\"rmi-obras-tech-divider\">\n\n        <!-- Custos de aquisi\u00e7\u00e3o -->\n        <div class=\"rmi-obras-tech-group\">\n            <div class=\"rmi-section-subtitle\">Custos de aquisi\u00e7\u00e3o<\/div>\n            <div class=\"rmi-obras-tech-grid\">\n                <label for=\"purchase_price\">Pre\u00e7o de aquisi\u00e7\u00e3o (\u20ac)<\/label>\n                <input type=\"text\" id=\"purchase_price\" name=\"purchase_price\" class=\"rmi-input rmi-number-input rmi-obras-tech-input\" value=\"\">\n\n                <label for=\"deed_costs\">Diversos (\u20ac)<\/label>\n                <input type=\"text\" id=\"deed_costs\" name=\"deed_costs\" class=\"rmi-input rmi-number-input rmi-obras-tech-input\" value=\"1 000\">\n\n                <label for=\"region\">Localiza\u00e7\u00e3o<\/label>\n                <select id=\"region\" name=\"region\" class=\"rmi-select rmi-obras-tech-input\">\n                    <option value=\"continente\"  selected='selected'>Portugal<\/option>\n                    <option value=\"madeira\" >Madeira<\/option>\n                    <option value=\"acores\" >A\u00e7ores<\/option>\n                <\/select>\n\n                <label for=\"property_type\">Tipo<\/label>\n                <select id=\"property_type\" name=\"property_type\" class=\"rmi-select rmi-obras-tech-input\">\n                    <option value=\"hpp\"  selected='selected'>HPP<\/option>\n                    <option value=\"secundaria\" >Secund\u00e1ria<\/option>\n                    <option value=\"rustico\" >R\u00fastico<\/option>\n                    <option value=\"outros\" >Outros<\/option>\n                <\/select>\n\n                <label for=\"acquisition_costs\">Custos de aquisi\u00e7\u00e3o (\u20ac)<\/label>\n                <input type=\"text\" id=\"acquisition_costs\" name=\"acquisition_costs\" class=\"rmi-input rmi-number-input rmi-obras-tech-input\" value=\"\" readonly>\n                <small style=\"grid-column: span 2; display:block; margin-top:4px; color:#5f6f82; font-size:11px;\">Calculado automaticamente<\/small>\n\n                <label for=\"own_capital\">Capital pr\u00f3prio (\u20ac)<\/label>\n                <input type=\"text\" id=\"own_capital\" name=\"own_capital\" class=\"rmi-input rmi-number-input rmi-obras-tech-input\" value=\"\">\n\n                <div class=\"rmi-obras-tech-empty\" aria-hidden=\"true\"><\/div>\n            <\/div>\n        <\/div>\n\n        <hr class=\"rmi-obras-tech-divider\">\n\n        <!-- Dados do empr\u00e9stimo -->\n        <div class=\"rmi-obras-tech-group\">\n            <div class=\"rmi-section-subtitle\">Dados do empr\u00e9stimo<\/div>\n            <div class=\"rmi-obras-tech-grid\">\n                <label for=\"loan_amount\">Montante empr\u00e9stimo (\u20ac)<\/label>\n                <input type=\"text\" id=\"loan_amount\" name=\"loan_amount\" class=\"rmi-input rmi-number-input rmi-obras-tech-input\" value=\"\" >\n                <small style=\"grid-column: span 2; font-size:11px; color:#5f6f82;\">Calculado como (Pre\u00e7o + Custos aquisi\u00e7\u00e3o) - Capital pr\u00f3prio<\/small>\n\n                <label for=\"loan_years\">Prazo (anos)<\/label>\n                <input type=\"text\" id=\"loan_years\" name=\"loan_years\" class=\"rmi-input rmi-obras-tech-input\" value=\"30\">\n\n                <label for=\"max_effort_rate\">Taxa de esfor\u00e7o m\u00e1x. (%)<\/label>\n                <input type=\"text\" id=\"max_effort_rate\" name=\"max_effort_rate\" class=\"rmi-input rmi-obras-tech-input\" value=\"35\" readonly>\n\n                <div class=\"rmi-obras-tech-empty\" aria-hidden=\"true\"><\/div>\n            <\/div>\n        <\/div>\n\n        <hr class=\"rmi-obras-tech-divider\">\n\n        <!-- An\u00e1lise das taxas -->\n        <div class=\"rmi-obras-tech-group\">\n            <div class=\"rmi-section-subtitle\">An\u00e1lise das taxas<\/div>\n            <div class=\"rmi-obras-tech-grid\">\n                <label for=\"euribor_rate\">Euribor (%)<\/label>\n                <input type=\"text\" id=\"euribor_rate\" name=\"euribor_rate\" class=\"rmi-input rmi-obras-tech-input\" value=\"2,50\">\n\n                <label for=\"spread_rate\">Spread (%)<\/label>\n                <input type=\"text\" id=\"spread_rate\" name=\"spread_rate\" class=\"rmi-input rmi-obras-tech-input\" value=\"1,00\">\n\n                <label for=\"stress_margin\">Margem stress (%)<\/label>\n                <input type=\"text\" id=\"stress_margin\" name=\"stress_margin\" class=\"rmi-input rmi-obras-tech-input\" value=\"1,00\">\n\n                <label>Taxa base (%)<\/label>\n                <input type=\"text\" class=\"rmi-input rmi-obras-tech-input\" value=\"3,50\" readonly>\n\n                <label>Taxa com stress (%)<\/label>\n                <input type=\"text\" class=\"rmi-input rmi-obras-tech-input\" value=\"4,50\" readonly>\n\n                <div class=\"rmi-obras-tech-empty\" aria-hidden=\"true\"><\/div>\n            <\/div>\n        <\/div>\n\n        <hr class=\"rmi-obras-tech-divider\">\n\n        <!-- Situa\u00e7\u00e3o financeira -->\n        <div class=\"rmi-obras-tech-group\">\n            <div class=\"rmi-section-subtitle\">Situa\u00e7\u00e3o financeira do agregado<\/div>\n            <div class=\"rmi-obras-tech-grid\">\n                <label for=\"annual_income\">Rendimento anual (\u20ac)<\/label>\n                <input type=\"text\" id=\"annual_income\" name=\"annual_income\" class=\"rmi-input rmi-number-input rmi-obras-tech-input\" value=\"\">\n\n                <label for=\"annual_expenses\">Despesas anuais (\u20ac)<\/label>\n                <input type=\"text\" id=\"annual_expenses\" name=\"annual_expenses\" class=\"rmi-input rmi-number-input rmi-obras-tech-input\" value=\"\">\n\n                <label>Rend. mensal dispon\u00edvel (\u20ac)<\/label>\n                <input type=\"text\" id=\"monthly_available_display\" class=\"rmi-input rmi-obras-tech-input\" readonly value=\"0\">\n\n                <label for=\"monthly_insurance\">Seguros mensais (\u20ac)<\/label>\n                <input type=\"text\" id=\"monthly_insurance\" name=\"monthly_insurance\" class=\"rmi-input rmi-number-input rmi-obras-tech-input\" value=\"30\">\n\n                <label for=\"monthly_bank_fees\">Comiss\u00f5es mensais (\u20ac)<\/label>\n                <input type=\"text\" id=\"monthly_bank_fees\" name=\"monthly_bank_fees\" class=\"rmi-input rmi-number-input rmi-obras-tech-input\" value=\"7\">\n\n                <div class=\"rmi-obras-tech-empty\" aria-hidden=\"true\"><\/div>\n            <\/div>\n        <\/div>\n\n        <hr class=\"rmi-obras-tech-divider\">\n\n        <!-- Custos iniciais -->\n        <div class=\"rmi-obras-tech-group\">\n            <div class=\"rmi-section-subtitle\">Custos iniciais antes da escritura<\/div>\n            <div class=\"rmi-obras-tech-grid\">\n                <label for=\"opening_fee\">Comiss\u00e3o de abertura (\u20ac)<\/label>\n                <input type=\"text\" id=\"opening_fee\" name=\"opening_fee\" class=\"rmi-input rmi-number-input rmi-obras-tech-input\" value=\"300\">\n\n                <label for=\"valuation_fee\">Avalia\u00e7\u00e3o do im\u00f3vel (\u20ac)<\/label>\n                <input type=\"text\" id=\"valuation_fee\" name=\"valuation_fee\" class=\"rmi-input rmi-number-input rmi-obras-tech-input\" value=\"350\">\n\n                <label for=\"formalization_fee\">Formaliza\u00e7\u00e3o (\u20ac)<\/label>\n                <input type=\"text\" id=\"formalization_fee\" name=\"formalization_fee\" class=\"rmi-input rmi-number-input rmi-obras-tech-input\" value=\"150\">\n\n                <label for=\"solicitor_fee\">Solicitadoria (\u20ac)<\/label>\n                <input type=\"text\" id=\"solicitor_fee\" name=\"solicitor_fee\" class=\"rmi-input rmi-number-input rmi-obras-tech-input\" value=\"250\">\n\n                <label for=\"credit_stamp_duty\">Imp. selo cr\u00e9dito (\u20ac)<\/label>\n                <input type=\"text\" id=\"credit_stamp_duty\" name=\"credit_stamp_duty\" class=\"rmi-input rmi-number-input rmi-obras-tech-input\" value=\"\" >\n                                    <div style=\"grid-column: span 2; font-size: 11px; color: #5f6f82; margin-top: 4px;\">\n                        Deixar vazio para c\u00e1lculo autom\u00e1tico (0,6% do montante)\n                    <\/div>\n                \n                <label for=\"other_initial_costs\">Outros custos (\u20ac)<\/label>\n                <input type=\"text\" id=\"other_initial_costs\" name=\"other_initial_costs\" class=\"rmi-input rmi-number-input rmi-obras-tech-input\" value=\"0\">\n\n                <div class=\"rmi-obras-tech-empty\" aria-hidden=\"true\"><\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n        <div class=\"rmi-actions\">\n                    <button type=\"submit\" name=\"rmi_emprestimo_submit\" value=\"1\" class=\"rmi-btn\">Calcular<\/button>\n                            <button type=\"button\" id=\"rmi-clear-form\" class=\"rmi-btn rmi-btn-clear\">Limpar<\/button>\n                                            <button type=\"button\" id=\"rmi-share-btn\" class=\"rmi-btn\" onclick=\"window.location.href='mailto:?subject=Simulador&body=https%3A%2F%2Frmimoveis.pt%2Fcredito%2Fcalculadora-emprestimo%2F';\">Partilhar por email<\/button>\n                                                        <\/div>\n    <\/form>    <div class=\"rmi-box\" style=\"text-align: center; padding: 15px;\">\n        <h3 style=\"margin-top: 0;\">Precisa de ajuda para validar a viabilidade da opera\u00e7\u00e3o?<\/h3>\n        <p>Entre em contacto comigo. Posso ajudar a enquadrar aquisi\u00e7\u00e3o, obra, financiamento e venda prevista de forma mais realista antes da decis\u00e3o final.<\/p>\n        <div style=\"display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 15px; text-align: left;\">\n            <div>\n                <strong>Domingos Costa<\/strong><br>\n                Email: domingos.costa@intermediariocredito.eu<br>\n                Telefone: 914317052\n            <\/div>\n            <div style=\"text-align: center;\">\n                <div style=\"display: flex; gap: 15px; justify-content: center; flex-wrap: wrap;\">\n                    <a href=\"https:\/\/rmimoveis.pt\/credito\" class=\"rmi-btn\" target=\"_blank\" style=\"background: #e64173; color: #fff; text-decoration: none;\">Iniciar pedido de empr\u00e9stimo<\/a>\n                    <a href=\"https:\/\/rmimoveis.pt\/mediacao\" class=\"rmi-btn\" target=\"_blank\" style=\"background: #163a5f; color: #fff; text-decoration: none;\">Comprar casa<\/a>\n                <\/div>\n                <p style=\"font-size: 12px; margin-top: 10px;\">Ou <a href=\"https:\/\/rmimoveis.pt\/menu-3-contactos\" target=\"_blank\">contacte\u2011me<\/a> para mais informa\u00e7\u00f5es.<\/p>\n            <\/div>\n        <\/div>\n    <\/div>\n    <\/div><\/div>\n<script>\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ ================================================================\n    \/\/ TABELAS DE IMT (c\u00f3pia exata das tabelas do CORE)\n    \/\/ ================================================================\n    const IMT_TABLES = {\n        continente: {\n            hpp: [\n                { ate: 104261, taxa: 0.00, abater: 0 },\n                { ate: 142618, taxa: 0.02, abater: 2085.22 },\n                { ate: 194458, taxa: 0.05, abater: 6363.76 },\n                { ate: 324058, taxa: 0.07, abater: 10252.92 },\n                { ate: 648022, taxa: 0.08, abater: 13493.50 },\n                { ate: 1128900, taxa: 0.06, abater: 534.48 },\n                { ate: Infinity, taxa: 0.075, abater: 0 }\n            ],\n            secundaria: [\n                { ate: 104261, taxa: 0.01, abater: 0 },\n                { ate: 142618, taxa: 0.02, abater: 1042.61 },\n                { ate: 194458, taxa: 0.05, abater: 5318.33 },\n                { ate: 324058, taxa: 0.07, abater: 9207.49 },\n                { ate: 648022, taxa: 0.08, abater: 12448.07 },\n                { ate: 1128900, taxa: 0.06, abater: 488.25 },\n                { ate: Infinity, taxa: 0.075, abater: 0 }\n            ],\n            rustico: [\n                { ate: Infinity, taxa: 0.05, abater: 0 }\n            ],\n            outros: [\n                { ate: Infinity, taxa: 0.065, abater: 0 }\n            ]\n        },\n        madeira: {\n            hpp: [\n                { ate: 130326.25, taxa: 0.00, abater: 0 },\n                { ate: 178272.50, taxa: 0.02, abater: 2606.53 },\n                { ate: 243072.50, taxa: 0.05, abater: 7954.69 },\n                { ate: 405072.50, taxa: 0.07, abater: 12816.15 },\n                { ate: 810027.50, taxa: 0.08, abater: 16866.88 },\n                { ate: 1411125.00, taxa: 0.06, abater: 668.10 },\n                { ate: Infinity, taxa: 0.075, abater: 0 }\n            ],\n            secundaria: [\n                { ate: 130326.25, taxa: 0.01, abater: 0 },\n                { ate: 178272.50, taxa: 0.02, abater: 1303.26 },\n                { ate: 243072.50, taxa: 0.05, abater: 6647.91 },\n                { ate: 405072.50, taxa: 0.07, abater: 11509.37 },\n                { ate: 810027.50, taxa: 0.08, abater: 15560.10 },\n                { ate: 1411125.00, taxa: 0.06, abater: 610.31 },\n                { ate: Infinity, taxa: 0.075, abater: 0 }\n            ],\n            rustico: [\n                { ate: Infinity, taxa: 0.04, abater: 0 }\n            ],\n            outros: [\n                { ate: Infinity, taxa: 0.052, abater: 0 }\n            ]\n        },\n        acores: {\n            hpp: [\n                { ate: 130326.25, taxa: 0.00, abater: 0 },\n                { ate: 178272.50, taxa: 0.02, abater: 2606.53 },\n                { ate: 243072.50, taxa: 0.05, abater: 7954.69 },\n                { ate: 405072.50, taxa: 0.07, abater: 12816.15 },\n                { ate: 810027.50, taxa: 0.08, abater: 16866.88 },\n                { ate: 1411125.00, taxa: 0.06, abater: 668.10 },\n                { ate: Infinity, taxa: 0.075, abater: 0 }\n            ],\n            secundaria: [\n                { ate: 130326.25, taxa: 0.01, abater: 0 },\n                { ate: 178272.50, taxa: 0.02, abater: 1303.26 },\n                { ate: 243072.50, taxa: 0.05, abater: 6647.91 },\n                { ate: 405072.50, taxa: 0.07, abater: 11509.37 },\n                { ate: 810027.50, taxa: 0.08, abater: 15560.10 },\n                { ate: 1411125.00, taxa: 0.06, abater: 610.31 },\n                { ate: Infinity, taxa: 0.075, abater: 0 }\n            ],\n            rustico: [\n                { ate: Infinity, taxa: 0.04, abater: 0 }\n            ],\n            outros: [\n                { ate: Infinity, taxa: 0.052, abater: 0 }\n            ]\n        }\n    };\n\n    function calcularIMT(price, region, propertyType) {\n        const tabela = IMT_TABLES[region]?.[propertyType];\n        if (!tabela || price <= 0) return 0;\n\n        for (let faixa of tabela) {\n            if (price <= faixa.ate) {\n                const imt = (price * faixa.taxa) - faixa.abater;\n                return Math.max(0, imt);\n            }\n        }\n        return 0;\n    }\n\n    function calcularImpostoSelo(price) {\n        return price * 0.008;\n    }\n\n    function calcularCustosAquisicao(price, region, propertyType, deedCosts) {\n        const imt = calcularIMT(price, region, propertyType);\n        const is = calcularImpostoSelo(price);\n        const total = imt + is + deedCosts;\n        return { imt, is, registos: deedCosts, total };\n    }\n\n    const form = document.getElementById('rmi-emprestimo-form');\n    const modeRadios = document.querySelectorAll('input[name=\"simulation_mode\"]');\n    const loanAmountField = document.getElementById('loan_amount');\n    const maxEffortField = document.getElementById('max_effort_rate');\n    const euriborField = document.getElementById('euribor_rate');\n    const spreadField = document.getElementById('spread_rate');\n    const stressField = document.getElementById('stress_margin');\n    const annualIncomeField = document.getElementById('annual_income');\n    const annualExpensesField = document.getElementById('annual_expenses');\n    const monthlyAvailDisplay = document.getElementById('monthly_available_display');\n    const stampField = document.getElementById('credit_stamp_duty');\n    const purchasePriceField = document.getElementById('purchase_price');\n    const deedCostsField = document.getElementById('deed_costs');\n    const regionField = document.getElementById('region');\n    const propertyTypeField = document.getElementById('property_type');\n    const acquisitionCostsField = document.getElementById('acquisition_costs');\n    const ownCapitalField = document.getElementById('own_capital');\n\n    function parsePt(val) {\n        if (!val) return 0;\n        val = String(val).replace(\/\\s\/g, '').replace('\u20ac','');\n        if (val.indexOf(',') > -1 && val.indexOf('.') > -1) val = val.replace(\/\\.\/g,'').replace(',','.');\n        else val = val.replace(',','.');\n        return parseFloat(val) || 0;\n    }\n\n    function formatPt(num, dec) {\n        const parts = num.toFixed(dec).split('.');\n        parts[0] = parts[0].replace(\/\\B(?=(\\d{3})+(?!\\d))\/g, ' ');\n        return parts.join(',');\n    }\n\n    function updateAcquisitionCosts() {\n        if (!purchasePriceField || !acquisitionCostsField) return;\n\n        const price = parsePt(purchasePriceField.value);\n        if (price <= 0) {\n            acquisitionCostsField.value = '';\n            updateLoanAmount();\n            return;\n        }\n\n        const region = regionField?.value || 'continente';\n        const propertyType = propertyTypeField?.value || 'hpp';\n        const deedCosts = parsePt(deedCostsField?.value || '0');\n\n        const custos = calcularCustosAquisicao(price, region, propertyType, deedCosts);\n        acquisitionCostsField.value = formatPt(custos.total, 0);\n        updateLoanAmount();\n    }\n\n    function updateLoanAmount() {\n        if (!loanAmountField) return;\n        if (loanAmountField.dataset.manual === '1') return;\n\n        const price = parsePt(purchasePriceField?.value || '0');\n        const acq = parsePt(acquisitionCostsField?.value || '0');\n        const own = parsePt(ownCapitalField?.value || '0');\n        const total = price + acq;\n        const suggested = Math.max(0, total - own);\n        loanAmountField.value = suggested > 0 ? formatPt(suggested, 0) : '';\n    }\n\n    function updateUI() {\n        const mode = document.querySelector('input[name=\"simulation_mode\"]:checked')?.value || 'defined';\n        const isMax = mode === 'maximum';\n\n        if (loanAmountField) loanAmountField.readOnly = isMax;\n        if (maxEffortField) maxEffortField.readOnly = !isMax;\n\n        const eur = parsePt(euriborField?.value || '0');\n        const spread = parsePt(spreadField?.value || '0');\n        const stress = parsePt(stressField?.value || '0');\n        const baseRate = eur + spread;\n        const stressRate = baseRate + stress;\n\n        const inc = parsePt(annualIncomeField?.value || '0');\n        const exp = parsePt(annualExpensesField?.value || '0');\n        const monthly = Math.max(0, inc - exp) \/ 12;\n        if (monthlyAvailDisplay) monthlyAvailDisplay.value = monthly > 0 ? formatPt(monthly, 0) : '';\n\n        if (stampField) {\n            stampField.readOnly = isMax;\n            \n            if (isMax) {\n                stampField.setAttribute('readonly', 'readonly');\n                stampField.style.backgroundColor = '#e9ecef';\n                stampField.style.cursor = 'not-allowed';\n                stampField.dataset.manual = '0';\n                const loan = parsePt(loanAmountField?.value || '0');\n                stampField.value = loan > 0 ? formatPt(loan * 0.006, 0) : '';\n            } else {\n                stampField.removeAttribute('readonly');\n                stampField.style.backgroundColor = '';\n                stampField.style.cursor = '';\n                if (stampField.dataset.manual !== '1') {\n                    const loan = parsePt(loanAmountField?.value || '0');\n                    stampField.value = loan > 0 ? formatPt(loan * 0.006, 0) : '';\n                }\n            }\n        }\n        if (!isMax) updateLoanAmount();\n    }\n\n    [euriborField, spreadField, stressField, annualIncomeField, annualExpensesField].forEach(f => {\n        if (f) f.addEventListener('input', updateUI);\n    });\n    modeRadios.forEach(r => r.addEventListener('change', updateUI));\n\n    if (loanAmountField) {\n        loanAmountField.addEventListener('input', function() {\n            this.dataset.manual = '1';\n            updateUI();\n        });\n    }\n\n    if (stampField) {\n        stampField.addEventListener('input', function() {\n            if (!stampField.readOnly) {\n                this.dataset.manual = this.value.trim() !== '' ? '1' : '0';\n            }\n        });\n    }\n\n    [purchasePriceField, deedCostsField, regionField, propertyTypeField].forEach(f => {\n        if (f) {\n            f.addEventListener('input', updateAcquisitionCosts);\n            f.addEventListener('change', updateAcquisitionCosts);\n        }\n    });\n\n    if (ownCapitalField) {\n        ownCapitalField.addEventListener('input', function() {\n            if (loanAmountField && loanAmountField.dataset.manual !== '1') {\n                updateLoanAmount();\n            }\n            updateUI();\n        });\n    }\n\n    updateUI();\n    if (purchasePriceField && parsePt(purchasePriceField.value) > 0) {\n        updateAcquisitionCosts();\n    } else {\n        updateLoanAmount();\n    }\n\n    const clearBtn = document.getElementById('rmi-clear-form');\n    if (clearBtn) {\n        clearBtn.addEventListener('click', function(e) {\n            e.preventDefault();\n            form.querySelectorAll('input:not([type=\"radio\"]):not([type=\"hidden\"]), select, textarea').forEach(f => f.value = '');\n            document.querySelector('input[name=\"simulation_mode\"][value=\"defined\"]').checked = true;\n            document.getElementById('loan_years').value = '30';\n            document.getElementById('euribor_rate').value = '2,50';\n            document.getElementById('spread_rate').value = '1,00';\n            document.getElementById('monthly_insurance').value = '30';\n            document.getElementById('monthly_bank_fees').value = '7';\n            document.getElementById('stress_margin').value = '1,00';\n            document.getElementById('max_effort_rate').value = '35';\n            document.getElementById('opening_fee').value = '300';\n            document.getElementById('valuation_fee').value = '350';\n            document.getElementById('formalization_fee').value = '150';\n            document.getElementById('solicitor_fee').value = '250';\n            document.getElementById('deed_costs').value = '1000';\n            if (stampField) { stampField.value = ''; stampField.dataset.manual = '0'; }\n            if (loanAmountField) loanAmountField.dataset.manual = '0';\n            updateUI();\n            updateAcquisitionCosts();\n            const resBox = document.getElementById('rmi-results-box');\n            if (resBox) resBox.style.display = 'none';\n        });\n    }\n\n    document.addEventListener('click', function(e) {\n        if (e.target && e.target.id === 'rmi-print-btn') {\n            if (typeof rmi_report_data !== 'undefined' && rmi_report_data.print_html) {\n                var printWindow = window.open('', '_blank');\n                if (printWindow) {\n                    printWindow.document.write(rmi_report_data.print_html);\n                    printWindow.document.close();\n                    printWindow.focus();\n                    setTimeout(function(){ printWindow.print(); }, 400);\n                }\n            } else {\n                window.print();\n            }\n        }\n\n        if (e.target && e.target.id === 'rmi-email-btn') {\n            if (typeof rmi_report_data === 'undefined' || !rmi_report_data.file_path) {\n                alert('O relat\u00f3rio ainda n\u00e3o est\u00e1 dispon\u00edvel para envio.');\n                return;\n            }\n\n            var formData = new FormData();\n            formData.append('action', 'rmi_send_report_email');\n            formData.append('email', rmi_report_data.email || '');\n            formData.append('file_path', rmi_report_data.file_path || '');\n            formData.append('nonce', rmi_report_data.nonce || '');\n            formData.append('client_name', rmi_report_data.client_name || '');\n\n            fetch('https:\/\/rmimoveis.pt\/credito\/wp-admin\/admin-ajax.php', {\n                method: 'POST',\n                body: formData,\n                credentials: 'same-origin'\n            })\n            .then(function(r){ return r.json(); })\n            .then(function(data){\n                if (data && data.success) alert('Relat\u00f3rio enviado por email com sucesso.');\n                else alert((data && data.data) ? data.data : 'N\u00e3o foi poss\u00edvel enviar o email.');\n            })\n            .catch(function(){ alert('Ocorreu um erro no envio do email.'); });\n        }\n    });\n});\n<\/script>\n\n<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-6652","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/rmimoveis.pt\/credito\/wp-json\/wp\/v2\/pages\/6652","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rmimoveis.pt\/credito\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/rmimoveis.pt\/credito\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/rmimoveis.pt\/credito\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rmimoveis.pt\/credito\/wp-json\/wp\/v2\/comments?post=6652"}],"version-history":[{"count":7,"href":"https:\/\/rmimoveis.pt\/credito\/wp-json\/wp\/v2\/pages\/6652\/revisions"}],"predecessor-version":[{"id":6693,"href":"https:\/\/rmimoveis.pt\/credito\/wp-json\/wp\/v2\/pages\/6652\/revisions\/6693"}],"wp:attachment":[{"href":"https:\/\/rmimoveis.pt\/credito\/wp-json\/wp\/v2\/media?parent=6652"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}