{"id":4376,"date":"2026-06-20T05:16:24","date_gmt":"2026-06-20T03:16:24","guid":{"rendered":"https:\/\/bluevidaintl.com\/?page_id=4376"},"modified":"2026-06-20T05:43:31","modified_gmt":"2026-06-20T03:43:31","slug":"registro","status":"publish","type":"page","link":"https:\/\/bluevidaintl.com\/es\/registro\/","title":{"rendered":"Registro"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"4376\" class=\"elementor elementor-4376\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4d27a5f e-flex e-con-boxed e-con e-parent\" data-id=\"4d27a5f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d7ff024 elementor-widget elementor-widget-html\" data-id=\"d7ff024\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"es\">\r\n\r\n<head>\r\n    <meta charset=\"UTF-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n    <meta name=\"description\" content=\"Sistema de verificaci\u00f3n de asistencia \u2014 Panel Presencial Bluevida Madrid 2026\">\r\n    <title>Verificaci\u00f3n de Asistencia \u00b7 Bluevida<\/title>\r\n    <!-- Google Fonts -->\r\n    <link\r\n        href=\"https:\/\/fonts.googleapis.com\/css2?family=Outfit:wght@300;400;500;600;700;800;900&family=Inter:wght@400;500;600&display=swap\"\r\n        rel=\"stylesheet\">\r\n    <link rel=\"stylesheet\" href=\"attendance.css\">\r\n<\/head>\r\n\r\n<body>\r\n\r\n    <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n         HEADER\r\n    \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n    <header class=\"main-header\">\r\n        <div class=\"container header-flex\">\r\n            <img decoding=\"async\" src=\"https:\/\/bluevidaintl.com\/wp-content\/uploads\/2026\/05\/1.png\" alt=\"Bluevida Logo\"\r\n                class=\"header-logo\">\r\n            <span class=\"badge webinar-badge\">\r\n                <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\">\r\n                    <path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"><\/path>\r\n                    <circle cx=\"9\" cy=\"7\" r=\"4\"><\/circle>\r\n                    <path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"><\/path>\r\n                    <path d=\"M16 3.13a4 4 0 0 1 0 7.75\"><\/path>\r\n                <\/svg>\r\n                Control de Asistencia \u00b7 20 Jun Madrid\r\n            <\/span>\r\n        <\/div>\r\n    <\/header>\r\n\r\n    <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n         HERO \/ BUSCADOR\r\n    \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n    <section class=\"hero-section\">\r\n        <div class=\"container hero-center\">\r\n\r\n            <div class=\"hero-content\" id=\"search-panel\">\r\n                <span class=\"tagline\">Panel Presencial \u00b7 Madrid 2026<\/span>\r\n                <h1 class=\"main-title\">\r\n                    <span class=\"light-text\">Verificaci\u00f3n de<\/span><br>\r\n                    <span class=\"gradient-text\">Asistencia<\/span>\r\n                <\/h1>\r\n                <p class=\"subtitle\">Ingresa el c\u00f3digo de 4 d\u00edgitos del asistente para verificar su registro y confirmar\r\n                    presencia.<\/p>\r\n\r\n                <!-- Buscador de c\u00f3digo -->\r\n                <div class=\"search-card glass-card\">\r\n                    <label for=\"codigo-input\" class=\"search-label\">\r\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\r\n                            stroke-width=\"2.5\">\r\n                            <rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\"><\/rect>\r\n                            <path d=\"M7 11V7a5 5 0 0 1 10 0v4\"><\/path>\r\n                        <\/svg>\r\n                        C\u00f3digo de Acceso\r\n                    <\/label>\r\n                    <div class=\"code-input-wrapper\">\r\n                        <input type=\"text\" id=\"codigo-input\" maxlength=\"4\" pattern=\"[0-9]{4}\" placeholder=\"0000\"\r\n                            autocomplete=\"off\" inputmode=\"numeric\" aria-label=\"C\u00f3digo de autenticaci\u00f3n de 4 d\u00edgitos\">\r\n                        <button id=\"buscar-btn\" class=\"search-btn\" aria-label=\"Buscar asistente\">\r\n                            <svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\r\n                                stroke-width=\"2.5\">\r\n                                <circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle>\r\n                                <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"><\/line>\r\n                            <\/svg>\r\n                        <\/button>\r\n                    <\/div>\r\n                    <p class=\"search-hint\">Introduce los 4 d\u00edgitos del c\u00f3digo enviado por correo al asistente<\/p>\r\n                    <p class=\"form-message\" id=\"search-message\"><\/p>\r\n\r\n                    <!-- Fallback: buscar por correo (aparece cuando c\u00f3digo no se encuentra) -->\r\n                    <div class=\"email-fallback\" id=\"email-fallback\" style=\"display:none;\">\r\n                        <div class=\"fallback-divider\">\r\n                            <span style=\"font-size: 0.8rem; color: var(--text-muted); text-transform: uppercase; letter-spacing: 1px; font-weight: 700; display: block; margin: 24px 0 12px; text-align: center;\">\u00bfNo recuerdas el c\u00f3digo? Busca por correo electr\u00f3nico<\/span>\r\n                        <\/div>\r\n                        <div class=\"email-input-wrapper\" style=\"display: flex; gap: 12px; align-items: center;\">\r\n                            <input\r\n                                type=\"email\"\r\n                                id=\"correo-input\"\r\n                                placeholder=\"correo@ejemplo.com\"\r\n                                autocomplete=\"email\"\r\n                                aria-label=\"Correo electr\u00f3nico del asistente\"\r\n                                style=\"flex: 1; background: rgba(255, 255, 255, 0.08); border: 2px solid rgba(255, 255, 255, 0.15); border-radius: 14px; padding: 16px 20px; font-family: var(--font-body); font-size: 1.1rem; color: white; outline: none; transition: var(--ease);\"\r\n                            >\r\n                            <button id=\"buscar-correo-btn\" class=\"search-btn email-btn\" aria-label=\"Buscar por correo\" style=\"width: 60px; height: 60px; flex-shrink: 0;\">\r\n                                <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\">\r\n                                    <path d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"><\/path>\r\n                                    <polyline points=\"22,6 12,13 2,6\"><\/polyline>\r\n                                <\/svg>\r\n                            <\/button>\r\n                        <\/div>\r\n                        <p class=\"form-message\" id=\"correo-message\"><\/p>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n\r\n        <\/div>\r\n\r\n        <!-- Shape divider -->\r\n        <div class=\"shape-divider\">\r\n            <svg data-name=\"Layer 1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 1200 120\"\r\n                preserveAspectRatio=\"none\">\r\n                <path\r\n                    d=\"M321.39,56.44c58-10.79,114.16-30.13,172-41.86,82.39-16.72,168.19-17.73,250.45-.39C823.78,31,906.67,72,985.66,92.83c70.05,18.48,146.53,26.09,214.34,3V120H0V95.8C59.71,118.08,130.83,119.3,198.71,107.72,243.68,100.1,288.75,76.5,321.39,56.44Z\"\r\n                    class=\"shape-fill\"><\/path>\r\n            <\/svg>\r\n        <\/div>\r\n    <\/section>\r\n\r\n    <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n         PANEL DE RESULTADO\r\n    \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n    <section class=\"result-section\" id=\"result-section\" style=\"display:none;\">\r\n        <div class=\"container result-container\">\r\n\r\n            <!-- Estado: Encontrado -->\r\n            <div id=\"result-found\" style=\"display:none;\">\r\n\r\n                <!-- Card del asistente -->\r\n                <div class=\"attendee-card glass-form-card\">\r\n\r\n                    <div class=\"attendee-header\">\r\n                        <div class=\"attendee-avatar\">\r\n                            <svg width=\"36\" height=\"36\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\r\n                                stroke-width=\"1.8\">\r\n                                <path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"><\/path>\r\n                                <circle cx=\"12\" cy=\"7\" r=\"4\"><\/circle>\r\n                            <\/svg>\r\n                        <\/div>\r\n                        <div class=\"attendee-title-block\">\r\n                            <span class=\"attendee-label\">Asistente Verificado<\/span>\r\n                            <h2 id=\"result-nombre\" class=\"attendee-name\">\u2014<\/h2>\r\n                        <\/div>\r\n                        <div class=\"verified-badge\" id=\"verified-icon\">\r\n                            <svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\r\n                                stroke-width=\"2.5\">\r\n                                <polyline points=\"20 6 9 17 4 12\"><\/polyline>\r\n                            <\/svg>\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <div class=\"divider\"><\/div>\r\n\r\n                    <!-- Datos del registro -->\r\n                    <div class=\"info-rows\">\r\n                        <div class=\"info-row\">\r\n                            <span class=\"info-row-icon\">\r\n                                <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\r\n                                    stroke-width=\"2\">\r\n                                    <path\r\n                                        d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\">\r\n                                    <\/path>\r\n                                    <polyline points=\"22,6 12,13 2,6\"><\/polyline>\r\n                                <\/svg>\r\n                            <\/span>\r\n                            <div class=\"info-row-content\">\r\n                                <span class=\"info-row-label\">Correo Electr\u00f3nico<\/span>\r\n                                <span class=\"info-row-value\" id=\"result-correo\">\u2014<\/span>\r\n                            <\/div>\r\n                        <\/div>\r\n\r\n                        <div class=\"info-row\">\r\n                            <span class=\"info-row-icon\">\r\n                                <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\r\n                                    stroke-width=\"2\">\r\n                                    <circle cx=\"12\" cy=\"12\" r=\"10\"><\/circle>\r\n                                    <polyline points=\"12 6 12 12 16 14\"><\/polyline>\r\n                                <\/svg>\r\n                            <\/span>\r\n                            <div class=\"info-row-content\">\r\n                                <span class=\"info-row-label\">Jornada Elegida<\/span>\r\n                                <span class=\"info-row-value jornada-value\" id=\"result-jornada\">\u2014<\/span>\r\n                            <\/div>\r\n                        <\/div>\r\n\r\n                        <div class=\"info-row\">\r\n                            <span class=\"info-row-icon\">\r\n                                <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\r\n                                    stroke-width=\"2\">\r\n                                    <rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\"><\/rect>\r\n                                    <path d=\"M7 11V7a5 5 0 0 1 10 0v4\"><\/path>\r\n                                <\/svg>\r\n                            <\/span>\r\n                            <div class=\"info-row-content\">\r\n                                <span class=\"info-row-label\">C\u00f3digo de Acceso<\/span>\r\n                                <span class=\"info-row-value code-mono\" id=\"result-codigo\">\u2014<\/span>\r\n                            <\/div>\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <!-- Bot\u00f3n de confirmar asistencia -->\r\n                    <button id=\"confirmar-btn\" class=\"confirm-btn\" data-codigo=\"\">\r\n                        <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\r\n                            stroke-width=\"2.5\">\r\n                            <polyline points=\"20 6 9 17 4 12\"><\/polyline>\r\n                        <\/svg>\r\n                        REGISTRAR ASISTENCIA\r\n                    <\/button>\r\n                    <p class=\"form-message\" id=\"confirm-message\"><\/p>\r\n\r\n                <\/div>\r\n\r\n                <!-- Bot\u00f3n volver a buscar -->\r\n                <div class=\"back-search-wrapper\">\r\n                    <button id=\"nueva-busqueda-btn\" class=\"back-btn\">\r\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\r\n                            stroke-width=\"2.5\">\r\n                            <line x1=\"19\" y1=\"12\" x2=\"5\" y2=\"12\"><\/line>\r\n                            <polyline points=\"12 19 5 12 12 5\"><\/polyline>\r\n                        <\/svg>\r\n                        Nueva B\u00fasqueda\r\n                    <\/button>\r\n                <\/div>\r\n\r\n            <\/div>\r\n\r\n            <!-- Estado: Encontrado por correo -->\r\n            <div id=\"result-email\" style=\"display:none;\">\r\n                <div class=\"attendee-card glass-form-card\" style=\"text-align: center;\">\r\n\r\n                    <div class=\"attendee-header\" style=\"justify-content: center; flex-direction: column; gap: 8px;\">\r\n                        <div class=\"attendee-avatar\" style=\"background:rgba(201,168,76,0.1); color:#c9a84c;\">\r\n                            <svg width=\"36\" height=\"36\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\">\r\n                                <path d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"><\/path>\r\n                                <polyline points=\"22,6 12,13 2,6\"><\/polyline>\r\n                            <\/svg>\r\n                        <\/div>\r\n                        <div class=\"attendee-title-block\">\r\n                            <span class=\"attendee-label\">Registro encontrado por correo<\/span>\r\n                            <h2 id=\"email-result-nombre\" class=\"attendee-name\">\u2014<\/h2>\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <div class=\"divider\"><\/div>\r\n\r\n                    <!-- C\u00f3digo destacado -->\r\n                    <div class=\"codigo-highlight\" style=\"background: var(--teal-soft); border: 1px dashed var(--teal-light); padding: 24px; border-radius: var(--radius); margin-bottom: 24px;\">\r\n                        <span class=\"codigo-highlight-label\" style=\"display: flex; align-items: center; justify-content: center; gap: 8px; font-weight: 700; color: var(--teal); font-size: 0.85rem; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 8px;\">\r\n                            <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\">\r\n                                <rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\"><\/rect>\r\n                                <path d=\"M7 11V7a5 5 0 0 1 10 0v4\"><\/path>\r\n                            <\/svg>\r\n                            C\u00f3digo de acceso al evento\r\n                        <\/span>\r\n                        <span id=\"email-result-codigo\" class=\"codigo-highlight-value code-mono\" style=\"display: block; font-size: 3rem; color: var(--teal-dark); margin-bottom: 8px;\">\u2014<\/span>\r\n                        <span class=\"codigo-highlight-hint\" style=\"font-size: 0.9rem; color: var(--text-body);\">Usa este c\u00f3digo en el campo de b\u00fasqueda principal para registrar la asistencia.<\/span>\r\n                    <\/div>\r\n\r\n                    <div class=\"info-rows\" style=\"margin-top:20px; text-align: left;\">\r\n                        <div class=\"info-row\">\r\n                            <span class=\"info-row-icon\">\r\n                                <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n                                    <path d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"><\/path>\r\n                                    <polyline points=\"22,6 12,13 2,6\"><\/polyline>\r\n                                <\/svg>\r\n                            <\/span>\r\n                            <div class=\"info-row-content\">\r\n                                <span class=\"info-row-label\">Correo<\/span>\r\n                                <span class=\"info-row-value\" id=\"email-result-correo\">\u2014<\/span>\r\n                            <\/div>\r\n                        <\/div>\r\n                        <div class=\"info-row\">\r\n                            <span class=\"info-row-icon\">\r\n                                <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n                                    <circle cx=\"12\" cy=\"12\" r=\"10\"><\/circle>\r\n                                    <polyline points=\"12 6 12 12 16 14\"><\/polyline>\r\n                                <\/svg>\r\n                            <\/span>\r\n                            <div class=\"info-row-content\">\r\n                                <span class=\"info-row-label\">Jornada Elegida<\/span>\r\n                                <span class=\"info-row-value jornada-value\" id=\"email-result-jornada\">\u2014<\/span>\r\n                            <\/div>\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                <\/div>\r\n\r\n                <div class=\"back-search-wrapper\">\r\n                    <button id=\"nueva-busqueda-btn-4\" class=\"back-btn\">\r\n                        <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\">\r\n                            <line x1=\"19\" y1=\"12\" x2=\"5\" y2=\"12\"><\/line>\r\n                            <polyline points=\"12 19 5 12 12 5\"><\/polyline>\r\n                        <\/svg>\r\n                        Nueva B\u00fasqueda\r\n                    <\/button>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <!-- Estado: Ya registrado -->            <div id=\"result-already\" class=\"status-card status-already\" style=\"display:none;\">\r\n                <div class=\"status-icon status-icon-already\">\r\n                    <svg width=\"40\" height=\"40\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n                        <path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"><\/path>\r\n                        <polyline points=\"22 4 12 14.01 9 11.01\"><\/polyline>\r\n                    <\/svg>\r\n                <\/div>\r\n                <h3>Asistencia Ya Registrada<\/h3>\r\n                <p id=\"already-nombre\" class=\"status-name\">Este asistente ya fue registrado previamente.<\/p>\r\n                <p class=\"status-sub\">Su asistencia al evento qued\u00f3 confirmada correctamente.<\/p>\r\n                <button id=\"nueva-busqueda-btn-2\" class=\"back-btn\" style=\"margin-top:24px;\">\r\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\r\n                        stroke-width=\"2.5\">\r\n                        <line x1=\"19\" y1=\"12\" x2=\"5\" y2=\"12\"><\/line>\r\n                        <polyline points=\"12 19 5 12 12 5\"><\/polyline>\r\n                    <\/svg>\r\n                    Nueva B\u00fasqueda\r\n                <\/button>\r\n            <\/div>\r\n\r\n            <!-- Estado: Confirmaci\u00f3n exitosa -->\r\n            <div id=\"result-success\" class=\"status-card status-success\" style=\"display:none;\">\r\n                <div class=\"status-icon status-icon-success\">\r\n                    <svg width=\"44\" height=\"44\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n                        <polyline points=\"20 6 9 17 4 12\"><\/polyline>\r\n                    <\/svg>\r\n                <\/div>\r\n                <h3>\u00a1Asistencia Confirmada!<\/h3>\r\n                <p id=\"success-nombre\" class=\"status-name\">\u2014<\/p>\r\n                <p class=\"status-sub\">La asistencia ha sido registrada correctamente en el sistema.<\/p>\r\n                <button id=\"nueva-busqueda-btn-3\" class=\"back-btn\" style=\"margin-top:24px;\">\r\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\r\n                        stroke-width=\"2.5\">\r\n                        <line x1=\"19\" y1=\"12\" x2=\"5\" y2=\"12\"><\/line>\r\n                        <polyline points=\"12 19 5 12 12 5\"><\/polyline>\r\n                    <\/svg>\r\n                    Siguiente Asistente\r\n                <\/button>\r\n            <\/div>\r\n\r\n        <\/div>\r\n    <\/section>\r\n\r\n    <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n         FOOTER\r\n    \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\r\n    <footer class=\"main-footer\">\r\n        <div class=\"container footer-flex\">\r\n            <img decoding=\"async\" src=\"https:\/\/bluevidaintl.com\/wp-content\/uploads\/2025\/07\/logos-02.png\" alt=\"Bluevida Icon\"\r\n                class=\"footer-logo\">\r\n            <p>&copy; 2026 Bluevida International. Todos los derechos reservados.<\/p>\r\n        <\/div>\r\n    <\/footer>\r\n\r\n    <script>\r\n        \/\/ \u2500\u2500 Configuraci\u00f3n \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n        var ajaxurl = \"https:\/\/bluevidaintl.com\/wp-admin\/admin-ajax.php\";\r\n\r\n        \/\/ \u2500\u2500 Referencias DOM \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n        const codigoInput = document.getElementById('codigo-input');\r\n        const buscarBtn = document.getElementById('buscar-btn');\r\n        const searchMessage = document.getElementById('search-message');\r\n        const resultSection = document.getElementById('result-section');\r\n        const heroSection = document.querySelector('.hero-section');\r\n\r\n        const resultFound = document.getElementById('result-found');\r\n        const resultAlready = document.getElementById('result-already');\r\n        const resultSuccess = document.getElementById('result-success');\r\n        const resultEmail = document.getElementById('result-email');\r\n\r\n        const confirmarBtn = document.getElementById('confirmar-btn');\r\n        const confirmMessage = document.getElementById('confirm-message');\r\n\r\n        \/\/ \u2500\u2500 Helpers de UI \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n        function showResult(panel) {\r\n            resultFound.style.display   = 'none';\r\n            resultAlready.style.display = 'none';\r\n            resultSuccess.style.display = 'none';\r\n            if (resultEmail) resultEmail.style.display = 'none';\r\n            resultSection.style.display = 'block';\r\n            panel.style.display = 'block';\r\n            resultSection.scrollIntoView({ behavior: 'smooth', block: 'start' });\r\n        }\r\n\r\n        function resetUI() {\r\n            resultSection.style.display = 'none';\r\n            resultFound.style.display = 'none';\r\n            resultAlready.style.display = 'none';\r\n            resultSuccess.style.display = 'none';\r\n            codigoInput.value = '';\r\n            searchMessage.textContent = '';\r\n            searchMessage.className = 'form-message';\r\n            confirmMessage.textContent = '';\r\n            confirmMessage.className = 'form-message';\r\n            window.scrollTo({ top: 0, behavior: 'smooth' });\r\n        }\r\n\r\n        \/\/ \u2500\u2500 S\u00f3lo permitir d\u00edgitos en el input \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n        codigoInput.addEventListener('input', function () {\r\n            this.value = this.value.replace(\/[^0-9]\/g, '').slice(0, 4);\r\n        });\r\n\r\n        \/\/ Buscar con Enter\r\n        codigoInput.addEventListener('keydown', function (e) {\r\n            if (e.key === 'Enter') buscarBtn.click();\r\n        });\r\n\r\n        \/\/ \u2500\u2500 BUSCAR C\u00d3DIGO \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n        buscarBtn.addEventListener('click', function () {\r\n            const codigo = codigoInput.value.trim();\r\n\r\n            if (codigo.length !== 4) {\r\n                searchMessage.textContent = 'El c\u00f3digo debe tener exactamente 4 d\u00edgitos.';\r\n                searchMessage.className = 'form-message error';\r\n                codigoInput.focus();\r\n                return;\r\n            }\r\n\r\n            \/\/ Loading state\r\n            buscarBtn.disabled = true;\r\n            buscarBtn.innerHTML = '<svg class=\"spin\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\"><path d=\"M21 12a9 9 0 1 1-6.219-8.56\"\/><\/svg>';\r\n            searchMessage.textContent = '';\r\n            searchMessage.className = 'form-message';\r\n\r\n            const formData = new FormData();\r\n            formData.append('action', 'bluevida_buscar_codigo');\r\n            formData.append('codigo', codigo);\r\n\r\n            fetch(ajaxurl, { method: 'POST', body: formData })\r\n                .then(r => r.json())\r\n                .then(data => {\r\n                    if (data.success) {\r\n                        const p = data.data;\r\n\r\n                        \/\/ Si ya tiene asistencia confirmada\r\n                        if (p.ya_asistio) {\r\n                            document.getElementById('already-nombre').textContent =\r\n                                p.nombre + ' ya fue registrado previamente.';\r\n                            showResult(resultAlready);\r\n                            return;\r\n                        }\r\n\r\n                        \/\/ Mostrar datos\r\n                        document.getElementById('result-nombre').textContent = p.nombre;\r\n                        document.getElementById('result-correo').textContent = p.correo;\r\n                        document.getElementById('result-jornada').textContent = p.jornada;\r\n                        document.getElementById('result-codigo').textContent = codigo;\r\n                        confirmarBtn.dataset.codigo = codigo;\r\n                        confirmMessage.textContent = '';\r\n                        confirmMessage.className = 'form-message';\r\n\r\n                        showResult(resultFound);\r\n                    } else {\r\n                        searchMessage.textContent = data.data.message || 'C\u00f3digo no encontrado. Verifica e intenta de nuevo.';\r\n                        searchMessage.className = 'form-message error';\r\n                        const emailFallback = document.getElementById('email-fallback');\r\n                        if (emailFallback) emailFallback.style.display = 'block';\r\n                    }\r\n                })\r\n                .catch(() => {\r\n                    searchMessage.textContent = 'Error de conexi\u00f3n. Int\u00e9ntalo de nuevo.';\r\n                    searchMessage.className = 'form-message error';\r\n                })\r\n                .finally(() => {\r\n                    buscarBtn.disabled = false;\r\n                    buscarBtn.innerHTML = '<svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\"><circle cx=\"11\" cy=\"11\" r=\"8\"><\/circle><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"><\/line><\/svg>';\r\n                });\r\n        });\r\n\r\n        \/\/ \u2500\u2500 CONFIRMAR ASISTENCIA \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n        confirmarBtn.addEventListener('click', function () {\r\n            const codigo = this.dataset.codigo;\r\n            const nombre = document.getElementById('result-nombre').textContent;\r\n\r\n            if (!codigo) return;\r\n\r\n            \/\/ Loading state\r\n            confirmarBtn.disabled = true;\r\n            confirmarBtn.textContent = 'PROCESANDO...';\r\n            confirmMessage.textContent = '';\r\n            confirmMessage.className = 'form-message';\r\n\r\n            const formData = new FormData();\r\n            formData.append('action', 'bluevida_confirmar_asistencia');\r\n            formData.append('codigo', codigo);\r\n\r\n            fetch(ajaxurl, { method: 'POST', body: formData })\r\n                .then(r => r.json())\r\n                .then(data => {\r\n                    if (data.success) {\r\n                        document.getElementById('success-nombre').textContent =\r\n                            nombre + ' ha sido registrado con \u00e9xito.';\r\n                        showResult(resultSuccess);\r\n                    } else {\r\n                        confirmMessage.textContent = data.data.message || 'No se pudo registrar. Int\u00e9ntalo de nuevo.';\r\n                        confirmMessage.className = 'form-message error';\r\n                        confirmarBtn.disabled = false;\r\n                        confirmarBtn.innerHTML = '<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\"><polyline points=\"20 6 9 17 4 12\"><\/polyline><\/svg> REGISTRAR ASISTENCIA';\r\n                    }\r\n                })\r\n                .catch(() => {\r\n                    confirmMessage.textContent = 'Error de conexi\u00f3n. Int\u00e9ntalo de nuevo.';\r\n                    confirmMessage.className = 'form-message error';\r\n                    confirmarBtn.disabled = false;\r\n                    confirmarBtn.innerHTML = '<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\"><polyline points=\"20 6 9 17 4 12\"><\/polyline><\/svg> REGISTRAR ASISTENCIA';\r\n                });\r\n        });\r\n\r\n        \/\/ \u2500\u2500 BUSCAR POR CORREO \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n        const correoInput      = document.getElementById('correo-input');\r\n        const buscarCorreoBtn  = document.getElementById('buscar-correo-btn');\r\n        const correoMessage    = document.getElementById('correo-message');\r\n        const emailFallback    = document.getElementById('email-fallback');\r\n\r\n        if (correoInput && buscarCorreoBtn) {\r\n            \/\/ Buscar con Enter en el campo de correo\r\n            correoInput.addEventListener('keydown', function (e) {\r\n                if (e.key === 'Enter') buscarCorreoBtn.click();\r\n            });\r\n\r\n            buscarCorreoBtn.addEventListener('click', function () {\r\n                const correo = correoInput.value.trim();\r\n\r\n                if (!correo || !correo.includes('@')) {\r\n                    correoMessage.textContent = 'Introduce un correo electr\u00f3nico v\u00e1lido.';\r\n                    correoMessage.className = 'form-message error';\r\n                    correoInput.focus();\r\n                    return;\r\n                }\r\n\r\n                \/\/ Loading state\r\n                buscarCorreoBtn.disabled = true;\r\n                buscarCorreoBtn.innerHTML = '<svg class=\"spin\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\"><path d=\"M21 12a9 9 0 1 1-6.219-8.56\"\/><\/svg>';\r\n                correoMessage.textContent = '';\r\n                correoMessage.className = 'form-message';\r\n\r\n                const formData = new FormData();\r\n                formData.append('action', 'bluevida_buscar_por_correo');\r\n                formData.append('correo', correo);\r\n\r\n                fetch(ajaxurl, { method: 'POST', body: formData })\r\n                    .then(r => r.json())\r\n                    .then(data => {\r\n                        if (data.success) {\r\n                            const p = data.data;\r\n\r\n                            \/\/ Si ya tiene asistencia confirmada\r\n                            if (p.ya_asistio) {\r\n                                document.getElementById('already-nombre').textContent =\r\n                                    p.nombre + ' ya fue registrado previamente.';\r\n                                showResult(resultAlready);\r\n                                return;\r\n                            }\r\n\r\n                            \/\/ Mostrar resultado con el c\u00f3digo\r\n                            document.getElementById('email-result-nombre').textContent  = p.nombre;\r\n                            document.getElementById('email-result-correo').textContent  = p.correo;\r\n                            document.getElementById('email-result-jornada').textContent = p.jornada;\r\n                            document.getElementById('email-result-codigo').textContent  = p.codigo;\r\n\r\n                            showResult(resultEmail);\r\n                        } else {\r\n                            correoMessage.textContent = data.data.message || 'No se encontr\u00f3 ning\u00fan registro con ese correo.';\r\n                            correoMessage.className = 'form-message error';\r\n                        }\r\n                    })\r\n                    .catch(() => {\r\n                        correoMessage.textContent = 'Error de conexi\u00f3n. Int\u00e9ntalo de nuevo.';\r\n                        correoMessage.className = 'form-message error';\r\n                    })\r\n                    .finally(() => {\r\n                        buscarCorreoBtn.disabled = false;\r\n                        buscarCorreoBtn.innerHTML = '<svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\"><path d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"><\/path><polyline points=\"22,6 12,13 2,6\"><\/polyline><\/svg>';\r\n                    });\r\n            });\r\n        }\r\n\r\n        \/\/ \u2500\u2500 BOTONES \"NUEVA B\u00daSQUEDA\" \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n        const btnIds = ['nueva-busqueda-btn', 'nueva-busqueda-btn-2', 'nueva-busqueda-btn-3', 'nueva-busqueda-btn-4'];\r\n        btnIds.forEach(id => {\r\n            const btn = document.getElementById(id);\r\n            if (btn) btn.addEventListener('click', resetUI);\r\n        });\r\n    <\/script>\r\n\r\n<\/body>\r\n\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Verificaci\u00f3n de Asistencia \u00b7 Bluevida Control de Asistencia \u00b7 20 Jun Madrid Panel Presencial \u00b7 Madrid 2026 Verificaci\u00f3n de Asistencia Ingresa el c\u00f3digo de 4 d\u00edgitos del asistente para verificar su registro y confirmar presencia. C\u00f3digo de Acceso Introduce los 4 d\u00edgitos del c\u00f3digo enviado por correo al asistente \u00bfNo recuerdas el c\u00f3digo? Busca por [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-4376","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/bluevidaintl.com\/es\/wp-json\/wp\/v2\/pages\/4376","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bluevidaintl.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bluevidaintl.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bluevidaintl.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bluevidaintl.com\/es\/wp-json\/wp\/v2\/comments?post=4376"}],"version-history":[{"count":22,"href":"https:\/\/bluevidaintl.com\/es\/wp-json\/wp\/v2\/pages\/4376\/revisions"}],"predecessor-version":[{"id":4399,"href":"https:\/\/bluevidaintl.com\/es\/wp-json\/wp\/v2\/pages\/4376\/revisions\/4399"}],"wp:attachment":[{"href":"https:\/\/bluevidaintl.com\/es\/wp-json\/wp\/v2\/media?parent=4376"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}