{"id":91668,"date":"2026-09-24T09:31:11","date_gmt":"2026-09-24T08:31:11","guid":{"rendered":"https:\/\/staging.academiaclinicadragao.com\/?page_id=91668"},"modified":"2026-10-30T14:30:16","modified_gmt":"2026-10-30T14:30:16","slug":"perfil","status":"publish","type":"page","link":"https:\/\/staging.academiaclinicadragao.com\/en\/portal-dos-estudantes\/perfil\/","title":{"rendered":"Profile"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"91668\" class=\"elementor elementor-91668\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-b4e5fd1 elementor-section-boxed elementor-section-height-default elementor-section-height-default wd-section-disabled\" data-id=\"b4e5fd1\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[]}\">\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-c9fa0b8\" data-id=\"c9fa0b8\" data-element_type=\"column\" data-e-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-c76654c elementor-widget elementor-widget-shortcode\" data-id=\"c76654c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\n\n<style>\n\/* Student profile \u2014 stable bilingual interface without TranslatePress rewriting options. *\/\n.aluno-form .student-lang-en, .student-profile-error .student-lang-en { display:none!important; }\nhtml.student-profile-english .aluno-form .student-lang-pt,\nhtml.student-profile-english .student-profile-error .student-lang-pt { display:none!important; }\nhtml.student-profile-english .aluno-form .student-lang-en,\nhtml.student-profile-english .student-profile-error .student-lang-en { display:inline!important; }\n<\/style>\n<script>\n(function(){\n  var en=\/^\\\/en(?:\\\/|$)\/i.test(window.location.pathname);\n  document.documentElement.classList.toggle('student-profile-english',en);\n})();\n<\/script>\n\n\n\n\n\n\n    \n    \n\n\n\n\n\n<div id=\"icds-custom-form-container-6ae8bea872330\"><\/div>\n\n\n<style>\n\n.aluno-form {\n    width: 100%;\n    box-sizing: border-box;\n    background: #ffffff;\n    border-radius: 18px;\n    padding: 22px 24px;\n    box-shadow: 0 4px 20px rgba(20, 80, 150, 0.07);\n}\n\n\n\/* SECTION TITLES *\/\n\n.aluno-form h3 {\n    margin-top: 35px;\n    margin-bottom: 20px;\n    padding-bottom: 8px;\n\n    border-bottom: 1px solid #e5e7eb;\n\n    font-size: 18px;\n    font-weight: 600;\n}\n\n\n\/* GRID *\/\n\n.aluno-form .form-grid {\n    display: grid;\n    grid-template-columns: repeat(3, minmax(0, 1fr));\n    gap: 20px;\n}\n\n\/* Foto \u00e0 esquerda e campos \u00e0 direita *\/\n.aluno-form .dados-pessoais-layout {\n    display: grid;\n    grid-template-columns: 150px minmax(0, 1fr);\n    align-items: start;\n    gap: 24px;\n}\n\n.aluno-form .dados-pessoais-campos {\n    min-width: 0;\n}\n\n.aluno-form .dados-pessoais-campos .form-grid {\n    grid-template-columns: repeat(3, minmax(0, 1fr));\n}\n\n\n.form-field-full {\n    grid-column: 1 \/ -1;\n}\n\n\n\/* FIELDS *\/\n\n.form-field {\n    margin-bottom: 5px;\n}\n\n\n.form-field label {\n    display: block;\n\n    margin-bottom: 6px;\n\n    font-size: 14px;\n    font-weight: 600;\n}\n\n\n.form-field input,\n.form-field textarea,\n.form-field select {\n\n    width: 100%;\n\n    padding: 11px 12px;\n\n    border: 1px solid #d1d5db;\n    border-radius: 6px;\n\n    font-family: inherit;\n    font-size: 14px;\n\n    box-sizing: border-box;\n}\n\n\n.form-field textarea {\n    resize: vertical;\n}\n\n\n.form-field input:focus,\n.form-field textarea:focus,\n.form-field select:focus {\n\n    outline: none;\n\n    border-color: #6b7280;\n}\n\n\n.form-field input[readonly] {\n    background: #f3f4f6;\n    cursor: default;\n}\n\n.checkbox-label {\n    display: flex !important;\n    align-items: center;\n    gap: 10px;\n    cursor: pointer;\n    font-weight: 400 !important;\n}\n\n.checkbox-label input[type=\"checkbox\"] {\n    width: 18px;\n    height: 18px;\n    margin: 0;\n    flex-shrink: 0;\n    cursor: pointer;\n}\n\n\n\/* PHOTO *\/\n\n.aluno-form .foto-wrapper {\n    display: flex;\n    justify-content: flex-start;\n    margin: 0;\n}\n\n.aluno-form .aluno-foto,\n.aluno-form .aluno-foto-placeholder {\n    width: 150px;\n    height: 150px;\n    box-sizing: border-box;\n    border-radius: 12px;\n    border: 1px solid #e5e7eb;\n}\n\n.aluno-form .aluno-foto {\n    display: block;\n    object-fit: cover;\n}\n\n.aluno-form .aluno-foto-placeholder {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    padding: 12px;\n    background: #f3f4f6;\n    color: #6b7280;\n    font-size: 13px;\n    text-align: center;\n}\n\n\n\/* BUTTON *\/\n\n.form-actions {\n    margin-top: 30px;\n}\n\n\n.form-actions button {\n\n    padding: 12px 22px;\n\n    border: none;\n    border-radius: 6px;\n\n    cursor: pointer;\n\n    font-family: inherit;\n    font-size: 14px;\n    font-weight: 600;\n}\n\n\n\/* MESSAGES *\/\n\n.success-message {\n\n    margin-top: 15px;\n\n    padding: 12px 15px;\n\n    background: #ecfdf5;\n\n    border: 1px solid #a7f3d0;\n    border-radius: 6px;\n\n    color: #047857;\n\n    font-weight: 500;\n}\n\n\n.error-message {\n\n    margin-top: 15px;\n\n    padding: 12px 15px;\n\n    background: #fef2f2;\n\n    border: 1px solid #fecaca;\n    border-radius: 6px;\n\n    color: #b91c1c;\n}\n\n\n\/* LAPTOP: dois campos por linha *\/\n@media (max-width: 1199px) {\n    .aluno-form .form-grid,\n    .aluno-form .dados-pessoais-campos .form-grid {\n        grid-template-columns: repeat(2, minmax(0, 1fr));\n    }\n}\n\n\/* MOBILE: um campo por linha e foto em cima, alinhada \u00e0 esquerda *\/\n@media (max-width: 767px) {\n    .aluno-form {\n        padding: 18px 16px;\n    }\n\n    .aluno-form .dados-pessoais-layout {\n        grid-template-columns: minmax(0, 1fr);\n        gap: 18px;\n    }\n\n    .aluno-form .form-grid,\n    .aluno-form .dados-pessoais-campos .form-grid {\n        grid-template-columns: minmax(0, 1fr);\n    }\n\n    .aluno-form .aluno-foto,\n    .aluno-form .aluno-foto-placeholder {\n        width: 120px;\n        height: 120px;\n    }\n}\n\n<\/style>\n<style>\n\/* PERFIL ALUNO \u2014 visual do perfil do formador; l\u00f3gica e campos preservados *\/\n.aluno-form{width:100%!important;box-sizing:border-box!important;background:#fff!important;border-radius:18px!important;padding:28px 30px!important;box-shadow:0 4px 20px rgba(20,80,150,.07)!important;font-family:inherit!important}\n.aluno-form *{box-sizing:border-box}\n.aluno-form .aluno-perfil-header{margin-bottom:27px}\n.aluno-form .aluno-perfil-title-line{display:flex;align-items:center;gap:12px;color:#0954d9}\n.aluno-form .aluno-perfil-title-line h2{font-size:24px!important;color:#0954d9!important;font-weight:700!important;line-height:1.2!important;margin:0!important;text-transform:none!important}\n.aluno-form .aluno-perfil-header p{margin:8px 0 0!important;font-size:14px;color:#6480ac}\n.aluno-form > h3{margin:32px 0 20px!important;padding:0 0 12px!important;border-bottom:1px solid #e1e9fb!important;color:#0954d9!important;font-size:18px!important;font-weight:700!important;line-height:1.35!important;text-transform:none!important}\n.aluno-form .form-grid,.aluno-form .dados-pessoais-campos .form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 24px}\n.aluno-form .dados-pessoais-layout{display:grid;grid-template-columns:190px minmax(0,1fr);gap:28px;align-items:start}\n.aluno-form .foto-wrapper{min-width:0;display:flex;flex-direction:column;gap:10px}\n.aluno-form .aluno-foto,.aluno-form .aluno-foto-placeholder{width:170px!important;height:170px!important;max-width:100%;border-radius:12px;border:1px solid #c6d8fd;background:#f8fbff;object-fit:cover}\n.aluno-form .aluno-foto-placeholder{color:#8297bc;font-size:13px}\n.aluno-form .form-field{min-width:0;margin-bottom:0!important}\n.aluno-form .form-field label{display:block;color:#134bb9!important;font-size:14px!important;font-weight:700!important;margin:0 0 9px!important;line-height:1.4!important}\n.aluno-form .form-field input:not([type=\"file\"]):not([type=\"checkbox\"]):not([type=\"hidden\"]),.aluno-form .form-field select,.aluno-form .form-field textarea{display:block!important;width:100%!important;min-width:0!important;min-height:51px!important;padding:13px 15px!important;background-color:#fbfdff!important;color:#233b63!important;border:1px solid #c7d8fc!important;border-radius:11px!important;font-family:inherit!important;font-size:15px!important;box-shadow:none!important;outline:none!important;line-height:1.4!important}\n.aluno-form .form-field textarea{min-height:110px!important;resize:vertical}\n.aluno-form .form-field input:focus,.aluno-form .form-field select:focus,.aluno-form .form-field textarea:focus{border-color:#287efa!important;box-shadow:0 0 0 3px rgba(40,126,250,.1)!important}\n.aluno-form .form-field input[type=\"text\"][readonly],.aluno-form .form-field input:not([type=\"file\"]):not([type=\"checkbox\"]):not([type=\"hidden\"])[readonly]{background:#f1f5fd!important;background-color:#f1f5fd!important;color:#6880a5!important;cursor:default!important}\n.aluno-form .form-field select{appearance:none!important;-webkit-appearance:none!important;-moz-appearance:none!important;padding-right:42px!important;background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23134bb9' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'\/%3E%3C\/svg%3E\")!important;background-repeat:no-repeat!important;background-position:right 14px center!important;background-size:18px 18px!important;cursor:pointer}\n.aluno-form .form-field select::-ms-expand{display:none}\n.aluno-form .form-field input[type=\"date\"]{color-scheme:light;padding-right:45px!important;background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23134bb9' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'\/%3E%3Cpath d='M7 3v4M17 3v4M3 10h18'\/%3E%3C\/svg%3E\")!important;background-repeat:no-repeat!important;background-position:right 15px center!important;background-size:20px 20px!important;position:relative}\n.aluno-form .form-field input[type=\"date\"]::-webkit-calendar-picker-indicator{opacity:0!important;cursor:pointer!important;position:absolute;right:0;width:44px;height:100%;margin:0}\n.aluno-form .form-field input[type=\"file\"]{width:100%;max-width:100%;padding:12px;border:1px solid #c7d8fc;border-radius:11px;color:#134bb9;background:#f8fbff}\n.aluno-form .form-field small{display:block;margin-top:7px;font-size:12px;line-height:1.4;color:#7893c0}\n.aluno-form .checkbox-label{display:flex!important;align-items:flex-start;gap:12px;color:#134bb9!important;font-weight:600!important;cursor:pointer}\n.aluno-form .checkbox-label input[type=\"checkbox\"]{width:19px!important;height:19px!important;accent-color:#1676f4;flex:0 0 19px;margin-top:2px}\n.aluno-form .form-actions{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #e1e9fb;margin-top:30px;padding-top:24px}\n.aluno-form .form-actions p{margin:0!important;color:#7790b7;font-size:12px}\n.aluno-form .form-actions button,.aluno-form .form-actions button:hover,.aluno-form .form-actions button:focus{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:10px!important;min-height:48px!important;padding:12px 25px!important;background:#1676f4!important;color:#fff!important;border:0!important;border-radius:11px!important;font-size:14px!important;font-weight:700!important;cursor:pointer!important;box-shadow:0 6px 15px rgba(22,118,244,.18)!important;text-decoration:none!important}\n.aluno-form .form-actions button:disabled{opacity:.65!important;cursor:wait!important}\n.aluno-form .form-required-star{color:#ef4444!important}\n@media(min-width:601px) and (max-width:1199px){.aluno-form .form-grid,.aluno-form .dados-pessoais-campos .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}\n@media(max-width:850px){.aluno-form .dados-pessoais-layout{grid-template-columns:1fr}.aluno-form .foto-wrapper{max-width:250px}}\n@media(max-width:600px){.aluno-form{padding:20px 17px!important}.aluno-form .form-grid,.aluno-form .dados-pessoais-campos .form-grid{grid-template-columns:minmax(0,1fr);gap:17px}.aluno-form .form-actions{flex-direction:column;align-items:stretch}.aluno-form .form-actions button{width:100%}.aluno-form .aluno-perfil-title-line h2{font-size:21px!important}}\n\n\/* Separa\u00e7\u00e3o da c\u00e9dula profissional face aos campos de nacionalidade e sexo. *\/\n.aluno-form .aluno-cedula-field{margin-top:26px!important;}\n\n\/* Fotografias e c\u00e9dula: mesmos controlos visuais do perfil do formador. *\/\n.aluno-form .aluno-photo-label{display:block;color:#134bb9!important;font-size:14px;font-weight:700}\n.aluno-form .aluno-photo-preview{width:170px;max-width:100%;aspect-ratio:1\/1;border:1px solid #c6d8fd;border-radius:12px;overflow:hidden;background:#f8fbff}\n.aluno-form .aluno-photo-preview .aluno-foto,.aluno-form .aluno-photo-preview .aluno-foto-placeholder{width:100%!important;height:100%!important;border:0!important;object-fit:cover}\n.aluno-form #aluno-foto-upload{width:100%;font-size:12px;color:#134bb9;max-width:100%}\n.aluno-form .foto-wrapper small{font-size:12px;color:#7893c0;line-height:1.4}\n.aluno-form .aluno-upload-zone{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:158px;padding:21px 15px;border:2px dashed #b9d2fa;border-radius:12px;background:#f8fbff;text-align:center;color:#325b9b;cursor:pointer;overflow:hidden;transition:background .2s,border-color .2s}\n.aluno-form .aluno-upload-zone:hover,.aluno-form .aluno-upload-zone.is-dragover{background:#edf5ff;border-color:#1676f4}\n.aluno-form .aluno-upload-zone:focus-within{outline:3px solid rgba(40,126,250,.17);outline-offset:2px}\n.aluno-form .aluno-upload-symbol{display:flex;color:#1676f4}\n.aluno-form .aluno-upload-zone strong{color:#145ee0}\n.aluno-form .aluno-upload-hint{font-size:12px;color:#7893c0}\n.aluno-form .aluno-upload-filename{font-size:12px;color:#116149;font-weight:700;overflow-wrap:anywhere}\n.aluno-form .aluno-upload-zone input[type=\"file\"]{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;opacity:0!important;cursor:pointer!important;margin:0!important;z-index:1}\n<\/style>\n\n\n<script>\n\/* Show the Dataverse English lookup labels without changing the selected GUID values. *\/\n(function(){\n function init(){\n  var form=document.getElementById('aluno-perfil-form');if(!form)return;\n  var en=\/^\\\/en(?:\\\/|$)\/i.test(location.pathname);\n  ['profissao','especialidade','tipo_documento','nacionalidade','sexo'].forEach(function(id){\n   var sel=form.querySelector('#'+id);if(!sel)return;\n   Array.prototype.forEach.call(sel.options,function(option){\n    if(!option.dataset.labelPt)return;\n    var label=(en?option.dataset.labelEn:option.dataset.labelPt)||option.dataset.labelPt;\n    \/\/ Dataverse can return nested HTML entities, e.g. National&#x20;identity&#x20;Card.\n    var decode=document.createElement('textarea');\n    for(var i=0;i<3;i++){decode.innerHTML=label;var next=decode.value;if(next===label)break;label=next;}\n    option.textContent=label;\n   });\n  });\n }\n if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',init,{once:true});else init();\n})();\n<\/script>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', function () {\n\n    const rgpdCheckbox =\n        document.getElementById('rgpd_checkbox');\n\n    const imagemCheckbox =\n        document.getElementById('imagem_checkbox');\n\n    const rgpdValue =\n        document.getElementById('rgpd_value');\n\n    const imagemValue =\n        document.getElementById('imagem_value');\n\n    const dataAceitacao =\n        document.getElementById('data_aceitacao');\n\n\n    function getCurrentDateTime() {\n\n        const agora = new Date();\n\n        const ano = agora.getFullYear();\n\n        const mes =\n            String(agora.getMonth() + 1).padStart(2, '0');\n\n        const dia =\n            String(agora.getDate()).padStart(2, '0');\n\n        const hora =\n            String(agora.getHours()).padStart(2, '0');\n\n        const minuto =\n            String(agora.getMinutes()).padStart(2, '0');\n\n        const segundo =\n            String(agora.getSeconds()).padStart(2, '0');\n\n        return (\n            ano + '-' +\n            mes + '-' +\n            dia + 'T' +\n            hora + ':' +\n            minuto + ':' +\n            segundo\n        );\n    }\n\n\n    function atualizarConsentimentos() {\n\n        \/* Values sent to Dataverse *\/\n\n        rgpdValue.value =\n            rgpdCheckbox.checked ? '1' : '0';\n\n        imagemValue.value =\n            imagemCheckbox.checked ? '1' : '0';\n\n\n        \/*\n         * BOTH consents have been accepted.\n         *\n         * Only create the timestamp if there\n         * isn't already one.\n         *\/\n\n        if (\n            rgpdCheckbox.checked &&\n            imagemCheckbox.checked &&\n            !dataAceitacao.value\n        ) {\n\n            dataAceitacao.value =\n                getCurrentDateTime();\n\n        }\n\n\n        \/*\n         * If either consent is removed,\n         * clear the acceptance timestamp.\n         *\/\n\n        if (\n            !rgpdCheckbox.checked ||\n            !imagemCheckbox.checked\n        ) {\n\n            dataAceitacao.value = '';\n\n        }\n\n    }\n\n\n    rgpdCheckbox.addEventListener(\n        'change',\n        atualizarConsentimentos\n    );\n\n    imagemCheckbox.addEventListener(\n        'change',\n        atualizarConsentimentos\n    );\n\n\n    const form =\n        rgpdCheckbox.closest('form');\n\n    if (form) {\n\n        form.addEventListener(\n            'submit',\n            atualizarConsentimentos\n        );\n\n    }\n\n});\n\ndocument.addEventListener('DOMContentLoaded', function () {\n\n    const nacionalidade =\n        document.getElementById('nacionalidade');\n\n    const naturalidadeContainer =\n        document.getElementById('naturalidade_container');\n\n    const naturalidade =\n        document.getElementById('naturalidade');\n\n\n    function atualizarNaturalidade() {\n\n    const selectedOption =\n        nacionalidade.options[nacionalidade.selectedIndex];\n\n    const nomeNacionalidade =\n        selectedOption\n            ? (selectedOption.dataset.labelPt || selectedOption.text).trim().toLowerCase()\n            : '';\n\n    if (nomeNacionalidade === 'portuguesa') {\n\n        naturalidadeContainer.style.display = '';\n\n        \/* Mandatory for Portuguese nationality *\/\n        naturalidade.required = true;\n\n    } else {\n\n        naturalidadeContainer.style.display = 'none';\n\n        \/* Not applicable *\/\n        naturalidade.required = false;\n\n        \/* Clear old value *\/\n        naturalidade.value = '';\n\n    }\n}\n\n\n    \/* Run when nationality changes *\/\n\n    nacionalidade.addEventListener(\n        'change',\n        atualizarNaturalidade\n    );\n\n\n    \/* Run when page initially loads *\/\n\n    atualizarNaturalidade();\n\n});\n\ndocument.addEventListener('DOMContentLoaded', function () {\n\n    const profissao = document.getElementById('profissao');\n    const especialidadeContainer = document.getElementById('especialidade_container');\n    const especialidade = document.getElementById('especialidade');\n    const descricaoProfissaoContainer = document.getElementById('descricao_profissao_container');\n    const descricaoProfissao = document.getElementById('descricao_profissao');\n\n    \/* Stop if the profession dropdown doesn't exist *\/\n    if (!profissao) {\n        console.log('Campo profiss\u00e3o n\u00e3o encontrado.');\n        return;\n    }\n\n\n    function atualizarCamposProfissao() {\n\n    const selectedOption =\n        profissao.options[profissao.selectedIndex];\n\n    \/* Use the ORIGINAL Portuguese lookup label, regardless of the visible\n       English translation. Decode DataPress HTML entities before comparing. *\/\n    function normalizeProfessionLabel(value) {\n        let label = String(value || '');\n        const decoder = document.createElement('textarea');\n        for (let i = 0; i < 4; i++) {\n            decoder.innerHTML = label;\n            const decoded = decoder.value;\n            if (decoded === label) break;\n            label = decoded;\n        }\n        return label.normalize('NFD')\n            .replace(\/[\\u0300-\\u036f]\/g, '')\n            .trim().toLowerCase().replace(\/\\s+\/g, ' ');\n    }\n\n    const nomeProfissao = selectedOption\n        ? normalizeProfessionLabel(selectedOption.dataset.labelPt || selectedOption.textContent)\n        : '';\n\n    if (nomeProfissao === 'medico' || nomeProfissao === 'medica' || nomeProfissao === 'medico\/a') {\n\n        \/* Show Especialidade *\/\n        especialidadeContainer.style.display = '';\n        especialidade.required = true;\n\n        \/* Hide and clear Descri\u00e7\u00e3o *\/\n        descricaoProfissaoContainer.style.display = 'none';\n        descricaoProfissao.required = false;\n        descricaoProfissao.value = '';\n\n    } else if (nomeProfissao === 'outro') {\n\n        \/* Hide and clear Especialidade *\/\n        especialidadeContainer.style.display = 'none';\n        especialidade.required = false;\n        especialidade.value = '';\n\n        \/* Show Descri\u00e7\u00e3o *\/\n        descricaoProfissaoContainer.style.display = '';\n        descricaoProfissao.required = true;\n\n    } else {\n\n        \/* Neither applies *\/\n        especialidadeContainer.style.display = 'none';\n        especialidade.required = false;\n        especialidade.value = '';\n\n        descricaoProfissaoContainer.style.display = 'none';\n        descricaoProfissao.required = false;\n        descricaoProfissao.value = '';\n\n    }\n}\n\n\n    profissao.addEventListener(\n        'change',\n        atualizarCamposProfissao\n    );\n\n    \/* Check existing value when page loads *\/\n    atualizarCamposProfissao();\n\n});\n\n<\/script>\n\n\n<script>\n(function () {\n  function setupStudentUploads() {\n    const form = document.querySelector('.aluno-form');\n    if (!form || form.dataset.uploadsReady === '1') return;\n    form.dataset.uploadsReady = '1';\n    const photo = form.querySelector('#aluno-foto-upload');\n    const preview = form.querySelector('#aluno-photo-preview');\n    if (photo && preview) {\n      photo.addEventListener('change', function () {\n        const file = photo.files && photo.files[0];\n        if (!file || !['image\/png','image\/jpeg','image\/webp'].includes(file.type)) return;\n        const url = URL.createObjectURL(file);\n        const img = document.createElement('img');\n        img.className = 'aluno-foto';\n        img.alt = \/^\\\/en(?:\\\/|$)\/i.test(location.pathname) ? 'Photograph preview' : 'Pr\u00e9-visualiza\u00e7\u00e3o da fotografia';\n        img.onload = function () { URL.revokeObjectURL(url); };\n        img.src = url;\n        preview.replaceChildren(img);\n      });\n    }\n    const zone = form.querySelector('#aluno-cedula-dropzone');\n    const input = form.querySelector('#bpe_cedula_profissional');\n    const status = form.querySelector('#aluno-cedula-estado');\n    const filename = zone && zone.querySelector('.aluno-upload-filename');\n    if (!zone || !input || !status) return;\n    function validPdf(file) {\n      return !!file && \/\\.pdf$\/i.test(file.name) &&\n          (file.type === 'application\/pdf' || file.type === '');\n    }\n    function validateSelection() {\n      const file = input.files && input.files[0];\n      if (!file) {\n        status.disabled = true;\n        if (filename) filename.textContent = '';\n        input.setCustomValidity('');\n        return false;\n      }\n      if (!validPdf(file)) {\n        input.value = '';\n        status.disabled = true;\n        if (filename) filename.textContent = '';\n        input.setCustomValidity(\/^\\\/en(?:\\\/|$)\/i.test(location.pathname) ? 'Only PDF files are allowed.' : 'Apenas s\u00e3o permitidos ficheiros PDF.');\n        input.reportValidity();\n        return false;\n      }\n      input.setCustomValidity('');\n      status.value = '2';\n      status.disabled = false;\n      if (filename) filename.textContent = file.name;\n      return true;\n    }\n    input.addEventListener('change', validateSelection);\n    ['dragenter','dragover'].forEach(function (eventName) {\n      zone.addEventListener(eventName, function (event) {\n        event.preventDefault();\n        zone.classList.add('is-dragover');\n      });\n    });\n    ['dragleave','drop'].forEach(function (eventName) {\n      zone.addEventListener(eventName, function (event) {\n        event.preventDefault();\n        zone.classList.remove('is-dragover');\n      });\n    });\n    zone.addEventListener('drop', function (event) {\n      const files = event.dataTransfer && event.dataTransfer.files;\n      if (!files || !files.length) return;\n      if (!validPdf(files[0])) {\n        input.value = '';\n        status.disabled = true;\n        if (filename) filename.textContent = '';\n        input.setCustomValidity(\/^\\\/en(?:\\\/|$)\/i.test(location.pathname) ? 'Only PDF files are allowed.' : 'Apenas s\u00e3o permitidos ficheiros PDF.');\n        input.reportValidity();\n        return;\n      }\n      try { input.files = files; validateSelection(); }\n      catch (error) { input.click(); }\n    });\n    form.addEventListener('submit', function (event) {\n      if (input.files && input.files.length && !validateSelection()) {\n        event.preventDefault();\n      }\n    });\n  }\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', setupStudentUploads, {once:true});\n  else setupStudentUploads();\n})();\n<\/script>\n\n\n<style>\n\/* Mesmo feedback do perfil do formador; sem alterar o formul\u00e1rio DataPress. *\/\nimg[src*=\"\/integration-cds\/front\/custom-form\/img\/spinner\"]{display:none!important}\n.aluno-form .success-message,.aluno-form .error-message,\n.aluno-form .alert-success,.aluno-form .alert-danger{display:none!important}\n#aluno-profile-toast{display:none;position:fixed;right:24px;bottom:24px;z-index:999999;pointer-events:none;max-width:min(400px,calc(100vw - 32px));padding:14px 19px;border-radius:9px;background:#1d4ed8;color:#fff;box-shadow:0 5px 18px #0003;font-size:14px}\n#aluno-profile-toast.ativo{display:block}\n#aluno-profile-toast.sucesso{background:#14532d}\n#aluno-profile-toast.erro{background:#991b1b}\n<\/style>\n<div id=\"aluno-profile-toast\" role=\"status\" aria-live=\"polite\"><\/div>\n<script>\n(function(){\n function init(){\n  var form=document.getElementById('aluno-perfil-form');\n  var toast=document.getElementById('aluno-profile-toast');\n  if(!form||!toast||form.dataset.toastReady==='1')return;\n  form.dataset.toastReady='1';\n  var state='idle',hideTimer=null,responseTimer=null,scheduled=false;\n  var english=\/^\\\/en(?:\\\/|$)\/i.test(location.pathname);\n   var success=english?'Details updated successfully!':'Dados atualizados com sucesso!';\n  var failure=english?'Unable to update the details.':'N\u00e3o foi poss\u00edvel atualizar os dados.';\n  function show(message,type,duration){\n   clearTimeout(hideTimer);toast.textContent=message;toast.className='ativo '+(type||'');\n   if(duration)hideTimer=setTimeout(function(){toast.className='';},duration);\n  }\n  function resolve(type){\n   clearTimeout(responseTimer);\n   if(state===type)return;\n   state=type;\n   show(type==='success'?success:failure,type==='success'?'sucesso':'erro',6000);\n   if(type==='success')setTimeout(function(){window.location.reload();},1500);\n  }\n  var result=document.getElementById('aluno-profile-result');\n  if(result)resolve(result.dataset.result==='success'?'success':'error');\n  function inspectResponses(){\n   var nodes=document.querySelectorAll('p,div,span,small,li,strong,.alert,.message,[role=\"alert\"]');\n   var found=null;\n   for(var i=0;i<nodes.length;i++){\n    var el=nodes[i];\n    if(el===toast||toast.contains(el)||el.closest('script,style')||el.children.length>2)continue;\n    var label=(el.textContent||'').replace(\/^[\\s\u2713\u2714]+\/,'').trim();\n    if(!['Dados atualizados com sucesso!','N\u00e3o foi poss\u00edvel atualizar os dados.','Details updated successfully!','Unable to update the details.'].includes(label))continue;\n    if(el.style.display!=='none')el.style.setProperty('display','none','important');\n    if(label==='Dados atualizados com sucesso!'||label==='Details updated successfully!')found='success';else if(!found)found='error';\n   }\n   if(found)resolve(found);\n  }\n  inspectResponses();\n  if(typeof MutationObserver!=='undefined'){\n   var observer=new MutationObserver(function(){\n    if(scheduled)return;scheduled=true;\n    requestAnimationFrame(function(){scheduled=false;inspectResponses();});\n   });\n   observer.observe(document.body,{childList:true,subtree:true,characterData:true});\n  }\n  form.addEventListener('submit',function(event){\n   if(event.defaultPrevented||!form.checkValidity())return;\n   state='processing';show(english?'Your changes are being saved...':'As suas altera\u00e7\u00f5es est\u00e3o a ser guardadas...','',0);\n   clearTimeout(responseTimer);\n   responseTimer=setTimeout(function(){\n    if(state==='processing'){\n     state='unknown';show(english?'Could not confirm the result. Check whether your changes were saved.':'N\u00e3o foi poss\u00edvel confirmar o resultado. Verifique se os dados foram guardados.','erro',9000);\n    }\n   },20000);\n  });\n }\n if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',init,{once:true});else init();\n})();\n<\/script>\n\n<script>\n\/* Mensagem em portugu\u00eas em todos os campos obrigat\u00f3rios, incluindo Dados pessoais. *\/\n(function () {\n  function initStudentRequiredValidation() {\n    var form = document.getElementById('aluno-perfil-form');\n    if (!form || form.dataset.requiredPtReady === '1') return;\n    form.dataset.requiredPtReady = '1';\n    var message = \/^\\\/en(?:\\\/|$)\/i.test(location.pathname) ? 'This field is required.' : '\u00c9 necess\u00e1rio preencher este campo.';\n\n    function isMissing(field) {\n      if (!field.required || field.disabled) return false;\n      if (field.type === 'checkbox' || field.type === 'radio') return !field.checked;\n      if (field.type === 'file') return !field.files || field.files.length === 0;\n      return !String(field.value || '').trim();\n    }\n\n    function sync(field) {\n      if (!field || !field.matches || !field.matches('input, select, textarea') ||\n          typeof field.setCustomValidity !== 'function') return;\n      \/* Preserve other validation errors (e.g. unsupported PDF type). *\/\n      if (field.validationMessage !== message && field.validity.customError) return;\n      field.setCustomValidity(isMissing(field) ? message : '');\n    }\n\n    \/* Direct listeners also work for inputs inside the Dados pessoais grid. *\/\n    Array.prototype.forEach.call(form.querySelectorAll('input[required],select[required],textarea[required]'), function (field) {\n      sync(field);\n      field.addEventListener('invalid', function () { sync(field); });\n      field.addEventListener('input', function () { sync(field); });\n      field.addEventListener('change', function () { sync(field); });\n    });\n    \/* Recheck conditional required fields before browser constraint validation. *\/\n    form.addEventListener('invalid', function (event) { sync(event.target); }, true);\n    form.addEventListener('submit', function () {\n      Array.prototype.forEach.call(form.querySelectorAll('[required]'), sync);\n    }, true);\n    form.addEventListener('change', function (event) { sync(event.target); }, true);\n    form.addEventListener('input', function (event) { sync(event.target); }, true);\n  }\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', initStudentRequiredValidation, {once:true});\n  } else initStudentRequiredValidation();\n})();\n<\/script>\n\n<\/div>\n\t\t\t\t\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>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":65,"featured_media":0,"parent":91529,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"courseId":0,"footnotes":""},"class_list":["post-91668","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/staging.academiaclinicadragao.com\/en\/wp-json\/wp\/v2\/pages\/91668","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/staging.academiaclinicadragao.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/staging.academiaclinicadragao.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/staging.academiaclinicadragao.com\/en\/wp-json\/wp\/v2\/users\/65"}],"replies":[{"embeddable":true,"href":"https:\/\/staging.academiaclinicadragao.com\/en\/wp-json\/wp\/v2\/comments?post=91668"}],"version-history":[{"count":5,"href":"https:\/\/staging.academiaclinicadragao.com\/en\/wp-json\/wp\/v2\/pages\/91668\/revisions"}],"predecessor-version":[{"id":93900,"href":"https:\/\/staging.academiaclinicadragao.com\/en\/wp-json\/wp\/v2\/pages\/91668\/revisions\/93900"}],"up":[{"embeddable":true,"href":"https:\/\/staging.academiaclinicadragao.com\/en\/wp-json\/wp\/v2\/pages\/91529"}],"wp:attachment":[{"href":"https:\/\/staging.academiaclinicadragao.com\/en\/wp-json\/wp\/v2\/media?parent=91668"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}