{"id":684,"date":"2026-01-31T04:41:07","date_gmt":"2026-01-31T04:41:07","guid":{"rendered":"https:\/\/easarte.com\/?page_id=684"},"modified":"2026-02-04T04:25:18","modified_gmt":"2026-02-04T04:25:18","slug":"confirmacion-cocktail","status":"publish","type":"page","link":"https:\/\/easarte.com\/en\/confirmacion-cocktail\/","title":{"rendered":"Cocktail Management"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"684\" class=\"elementor elementor-684\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-9dcad21 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"9dcad21\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-77e9e85\" data-id=\"77e9e85\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-d9ef3ed elementor-widget elementor-widget-html\" data-id=\"d9ef3ed\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script src=\"https:\/\/unpkg.com\/html5-qrcode\" type=\"text\/javascript\"><\/script>\n    <style>\n        @import url(\"https:\/\/fonts.googleapis.com\/css2?family=Montserrat:wght@200;300;400;500;600&display=swap\");\n        \n        .umbra-card { \n            font-family: \"Montserrat\", sans-serif; \n            max-width: 500px; \n            margin: 40px auto; \n            background: #ffffff; \n            box-shadow: 0 20px 60px rgba(0,0,0,0.04); \/* Sombra muy suave *\/\n            border-radius: 0px; \n            overflow: visible; \n            border: 1px solid #f0f0f0; \n            position:relative; \n        }\n\n        \/* HEADER *\/\n        .umbra-header { \n            background-color: #ffffff; \n            color: #000; \n            padding: 50px 40px 30px 40px; \n            display: flex; \n            flex-direction: column; \n            justify-content: center;\n            text-align: left;\n        }\n        \n        .feria-row { display: flex; align-items: center; gap: 10px; margin-bottom: 15px; }\n        .feria-bar { width: 1px; height: 16px; background: #000; display: block; } \/* Barra fina *\/\n        .feria-sub { font-size: 11px; letter-spacing: 3px; text-transform: uppercase; color: #000; font-weight: 500; }\n        \n        .logo-row { display: flex; align-items: center; gap: 12px; margin-bottom: 30px; }\n        .logo-text { font-size: 44px; font-weight: 200; letter-spacing: 6px; line-height: 1; color: #000; }\n        .logo-bold { font-weight: 300; }\n        .logo-separator { height: 42px; width: 1px; background: #000; display: block; }\n        \n        .cocktail-title { \n            font-size: 26px; \n            font-weight: 300; \/* Letra fina *\/\n            letter-spacing: 3px; \n            text-transform: uppercase; \n            margin: 0; \n            color: #000; \n            margin-top: 10px;\n        }\n\n        .umbra-body { padding: 40px; position: relative; }\n        \n        \/* INPUT *\/\n        .input-wrapper { position: relative; margin-bottom: 30px; }\n        \n        .umbra-input { \n            width: 100%; \n            padding: 20px 20px; \/* Buen espacio interno *\/\n            border: 1px solid #000; \/* Borde fino *\/\n            border-radius: 0px; \n            font-size: 15px; \n            margin: 0; \n            box-sizing: border-box; \n            outline: none; \n            background: #fff; \n            font-family: \"Montserrat\", sans-serif; \n            color: #000; \n            font-weight: 400;\n        }\n        .umbra-input::placeholder { color: #999; font-weight: 300; text-transform: uppercase; font-size: 12px; letter-spacing: 2px;}\n        .umbra-input:focus { background: #fafafa; }\n\n        \/* --- BOTONES CON \"AIRE\" (PADDING) PERO FINOS --- *\/\n        \n        \/* Bot\u00f3n Blanco (Escanear) *\/\n        .btn-scan { \n            width: 100%; \n            background: #ffffff !important; \n            color: #000000 !important; \n            padding: 22px; \/* Mucho espacio interno vertical *\/\n            border: 1px solid #000000 !important; \/* BORDE FINO 1px *\/\n            border-radius: 0px !important; \n            cursor: pointer; \n            font-size: 14px; \n            font-weight: 500; \/* Letra media, no negrita *\/\n            display: flex; \n            align-items: center; \n            justify-content: center; \n            gap: 15px; \n            text-transform: uppercase; \n            letter-spacing: 3px; \n            transition: all 0.2s; \n            box-sizing: border-box; \n            margin-bottom: 25px;\n        }\n        .btn-scan:hover { background: #f9f9f9 !important; }\n        \n        \/* Bot\u00f3n Negro (Acci\u00f3n\/Buscar) *\/\n        .btn-solid { \n            width: 100%; \n            background: #000000 !important; \n            color: #ffffff !important; \n            padding: 22px; \/* Mucho espacio interno vertical *\/\n            border: 1px solid #000000 !important; \/* BORDE FINO 1px *\/\n            border-radius: 0px !important; \n            font-weight: 500; \/* Letra media, no negrita *\/\n            cursor: pointer; \n            text-transform: uppercase; \n            letter-spacing: 3px; \n            font-size: 14px; \n            transition: all 0.2s; \n            display: block; \n            text-align: center; \n            text-decoration: none; \n            box-sizing: border-box;\n            opacity: 1; \n        }\n        .btn-solid:hover { \n            background: #333 !important; \n            border-color: #333 !important;\n            color: #fff !important; \n        }\n        \n        .divider-text { margin: 0 0 20px 0; text-align: center; color: #999; font-size: 11px; font-weight: 500; letter-spacing: 2px; text-transform: uppercase; }\n        #reader { width: 100%; margin-bottom: 30px; display:none; border-radius: 0px; overflow: hidden; border: 1px solid #000; }\n        \n        \/* RESULTADOS *\/\n        .info-card { text-align:center; border-top:1px solid #eee; padding-top:40px; margin-top: 20px; }\n        .user-name { margin:0; font-size: 28px; font-weight: 300; color:#000; text-transform: uppercase; letter-spacing: 2px; line-height: 1.3; }\n        .user-email { color:#666; margin:15px 0 40px; font-size: 14px; font-weight: 400; font-family: monospace; }\n        \n        .tag-pill { display: inline-block; padding: 8px 16px; border: 1px solid #ddd; font-size: 11px; margin: 5px; color: #666; background: #fff; text-transform: uppercase; font-weight: 600; letter-spacing: 2px; }\n        .tag-pill.active { background: #000; color: #fff; border-color: #000; }\n        \n        \/* MENSAJES DE ESTADO *\/\n        .status-msg { padding: 20px; margin-bottom: 30px; font-size: 14px; font-weight: 500; text-transform: uppercase; letter-spacing: 2px; text-align: center; border: 1px solid #000; background: #fff; color: #000; border-radius: 0px;}\n        .status-success { background: #000; color: #fff; } \n        .status-warning { background: #f9f9f9; color: #666; border-color: #ddd;}\n        \n        \/* LIVE SEARCH LIST *\/\n        #searchResults {\n            position: absolute; top: 100%; left: 0; width: 100%;\n            background: #fff; border: 1px solid #000; border-top: none;\n            z-index: 999; display: none; max-height: 250px; overflow-y: auto;\n            box-shadow: 0 20px 40px rgba(0,0,0,0.05);\n        }\n        .search-item { padding: 20px; border-bottom: 1px solid #f0f0f0; cursor: pointer; transition: background 0.2s; text-align: left;}\n        .search-item:hover { background: #000; color: #fff; }\n        .search-item:hover .search-name, .search-item:hover .search-email { color: #fff; }\n        .search-name { display: block; font-weight: 500; color: #000; font-size: 14px; text-transform: uppercase; letter-spacing: 1px;}\n        .search-email { display: block; font-size: 12px; color: #888; margin-top: 5px; }\n    <\/style><div class=\"umbra-card\">\n    <div class=\"umbra-header\">\n        <div class=\"feria-row\">\n            <span class=\"feria-bar\"><\/span>\n            <span class=\"feria-sub\">ART FAIR<\/span>\n        <\/div>\n        <div class=\"logo-row\">\n            <span class=\"logo-text\">UMBRA<\/span>\n            <span class=\"logo-separator\"><\/span>\n            <span class=\"logo-text logo-bold\">ES<\/span>\n        <\/div>\n        <h1 class=\"cocktail-title\">Guestlist Cocktail<\/h1>\n    <\/div>\n    \n    <div class=\"umbra-body\">\n        <div id=\"reader\"><\/div>\n        \n        <form method=\"get\" id=\"searchForm\" autocomplete=\"off\" action=\"\">\n            <button type=\"button\" class=\"btn-scan\" onclick=\"startScanner()\"><span>\ud83d\udcf7<\/span> ESCANEAR QR<\/button>\n            <div class=\"divider-text\">\u2014 O MANUALMENTE \u2014<\/div>\n            \n            <div class=\"input-wrapper\">\n                <input type=\"text\" id=\"asistenteInput\" name=\"asistente\" class=\"umbra-input\" placeholder=\"BUSCAR POR NOMBRE O EMAIL...\" onkeyup=\"doLiveSearch(this.value)\">\n                <div id=\"searchResults\"><\/div>\n            <\/div>\n\n            <button type=\"submit\" class=\"btn-solid\">BUSCAR INVITADO<\/button>\n        <input type=\"hidden\" name=\"trp-form-language\" value=\"en\"\/><\/form><\/div><\/div>\n    <script>\n    let searchTimeout;\n    function doLiveSearch(term) {\n        const resultsDiv = document.getElementById(\"searchResults\");\n        if (term.length < 3) { resultsDiv.style.display = \"none\"; return; }\n        clearTimeout(searchTimeout);\n        searchTimeout = setTimeout(() => {\n            const formData = new FormData();\n            formData.append(\"action\", \"cocktail_live_search\");\n            formData.append(\"term\", term);\n            fetch(\"https:\/\/easarte.com\/wp-admin\/admin-ajax.php\", { method: \"POST\", body: formData })\n            .then(response => response.text())\n            .then(html => {\n                if(html.trim() !== \"\") { resultsDiv.innerHTML = html; resultsDiv.style.display = \"block\"; } \n                else { resultsDiv.style.display = \"none\"; }\n            });\n        }, 300);\n    }\n    function selectUser(email) {\n        document.getElementById(\"asistenteInput\").value = email;\n        document.getElementById(\"searchResults\").style.display = \"none\";\n    }\n    document.addEventListener(\"click\", function(e) {\n        if (!e.target.closest(\".input-wrapper\")) { document.getElementById(\"searchResults\").style.display = \"none\"; }\n    });\n    function startScanner() {\n        const reader = document.getElementById(\"reader\");\n        reader.style.display = \"block\";\n        const html5QrCode = new Html5Qrcode(\"reader\");\n        html5QrCode.start({ facingMode: \"environment\" }, { fps: 10, qrbox: { width: 250, height: 250 } },\n            (decodedText) => {\n                document.getElementById(\"asistenteInput\").value = decodedText;\n                html5QrCode.stop().then(() => {\n                    reader.style.display = \"none\";\n                    document.getElementById(\"searchForm\").submit();\n                });\n            },\n            (errorMessage) => {}\n        ).catch(err => { alert(\"Error c\u00e1mara\"); reader.style.display = \"none\"; });\n    }\n    <\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-684","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/easarte.com\/en\/wp-json\/wp\/v2\/pages\/684","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/easarte.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/easarte.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/easarte.com\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/easarte.com\/en\/wp-json\/wp\/v2\/comments?post=684"}],"version-history":[{"count":16,"href":"https:\/\/easarte.com\/en\/wp-json\/wp\/v2\/pages\/684\/revisions"}],"predecessor-version":[{"id":847,"href":"https:\/\/easarte.com\/en\/wp-json\/wp\/v2\/pages\/684\/revisions\/847"}],"wp:attachment":[{"href":"https:\/\/easarte.com\/en\/wp-json\/wp\/v2\/media?parent=684"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}