{"id":4418,"date":"2026-06-24T03:10:37","date_gmt":"2026-06-24T01:10:37","guid":{"rendered":"https:\/\/bluevidaintl.com\/?page_id=4418"},"modified":"2026-06-24T03:53:40","modified_gmt":"2026-06-24T01:53:40","slug":"cv","status":"publish","type":"page","link":"https:\/\/bluevidaintl.com\/es\/cv\/","title":{"rendered":"CV"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"4418\" class=\"elementor elementor-4418\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-63cefe0 e-flex e-con-boxed e-con e-parent\" data-id=\"63cefe0\" 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-dedca88 elementor-widget elementor-widget-html\" data-id=\"dedca88\" 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=\"Generador de Hoja de Vida \u2014 Crea tu CV profesional con formato Bluevida International\">\r\n    <title>Generador de Hoja de Vida \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=\"cv-generator.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 cv-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=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"><\/path>\r\n                    <polyline points=\"14 2 14 8 20 8\"><\/polyline>\r\n                    <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"><\/line>\r\n                    <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"><\/line>\r\n                    <polyline points=\"10 9 9 9 8 9\"><\/polyline>\r\n                <\/svg>\r\n                Hoja de Vida Profesional\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\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            <div class=\"hero-content\" id=\"hero-panel\">\r\n                <span class=\"tagline\">Bluevida International \u00b7 Plataforma de Talento<\/span>\r\n                <h1 class=\"main-title\">\r\n                    <span class=\"light-text\">Crea tu<\/span><br>\r\n                    <span class=\"gradient-text\">Hoja de Vida<\/span>\r\n                <\/h1>\r\n                <p class=\"subtitle\">Completa el formulario con tu informaci\u00f3n profesional y genera una hoja de vida con el sello y membrete de Bluevida International, lista para imprimir.<\/p>\r\n\r\n                <button id=\"iniciar-btn\" class=\"cta-btn\" aria-label=\"Crear hoja de vida\">\r\n                    <svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\">\r\n                        <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"><\/path>\r\n                        <polyline points=\"14 2 14 8 20 8\"><\/polyline>\r\n                        <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"><\/line>\r\n                        <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"><\/line>\r\n                    <\/svg>\r\n                    CREAR HOJA DE VIDA\r\n                    <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\">\r\n                        <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"><\/line>\r\n                        <polyline points=\"12 5 19 12 12 19\"><\/polyline>\r\n                    <\/svg>\r\n                <\/button>\r\n            <\/div>\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         FORMULARIO\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=\"form-section\" id=\"form-section\" style=\"display:none;\">\r\n        <div class=\"container form-container\">\r\n\r\n            <div class=\"section-header\">\r\n                <div class=\"section-number\">\r\n                    <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\">\r\n                        <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"><\/path>\r\n                        <polyline points=\"14 2 14 8 20 8\"><\/polyline>\r\n                    <\/svg>\r\n                    Bluevida \u00b7 Generador de Hoja de Vida\r\n                <\/div>\r\n                <h2>Informaci\u00f3n del Candidato<\/h2>\r\n                <p>Completa todos los campos para generar tu hoja de vida profesional con membrete Bluevida International.<\/p>\r\n            <\/div>\r\n\r\n            <form id=\"cv-form\" novalidate>\r\n\r\n                <!-- \u2500\u2500\u2500 1. DATOS PERSONALES \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\r\n                <div class=\"form-card\" id=\"card-personal\">\r\n                    <div class=\"card-header\">\r\n                        <div class=\"card-icon\">\r\n                            <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\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=\"card-title-block\">\r\n                            <h3>Datos Personales<\/h3>\r\n                            <p>Informaci\u00f3n b\u00e1sica de identificaci\u00f3n<\/p>\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <div class=\"form-grid\">\r\n                        <!-- Foto -->\r\n                        <div class=\"form-group full-width\">\r\n                            <label class=\"form-label\">Foto de Perfil<\/label>\r\n                            <div class=\"photo-upload-area\" id=\"photo-drop\" onclick=\"document.getElementById('photo-input').click()\">\r\n                                <input type=\"file\" id=\"photo-input\" accept=\"image\/*\" style=\"display:none;\">\r\n                                <img id=\"photo-preview\" class=\"photo-preview\" alt=\"Foto de perfil\">\r\n                                <div id=\"photo-placeholder\">\r\n                                    <div class=\"photo-upload-icon\">\r\n                                        <svg width=\"36\" height=\"36\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\">\r\n                                            <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"><\/rect>\r\n                                            <circle cx=\"8.5\" cy=\"8.5\" r=\"1.5\"><\/circle>\r\n                                            <polyline points=\"21 15 16 10 5 21\"><\/polyline>\r\n                                        <\/svg>\r\n                                    <\/div>\r\n                                    <p class=\"photo-upload-text\">Haz clic para subir tu foto<\/p>\r\n                                    <p class=\"photo-upload-hint\">JPG, PNG \u00b7 M\u00e1x. 5MB \u00b7 Preferiblemente cuadrada<\/p>\r\n                                <\/div>\r\n                            <\/div>\r\n                        <\/div>\r\n\r\n                        <div class=\"form-group\">\r\n                            <label class=\"form-label\" for=\"nombres\">Nombres <span class=\"required\">*<\/span><\/label>\r\n                            <input type=\"text\" id=\"nombres\" class=\"form-input\" placeholder=\"Ej: Juan Carlos\" required>\r\n                        <\/div>\r\n\r\n                        <div class=\"form-group\">\r\n                            <label class=\"form-label\" for=\"apellidos\">Apellidos <span class=\"required\">*<\/span><\/label>\r\n                            <input type=\"text\" id=\"apellidos\" class=\"form-input\" placeholder=\"Ej: Garc\u00eda L\u00f3pez\" required>\r\n                        <\/div>\r\n\r\n                        <div class=\"form-group\">\r\n                            <label class=\"form-label\" for=\"titulo-profesional\">T\u00edtulo o Cargo Profesional <span class=\"required\">*<\/span><\/label>\r\n                            <input type=\"text\" id=\"titulo-profesional\" class=\"form-input\" placeholder=\"Ej: Consultor de Salud Senior\" required>\r\n                        <\/div>\r\n\r\n                        <div class=\"form-group\">\r\n                            <label class=\"form-label\" for=\"fecha-nacimiento\">Fecha de Nacimiento<\/label>\r\n                            <input type=\"date\" id=\"fecha-nacimiento\" class=\"form-input\">\r\n                        <\/div>\r\n\r\n                        <div class=\"form-group\">\r\n                            <label class=\"form-label\" for=\"nacionalidad\">Nacionalidad<\/label>\r\n                            <input type=\"text\" id=\"nacionalidad\" class=\"form-input\" placeholder=\"Ej: Colombiana\">\r\n                        <\/div>\r\n\r\n                        <div class=\"form-group\">\r\n                            <label class=\"form-label\" for=\"estado-civil\">Estado Civil<\/label>\r\n                            <select id=\"estado-civil\" class=\"form-select\">\r\n                                <option value=\"\">\u2014 Seleccionar \u2014<\/option>\r\n                                <option value=\"Soltero\/a\">Soltero\/a<\/option>\r\n                                <option value=\"Casado\/a\">Casado\/a<\/option>\r\n                                <option value=\"Uni\u00f3n libre\">Uni\u00f3n libre<\/option>\r\n                                <option value=\"Divorciado\/a\">Divorciado\/a<\/option>\r\n                                <option value=\"Viudo\/a\">Viudo\/a<\/option>\r\n                            <\/select>\r\n                        <\/div>\r\n\r\n                        <div class=\"form-group\">\r\n                            <label class=\"form-label\" for=\"ciudad\">Ciudad \/ Pa\u00eds<\/label>\r\n                            <input type=\"text\" id=\"ciudad\" class=\"form-input\" placeholder=\"Ej: Bogot\u00e1, Colombia\">\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <!-- \u2500\u2500\u2500 2. CONTACTO \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                <div class=\"form-card\" id=\"card-contacto\">\r\n                    <div class=\"card-header\">\r\n                        <div class=\"card-icon\">\r\n                            <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n                                <path d=\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07A19.5 19.5 0 0 1 4.69 13 19.79 19.79 0 0 1 1.61 4.38 2 2 0 0 1 3.58 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L7.91 9.91a16 16 0 0 0 6.18 6.18l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"><\/path>\r\n                            <\/svg>\r\n                        <\/div>\r\n                        <div class=\"card-title-block\">\r\n                            <h3>Informaci\u00f3n de Contacto<\/h3>\r\n                            <p>Datos para que los reclutadores te contacten<\/p>\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <div class=\"form-grid\">\r\n                        <div class=\"form-group\">\r\n                            <label class=\"form-label\" for=\"correo\">Correo Electr\u00f3nico <span class=\"required\">*<\/span><\/label>\r\n                            <input type=\"email\" id=\"correo\" class=\"form-input\" placeholder=\"correo@ejemplo.com\" required>\r\n                        <\/div>\r\n\r\n                        <div class=\"form-group\">\r\n                            <label class=\"form-label\" for=\"telefono\">Tel\u00e9fono \/ WhatsApp<\/label>\r\n                            <input type=\"tel\" id=\"telefono\" class=\"form-input\" placeholder=\"+57 300 000 0000\">\r\n                        <\/div>\r\n\r\n                        <div class=\"form-group\">\r\n                            <label class=\"form-label\" for=\"linkedin\">LinkedIn (URL o usuario)<\/label>\r\n                            <input type=\"text\" id=\"linkedin\" class=\"form-input\" placeholder=\"linkedin.com\/in\/usuario\">\r\n                        <\/div>\r\n\r\n                        <div class=\"form-group\">\r\n                            <label class=\"form-label\" for=\"sitio-web\">Sitio Web \/ Portfolio<\/label>\r\n                            <input type=\"url\" id=\"sitio-web\" class=\"form-input\" placeholder=\"https:\/\/miweb.com\">\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <!-- \u2500\u2500\u2500 3. PERFIL PROFESIONAL \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\r\n                <div class=\"form-card\" id=\"card-perfil\">\r\n                    <div class=\"card-header\">\r\n                        <div class=\"card-icon\">\r\n                            <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n                                <circle cx=\"12\" cy=\"12\" r=\"10\"><\/circle>\r\n                                <line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"><\/line>\r\n                                <line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"><\/line>\r\n                            <\/svg>\r\n                        <\/div>\r\n                        <div class=\"card-title-block\">\r\n                            <h3>Perfil Profesional<\/h3>\r\n                            <p>Resumen o extracto que define tu propuesta de valor<\/p>\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <div class=\"form-grid cols-1\">\r\n                        <div class=\"form-group\">\r\n                            <label class=\"form-label\" for=\"perfil\">Descripci\u00f3n del Perfil <span class=\"required\">*<\/span><\/label>\r\n                            <textarea id=\"perfil\" class=\"form-textarea\" rows=\"4\"\r\n                                placeholder=\"Escribe un p\u00e1rrafo sobre tu experiencia, fortalezas y lo que aportas. Ej: Profesional con m\u00e1s de 10 a\u00f1os de experiencia en el sector salud, especializado en consultor\u00eda y gesti\u00f3n de proyectos de bienestar integral...\" required style=\"min-height:130px;\"><\/textarea>\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <!-- \u2500\u2500\u2500 4. EXPERIENCIA LABORAL \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\r\n                <div class=\"form-card\" id=\"card-experiencia\">\r\n                    <div class=\"card-header\">\r\n                        <div class=\"card-icon\">\r\n                            <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n                                <rect x=\"2\" y=\"7\" width=\"20\" height=\"14\" rx=\"2\" ry=\"2\"><\/rect>\r\n                                <path d=\"M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16\"><\/path>\r\n                            <\/svg>\r\n                        <\/div>\r\n                        <div class=\"card-title-block\">\r\n                            <h3>Experiencia Laboral<\/h3>\r\n                            <p>Registra tus cargos y logros m\u00e1s relevantes<\/p>\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <div class=\"entries-list\" id=\"experience-list\">\r\n                        <!-- Se agregan din\u00e1micamente -->\r\n                    <\/div>\r\n\r\n                    <button type=\"button\" class=\"add-entry-btn\" id=\"add-experience-btn\">\r\n                        <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\">\r\n                            <line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"><\/line>\r\n                            <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"><\/line>\r\n                        <\/svg>\r\n                        Agregar Experiencia\r\n                    <\/button>\r\n                <\/div>\r\n\r\n                <!-- \u2500\u2500\u2500 5. EDUCACI\u00d3N \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                <div class=\"form-card\" id=\"card-educacion\">\r\n                    <div class=\"card-header\">\r\n                        <div class=\"card-icon\">\r\n                            <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n                                <path d=\"M22 10v6M2 10l10-5 10 5-10 5z\"><\/path>\r\n                                <path d=\"M6 12v5c3 3 9 3 12 0v-5\"><\/path>\r\n                            <\/svg>\r\n                        <\/div>\r\n                        <div class=\"card-title-block\">\r\n                            <h3>Formaci\u00f3n Acad\u00e9mica<\/h3>\r\n                            <p>Estudios, t\u00edtulos y certificaciones relevantes<\/p>\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <div class=\"entries-list\" id=\"education-list\">\r\n                        <!-- Se agregan din\u00e1micamente -->\r\n                    <\/div>\r\n\r\n                    <button type=\"button\" class=\"add-entry-btn\" id=\"add-education-btn\">\r\n                        <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\">\r\n                            <line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"><\/line>\r\n                            <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"><\/line>\r\n                        <\/svg>\r\n                        Agregar Estudio\r\n                    <\/button>\r\n                <\/div>\r\n\r\n                <!-- \u2500\u2500\u2500 6. HABILIDADES \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                <div class=\"form-card\" id=\"card-habilidades\">\r\n                    <div class=\"card-header\">\r\n                        <div class=\"card-icon\">\r\n                            <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n                                <polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"><\/polygon>\r\n                            <\/svg>\r\n                        <\/div>\r\n                        <div class=\"card-title-block\">\r\n                            <h3>Habilidades y Competencias<\/h3>\r\n                            <p>Escribe tus habilidades y presiona Enter para agregarlas<\/p>\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <div class=\"form-grid cols-1\">\r\n                        <div class=\"form-group\">\r\n                            <label class=\"form-label\">Habilidades T\u00e9cnicas<\/label>\r\n                            <div class=\"skills-input-wrapper\" id=\"skills-wrapper\" onclick=\"document.getElementById('skills-input').focus()\">\r\n                                <input type=\"text\" id=\"skills-input\" class=\"skills-text-input\"\r\n                                    placeholder=\"Escribe una habilidad y presiona Enter\u2026\" autocomplete=\"off\">\r\n                            <\/div>\r\n                            <p class=\"skills-hint\">Ejemplos: Microsoft Office, CRM, Gesti\u00f3n de proyectos, An\u00e1lisis de datos\u2026<\/p>\r\n                        <\/div>\r\n\r\n                        <div class=\"form-group\">\r\n                            <label class=\"form-label\">Habilidades Blandas<\/label>\r\n                            <div class=\"skills-input-wrapper\" id=\"soft-skills-wrapper\" onclick=\"document.getElementById('soft-skills-input').focus()\">\r\n                                <input type=\"text\" id=\"soft-skills-input\" class=\"skills-text-input\"\r\n                                    placeholder=\"Escribe una habilidad y presiona Enter\u2026\" autocomplete=\"off\">\r\n                            <\/div>\r\n                            <p class=\"skills-hint\">Ejemplos: Liderazgo, Trabajo en equipo, Comunicaci\u00f3n efectiva, Adaptabilidad\u2026<\/p>\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <!-- \u2500\u2500\u2500 7. IDIOMAS \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                <div class=\"form-card\" id=\"card-idiomas\">\r\n                    <div class=\"card-header\">\r\n                        <div class=\"card-icon\">\r\n                            <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\r\n                                <circle cx=\"12\" cy=\"12\" r=\"10\"><\/circle>\r\n                                <line x1=\"2\" y1=\"12\" x2=\"22\" y2=\"12\"><\/line>\r\n                                <path d=\"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z\"><\/path>\r\n                            <\/svg>\r\n                        <\/div>\r\n                        <div class=\"card-title-block\">\r\n                            <h3>Idiomas<\/h3>\r\n                            <p>Indica los idiomas que manejas y tu nivel<\/p>\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <div class=\"entries-list\" id=\"languages-list\">\r\n                        <!-- Se agregan din\u00e1micamente -->\r\n                    <\/div>\r\n\r\n                    <button type=\"button\" class=\"add-entry-btn\" id=\"add-language-btn\">\r\n                        <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\">\r\n                            <line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"><\/line>\r\n                            <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"><\/line>\r\n                        <\/svg>\r\n                        Agregar Idioma\r\n                    <\/button>\r\n                <\/div>\r\n\r\n                <!-- \u2500\u2500\u2500 8. REFERENCIAS \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                <div class=\"form-card\" id=\"card-referencias\">\r\n                    <div class=\"card-header\">\r\n                        <div class=\"card-icon\">\r\n                            <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\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                        <\/div>\r\n                        <div class=\"card-title-block\">\r\n                            <h3>Referencias Profesionales<\/h3>\r\n                            <p>Personas que puedan avalar tu trayectoria (opcional)<\/p>\r\n                        <\/div>\r\n                    <\/div>\r\n\r\n                    <div class=\"entries-list\" id=\"references-list\">\r\n                        <!-- Se agregan din\u00e1micamente -->\r\n                    <\/div>\r\n\r\n                    <button type=\"button\" class=\"add-entry-btn\" id=\"add-reference-btn\">\r\n                        <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\">\r\n                            <line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"><\/line>\r\n                            <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"><\/line>\r\n                        <\/svg>\r\n                        Agregar Referencia\r\n                    <\/button>\r\n                <\/div>\r\n\r\n                <!-- \u2500\u2500\u2500 GENERATE BTN \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                <div class=\"generate-section\">\r\n                    <button type=\"submit\" class=\"generate-btn\" id=\"generate-btn\">\r\n                        <svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\">\r\n                            <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"><\/path>\r\n                            <polyline points=\"14 2 14 8 20 8\"><\/polyline>\r\n                            <line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"><\/line>\r\n                            <line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"><\/line>\r\n                        <\/svg>\r\n                        CREAR HOJA DE VIDA\r\n                    <\/button>\r\n                    <p class=\"generate-hint\">Se generar\u00e1 una vista previa lista para imprimir o guardar como PDF.<\/p>\r\n                <\/div>\r\n\r\n            <\/form>\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         MODAL \u2014 VISTA PREVIA CV\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    <div id=\"cv-modal\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Vista previa de hoja de vida\">\r\n        <div class=\"modal-inner\">\r\n\r\n            <!-- Actions bar -->\r\n            <div class=\"modal-actions\">\r\n                <button class=\"modal-btn modal-btn-print\" id=\"print-cv-btn\">\r\n                    <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\">\r\n                        <polyline points=\"6 9 6 2 18 2 18 9\"><\/polyline>\r\n                        <path d=\"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2\"><\/path>\r\n                        <rect x=\"6\" y=\"14\" width=\"12\" height=\"8\"><\/rect>\r\n                    <\/svg>\r\n                    Imprimir \/ Guardar PDF\r\n                <\/button>\r\n                <button class=\"modal-btn modal-btn-close\" id=\"close-modal-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=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"><\/line>\r\n                        <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"><\/line>\r\n                    <\/svg>\r\n                    Editar Datos\r\n                <\/button>\r\n            <\/div>\r\n\r\n            <!-- CV Document -->\r\n            <div id=\"cv-document\">\r\n\r\n                <!-- CV Header (Membrete Bluevida) -->\r\n                <div class=\"cv-header\">\r\n                    <div class=\"cv-header-top\">\r\n                        <div class=\"cv-brand\">\r\n                            <img decoding=\"async\" src=\"https:\/\/bluevidaintl.com\/wp-content\/uploads\/2026\/05\/1.png\" alt=\"Bluevida International\">\r\n                            <span class=\"cv-brand-tagline\">Plataforma de Talento Profesional<\/span>\r\n                        <\/div>\r\n                        <div class=\"cv-photo-container\">\r\n                            <img id=\"cv-photo-out\" class=\"cv-photo\" alt=\"Foto de perfil\" style=\"display:none;\">\r\n                            <div id=\"cv-photo-placeholder\" class=\"cv-photo-placeholder\">\r\n                                <svg width=\"36\" height=\"36\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\">\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>\r\n                    <\/div>\r\n\r\n                    <div class=\"cv-main-info\">\r\n                        <div class=\"cv-name\" id=\"cv-name-out\">\u2014<\/div>\r\n                        <div class=\"cv-title\" id=\"cv-title-out\">\u2014<\/div>\r\n\r\n                        <div class=\"cv-contact-strip\" id=\"cv-contact-strip\">\r\n                            <!-- Filled by JS -->\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <!-- Accent bar -->\r\n                <div class=\"cv-accent-bar\"><\/div>\r\n\r\n                <!-- CV Body -->\r\n                <div class=\"cv-body\">\r\n\r\n                    <!-- Sidebar -->\r\n                    <aside class=\"cv-sidebar\">\r\n\r\n                        <!-- Datos personales sidebar -->\r\n                        <div class=\"cv-section\" id=\"cv-personal-sidebar\">\r\n                            <div class=\"cv-section-title\">Datos Personales<\/div>\r\n                            <div id=\"cv-personal-details\"><\/div>\r\n                        <\/div>\r\n\r\n                        <!-- Idiomas -->\r\n                        <div class=\"cv-section\" id=\"cv-lang-section\" style=\"display:none;\">\r\n                            <div class=\"cv-section-title\">Idiomas<\/div>\r\n                            <div id=\"cv-languages-out\"><\/div>\r\n                        <\/div>\r\n\r\n                        <!-- Habilidades blandas -->\r\n                        <div class=\"cv-section\" id=\"cv-soft-section\" style=\"display:none;\">\r\n                            <div class=\"cv-section-title\">Habilidades Blandas<\/div>\r\n                            <div class=\"cv-tags-wrap\" id=\"cv-soft-skills-out\"><\/div>\r\n                        <\/div>\r\n\r\n                    <\/aside>\r\n\r\n                    <!-- Main content -->\r\n                    <main class=\"cv-main\">\r\n\r\n                        <!-- Perfil profesional -->\r\n                        <div class=\"cv-section\">\r\n                            <div class=\"cv-section-title\">Perfil Profesional<\/div>\r\n                            <p class=\"cv-profile-text\" id=\"cv-perfil-out\">\u2014<\/p>\r\n                        <\/div>\r\n\r\n                        <!-- Experiencia -->\r\n                        <div class=\"cv-section\" id=\"cv-exp-section\" style=\"display:none;\">\r\n                            <div class=\"cv-section-title\">Experiencia Laboral<\/div>\r\n                            <div id=\"cv-experience-out\"><\/div>\r\n                        <\/div>\r\n\r\n                        <!-- Educaci\u00f3n -->\r\n                        <div class=\"cv-section\" id=\"cv-edu-section\" style=\"display:none;\">\r\n                            <div class=\"cv-section-title\">Formaci\u00f3n Acad\u00e9mica<\/div>\r\n                            <div id=\"cv-education-out\"><\/div>\r\n                        <\/div>\r\n\r\n                        <!-- Habilidades t\u00e9cnicas -->\r\n                        <div class=\"cv-section\" id=\"cv-skills-section\" style=\"display:none;\">\r\n                            <div class=\"cv-section-title\">Habilidades T\u00e9cnicas<\/div>\r\n                            <div class=\"cv-tags-wrap\" id=\"cv-skills-out\"><\/div>\r\n                        <\/div>\r\n\r\n                        <!-- Referencias -->\r\n                        <div class=\"cv-section\" id=\"cv-ref-section\" style=\"display:none;\">\r\n                            <div class=\"cv-section-title\">Referencias Profesionales<\/div>\r\n                            <div id=\"cv-references-out\" style=\"display:grid; grid-template-columns:1fr 1fr; gap:16px;\"><\/div>\r\n                        <\/div>\r\n\r\n                    <\/main>\r\n                <\/div>\r\n\r\n                <!-- CV Footer -->\r\n                <div class=\"cv-footer\">\r\n                    <span class=\"cv-footer-text\">Documento generado por la Plataforma de Talento Bluevida International \u00b7 <span id=\"cv-footer-date\"><\/span><\/span>\r\n                    <span class=\"cv-footer-brand\">bluevidaintl.com<\/span>\r\n                <\/div>\r\n\r\n            <\/div><!-- \/#cv-document -->\r\n        <\/div><!-- \/.modal-inner -->\r\n    <\/div><!-- \/#cv-modal -->\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    \/\/ \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\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n    \/\/  ESTADO GLOBAL\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\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n    let techSkills = [];\r\n    let softSkills = [];\r\n    let photoDataUrl = null;\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\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n    \/\/  MOSTRAR FORMULARIO AL HACER CLIC EN \"CREAR HOJA DE VIDA\"\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\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n    document.getElementById('iniciar-btn').addEventListener('click', function () {\r\n        document.getElementById('form-section').style.display = 'block';\r\n        document.getElementById('form-section').scrollIntoView({ behavior: 'smooth', block: 'start' });\r\n\r\n        \/\/ Init default entries\r\n        if (document.getElementById('experience-list').children.length === 0) addExperience();\r\n        if (document.getElementById('education-list').children.length === 0) addEducation();\r\n        if (document.getElementById('languages-list').children.length === 0) addLanguage();\r\n    });\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\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n    \/\/  FOTO DE PERFIL\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\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n    document.getElementById('photo-input').addEventListener('change', function (e) {\r\n        const file = e.target.files[0];\r\n        if (!file) return;\r\n        if (file.size > 5 * 1024 * 1024) { alert('La imagen no puede superar 5MB.'); return; }\r\n\r\n        const reader = new FileReader();\r\n        reader.onload = function (ev) {\r\n            photoDataUrl = ev.target.result;\r\n            const preview = document.getElementById('photo-preview');\r\n            preview.src = photoDataUrl;\r\n            preview.style.display = 'block';\r\n            document.getElementById('photo-placeholder').style.display = 'none';\r\n        };\r\n        reader.readAsDataURL(file);\r\n    });\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\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n    \/\/  HABILIDADES \u2014 TAG INPUT\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\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n    function setupSkillsInput(inputId, wrapperId, skillsArray) {\r\n        const input = document.getElementById(inputId);\r\n        const wrapper = document.getElementById(wrapperId);\r\n\r\n        function addSkill(val) {\r\n            const v = val.trim();\r\n            if (!v || skillsArray.includes(v)) return;\r\n            skillsArray.push(v);\r\n            renderSkills(wrapper, skillsArray);\r\n        }\r\n\r\n        function renderSkills(w, arr) {\r\n            \/\/ Remove existing tags (keep input)\r\n            Array.from(w.querySelectorAll('.skill-tag')).forEach(t => t.remove());\r\n            arr.forEach((s, i) => {\r\n                const tag = document.createElement('span');\r\n                tag.className = 'skill-tag';\r\n                tag.innerHTML = `${s}<button type=\"button\" aria-label=\"Eliminar ${s}\"><svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg><\/button>`;\r\n                tag.querySelector('button').addEventListener('click', () => {\r\n                    arr.splice(i, 1);\r\n                    renderSkills(w, arr);\r\n                });\r\n                w.insertBefore(tag, input);\r\n            });\r\n        }\r\n\r\n        input.addEventListener('keydown', function (e) {\r\n            if (e.key === 'Enter' || e.key === ',') {\r\n                e.preventDefault();\r\n                addSkill(this.value);\r\n                this.value = '';\r\n            } else if (e.key === 'Backspace' && this.value === '' && skillsArray.length > 0) {\r\n                skillsArray.pop();\r\n                renderSkills(wrapper, skillsArray);\r\n            }\r\n        });\r\n\r\n        input.addEventListener('blur', function () {\r\n            if (this.value.trim()) { addSkill(this.value); this.value = ''; }\r\n        });\r\n    }\r\n\r\n    setupSkillsInput('skills-input', 'skills-wrapper', techSkills);\r\n    setupSkillsInput('soft-skills-input', 'soft-skills-wrapper', softSkills);\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\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n    \/\/  EXPERIENCIA LABORAL \u2014 DYNAMIC ENTRIES\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\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n    let expCount = 0;\r\n\r\n    function addExperience() {\r\n        expCount++;\r\n        const n = expCount;\r\n        const el = document.createElement('div');\r\n        el.className = 'entry-block';\r\n        el.id = `exp-${n}`;\r\n        el.innerHTML = `\r\n            <div class=\"entry-block-header\">\r\n                <span class=\"entry-number\">Cargo #${n}<\/span>\r\n                <button type=\"button\" class=\"remove-entry-btn\" onclick=\"removeEntry('exp-${n}')\">\r\n                    <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\">\r\n                        <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/>\r\n                    <\/svg>\r\n                <\/button>\r\n            <\/div>\r\n            <div class=\"form-grid\">\r\n                <div class=\"form-group\">\r\n                    <label class=\"form-label\" for=\"exp-cargo-${n}\">Cargo \/ Posici\u00f3n<\/label>\r\n                    <input type=\"text\" id=\"exp-cargo-${n}\" class=\"form-input\" placeholder=\"Ej: Gerente de Proyectos\">\r\n                <\/div>\r\n                <div class=\"form-group\">\r\n                    <label class=\"form-label\" for=\"exp-empresa-${n}\">Empresa \/ Organizaci\u00f3n<\/label>\r\n                    <input type=\"text\" id=\"exp-empresa-${n}\" class=\"form-input\" placeholder=\"Ej: Bluevida International\">\r\n                <\/div>\r\n                <div class=\"form-group\">\r\n                    <label class=\"form-label\" for=\"exp-inicio-${n}\">Fecha de Inicio<\/label>\r\n                    <input type=\"month\" id=\"exp-inicio-${n}\" class=\"form-input\">\r\n                <\/div>\r\n                <div class=\"form-group\">\r\n                    <label class=\"form-label\" for=\"exp-fin-${n}\">Fecha de Fin<\/label>\r\n                    <input type=\"month\" id=\"exp-fin-${n}\" class=\"form-input\" placeholder=\"Actualidad\">\r\n                <\/div>\r\n                <div class=\"form-group full-width\">\r\n                    <label class=\"form-label\" for=\"exp-actual-${n}\" style=\"display:flex; align-items:center; gap:8px; cursor:pointer; text-transform:none; letter-spacing:0;\">\r\n                        <input type=\"checkbox\" id=\"exp-actual-${n}\" onchange=\"toggleActual(${n})\">\r\n                        <span style=\"font-size:0.85rem; font-weight:600; color:var(--text-body);\">Trabajo actualmente aqu\u00ed<\/span>\r\n                    <\/label>\r\n                <\/div>\r\n                <div class=\"form-group full-width\">\r\n                    <label class=\"form-label\" for=\"exp-desc-${n}\">Descripci\u00f3n y Logros<\/label>\r\n                    <textarea id=\"exp-desc-${n}\" class=\"form-textarea\" rows=\"3\"\r\n                        placeholder=\"Describe tus responsabilidades y logros m\u00e1s destacados en este cargo\u2026\"><\/textarea>\r\n                <\/div>\r\n            <\/div>`;\r\n        document.getElementById('experience-list').appendChild(el);\r\n    }\r\n\r\n    function toggleActual(n) {\r\n        const cb = document.getElementById(`exp-actual-${n}`);\r\n        const finInput = document.getElementById(`exp-fin-${n}`);\r\n        if (cb.checked) {\r\n            finInput.value = '';\r\n            finInput.disabled = true;\r\n            finInput.placeholder = 'Actualidad';\r\n        } else {\r\n            finInput.disabled = false;\r\n        }\r\n    }\r\n\r\n    document.getElementById('add-experience-btn').addEventListener('click', addExperience);\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\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n    \/\/  EDUCACI\u00d3N \u2014 DYNAMIC ENTRIES\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\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n    let eduCount = 0;\r\n\r\n    function addEducation() {\r\n        eduCount++;\r\n        const n = eduCount;\r\n        const el = document.createElement('div');\r\n        el.className = 'entry-block';\r\n        el.id = `edu-${n}`;\r\n        el.innerHTML = `\r\n            <div class=\"entry-block-header\">\r\n                <span class=\"entry-number\">Estudio #${n}<\/span>\r\n                <button type=\"button\" class=\"remove-entry-btn\" onclick=\"removeEntry('edu-${n}')\">\r\n                    <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\">\r\n                        <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/>\r\n                    <\/svg>\r\n                <\/button>\r\n            <\/div>\r\n            <div class=\"form-grid\">\r\n                <div class=\"form-group\">\r\n                    <label class=\"form-label\" for=\"edu-titulo-${n}\">T\u00edtulo \/ Certificado<\/label>\r\n                    <input type=\"text\" id=\"edu-titulo-${n}\" class=\"form-input\" placeholder=\"Ej: Maestr\u00eda en Salud P\u00fablica\">\r\n                <\/div>\r\n                <div class=\"form-group\">\r\n                    <label class=\"form-label\" for=\"edu-inst-${n}\">Instituci\u00f3n<\/label>\r\n                    <input type=\"text\" id=\"edu-inst-${n}\" class=\"form-input\" placeholder=\"Ej: Universidad Nacional\">\r\n                <\/div>\r\n                <div class=\"form-group\">\r\n                    <label class=\"form-label\" for=\"edu-nivel-${n}\">Nivel de Estudio<\/label>\r\n                    <select id=\"edu-nivel-${n}\" class=\"form-select\">\r\n                        <option value=\"\">\u2014 Seleccionar \u2014<\/option>\r\n                        <option>Bachillerato<\/option>\r\n                        <option>T\u00e9cnico \/ Tecn\u00f3logo<\/option>\r\n                        <option>Pregrado \/ Licenciatura<\/option>\r\n                        <option>Especializaci\u00f3n<\/option>\r\n                        <option>Maestr\u00eda \/ MBA<\/option>\r\n                        <option>Doctorado<\/option>\r\n                        <option>Certificaci\u00f3n \/ Curso<\/option>\r\n                    <\/select>\r\n                <\/div>\r\n                <div class=\"form-group\">\r\n                    <label class=\"form-label\" for=\"edu-anio-${n}\">A\u00f1o de Grado \/ Finalizaci\u00f3n<\/label>\r\n                    <input type=\"text\" id=\"edu-anio-${n}\" class=\"form-input\" placeholder=\"Ej: 2018 o En curso\">\r\n                <\/div>\r\n            <\/div>`;\r\n        document.getElementById('education-list').appendChild(el);\r\n    }\r\n\r\n    document.getElementById('add-education-btn').addEventListener('click', addEducation);\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\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n    \/\/  IDIOMAS \u2014 DYNAMIC ENTRIES\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\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n    let langCount = 0;\r\n\r\n    function addLanguage() {\r\n        langCount++;\r\n        const n = langCount;\r\n        const el = document.createElement('div');\r\n        el.className = 'entry-block';\r\n        el.id = `lang-${n}`;\r\n        el.innerHTML = `\r\n            <div class=\"entry-block-header\">\r\n                <span class=\"entry-number\">Idioma #${n}<\/span>\r\n                <button type=\"button\" class=\"remove-entry-btn\" onclick=\"removeEntry('lang-${n}')\">\r\n                    <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\">\r\n                        <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/>\r\n                    <\/svg>\r\n                <\/button>\r\n            <\/div>\r\n            <div class=\"language-entry\">\r\n                <div class=\"form-group\">\r\n                    <label class=\"form-label\" for=\"lang-name-${n}\">Idioma<\/label>\r\n                    <input type=\"text\" id=\"lang-name-${n}\" class=\"form-input\" placeholder=\"Ej: Ingl\u00e9s\">\r\n                <\/div>\r\n                <div class=\"form-group\">\r\n                    <label class=\"form-label\" for=\"lang-level-${n}\">Nivel<\/label>\r\n                    <select id=\"lang-level-${n}\" class=\"form-select\">\r\n                        <option value=\"\">\u2014 Nivel \u2014<\/option>\r\n                        <option value=\"B\u00e1sico\">B\u00e1sico (A1-A2)<\/option>\r\n                        <option value=\"Intermedio\">Intermedio (B1-B2)<\/option>\r\n                        <option value=\"Avanzado\">Avanzado (C1-C2)<\/option>\r\n                        <option value=\"Nativo\">Nativo \/ Biling\u00fce<\/option>\r\n                    <\/select>\r\n                <\/div>\r\n            <\/div>`;\r\n        document.getElementById('languages-list').appendChild(el);\r\n    }\r\n\r\n    document.getElementById('add-language-btn').addEventListener('click', addLanguage);\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\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n    \/\/  REFERENCIAS \u2014 DYNAMIC ENTRIES\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\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n    let refCount = 0;\r\n\r\n    function addReference() {\r\n        refCount++;\r\n        const n = refCount;\r\n        const el = document.createElement('div');\r\n        el.className = 'entry-block';\r\n        el.id = `ref-${n}`;\r\n        el.innerHTML = `\r\n            <div class=\"entry-block-header\">\r\n                <span class=\"entry-number\">Referencia #${n}<\/span>\r\n                <button type=\"button\" class=\"remove-entry-btn\" onclick=\"removeEntry('ref-${n}')\">\r\n                    <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\">\r\n                        <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/>\r\n                    <\/svg>\r\n                <\/button>\r\n            <\/div>\r\n            <div class=\"form-grid\">\r\n                <div class=\"form-group\">\r\n                    <label class=\"form-label\" for=\"ref-nombre-${n}\">Nombre Completo<\/label>\r\n                    <input type=\"text\" id=\"ref-nombre-${n}\" class=\"form-input\" placeholder=\"Ej: Dr. Andr\u00e9s Mora\">\r\n                <\/div>\r\n                <div class=\"form-group\">\r\n                    <label class=\"form-label\" for=\"ref-cargo-${n}\">Cargo \/ Empresa<\/label>\r\n                    <input type=\"text\" id=\"ref-cargo-${n}\" class=\"form-input\" placeholder=\"Ej: Director, Cl\u00ednica Salud Total\">\r\n                <\/div>\r\n                <div class=\"form-group\">\r\n                    <label class=\"form-label\" for=\"ref-tel-${n}\">Tel\u00e9fono<\/label>\r\n                    <input type=\"tel\" id=\"ref-tel-${n}\" class=\"form-input\" placeholder=\"+57 300 000 0000\">\r\n                <\/div>\r\n                <div class=\"form-group\">\r\n                    <label class=\"form-label\" for=\"ref-correo-${n}\">Correo Electr\u00f3nico<\/label>\r\n                    <input type=\"email\" id=\"ref-correo-${n}\" class=\"form-input\" placeholder=\"referencia@empresa.com\">\r\n                <\/div>\r\n            <\/div>`;\r\n        document.getElementById('references-list').appendChild(el);\r\n    }\r\n\r\n    document.getElementById('add-reference-btn').addEventListener('click', addReference);\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\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n    \/\/  REMOVE ENTRY (gen\u00e9rico)\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\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n    function removeEntry(id) {\r\n        const el = document.getElementById(id);\r\n        if (el) el.remove();\r\n    }\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\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n    \/\/  HELPERS\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\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n    function val(id) {\r\n        const el = document.getElementById(id);\r\n        return el ? el.value.trim() : '';\r\n    }\r\n\r\n    function fmtMonth(ym) {\r\n        if (!ym) return '';\r\n        const [y, m] = ym.split('-');\r\n        const months = ['Ene','Feb','Mar','Abr','May','Jun','Jul','Ago','Sep','Oct','Nov','Dic'];\r\n        return `${months[parseInt(m, 10) - 1]} ${y}`;\r\n    }\r\n\r\n    function esc(str) {\r\n        const d = document.createElement('div');\r\n        d.textContent = str;\r\n        return d.innerHTML;\r\n    }\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\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n    \/\/  GENERAR CV\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\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n    document.getElementById('cv-form').addEventListener('submit', function (e) {\r\n        e.preventDefault();\r\n\r\n        \/\/ Validate required\r\n        const nombres = val('nombres');\r\n        const apellidos = val('apellidos');\r\n        const titulo = val('titulo-profesional');\r\n        const perfil = val('perfil');\r\n\r\n        if (!nombres || !apellidos || !titulo || !perfil) {\r\n            alert('Por favor completa los campos obligatorios: Nombres, Apellidos, T\u00edtulo Profesional y Perfil.');\r\n            return;\r\n        }\r\n\r\n        buildCV({ nombres, apellidos, titulo, perfil });\r\n        openModal();\r\n    });\r\n\r\n    function buildCV({ nombres, apellidos, titulo, perfil }) {\r\n        \/\/ \u2500\u2500 Name & title \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\u2500\r\n        document.getElementById('cv-name-out').textContent = `${nombres} ${apellidos}`;\r\n        document.getElementById('cv-title-out').textContent = titulo;\r\n\r\n        \/\/ \u2500\u2500 Contact strip \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        const contactItems = [];\r\n        const correo = val('correo');\r\n        const tel    = val('telefono');\r\n        const ciudad = val('ciudad');\r\n        const li     = val('linkedin');\r\n        const web    = val('sitio-web');\r\n\r\n        if (correo) contactItems.push(`<span class=\"cv-contact-item\"><svg width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><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\"\/><polyline points=\"22,6 12,13 2,6\"\/><\/svg>${esc(correo)}<\/span>`);\r\n        if (tel)    contactItems.push(`<span class=\"cv-contact-item\"><svg width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07A19.5 19.5 0 0 1 4.69 13 19.79 19.79 0 0 1 1.61 4.38 2 2 0 0 1 3.58 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L7.91 9.91a16 16 0 0 0 6.18 6.18l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"\/><\/svg>${esc(tel)}<\/span>`);\r\n        if (ciudad) contactItems.push(`<span class=\"cv-contact-item\"><svg width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z\"\/><circle cx=\"12\" cy=\"10\" r=\"3\"\/><\/svg>${esc(ciudad)}<\/span>`);\r\n        if (li)     contactItems.push(`<span class=\"cv-contact-item\"><svg width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z\"\/><rect x=\"2\" y=\"9\" width=\"4\" height=\"12\"\/><circle cx=\"4\" cy=\"4\" r=\"2\"\/><\/svg>${esc(li)}<\/span>`);\r\n        if (web)    contactItems.push(`<span class=\"cv-contact-item\"><svg width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"2\" y1=\"12\" x2=\"22\" y2=\"12\"\/><path d=\"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z\"\/><\/svg>${esc(web)}<\/span>`);\r\n\r\n        document.getElementById('cv-contact-strip').innerHTML = contactItems.join('');\r\n\r\n        \/\/ \u2500\u2500 Photo \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\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n        if (photoDataUrl) {\r\n            document.getElementById('cv-photo-out').src = photoDataUrl;\r\n            document.getElementById('cv-photo-out').style.display = 'block';\r\n            document.getElementById('cv-photo-placeholder').style.display = 'none';\r\n        } else {\r\n            document.getElementById('cv-photo-out').style.display = 'none';\r\n            document.getElementById('cv-photo-placeholder').style.display = 'flex';\r\n        }\r\n\r\n        \/\/ \u2500\u2500 Personal details sidebar \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 nacimiento = val('fecha-nacimiento');\r\n        const nac        = val('nacionalidad');\r\n        const civil      = val('estado-civil');\r\n        let personalHTML = '';\r\n        const personalItems = [];\r\n        if (nacimiento) personalItems.push({ icon: '\ud83d\udcc5', label: 'Fecha de Nacimiento', val: new Date(nacimiento + 'T00:00:00').toLocaleDateString('es-ES', {day:'numeric', month:'long', year:'numeric'}) });\r\n        if (nac)        personalItems.push({ icon: '\ud83c\udf0e', label: 'Nacionalidad', val: nac });\r\n        if (civil)      personalItems.push({ icon: '\ud83d\udc8d', label: 'Estado Civil', val: civil });\r\n        if (ciudad)     personalItems.push({ icon: '\ud83d\udccd', label: 'Ubicaci\u00f3n', val: ciudad });\r\n\r\n        personalItems.forEach(item => {\r\n            personalHTML += `<div style=\"margin-bottom:12px;\">\r\n                <span style=\"font-size:0.7rem; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color:var(--text-muted); display:block; margin-bottom:3px;\">${esc(item.label)}<\/span>\r\n                <span style=\"font-size:0.88rem; font-weight:600; color:var(--text-dark);\">${esc(item.val)}<\/span>\r\n            <\/div>`;\r\n        });\r\n        document.getElementById('cv-personal-details').innerHTML = personalHTML || '<span style=\"font-size:0.85rem; color:var(--text-muted);\">\u2014<\/span>';\r\n\r\n        \/\/ \u2500\u2500 Perfil \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\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n        document.getElementById('cv-perfil-out').textContent = perfil;\r\n\r\n        \/\/ \u2500\u2500 Experiencia \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\u2500\u2500\r\n        const expEntries = document.querySelectorAll('#experience-list .entry-block');\r\n        let expHTML = '';\r\n        expEntries.forEach(entry => {\r\n            const id = entry.id.replace('exp-', '');\r\n            const cargo   = val(`exp-cargo-${id}`);\r\n            const empresa = val(`exp-empresa-${id}`);\r\n            const inicio  = val(`exp-inicio-${id}`);\r\n            const fin     = document.getElementById(`exp-actual-${id}`)?.checked ? 'Actualidad' : fmtMonth(val(`exp-fin-${id}`));\r\n            const desc    = val(`exp-desc-${id}`);\r\n            if (!cargo && !empresa) return;\r\n\r\n            const dateStr = (inicio ? fmtMonth(inicio) : '') + (fin ? ` \u2014 ${fin}` : '');\r\n            expHTML += `<div class=\"cv-exp-entry\">\r\n                <div class=\"cv-exp-header\">\r\n                    <span class=\"cv-exp-title\">${esc(cargo || '\u2014')}<\/span>\r\n                    ${dateStr ? `<span class=\"cv-exp-date\">${esc(dateStr)}<\/span>` : ''}\r\n                <\/div>\r\n                ${empresa ? `<div class=\"cv-exp-company\">${esc(empresa)}<\/div>` : ''}\r\n                ${desc    ? `<div class=\"cv-exp-desc\">${esc(desc)}<\/div>` : ''}\r\n            <\/div>`;\r\n        });\r\n        document.getElementById('cv-experience-out').innerHTML = expHTML || '<p style=\"font-size:0.85rem;color:var(--text-muted);\">\u2014<\/p>';\r\n        document.getElementById('cv-exp-section').style.display = expHTML ? 'block' : 'none';\r\n\r\n        \/\/ \u2500\u2500 Educaci\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\u2500\u2500\u2500\u2500\r\n        const eduEntries = document.querySelectorAll('#education-list .entry-block');\r\n        let eduHTML = '';\r\n        eduEntries.forEach(entry => {\r\n            const id = entry.id.replace('edu-', '');\r\n            const titulo2  = val(`edu-titulo-${id}`);\r\n            const inst    = val(`edu-inst-${id}`);\r\n            const anio    = val(`edu-anio-${id}`);\r\n            const nivel   = val(`edu-nivel-${id}`);\r\n            if (!titulo2 && !inst) return;\r\n\r\n            eduHTML += `<div class=\"cv-edu-entry\">\r\n                <div class=\"cv-edu-degree\">${esc(titulo2 || '\u2014')}<\/div>\r\n                ${inst  ? `<div class=\"cv-edu-institution\">${esc(inst)}<\/div>` : ''}\r\n                <div class=\"cv-edu-year\">${nivel ? esc(nivel) + ' \u00b7 ' : ''}${anio ? esc(anio) : ''}<\/div>\r\n            <\/div>`;\r\n        });\r\n        document.getElementById('cv-education-out').innerHTML = eduHTML || '<p style=\"font-size:0.85rem;color:var(--text-muted);\">\u2014<\/p>';\r\n        document.getElementById('cv-edu-section').style.display = eduHTML ? 'block' : 'none';\r\n\r\n        \/\/ \u2500\u2500 Habilidades t\u00e9cnicas \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        if (techSkills.length > 0) {\r\n            document.getElementById('cv-skills-out').innerHTML = techSkills.map(s => `<span class=\"cv-tag\">${esc(s)}<\/span>`).join('');\r\n            document.getElementById('cv-skills-section').style.display = 'block';\r\n        } else {\r\n            document.getElementById('cv-skills-section').style.display = 'none';\r\n        }\r\n\r\n        \/\/ \u2500\u2500 Habilidades blandas (sidebar) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n        if (softSkills.length > 0) {\r\n            document.getElementById('cv-soft-skills-out').innerHTML = softSkills.map(s => `<span class=\"cv-tag\">${esc(s)}<\/span>`).join('');\r\n            document.getElementById('cv-soft-section').style.display = 'block';\r\n        } else {\r\n            document.getElementById('cv-soft-section').style.display = 'none';\r\n        }\r\n\r\n        \/\/ \u2500\u2500 Idiomas \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\u2500\u2500\u2500\u2500\u2500\u2500\r\n        const langEntries = document.querySelectorAll('#languages-list .entry-block');\r\n        let langHTML = '';\r\n        langEntries.forEach(entry => {\r\n            const id = entry.id.replace('lang-', '');\r\n            const name  = val(`lang-name-${id}`);\r\n            const level = val(`lang-level-${id}`);\r\n            if (!name) return;\r\n            langHTML += `<div class=\"cv-lang-item\">\r\n                <span class=\"cv-lang-name\">${esc(name)}<\/span>\r\n                ${level ? `<span class=\"cv-lang-level\">${esc(level)}<\/span>` : ''}\r\n            <\/div>`;\r\n        });\r\n        document.getElementById('cv-languages-out').innerHTML = langHTML || '';\r\n        document.getElementById('cv-lang-section').style.display = langHTML ? 'block' : 'none';\r\n\r\n        \/\/ \u2500\u2500 Referencias \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\u2500\u2500\r\n        const refEntries = document.querySelectorAll('#references-list .entry-block');\r\n        let refHTML = '';\r\n        refEntries.forEach(entry => {\r\n            const id = entry.id.replace('ref-', '');\r\n            const rNombre = val(`ref-nombre-${id}`);\r\n            const rCargo  = val(`ref-cargo-${id}`);\r\n            const rTel    = val(`ref-tel-${id}`);\r\n            const rCorreo = val(`ref-correo-${id}`);\r\n            if (!rNombre) return;\r\n            refHTML += `<div style=\"padding:14px; background:var(--cream); border-radius:10px; border:1px solid rgba(12,105,114,0.08);\">\r\n                <div style=\"font-weight:700; color:var(--text-dark); font-size:0.9rem; margin-bottom:3px;\">${esc(rNombre)}<\/div>\r\n                ${rCargo  ? `<div style=\"font-size:0.8rem; color:var(--text-muted);\">${esc(rCargo)}<\/div>` : ''}\r\n                ${rTel    ? `<div style=\"font-size:0.8rem; color:var(--teal); margin-top:4px;\">\ud83d\udcde ${esc(rTel)}<\/div>` : ''}\r\n                ${rCorreo ? `<div style=\"font-size:0.8rem; color:var(--teal);\">\u2709 ${esc(rCorreo)}<\/div>` : ''}\r\n            <\/div>`;\r\n        });\r\n        document.getElementById('cv-references-out').innerHTML = refHTML;\r\n        document.getElementById('cv-ref-section').style.display = refHTML ? 'block' : 'none';\r\n\r\n        \/\/ \u2500\u2500 Footer date \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\u2500\u2500\r\n        document.getElementById('cv-footer-date').textContent = new Date().toLocaleDateString('es-ES', { day: 'numeric', month: 'long', year: 'numeric' });\r\n    }\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\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n    \/\/  MODAL CONTROLS\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\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n    function openModal() {\r\n        const modal = document.getElementById('cv-modal');\r\n        modal.classList.add('open');\r\n        modal.scrollTop = 0;\r\n        document.body.style.overflow = 'hidden';\r\n    }\r\n\r\n    document.getElementById('close-modal-btn').addEventListener('click', function () {\r\n        document.getElementById('cv-modal').classList.remove('open');\r\n        document.body.style.overflow = '';\r\n    });\r\n\r\n    \/\/ Close on backdrop click\r\n    document.getElementById('cv-modal').addEventListener('click', function (e) {\r\n        if (e.target === this) {\r\n            this.classList.remove('open');\r\n            document.body.style.overflow = '';\r\n        }\r\n    });\r\n\r\n    \/\/ ESC key\r\n    document.addEventListener('keydown', function (e) {\r\n        if (e.key === 'Escape') {\r\n            document.getElementById('cv-modal').classList.remove('open');\r\n            document.body.style.overflow = '';\r\n        }\r\n    });\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\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n    \/\/  IMPRIMIR \/ GUARDAR PDF\r\n    \/\/  Abre el CV en una ventana nueva limpia para evitar p\u00e1ginas\r\n    \/\/  en blanco causadas por el modal fixed + overflow:hidden\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\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\r\n    document.getElementById('print-cv-btn').addEventListener('click', function () {\r\n        const cvHtml = document.getElementById('cv-document').outerHTML;\r\n\r\n        const printStyles = `\r\n            @import url('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\r\n            :root {\r\n                --teal:#0C6972; --teal-light:#0e8a96; --teal-dark:#094f57;\r\n                --teal-glow:rgba(12,105,114,0.35); --teal-soft:rgba(12,105,114,0.08);\r\n                --night:#06141b; --night-2:#0d1f29; --night-3:#112330;\r\n                --cream:#f4f7f6; --white:#ffffff;\r\n                --text-muted:#7a9aa8; --text-dark:#0d1f29; --text-body:#3a5a6a;\r\n                --gold:#c9a84c;\r\n                --font-head:'Outfit',sans-serif; --font-body:'Inter',sans-serif;\r\n                --radius:16px; --radius-lg:24px;\r\n            }\r\n            *,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}\r\n            body{margin:0;padding:0;background:#fff;font-family:'Inter',sans-serif;}\r\n\r\n            #cv-document{background:white;font-family:'Inter',sans-serif;}\r\n\r\n            \/* Header *\/\r\n            .cv-header{\r\n                background:linear-gradient(135deg,#06141b 0%,#0d2a36 60%,#094f57 100%);\r\n                padding:40px 48px;position:relative;overflow:hidden;\r\n                -webkit-print-color-adjust:exact;print-color-adjust:exact;\r\n            }\r\n            .cv-header::before{content:'';position:absolute;top:-60px;right:-60px;width:240px;height:240px;background:#0C6972;border-radius:50%;filter:blur(80px);opacity:.2;}\r\n            .cv-header::after{content:'';position:absolute;bottom:-40px;left:-40px;width:160px;height:160px;background:#0e8a96;border-radius:50%;filter:blur(60px);opacity:.15;}\r\n            .cv-header-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:32px;position:relative;z-index:2;}\r\n            .cv-brand{display:flex;flex-direction:column;gap:6px;}\r\n            .cv-brand img{max-height:48px;width:auto;filter:brightness(0) invert(1);}\r\n            .cv-brand-tagline{font-size:.7rem;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:rgba(255,255,255,.45);font-family:'Outfit',sans-serif;}\r\n            .cv-photo-container{position:relative;z-index:2;}\r\n            .cv-photo{width:110px;height:110px;border-radius:50%;object-fit:cover;border:3px solid rgba(255,255,255,.25);box-shadow:0 8px 30px rgba(0,0,0,.3);}\r\n            .cv-photo-placeholder{width:110px;height:110px;border-radius:50%;background:rgba(255,255,255,.08);border:2px dashed rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.3);}\r\n            .cv-main-info{position:relative;z-index:2;}\r\n            .cv-name{font-family:'Outfit',sans-serif;font-size:2.2rem;font-weight:900;color:white;letter-spacing:-.02em;line-height:1.1;margin-bottom:6px;}\r\n            .cv-title{font-size:1rem;font-weight:500;color:rgba(255,255,255,.7);margin-bottom:20px;}\r\n            .cv-contact-strip{display:flex;flex-wrap:wrap;gap:16px;}\r\n            .cv-contact-item{display:flex;align-items:center;gap:6px;font-size:.82rem;color:rgba(255,255,255,.7);}\r\n            .cv-contact-item svg{color:#0e8a96;flex-shrink:0;}\r\n\r\n            \/* Accent bar *\/\r\n            .cv-accent-bar{height:4px;background:linear-gradient(90deg,#0C6972 0%,#0e8a96 50%,transparent 100%);-webkit-print-color-adjust:exact;print-color-adjust:exact;}\r\n\r\n            \/* Body layout *\/\r\n            .cv-body{display:grid;grid-template-columns:1fr 2.2fr;min-height:500px;}\r\n            .cv-sidebar{background:#f8fafb;padding:36px 28px;border-right:1px solid rgba(12,105,114,.08);-webkit-print-color-adjust:exact;print-color-adjust:exact;}\r\n            .cv-main{padding:36px 40px;}\r\n\r\n            \/* Sections *\/\r\n            .cv-section{margin-bottom:32px;}\r\n            .cv-section:last-child{margin-bottom:0;}\r\n            .cv-section-title{font-family:'Outfit',sans-serif;font-size:.68rem;font-weight:800;letter-spacing:3px;text-transform:uppercase;color:#0C6972;margin-bottom:16px;display:flex;align-items:center;gap:8px;}\r\n            .cv-section-title::after{content:'';flex:1;height:1px;background:rgba(12,105,114,.15);}\r\n\r\n            \/* Personal details *\/\r\n            .cv-profile-text{font-size:.9rem;line-height:1.75;color:#3a5a6a;}\r\n\r\n            \/* Experience *\/\r\n            .cv-exp-entry{margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid rgba(12,105,114,.07);}\r\n            .cv-exp-entry:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0;}\r\n            .cv-exp-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:4px;flex-wrap:wrap;}\r\n            .cv-exp-title{font-family:'Outfit',sans-serif;font-size:.98rem;font-weight:700;color:#0d1f29;}\r\n            .cv-exp-date{font-size:.75rem;font-weight:700;color:#0C6972;background:rgba(12,105,114,.08);padding:3px 10px;border-radius:20px;white-space:nowrap;letter-spacing:.5px;flex-shrink:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;}\r\n            .cv-exp-company{font-size:.85rem;color:#7a9aa8;font-weight:500;margin-bottom:8px;}\r\n            .cv-exp-desc{font-size:.85rem;line-height:1.7;color:#3a5a6a;}\r\n\r\n            \/* Education *\/\r\n            .cv-edu-entry{margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid rgba(12,105,114,.07);}\r\n            .cv-edu-entry:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0;}\r\n            .cv-edu-degree{font-family:'Outfit',sans-serif;font-size:.95rem;font-weight:700;color:#0d1f29;margin-bottom:2px;}\r\n            .cv-edu-institution{font-size:.85rem;color:#7a9aa8;font-weight:500;}\r\n            .cv-edu-year{font-size:.78rem;color:#0C6972;font-weight:600;margin-top:3px;}\r\n\r\n            \/* Languages *\/\r\n            .cv-lang-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid rgba(12,105,114,.06);font-size:.85rem;}\r\n            .cv-lang-item:last-child{border-bottom:none;}\r\n            .cv-lang-name{font-weight:600;color:#0d1f29;}\r\n            .cv-lang-level{font-size:.72rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#0C6972;background:rgba(12,105,114,.08);border:1px solid rgba(12,105,114,.2);border-radius:20px;padding:3px 10px;-webkit-print-color-adjust:exact;print-color-adjust:exact;}\r\n\r\n            \/* Tags *\/\r\n            .cv-tags-wrap{display:flex;flex-wrap:wrap;gap:8px;}\r\n            .cv-tag{font-size:.78rem;font-weight:600;font-family:'Outfit',sans-serif;color:#094f57;background:rgba(12,105,114,.08);border:1px solid rgba(12,105,114,.15);border-radius:20px;padding:4px 13px;-webkit-print-color-adjust:exact;print-color-adjust:exact;}\r\n\r\n            \/* Footer *\/\r\n            .cv-footer{background:#06141b;padding:18px 40px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;-webkit-print-color-adjust:exact;print-color-adjust:exact;}\r\n            .cv-footer-text{font-size:.72rem;color:rgba(255,255,255,.3);font-family:'Outfit',sans-serif;letter-spacing:.5px;}\r\n            .cv-footer-brand{font-size:.72rem;color:#0e8a96;font-weight:700;font-family:'Outfit',sans-serif;letter-spacing:1px;text-transform:uppercase;}\r\n\r\n            @media print {\r\n                @page { margin: 0; size: A4 portrait; }\r\n                body { margin: 0; }\r\n                .cv-header { -webkit-print-color-adjust:exact; print-color-adjust:exact; }\r\n                .cv-accent-bar { -webkit-print-color-adjust:exact; print-color-adjust:exact; }\r\n                .cv-sidebar { -webkit-print-color-adjust:exact; print-color-adjust:exact; }\r\n                .cv-footer { -webkit-print-color-adjust:exact; print-color-adjust:exact; }\r\n                .cv-exp-date { -webkit-print-color-adjust:exact; print-color-adjust:exact; }\r\n                .cv-lang-level { -webkit-print-color-adjust:exact; print-color-adjust:exact; }\r\n                .cv-tag { -webkit-print-color-adjust:exact; print-color-adjust:exact; }\r\n            }\r\n        `;\r\n\r\n        const win = window.open('', '_blank', 'width=900,height=700');\r\n        win.document.open();\r\n        win.document.write(`<!DOCTYPE html>\r\n<html lang=\"es\">\r\n<head>\r\n    <meta charset=\"UTF-8\">\r\n    <meta name=\"viewport\" content=\"width=device-width,initial-scale=1\">\r\n    <title>Hoja de Vida \u00b7 Bluevida International<\/title>\r\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Outfit:wght@300;400;500;600;700;800;900&family=Inter:wght@400;500;600&display=swap\" rel=\"stylesheet\">\r\n    <style>${printStyles}<\/style>\r\n<\/head>\r\n<body>\r\n${cvHtml}\r\n<script>\r\n    \/\/ Espera a que los recursos (fuentes, im\u00e1genes) carguen antes de imprimir\r\n    window.onload = function () {\r\n        setTimeout(function () {\r\n            window.focus();\r\n            window.print();\r\n            \/\/ Cierra la ventana despu\u00e9s de imprimir (opcional)\r\n            \/\/ window.close();\r\n        }, 800);\r\n    };\r\n<\\\/script>\r\n<\/body>\r\n<\/html>`);\r\n        win.document.close();\r\n    });\r\n\r\n    <\/script>\r\n\r\n<\/body>\r\n\r\n<\/html>\r\n\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>Generador de Hoja de Vida \u00b7 Bluevida Hoja de Vida Profesional Bluevida International \u00b7 Plataforma de Talento Crea tu Hoja de Vida Completa el formulario con tu informaci\u00f3n profesional y genera una hoja de vida con el sello y membrete de Bluevida International, lista para imprimir. CREAR HOJA DE VIDA Bluevida \u00b7 Generador de Hoja [&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-4418","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/bluevidaintl.com\/es\/wp-json\/wp\/v2\/pages\/4418","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=4418"}],"version-history":[{"count":16,"href":"https:\/\/bluevidaintl.com\/es\/wp-json\/wp\/v2\/pages\/4418\/revisions"}],"predecessor-version":[{"id":4437,"href":"https:\/\/bluevidaintl.com\/es\/wp-json\/wp\/v2\/pages\/4418\/revisions\/4437"}],"wp:attachment":[{"href":"https:\/\/bluevidaintl.com\/es\/wp-json\/wp\/v2\/media?parent=4418"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}