{"id":22121,"date":"2026-07-30T14:13:49","date_gmt":"2026-07-30T17:13:49","guid":{"rendered":"https:\/\/maisprudentenews.com.br\/index.php\/bate-papo\/"},"modified":"2026-07-30T14:13:49","modified_gmt":"2026-07-30T17:13:49","slug":"bate-papo","status":"publish","type":"page","link":"https:\/\/maisprudentenews.com.br\/index.php\/bate-papo\/","title":{"rendered":"Bate Papo"},"content":{"rendered":"\t\t<div id=\"mpn-bate-papo-root\" class=\"mpn-bp\" data-rest=\"https:\/\/maisprudentenews.com.br\/index.php\/wp-json\/mpn\/v1\" data-nonce=\"12a5c9dc84\">\n\t\t\t<!-- Gate -->\n\t\t\t<div class=\"mpn-bp-gate\" id=\"mpn-bp-gate\">\n\t\t\t\t<div class=\"mpn-bp-gate-card\">\n\t\t\t\t\t<div class=\"mpn-bp-logo\">\n\t\t\t\t\t\t<svg width=\"40\" height=\"40\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t<path d=\"M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2z\" fill=\"#0d6cbf\"\/>\n\t\t\t\t\t\t<\/svg>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<h2 class=\"mpn-bp-title\">Bate Papo MPN<\/h2>\n\t\t\t\t\t<p class=\"mpn-bp-subtitle\">Participe da conversa com leitores do Mais Prudente News<\/p>\n\t\t\t\t\t<form id=\"mpn-bp-join-form\" class=\"mpn-bp-form\" novalidate>\n\t\t\t\t\t\t<label class=\"mpn-bp-label\" for=\"mpn-bp-name\">Seu nome<\/label>\n\t\t\t\t\t\t<input type=\"text\" id=\"mpn-bp-name\" class=\"mpn-bp-input\" placeholder=\"Como deseja aparecer\" maxlength=\"120\" required autocomplete=\"name\">\n\t\t\t\t\t\t<label class=\"mpn-bp-label\" for=\"mpn-bp-email\">Seu e-mail<\/label>\n\t\t\t\t\t\t<input type=\"email\" id=\"mpn-bp-email\" class=\"mpn-bp-input\" placeholder=\"seu@email.com\" maxlength=\"190\" required autocomplete=\"email\">\n\t\t\t\t\t\t<p class=\"mpn-bp-error\" id=\"mpn-bp-gate-error\" hidden><\/p>\n\t\t\t\t\t\t<button type=\"submit\" class=\"mpn-bp-btn mpn-bp-btn-primary\" id=\"mpn-bp-join-btn\">Entrar no chat<\/button>\n\t\t\t\t\t<\/form>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\n\t\t\t<!-- Chat room -->\n\t\t\t<div class=\"mpn-bp-room\" id=\"mpn-bp-room\" hidden>\n\t\t\t\t<header class=\"mpn-bp-header\">\n\t\t\t\t\t<div class=\"mpn-bp-header-info\">\n\t\t\t\t\t\t<span class=\"mpn-bp-header-dot\"><\/span>\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<strong class=\"mpn-bp-header-title\">Bate Papo ao vivo<\/strong>\n\t\t\t\t\t\t\t<span class=\"mpn-bp-header-user\" id=\"mpn-bp-header-user\"><\/span>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<button type=\"button\" class=\"mpn-bp-btn mpn-bp-btn-ghost\" id=\"mpn-bp-leave-btn\" title=\"Sair\">Sair<\/button>\n\t\t\t\t<\/header>\n\n\t\t\t\t<div class=\"mpn-bp-messages\" id=\"mpn-bp-messages\" role=\"log\" aria-live=\"polite\" aria-label=\"Mensagens do chat\"><\/div>\n\n\t\t\t\t<div class=\"mpn-bp-composer\">\n\t\t\t\t\t<div class=\"mpn-bp-emoji-panel\" id=\"mpn-bp-emoji-panel\" hidden><\/div>\n\n\t\t\t\t\t<div class=\"mpn-bp-toolbar\">\n\t\t\t\t\t\t<button type=\"button\" class=\"mpn-bp-icon-btn\" id=\"mpn-bp-emoji-btn\" title=\"Emojis\" aria-label=\"Emojis\">\n\t\t\t\t\t\t\t<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-4-8c.79 0 1.5-.71 1.5-1.5S8.79 9 8 9s-1.5.71-1.5 1.5S7.21 12 8 12zm8 0c.79 0 1.5-.71 1.5-1.5S16.79 9 16 9s-1.5.71-1.5 1.5.71 1.5 1.5 1.5zm-4 5.5c2.33 0 4.32-1.45 5.12-3.5H6.88c.8 2.05 2.79 3.5 5.12 3.5z\"\/><\/svg>\n\t\t\t\t\t\t<\/button>\n\t\t\t\t\t\t<button type=\"button\" class=\"mpn-bp-icon-btn\" id=\"mpn-bp-image-btn\" title=\"Enviar imagem\" aria-label=\"Enviar imagem\">\n\t\t\t\t\t\t\t<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z\"\/><\/svg>\n\t\t\t\t\t\t<\/button>\n\t\t\t\t\t\t<input type=\"file\" id=\"mpn-bp-image-input\" accept=\"image\/jpeg,image\/png,image\/gif,image\/webp\" hidden>\n\t\t\t\t\t\t<button type=\"button\" class=\"mpn-bp-icon-btn\" id=\"mpn-bp-audio-btn\" title=\"Gravar \u00e1udio\" aria-label=\"Gravar \u00e1udio\">\n\t\t\t\t\t\t\t<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M12 14c1.66 0 3-1.34 3-3V5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3zm5.91-3c-.49 0-.9.36-.98.85C16.52 14.2 14.47 16 12 16s-4.52-1.8-4.93-4.15c-.08-.49-.49-.85-.98-.85-.61 0-1.09.54-1 1.14.49 3 2.89 5.35 5.91 5.78V20c0 .55.45 1 1 1s1-.45 1-1v-2.08c3.02-.43 5.42-2.78 5.91-5.78.1-.6-.39-1.14-1-1.14z\"\/><\/svg>\n\t\t\t\t\t\t<\/button>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"mpn-bp-recording\" id=\"mpn-bp-recording\" hidden>\n\t\t\t\t\t\t<span class=\"mpn-bp-rec-dot\"><\/span>\n\t\t\t\t\t\t<span>Gravando\u2026 <span id=\"mpn-bp-rec-time\">0:00<\/span><\/span>\n\t\t\t\t\t\t<button type=\"button\" class=\"mpn-bp-btn mpn-bp-btn-danger mpn-bp-btn-sm\" id=\"mpn-bp-rec-stop\">Parar e enviar<\/button>\n\t\t\t\t\t\t<button type=\"button\" class=\"mpn-bp-btn mpn-bp-btn-ghost mpn-bp-btn-sm\" id=\"mpn-bp-rec-cancel\">Cancelar<\/button>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"mpn-bp-input-row\">\n\t\t\t\t\t\t<textarea id=\"mpn-bp-input\" class=\"mpn-bp-textarea\" placeholder=\"Digite sua mensagem\u2026\" rows=\"1\" maxlength=\"2000\"><\/textarea>\n\t\t\t\t\t\t<button type=\"button\" class=\"mpn-bp-btn mpn-bp-btn-primary mpn-bp-send\" id=\"mpn-bp-send-btn\" title=\"Enviar\" aria-label=\"Enviar\">\n\t\t\t\t\t\t\t<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M2.01 21L23 12 2.01 3 2 10l15 2-15 2z\"\/><\/svg>\n\t\t\t\t\t\t<\/button>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<p class=\"mpn-bp-error\" id=\"mpn-bp-room-error\" hidden><\/p>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<style>.mpn-bp {\n\t--mpn-blue: #0d6cbf;\n\t--mpn-blue-dark: #0a5499;\n\t--mpn-blue-light: #e8f2fb;\n\t--mpn-bg: #f4f7fb;\n\t--mpn-white: #ffffff;\n\t--mpn-text: #1a2b3c;\n\t--mpn-muted: #6b7c8d;\n\t--mpn-border: #d0dde8;\n\t--mpn-radius: 12px;\n\t--mpn-shadow: 0 4px 24px rgba(13, 108, 191, 0.12);\n\tfont-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, sans-serif;\n\tcolor: var(--mpn-text);\n\tmax-width: 720px;\n\tmargin: 0 auto;\n}\n\n.mpn-bp * { box-sizing: border-box; }\n\n\/* Reset tema Wesper (button global quebra \u00edcones e layout) *\/\n#mpn-bate-papo-root button,\n#mpn-bate-papo-root input[type=\"submit\"] {\n\tdisplay: inline-flex !important;\n\talign-items: center !important;\n\tjustify-content: center !important;\n\twidth: auto !important;\n\theight: auto !important;\n\tmin-height: unset !important;\n\tpadding: 0 !important;\n\tmargin: 0 !important;\n\tborder: none !important;\n\tbackground-image: none !important;\n\ttext-transform: none !important;\n\tletter-spacing: normal !important;\n\tfont-family: inherit !important;\n\tbox-shadow: none !important;\n\tline-height: 1 !important;\n\t-o-transition: none !important;\n\t-ms-transition: none !important;\n\t-moz-transition: none !important;\n\ttransition: background 0.2s, color 0.2s, transform 0.1s, opacity 0.2s !important;\n}\n\n#mpn-bate-papo-root .mpn-bp-btn {\n\tpadding: 0.65rem 1.25rem !important;\n\tborder-radius: 8px !important;\n\tfont-size: 0.9rem !important;\n\tfont-weight: 600 !important;\n\tcursor: pointer !important;\n}\n\n#mpn-bate-papo-root .mpn-bp-btn-primary {\n\tbackground: var(--mpn-blue) !important;\n\tcolor: var(--mpn-white) !important;\n\twidth: 100% !important;\n}\n\n#mpn-bate-papo-root .mpn-bp-btn-ghost {\n\tbackground: transparent !important;\n\tcolor: var(--mpn-muted) !important;\n\tborder: 1px solid var(--mpn-border) !important;\n\tpadding: 0.4rem 0.85rem !important;\n\tfont-size: 0.8rem !important;\n}\n\n#mpn-bate-papo-root .mpn-bp-btn-danger {\n\tbackground: #e53935 !important;\n\tcolor: #fff !important;\n}\n\n#mpn-bate-papo-root .mpn-bp-btn-sm {\n\tpadding: 0.35rem 0.75rem !important;\n\tfont-size: 0.78rem !important;\n}\n\n#mpn-bate-papo-root .mpn-bp-send {\n\twidth: 44px !important;\n\theight: 44px !important;\n\tpadding: 0 !important;\n\tborder-radius: 10px !important;\n\tbackground: var(--mpn-blue) !important;\n\tcolor: #fff !important;\n}\n\n#mpn-bate-papo-root .mpn-bp-icon-btn {\n\twidth: 38px !important;\n\theight: 38px !important;\n\tpadding: 0 !important;\n\tborder: none !important;\n\tborder-radius: 8px !important;\n\tbackground: var(--mpn-blue-light) !important;\n\tcolor: var(--mpn-blue) !important;\n\tcursor: pointer !important;\n\tflex-shrink: 0 !important;\n}\n\n#mpn-bate-papo-root .mpn-bp-icon-btn:hover {\n\tbackground: #cce0f5 !important;\n\tcolor: var(--mpn-blue-dark) !important;\n}\n\n#mpn-bate-papo-root .mpn-bp-icon-btn.recording {\n\tbackground: #ffcdd2 !important;\n\tcolor: #c62828 !important;\n}\n\n#mpn-bate-papo-root .mpn-bp-icon-btn svg {\n\twidth: 20px !important;\n\theight: 20px !important;\n\tfill: currentColor !important;\n\tdisplay: block !important;\n\tpointer-events: none !important;\n}\n\n\/* Gate *\/\n.mpn-bp-gate {\n\tdisplay: flex;\n\tjustify-content: center;\n\tpadding: 2rem 1rem;\n\tbackground: linear-gradient(135deg, var(--mpn-blue-light) 0%, var(--mpn-bg) 100%);\n\tborder-radius: var(--mpn-radius);\n\tborder: 1px solid var(--mpn-border);\n}\n\n.mpn-bp-gate-card {\n\tbackground: var(--mpn-white);\n\tborder-radius: var(--mpn-radius);\n\tpadding: 2rem;\n\twidth: 100%;\n\tmax-width: 420px;\n\tbox-shadow: var(--mpn-shadow);\n\ttext-align: center;\n}\n\n.mpn-bp-logo { margin-bottom: 0.75rem; }\n\n.mpn-bp-title {\n\tmargin: 0 0 0.25rem;\n\tfont-size: 1.5rem;\n\tcolor: var(--mpn-blue);\n\tfont-weight: 700;\n}\n\n.mpn-bp-subtitle {\n\tmargin: 0 0 1.5rem;\n\tcolor: var(--mpn-muted);\n\tfont-size: 0.9rem;\n\tline-height: 1.5;\n}\n\n.mpn-bp-form { text-align: left; }\n\n.mpn-bp-label {\n\tdisplay: block;\n\tfont-size: 0.8rem;\n\tfont-weight: 600;\n\tcolor: var(--mpn-muted);\n\tmargin-bottom: 0.35rem;\n}\n\n.mpn-bp-input,\n.mpn-bp-textarea {\n\twidth: 100%;\n\tpadding: 0.65rem 0.85rem;\n\tborder: 1.5px solid var(--mpn-border);\n\tborder-radius: 8px;\n\tfont-size: 0.95rem;\n\tfont-family: inherit;\n\tcolor: var(--mpn-text);\n\tbackground: var(--mpn-white);\n\ttransition: border-color 0.2s, box-shadow 0.2s;\n\toutline: none;\n\tmargin-bottom: 1rem;\n}\n\n.mpn-bp-input:focus,\n.mpn-bp-textarea:focus {\n\tborder-color: var(--mpn-blue);\n\tbox-shadow: 0 0 0 3px rgba(13, 108, 191, 0.15);\n}\n\n.mpn-bp-btn {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\tgap: 0.4rem;\n\tpadding: 0.65rem 1.25rem;\n\tborder: none;\n\tborder-radius: 8px;\n\tfont-size: 0.9rem;\n\tfont-weight: 600;\n\tfont-family: inherit;\n\tcursor: pointer;\n\ttransition: background 0.2s, transform 0.1s, opacity 0.2s;\n}\n\n.mpn-bp-btn:active { transform: scale(0.97); }\n.mpn-bp-btn:disabled { opacity: 0.55; cursor: not-allowed; }\n\n.mpn-bp-btn-primary {\n\tbackground: var(--mpn-blue);\n\tcolor: var(--mpn-white);\n\twidth: 100%;\n}\n.mpn-bp-btn-primary:hover:not(:disabled) { background: var(--mpn-blue-dark); }\n\n.mpn-bp-btn-ghost {\n\tbackground: transparent;\n\tcolor: var(--mpn-muted);\n\tborder: 1px solid var(--mpn-border);\n\tpadding: 0.4rem 0.85rem;\n\tfont-size: 0.8rem;\n}\n.mpn-bp-btn-ghost:hover { background: var(--mpn-blue-light); color: var(--mpn-blue); }\n\n.mpn-bp-btn-danger { background: #e53935; color: #fff; }\n.mpn-bp-btn-danger:hover { background: #c62828; }\n.mpn-bp-btn-sm { padding: 0.35rem 0.75rem; font-size: 0.78rem; }\n\n.mpn-bp-error {\n\tcolor: #c62828;\n\tfont-size: 0.82rem;\n\tmargin: 0 0 0.75rem;\n}\n\n\/* Room *\/\n.mpn-bp-room {\n\tdisplay: flex;\n\tflex-direction: column;\n\theight: 560px;\n\tborder: 1px solid var(--mpn-border);\n\tborder-radius: var(--mpn-radius);\n\toverflow: hidden;\n\tbox-shadow: var(--mpn-shadow);\n\tbackground: var(--mpn-white);\n}\n\n.mpn-bp-header {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tpadding: 0.85rem 1rem;\n\tbackground: var(--mpn-blue);\n\tcolor: var(--mpn-white);\n\tflex-shrink: 0;\n}\n\n.mpn-bp-header-info {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 0.65rem;\n}\n\n.mpn-bp-header-dot {\n\twidth: 10px;\n\theight: 10px;\n\tborder-radius: 50%;\n\tbackground: #4caf50;\n\tbox-shadow: 0 0 0 2px rgba(255,255,255,0.3);\n\tanimation: mpn-pulse 2s infinite;\n}\n\n@keyframes mpn-pulse {\n\t0%, 100% { opacity: 1; }\n\t50% { opacity: 0.5; }\n}\n\n.mpn-bp-header-title {\n\tdisplay: block;\n\tfont-size: 0.95rem;\n}\n\n.mpn-bp-header-user {\n\tdisplay: block;\n\tfont-size: 0.78rem;\n\topacity: 0.85;\n}\n\n.mpn-bp-messages {\n\tflex: 1;\n\toverflow-y: auto;\n\tpadding: 1rem;\n\tbackground: var(--mpn-bg);\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 0.65rem;\n\tscroll-behavior: smooth;\n}\n\n.mpn-bp-bubble-wrap {\n\tdisplay: flex;\n\tflex-direction: column;\n\tmax-width: 78%;\n\tanimation: mpn-fade-in 0.25s ease;\n}\n\n@keyframes mpn-fade-in {\n\tfrom { opacity: 0; transform: translateY(6px); }\n\tto   { opacity: 1; transform: translateY(0); }\n}\n\n.mpn-bp-bubble-wrap.mine {\n\talign-self: flex-end;\n\talign-items: flex-end;\n}\n\n.mpn-bp-bubble-wrap.theirs {\n\talign-self: flex-start;\n\talign-items: flex-start;\n}\n\n.mpn-bp-meta {\n\tfont-size: 0.72rem;\n\tcolor: var(--mpn-muted);\n\tmargin-bottom: 0.2rem;\n\tpadding: 0 0.25rem;\n}\n\n.mpn-bp-bubble {\n\tpadding: 0.6rem 0.85rem;\n\tborder-radius: 14px;\n\tfont-size: 0.92rem;\n\tline-height: 1.45;\n\tword-break: break-word;\n}\n\n.mpn-bp-bubble-wrap.mine .mpn-bp-bubble {\n\tbackground: var(--mpn-blue);\n\tcolor: var(--mpn-white);\n\tborder-bottom-right-radius: 4px;\n}\n\n.mpn-bp-bubble-wrap.theirs .mpn-bp-bubble {\n\tbackground: var(--mpn-white);\n\tcolor: var(--mpn-text);\n\tborder: 1px solid var(--mpn-border);\n\tborder-bottom-left-radius: 4px;\n}\n\n.mpn-bp-bubble img {\n\tmax-width: 240px;\n\tmax-height: 200px;\n\tborder-radius: 8px;\n\tdisplay: block;\n\tcursor: pointer;\n}\n\n.mpn-bp-bubble audio {\n\twidth: 220px;\n\tmax-width: 100%;\n\theight: 36px;\n\tmargin-top: 0.25rem;\n}\n\n.mpn-bp-composer {\n\tborder-top: 1px solid var(--mpn-border);\n\tbackground: var(--mpn-white);\n\tpadding: 0.6rem 0.75rem 0.75rem;\n\tflex-shrink: 0;\n\tposition: relative;\n}\n\n.mpn-bp-toolbar {\n\tdisplay: flex;\n\tgap: 0.25rem;\n\tmargin-bottom: 0.4rem;\n}\n\n.mpn-bp-icon-btn {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 36px;\n\theight: 36px;\n\tborder: none;\n\tbackground: var(--mpn-blue-light);\n\tborder-radius: 8px;\n\tfont-size: 1.1rem;\n\tcursor: pointer;\n\ttransition: background 0.2s;\n}\n.mpn-bp-icon-btn:hover { background: #cce0f5; }\n.mpn-bp-icon-btn.recording { background: #ffcdd2; animation: mpn-pulse 1s infinite; }\n\n.mpn-bp-emoji-panel {\n\tposition: absolute;\n\tbottom: calc(100% - 4px);\n\tleft: 0.75rem;\n\tright: 0.75rem;\n\tbackground: var(--mpn-white);\n\tborder: 1px solid var(--mpn-border);\n\tborder-radius: var(--mpn-radius);\n\tbox-shadow: var(--mpn-shadow);\n\tpadding: 0.6rem;\n\tdisplay: grid;\n\tgrid-template-columns: repeat(8, 1fr);\n\tgap: 0.2rem;\n\tmax-height: 180px;\n\toverflow-y: auto;\n\tz-index: 10;\n}\n\n.mpn-bp-emoji-btn {\n\tborder: none;\n\tbackground: transparent;\n\tfont-size: 1.3rem;\n\tcursor: pointer;\n\tborder-radius: 6px;\n\tpadding: 0.2rem;\n\tline-height: 1;\n\ttransition: background 0.15s;\n}\n.mpn-bp-emoji-btn:hover { background: var(--mpn-blue-light); }\n\n.mpn-bp-input-row {\n\tdisplay: flex;\n\tgap: 0.5rem;\n\talign-items: flex-end;\n}\n\n.mpn-bp-textarea {\n\tflex: 1;\n\tresize: none;\n\tmargin-bottom: 0;\n\tmin-height: 42px;\n\tmax-height: 120px;\n\tline-height: 1.4;\n}\n\n.mpn-bp-send {\n\twidth: 44px;\n\theight: 44px;\n\tpadding: 0;\n\tborder-radius: 10px;\n\tflex-shrink: 0;\n}\n\n.mpn-bp-recording {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 0.5rem;\n\tpadding: 0.4rem 0.5rem;\n\tmargin-bottom: 0.4rem;\n\tbackground: #fff3e0;\n\tborder-radius: 8px;\n\tfont-size: 0.82rem;\n\tcolor: #e65100;\n}\n\n.mpn-bp-rec-dot {\n\twidth: 8px;\n\theight: 8px;\n\tborder-radius: 50%;\n\tbackground: #e53935;\n\tanimation: mpn-pulse 0.8s infinite;\n}\n\n@media (max-width: 480px) {\n\t.mpn-bp-room { height: 480px; }\n\t.mpn-bp-bubble-wrap { max-width: 88%; }\n\t.mpn-bp-emoji-panel { grid-template-columns: repeat(6, 1fr); }\n}<\/style>\n\t\t<script>(function () {\n\t'use strict';\n\n\tvar STORAGE_KEY = 'mpn_bate_papo_session';\n\tvar POLL_MS = 2500;\n\n\tvar root = document.getElementById('mpn-bate-papo-root');\n\tif (!root) return;\n\n\tvar restBase = root.dataset.rest.replace(\/\\\/$\/, '');\n\tvar nonce = root.dataset.nonce;\n\n\tvar gate = document.getElementById('mpn-bp-gate');\n\tvar room = document.getElementById('mpn-bp-room');\n\tvar joinForm = document.getElementById('mpn-bp-join-form');\n\tvar joinBtn = document.getElementById('mpn-bp-join-btn');\n\tvar gateError = document.getElementById('mpn-bp-gate-error');\n\tvar roomError = document.getElementById('mpn-bp-room-error');\n\tvar messagesEl = document.getElementById('mpn-bp-messages');\n\tvar inputEl = document.getElementById('mpn-bp-input');\n\tvar sendBtn = document.getElementById('mpn-bp-send-btn');\n\tvar leaveBtn = document.getElementById('mpn-bp-leave-btn');\n\tvar headerUser = document.getElementById('mpn-bp-header-user');\n\tvar emojiBtn = document.getElementById('mpn-bp-emoji-btn');\n\tvar emojiPanel = document.getElementById('mpn-bp-emoji-panel');\n\tvar imageBtn = document.getElementById('mpn-bp-image-btn');\n\tvar imageInput = document.getElementById('mpn-bp-image-input');\n\tvar audioBtn = document.getElementById('mpn-bp-audio-btn');\n\tvar recordingBar = document.getElementById('mpn-bp-recording');\n\tvar recTimeEl = document.getElementById('mpn-bp-rec-time');\n\tvar recStopBtn = document.getElementById('mpn-bp-rec-stop');\n\tvar recCancelBtn = document.getElementById('mpn-bp-rec-cancel');\n\n\tvar session = null;\n\tvar lastMsgId = 0;\n\tvar pollTimer = null;\n\tvar mediaRecorder = null;\n\tvar audioChunks = [];\n\tvar recInterval = null;\n\tvar recSeconds = 0;\n\n\tvar EMOJIS = [\n\t\t'\ud83d\ude00','\ud83d\ude02','\ud83d\ude0d','\ud83e\udd70','\ud83d\ude0a','\ud83d\ude0e','\ud83e\udd14','\ud83d\ude22',\n\t\t'\ud83d\ude21','\ud83d\udc4d','\ud83d\udc4f','\ud83d\ude4f','\u2764\ufe0f','\ud83d\udd25','\u2b50','\ud83c\udf89',\n\t\t'\ud83d\udc4b','\ud83d\udcac','\ud83d\udcf0','\ud83c\udfc6','\u26bd','\ud83c\udfb5','\u2600\ufe0f','\ud83c\udf27\ufe0f',\n\t\t'\ud83c\udde7\ud83c\uddf7','\u2705','\u274c','\ud83d\udca1','\ud83e\udd1d','\ud83d\ude05','\ud83e\udd73','\ud83d\udc40'\n\t];\n\n\tfunction loadSession() {\n\t\ttry {\n\t\t\tvar raw = localStorage.getItem(STORAGE_KEY);\n\t\t\tif (!raw) return null;\n\t\t\treturn JSON.parse(raw);\n\t\t} catch (e) {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tfunction saveSession(data) {\n\t\tlocalStorage.setItem(STORAGE_KEY, JSON.stringify(data));\n\t}\n\n\tfunction clearSession() {\n\t\tlocalStorage.removeItem(STORAGE_KEY);\n\t}\n\n\tfunction showError(el, msg) {\n\t\tel.textContent = msg;\n\t\tel.hidden = !msg;\n\t}\n\n\tfunction apiFetch(path, options) {\n\t\toptions = options || {};\n\t\tvar headers = options.headers || {};\n\t\tif (!(options.body instanceof FormData)) {\n\t\t\theaders['Content-Type'] = 'application\/json';\n\t\t}\n\t\theaders['X-WP-Nonce'] = nonce;\n\t\treturn fetch(restBase + path, {\n\t\t\tmethod: options.method || 'GET',\n\t\t\theaders: headers,\n\t\t\tbody: options.body || null,\n\t\t\tcredentials: 'same-origin'\n\t\t}).then(function (res) {\n\t\t\treturn res.json().then(function (data) {\n\t\t\t\tif (!res.ok) {\n\t\t\t\t\tvar err = new Error(data.message || 'Erro na requisi\u00e7\u00e3o');\n\t\t\t\t\terr.data = data;\n\t\t\t\t\terr.status = res.status;\n\t\t\t\t\tthrow err;\n\t\t\t\t}\n\t\t\t\treturn data;\n\t\t\t});\n\t\t});\n\t}\n\n\tfunction enterRoom(data) {\n\t\tsession = data;\n\t\tsaveSession(data);\n\t\tgate.hidden = true;\n\t\troom.hidden = false;\n\t\theaderUser.textContent = 'Conectado como ' + data.display_name;\n\t\tlastMsgId = 0;\n\t\tmessagesEl.innerHTML = '';\n\t\tstartPolling();\n\t\tfetchMessages(true);\n\t}\n\n\tfunction leaveRoom() {\n\t\tstopPolling();\n\t\tstopRecording(true);\n\t\tsession = null;\n\t\tclearSession();\n\t\troom.hidden = true;\n\t\tgate.hidden = false;\n\t\tmessagesEl.innerHTML = '';\n\t\tshowError(roomError, '');\n\t}\n\n\tfunction startPolling() {\n\t\tstopPolling();\n\t\tpollTimer = setInterval(function () {\n\t\t\tfetchMessages(false);\n\t\t}, POLL_MS);\n\t}\n\n\tfunction stopPolling() {\n\t\tif (pollTimer) {\n\t\t\tclearInterval(pollTimer);\n\t\t\tpollTimer = null;\n\t\t}\n\t}\n\n\tfunction fetchMessages(scroll) {\n\t\tif (!session) return;\n\t\tapiFetch('\/chat\/messages?token=' + encodeURIComponent(session.token) + '&after=' + lastMsgId)\n\t\t\t.then(function (data) {\n\t\t\t\tif (data.messages && data.messages.length) {\n\t\t\t\t\tdata.messages.forEach(function (msg) {\n\t\t\t\t\t\tappendMessage(msg);\n\t\t\t\t\t\tif (msg.id > lastMsgId) lastMsgId = msg.id;\n\t\t\t\t\t});\n\t\t\t\t\tif (scroll) scrollToBottom();\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(function (err) {\n\t\t\t\tif (err.status === 403) leaveRoom();\n\t\t\t});\n\t}\n\n\tfunction scrollToBottom() {\n\t\tmessagesEl.scrollTop = messagesEl.scrollHeight;\n\t}\n\n\tfunction escapeHtml(str) {\n\t\tvar d = document.createElement('div');\n\t\td.textContent = str;\n\t\treturn d.innerHTML;\n\t}\n\n\tfunction appendMessage(msg) {\n\t\tif (document.querySelector('[data-msg-id=\"' + msg.id + '\"]')) return;\n\n\t\tvar wrap = document.createElement('div');\n\t\twrap.className = 'mpn-bp-bubble-wrap ' + (msg.is_mine ? 'mine' : 'theirs');\n\t\twrap.setAttribute('data-msg-id', msg.id);\n\n\t\tvar meta = document.createElement('div');\n\t\tmeta.className = 'mpn-bp-meta';\n\t\tmeta.textContent = msg.display_name + ' \u00b7 ' + (msg.time_label || '');\n\n\t\tvar bubble = document.createElement('div');\n\t\tbubble.className = 'mpn-bp-bubble';\n\n\t\tif (msg.type === 'image' && msg.attachment_url) {\n\t\t\tvar img = document.createElement('img');\n\t\t\timg.src = msg.attachment_url;\n\t\t\timg.alt = 'Imagem enviada';\n\t\t\timg.loading = 'lazy';\n\t\t\timg.addEventListener('click', function () { window.open(msg.attachment_url, '_blank'); });\n\t\t\tbubble.appendChild(img);\n\t\t} else if (msg.type === 'audio' && msg.attachment_url) {\n\t\t\tvar audio = document.createElement('audio');\n\t\t\taudio.controls = true;\n\t\t\taudio.src = msg.attachment_url;\n\t\t\taudio.preload = 'metadata';\n\t\t\tbubble.appendChild(audio);\n\t\t} else {\n\t\t\tbubble.innerHTML = escapeHtml(msg.content);\n\t\t}\n\n\t\twrap.appendChild(meta);\n\t\twrap.appendChild(bubble);\n\t\tmessagesEl.appendChild(wrap);\n\t\tscrollToBottom();\n\t}\n\n\tfunction sendText() {\n\t\tvar text = inputEl.value.trim();\n\t\tif (!text || !session) return;\n\t\tsendBtn.disabled = true;\n\t\tshowError(roomError, '');\n\n\t\tapiFetch('\/chat\/messages', {\n\t\t\tmethod: 'POST',\n\t\t\tbody: JSON.stringify({ token: session.token, content: text, type: 'text' })\n\t\t})\n\t\t\t.then(function (data) {\n\t\t\t\tinputEl.value = '';\n\t\t\t\tinputEl.style.height = 'auto';\n\t\t\t\tif (data.message) {\n\t\t\t\t\tappendMessage(data.message);\n\t\t\t\t\tif (data.message.id > lastMsgId) lastMsgId = data.message.id;\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(function (err) {\n\t\t\t\tshowError(roomError, err.message || 'Erro ao enviar.');\n\t\t\t})\n\t\t\t.finally(function () {\n\t\t\t\tsendBtn.disabled = false;\n\t\t\t\tinputEl.focus();\n\t\t\t});\n\t}\n\n\tfunction uploadFile(file, type) {\n\t\tif (!session || !file) return;\n\t\tshowError(roomError, '');\n\n\t\tvar fd = new FormData();\n\t\tfd.append('file', file);\n\t\tfd.append('token', session.token);\n\t\tfd.append('type', type);\n\n\t\treturn apiFetch('\/chat\/upload', { method: 'POST', body: fd })\n\t\t\t.then(function (data) {\n\t\t\t\tif (data.message) {\n\t\t\t\t\tappendMessage(data.message);\n\t\t\t\t\tif (data.message.id > lastMsgId) lastMsgId = data.message.id;\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(function (err) {\n\t\t\t\tshowError(roomError, err.message || 'Erro no upload.');\n\t\t\t});\n\t}\n\n\t\/* Emoji panel *\/\n\tfunction buildEmojiPanel() {\n\t\tEMOJIS.forEach(function (em) {\n\t\t\tvar btn = document.createElement('button');\n\t\t\tbtn.type = 'button';\n\t\t\tbtn.className = 'mpn-bp-emoji-btn';\n\t\t\tbtn.textContent = em;\n\t\t\tbtn.addEventListener('click', function () {\n\t\t\t\tinputEl.value += em;\n\t\t\t\tinputEl.focus();\n\t\t\t\temojiPanel.hidden = true;\n\t\t\t\tautoResizeTextarea();\n\t\t\t});\n\t\t\temojiPanel.appendChild(btn);\n\t\t});\n\t}\n\n\tfunction autoResizeTextarea() {\n\t\tinputEl.style.height = 'auto';\n\t\tinputEl.style.height = Math.min(inputEl.scrollHeight, 120) + 'px';\n\t}\n\n\t\/* Audio recording *\/\n\tfunction startRecording() {\n\t\tif (!navigator.mediaDevices || !navigator.mediaDevices.getUserMedia) {\n\t\t\tshowError(roomError, 'Seu navegador n\u00e3o suporta grava\u00e7\u00e3o de \u00e1udio.');\n\t\t\treturn;\n\t\t}\n\n\t\tnavigator.mediaDevices.getUserMedia({ audio: true })\n\t\t\t.then(function (stream) {\n\t\t\t\taudioChunks = [];\n\t\t\t\tvar mimeType = MediaRecorder.isTypeSupported('audio\/webm;codecs=opus')\n\t\t\t\t\t? 'audio\/webm;codecs=opus'\n\t\t\t\t\t: 'audio\/webm';\n\t\t\t\tmediaRecorder = new MediaRecorder(stream, { mimeType: mimeType });\n\n\t\t\t\tmediaRecorder.ondataavailable = function (e) {\n\t\t\t\t\tif (e.data.size > 0) audioChunks.push(e.data);\n\t\t\t\t};\n\n\t\t\t\tmediaRecorder.onstop = function () {\n\t\t\t\t\tstream.getTracks().forEach(function (t) { t.stop(); });\n\t\t\t\t\tif (audioChunks.length && !mediaRecorder._cancelled) {\n\t\t\t\t\t\tvar blob = new Blob(audioChunks, { type: mimeType });\n\t\t\t\t\t\tvar ext = mimeType.indexOf('webm') >= 0 ? 'webm' : 'ogg';\n\t\t\t\t\t\tvar file = new File([blob], 'audio-' + Date.now() + '.' + ext, { type: blob.type });\n\t\t\t\t\t\tuploadFile(file, 'audio');\n\t\t\t\t\t}\n\t\t\t\t\tmediaRecorder = null;\n\t\t\t\t\taudioChunks = [];\n\t\t\t\t};\n\n\t\t\t\tmediaRecorder._cancelled = false;\n\t\t\t\tmediaRecorder.start();\n\t\t\t\trecSeconds = 0;\n\t\t\t\trecTimeEl.textContent = '0:00';\n\t\t\t\trecordingBar.hidden = false;\n\t\t\t\taudioBtn.classList.add('recording');\n\n\t\t\t\trecInterval = setInterval(function () {\n\t\t\t\t\trecSeconds++;\n\t\t\t\t\tvar m = Math.floor(recSeconds \/ 60);\n\t\t\t\t\tvar s = recSeconds % 60;\n\t\t\t\t\trecTimeEl.textContent = m + ':' + String(s).padStart(2, '0');\n\t\t\t\t}, 1000);\n\t\t\t})\n\t\t\t.catch(function () {\n\t\t\t\tshowError(roomError, 'Permiss\u00e3o de microfone negada.');\n\t\t\t});\n\t}\n\n\tfunction stopRecording(cancel) {\n\t\tif (recInterval) {\n\t\t\tclearInterval(recInterval);\n\t\t\trecInterval = null;\n\t\t}\n\t\trecordingBar.hidden = true;\n\t\taudioBtn.classList.remove('recording');\n\n\t\tif (mediaRecorder && mediaRecorder.state !== 'inactive') {\n\t\t\tmediaRecorder._cancelled = !!cancel;\n\t\t\tmediaRecorder.stop();\n\t\t}\n\t}\n\n\t\/* Events *\/\n\tjoinForm.addEventListener('submit', function (e) {\n\t\te.preventDefault();\n\t\tshowError(gateError, '');\n\n\t\tvar name = document.getElementById('mpn-bp-name').value.trim();\n\t\tvar email = document.getElementById('mpn-bp-email').value.trim();\n\n\t\tif (name.length < 2) {\n\t\t\tshowError(gateError, 'Informe seu nome.');\n\t\t\treturn;\n\t\t}\n\t\tif (!email || email.indexOf('@') < 1) {\n\t\t\tshowError(gateError, 'Informe um e-mail v\u00e1lido.');\n\t\t\treturn;\n\t\t}\n\n\t\tjoinBtn.disabled = true;\n\t\tapiFetch('\/chat\/join', {\n\t\t\tmethod: 'POST',\n\t\t\tbody: JSON.stringify({ name: name, email: email })\n\t\t})\n\t\t\t.then(function (data) {\n\t\t\t\tenterRoom({\n\t\t\t\t\ttoken: data.token,\n\t\t\t\t\tdisplay_name: data.display_name,\n\t\t\t\t\temail: data.email\n\t\t\t\t});\n\t\t\t})\n\t\t\t.catch(function (err) {\n\t\t\t\tshowError(gateError, err.message || 'N\u00e3o foi poss\u00edvel entrar.');\n\t\t\t})\n\t\t\t.finally(function () {\n\t\t\t\tjoinBtn.disabled = false;\n\t\t\t});\n\t});\n\n\tsendBtn.addEventListener('click', sendText);\n\n\tinputEl.addEventListener('keydown', function (e) {\n\t\tif (e.key === 'Enter' && !e.shiftKey) {\n\t\t\te.preventDefault();\n\t\t\tsendText();\n\t\t}\n\t});\n\n\tinputEl.addEventListener('input', autoResizeTextarea);\n\n\tleaveBtn.addEventListener('click', leaveRoom);\n\n\temojiBtn.addEventListener('click', function () {\n\t\temojiPanel.hidden = !emojiPanel.hidden;\n\t});\n\n\tdocument.addEventListener('click', function (e) {\n\t\tif (!emojiPanel.hidden && !emojiPanel.contains(e.target) && !emojiBtn.contains(e.target)) {\n\t\t\temojiPanel.hidden = true;\n\t\t}\n\t});\n\n\timageBtn.addEventListener('click', function () {\n\t\timageInput.click();\n\t});\n\n\timageInput.addEventListener('change', function () {\n\t\tvar file = imageInput.files[0];\n\t\timageInput.value = '';\n\t\tif (file) uploadFile(file, 'image');\n\t});\n\n\taudioBtn.addEventListener('click', function () {\n\t\tif (mediaRecorder && mediaRecorder.state === 'recording') return;\n\t\tstartRecording();\n\t});\n\n\trecStopBtn.addEventListener('click', function () { stopRecording(false); });\n\trecCancelBtn.addEventListener('click', function () { stopRecording(true); });\n\n\t\/* Init *\/\n\tbuildEmojiPanel();\n\n\tvar saved = loadSession();\n\tif (saved && saved.token) {\n\t\tapiFetch('\/chat\/messages?token=' + encodeURIComponent(saved.token) + '&after=0&limit=1')\n\t\t\t.then(function () {\n\t\t\t\tenterRoom(saved);\n\t\t\t})\n\t\t\t.catch(function () {\n\t\t\t\tclearSession();\n\t\t\t});\n\t}\n})();<\/script>\n\t\t\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":0,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-22121","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/maisprudentenews.com.br\/index.php\/wp-json\/wp\/v2\/pages\/22121","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/maisprudentenews.com.br\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/maisprudentenews.com.br\/index.php\/wp-json\/wp\/v2\/types\/page"}],"replies":[{"embeddable":true,"href":"https:\/\/maisprudentenews.com.br\/index.php\/wp-json\/wp\/v2\/comments?post=22121"}],"version-history":[{"count":0,"href":"https:\/\/maisprudentenews.com.br\/index.php\/wp-json\/wp\/v2\/pages\/22121\/revisions"}],"wp:attachment":[{"href":"https:\/\/maisprudentenews.com.br\/index.php\/wp-json\/wp\/v2\/media?parent=22121"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}