{"id":1049,"date":"2025-10-10T15:46:28","date_gmt":"2025-10-10T15:46:28","guid":{"rendered":"https:\/\/girardiadv.com.br\/inicio\/?p=1049"},"modified":"2025-10-10T15:46:29","modified_gmt":"2025-10-10T15:46:29","slug":"habilitacao","status":"publish","type":"post","link":"https:\/\/girardiadv.com.br\/inicio\/uncategorized\/habilitacao\/","title":{"rendered":""},"content":{"rendered":"<div class=\"flex_column av_one_full  flex_column_div av-zero-column-padding first  avia-builder-el-0  avia-builder-el-no-sibling  \" style='border-radius:0px; '><section class=\"av_textblock_section \"  itemscope=\"itemscope\" itemtype=\"https:\/\/schema.org\/BlogPosting\" itemprop=\"blogPost\" ><div class='avia_textblock  '   itemprop=\"text\" ><p><!doctype html><br \/>\n<html lang=\"pt-BR\"><br \/>\n<head><br \/>\n  <meta charset=\"utf-8\" \/><br \/>\n  <meta name=\"viewport\" content=\"width=device-width,initial-scale=1\" \/><br \/>\n  <title>Envio de Documentos<\/title><\/p>\n<style>\n    :root{\n      --bg:#0f172a;      \/* slate-900 *\/\n      --card:#111827;    \/* gray-900 *\/\n      --muted:#94a3b8;   \/* slate-400 *\/\n      --text:#e5e7eb;    \/* gray-200 *\/\n      --accent:#22c55e;  \/* green-500 *\/\n      --accent-2:#3b82f6;\/* blue-500 *\/\n      --ring:#334155;    \/* slate-700 *\/\n      --danger:#ef4444;  \/* red-500 *\/\n    }\n    *{box-sizing:border-box}\n    body{\n      margin:0; background:linear-gradient(180deg,#0b1023,#0f172a);\n      font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif;\n      color:var(--text); line-height:1.45;\n      padding:32px;\n    }\n    .container{max-width:860px;margin:0 auto}\n    .card{\n      background:rgba(17,24,39,.7);\n      border:1px solid rgba(255,255,255,.06);\n      border-radius:16px; padding:24px; backdrop-filter: blur(6px);\n      box-shadow:0 10px 30px rgba(0,0,0,.35);\n    }\n    h1{font-size:clamp(22px,3vw,28px);margin:0 0 16px}\n    p.lead{color:var(--muted);margin:0 0 24px}\n    fieldset{\n      border:1px dashed var(--ring); border-radius:14px; padding:16px 16px 12px; margin:0 0 16px\n    }\n    legend{\n      padding:0 8px; color:#fff; font-weight:600; letter-spacing:.2px\n    }\n    .row{display:grid; gap:12px}\n    .hint{font-size:12px;color:var(--muted)}\n    .actions{display:flex; gap:10px; align-items:center; margin-top:18px; flex-wrap:wrap}\n    button, .btn{\n      appearance:none; border:none; cursor:pointer;\n      background:var(--accent-2); color:#fff; font-weight:600;\n      padding:10px 14px; border-radius:10px; transition:.2s transform, .2s filter, .2s background;\n    }\n    button:hover{filter:brightness(1.07)}\n    .btn-secondary{background:#1f2937}\n    .btn-danger{background:var(--danger)}\n    .grid{display:grid; gap:14px}\n    @media (min-width:720px){ .grid{grid-template-columns:1fr 1fr} }\n    .drop{\n      display:flex; align-items:center; gap:12px; padding:12px; border:1px solid var(--ring);\n      border-radius:12px; background:#0b1225; outline:2px solid transparent; outline-offset:4px;\n    }\n    .drop:focus-within{outline-color:var(--accent-2)}\n    .drop input[type=file]{width:100%}\n    label strong{display:block; margin-bottom:6px}\n    .optional{font-weight:600; color:var(--muted); font-size:12px}\n    .file-list{margin-top:6px; font-size:12px; color:var(--muted)}\n    .provas-wrap{display:grid; gap:12px}\n    .prova-item{display:grid; gap:6px}\n    .footer-hint{font-size:12px;color:var(--muted);margin-top:12px}\n  <\/style>\n<p><\/head><br \/>\n<body><\/p>\n<div class=\"container\">\n<div class=\"card\">\n<h1>Envio de Documentos<\/h1>\n<p class=\"lead\">Anexe seus arquivos em PDF ou imagem (JPG\/PNG\/HEIC). Campos marcados como \u201copcional\u201d n\u00e3o precisam ser preenchidos.<\/p>\n<form id=\"docs-form\" action=\"#\" method=\"post\" enctype=\"multipart\/form-data\" novalidate>\n<div class=\"grid\">\n          <!-- 1. Documento de Identifica\u00e7\u00e3o --><\/p>\n<fieldset>\n<legend>1. Documento de Identifica\u00e7\u00e3o (RG ou CNH)<\/legend>\n<div class=\"row\">\n              <label><br \/>\n                <strong>Frente e verso do documento<\/strong><\/p>\n<div class=\"drop\">\n                  <input\n                    id=\"doc_id\"\n                    name=\"documento_identificacao\"\n                    type=\"file\"\n                    accept=\"application\/pdf,image\/*\"\n                    aria-describedby=\"doc_id_hint\"\n                    required\n                  \/><\/div>\n<p><\/label><\/p>\n<div id=\"doc_id_hint\" class=\"hint\">Formatos aceitos: PDF ou imagem. Tamanho m\u00e1ximo recomendado: 25&nbsp;MB.<\/div>\n<div class=\"file-list\" data-for=\"documento_identificacao\"><\/div>\n<\/div>\n<\/fieldset>\n<p><!-- 2. Comprovante de resid\u00eancia --><\/p>\n<fieldset>\n<legend>2. Comprovante de Resid\u00eancia<\/legend>\n<div class=\"row\">\n              <label><br \/>\n                <span class=\"optional\">(em nome pr\u00f3prio, dos pais ou c\u00f4njuge)<\/span><\/p>\n<div class=\"drop\">\n                  <input\n                    id=\"comp_res\"\n                    name=\"comprovante_residencia\"\n                    type=\"file\"\n                    accept=\"application\/pdf,image\/*\"\n                    aria-describedby=\"comp_res_hint\"\n                    required\n                  \/><\/div>\n<p><\/label><\/p>\n<div id=\"comp_res_hint\" class=\"hint\">Ex.: conta de luz\/\u00e1gua, fatura de cart\u00e3o, contrato de servi\u00e7o.<\/div>\n<div class=\"file-list\" data-for=\"comprovante_residencia\"><\/div>\n<\/div>\n<\/fieldset>\n<\/div>\n<p><!-- 3. Contrato de aluguel ou Declara\u00e7\u00e3o de endere\u00e7o (opcional) --><\/p>\n<fieldset>\n<legend>3. Contrato de aluguel ou Declara\u00e7\u00e3o de endere\u00e7o <span class=\"optional\">(opcional)<\/span><\/legend>\n<div class=\"row\">\n            <label><br \/>\n              <strong>Arquivo<\/strong><\/p>\n<div class=\"drop\">\n                <input\n                  id=\"contrato_endereco\"\n                  name=\"contrato_ou_declaracao_endereco\"\n                  type=\"file\"\n                  accept=\"application\/pdf,image\/*\"\n                  aria-describedby=\"contrato_hint\"\n                \/><\/div>\n<p><\/label><\/p>\n<div id=\"contrato_hint\" class=\"hint\">Anexe apenas se estiver em im\u00f3vel alugado ou se possuir declara\u00e7\u00e3o assinada.<\/div>\n<div class=\"file-list\" data-for=\"contrato_ou_declaracao_endereco\"><\/div>\n<\/div>\n<\/fieldset>\n<p><!-- 4\/5. Prova 01 \/ Prova 02 --><\/p>\n<fieldset>\n<legend>4\u20135. Provas<\/legend>\n<div class=\"provas-wrap\" id=\"provas-wrap\">\n<div class=\"prova-item\">\n              <label><br \/>\n                <strong>Prova 01<\/strong><\/p>\n<div class=\"drop\">\n                  <input\n                    name=\"prova_01\"\n                    type=\"file\"\n                    accept=\"application\/pdf,image\/*\"\n                    aria-label=\"Prova 01\"\n                  \/><\/div>\n<p><\/label><\/p>\n<div class=\"file-list\" data-for=\"prova_01\"><\/div>\n<\/div>\n<div class=\"prova-item\">\n              <label><br \/>\n                <strong>Prova 02<\/strong><\/p>\n<div class=\"drop\">\n                  <input\n                    name=\"prova_02\"\n                    type=\"file\"\n                    accept=\"application\/pdf,image\/*\"\n                    aria-label=\"Prova 02\"\n                  \/><\/div>\n<p><\/label><\/p>\n<div class=\"file-list\" data-for=\"prova_02\"><\/div>\n<\/div>\n<\/div>\n<div class=\"actions\">\n            <button type=\"button\" id=\"add-prova\" class=\"btn\">+ Provas<\/button><br \/>\n            <button type=\"button\" id=\"rem-prova\" class=\"btn btn-secondary\" title=\"Remover \u00faltima prova adicionada\">Remover \u00faltima<\/button><\/div>\n<\/fieldset>\n<p><!-- Enviar --><\/p>\n<div class=\"actions\">\n          <button type=\"submit\">Enviar documentos<\/button><br \/>\n          <button type=\"reset\" class=\"btn btn-secondary\">Limpar<\/button><\/div>\n<div class=\"footer-hint\">Ao enviar, voc\u00ea concorda com o tratamento dos dados para an\u00e1lise do seu caso.<\/div>\n<\/form>\n<\/div>\n<\/div>\n<p><script>\n    \/\/ --- Helpers de UI (lista de arquivos e acessibilidade) ---\n    function updateFileList(input){\n      const list = document.querySelector('.file-list[data-for=\"'+ input.name +'\"]');\n      if(!list) return;\n      const files = input.files;\n      if(!files || !files.length){ list.textContent = ''; return; }\n      const names = Array.from(files).map(f => `${f.name} (${Math.ceil(f.size\/1024)} KB)`);\n      list.textContent = 'Selecionado: ' + names.join(', ');\n    }<\/p>\n<p>    document.querySelectorAll('input[type=\"file\"]').forEach(inp=>{\n      inp.addEventListener('change', ()=>updateFileList(inp));\n      \/\/ Suporte simples a arrastar e soltar sobre o cont\u00eainer .drop\n      const drop = inp.closest('.drop');\n      if(!drop) return;\n      ['dragenter','dragover'].forEach(ev=>drop.addEventListener(ev, e=>{\n        e.preventDefault(); drop.style.borderColor = 'var(--accent-2)';\n      }));\n      ['dragleave','drop'].forEach(ev=>drop.addEventListener(ev, e=>{\n        e.preventDefault(); drop.style.borderColor = 'var(--ring)';\n      }));\n      drop.addEventListener('drop', e=>{\n        if(e.dataTransfer?.files?.length){\n          \/\/ filtra por tipos aceitos\n          const accepted = ['application\/pdf','image\/jpeg','image\/png','image\/webp','image\/heic','image\/heif','image\/gif','image\/bmp','image\/tiff'];\n          const files = Array.from(e.dataTransfer.files).filter(f=> accepted.includes(f.type) || f.type.startsWith('image\/'));\n          if(files.length){\n            const dt = new DataTransfer();\n            files.forEach(f=>dt.items.add(f));\n            inp.files = dt.files;\n            updateFileList(inp);\n          } else {\n            alert('Formato n\u00e3o suportado. Envie PDF ou imagem.');\n          }\n        }\n      });\n    });<\/p>\n<p>    \/\/ --- Din\u00e2mica de Provas (+ Provas) ---\n    const wrap = document.getElementById('provas-wrap');\n    const addBtn = document.getElementById('add-prova');\n    const remBtn = document.getElementById('rem-prova');<\/p>\n<p>    function nextProvaIndex(){\n      const count = wrap.querySelectorAll('.prova-item').length;\n      return count + 1;\n    }<\/p>\n<p>    addBtn.addEventListener('click', ()=>{\n      const idx = nextProvaIndex();\n      const key = String(idx).padStart(2,'0');\n      const item = document.createElement('div');\n      item.className = 'prova-item';\n      item.innerHTML = `\n        <label>\n          <strong>Prova ${key}<\/strong><\/p>\n<div class=\"drop\">\n            <input name=\"prova_${key}\" type=\"file\" accept=\"application\/pdf,image\/*\" aria-label=\"Prova ${key}\" \/>\n          <\/div>\n<p>        <\/label><\/p>\n<div class=\"file-list\" data-for=\"prova_${key}\"><\/div>\n<p>      `;\n      wrap.appendChild(item);\n      \/\/ ligar eventos do novo input\n      const inp = item.querySelector('input[type=\"file\"]');\n      inp.addEventListener('change', ()=>updateFileList(inp));\n      const drop = item.querySelector('.drop');\n      ['dragenter','dragover'].forEach(ev=>drop.addEventListener(ev, e=>{\n        e.preventDefault(); drop.style.borderColor = 'var(--accent-2)';\n      }));\n      ['dragleave','drop'].forEach(ev=>drop.addEventListener(ev, e=>{\n        e.preventDefault(); drop.style.borderColor = 'var(--ring)';\n      }));\n      drop.addEventListener('drop', e=>{\n        if(e.dataTransfer?.files?.length){\n          const accepted = ['application\/pdf','image\/jpeg','image\/png','image\/webp','image\/heic','image\/heif','image\/gif','image\/bmp','image\/tiff'];\n          const files = Array.from(e.dataTransfer.files).filter(f=> accepted.includes(f.type) || f.type.startsWith('image\/'));\n          if(files.length){\n            const dt = new DataTransfer();\n            files.forEach(f=>dt.items.add(f));\n            inp.files = dt.files;\n            updateFileList(inp);\n          } else {\n            alert('Formato n\u00e3o suportado. Envie PDF ou imagem.');\n          }\n        }\n      });\n      item.scrollIntoView({behavior:'smooth', block:'nearest'});\n    });<\/p>\n<p>    remBtn.addEventListener('click', ()=>{\n      const items = wrap.querySelectorAll('.prova-item');\n      if(items.length > 0){\n        wrap.removeChild(items[items.length - 1]);\n      }\n    });<\/p>\n<p>    \/\/ --- Valida\u00e7\u00e3o simples no submit ---\n    document.getElementById('docs-form').addEventListener('submit', (e)=>{\n      const requiredInputs = ['documento_identificacao','comprovante_residencia']\n        .map(n => document.querySelector(`input[name=\"${n}\"]`));\n      const invalid = requiredInputs.filter(inp => !inp || !inp.files || inp.files.length === 0);\n      if(invalid.length){\n        e.preventDefault();\n        alert('Por favor, anexe o Documento de Identifica\u00e7\u00e3o e o Comprovante de Resid\u00eancia.');\n        invalid[0]?.focus();\n      } else {\n        \/\/ Aqui voc\u00ea pode integrar com o backend. Por enquanto, s\u00f3 mostramos uma mensagem.\n        e.preventDefault();\n        alert('Arquivos prontos para envio! (substitua o \"action\" do formul\u00e1rio pelo endpoint do seu servidor).');\n      }\n    });\n  <\/script><br \/>\n<\/body><br \/>\n<\/html><\/p>\n<\/div><\/section><\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[1],"tags":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/paSEzW-gV","jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/girardiadv.com.br\/inicio\/wp-json\/wp\/v2\/posts\/1049"}],"collection":[{"href":"https:\/\/girardiadv.com.br\/inicio\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/girardiadv.com.br\/inicio\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/girardiadv.com.br\/inicio\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/girardiadv.com.br\/inicio\/wp-json\/wp\/v2\/comments?post=1049"}],"version-history":[{"count":3,"href":"https:\/\/girardiadv.com.br\/inicio\/wp-json\/wp\/v2\/posts\/1049\/revisions"}],"predecessor-version":[{"id":1052,"href":"https:\/\/girardiadv.com.br\/inicio\/wp-json\/wp\/v2\/posts\/1049\/revisions\/1052"}],"wp:attachment":[{"href":"https:\/\/girardiadv.com.br\/inicio\/wp-json\/wp\/v2\/media?parent=1049"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/girardiadv.com.br\/inicio\/wp-json\/wp\/v2\/categories?post=1049"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/girardiadv.com.br\/inicio\/wp-json\/wp\/v2\/tags?post=1049"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}