{"id":1210,"date":"2025-11-24T16:19:07","date_gmt":"2025-11-24T16:19:07","guid":{"rendered":"https:\/\/zoeflexsolutions.com\/?page_id=1210"},"modified":"2025-11-25T13:52:06","modified_gmt":"2025-11-25T13:52:06","slug":"login","status":"publish","type":"page","link":"https:\/\/zoeflexsolutions.com\/pt\/login\/","title":{"rendered":"Login"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"1210\" class=\"elementor elementor-1210\">\n\t\t\t\t<div class=\"elementor-element elementor-element-675f4b7 e-con-full e-flex e-con e-parent\" data-id=\"675f4b7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4a4ff09 elementor-widget__width-initial elementor-widget elementor-widget-html\" data-id=\"4a4ff09\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"pt-BR\">\r\n\r\n<head>\r\n    <meta charset=\"UTF-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n    <title>Login \u2013 IA Agent<\/title>\r\n    \r\n    <!-- IMPORTA\u00c7\u00c3O DE FONTES -->\r\n    <style>\r\n        @import url(\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&family=Poppins:wght@600;700;800&display=swap\");\r\n        @import url(\"https:\/\/api.fontshare.com\/v2\/css?f[]=satoshi@400,500,600,700&display=swap\");\r\n    <\/style>\r\n\r\n    <style>\r\n        \/* ===== RESET E BASE ===== *\/\r\n        * {\r\n            margin: 0;\r\n            padding: 0;\r\n            box-sizing: border-box;\r\n        }\r\n\r\n        html,\r\n        body {\r\n            width: 100%;\r\n            height: 100%;\r\n            font-family: \"Inter\", sans-serif;\r\n            background: #000;\r\n            color: #fff;\r\n            overflow: hidden;\r\n        }\r\n\r\n        body {\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            min-height: 100vh;\r\n            position: relative;\r\n        }\r\n\r\n        \/* ===== FUNDO COM GRADIENTE E ELEMENTOS DECORATIVOS ===== *\/\r\n        body::before {\r\n            content: \"\";\r\n            position: fixed;\r\n            top: 0;\r\n            left: 0;\r\n            width: 100%;\r\n            height: 100%;\r\n            background: linear-gradient(135deg, #000000 0%, #0a0e27 50%, #001a3f 100%);\r\n            z-index: -2;\r\n            pointer-events: none;\r\n        }\r\n\r\n        \/* Orbe decorativo superior esquerdo *\/\r\n        body::after {\r\n            content: \"\";\r\n            position: fixed;\r\n            top: -200px;\r\n            left: -200px;\r\n            width: 600px;\r\n            height: 600px;\r\n            background: radial-gradient(circle, rgba(0, 240, 255, 0.08) 0%, transparent 70%);\r\n            border-radius: 50%;\r\n            z-index: -1;\r\n            pointer-events: none;\r\n            filter: blur(40px);\r\n            animation: floatOrbe 8s ease-in-out infinite;\r\n        }\r\n\r\n        \/* Orbe decorativo inferior direito *\/\r\n        .login-wrapper::before {\r\n            content: \"\";\r\n            position: fixed;\r\n            bottom: -300px;\r\n            right: -300px;\r\n            width: 700px;\r\n            height: 700px;\r\n            background: radial-gradient(circle, rgba(0, 240, 255, 0.06) 0%, transparent 70%);\r\n            border-radius: 50%;\r\n            z-index: -1;\r\n            pointer-events: none;\r\n            filter: blur(50px);\r\n            animation: floatOrbe 10s ease-in-out infinite reverse;\r\n        }\r\n\r\n        \/* ===== ANIMA\u00c7\u00d5ES ===== *\/\r\n        @keyframes floatOrbe {\r\n            0%, 100% {\r\n                transform: translate(0, 0);\r\n            }\r\n            50% {\r\n                transform: translate(30px, -30px);\r\n            }\r\n        }\r\n\r\n        @keyframes slideUp {\r\n            from {\r\n                opacity: 0;\r\n                transform: translateY(40px) scale(0.95);\r\n            }\r\n            to {\r\n                opacity: 1;\r\n                transform: translateY(0) scale(1);\r\n            }\r\n        }\r\n\r\n        @keyframes glowPulse {\r\n            0%, 100% {\r\n                box-shadow: 0 0 20px rgba(0, 240, 255, 0.3), 0 0 40px rgba(0, 240, 255, 0.1);\r\n            }\r\n            50% {\r\n                box-shadow: 0 0 30px rgba(0, 240, 255, 0.5), 0 0 60px rgba(0, 240, 255, 0.2);\r\n            }\r\n        }\r\n\r\n        @keyframes shake {\r\n            0%, 100% {\r\n                transform: translateX(0);\r\n            }\r\n            25% {\r\n                transform: translateX(-8px);\r\n            }\r\n            75% {\r\n                transform: translateX(8px);\r\n            }\r\n        }\r\n\r\n        @keyframes spinnerRotate {\r\n            from {\r\n                transform: rotate(0deg);\r\n            }\r\n            to {\r\n                transform: rotate(360deg);\r\n            }\r\n        }\r\n\r\n        \/* ===== CONTAINER PRINCIPAL ===== *\/\r\n        .login-wrapper {\r\n            position: relative;\r\n            z-index: 10;\r\n            width: 100%;\r\n            height: 100vh;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            padding: 20px;\r\n        }\r\n\r\n        .login-card {\r\n            width: min(420px, 90vw);\r\n            background: rgba(0, 0, 0, 0.6);\r\n            backdrop-filter: blur(16px);\r\n            border-radius: 24px;\r\n            padding: 48px 40px;\r\n            border: 1px solid rgba(0, 240, 255, 0.15);\r\n            box-shadow: \r\n                0 8px 32px rgba(0, 0, 0, 0.3),\r\n                inset 0 1px 1px rgba(255, 255, 255, 0.05);\r\n            animation: slideUp 0.8s ease-out forwards;\r\n            position: relative;\r\n            overflow: hidden;\r\n        }\r\n\r\n        \/* Efeito de brilho sutil no card *\/\r\n        .login-card::before {\r\n            content: \"\";\r\n            position: absolute;\r\n            top: 0;\r\n            left: 0;\r\n            right: 0;\r\n            height: 1px;\r\n            background: linear-gradient(90deg, transparent, rgba(0, 240, 255, 0.3), transparent);\r\n            pointer-events: none;\r\n        }\r\n\r\n        \/* ===== T\u00cdTULO E SUBT\u00cdTULO ===== *\/\r\n        .login-card h1 {\r\n            font-family: \"Poppins\", sans-serif;\r\n            font-size: 2em;\r\n            font-weight: 700;\r\n            margin-bottom: 12px;\r\n            background: linear-gradient(135deg, #fff 0%, #00f0ff 100%);\r\n            -webkit-background-clip: text;\r\n            -webkit-text-fill-color: transparent;\r\n            background-clip: text;\r\n            letter-spacing: -0.5px;\r\n            text-transform: uppercase;\r\n            text-shadow: 0 0 20px rgba(0, 240, 255, 0.2);\r\n        }\r\n\r\n        .login-card p {\r\n            font-size: 0.95em;\r\n            color: #aaa;\r\n            margin-bottom: 32px;\r\n            line-height: 1.5;\r\n            font-weight: 400;\r\n        }\r\n\r\n        \/* ===== FORMUL\u00c1RIO ===== *\/\r\n        form {\r\n            display: flex;\r\n            flex-direction: column;\r\n            gap: 18px;\r\n        }\r\n\r\n        label {\r\n            font-weight: 600;\r\n            display: block;\r\n            margin-bottom: 6px;\r\n            font-size: 0.9em;\r\n            color: #ccc;\r\n            text-transform: uppercase;\r\n            letter-spacing: 0.5px;\r\n        }\r\n\r\n        input[type=\"email\"],\r\n        input[type=\"password\"] {\r\n            width: 100%;\r\n            padding: 14px 16px;\r\n            border-radius: 12px;\r\n            border: 1px solid rgba(0, 240, 255, 0.2);\r\n            background: rgba(255, 255, 255, 0.05);\r\n            color: #fff;\r\n            font-size: 0.95em;\r\n            font-family: \"Inter\", sans-serif;\r\n            transition: all 0.3s ease;\r\n            outline: none;\r\n        }\r\n\r\n        input[type=\"email\"]::placeholder,\r\n        input[type=\"password\"]::placeholder {\r\n            color: rgba(255, 255, 255, 0.3);\r\n        }\r\n\r\n        input[type=\"email\"]:focus,\r\n        input[type=\"password\"]:focus {\r\n            border-color: rgba(0, 240, 255, 0.6);\r\n            background: rgba(255, 255, 255, 0.08);\r\n            box-shadow: 0 0 16px rgba(0, 240, 255, 0.3), inset 0 0 8px rgba(0, 240, 255, 0.1);\r\n        }\r\n\r\n        \/* ===== BOT\u00c3O ENTRAR ===== *\/\r\n        button[type=\"submit\"] {\r\n            padding: 14px 28px;\r\n            border: none;\r\n            border-radius: 12px;\r\n            background: linear-gradient(135deg, #00f0ff 0%, #0099cc 100%);\r\n            color: #000;\r\n            font-weight: 700;\r\n            font-size: 0.95em;\r\n            font-family: \"Poppins\", sans-serif;\r\n            cursor: pointer;\r\n            transition: all 0.3s ease;\r\n            text-transform: uppercase;\r\n            letter-spacing: 0.5px;\r\n            margin-top: 12px;\r\n            position: relative;\r\n            overflow: hidden;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            gap: 10px;\r\n            min-height: 48px;\r\n        }\r\n\r\n        button[type=\"submit\"]::before {\r\n            content: \"\";\r\n            position: absolute;\r\n            top: 0;\r\n            left: -100%;\r\n            width: 100%;\r\n            height: 100%;\r\n            background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);\r\n            transition: left 0.5s ease;\r\n        }\r\n\r\n        button[type=\"submit\"]:hover:not(:disabled) {\r\n            transform: translateY(-2px);\r\n            box-shadow: \r\n                0 12px 24px rgba(0, 240, 255, 0.4),\r\n                0 0 20px rgba(0, 240, 255, 0.2);\r\n        }\r\n\r\n        button[type=\"submit\"]:hover:not(:disabled)::before {\r\n            left: 100%;\r\n        }\r\n\r\n        button[type=\"submit\"]:active:not(:disabled) {\r\n            transform: scale(0.98);\r\n        }\r\n\r\n        button[type=\"submit\"]:disabled {\r\n            opacity: 0.8;\r\n            cursor: not-allowed;\r\n        }\r\n\r\n        \/* ===== SPINNER (durante carregamento) ===== *\/\r\n        .spinner {\r\n            display: none;\r\n            width: 18px;\r\n            height: 18px;\r\n            border: 2px solid rgba(0, 0, 0, 0.2);\r\n            border-top-color: #000;\r\n            border-radius: 50%;\r\n            animation: spinnerRotate 0.8s linear infinite;\r\n        }\r\n\r\n        button[type=\"submit\"]:disabled .spinner {\r\n            display: block;\r\n        }\r\n\r\n        button[type=\"submit\"]:disabled .button-text {\r\n            margin-left: 4px;\r\n        }\r\n\r\n        \/* ===== MENSAGENS DE ERRO\/SUCESSO ===== *\/\r\n        #login-message {\r\n            margin-bottom: 20px;\r\n            min-height: 0;\r\n        }\r\n\r\n        .msg {\r\n            padding: 14px 16px;\r\n            border-radius: 12px;\r\n            font-size: 0.9em;\r\n            font-weight: 500;\r\n            animation: slideUp 0.4s ease-out;\r\n        }\r\n\r\n        .msg.error {\r\n            background: rgba(209, 0, 0, 0.15);\r\n            color: #ff6b6b;\r\n            border: 1px solid rgba(209, 0, 0, 0.4);\r\n            box-shadow: 0 0 16px rgba(209, 0, 0, 0.2);\r\n            animation: shake 0.4s ease-out;\r\n        }\r\n\r\n        .msg.success {\r\n            background: rgba(0, 240, 255, 0.15);\r\n            color: #00f0ff;\r\n            border: 1px solid rgba(0, 240, 255, 0.4);\r\n            box-shadow: 0 0 16px rgba(0, 240, 255, 0.2);\r\n        }\r\n\r\n        \/* ===== RESPONSIVIDADE ===== *\/\r\n        @media (max-width: 480px) {\r\n            .login-card {\r\n                padding: 36px 28px;\r\n                border-radius: 20px;\r\n            }\r\n\r\n            .login-card h1 {\r\n                font-size: 1.6em;\r\n            }\r\n\r\n            .login-card p {\r\n                font-size: 0.9em;\r\n            }\r\n\r\n            input[type=\"email\"],\r\n            input[type=\"password\"] {\r\n                padding: 12px 14px;\r\n                font-size: 16px; \/* Evita zoom em iOS *\/\r\n            }\r\n\r\n            button[type=\"submit\"] {\r\n                padding: 12px 24px;\r\n                font-size: 0.9em;\r\n            }\r\n\r\n            label {\r\n                font-size: 0.85em;\r\n            }\r\n\r\n            \/* Orbes menos vis\u00edveis em mobile *\/\r\n            body::after {\r\n                opacity: 0.5;\r\n            }\r\n\r\n            .login-wrapper::before {\r\n                opacity: 0.5;\r\n            }\r\n        }\r\n\r\n        @media (max-width: 320px) {\r\n            .login-card {\r\n                padding: 28px 20px;\r\n            }\r\n\r\n            .login-card h1 {\r\n                font-size: 1.4em;\r\n            }\r\n\r\n            input[type=\"email\"],\r\n            input[type=\"password\"] {\r\n                padding: 11px 12px;\r\n            }\r\n        }\r\n    <\/style>\r\n<\/head>\r\n\r\n<body>\r\n    <div class=\"login-wrapper\">\r\n        <div class=\"login-card\">\r\n            <h1>Login \u2013 IA Agent<\/h1>\r\n            <p>Acesse a \u00e1rea de testes com suas credenciais<\/p>\r\n\r\n            <div id=\"login-message\"><\/div>\r\n\r\n            <form id=\"eva-login-form\" action=\"\">\r\n                <div>\r\n                    <label for=\"eva_login_email\">E-mail<\/label>\r\n                    <input \r\n                        type=\"email\" \r\n                        id=\"eva_login_email\" \r\n                        name=\"email\" \r\n                        placeholder=\"seu@email.com\"\r\n                        required\r\n>\r\n                <\/div>\r\n\r\n                <div>\r\n                    <label for=\"eva_login_password\">Senha<\/label>\r\n                    <input \r\n                        type=\"password\" \r\n                        id=\"eva_login_password\" \r\n                        name=\"password\" \r\n                        placeholder=\"\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\"\r\n                        required\r\n>\r\n                <\/div>\r\n\r\n                <button type=\"submit\">\r\n                    <span class=\"spinner\"><\/span>\r\n                    <span class=\"button-text\">Entrar<\/span>\r\n                <\/button>\r\n            <input type=\"hidden\" name=\"trp-form-language\" value=\"pt\"\/><\/form>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <script>\r\n        const loginForm = document.getElementById('eva-login-form');\r\n        const loginMessage = document.getElementById('login-message');\r\n\r\n        loginForm.addEventListener('submit', async (e) => {\r\n            e.preventDefault();\r\n            loginMessage.innerHTML = '';\r\n\r\n            const btn = loginForm.querySelector('button[type=\"submit\"]');\r\n            const buttonText = btn.querySelector('.button-text');\r\n            btn.disabled = true;\r\n            buttonText.textContent = 'Entrando...';\r\n\r\n            const formData = new FormData(loginForm);\r\n            const payload = Object.fromEntries(formData.entries());\r\n\r\n            try {\r\n                const res = await fetch('\/wp-json\/iaagent\/v1\/login', {\r\n                    method: 'POST',\r\n                    headers: { 'Content-Type': 'application\/json' },\r\n                    body: JSON.stringify(payload),\r\n                });\r\n\r\n                const data = await res.json();\r\n\r\n                if (data.success) {\r\n                    \/\/ Redireciona para a p\u00e1gina protegida\r\n                    window.location.href = data.redirect_url || '\/ai-agent';\r\n                } else {\r\n                    loginMessage.innerHTML = `<div class=\"msg error\">${data.message || 'N\u00e3o foi poss\u00edvel fazer login.'}<\/div>`;\r\n\r\n                    \/\/ Se o back-end mandou redirect_url (expirado, sem acesso), podemos seguir:\r\n                    if (data.redirect_url) {\r\n                        setTimeout(() => {\r\n                            window.location.href = data.redirect_url;\r\n                        }, 1500);\r\n                    }\r\n                }\r\n            } catch (err) {\r\n                loginMessage.innerHTML = `<div class=\"msg error\">Erro inesperado. Tente novamente.<\/div>`;\r\n            } finally {\r\n                btn.disabled = false;\r\n                buttonText.textContent = 'Entrar';\r\n            }\r\n        });\r\n    <\/script>\r\n<\/body>\r\n\r\n<\/html>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Login \u2013 IA Agent Login \u2013 IA Agent Acesse a \u00e1rea de testes com suas credenciais E-mail Senha Entrar<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-1210","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/zoeflexsolutions.com\/pt\/wp-json\/wp\/v2\/pages\/1210","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zoeflexsolutions.com\/pt\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/zoeflexsolutions.com\/pt\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/zoeflexsolutions.com\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zoeflexsolutions.com\/pt\/wp-json\/wp\/v2\/comments?post=1210"}],"version-history":[{"count":10,"href":"https:\/\/zoeflexsolutions.com\/pt\/wp-json\/wp\/v2\/pages\/1210\/revisions"}],"predecessor-version":[{"id":1336,"href":"https:\/\/zoeflexsolutions.com\/pt\/wp-json\/wp\/v2\/pages\/1210\/revisions\/1336"}],"wp:attachment":[{"href":"https:\/\/zoeflexsolutions.com\/pt\/wp-json\/wp\/v2\/media?parent=1210"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}