{"id":93123,"date":"2026-10-20T09:28:38","date_gmt":"2026-10-20T08:28:38","guid":{"rendered":"https:\/\/staging.academiaclinicadragao.com\/?page_id=93123"},"modified":"2026-10-28T14:29:13","modified_gmt":"2026-10-28T14:29:13","slug":"portal-dos-gestores-operacionais","status":"publish","type":"page","link":"https:\/\/staging.academiaclinicadragao.com\/en\/portal-dos-gestores-operacionais\/","title":{"rendered":"Portal dos Gestores operacionais"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"93123\" class=\"elementor elementor-93123\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-a777805 elementor-section-boxed elementor-section-height-default elementor-section-height-default wd-section-disabled\" data-id=\"a777805\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[],&quot;background_background&quot;:&quot;classic&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-225d344\" data-id=\"225d344\" 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-86c125f gestor-page-title elementor-widget elementor-widget-wd_title\" data-id=\"86c125f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_title.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"title-wrapper set-mb-s reset-last-child wd-title-color-default wd-title-style-default wd-title-size-default text-left\">\n\n\t\t\t\n\t\t\t<div class=\"liner-continer\">\n\t\t\t\t<h4 class=\"woodmart-title-container title wd-fontsize-l\">Portal do Gestor operacional<\/h4> \n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3644089 elementor-widget elementor-widget-html\" data-id=\"3644089\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- =========================================\r\n     GESTOR OPERACIONAL PORTAL - FULL PAGE LOADER\r\n     Bilingual PT\/EN, independent of TranslatePress\r\n========================================= -->\r\n\r\n<script>\r\n(function () {\r\n    document.documentElement.classList.toggle(\r\n        'gestor-loader-english',\r\n        \/^\\\/en(?:\\\/|$)\/i.test(window.location.pathname)\r\n    );\r\n})();\r\n<\/script>\r\n\r\n<div id=\"gestor-page-loader\"\r\n     role=\"status\"\r\n     aria-live=\"polite\"\r\n     data-no-translation\r\n     translate=\"no\">\r\n\r\n    <div class=\"gestor-loader-content\">\r\n\r\n        <div class=\"gestor-loader-spinner\"><\/div>\r\n\r\n        <h2><span class=\"gestor-lang-pt\">Portal dos Gestores Operacionais<\/span><span class=\"gestor-lang-en\">Operational Managers Portal<\/span><\/h2>\r\n\r\n        <p><span class=\"gestor-lang-pt\">A preparar a sua \u00e1rea pessoal...<\/span><span class=\"gestor-lang-en\">Preparing your personal area...<\/span><\/p>\r\n\r\n    <\/div>\r\n\r\n<\/div>\r\n\r\n<style>\r\n\/* Manual language switching; TranslatePress must not alter this loader. *\/\r\n#gestor-page-loader .gestor-lang-en { display: none !important; }\r\nhtml.gestor-loader-english #gestor-page-loader .gestor-lang-pt { display: none !important; }\r\nhtml.gestor-loader-english #gestor-page-loader .gestor-lang-en { display: inline !important; }\r\n\r\n\/* =========================================\r\n   FULL PAGE LOADER\r\n========================================= *\/\r\n\r\n#gestor-page-loader {\r\n    position: fixed !important;\r\n    inset: 0 !important;\r\n\r\n    width: 100vw !important;\r\n    height: 100vh !important;\r\n    height: 100dvh !important;\r\n\r\n    z-index: 999999 !important;\r\n\r\n    display: flex !important;\r\n    align-items: center;\r\n    justify-content: center;\r\n\r\n    background: #f4f8ff !important;\r\n\r\n    opacity: 1;\r\n    visibility: visible;\r\n\r\n    transition:\r\n        opacity 0.35s ease,\r\n        visibility 0.35s ease;\r\n}\r\n\r\n\/* Hide loader when photograph is ready *\/\r\n\r\n#gestor-page-loader.gestor-loader-finished {\r\n    opacity: 0 !important;\r\n    visibility: hidden !important;\r\n    pointer-events: none !important;\r\n}\r\n\r\n\/* =========================================\r\n   LOADER CONTENT\r\n========================================= *\/\r\n\r\n#gestor-page-loader .gestor-loader-content {\r\n    display: flex;\r\n    flex-direction: column;\r\n    align-items: center;\r\n\r\n    gap: 15px;\r\n    padding: 30px;\r\n\r\n    text-align: center;\r\n}\r\n\r\n\/* =========================================\r\n   SPINNER\r\n========================================= *\/\r\n\r\n#gestor-page-loader .gestor-loader-spinner {\r\n    width: 55px;\r\n    height: 55px;\r\n\r\n    border: 5px solid #dbeafe;\r\n    border-top-color: #258cfa;\r\n\r\n    border-radius: 50%;\r\n\r\n    animation: gestorLoaderSpin 0.8s linear infinite;\r\n}\r\n\r\n\/* =========================================\r\n   TITLE\r\n========================================= *\/\r\n\r\n#gestor-page-loader h2 {\r\n    margin: 0 !important;\r\n\r\n    color: #1559e8 !important;\r\n    font-size: 25px !important;\r\n    font-weight: 700 !important;\r\n\r\n    text-transform: none !important;\r\n}\r\n\r\n\/* =========================================\r\n   DESCRIPTION\r\n========================================= *\/\r\n\r\n#gestor-page-loader p {\r\n    margin: 0 !important;\r\n\r\n    color: #2269f0 !important;\r\n    font-size: 15px !important;\r\n}\r\n\r\n\/* =========================================\r\n   ANIMATION\r\n========================================= *\/\r\n\r\n@keyframes gestorLoaderSpin {\r\n    to {\r\n        transform: rotate(360deg);\r\n    }\r\n}\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n\r\n    #gestor-page-loader .gestor-loader-spinner {\r\n        animation-duration: 2s;\r\n    }\r\n\r\n}\r\n<\/style>\r\n\r\n<script>\r\n(function () {\r\n\r\n    const MAX_WAIT = 15000;\r\n\r\n    let finished = false;\r\n    let observer = null;\r\n\r\n    \/\/ =====================================\r\n    \/\/ FINISH LOADING\r\n    \/\/ =====================================\r\n\r\n    function finishLoading() {\r\n\r\n        if (finished) return;\r\n\r\n        const loader = document.getElementById(\r\n            \"gestor-page-loader\"\r\n        );\r\n\r\n        if (!loader) return;\r\n\r\n        finished = true;\r\n\r\n        if (observer) {\r\n            observer.disconnect();\r\n        }\r\n\r\n        loader.classList.add(\r\n            \"gestor-loader-finished\"\r\n        );\r\n\r\n        \/\/ Remove loader after fade-out animation\r\n        setTimeout(function () {\r\n\r\n            loader.remove();\r\n\r\n        }, 400);\r\n    }\r\n\r\n    \/\/ =====================================\r\n    \/\/ CHECK GESTOR PHOTOGRAPH\r\n    \/\/ =====================================\r\n\r\n    function checkGestorPhoto() {\r\n\r\n        if (finished) return;\r\n\r\n        \/\/ Gestor data retrieved from Dataverse\r\n        const gestorData = document.getElementById(\r\n            \"gestor-dataverse-data\"\r\n        );\r\n\r\n        \/\/ Wait until the DataPress shortcode is ready\r\n        if (!gestorData) return;\r\n\r\n        const expectedPhotoUrl =\r\n            gestorData.dataset.photo || \"\";\r\n\r\n        \/\/ Gestor has no photograph\r\n        if (!expectedPhotoUrl) {\r\n\r\n            finishLoading();\r\n            return;\r\n\r\n        }\r\n\r\n        \/\/ Elementor gestor photograph\r\n        const image = document.querySelector(\r\n            \".gestor-photo img\"\r\n        );\r\n\r\n        \/\/ Wait for Elementor to render the image\r\n        if (!image) return;\r\n\r\n        \/\/ Verify that the photograph is from Dataverse\r\n        \/\/ rather than Elementor's original image\r\n        const currentSrc =\r\n            image.getAttribute(\"src\") || \"\";\r\n\r\n        if (currentSrc !== expectedPhotoUrl) {\r\n            return;\r\n        }\r\n\r\n        \/\/ Image has finished loading successfully\r\n        if (\r\n            image.complete &&\r\n            image.naturalWidth > 0\r\n        ) {\r\n\r\n            finishLoading();\r\n\r\n        }\r\n\r\n    }\r\n\r\n    \/\/ =====================================\r\n    \/\/ INITIAL CHECK\r\n    \/\/ =====================================\r\n\r\n    checkGestorPhoto();\r\n\r\n    \/\/ =====================================\r\n    \/\/ WATCH ELEMENTOR \/ DATAVERSE CHANGES\r\n    \/\/ =====================================\r\n\r\n    if (!finished) {\r\n\r\n        observer = new MutationObserver(function () {\r\n\r\n            checkGestorPhoto();\r\n\r\n        });\r\n\r\n        observer.observe(document.documentElement, {\r\n\r\n            childList: true,\r\n            subtree: true,\r\n\r\n            attributes: true,\r\n\r\n            attributeFilter: [\r\n                \"src\",\r\n                \"srcset\",\r\n                \"data-photo\"\r\n            ]\r\n\r\n        });\r\n\r\n    }\r\n\r\n    \/\/ =====================================\r\n    \/\/ DETECT IMAGE LOAD\r\n    \/\/ =====================================\r\n\r\n    \/\/ Image load events require capture mode\r\n    document.addEventListener(\r\n        \"load\",\r\n        function (event) {\r\n\r\n            if (\r\n                event.target.matches &&\r\n                event.target.matches(\".gestor-photo img\")\r\n            ) {\r\n\r\n                checkGestorPhoto();\r\n\r\n            }\r\n\r\n        },\r\n        true\r\n    );\r\n\r\n    \/\/ =====================================\r\n    \/\/ DOM READY\r\n    \/\/ =====================================\r\n\r\n    if (document.readyState === \"loading\") {\r\n\r\n        document.addEventListener(\r\n            \"DOMContentLoaded\",\r\n            checkGestorPhoto,\r\n            { once: true }\r\n        );\r\n\r\n    }\r\n\r\n    \/\/ =====================================\r\n    \/\/ EMERGENCY FALLBACK\r\n    \/\/ =====================================\r\n\r\n    setTimeout(function () {\r\n\r\n        if (!finished) {\r\n\r\n            console.warn(\r\n                \"Gestor Portal: Photograph took too long to load.\"\r\n            );\r\n\r\n            finishLoading();\r\n\r\n        }\r\n\r\n    }, MAX_WAIT);\r\n\r\n})();\r\n<\/script>\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<section class=\"elementor-section elementor-top-section elementor-element elementor-element-eca1865 elementor-section-boxed elementor-section-height-default elementor-section-height-default wd-section-disabled\" data-id=\"eca1865\" 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-50 elementor-top-column elementor-element elementor-element-b239d0a detalhes-aluno\" data-id=\"b239d0a\" data-element_type=\"column\" data-e-type=\"column\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-1770a16 dados-aluno elementor-section-boxed elementor-section-height-default elementor-section-height-default wd-section-disabled\" data-id=\"1770a16\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[]}\">\n\t\t\t\t\t\t\t<div class=\"elementor-background-overlay\"><\/div>\n\t\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-50 elementor-inner-column elementor-element elementor-element-cf411c1\" data-id=\"cf411c1\" 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-6223f03 elementor-widget__width-initial gestor-photo elementor-widget elementor-widget-image\" data-id=\"6223f03\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"300\" height=\"200\" src=\"https:\/\/staging.academiaclinicadragao.com\/wp-content\/themes\/woodmart\/images\/lazy.png\" class=\"attachment-medium size-medium wp-image-71417 wd-lazy-load wd-lazy-fade\" alt=\"\" srcset=\"\" sizes=\"(max-width: 300px) 100vw, 300px\" data-wood-src=\"https:\/\/staging.academiaclinicadragao.com\/wp-content\/uploads\/2024\/06\/placeholder-21-300x200.png\" data-srcset=\"https:\/\/staging.academiaclinicadragao.com\/wp-content\/uploads\/2024\/06\/placeholder-21-300x200.png 300w, https:\/\/staging.academiaclinicadragao.com\/wp-content\/uploads\/2024\/06\/placeholder-21-1024x683.png 1024w, https:\/\/staging.academiaclinicadragao.com\/wp-content\/uploads\/2024\/06\/placeholder-21-768x512.png 768w, https:\/\/staging.academiaclinicadragao.com\/wp-content\/uploads\/2024\/06\/placeholder-21-18x12.png 18w, https:\/\/staging.academiaclinicadragao.com\/wp-content\/uploads\/2024\/06\/placeholder-21-600x400.png 600w, https:\/\/staging.academiaclinicadragao.com\/wp-content\/uploads\/2024\/06\/placeholder-21-150x100.png 150w, https:\/\/staging.academiaclinicadragao.com\/wp-content\/uploads\/2024\/06\/placeholder-21.png 1200w\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c50f5e9 gestor-number elementor-widget elementor-widget-wd_text_block\" data-id=\"c50f5e9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_text_block.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"wd-text-block reset-last-child text-center\">\n\t\t\t\n\t\t\t<p>N\u00ba gestor operacional: XXXXXX<\/p>\n\t\t\t\t\t<\/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<div class=\"elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-bf3ea14\" data-id=\"bf3ea14\" 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-2c7b23f gestor-greeting elementor-widget elementor-widget-wd_text_block\" data-id=\"2c7b23f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_text_block.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"wd-text-block reset-last-child text-left\">\n\t\t\t\n\t\t\t<h6>Ol\u00e1, Jo\u00e3o Silva<span style=\"font-size: 16px; background-color: rgba(255, 255, 255, 0); color: rgb(36, 36, 36);\"><\/span><\/h6>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ca86286 elementor-widget elementor-widget-html\" data-id=\"ca86286\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<a href=\".\/perfil\" class=\"perfil-link\">\r\n    <span class=\"perfil-text\">O meu perfil<\/span>\r\n    <span class=\"perfil-arrow\">\r\n        <svg viewBox=\"0 0 24 24\"\r\n             width=\"20\" height=\"20\"\r\n             fill=\"none\" stroke=\"currentColor\"\r\n             stroke-width=\"2\"\r\n             aria-hidden=\"true\">\r\n            <path d=\"m9 5 7 7-7 7\"\/>\r\n        <\/svg>\r\n    <\/span>\r\n<\/a>\r\n\r\n<style>\r\n.perfil-link {\r\n    display: inline-flex !important;\r\n    width: fit-content !important;\r\n    align-items: center !important;\r\n    justify-content: flex-start !important;\r\n    gap: 8px !important;\r\n    color: #3978ff !important;\r\n    text-decoration: none !important;\r\n}\r\n\r\n.perfil-link .perfil-text {\r\n    display: inline-block !important;\r\n    color: inherit !important;\r\n    border-bottom: 1px solid currentColor !important;\r\n    font-size: 16px;\r\n    padding-bottom: 2px;\r\n    line-height: 0.5;\r\n}\r\n\r\n.perfil-link .perfil-arrow {\r\n    width: 28px;\r\n    height: 28px;\r\n    flex: 0 0 28px;\r\n    border: 2px solid currentColor;\r\n    border-radius: 50%;\r\n    display: inline-flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n}\r\n\r\n.perfil-link:hover {\r\n    color: #0052c4 !important;\r\n}\r\n<\/style>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-86e6405 elementor-widget elementor-widget-html\" data-id=\"86e6405\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n<div class=\"portal-layout\">\r\n\r\n  <!-- LEFT COLUMN: BLUE BUTTONS -->\r\n  <div class=\"portal-buttons\">\r\n\r\n    <!-- OS MEUS CURSOS -->\r\n    <a href=\".\/os-meus-cursos\"\r\n       class=\"portal-button\">\r\n\r\n      <span class=\"portal-button-icon\">\r\n        <i class=\"icon icon-graduation-hat\"\r\n           aria-hidden=\"true\"><\/i>\r\n      <\/span>\r\n\r\n      <span class=\"portal-button-text\">\r\n        Os meus cursos\r\n      <\/span>\r\n\r\n      <span class=\"portal-button-arrow\">\r\n        <svg viewBox=\"0 0 24 24\"\r\n             width=\"20\" height=\"20\"\r\n             fill=\"none\"\r\n             stroke=\"currentColor\"\r\n             stroke-width=\"2\"\r\n             stroke-linecap=\"round\"\r\n             stroke-linejoin=\"round\"\r\n             aria-hidden=\"true\">\r\n          <path d=\"m9 5 7 7-7 7\"\/>\r\n        <\/svg>\r\n      <\/span>\r\n\r\n    <\/a>\r\n\r\n\r\n  <\/div>\r\n\r\n  <!-- RIGHT COLUMN: FAQs -->\r\n  <div class=\"portal-faq\">\r\n\r\n    <a href=\".\/faqs\" class=\"portal-faq-link\"\r\n       aria-label=\"FAQs\">\r\n\r\n      <svg class=\"portal-faq-icon\"\r\n           viewBox=\"0 0 48 48\"\r\n           width=\"48\" height=\"48\"\r\n           fill=\"none\"\r\n           stroke=\"currentColor\"\r\n           stroke-width=\"2.5\"\r\n           stroke-linecap=\"round\"\r\n           stroke-linejoin=\"round\"\r\n           aria-hidden=\"true\">\r\n        <circle cx=\"24\" cy=\"24\" r=\"20\"\/>\r\n        <path d=\"M18 18a6 6 0 0 1 12 0c0 4-6 5-6 9\"\/>\r\n        <circle cx=\"24\" cy=\"34\" r=\"1.5\"\r\n                fill=\"currentColor\" stroke=\"none\"\/>\r\n      <\/svg>\r\n\r\n      <span>FAQs<\/span>\r\n\r\n    <\/a>\r\n\r\n  <\/div>\r\n\r\n<\/div>\r\n\r\n<style>\r\n\/* TWO-COLUMN LAYOUT *\/\r\n.portal-layout {\r\n    display: flex;\r\n    align-items: stretch;\r\n    justify-content: flex-start;\r\n    gap: 24px;\r\n    width: 100%;\r\n}\r\n\r\n\/* LEFT COLUMN - EXPAND TO FILL AVAILABLE SPACE *\/\r\n.portal-layout .portal-buttons {\r\n    display: flex;\r\n    flex-direction: column;\r\n    align-items: stretch;\r\n    gap: 12px;\r\n\r\n    flex: 1 1 0;\r\n    min-width: 0;\r\n}\r\n\r\n\r\n\r\n\/* BLUE BUTTONS *\/\r\n.portal-layout .portal-button {\r\n    display: flex !important;\r\n    align-items: center !important;\r\n    justify-content: flex-start !important;\r\n    gap: 12px !important;\r\n\r\n    width: 100%;\r\n    max-width: none;\r\n    min-height: 60px;\r\n    padding: 8px 12px;\r\n\r\n    background: #258CFA !important;\r\n    background-image: none !important;\r\n\r\n    border-radius: 10px;\r\n    border: none;\r\n\r\n    color: #ffffff !important;\r\n    text-decoration: none !important;\r\n\r\n    font-size: 13px;\r\n    font-weight: 600;\r\n    line-height: 1.4;\r\n    box-sizing: border-box;\r\n\r\n    transition: filter 0.2s ease;\r\n}\r\n\r\n\/* LEFT ICONS *\/\r\n.portal-layout .portal-button-icon {\r\n    display: inline-flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    width: 30px;\r\n    flex: 0 0 30px;\r\n    color: #ffffff !important;\r\n}\r\n\r\n.portal-layout .portal-button-icon i {\r\n    font-size: 28px !important;\r\n    line-height: 1 !important;\r\n    color: #ffffff !important;\r\n}\r\n\r\n\/* BIGGER GRADUATION CAP *\/\r\n.portal-layout .portal-button:first-child\r\n.portal-button-icon i {\r\n    font-size: 36px !important;\r\n}\r\n\r\n\/* BUTTON TEXT *\/\r\n.portal-layout .portal-button-text {\r\n    flex: 1;\r\n    min-width: 0;\r\n    color: #ffffff !important;\r\n    text-align: left;\r\n}\r\n\r\n\/* CIRCULAR ARROWS *\/\r\n.portal-layout .portal-button-arrow {\r\n    display: inline-flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n\r\n    width: 28px;\r\n    height: 28px;\r\n    flex: 0 0 28px;\r\n\r\n    border: 2px solid #ffffff;\r\n    border-radius: 50%;\r\n    color: #ffffff !important;\r\n}\r\n\r\n.portal-layout .portal-button-arrow svg {\r\n    fill: none !important;\r\n    stroke: currentColor !important;\r\n}\r\n\r\n\/* BUTTON HOVER *\/\r\n.portal-layout .portal-button:hover {\r\n    background: #258CFA !important;\r\n    color: #ffffff !important;\r\n    filter: brightness(1.1);\r\n    text-decoration: none !important;\r\n}\r\n\r\n\/* RIGHT COLUMN: FAQs AT THE BOTTOM *\/\r\n.portal-layout .portal-faq {\r\n    display: flex;\r\n    flex: 0 0 70px;\r\n    align-items: flex-end;\r\n    justify-content: center;\r\n}\r\n\r\n\/* FAQs LINK *\/\r\n.portal-layout .portal-faq-link {\r\n    display: inline-flex !important;\r\n    flex-direction: column;\r\n    align-items: center;\r\n    justify-content: center;\r\n    gap: 3px;\r\n\r\n    color: #1556C0 !important;\r\n    text-decoration: none !important;\r\n\r\n    font-size: 15px;\r\n    font-weight: 600;\r\n    line-height: 1.2;\r\n}\r\n\r\n\/* QUESTION MARK ICON *\/\r\n.portal-layout .portal-faq-icon {\r\n    width: 48px;\r\n    height: 48px;\r\n    color: #1556C0;\r\n    flex-shrink: 0;\r\n}\r\n\r\n\/* UNDERLINED FAQs TEXT *\/\r\n.portal-layout .portal-faq-link span {\r\n    color: #1556C0 !important;\r\n    text-decoration: underline !important;\r\n    text-underline-offset: 2px;\r\n}\r\n\r\n\/* FAQs icon and text light up together *\/\r\n.portal-layout .portal-faq-link:hover,\r\n.portal-layout .portal-faq-link:hover span,\r\n.portal-layout .portal-faq-link:hover .portal-faq-icon {\r\n    color: #258CFA !important;\r\n}\r\n\r\n\/* Smooth color transition *\/\r\n.portal-layout .portal-faq-link span,\r\n.portal-layout .portal-faq-icon {\r\n    transition: color 0.2s ease;\r\n}\r\n\r\n.portal-layout .portal-faq-link:hover\r\n.portal-faq-icon {\r\n    color: #258CFA;\r\n}\r\n\r\n\/* KEYBOARD FOCUS *\/\r\n.portal-layout a:focus-visible {\r\n    outline: 2px solid #0052c4;\r\n    outline-offset: 3px;\r\n}\r\n\r\n\/* MOBILE *\/\r\n@media (max-width: 480px) {\r\n    .portal-layout {\r\n        gap: 12px;\r\n    }\r\n\r\n    .portal-layout .portal-buttons {\r\n        flex: 1 1 auto;\r\n    }\r\n\r\n    .portal-layout .portal-button {\r\n        width: 100%;\r\n    }\r\n\r\n    .portal-layout .portal-faq {\r\n        flex: 0 0 55px;\r\n    }\r\n\r\n    .portal-layout .portal-faq-icon {\r\n        width: 38px;\r\n        height: 38px;\r\n    }\r\n}\r\n<\/style>\r\n\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\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-ec70e0a student-agenda-column\" data-id=\"ec70e0a\" 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-12100e0 agenda-shortcode elementor-widget elementor-widget-shortcode\" data-id=\"12100e0\" 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\n\n\n\n<div class=\"gestor-agenda-data\" hidden data-no-translation translate=\"no\">\n                                                                                                <span class=\"agenda-dataverse-session\"\n            data-date=\"2026-11-26\"\n            data-start=\"20&#x3A;00\"\n            data-end=\"22&#x3A;00\"\n            data-title=\"Tema&#x20;4\"><\/span>\n                                        <\/div>\n\n<div class=\"gestor-agenda-widget agenda-upcoming\" data-no-translation translate=\"no\">\n\n  <div class=\"agenda-header\">\n    <div class=\"agenda-heading\">\n      <svg viewBox=\"0 0 24 24\" width=\"39\" height=\"39\"\n           fill=\"none\" stroke=\"currentColor\"\n           stroke-width=\"2\" stroke-linecap=\"round\"\n           stroke-linejoin=\"round\" aria-hidden=\"true\">\n        <rect x=\"3\" y=\"5\" width=\"18\" height=\"16\" rx=\"2\"\/>\n        <path d=\"M7 3v4M17 3v4M3 10h18\"\/>\n        <path d=\"M8 14h1M12 14h1M16 14h1M8 18h1M12 18h1\"\/>\n      <\/svg>\n\n      <h2><span class=\"gestor-agenda-pt\">Agenda<\/span><span class=\"gestor-agenda-en\">Schedule<\/span><\/h2>\n    <\/div>\n\n    <span class=\"agenda-subtitle\">\n      <span class=\"gestor-agenda-pt\">Pr\u00f3ximas sess\u00f5es<\/span><span class=\"gestor-agenda-en\">Upcoming sessions<\/span>\n    <\/span>\n    \n  <\/div>\n\n  <div class=\"agenda-session-list\"\n       aria-live=\"polite\"><\/div>\n\n<\/div>\n\n<style>\n\/* This widget selects its own language; TranslatePress must not replace Dataverse content. *\/\n.gestor-agenda-widget .gestor-agenda-en { display: none !important; }\n.gestor-agenda-widget.gestor-agenda-english .gestor-agenda-pt { display: none !important; }\n.gestor-agenda-widget.gestor-agenda-english .gestor-agenda-en { display: inline !important; }\n\/* MAIN CARD *\/\n.gestor-agenda-widget.agenda-upcoming {\n    --agenda-blue: #1760e8;\n    --agenda-light: #3296ff;\n\n    width: 100% !important;\n    max-width: 100% !important;\n    padding: 22px 24px !important;\n\n    background: #ffffff !important;\n    border: none !important;\n    border-radius: 18px !important;\n\n    box-shadow: 0 4px 20px rgba(20,80,150,.07);\n\n    font-family: Arial, Helvetica, sans-serif !important;\n    box-sizing: border-box !important;\n}\n\n.agenda-upcoming *,\n.agenda-upcoming *::before,\n.agenda-upcoming *::after {\n    box-sizing: border-box;\n}\n\n\/* HEADER *\/\n.agenda-upcoming .agenda-header {\n    display: flex !important;\n    align-items: center !important;\n    justify-content: flex-start !important;\n    flex-wrap: wrap;\n    gap: 24px !important;\n\n    margin: 0 0 20px !important;\n    padding: 0 !important;\n}\n\n.agenda-upcoming .agenda-heading {\n    display: flex;\n    align-items: center;\n    gap: 14px;\n}\n\n.agenda-upcoming .agenda-heading svg {\n    color: var(--agenda-blue);\n    flex-shrink: 0;\n}\n\n.agenda-upcoming .agenda-heading h2 {\n    margin: 0 !important;\n    padding: 0 !important;\n    color: #1256d9 !important;\n    font-size: 28px !important;\n    font-weight: 700 !important;\n    line-height: 1.2 !important;\n    text-transform: none !important;\n}\n\n.agenda-upcoming .agenda-subtitle {\n    color: #2468ee !important;\n    font-size: 21px !important;\n    font-weight: 400 !important;\n    font-style: italic;\n    line-height: 1.3;\n}\n\n\/* SESSION LIST *\/\n.agenda-upcoming .agenda-session-list {\n    display: flex;\n    flex-direction: column;\n    gap: 9px;\n\n    width: 100%;\n    max-height: 230px;\n    overflow-y: auto;\n    overflow-x: hidden;\n\n    scrollbar-width: thin;\n    scrollbar-color: #b6d4fb transparent;\n}\n\n\/* INDIVIDUAL SESSION *\/\n.agenda-upcoming .agenda-session {\n    display: grid;\n    grid-template-columns: 114px minmax(0, 1fr);\n    align-items: stretch;\n    width: 100%;\n    min-height: 73px;\n}\n\n\/* BLUE DATE BLOCK *\/\n.agenda-upcoming .agenda-session-date {\n    display: flex;\n    flex-direction: column;\n    align-items: flex-start;\n    justify-content: center;\n\n    padding: 10px 17px;\n\n    background: #3296ff !important;\n    color: #ffffff !important;\n\n    border-radius: 17px;\n\n    font-size: 15px;\n    font-weight: 600;\n    line-height: 1.3;\n}\n\n.agenda-upcoming .agenda-session-date span {\n    display: block;\n    color: #ffffff !important;\n}\n\n\/* WHITE SESSION DETAILS *\/\n.agenda-upcoming .agenda-session-details {\n    display: grid;\n    grid-template-columns: minmax(0, 1fr) 105px;\n    align-items: center;\n\n    min-width: 0;\n    padding: 11px 12px 11px 19px;\n\n    background: #ffffff !important;\n    border: 2px solid #c6defe;\n    border-radius: 17px;\n}\n\n\/* TIME AND TITLE *\/\n.agenda-upcoming .agenda-session-info {\n    min-width: 0;\n    padding-right: 12px;\n}\n\n.agenda-upcoming .agenda-session-time {\n    color: #2169ef !important;\n    font-size: 15px;\n    font-weight: 500;\n    line-height: 1.3;\n}\n\n.agenda-upcoming .agenda-session-title {\n    color: #1459e5 !important;\n    font-size: 15px;\n    font-weight: 600;\n    line-height: 1.3;\n    overflow-wrap: anywhere;\n}\n\n\/* RIGHT LOCATION *\/\n.agenda-upcoming .agenda-session-location {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n\n    min-height: 46px;\n    padding: 5px 7px;\n\n    border-left: 2px solid #88b7fa;\n\n    color: #2468ee !important;\n    font-size: 14px;\n    font-weight: 600;\n    text-align: center;\n    overflow-wrap: anywhere;\n}\n\n\/* EMPTY STATE *\/\n.agenda-upcoming .agenda-empty {\n    padding: 24px 12px;\n    color: #64748b;\n    text-align: center;\n    font-size: 14px;\n}\n\n\/* Consistent spacing between all sessions *\/\n.gestor-agenda-widget.agenda-upcoming .agenda-session-list {\n    display: flex !important;\n    flex-direction: column !important;\n    gap: 9px !important;\n}\n\n\/* Remove theme spacing from individual sessions *\/\n.gestor-agenda-widget.agenda-upcoming .agenda-session {\n    margin: 0 !important;\n    padding: 0 !important;\n    flex: 0 0 auto !important;\n}\n\n\/* Remove unexpected margins inside sessions *\/\n.gestor-agenda-widget.agenda-upcoming .agenda-session-date,\n.gestor-agenda-widget.agenda-upcoming .agenda-session-details,\n.gestor-agenda-widget.agenda-upcoming .agenda-session-info,\n.gestor-agenda-widget.agenda-upcoming .agenda-session-time,\n.gestor-agenda-widget.agenda-upcoming .agenda-session-title,\n.gestor-agenda-widget.agenda-upcoming .agenda-session-location {\n    margin: 0 !important;\n}\n\n\/* Make each agenda event more compact *\/\n.agenda-upcoming .agenda-session {\n    min-height: 55px !important;\n}\n\n\/* Reduce top and bottom padding *\/\n.agenda-upcoming .agenda-session-details {\n    padding-top: 5px !important;\n    padding-bottom: 5px !important;\n}\n\n\/* Reduce padding inside the blue date block *\/\n.agenda-upcoming .agenda-session-date {\n    padding-top: 5px !important;\n    padding-bottom: 5px !important;\n}\n\n\/* Reduce space between events *\/\n.agenda-upcoming .agenda-session-list {\n    gap: 6px !important;\n}\n\n\/* TABLET *\/\n@media (max-width: 900px) {\n    .gestor-agenda-widget.agenda-upcoming {\n        padding: 18px !important;\n    }\n\n    .agenda-upcoming .agenda-heading h2 {\n        font-size: 24px !important;\n    }\n\n    .agenda-upcoming .agenda-subtitle {\n        font-size: 18px !important;\n    }\n}\n\n\/* MOBILE *\/\n@media (max-width: 600px) {\n    .gestor-agenda-widget.agenda-upcoming {\n        padding: 14px !important;\n    }\n\n    .agenda-upcoming .agenda-header {\n        gap: 8px !important;\n        margin-bottom: 16px !important;\n    }\n\n    .agenda-upcoming .agenda-heading h2 {\n        font-size: 21px !important;\n    }\n\n    .agenda-upcoming .agenda-heading svg {\n        width: 30px;\n        height: 30px;\n    }\n\n    .agenda-upcoming .agenda-subtitle {\n        font-size: 16px !important;\n    }\n\n    .agenda-upcoming .agenda-session {\n        grid-template-columns: 76px minmax(0, 1fr);\n        min-height: 75px;\n    }\n\n    .agenda-upcoming .agenda-session-date {\n        padding: 8px;\n        font-size: 12px;\n        border-radius: 12px;\n    }\n\n    .agenda-upcoming .agenda-session-details {\n        grid-template-columns: minmax(0, 1fr) 65px;\n        padding: 8px;\n        border-radius: 12px;\n    }\n\n    .agenda-upcoming .agenda-session-time,\n    .agenda-upcoming .agenda-session-title {\n        font-size: 12px;\n    }\n\n    .agenda-upcoming .agenda-session-location {\n        font-size: 11px;\n        padding: 4px;\n    }\n}\n\n\n\/* =========================================\n   GESTOR AGENDA - CONSISTENT CONTAINER HEIGHT\n========================================= *\/\n\n\/* Keep the agenda container at a consistent height *\/\n.gestor-agenda-widget.agenda-upcoming {\n    min-height: 340px !important;\n\n    display: flex !important;\n    flex-direction: column !important;\n}\n\n\/* Let the session list fill the remaining space *\/\n.gestor-agenda-widget.agenda-upcoming .agenda-session-list {\n    flex: 1 1 auto !important;\n    min-height: 0 !important;\n}\n\n\/* Keep individual sessions at their natural height *\/\n.gestor-agenda-widget.agenda-upcoming .agenda-session {\n    flex: 0 0 auto !important;\n}\n\n<\/style>\n\n<script>\n(function () {\n  const widget = document.querySelector(\n    \".gestor-agenda-widget.agenda-upcoming\"\n  );\n\n  if (!widget) return;\n\n  const isEnglish = \/^\\\/en(?:\\\/|$)\/i.test(window.location.pathname);\n  widget.classList.toggle('gestor-agenda-english', isEnglish);\n\n  const agendaEvents = Array.from(\n    document.querySelectorAll(\".gestor-agenda-data .agenda-dataverse-session\")\n  ).map(item => ({\n    date: item.dataset.date || \"\",\n    start: item.dataset.start || \"\",\n    end: item.dataset.end || \"\",\n    title: item.dataset.title || \"Sess\u00e3o\",\n    location: \"Online\"\n  }));\n\n  \/\/ Show one practical session per selected date\/time, even when multiple students chose it.\n  \/\/ Collapse duplicate join records and repeat student selections.\n  const uniqueEvents = Array.from(new Map(\n    agendaEvents.map(event => [\n      [event.date, event.start, event.end, event.title].join(\"|\"), event\n    ])\n  ).values());\n\n  const dayNames = isEnglish\n    ? [\"SUN\", \"MON\", \"TUE\", \"WED\", \"THU\", \"FRI\", \"SAT\"]\n    : [\"DOM\", \"SEG\", \"TER\", \"QUA\", \"QUI\", \"SEX\", \"S\u00c1B\"];\n\n  const monthNames = isEnglish\n    ? [\"JAN\", \"FEB\", \"MAR\", \"APR\", \"MAY\", \"JUN\", \"JUL\", \"AUG\", \"SEP\", \"OCT\", \"NOV\", \"DEC\"]\n    : [\"JAN\", \"FEV\", \"MAR\", \"ABR\", \"MAI\", \"JUN\", \"JUL\", \"AGO\", \"SET\", \"OUT\", \"NOV\", \"DEZ\"];\n\n  function escapeHtml(value) {\n    return String(value ?? \"\")\n      .replaceAll(\"&\", \"&amp;\")\n      .replaceAll(\"<\", \"&lt;\")\n      .replaceAll(\">\", \"&gt;\")\n      .replaceAll('\"', \"&quot;\")\n      .replaceAll(\"'\", \"&#039;\");\n  }\n\n  function formatSessionDate(dateString) {\n    const [year, month, day] =\n      dateString.split(\"-\").map(Number);\n\n    const date = new Date(year, month - 1, day);\n\n    return {\n      weekday: dayNames[date.getDay()],\n      label: String(day).padStart(2, \"0\")\n        + \" \" + monthNames[month - 1]\n    };\n  }\n\n  function renderAgenda() {\n    const container = widget.querySelector(\n      \".agenda-session-list\"\n    );\n\n    if (!container) return;\n\n    const now = new Date();\n\n    const events = uniqueEvents\n      .filter(event => {\n        const start = new Date(\n          event.date + \"T\" + event.start + \":00\"\n        );\n        return start >= now;\n      })\n      .sort((a, b) =>\n        (a.date + a.start).localeCompare(\n          b.date + b.start\n        )\n      )\n      .slice(0, 10);\n\n    if (!events.length) {\n      container.innerHTML = `\n        <div class=\"agenda-empty\">\n          ${isEnglish ? 'There are no upcoming sessions scheduled.' : 'N\u00e3o existem pr\u00f3ximas sess\u00f5es agendadas.'}\n        <\/div>\n      `;\n      return;\n    }\n\n    container.innerHTML = events.map(event => {\n      const date = formatSessionDate(event.date);\n\n      return `\n        <div class=\"agenda-session\">\n\n          <div class=\"agenda-session-date\">\n            <span>${date.weekday}<\/span>\n            <span>${date.label}<\/span>\n          <\/div>\n\n          <div class=\"agenda-session-details\">\n\n            <div class=\"agenda-session-info\">\n              <div class=\"agenda-session-time\">\n                ${escapeHtml(event.start)}\n                \u2013\n                ${escapeHtml(event.end)}\n              <\/div>\n\n              <div class=\"agenda-session-title\" data-no-translation translate=\"no\">\n                ${escapeHtml(event.title)}\n              <\/div>\n            <\/div>\n\n            <div class=\"agenda-session-location\">\n              ${escapeHtml(event.location || \"\")}\n            <\/div>\n\n          <\/div>\n\n        <\/div>\n      `;\n    }).join(\"\");\n  }\n\n  renderAgenda();\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<section class=\"elementor-section elementor-top-section elementor-element elementor-element-6292467 equal-height-layout elementor-section-boxed elementor-section-height-default elementor-section-height-default wd-section-disabled\" data-id=\"6292467\" 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-50 elementor-top-column elementor-element elementor-element-d8804f2\" data-id=\"d8804f2\" 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-ba5f994 elementor-widget elementor-widget-shortcode\" data-id=\"ba5f994\" 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\n\n<div class=\"gestor-notices-widget\" data-no-translation translate=\"no\">\n\n    <!-- HEADER -->\n    <div class=\"notices-header\">\n\n        <div class=\"notices-header-left\">\n\n            <span class=\"notices-header-icon\" aria-hidden=\"true\">\n                <i class=\"icon icon-megaphone\"><\/i>\n            <\/span>\n\n            <h2><span class=\"gestor-notices-pt\">Avisos<\/span><span class=\"gestor-notices-en\">Notices<\/span><\/h2>\n\n        <\/div>\n\n        <a class=\"notices-view-all\" href=\".\/avisos\">\n            <span><span class=\"gestor-notices-pt\">Ver todos<\/span><span class=\"gestor-notices-en\">View all<\/span><\/span>\n\n            <svg viewBox=\"0 0 24 24\"\n                 width=\"22\" height=\"22\"\n                 fill=\"none\"\n                 stroke=\"currentColor\"\n                 stroke-width=\"2\"\n                 stroke-linecap=\"round\"\n                 stroke-linejoin=\"round\"\n                 aria-hidden=\"true\">\n                <path d=\"m9 5 7 7-7 7\"\/>\n            <\/svg>\n        <\/a>\n\n    <\/div>\n\n    <!-- DYNAMIC NOTICES -->\n    <div class=\"notices-list\" aria-live=\"polite\"><\/div>\n\n\n<!-- Dataverse gestor notices: hidden records for JavaScript -->\n<div class=\"notices-dataverse-source\" hidden>\n                        <div class=\"notice-dataverse-record\"\n      data-id=\"1\"\n      data-title=\"Altera&#x00E7;&#x00F5;es&#x20;cronograma\"\n      data-title-en=\"Schedule&#x20;Changes\"\n      data-description=\"Foram&#x20;feitas&#x20;altera&#x00E7;&#x00F5;es&#x20;no&#x20;cronograma&#x20;do&#x20;curso&#x20;&#x5B;nome&#x20;do&#x20;curso&#x5D;.&#x20;Por&#x20;favor&#x20;aceda&#x20;ao&#x20;portal&#x20;do&#x20;aluno&#x20;e&#x20;verifique&#x20;essas&#x20;altera&#x00E7;&#x00F5;es.\"\n      data-description-en=\"There&#x20;have&#x20;been&#x20;changes&#x20;to&#x20;the&#x20;schedule&#x20;for&#x20;the&#x20;&#x5B;course&#x20;name&#x5D;&#x20;course.&#x20;Please&#x20;log&#x20;in&#x20;to&#x20;the&#x20;student&#x20;portal&#x20;and&#x20;review&#x20;these&#x20;changes.\"\n      data-created=\"2026-10-21T08&#x3A;28&#x3A;17Z\"\n      data-start=\"2026-10-20T09&#x3A;00&#x3A;00Z\"\n      data-end=\"2026-11-27T00&#x3A;00&#x3A;00Z\"\n      data-priority=\"medium\"><\/div>\n  <\/div>\n\n\n<\/div>\n\n\n<style>\n\/* Manually translated labels; isolated to the Gestor notices widget. *\/\n.gestor-notices-widget .gestor-notices-en { display: none !important; }\n.gestor-notices-widget.gestor-notices-english .gestor-notices-pt { display: none !important; }\n.gestor-notices-widget.gestor-notices-english .gestor-notices-en { display: inline !important; }\n\n\/* =========================================\n   MAIN CONTAINER\n========================================= *\/\n\n.gestor-notices-widget {\n    width: 100%;\n    height: 300px !important;\n\n    display: flex !important;\n    flex-direction: column !important;\n\n    box-sizing: border-box !important;\n\n    padding: 20px 16px 16px;\n\n    background: #ffffff;\n    border-radius: 18px;\n\n    box-shadow: 0 4px 20px rgba(20, 80, 150, 0.07);\n\n    font-family: inherit;\n}\n\n\n\/* =========================================\n   HEADER\n========================================= *\/\n\n.gestor-notices-widget .notices-header {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n\n    gap: 12px;\n    margin-bottom: 12px;\n\n    flex: 0 0 auto !important;\n}\n\n.gestor-notices-widget .notices-header-left {\n    display: flex;\n    align-items: center;\n    gap: 12px;\n    min-width: 0;\n}\n\n\n\/* ElementsKit Megaphone Icon *\/\n\n.gestor-notices-widget .notices-header-icon {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n\n    width: 42px;\n    height: 42px;\n    flex-shrink: 0;\n\n    color: #1760e8 !important;\n}\n\n.gestor-notices-widget .notices-header-icon i {\n    font-size: 38px !important;\n    line-height: 1;\n    color: inherit !important;\n}\n\n\n\/* Avisos Heading *\/\n\n.gestor-notices-widget .notices-header h2 {\n    margin: 0 !important;\n    padding: 0 !important;\n\n    color: #1459e8 !important;\n\n    font-size: 27px !important;\n    font-weight: 750 !important;\n    line-height: 1.2;\n\n    text-transform: none !important;\n    letter-spacing: normal !important;\n}\n\n\n\/* =========================================\n   VER TODOS\n========================================= *\/\n\n.gestor-notices-widget .notices-view-all {\n    display: inline-flex;\n    align-items: center;\n\n    gap: 4px;\n    flex-shrink: 0;\n\n    color: #2269f0 !important;\n\n    font-size: 14px !important;\n    font-weight: 400 !important;\n    line-height: 1.35 !important;\n\n    text-transform: none !important;\n    letter-spacing: normal !important;\n\n    text-decoration: none !important;\n}\n\n.gestor-notices-widget .notices-view-all svg {\n    width: 22px;\n    height: 22px;\n\n    fill: none !important;\n    stroke: currentColor !important;\n\n    transition: transform 0.2s ease;\n}\n\n.gestor-notices-widget .notices-view-all:hover {\n    color: #0b48c6 !important;\n}\n\n.gestor-notices-widget .notices-view-all:hover svg {\n    transform: translateX(3px);\n}\n\n\n\/* =========================================\n   NOTICES LIST\n========================================= *\/\n\n.gestor-notices-widget .notices-list {\n    display: flex !important;\n    flex-direction: column !important;\n\n    gap: 6px !important;\n\n    flex: 1 1 auto !important;\n    min-height: 0 !important;\n    max-height: none !important;\n\n    overflow-y: auto !important;\n    overflow-x: hidden !important;\n\n    scrollbar-width: thin;\n    scrollbar-color: #bfdcff transparent;\n}\n\n\n\/* Scrollbar - Chrome, Edge, Safari *\/\n\n.gestor-notices-widget .notices-list::-webkit-scrollbar {\n    width: 5px;\n}\n\n.gestor-notices-widget .notices-list::-webkit-scrollbar-track {\n    background: transparent;\n}\n\n.gestor-notices-widget .notices-list::-webkit-scrollbar-thumb {\n    background: #bfdcff;\n    border-radius: 10px;\n}\n\n\n\/* =========================================\n   INDIVIDUAL NOTICE\n========================================= *\/\n\n.gestor-notices-widget .notice-item {\n    display: flex;\n    align-items: center;\n\n    gap: 14px;\n\n    flex: 0 0 auto !important;\n\n    min-height: 57px;\n    padding: 7px 12px;\n\n    margin: 0 !important;\n\n    border: 1.5px solid #bfdcff;\n    border-radius: 14px;\n\n    background: #ffffff;\n\n    box-sizing: border-box;\n}\n\n\n\/* =========================================\n   PRIORITY ICONS\n========================================= *\/\n\n.gestor-notices-widget .notice-alert-icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n\n    width: 38px;\n    height: 38px;\n\n    flex: 0 0 38px;\n\n    border-radius: 50%;\n\n    color: #ffffff !important;\n\n    font-size: 27px;\n    font-weight: 800;\n    line-height: 1;\n\n    box-shadow: 0 2px 7px rgba(0, 0, 0, 0.12);\n}\n\n\/* High priority - Red *\/\n.gestor-notices-widget .notice-alert-icon.high {\n    background: #ed2029;\n}\n\n\/* Medium priority - Orange *\/\n.gestor-notices-widget .notice-alert-icon.medium {\n    background: #ff792e;\n}\n\n\/* Low priority - Green *\/\n.gestor-notices-widget .notice-alert-icon.low {\n    background: #0bb569;\n}\n\n\n\/* =========================================\n   NOTICE CONTENT\n========================================= *\/\n\n.gestor-notices-widget .notice-content {\n    flex: 1 1 auto;\n    min-width: 0;\n}\n\n\n\/* Notice Title *\/\n\n.gestor-notices-widget .notice-title {\n    margin: 0 !important;\n    padding: 0 !important;\n\n    color: #1559e8 !important;\n\n    font-size: 12px !important;\n    font-weight: 700 !important;\n    line-height: 1.3 !important;\n\n    text-transform: none !important;\n    letter-spacing: normal !important;\n}\n\n\n\/* Notice Description *\/\n\n.gestor-notices-widget .notice-description {\n    margin: 2px 0 0 !important;\n    padding: 0 !important;\n\n    color: #2269f0 !important;\n\n    font-size: 14px !important;\n    font-weight: 400 !important;\n    line-height: 1.35 !important;\n\n    text-transform: none !important;\n    letter-spacing: normal !important;\n}\n\n\n\/* =========================================\n   NOTICE DATE\n========================================= *\/\n\n.gestor-notices-widget .notice-date {\n    flex: 0 0 auto;\n\n    margin-left: 8px;\n\n    color: #2269f0 !important;\n\n    font-size: 14px !important;\n    font-weight: 400 !important;\n    line-height: 1.35 !important;\n\n    text-transform: none !important;\n    letter-spacing: normal !important;\n\n    white-space: nowrap;\n    text-align: right;\n}\n\n\n\/* =========================================\n   EMPTY STATE\n========================================= *\/\n\n.gestor-notices-widget .notices-empty {\n    padding: 20px 12px;\n\n    text-align: center;\n\n    color: #6782a5;\n    font-size: 14px;\n}\n\n\n\/* =========================================\n   RESPONSIVE\n========================================= *\/\n\n@media (max-width: 600px) {\n\n    .gestor-notices-widget {\n        padding: 16px 12px;\n    }\n\n    .gestor-notices-widget .notices-header h2 {\n        font-size: 23px !important;\n    }\n\n    .gestor-notices-widget .notices-header-icon {\n        width: 36px;\n        height: 36px;\n    }\n\n    .gestor-notices-widget .notices-header-icon i {\n        font-size: 32px !important;\n    }\n\n    .gestor-notices-widget .notice-item {\n        gap: 10px;\n        padding: 10px;\n    }\n\n    .gestor-notices-widget .notice-alert-icon {\n        width: 32px;\n        height: 32px;\n        flex-basis: 32px;\n\n        font-size: 23px;\n    }\n\n    .gestor-notices-widget .notice-date {\n        font-size: 12px !important;\n        margin-left: 0;\n    }\n\n}\n\n@media (max-width: 420px) {\n\n    .gestor-notices-widget .notice-item {\n        flex-wrap: wrap;\n    }\n\n    .gestor-notices-widget .notice-date {\n        width: 100%;\n        text-align: right;\n    }\n\n}\n<\/style>\n\n\n\n<script>\n(function () {\n\n    const widget = document.querySelector(\n        \".gestor-notices-widget\"\n    );\n\n    if (!widget) return;\n\n    const isEnglish = \/^\\\/en(?:\\\/|$)\/i.test(window.location.pathname);\n    widget.classList.toggle(\"gestor-notices-english\", isEnglish);\n\n    const list = widget.querySelector(\".notices-list\");\n\n    if (!list) return;\n\n    \/\/ =========================================\n    \/\/ READ NOTICES FROM DATAPRESS\n    \/\/ =========================================\n\n    const records = widget.querySelectorAll(\n        \".notice-dataverse-record\"\n    );\n\n    const notices = Array.from(records).map(record => ({\n        id: record.dataset.id || \"\",\n        title: isEnglish ? (record.dataset.titleEn || record.dataset.title || \"\") : (record.dataset.title || \"\"),\n        description: isEnglish ? (record.dataset.descriptionEn || record.dataset.description || \"\") : (record.dataset.description || \"\"),\n        created: record.dataset.created || \"\",\n        start: record.dataset.start || \"\",\n        end: record.dataset.end || \"\",\n        priority: record.dataset.priority || \"low\"\n    }));\n\n    \/\/ =========================================\n    \/\/ ESCAPE HTML\n    \/\/ =========================================\n\n    function escapeHtml(value) {\n        return String(value ?? \"\").replace(\n            \/[&<>\"']\/g,\n            char => ({\n                \"&\": \"&amp;\",\n                \"<\": \"&lt;\",\n                \">\": \"&gt;\",\n                '\"': \"&quot;\",\n                \"'\": \"&#39;\"\n            })[char]\n        );\n    }\n\n    \/\/ =========================================\n    \/\/ DATE HANDLING\n    \/\/ =========================================\n\n    function parseDate(value) {\n        if (!value) return null;\n\n        const date = new Date(value);\n\n        return Number.isNaN(date.getTime())\n            ? null\n            : date;\n    }\n\n    function formatDate(value) {\n\n        const date = parseDate(value);\n\n        if (!date) return \"\";\n\n        return new Intl.DateTimeFormat(isEnglish ? \"en-GB\" : \"pt-PT\", {\n            day: \"2-digit\",\n            month: \"short\",\n            year: \"numeric\",\n            timeZone: \"Europe\/Lisbon\"\n        }).format(date);\n    }\n\n    \/\/ =========================================\n    \/\/ CHECK VISIBILITY PERIOD\n    \/\/ =========================================\n\n    function isNoticeVisible(notice, now) {\n\n        const start = parseDate(notice.start);\n        const end = parseDate(notice.end);\n\n        \/\/ Do not display records with invalid\n        \/\/ start\/end dates.\n        if (!start || !end) {\n            return false;\n        }\n\n        return now >= start && now <= end;\n    }\n\n    \/\/ =========================================\n    \/\/ RENDER NOTICES\n    \/\/ =========================================\n\n    function renderNotices() {\n\n        const now = new Date();\n\n        \/\/ Remove duplicate records, if any.\n        const seen = new Set();\n\n        const visibleNotices = notices\n            .filter(notice => isNoticeVisible(notice, now))\n            .filter(notice => {\n\n                if (!notice.id) return true;\n\n                if (seen.has(notice.id)) {\n                    return false;\n                }\n\n                seen.add(notice.id);\n                return true;\n            })\n            .sort((a, b) => {\n                const dateA = parseDate(a.created);\n                const dateB = parseDate(b.created);\n\n                return (dateB?.getTime() || 0) -\n                       (dateA?.getTime() || 0);\n            });\n\n        if (visibleNotices.length === 0) {\n\n            list.innerHTML = `\n                <div class=\"notices-empty\">\n                    ${isEnglish ? \"There are no notices available.\" : \"N\u00e3o existem avisos dispon\u00edveis.\"}\n                <\/div>\n            `;\n\n            return;\n        }\n\n        const priorityLabels = {\n            high: isEnglish ? \"High\" : \"Alta\",\n            medium: isEnglish ? \"Medium\" : \"M\u00e9dia\",\n            low: isEnglish ? \"Low\" : \"Baixa\"\n        };\n\n        list.innerHTML = visibleNotices.map(notice => {\n\n            const priority = [\"high\", \"medium\", \"low\"]\n                .includes(notice.priority)\n                ? notice.priority\n                : \"low\";\n\n            const dateLabel = formatDate(notice.created);\n\n            return `\n                <div class=\"notice-item\"\n                     data-notice-id=\"${escapeHtml(notice.id)}\">\n\n                    <span\n                        class=\"notice-alert-icon ${priority}\"\n                        role=\"img\"\n                        aria-label=\"${isEnglish ? \"Priority\" : \"Prioridade\"} ${priorityLabels[priority]}\">\n                        !\n                    <\/span>\n\n                    <div class=\"notice-content\">\n\n                        <h3 class=\"notice-title\" data-no-translation translate=\"no\">\n                            ${escapeHtml(notice.title)}\n                        <\/h3>\n\n                        <p class=\"notice-description\" data-no-translation translate=\"no\">\n                            ${escapeHtml(notice.description)}\n                        <\/p>\n\n                    <\/div>\n\n                    <time\n                        class=\"notice-date\"\n                        datetime=\"${escapeHtml(notice.created)}\">\n                        ${escapeHtml(dateLabel)}\n                    <\/time>\n\n                <\/div>\n            `;\n        }).join(\"\");\n    }\n\n    \/\/ =========================================\n    \/\/ INITIAL RENDER\n    \/\/ =========================================\n\n    renderNotices();\n\n    \/\/ Recheck notice visibility every minute.\n    \/\/ Notices can appear\/disappear without\n    \/\/ requiring a manual page refresh.\n    setInterval(renderNotices, 60000);\n\n})();\n<\/script>\n\n\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<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-759acc4\" data-id=\"759acc4\" 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<section class=\"elementor-section elementor-inner-section elementor-element elementor-element-6679aa9 elementor-section-boxed elementor-section-height-default elementor-section-height-default wd-section-disabled\" data-id=\"6679aa9\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[],&quot;background_background&quot;:&quot;classic&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-inner-column elementor-element elementor-element-1bf230b\" data-id=\"1bf230b\" 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-7a3ce90 elementor-position-inline-start centered-icon-box elementor-view-default elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box\" data-id=\"7a3ce90\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-box.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-box-wrapper\">\n\n\t\t\t\t\t\t<div class=\"elementor-icon-box-icon\">\n\t\t\t\t<span  class=\"elementor-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-graduation-cap\"><\/i>\t\t\t\t<\/span>\n\t\t\t<\/div>\n\t\t\t\n\t\t\t\t\t\t<div class=\"elementor-icon-box-content\">\n\n\t\t\t\t\t\t\t\t\t<h6 class=\"elementor-icon-box-title\">\n\t\t\t\t\t\t<span  >\n\t\t\t\t\t\t\tMoodle\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/h6>\n\t\t\t\t\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fb95a06 moodle-text elementor-widget elementor-widget-wd_text_block\" data-id=\"fb95a06\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wd_text_block.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"wd-text-block reset-last-child text-left\">\n\t\t\t\n\t\t\t<p><span style=\"font-family: Poppins, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; text-align: right;\">Aceda \u00e0 plataforma Moodle para consultar os seus cursos,&nbsp; materiais e atividades.<\/span><span style=\"font-size: 14px;\"><\/span><\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0a2f9e9 bottom-button elementor-widget elementor-widget-html\" data-id=\"0a2f9e9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\r\n\/* Moodle button *\/\r\n.moodle-access-button {\r\n    position: relative;\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n\r\n    width: 100%;\r\n    min-height: 84px;\r\n    padding: 12px 48px;\r\n\r\n    background: #258CFA;\r\n    color: #ffffff !important;\r\n\r\n    border: none;\r\n    border-radius: 7px;\r\n\r\n    font-family: inherit;\r\n    font-size: 18px!important;\r\n    font-weight: 500!important;\r\n    line-height: 1.4;\r\n    text-align: center;\r\n    text-decoration: none !important;\r\n\r\n    box-shadow: 0 3px 7px rgba(37, 140, 250, 0.16);\r\n\r\n    transition: background 0.2s ease,\r\n                box-shadow 0.2s ease;\r\n}\r\n\r\n\/* Keep text white *\/\r\n.moodle-access-button .moodle-button-text {\r\n    color: #ffffff !important;\r\n}\r\n\r\n\/* Arrow on the right *\/\r\n\/* Circular arrow *\/\r\n.moodle-access-button .moodle-button-arrow {\r\n    position: absolute;\r\n    right: 16px;\r\n    top: 50%;\r\n    transform: translateY(-50%);\r\n\r\n    display: inline-flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n\r\n    width: 28px;\r\n    height: 28px;\r\n    flex: 0 0 28px;\r\n\r\n    border: 2px solid #ffffff;\r\n    border-radius: 50%;\r\n    color: #ffffff !important;\r\n}\r\n\r\n.moodle-access-button .moodle-button-arrow svg {\r\n    width: 20px;\r\n    height: 20px;\r\n    fill: none !important;\r\n    stroke: currentColor !important;\r\n}\r\n\r\n\/* Hover *\/\r\n.moodle-access-button:hover {\r\n    background: #1479EB;\r\n    box-shadow: 0 4px 12px rgba(37, 140, 250, 0.25);\r\n    color: #ffffff !important;\r\n}\r\n\r\n\/* Keyboard accessibility *\/\r\n.moodle-access-button:focus-visible {\r\n    outline: 3px solid #94caff;\r\n    outline-offset: 3px;\r\n}\r\n<\/style>\r\n\r\n<a href=\"#\"\r\n   class=\"moodle-access-button\"\r\n   target=\"_blank\"\r\n   rel=\"noopener noreferrer\">\r\n\r\n    <span class=\"moodle-button-text\">\r\n        Aceder ao Moodle\r\n    <\/span>\r\n\r\n    <span class=\"moodle-button-arrow\">\r\n        <svg viewBox=\"0 0 24 24\"\r\n             width=\"20\" height=\"20\"\r\n             fill=\"none\"\r\n             stroke=\"currentColor\"\r\n             stroke-width=\"2\"\r\n             stroke-linecap=\"round\"\r\n             stroke-linejoin=\"round\"\r\n             aria-hidden=\"true\">\r\n            <path d=\"m9 5 7 7-7 7\"\/>\r\n        <\/svg>\r\n    <\/span>\r\n<\/a>\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\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-633237f elementor-section-boxed elementor-section-height-default elementor-section-height-default wd-section-disabled\" data-id=\"633237f\" 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-565ba29\" data-id=\"565ba29\" 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-f6cd3a4 elementor-widget elementor-widget-shortcode\" data-id=\"f6cd3a4\" 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\n\n\n\n    <div id=\"gestor-dataverse-data\"\n         hidden\n         data-no-translation\n         translate=\"no\"\n         data-name=\"In&#x00EA;s&#x20;Margarida&#x20;Santos&#x20;Rocha\"\n         data-number=\"GO-2026-0042\"\n         data-photo=\"https&#x3A;&#x2F;&#x2F;staging.academiaclinicadragao.com&#x2F;en&#x2F;wp-json&#x2F;integration-cds&#x2F;v1&#x2F;image&#x3F;table&#x3D;bpe_gestor_operacional&amp;id&#x3D;fae24331-eba2-f111-b8dd-7ced8d5f6c91&amp;column&#x3D;bpe_fotografia&amp;isThumb&#x3D;1\">\n    <\/div>\n\n\n<style>\n.gestor-lang-en { display: none !important; }\nhtml.gestor-home-english .gestor-lang-pt { display: none !important; }\nhtml.gestor-home-english .gestor-lang-en { display: inline !important; }\n<\/style>\n\n<script>\n(function () {\n    var isEnglish = \/^\\\/en(?:\\\/|$)\/i.test(window.location.pathname);\n    document.documentElement.classList.toggle('gestor-home-english', isEnglish);\n\n    const data = document.getElementById(\"gestor-dataverse-data\");\n    if (!data) return;\n\n    const name = data.dataset.name || \"\";\n    const number = data.dataset.number || \"\";\n    const photoUrl = data.dataset.photo || \"\";\n\n    let photoObserver = null;\n\n    \/\/ Preserve the original Dataverse values, independently of TranslatePress.\n    function protectedDataverseValue(value) {\n        const span = document.createElement('span');\n        span.className = 'notranslate';\n        span.setAttribute('data-no-translation', '');\n        span.setAttribute('translate', 'no');\n        span.textContent = value;\n        return span;\n    }\n\n    \/\/ =====================================\n    \/\/ GESTOR PHOTOGRAPH\n    \/\/ =====================================\n    function applyGestorPhoto() {\n        if (!photoUrl) return false;\n\n        const image = document.querySelector(\".gestor-photo img\");\n        if (!image) return false;\n\n        \/\/ Remove Elementor \/ WoodMart image sources\n        image.removeAttribute(\"srcset\");\n        image.removeAttribute(\"sizes\");\n        image.removeAttribute(\"data-src\");\n        image.removeAttribute(\"data-srcset\");\n        image.removeAttribute(\"data-lazy-src\");\n        image.removeAttribute(\"data-lazy-srcset\");\n\n        \/\/ Handle responsive picture elements\n        const picture = image.closest(\"picture\");\n        if (picture) {\n            picture.querySelectorAll(\"source\").forEach(source => {\n                source.removeAttribute(\"srcset\");\n                source.removeAttribute(\"sizes\");\n            });\n        }\n\n        \/\/ Apply Dataverse image only when needed\n        image.loading = \"eager\";\n        if (image.getAttribute(\"src\") !== photoUrl) {\n            image.src = photoUrl;\n        }\n\n        image.alt = isEnglish ? \"Operational manager photo\" : \"Fotografia do gestor operacional\";\n        return true;\n    }\n\n    \/\/ =====================================\n    \/\/ UPDATE ELEMENTOR WIDGETS\n    \/\/ =====================================\n    function updateGestorWidgets() {\n        \/\/ PAGE TITLE (Elementor widget with class gestor-page-title)\n        const title = document.querySelector(\n            \".gestor-page-title .elementor-heading-title, \" +\n            \".gestor-page-title h1, \" +\n            \".gestor-page-title h2, \" +\n            \".gestor-page-title h3, \" +\n            \".gestor-page-title h6, \" +\n            \".gestor-page-title p, \" +\n            \".gestor-page-title\"\n        );\n        if (title) {\n            title.setAttribute('data-no-translation', '');\n            title.setAttribute('translate', 'no');\n            title.textContent = isEnglish\n                ? 'Operational Manager Portal'\n                : 'Portal do Gestor Operacional';\n        }\n\n        \/\/ GREETING\n        const greeting = document.querySelector(\n            \".gestor-greeting h6, \" +\n            \".gestor-greeting .elementor-heading-title, \" +\n            \".gestor-greeting p\"\n        );\n\n        if (greeting && name) {\n            greeting.replaceChildren(\n                document.createTextNode(isEnglish ? \"Hello, \" : \"Ol\u00e1, \"),\n                protectedDataverseValue(name)\n            );\n        }\n\n        \/\/ GESTOR NUMBER\n        const numberElement = document.querySelector(\n            \".gestor-number h6, \" +\n            \".gestor-number .elementor-heading-title, \" +\n            \".gestor-number p\"\n        );\n\n        if (numberElement && number) {\n            numberElement.replaceChildren(\n                document.createTextNode(isEnglish ? \"Operational manager no.:\" : \"N\u00ba gestor operacional:\"),\n                document.createElement('br'),\n                protectedDataverseValue(number)\n            );\n        }\n\n        \/\/ PHOTO\n        applyGestorPhoto();\n\n        \/\/ Observe changes made by Elementor or WoodMart\n        const photoWidget = document.querySelector(\".gestor-photo\");\n        if (photoWidget && photoUrl && !photoObserver) {\n            photoObserver = new MutationObserver(() => {\n                const image = photoWidget.querySelector(\"img\");\n                if (!image) return;\n                if (image.getAttribute(\"src\") !== photoUrl || image.hasAttribute(\"srcset\")) {\n                    applyGestorPhoto();\n                }\n            });\n\n            photoObserver.observe(photoWidget, {\n                childList: true,\n                subtree: true,\n                attributes: true,\n                attributeFilter: [\"src\", \"srcset\", \"data-src\", \"data-srcset\"]\n            });\n        }\n    }\n\n    \/\/ Run immediately\n    updateGestorWidgets();\n\n    \/\/ Run when the DOM finishes loading\n    if (document.readyState === \"loading\") {\n        document.addEventListener(\"DOMContentLoaded\", updateGestorWidgets, { once: true });\n    }\n\n    \/\/ Handle Elementor \/ WoodMart late updates\n    window.addEventListener(\"load\", updateGestorWidgets, { once: true });\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":"<p>Portal do Gestor operacional Portal dos Gestores OperacionaisOperational Managers Portal A preparar a sua \u00e1rea pessoal&#8230;Preparing your personal area&#8230; N\u00ba<\/p>","protected":false},"author":65,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"courseId":0,"footnotes":""},"class_list":["post-93123","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/staging.academiaclinicadragao.com\/en\/wp-json\/wp\/v2\/pages\/93123","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=93123"}],"version-history":[{"count":5,"href":"https:\/\/staging.academiaclinicadragao.com\/en\/wp-json\/wp\/v2\/pages\/93123\/revisions"}],"predecessor-version":[{"id":93802,"href":"https:\/\/staging.academiaclinicadragao.com\/en\/wp-json\/wp\/v2\/pages\/93123\/revisions\/93802"}],"wp:attachment":[{"href":"https:\/\/staging.academiaclinicadragao.com\/en\/wp-json\/wp\/v2\/media?parent=93123"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}