{"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-17T13:50:33","modified_gmt":"2026-04-17T13:50:33","slug":"cprm-gaza","status":"publish","type":"page","link":"https:\/\/mdn.gov.mz\/index.php\/cprm-gaza\/","title":{"rendered":"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: 1400px;\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\/* Layout de duas colunas *\/\n.main-wrapper {\n    display: flex;\n    gap: 30px;\n    margin-top: 0;\n    flex-wrap: wrap;\n}\n\n.content-left {\n    flex: 2;\n    min-width: 300px;\n}\n\n.sidebar-right {\n    flex: 1;\n    min-width: 280px;\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\/* Card do Delegado *\/\n.delegado-card {\n    background: white;\n    border-radius: 10px;\n    overflow: hidden;\n    box-shadow: 0 2px 10px rgba(0,0,0,0.08);\n    margin-bottom: 30px;\n    border: 1px solid #e0e0e0;\n    position: sticky;\n    top: 20px;\n}\n\n.delegado-header {\n    background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));\n    color: white;\n    padding: 15px 20px;\n    text-align: center;\n}\n\n.delegado-header h3 {\n    margin: 0;\n    font-size: 18px;\n    font-weight: 600;\n}\n\n.delegado-foto {\n    text-align: center;\n    padding: 25px 20px 15px 20px;\n    background: #fafafa;\n}\n\n.foto-placeholder {\n    width: 200px;\n    height: 200px;\n    margin: 0 auto;\n    border-radius: 10px;\n    background: #e9ecef;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    overflow: hidden;\n    border: 3px solid var(--primary-color);\n    box-shadow: 0 4px 12px rgba(0,0,0,0.1);\n}\n\n.foto-placeholder img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n}\n\n.foto-placeholder .no-photo {\n    text-align: center;\n    color: #999;\n    font-size: 48px;\n}\n\n.delegado-info {\n    padding: 20px;\n}\n\n.delegado-nome {\n    font-size: 20px;\n    font-weight: 700;\n    color: var(--primary-color);\n    margin-bottom: 8px;\n    text-align: center;\n}\n\n.delegado-cargo {\n    font-size: 14px;\n    color: #666;\n    text-align: center;\n    margin-bottom: 15px;\n    padding-bottom: 15px;\n    border-bottom: 1px solid #eee;\n}\n\n.delegado-mensagem {\n    font-size: 14px;\n    color: #555;\n    line-height: 1.6;\n    font-style: italic;\n    text-align: center;\n    margin-top: 15px;\n    padding: 15px;\n    background: #f8f9fa;\n    border-radius: 8px;\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, .form-group textarea {\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, .form-group textarea: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 textarea {\n    resize: vertical;\n    min-height: 80px;\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: 992px) {\n    .main-wrapper {\n        flex-direction: column;\n    }\n    \n    .sidebar-right {\n        order: -1;\n    }\n    \n    .delegado-card {\n        position: relative;\n        top: 0;\n    }\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    .foto-placeholder {\n        width: 150px;\n        height: 150px;\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>Minist\u00e9rio da Defesa Nacional | CPRM &#8211; Gaza<\/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    <!-- Layout de duas colunas -->\n    <div class=\"main-wrapper\">\n        <!-- Coluna Esquerda - Editais -->\n        <div class=\"content-left\">\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 -->\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        <!-- Coluna Direita - Delegado -->\n        <div class=\"sidebar-right\">\n            <div class=\"delegado-card\">\n                <div class=\"delegado-header\">\n                    <h3>\ud83d\udccb Comando do CPRM<\/h3>\n                <\/div>\n                <div class=\"delegado-foto\">\n                    <div class=\"foto-placeholder\" id=\"fotoPlaceholder\">\n                        <div class=\"no-photo\" id=\"noPhotoIcon\">\ud83d\udcf8<\/div>\n                        <img id=\"delegadoFoto\" style=\"display: none; width: 100%; height: 100%; object-fit: cover;\" alt=\"Foto do Delegado\">\n                    <\/div>\n                <\/div>\n                <div class=\"delegado-info\">\n                    <div class=\"delegado-nome\" id=\"delegadoNome\">Delegado do CPRM<\/div>\n                    <div class=\"delegado-cargo\" id=\"delegadoCargo\">Delegado do Centro Provincial de Recrutamento e Mobiliza\u00e7\u00e3o<\/div>\n                    <div class=\"delegado-mensagem\" id=\"delegadoMensagem\">\n                        &#8220;Comprometidos com a transpar\u00eancia, excel\u00eancia e patriotismo no recrutamento militar&#8221;\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<!-- Bot\u00e3o Admin -->\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\/\/ Dados do Delegado\nlet delegadoData = {\n    nome: \"Delegado do CPRM\",\n    cargo: \"Delegado do Centro Provincial de Recrutamento e Mobiliza\u00e7\u00e3o\",\n    mensagem: \"Comprometidos com a transpar\u00eancia, excel\u00eancia e patriotismo no recrutamento militar\",\n    foto: null\n};\n\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 Selec\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 loadData() {\n    const savedDelegado = localStorage.getItem('cprm_delegado');\n    if(savedDelegado) {\n        delegadoData = JSON.parse(savedDelegado);\n        renderDelegado();\n    }\n    \n    const savedEditais = localStorage.getItem('centro_editais_v3');\n    if(savedEditais) {\n        editais = JSON.parse(savedEditais);\n    }\n    verificarArquivamentoAutomatico();\n    renderAll();\n}\n\n\/\/ Salvar dados\nfunction saveData() {\n    localStorage.setItem('cprm_delegado', JSON.stringify(delegadoData));\n    localStorage.setItem('centro_editais_v3', JSON.stringify(editais));\n}\n\n\/\/ Renderizar informa\u00e7\u00f5es do Delegado\nfunction renderDelegado() {\n    document.getElementById('delegadoNome').textContent = delegadoData.nome || \"Delegado do CPRM\";\n    document.getElementById('delegadoCargo').textContent = delegadoData.cargo || \"Delegado do Centro Provincial de Recrutamento e Mobiliza\u00e7\u00e3o\";\n    document.getElementById('delegadoMensagem').textContent = delegadoData.mensagem || \"Comprometidos com a transpar\u00eancia, excel\u00eancia e patriotismo no recrutamento militar\";\n    \n    const fotoImg = document.getElementById('delegadoFoto');\n    const noPhotoIcon = document.getElementById('noPhotoIcon');\n    \n    if(delegadoData.foto) {\n        fotoImg.src = delegadoData.foto;\n        fotoImg.style.display = 'block';\n        noPhotoIcon.style.display = 'none';\n    } else {\n        fotoImg.style.display = 'none';\n        noPhotoIcon.style.display = 'flex';\n        noPhotoIcon.style.alignItems = 'center';\n        noPhotoIcon.style.justifyContent = 'center';\n        noPhotoIcon.style.height = '100%';\n        noPhotoIcon.style.fontSize = '48px';\n    }\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            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        saveData();\n    }\n}\n\n\/\/ Renderizar tudo\nfunction renderAll() {\n    renderActiveEditaisFrontend();\n    renderArchivedEditaisFrontend();\n    updateArchivedCount();\n}\n\n\/\/ Renderizar editais ativos para o frontend\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 edital 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 Edital (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\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 edital 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 Edital (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\/\/ Converter imagem para Base64\nfunction convertToBase64(file) {\n    return new Promise((resolve, reject) => {\n        const reader = new FileReader();\n        reader.readAsDataURL(file);\n        reader.onload = () => resolve(reader.result);\n        reader.onerror = error => reject(error);\n    });\n}\n\n\/\/ \u00c1rea administrativa\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<\/h3>\n        \n        <div class=\"info-box\">\n            <p><strong>\ud83d\udccc Gest\u00e3o do Delegado:<\/strong><\/p>\n            <p>\u2022 Adicione a foto do Delegado (formato: JPG, PNG - tamanho recomendado: 300x300px)<\/p>\n            <p>\u2022 Edite o nome, cargo e mensagem institucional<\/p>\n        <\/div>\n        \n        <h4 style=\"color: var(--primary-color); margin-bottom: 15px;\">\ud83d\udc64 Informa\u00e7\u00f5es do Delegado<\/h4>\n        <div class=\"form-group\">\n            <label>Nome Completo:<\/label>\n            <input type=\"text\" id=\"delegadoNomeInput\" value=\"${escapeHtml(delegadoData.nome)}\">\n        <\/div>\n        <div class=\"form-group\">\n            <label>Cargo\/Patente:<\/label>\n            <input type=\"text\" id=\"delegadoCargoInput\" value=\"${escapeHtml(delegadoData.cargo)}\">\n        <\/div>\n        <div class=\"form-group\">\n            <label>Mensagem Institucional:<\/label>\n            <textarea id=\"delegadoMensagemInput\" rows=\"3\">${escapeHtml(delegadoData.mensagem)}<\/textarea>\n        <\/div>\n        <div class=\"form-group\">\n            <label>Foto do Delegado (meio corpo\/tipo passe):<\/label>\n            <input type=\"file\" id=\"delegadoFotoInput\" accept=\"image\/*\">\n            <small>Formatos: JPG, PNG, GIF (m\u00e1x. 2MB). Recomendado: foto de meio corpo, fundo neutro<\/small>\n            ${delegadoData.foto ? '<div style=\"margin-top: 10px;\"><img decoding=\"async\" src=\"' + delegadoData.foto + '\" style=\"max-width: 100px; border-radius: 8px;\"><\/div>' : ''}\n        <\/div>\n        \n        <hr style=\"margin: 25px 0; border-color: #ddd;\">\n        \n        <div class=\"info-box\">\n            <p><strong>\ud83d\udccc Gest\u00e3o de Editais:<\/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        <\/div>\n        \n        <h4 style=\"color: var(--primary-color); margin-top: 20px; margin-bottom: 15px;\">\ud83d\udcdd Edital de Prova de Classifica\u00e7\u00e3o e Selec\u00e7\u00e3o<\/h4>\n        <div class=\"form-group\">\n            <label>T\u00edtulo:<\/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        <\/div>\n        <div class=\"form-group\">\n            <label>Data de T\u00e9rmino:<\/label>\n            <input type=\"date\" id=\"editalDataTermino1\" value=\"${edital1.dataTermino || ''}\">\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:<\/label>\n            <select id=\"editalStatus1\">\n                <option value=\"active\" ${edital1.status === 'active' ? 'selected' : ''}>\u2705 Ativo<\/option>\n                <option value=\"archived\" ${edital1.status === 'archived' ? 'selected' : ''}>\ud83d\udce6 Arquivado<\/option>\n            <\/select>\n        <\/div>\n        \n        <h4 style=\"color: var(--primary-color); margin-top: 25px; margin-bottom: 15px;\">\ud83c\udf96\ufe0f Edital de Incorpora\u00e7\u00e3o<\/h4>\n        <div class=\"form-group\">\n            <label>T\u00edtulo:<\/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        <\/div>\n        <div class=\"form-group\">\n            <label>Data de T\u00e9rmino:<\/label>\n            <input type=\"date\" id=\"editalDataTermino2\" value=\"${edital2.dataTermino || ''}\">\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:<\/label>\n            <select id=\"editalStatus2\">\n                <option value=\"active\" ${edital2.status === 'active' ? 'selected' : ''}>\u2705 Ativo<\/option>\n                <option value=\"archived\" ${edital2.status === 'archived' ? 'selected' : ''}>\ud83d\udce6 Arquivado<\/option>\n            <\/select>\n        <\/div>\n        \n        <div style=\"display: flex; gap: 10px; margin-top: 25px;\">\n            <button class=\"btn btn-primary\" onclick=\"salvarAlteracoes()\">\u2705 Salvar Todas as 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\nasync function salvarAlteracoes() {\n    \/\/ Salvar dados do Delegado\n    delegadoData.nome = document.getElementById('delegadoNomeInput').value;\n    delegadoData.cargo = document.getElementById('delegadoCargoInput').value;\n    delegadoData.mensagem = document.getElementById('delegadoMensagemInput').value;\n    \n    const fotoInput = document.getElementById('delegadoFotoInput');\n    if(fotoInput.files && fotoInput.files[0]) {\n        const file = fotoInput.files[0];\n        if(file.size > 2 * 1024 * 1024) {\n            alert('A foto n\u00e3o pode exceder 2MB!');\n            return;\n        }\n        delegadoData.foto = await convertToBase64(file);\n    }\n    \n    \/\/ Salvar editais\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    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    saveData();\n    renderDelegado();\n    verificarArquivamentoAutomatico();\n    renderAll();\n    fecharAdminPanel();\n    alert('\u2705 Todas as informa\u00e7\u00f5es foram salvas com sucesso!');\n}\n\n\/\/ Verificar arquivamento autom\u00e1tico a cada minuto\nsetInterval(() => {\n    verificarArquivamentoAutomatico();\n    renderAll();\n}, 60000);\n\n\/\/ Inicializar o sistema\nloadData();\n<\/script>\n\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>Centro Provincial de Recrutamento e Mobiliza\u00e7\u00e3o de Gaza Minist\u00e9rio da Defesa Nacional | CPRM &#8211; Gaza Endere\u00e7o: Avenida Samora Machel, N\u00b0311, Cidade de Xai-Xai Contacto: +258 282-25959 Email: Cprm.gaza@mdn.gov.mz Localiza\u00e7\u00e3o: [&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":20,"href":"https:\/\/mdn.gov.mz\/index.php\/wp-json\/wp\/v2\/pages\/2541\/revisions"}],"predecessor-version":[{"id":2612,"href":"https:\/\/mdn.gov.mz\/index.php\/wp-json\/wp\/v2\/pages\/2541\/revisions\/2612"}],"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}]}}