{"id":2541,"date":"2026-04-16T11:46:10","date_gmt":"2026-04-16T11:46:10","guid":{"rendered":"https:\/\/mdn.gov.mz\/?page_id=2541"},"modified":"2026-04-17T06:02:57","modified_gmt":"2026-04-17T06:02:57","slug":"cprm-gaza","status":"publish","type":"page","link":"https:\/\/mdn.gov.mz\/index.php\/cprm-gaza\/","title":{"rendered":"CPRM Gaza"},"content":{"rendered":"\n<!DOCTYPE html>\n<html>\n<head>\n<style>\n:root {\n    --primary-color: #0073aa;\n    --secondary-color: #005a87;\n    --success-color: #46b450;\n    --danger-color: #dc3232;\n    --warning-color: #f0ad4e;\n    --archived-color: #6c757d;\n}\n\n* {\n    margin: 0;\n    padding: 0;\n    box-sizing: border-box;\n}\n\nbody {\n    font-family: 'Segoe UI', 'Roboto', 'Helvetica Neue', Arial, sans-serif;\n    background: #f5f5f5;\n}\n\n.container-editais {\n    max-width: 1200px;\n    margin: 0 auto;\n    padding: 20px;\n    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n}\n\n.header {\n    background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));\n    color: white;\n    padding: 35px 30px;\n    border-radius: 10px 10px 0 0;\n    margin-bottom: 0;\n    text-align: center;\n}\n\n.header h1 {\n    margin: 0;\n    font-size: 36px;\n    font-weight: 600;\n    letter-spacing: -0.5px;\n}\n\n.header p {\n    margin: 12px 0 0;\n    opacity: 0.9;\n    font-size: 16px;\n}\n\n\/* Se\u00e7\u00e3o institucional *\/\n.institutional-bar {\n    background: #fff;\n    border-bottom: 3px solid var(--primary-color);\n    padding: 20px 30px;\n    margin-bottom: 30px;\n    box-shadow: 0 2px 5px rgba(0,0,0,0.05);\n}\n\n.contact-grid {\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: space-between;\n    align-items: center;\n    gap: 20px;\n}\n\n.contact-item {\n    display: flex;\n    align-items: center;\n    gap: 12px;\n    font-size: 14px;\n    color: #333;\n    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n}\n\n.contact-label {\n    font-weight: 600;\n    color: var(--primary-color);\n    min-width: 70px;\n}\n\n.contact-value {\n    color: #444;\n}\n\n.contact-value a {\n    color: #333;\n    text-decoration: none;\n    transition: color 0.3s;\n}\n\n.contact-value a:hover {\n    color: var(--primary-color);\n    text-decoration: underline;\n}\n\n.separator {\n    width: 1px;\n    height: 30px;\n    background: #ddd;\n}\n\n\/* Se\u00e7\u00e3o de arquivados *\/\n.archived-section {\n    margin-top: 40px;\n    border-top: 2px solid #e0e0e0;\n    padding-top: 20px;\n}\n\n.archived-header {\n    background: #f8f9fa;\n    padding: 15px 20px;\n    border-radius: 8px;\n    cursor: pointer;\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    transition: all 0.3s;\n    border: 1px solid #dee2e6;\n}\n\n.archived-header:hover {\n    background: #e9ecef;\n}\n\n.archived-header h3 {\n    color: var(--archived-color);\n    margin: 0;\n    font-size: 18px;\n    display: flex;\n    align-items: center;\n    gap: 10px;\n}\n\n.archived-icon {\n    font-size: 20px;\n    transition: transform 0.3s;\n}\n\n.archived-icon.open {\n    transform: rotate(180deg);\n}\n\n.archived-content {\n    display: none;\n    margin-top: 20px;\n    animation: slideDown 0.3s ease-out;\n}\n\n.archived-content.show {\n    display: block;\n}\n\n.archived-grid {\n    display: grid;\n    gap: 20px;\n}\n\n\/* Cards *\/\n.editais-grid {\n    display: grid;\n    gap: 25px;\n}\n\n.edital-card {\n    background: white;\n    border: 1px solid #e0e0e0;\n    border-radius: 10px;\n    padding: 25px;\n    transition: all 0.3s;\n    position: relative;\n    overflow: hidden;\n    box-shadow: 0 2px 5px rgba(0,0,0,0.05);\n}\n\n.edital-card::before {\n    content: '';\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 5px;\n    height: 100%;\n    background: var(--primary-color);\n    transform: scaleY(0);\n    transition: transform 0.3s;\n}\n\n.edital-card:hover::before {\n    transform: scaleY(1);\n}\n\n.edital-card:hover {\n    transform: translateX(5px);\n    box-shadow: 0 5px 20px rgba(0,0,0,0.1);\n}\n\n.edital-card.archived {\n    opacity: 0.85;\n    background: #fafafa;\n}\n\n.edital-card.archived::before {\n    background: var(--archived-color);\n}\n\n.edital-title {\n    font-size: 20px;\n    font-weight: 600;\n    color: var(--primary-color);\n    margin-bottom: 12px;\n}\n\n.edital-card.archived .edital-title {\n    color: var(--archived-color);\n}\n\n.edital-date {\n    color: #666;\n    font-size: 13px;\n    margin-bottom: 15px;\n    display: flex;\n    align-items: center;\n    gap: 8px;\n}\n\n.edital-status {\n    display: inline-block;\n    padding: 4px 12px;\n    border-radius: 20px;\n    font-size: 11px;\n    font-weight: 600;\n    margin-left: 10px;\n}\n\n.status-active {\n    background: var(--success-color);\n    color: white;\n}\n\n.status-archived {\n    background: var(--archived-color);\n    color: white;\n}\n\n.edital-link {\n    display: inline-flex;\n    align-items: center;\n    gap: 10px;\n    background: var(--primary-color);\n    color: white;\n    padding: 10px 20px;\n    text-decoration: none;\n    border-radius: 6px;\n    transition: all 0.3s;\n    font-weight: 500;\n    font-size: 14px;\n    border: none;\n    cursor: pointer;\n}\n\n.edital-link:hover {\n    background: var(--secondary-color);\n    transform: translateY(-2px);\n}\n\n\/* Formul\u00e1rio admin - estilo modal *\/\n.form-overlay {\n    display: none;\n    position: fixed;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n    background: rgba(0,0,0,0.5);\n    z-index: 1000;\n}\n\n.form-overlay.show {\n    display: block;\n}\n\n.form-area {\n    background: #f8f9fa;\n    border-radius: 10px;\n    padding: 25px;\n    display: none;\n    position: fixed;\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    width: 90%;\n    max-width: 600px;\n    max-height: 90vh;\n    overflow-y: auto;\n    z-index: 1001;\n    box-shadow: 0 10px 40px rgba(0,0,0,0.2);\n}\n\n.form-area.show {\n    display: block;\n    animation: slideDown 0.3s ease-out;\n}\n\n@keyframes slideDown {\n    from {\n        opacity: 0;\n        transform: translate(-50%, -40%);\n    }\n    to {\n        opacity: 1;\n        transform: translate(-50%, -50%);\n    }\n}\n\n.form-group {\n    margin-bottom: 20px;\n}\n\n.form-group label {\n    display: block;\n    margin-bottom: 8px;\n    font-weight: 600;\n    color: #333;\n    font-size: 14px;\n}\n\n.form-group input, .form-group select {\n    width: 100%;\n    padding: 12px;\n    border: 1px solid #ddd;\n    border-radius: 6px;\n    font-size: 14px;\n    font-family: inherit;\n    transition: border-color 0.3s;\n}\n\n.form-group input:focus, .form-group select:focus {\n    outline: none;\n    border-color: var(--primary-color);\n    box-shadow: 0 0 0 2px rgba(0,115,170,0.1);\n}\n\n.form-group small {\n    display: block;\n    margin-top: 5px;\n    color: #666;\n    font-size: 12px;\n}\n\n.btn {\n    padding: 12px 24px;\n    border: none;\n    border-radius: 6px;\n    cursor: pointer;\n    font-size: 14px;\n    font-weight: 600;\n    transition: all 0.3s;\n    font-family: inherit;\n}\n\n.btn-primary {\n    background: var(--primary-color);\n    color: white;\n}\n\n.btn-primary:hover {\n    background: var(--secondary-color);\n    transform: translateY(-2px);\n}\n\n.btn-danger {\n    background: var(--danger-color);\n    color: white;\n}\n\n.admin-badge {\n    position: fixed;\n    bottom: 20px;\n    right: 20px;\n    z-index: 1000;\n}\n\n.admin-toggle {\n    background: var(--primary-color);\n    color: white;\n    border: none;\n    border-radius: 50%;\n    width: 50px;\n    height: 50px;\n    cursor: pointer;\n    font-size: 20px;\n    box-shadow: 0 2px 10px rgba(0,0,0,0.2);\n    transition: all 0.3s;\n}\n\n.admin-toggle:hover {\n    transform: scale(1.1);\n    background: var(--secondary-color);\n}\n\n.info-box {\n    background: #e7f3ff;\n    padding: 15px;\n    border-radius: 8px;\n    margin-bottom: 20px;\n    border-left: 4px solid var(--primary-color);\n}\n\n.info-box p {\n    margin: 5px 0;\n    font-size: 13px;\n    color: #005a87;\n}\n\n@media (max-width: 768px) {\n    .container-editais {\n        padding: 15px;\n    }\n    \n    .header {\n        padding: 25px 20px;\n    }\n    \n    .header h1 {\n        font-size: 24px;\n    }\n    \n    .edital-title {\n        font-size: 18px;\n    }\n    \n    .institutional-bar {\n        padding: 15px 20px;\n    }\n    \n    .contact-grid {\n        flex-direction: column;\n        align-items: flex-start;\n        gap: 12px;\n    }\n    \n    .separator {\n        display: none;\n    }\n    \n    .form-area {\n        width: 95%;\n        padding: 20px;\n    }\n}\n<\/style>\n<\/head>\n<body>\n\n<div class=\"container-editais\">\n    <div class=\"header\">\n        <h1>Centro Provincial de Recrutamento e Mobiliza\u00e7\u00e3o de Gaza<\/h1>\n        <p>CPRM &#8211; Gaza | Minist\u00e9rio da Defesa Nacional<\/p>\n        <p>Publica\u00e7\u00e3o de Editais de Incorpora\u00e7\u00e3o<\/p>\n    <\/div>\n    \n    <div class=\"institutional-bar\">\n        <div class=\"contact-grid\">\n            <div class=\"contact-item\">\n                <span class=\"contact-label\">Endere\u00e7o:<\/span>\n                <span class=\"contact-value\">Avenida Samora Machel, N\u00b0311, Cidade de Xai-Xai<\/span>\n            <\/div>\n            <div class=\"separator\"><\/div>\n            <div class=\"contact-item\">\n                <span class=\"contact-label\">Contacto:<\/span>\n                <span class=\"contact-value\">+258 282-25959<\/span>\n            <\/div>\n            <div class=\"separator\"><\/div>\n            <div class=\"contact-item\">\n                <span class=\"contact-label\">Email:<\/span>\n                <span class=\"contact-value\"><a href=\"mailto:Cprm.gaza@mdn.gov.mz\">Cprm.gaza@mdn.gov.mz<\/a><\/span>\n            <\/div>\n            <div class=\"separator\"><\/div>\n            <div class=\"contact-item\">\n                <span class=\"contact-label\">Localiza\u00e7\u00e3o:<\/span>\n                <span class=\"contact-value\">Gaza \u2013 Mo\u00e7ambique<\/span>\n            <\/div>\n        <\/div>\n    <\/div>\n    \n    <!-- Editais Ativos - Frontend (sem bot\u00f5es de a\u00e7\u00e3o) -->\n    <h2 style=\"color: var(--primary-color); margin-bottom: 20px; font-size: 24px;\">\ud83d\udce2 Editais em Vigor<\/h2>\n    <div id=\"editaisList\" class=\"editais-grid\"><\/div>\n    \n    <!-- Se\u00e7\u00e3o de Editais Arquivados - Frontend (apenas visualiza\u00e7\u00e3o) -->\n    <div class=\"archived-section\">\n        <div class=\"archived-header\" onclick=\"toggleArchived()\">\n            <h3>\n                <span>\ud83d\udce6<\/span> Editais Arquivados\n                <span id=\"archivedCount\" style=\"font-size: 14px; font-weight: normal;\"><\/span>\n            <\/h3>\n            <span class=\"archived-icon\" id=\"archivedIcon\">\u25bc<\/span>\n        <\/div>\n        <div class=\"archived-content\" id=\"archivedContent\">\n            <div id=\"archivedList\" class=\"archived-grid\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- Bot\u00e3o Admin (apenas vis\u00edvel para administradores no WordPress) -->\n<div class=\"admin-badge\">\n    <button class=\"admin-toggle\" onclick=\"toggleAdminPanel()\" title=\"\u00c1rea Administrativa\">\u2699\ufe0f<\/button>\n<\/div>\n\n<!-- Overlay para o formul\u00e1rio -->\n<div id=\"formOverlay\" class=\"form-overlay\" onclick=\"fecharAdminPanel()\"><\/div>\n\n<script>\n\/\/ Editais com suporte a arquivamento autom\u00e1tico baseado em data\nlet editais = [\n    {\n        id: 1,\n        titulo: \"Edital de Prova de Classifica\u00e7\u00e3o e Sele\u00e7\u00e3o\",\n        dataPublicacao: \"\",\n        dataTermino: \"\",\n        link: \"\",\n        status: \"active\",\n        dataArquivamento: null,\n        ativo: true\n    },\n    {\n        id: 2,\n        titulo: \"Edital de Incorpora\u00e7\u00e3o\",\n        dataPublicacao: \"\",\n        dataTermino: \"\",\n        link: \"\",\n        status: \"active\",\n        dataArquivamento: null,\n        ativo: true\n    }\n];\n\n\/\/ Carregar dados do localStorage\nfunction loadEditais() {\n    const saved = localStorage.getItem('centro_editais_v3');\n    if(saved) {\n        editais = JSON.parse(saved);\n    }\n    verificarArquivamentoAutomatico();\n    renderAll();\n}\n\n\/\/ Salvar dados no localStorage\nfunction saveEditais() {\n    localStorage.setItem('centro_editais_v3', JSON.stringify(editais));\n}\n\n\/\/ Verificar e arquivar automaticamente editais com data de t\u00e9rmino expirada\nfunction verificarArquivamentoAutomatico() {\n    const hoje = new Date();\n    hoje.setHours(0, 0, 0, 0);\n    \n    let alterado = false;\n    \n    editais.forEach(edital => {\n        if(edital.status === 'active' && edital.dataTermino) {\n            const dataTermino = new Date(edital.dataTermino);\n            dataTermino.setHours(0, 0, 0, 0);\n            \n            \/\/ Se a data de t\u00e9rmino for anterior a hoje, arquivar automaticamente\n            if(dataTermino < hoje) {\n                edital.status = 'archived';\n                edital.dataArquivamento = new Date().toISOString().split('T')[0];\n                alterado = true;\n            }\n        }\n    });\n    \n    if(alterado) {\n        saveEditais();\n    }\n}\n\n\/\/ Renderizar tudo\nfunction renderAll() {\n    renderActiveEditaisFrontend();\n    renderArchivedEditaisFrontend();\n    updateArchivedCount();\n}\n\n\/\/ Renderizar editais ativos para o frontend (SEM bot\u00f5es de a\u00e7\u00e3o)\nfunction renderActiveEditaisFrontend() {\n    const container = document.getElementById('editaisList');\n    const activeEditais = editais.filter(e => e.status === 'active');\n    \n    if(activeEditais.length === 0) {\n        container.innerHTML = '<div style=\"text-align: center; padding: 40px; background: #f9f9f9; border-radius: 10px;\">\ud83d\udced Nenhum edictal ativo no momento.<\/div>';\n        return;\n    }\n    \n    container.innerHTML = activeEditais.map(edital => {\n        let statusText = '';\n        if(edital.dataTermino) {\n            const hoje = new Date();\n            const dataTermino = new Date(edital.dataTermino);\n            const diasRestantes = Math.ceil((dataTermino - hoje) \/ (1000 * 60 * 60 * 24));\n            \n            if(diasRestantes > 0 && diasRestantes <= 7) {\n                statusText = `<span style=\"display: inline-block; margin-left: 10px; padding: 2px 8px; background: #f0ad4e; color: white; border-radius: 20px; font-size: 11px;\">\u26a0\ufe0f Encerra em ${diasRestantes} dia(s)<\/span>`;\n            } else if(diasRestantes > 0) {\n                statusText = `<span style=\"display: inline-block; margin-left: 10px; padding: 2px 8px; background: #5bc0de; color: white; border-radius: 20px; font-size: 11px;\">\ud83d\udcc5 At\u00e9 ${formatDate(edital.dataTermino)}<\/span>`;\n            }\n        }\n        \n        return `\n        <div class=\"edital-card\">\n            <div class=\"edital-title\">\n                \ud83d\udcc4 ${escapeHtml(edital.titulo)}\n                <span class=\"edital-status status-active\">ATIVO<\/span>\n                ${statusText}\n            <\/div>\n            ${edital.dataPublicacao ? `<div class=\"edital-date\">\ud83d\udcc5 Publicado no dia: ${formatDate(edital.dataPublicacao)}<\/div>` : '<div class=\"edital-date\">\u23f3 Aguardando publica\u00e7\u00e3o<\/div>'}\n            ${edital.dataTermino ? `<div class=\"edital-date\">\u23f0 Data limite: ${formatDate(edital.dataTermino)}<\/div>` : ''}\n            <div>\n                ${edital.link && edital.link !== '#' && edital.link !== '' ? \n                    `<a href=\"${edital.link}\" class=\"edital-link\" target=\"_blank\">\ud83d\udce5 Baixar Edictal (PDF)<\/a>` : \n                    `<div class=\"edital-link\" style=\"background: #ccc; cursor: not-allowed; display: inline-flex;\">\ud83d\udce5 Indispon\u00edvel<\/div>`\n                }\n            <\/div>\n        <\/div>\n    `}).join('');\n}\n\n\/\/ Renderizar editais arquivados para o frontend (SEM bot\u00f5es de a\u00e7\u00e3o)\nfunction renderArchivedEditaisFrontend() {\n    const container = document.getElementById('archivedList');\n    const archivedEditais = editais.filter(e => e.status === 'archived');\n    \n    if(archivedEditais.length === 0) {\n        container.innerHTML = '<div style=\"text-align: center; padding: 40px; background: #f9f9f9; border-radius: 10px;\">\ud83d\udced Nenhum edictal arquivado.<\/div>';\n        return;\n    }\n    \n    container.innerHTML = archivedEditais.map(edital => `\n        <div class=\"edital-card archived\">\n            <div class=\"edital-title\">\n                \ud83d\udcc4 ${escapeHtml(edital.titulo)}\n                <span class=\"edital-status status-archived\">ARQUIVADO<\/span>\n            <\/div>\n            ${edital.dataPublicacao ? `<div class=\"edital-date\">\ud83d\udcc5 Publicado em: ${formatDate(edital.dataPublicacao)}<\/div>` : ''}\n            ${edital.dataTermino ? `<div class=\"edital-date\">\u23f0 Data limite: ${formatDate(edital.dataTermino)}<\/div>` : ''}\n            ${edital.dataArquivamento ? `<div class=\"edital-date\">\ud83d\udce6 Arquivado em: ${formatDate(edital.dataArquivamento)}<\/div>` : ''}\n            <div>\n                ${edital.link && edital.link !== '#' && edital.link !== '' ? \n                    `<a href=\"${edital.link}\" class=\"edital-link\" target=\"_blank\">\ud83d\udce5 Baixar Edictal (PDF)<\/a>` : \n                    `<div class=\"edital-link\" style=\"background: #ccc; cursor: not-allowed; display: inline-flex;\">\ud83d\udce5 Indispon\u00edvel<\/div>`\n                }\n            <\/div>\n        <\/div>\n    `).join('');\n}\n\n\/\/ Alternar visualiza\u00e7\u00e3o de arquivados\nfunction toggleArchived() {\n    const content = document.getElementById('archivedContent');\n    const icon = document.getElementById('archivedIcon');\n    \n    if(content.classList.contains('show')) {\n        content.classList.remove('show');\n        icon.classList.remove('open');\n    } else {\n        content.classList.add('show');\n        icon.classList.add('open');\n    }\n}\n\n\/\/ Atualizar contador de arquivados\nfunction updateArchivedCount() {\n    const count = editais.filter(e => e.status === 'archived').length;\n    const countSpan = document.getElementById('archivedCount');\n    if(countSpan) {\n        countSpan.textContent = `(${count})`;\n    }\n}\n\n\/\/ Formatar data\nfunction formatDate(dateString) {\n    if(!dateString) return '';\n    const date = new Date(dateString);\n    return date.toLocaleDateString('pt-BR');\n}\n\n\/\/ Escapar HTML\nfunction escapeHtml(text) {\n    if(!text) return '';\n    const div = document.createElement('div');\n    div.textContent = text;\n    return div.innerHTML;\n}\n\n\/\/ \u00c1rea administrativa (apenas admin tem acesso)\nfunction toggleAdminPanel() {\n    let panel = document.getElementById('adminPanel');\n    const overlay = document.getElementById('formOverlay');\n    \n    if(panel) {\n        panel.remove();\n        overlay.classList.remove('show');\n    } else {\n        createAdminPanel();\n        overlay.classList.add('show');\n    }\n}\n\nfunction createAdminPanel() {\n    const panel = document.createElement('div');\n    panel.id = 'adminPanel';\n    panel.className = 'form-area show';\n    \n    const edital1 = editais.find(e => e.id === 1);\n    const edital2 = editais.find(e => e.id === 2);\n    \n    panel.innerHTML = `\n        <h3 style=\"color: var(--primary-color); margin-bottom: 20px;\">\ud83d\udd10 \u00c1rea Administrativa - Gest\u00e3o de Editais<\/h3>\n        \n        <div class=\"info-box\">\n            <p><strong>\ud83d\udccc Como funciona o arquivamento autom\u00e1tico:<\/strong><\/p>\n            <p>\u2022 Defina a <strong>Data de Publica\u00e7\u00e3o<\/strong> e a <strong>Data de T\u00e9rmino<\/strong> para cada edital<\/p>\n            <p>\u2022 Ap\u00f3s a data de t\u00e9rmino, o sistema <strong>arquiva automaticamente<\/strong> o edital<\/p>\n            <p>\u2022 Editais arquivados ficam vis\u00edveis apenas na se\u00e7\u00e3o \"Editais Arquivados\"<\/p>\n            <p>\u2022 Voc\u00ea pode <strong>reativar manualmente<\/strong> um edital arquivado se necess\u00e1rio<\/p>\n        <\/div>\n        \n        <h4 style=\"color: var(--primary-color); margin-top: 20px; margin-bottom: 15px;\">\ud83d\udcdd Editais de Prova de Classifica\u00e7\u00e3o e Selec\u00e7\u00e3o<\/h4>\n        <div class=\"form-group\">\n            <label>T\u00edtulo do Edital:<\/label>\n            <input type=\"text\" id=\"editalTitulo1\" value=\"${escapeHtml(edital1.titulo)}\">\n        <\/div>\n        <div class=\"form-group\">\n            <label>Data de Publica\u00e7\u00e3o:<\/label>\n            <input type=\"date\" id=\"editalDataPublicacao1\" value=\"${edital1.dataPublicacao || ''}\">\n            <small>Data em que o edital foi publicado\/entra em vigor<\/small>\n        <\/div>\n        <div class=\"form-group\">\n            <label>Data de T\u00e9rmino:<\/label>\n            <input type=\"date\" id=\"editalDataTermino1\" value=\"${edital1.dataTermino || ''}\">\n            <small>Ap\u00f3s esta data, o edital ser\u00e1 arquivado automaticamente<\/small>\n        <\/div>\n        <div class=\"form-group\">\n            <label>Link do PDF:<\/label>\n            <input type=\"url\" id=\"editalLink1\" value=\"${edital1.link || ''}\" placeholder=\"https:\/\/exemplo.com\/edital1.pdf\">\n        <\/div>\n        <div class=\"form-group\">\n            <label>Status (opcional - reativar se necess\u00e1rio):<\/label>\n            <select id=\"editalStatus1\" style=\"width: 100%; padding: 12px; border: 1px solid #ddd; border-radius: 6px;\">\n                <option value=\"active\" ${edital1.status === 'active' ? 'selected' : ''}>\u2705 Ativo (vis\u00edvel na p\u00e1gina principal)<\/option>\n                <option value=\"archived\" ${edital1.status === 'archived' ? 'selected' : ''}>\ud83d\udce6 Arquivado (movido para arquivo)<\/option>\n            <\/select>\n            <small>Use esta op\u00e7\u00e3o para reativar manualmente um edital arquivado<\/small>\n        <\/div>\n        \n        <h4 style=\"color: var(--primary-color); margin-top: 30px; margin-bottom: 15px;\">\ud83c\udf96\ufe0f Edital de Incorpora\u00e7\u00e3o<\/h4>\n        <div class=\"form-group\">\n            <label>T\u00edtulo do Edital:<\/label>\n            <input type=\"text\" id=\"editalTitulo2\" value=\"${escapeHtml(edital2.titulo)}\">\n        <\/div>\n        <div class=\"form-group\">\n            <label>Data de Publica\u00e7\u00e3o:<\/label>\n            <input type=\"date\" id=\"editalDataPublicacao2\" value=\"${edital2.dataPublicacao || ''}\">\n            <small>Data em que o edital foi publicado\/entra em vigor<\/small>\n        <\/div>\n        <div class=\"form-group\">\n            <label>Data de T\u00e9rmino:<\/label>\n            <input type=\"date\" id=\"editalDataTermino2\" value=\"${edital2.dataTermino || ''}\">\n            <small>Ap\u00f3s esta data, o edital ser\u00e1 arquivado automaticamente<\/small>\n        <\/div>\n        <div class=\"form-group\">\n            <label>Link do PDF:<\/label>\n            <input type=\"url\" id=\"editalLink2\" value=\"${edital2.link || ''}\" placeholder=\"https:\/\/exemplo.com\/edital2.pdf\">\n        <\/div>\n        <div class=\"form-group\">\n            <label>Status (opcional - reativar se necess\u00e1rio):<\/label>\n            <select id=\"editalStatus2\" style=\"width: 100%; padding: 12px; border: 1px solid #ddd; border-radius: 6px;\">\n                <option value=\"active\" ${edital2.status === 'active' ? 'selected' : ''}>\u2705 Ativo (vis\u00edvel na p\u00e1gina principal)<\/option>\n                <option value=\"archived\" ${edital2.status === 'archived' ? 'selected' : ''}>\ud83d\udce6 Arquivado (movido para arquivo)<\/option>\n            <\/select>\n            <small>Use esta op\u00e7\u00e3o para reativar manualmente um edital arquivado<\/small>\n        <\/div>\n        \n        <div style=\"display: flex; gap: 10px; margin-top: 25px;\">\n            <button class=\"btn btn-primary\" onclick=\"atualizarEditais()\">\u2705 Salvar Altera\u00e7\u00f5es<\/button>\n            <button class=\"btn btn-danger\" onclick=\"fecharAdminPanel()\">\u274c Fechar<\/button>\n        <\/div>\n    `;\n    \n    document.body.appendChild(panel);\n}\n\nfunction fecharAdminPanel() {\n    const panel = document.getElementById('adminPanel');\n    const overlay = document.getElementById('formOverlay');\n    if(panel) panel.remove();\n    if(overlay) overlay.classList.remove('show');\n}\n\nfunction atualizarEditais() {\n    const titulo1 = document.getElementById('editalTitulo1').value;\n    const dataPublicacao1 = document.getElementById('editalDataPublicacao1').value;\n    const dataTermino1 = document.getElementById('editalDataTermino1').value;\n    const link1 = document.getElementById('editalLink1').value;\n    const status1 = document.getElementById('editalStatus1').value;\n    \n    const titulo2 = document.getElementById('editalTitulo2').value;\n    const dataPublicacao2 = document.getElementById('editalDataPublicacao2').value;\n    const dataTermino2 = document.getElementById('editalDataTermino2').value;\n    const link2 = document.getElementById('editalLink2').value;\n    const status2 = document.getElementById('editalStatus2').value;\n    \n    if(!titulo1 || !titulo2) {\n        alert('Por favor, preencha os t\u00edtulos dos editais!');\n        return;\n    }\n    \n    const edital1 = editais.find(e => e.id === 1);\n    const edital2 = editais.find(e => e.id === 2);\n    \n    edital1.titulo = titulo1;\n    edital1.dataPublicacao = dataPublicacao1;\n    edital1.dataTermino = dataTermino1;\n    edital1.link = link1;\n    edital1.status = status1;\n    if(status1 === 'archived' && !edital1.dataArquivamento) {\n        edital1.dataArquivamento = new Date().toISOString().split('T')[0];\n    } else if(status1 === 'active') {\n        edital1.dataArquivamento = null;\n    }\n    \n    edital2.titulo = titulo2;\n    edital2.dataPublicacao = dataPublicacao2;\n    edital2.dataTermino = dataTermino2;\n    edital2.link = link2;\n    edital2.status = status2;\n    if(status2 === 'archived' && !edital2.dataArquivamento) {\n        edital2.dataArquivamento = new Date().toISOString().split('T')[0];\n    } else if(status2 === 'active') {\n        edital2.dataArquivamento = null;\n    }\n    \n    saveEditais();\n    verificarArquivamentoAutomatico();\n    renderAll();\n    fecharAdminPanel();\n    alert('\u2705 Editais atualizados com sucesso!\\n\\nOs editais ser\u00e3o arquivados automaticamente ap\u00f3s a data de t\u00e9rmino.');\n}\n\n\/\/ Verificar arquivamento autom\u00e1tico a cada minuto\nsetInterval(() => {\n    verificarArquivamentoAutomatico();\n    renderAll();\n}, 60000);\n\n\/\/ Inicializar o sistema\nloadEditais();\n<\/script>\n\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>Centro Provincial de Recrutamento e Mobiliza\u00e7\u00e3o de Gaza CPRM &#8211; Gaza | Minist\u00e9rio da Defesa Nacional Publica\u00e7\u00e3o de Editais de Incorpora\u00e7\u00e3o Endere\u00e7o: Avenida Samora Machel, N\u00b0311, Cidade de Xai-Xai Contacto: [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2541","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/mdn.gov.mz\/index.php\/wp-json\/wp\/v2\/pages\/2541","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mdn.gov.mz\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mdn.gov.mz\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mdn.gov.mz\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mdn.gov.mz\/index.php\/wp-json\/wp\/v2\/comments?post=2541"}],"version-history":[{"count":11,"href":"https:\/\/mdn.gov.mz\/index.php\/wp-json\/wp\/v2\/pages\/2541\/revisions"}],"predecessor-version":[{"id":2560,"href":"https:\/\/mdn.gov.mz\/index.php\/wp-json\/wp\/v2\/pages\/2541\/revisions\/2560"}],"wp:attachment":[{"href":"https:\/\/mdn.gov.mz\/index.php\/wp-json\/wp\/v2\/media?parent=2541"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}