{"id":4109,"date":"2026-04-14T16:31:20","date_gmt":"2026-04-14T14:31:20","guid":{"rendered":"https:\/\/dkouzas.sites.sch.gr\/?p=4109"},"modified":"2026-04-21T21:37:37","modified_gmt":"2026-04-21T19:37:37","slug":"%ce%b1%ce%bd%ce%ac%ce%bb%cf%85%cf%83%ce%b7-%ce%b4%ce%b7%ce%bc%ce%bf%ce%b3%cf%81%ce%b1%cf%86%ce%b9%ce%ba%cf%8e%ce%bd","status":"publish","type":"post","link":"https:\/\/dkouzas.sites.sch.gr\/?p=4109","title":{"rendered":"\u0391\u03bd\u03ac\u03bb\u03c5\u03c3\u03b7 \u03b4\u03b7\u03bc\u03bf\u03b3\u03c1\u03b1\u03c6\u03b9\u03ba\u03ce\u03bd"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"el\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Basic Survey Analytics v3.3 | Ultimate Export &#038; Print<\/title>\n    <script src=\"https:\/\/cdn.tailwindcss.com\"><\/script>\n    <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/PapaParse\/5.3.2\/papaparse.min.js\"><\/script>\n    <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/xlsx\/0.18.5\/xlsx.full.min.js\"><\/script>\n    <link href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.0.0\/css\/all.min.css\" rel=\"stylesheet\">\n    <style>\n        @import url('https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@300;400;500;600;700;900&display=swap');\n        body { font-family: 'Inter', sans-serif; background-color: #f1f5f9; }\n        .table-container { overflow-y: auto; overflow-x: hidden; } \n        .table-container::-webkit-scrollbar { width: 6px; height: 6px; }\n        .table-container::-webkit-scrollbar-track { background: #f1f1f1; border-radius: 4px; }\n        .table-container::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 4px; }\n        \n        .clickable-row { cursor: pointer; transition: all 0.2s; }\n        .clickable-row:hover { background-color: #e0e7ff !important; transform: scale(1.01); }\n\n        \/* Modal Styles *\/\n        .modal { display: none; position: fixed; z-index: 1000; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgba(15, 23, 42, 0.6); backdrop-filter: blur(4px); }\n        .modal.show { display: flex; align-items: center; justify-content: center; }\n        .modal-content { background-color: #fff; border-radius: 1rem; width: 90%; max-width: 700px; max-height: 85vh; display: flex; flex-direction: column; box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1); }\n        \n        \/* New Funnel Grid Styles *\/\n        .dotted-line { position: absolute; height: 100%; width: 2px; background-image: linear-gradient(to bottom, #cbd5e1 50%, transparent 50%); background-size: 2px 10px; z-index: 0; }\n        .funnel-badge { position: relative; z-index: 1; background: #fef2f2; border: 1px solid #fca5a5; color: #dc2626; padding: 0.25rem 0.75rem; border-radius: 999px; font-size: 0.75rem; font-weight: 700; box-shadow: 0 2px 4px rgba(220,38,38,0.1); display: flex; align-items: center; justify-content: center; gap: 0.25rem;}\n        \n        \/* Tooltip Setup *\/\n        .has-tooltip { position: relative; cursor: help; }\n        .has-tooltip .tooltip-text { visibility: hidden; opacity: 0; width: 280px; background-color: #1e293b; color: #fff; text-align: center; border-radius: 6px; padding: 8px 10px; position: absolute; z-index: 50; bottom: 125%; left: 50%; margin-left: -140px; transition: opacity 0.3s; font-size: 11px; font-weight: normal; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); line-height: 1.4; pointer-events: none;}\n        .has-tooltip .tooltip-text::after { content: \"\"; position: absolute; top: 100%; left: 50%; margin-left: -5px; border-width: 5px; border-style: solid; border-color: #1e293b transparent transparent transparent; }\n        .has-tooltip:hover .tooltip-text { visibility: visible; opacity: 1; }\n\n        \/* \u03a3\u03c5\u03bc\u03bc\u03ac\u03b6\u03b5\u03bc\u03b1 \u0395\u03ba\u03c4\u03c5\u03c0\u03ce\u03c3\u03b5\u03c9\u03bd (Print Cleanup) *\/\n        @media print {\n            body { background-color: #fff; font-size: 11px; }\n            .no-print { display: none !important; }\n            .print-only { display: block !important; }\n            \n            \/* \u0391\u03bb\u03bb\u03b1\u03b3\u03ad\u03c2 \u03a3\u03b5\u03bb\u03af\u03b4\u03b1\u03c2 *\/\n            .print-page-break { page-break-after: always !important; break-after: page !important; }\n\n            \/* \u0391\u03c6\u03b1\u03af\u03c1\u03b5\u03c3\u03b7 \u03c3\u03c4\u03b1\u03b8\u03b5\u03c1\u03ce\u03bd \u03c5\u03c8\u03ce\u03bd & scrollbars - \u03bf\u03b9 \u03c0\u03af\u03bd\u03b1\u03ba\u03b5\u03c2 \u03c4\u03c5\u03c0\u03ce\u03bd\u03bf\u03bd\u03c4\u03b1\u03b9 \u03bf\u03bb\u03cc\u03ba\u03bb\u03b7\u03c1\u03bf\u03b9 *\/\n            .table-container { max-height: none !important; overflow: visible !important; height: auto !important; }\n            .h-\\[450px\\], .h-\\[340px\\], .max-h-96 { height: auto !important; max-height: none !important; min-height: 0 !important; }\n            \n            \/* \u0395\u03be\u03b1\u03bd\u03b1\u03b3\u03ba\u03b1\u03c3\u03bc\u03cc\u03c2 \u03c4\u03c9\u03bd Grids \u03b3\u03b9\u03b1 \u03c4\u03bf \u03c7\u03b1\u03c1\u03c4\u03af *\/\n            .grid { display: grid !important; }\n            .md\\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }\n            \n            \/* 4 \u0392\u03b1\u03c3\u03b9\u03ba\u03bf\u03af \u03a0\u03af\u03bd\u03b1\u03ba\u03b5\u03c2: 1 \u03a3\u03c4\u03ae\u03bb\u03b7 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03bc\u03b7\u03bd \u03ba\u03cc\u03b2\u03bf\u03bd\u03c4\u03b1\u03b9 \u03c4\u03b1 \u03a3\u03cd\u03bd\u03bf\u03bb\u03b1 *\/\n            .print-1-col { grid-template-columns: 1fr !important; gap: 1.5rem !important; }\n            \n            \/* 8 \u0394\u03b7\u03bc\u03bf\u03b3\u03c1\u03b1\u03c6\u03b9\u03ba\u03bf\u03af: 2 \u03a3\u03c4\u03ae\u03bb\u03b5\u03c2 (\u03b4\u03af\u03c0\u03bb\u03b1-\u03b4\u03af\u03c0\u03bb\u03b1) *\/\n            .print-2-cols { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 1rem !important; }\n            \n            .shadow-sm, .shadow-md, .shadow-lg { box-shadow: none !important; border: 1px solid #e2e8f0; }\n            .break-inside-avoid { break-inside: avoid; page-break-inside: avoid; margin-bottom: 2rem; }\n            \n            .modal { display: none !important; }\n            .has-tooltip .tooltip-text { display: none !important; }\n        }\n    <\/style>\n<\/head>\n<body class=\"text-slate-800 p-4 md:p-8\">\n\n    <!-- Header -->\n    <div class=\"max-w-7xl mx-auto mb-6 no-print\">\n        <div class=\"bg-white rounded-2xl shadow-sm p-6 border border-slate-200 flex flex-col md:flex-row justify-between items-center gap-4\">\n            <div>\n                <h1 class=\"text-2xl font-bold text-slate-800\"><i class=\"fas fa-chart-pie text-indigo-600 mr-2\"><\/i>Basic Survey Analytics <span class=\"text-sm font-normal text-slate-400\">v3.3<\/span><\/h1>\n                <p class=\"text-slate-500 text-sm mt-1\">\u0391\u03bd\u03b1\u03bb\u03c5\u03c4\u03b9\u03ba\u03ae \u0388\u03ba\u03b8\u03b5\u03c3\u03b7 \u03a3\u03c4\u03b1\u03c4\u03b9\u03c3\u03c4\u03b9\u03ba\u03ce\u03bd &#038; \u0394\u03b7\u03bc\u03bf\u03b3\u03c1\u03b1\u03c6\u03b9\u03ba\u03ce\u03bd \u0394\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd \u0388\u03c1\u03b5\u03c5\u03bd\u03b1\u03c2<\/p>\n            <\/div>\n            <div class=\"flex gap-2\">\n                <button onclick=\"window.print()\" class=\"hidden id-data-loaded bg-slate-100 hover:bg-slate-200 text-slate-700 px-4 py-2 rounded-lg font-medium transition duration-200 text-sm\">\n                    <i class=\"fas fa-print mr-2\"><\/i>\u0395\u03ba\u03c4\u03cd\u03c0\u03c9\u03c3\u03b7\n                <\/button>\n                <button onclick=\"exportToExcel()\" class=\"hidden id-data-loaded bg-emerald-600 hover:bg-emerald-700 text-white px-4 py-2 rounded-lg font-medium transition duration-200 shadow-sm text-sm\">\n                    <i class=\"fas fa-file-excel mr-2\"><\/i>\u0395\u03be\u03b1\u03b3\u03c9\u03b3\u03ae Excel\n                <\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <!-- Print Only: \u0391\u03c1\u03c7\u03b5\u03af\u03b1 \u03c0\u03bf\u03c5 \u03c6\u03bf\u03c1\u03c4\u03ce\u03b8\u03b7\u03ba\u03b1\u03bd -->\n    <div class=\"max-w-7xl mx-auto print-only hidden mb-8 pb-4 border-b border-slate-200\">\n        <h2 class=\"text-xl font-bold text-slate-800 mb-3\">\u0391\u03bd\u03b1\u03bb\u03c5\u03c4\u03b9\u03ba\u03ae \u0388\u03ba\u03b8\u03b5\u03c3\u03b7 \u03a3\u03c4\u03b1\u03c4\u03b9\u03c3\u03c4\u03b9\u03ba\u03ce\u03bd &#038; \u0394\u03b7\u03bc\u03bf\u03b3\u03c1\u03b1\u03c6\u03b9\u03ba\u03ce\u03bd \u0394\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd \u0388\u03c1\u03b5\u03c5\u03bd\u03b1\u03c2<\/h2>\n        <h3 class=\"text-sm font-bold text-slate-700 mb-2\">\u0391\u03c1\u03c7\u03b5\u03af\u03b1 \u0391\u03bd\u03ac\u03bb\u03c5\u03c3\u03b7\u03c2 \u03c0\u03bf\u03c5 \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03ae\u03b8\u03b7\u03ba\u03b1\u03bd:<\/h3>\n        <ul class=\"text-xs text-slate-600 list-disc list-inside ml-2\">\n            <li>1. \u0394\u03b7\u03bc\u03bf\u03b3\u03c1\u03b1\u03c6\u03b9\u03ba\u03ac: <span id=\"printFile_demo\" class=\"font-semibold text-slate-800\">&#8211;<\/span><\/li>\n            <li>2. KAEVO 2.0: <span id=\"printFile_kaevo\" class=\"font-semibold text-slate-800\">&#8211;<\/span><\/li>\n            <li>3. \u0393\u03b5\u03bd\u03b9\u03ba\u03cc \u039c\u03ad\u03c1\u03bf\u03c2: <span id=\"printFile_general\" class=\"font-semibold text-slate-800\">&#8211;<\/span><\/li>\n        <\/ul>\n    <\/div>\n\n    <!-- File Upload -->\n    <div class=\"max-w-7xl mx-auto mb-8 no-print\">\n        <div class=\"bg-white rounded-2xl shadow-sm p-6 border border-slate-200\">\n            <div class=\"grid grid-cols-1 md:grid-cols-3 gap-6\">\n                <div>\n                    <label class=\"block text-xs font-semibold text-slate-600 uppercase mb-2\">1. \u0394\u03b7\u03bc\u03bf\u03b3\u03c1\u03b1\u03c6\u03b9\u03ba\u03ac (CSV)<\/label>\n                    <input type=\"file\" id=\"fileDemographics\" accept=\".csv\" class=\"block w-full text-sm text-slate-500 file:mr-4 file:py-2 file:px-4 file:rounded-full file:border-0 file:text-sm file:font-semibold file:bg-indigo-50 file:text-indigo-700 hover:file:bg-indigo-100 cursor-pointer\">\n                    <p class=\"text-xs text-slate-400 mt-1\" id=\"statusDemo\"><i class=\"fas fa-circle-notch fa-spin mr-1 hidden\"><\/i>\u0391\u03bd\u03b1\u03bc\u03bf\u03bd\u03ae&#8230;<\/p>\n                <\/div>\n                <div>\n                    <label class=\"block text-xs font-semibold text-slate-600 uppercase mb-2\">2. KAEVO 2.0 (CSV)<\/label>\n                    <input type=\"file\" id=\"fileKaevo\" accept=\".csv\" class=\"block w-full text-sm text-slate-500 file:mr-4 file:py-2 file:px-4 file:rounded-full file:border-0 file:text-sm file:font-semibold file:bg-sky-50 file:text-sky-700 hover:file:bg-sky-100 cursor-pointer\">\n                    <p class=\"text-xs text-slate-400 mt-1\" id=\"statusKaevo\"><i class=\"fas fa-circle-notch fa-spin mr-1 hidden\"><\/i>\u0391\u03bd\u03b1\u03bc\u03bf\u03bd\u03ae&#8230;<\/p>\n                <\/div>\n                <div>\n                    <label class=\"block text-xs font-semibold text-slate-600 uppercase mb-2\">3. \u0393\u03b5\u03bd\u03b9\u03ba\u03cc \u039c\u03ad\u03c1\u03bf\u03c2 (CSV)<\/label>\n                    <input type=\"file\" id=\"fileGeneral\" accept=\".csv\" class=\"block w-full text-sm text-slate-500 file:mr-4 file:py-2 file:px-4 file:rounded-full file:border-0 file:text-sm file:font-semibold file:bg-emerald-50 file:text-emerald-700 hover:file:bg-emerald-100 cursor-pointer\">\n                    <p class=\"text-xs text-slate-400 mt-1\" id=\"statusGeneral\"><i class=\"fas fa-circle-notch fa-spin mr-1 hidden\"><\/i>\u0391\u03bd\u03b1\u03bc\u03bf\u03bd\u03ae&#8230;<\/p>\n                <\/div>\n            <\/div>\n            <div class=\"mt-6 flex justify-center\">\n                <button id=\"btnProcess\" onclick=\"processData()\" class=\"bg-indigo-600 hover:bg-indigo-700 text-white font-bold py-2.5 px-8 rounded-xl shadow-md transition-all duration-200 disabled:opacity-50\">\n                    \u0395\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1 \u0394\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd\n                <\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <!-- Error Box -->\n    <div id=\"alertBox\" class=\"max-w-7xl mx-auto mb-6 hidden no-print\">\n        <div class=\"bg-red-50 border-l-4 border-red-500 p-4 rounded-r-lg flex items-center\">\n            <i class=\"fas fa-exclamation-circle text-red-500 mr-3\"><\/i>\n            <p class=\"text-sm text-red-700 font-medium\" id=\"alertMessage\"><\/p>\n        <\/div>\n    <\/div>\n\n    <!-- Results Container -->\n    <div id=\"resultsContainer\" class=\"hidden\">\n\n        <!-- 3-COLUMN PERFECT GRID DROP-OFF FUNNEL (\u0391\u03bb\u03bb\u03b1\u03b3\u03ae \u03c3\u03b5\u03bb\u03af\u03b4\u03b1\u03c2 1) -->\n        <div class=\"max-w-7xl mx-auto mb-10 bg-white rounded-2xl shadow-sm border border-slate-200 p-6 md:p-8 break-inside-avoid print-page-break\">\n            \n            <!-- Disclaimer (\u03a0\u03a1\u0399\u039d \u03c4\u03bf\u03c5\u03c2 \u03c4\u03af\u03c4\u03bb\u03bf\u03c5\u03c2) -->\n            <div class=\"text-center border-b border-slate-100 pb-4 mb-6\">\n                <p class=\"text-[11px] text-slate-400\">\n                    * <span class=\"font-semibold text-slate-500\">Disclaimer:<\/span> \u03a4\u03b1 \u03c0\u03b1\u03c1\u03b1\u03c0\u03ac\u03bd\u03c9 \u03b1\u03c6\u03bf\u03c1\u03bf\u03cd\u03bd \u03c0\u03c1\u03c9\u03c4\u03bf\u03b3\u03b5\u03bd\u03ae (raw) \u03b4\u03b7\u03bc\u03bf\u03b3\u03c1\u03b1\u03c6\u03b9\u03ba\u03ac \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03cc\u03c0\u03c9\u03c2 \u03b5\u03be\u03ae\u03c7\u03b8\u03b7\u03c3\u03b1\u03bd \u03b1\u03c0\u03cc \u03c4\u03b7\u03bd \u03c0\u03bb\u03b1\u03c4\u03c6\u03cc\u03c1\u03bc\u03b1 (Tally). \u0394\u03b5\u03bd \u03ad\u03c7\u03bf\u03c5\u03bd \u03c5\u03c0\u03bf\u03c3\u03c4\u03b5\u03af \u03ba\u03b1\u03bc\u03af\u03b1 \u03b5\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1 \u03b3\u03b9\u03b1 \u03b4\u03b9\u03c0\u03bb\u03cc\u03c4\u03c5\u03c0\u03b5\u03c2 \u03b5\u03b3\u03b3\u03c1\u03b1\u03c6\u03ad\u03c2, \u03b1\u03c0\u03bf\u03c5\u03c3\u03af\u03b1 \u03c4\u03b1\u03c5\u03c4\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2 \u03ae \u03bf\u03c0\u03bf\u03b9\u03b1\u03b4\u03ae\u03c0\u03bf\u03c4\u03b5 \u03ac\u03bb\u03bb\u03b7 \u03b1\u03bb\u03bb\u03bf\u03af\u03c9\u03c3\u03b7\/\u03b5\u03ba\u03ba\u03b1\u03b8\u03ac\u03c1\u03b9\u03c3\u03b7.\n                <\/p>\n            <\/div>\n\n            <div class=\"text-center mb-8\">\n                <h3 class=\"text-xl font-black text-slate-800 uppercase tracking-wide\">\u03a3\u03c5\u03bd\u03bf\u03bb\u03b9\u03ba\u03b7 \u03a3\u03c5\u03bc\u03bc\u03b5\u03c4\u03bf\u03c7\u03b7 &#038; \u0394\u03b9\u03b1\u03c1\u03c1\u03bf\u03b5\u03c2<\/h3>\n                <p class=\"text-sm text-slate-500 mt-1\">\u0391\u03bd\u03b1\u03bb\u03c5\u03c4\u03b9\u03ba\u03ae \u03c0\u03bf\u03c1\u03b5\u03af\u03b1 \u03c3\u03c5\u03bc\u03bc\u03b5\u03c4\u03b5\u03c7\u03cc\u03bd\u03c4\u03c9\u03bd<\/p>\n            <\/div>\n\n            <!-- Grid 3 \u03a3\u03c4\u03b7\u03bb\u03ce\u03bd -->\n            <div class=\"grid grid-cols-1 md:grid-cols-3 gap-6 md:gap-8\">\n                \n                <!-- \u03a3\u03a4\u0397\u039b\u0397 1: \u03a0\u039504 -->\n                <div class=\"flex flex-col items-center\">\n                    <h4 class=\"text-sm font-bold text-slate-700 mb-4 bg-slate-100 px-4 py-2 rounded-lg uppercase w-full text-center tracking-wider min-h-[56px] flex items-center justify-center\"><i class=\"fas fa-flask text-indigo-500 mr-2\"><\/i>\u0394\u03b9\u03b1\u03b4\u03c1\u03bf\u03bc\u03ae \u03a0\u039504<\/h4>\n                    \n                    <div class=\"w-full h-[90px] bg-indigo-50 border border-indigo-100 rounded-xl p-3 flex flex-col justify-center items-center z-10 shadow-sm\">\n                        <div class=\"text-xs font-semibold text-indigo-500 uppercase mb-1\">1. \u039f\u03bb\u03bf\u03ba\u03bb\u03ae\u03c1\u03c9\u03c3\u03b1\u03bd (\u0394\u03b7\u03bc\u03bf\u03b3\u03c1.)<\/div>\n                        <div class=\"text-3xl font-black text-indigo-700\" id=\"pe04Started\">0<\/div>\n                    <\/div>\n                    \n                    <div class=\"w-full h-[60px] flex justify-center items-center relative\">\n                        <div class=\"absolute h-full w-[2px] dotted-line\"><\/div>\n                        <div class=\"funnel-badge z-10\"><i class=\"fas fa-user-minus\"><\/i> \u0394\u03b9\u03b1\u03c1\u03c1\u03bf\u03ae: &#8211;<span id=\"leak1\">0<\/span> <span class=\"opacity-80 ml-1 font-medium text-[10px]\" id=\"leak1Perc\">(0%)<\/span><\/div>\n                    <\/div>\n                    \n                    <div class=\"w-full h-[90px] bg-sky-50 border border-sky-100 rounded-xl p-3 flex flex-col justify-center items-center z-10 shadow-sm relative\">\n                        <div class=\"text-xs font-semibold text-sky-600 uppercase mb-1\">2. \u039f\u03bb\u03bf\u03ba\u03bb\u03ae\u03c1\u03c9\u03c3\u03b1\u03bd (KAEVO)<\/div>\n                        <div class=\"text-3xl font-black text-sky-700\" id=\"pe04Kaevo\">0<\/div>\n                        <div class=\"absolute -bottom-2.5 text-[9px] font-bold text-amber-600 bg-amber-50 px-2 py-0.5 rounded border border-amber-200\">*(\u03a3\u03c4\u03bf\u03c5\u03c2 \u03c0\u03af\u03bd\u03b1\u03ba\u03b5\u03c2: [+X])*<\/div>\n                    <\/div>\n                    \n                    <div class=\"w-full h-[60px] flex justify-center items-center relative\">\n                        <div class=\"absolute h-full w-[2px] dotted-line\"><\/div>\n                        <div class=\"funnel-badge z-10\"><i class=\"fas fa-user-times\"><\/i> \u0394\u03b9\u03b1\u03c1\u03c1\u03bf\u03ae: &#8211;<span id=\"leak2\">0<\/span> <span class=\"opacity-80 ml-1 font-medium text-[10px]\" id=\"leak2Perc\">(0%)<\/span><\/div>\n                    <\/div>\n                    \n                    <div class=\"w-full h-[90px] bg-emerald-50 border border-emerald-100 rounded-xl p-3 flex flex-col justify-center items-center z-10 shadow-sm\">\n                        <div class=\"text-xs font-semibold text-emerald-600 uppercase mb-1\">3. \u039f\u03bb\u03bf\u03ba\u03bb\u03ae\u03c1\u03c9\u03c3\u03b1\u03bd (\u0393\u03b5\u03bd\u03b9\u03ba\u03cc)<\/div>\n                        <div class=\"text-3xl font-black text-emerald-700\" id=\"pe04Completed\">0<\/div>\n                    <\/div>\n                <\/div>\n\n                <!-- \u03a3\u03a4\u0397\u039b\u0397 2: \u039b\u039f\u0399\u03a0\u039f\u0399 -->\n                <div class=\"flex flex-col items-center\">\n                    <h4 class=\"text-sm font-bold text-slate-700 mb-4 bg-slate-100 px-4 py-2 rounded-lg uppercase w-full text-center tracking-wider min-h-[56px] flex items-center justify-center\"><i class=\"fas fa-users text-indigo-500 mr-2\"><\/i>\u0394\u03b9\u03b1\u03b4\u03c1\u03bf\u03bc\u03ae \u039b\u03bf\u03b9\u03c0\u03ce\u03bd<\/h4>\n                    \n                    <div class=\"w-full h-[90px] bg-indigo-50 border border-indigo-100 rounded-xl p-3 flex flex-col justify-center items-center z-10 shadow-sm\">\n                        <div class=\"text-xs font-semibold text-indigo-500 uppercase mb-1\">1. \u039f\u03bb\u03bf\u03ba\u03bb\u03ae\u03c1\u03c9\u03c3\u03b1\u03bd (\u0394\u03b7\u03bc\u03bf\u03b3\u03c1.)<\/div>\n                        <div class=\"text-3xl font-black text-indigo-700\" id=\"otherStarted\">0<\/div>\n                    <\/div>\n                    \n                    <div class=\"w-full h-[60px] flex justify-center items-center relative\">\n                        <div class=\"absolute h-full w-[2px] dotted-line\"><\/div>\n                        <div class=\"h-6 w-6 rounded-full bg-slate-100 border border-slate-200 flex items-center justify-center text-slate-400 text-xs z-10\"><i class=\"fas fa-arrow-down\"><\/i><\/div>\n                    <\/div>\n                    \n                    <div class=\"w-full h-[90px] bg-red-50 border border-red-100 rounded-xl p-3 flex flex-col justify-center items-center z-10 shadow-sm text-red-600\">\n                        <div class=\"text-xs font-semibold uppercase mb-1\"><i class=\"fas fa-user-minus mr-1\"><\/i>\u0394\u03b9\u03b1\u03c1\u03c1\u03bf\u03ae \u039b\u03bf\u03b9\u03c0\u03ce\u03bd<\/div>\n                        <div class=\"flex items-baseline gap-1\">\n                            <span class=\"text-3xl font-black\" id=\"leak3\">0<\/span>\n                            <span class=\"text-sm font-bold opacity-80\" id=\"leak3Perc\">(0%)<\/span>\n                        <\/div>\n                    <\/div>\n                    \n                    <div class=\"w-full h-[60px] flex justify-center items-center relative\">\n                        <div class=\"absolute h-full w-[2px] dotted-line\"><\/div>\n                        <div class=\"h-6 w-6 rounded-full bg-slate-100 border border-slate-200 flex items-center justify-center text-slate-400 text-xs z-10\"><i class=\"fas fa-arrow-down\"><\/i><\/div>\n                    <\/div>\n                    \n                    <div class=\"w-full h-[90px] bg-emerald-50 border border-emerald-100 rounded-xl p-3 flex flex-col justify-center items-center z-10 shadow-sm\">\n                        <div class=\"text-xs font-semibold text-emerald-600 uppercase mb-1\">2. \u039f\u03bb\u03bf\u03ba\u03bb\u03ae\u03c1\u03c9\u03c3\u03b1\u03bd (\u0393\u03b5\u03bd\u03b9\u03ba\u03cc)<\/div>\n                        <div class=\"text-3xl font-black text-emerald-700\" id=\"otherCompleted\">0<\/div>\n                    <\/div>\n                <\/div>\n\n                <!-- \u03a3\u03a4\u0397\u039b\u0397 3: \u03a3\u03a5\u039d\u039f\u039b\u0391 -->\n                <div class=\"flex flex-col items-center\">\n                    <h4 class=\"text-sm font-bold text-slate-700 mb-4 bg-slate-100 px-4 py-2 rounded-lg uppercase w-full text-center tracking-wider min-h-[56px] flex items-center justify-center\"><i class=\"fas fa-chart-pie text-indigo-500 mr-2\"><\/i>\u03a3\u03c5\u03bd\u03bf\u03bb\u03b1<\/h4>\n                    \n                    <div class=\"w-full h-[90px] bg-slate-50 border border-slate-200 rounded-xl p-3 flex flex-col justify-center items-center z-10 shadow-sm\">\n                        <div class=\"text-xs font-semibold text-slate-500 uppercase mb-1\">\u03a3\u03cd\u03bd\u03bf\u03bb\u03bf (\u0394\u03b7\u03bc\u03bf\u03b3\u03c1\u03b1\u03c6\u03b9\u03ba\u03ac)<\/div>\n                        <div class=\"text-3xl font-black text-slate-700\" id=\"funnelTotalStarted\">0<\/div>\n                    <\/div>\n                    \n                    <div class=\"w-full h-[60px] flex justify-center items-center relative\">\n                        <div class=\"absolute h-full w-[2px] dotted-line\"><\/div>\n                        <div class=\"h-6 w-6 rounded-full bg-slate-100 border border-slate-200 flex items-center justify-center text-slate-400 text-xs z-10\"><i class=\"fas fa-arrow-down\"><\/i><\/div>\n                    <\/div>\n                    \n                    <div class=\"w-full h-[90px] bg-red-50 border border-red-100 rounded-xl p-3 flex flex-col justify-center items-center z-10 shadow-sm text-red-600\">\n                        <div class=\"text-xs font-semibold uppercase mb-1\"><i class=\"fas fa-users-slash mr-1\"><\/i>\u0393\u03b5\u03bd\u03b9\u03ba\u03cc Drop-Off<\/div>\n                        <div class=\"flex items-baseline gap-1\">\n                            <span class=\"text-3xl font-black\" id=\"totalLeak\">0<\/span>\n                            <span class=\"text-sm font-bold opacity-80\" id=\"totalLeakPerc\">(0%)<\/span>\n                        <\/div>\n                    <\/div>\n                    \n                    <div class=\"w-full h-[60px] flex justify-center items-center relative\">\n                        <div class=\"absolute h-full w-[2px] dotted-line\"><\/div>\n                        <div class=\"h-6 w-6 rounded-full bg-slate-100 border border-slate-200 flex items-center justify-center text-slate-400 text-xs z-10\"><i class=\"fas fa-arrow-down\"><\/i><\/div>\n                    <\/div>\n                    \n                    <div class=\"w-full h-[90px] bg-emerald-100 border border-emerald-200 rounded-xl p-3 flex flex-col justify-center items-center z-10 shadow-md\">\n                        <div class=\"text-xs font-semibold text-emerald-700 uppercase mb-1\">\u03a4\u03b5\u03bb\u03b9\u03ba\u03cc \u03a3\u03cd\u03bd\u03bf\u03bb\u03bf (\u0393\u03b5\u03bd\u03b9\u03ba\u03cc)<\/div>\n                        <div class=\"text-3xl font-black text-emerald-700\" id=\"funnelTotalCompleted\">0<\/div>\n                    <\/div>\n                <\/div>\n\n            <\/div>\n\n            <!-- \u03a5\u03c0\u03cc\u03bc\u03bd\u03b7\u03bc\u03b1 \u03a6\u03ac\u03c3\u03b5\u03c9\u03bd (\u039c\u03b5\u03c4\u03b1\u03c6\u03ad\u03c1\u03b8\u03b7\u03ba\u03b5 \u0395\u0394\u03a9 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03c4\u03c5\u03c0\u03ce\u03bd\u03b5\u03c4\u03b1\u03b9 \u03c3\u03c9\u03c3\u03c4\u03ac) -->\n            <div class=\"mt-10 pt-6 border-t border-slate-200 text-center\">\n                <h4 class=\"text-xs font-bold text-slate-500 uppercase mb-3\"><i class=\"fas fa-info-circle mr-2\"><\/i>\u03a5\u03c0\u03cc\u03bc\u03bd\u03b7\u03bc\u03b1 \u03a6\u03ac\u03c3\u03b5\u03c9\u03bd (\u03a0\u03b5\u03c1\u03af\u03bf\u03b4\u03bf\u03b9 \u0388\u03c1\u03b5\u03c5\u03bd\u03b1\u03c2)<\/h4>\n                <div class=\"inline-flex flex-col sm:flex-row gap-3 text-left\">\n                    <div class=\"bg-blue-50 border border-blue-100 p-3 rounded-lg max-w-xs\">\n                        <div class=\"text-sm font-bold text-blue-700 mb-1\">\u03a6\u03ac\u03c3\u03b7 1 (10\/3 &#8211; 16\/3)<\/div>\n                        <div class=\"text-xs text-blue-600\">\u0391\u03c1\u03c7\u03b9\u03ba\u03ae \u03b4\u03b9\u03b1\u03bd\u03bf\u03bc\u03ae \u03c4\u03bf\u03c5 \u03b5\u03c1\u03c9\u03c4\u03b7\u03bc\u03b1\u03c4\u03bf\u03bb\u03bf\u03b3\u03af\u03bf\u03c5 \u03bc\u03ad\u03c3\u03c9 \u03c4\u03c9\u03bd \u0394\u03a0\u0395 \u03ba\u03b1\u03b9 \u0394\u0394\u0395 (1\u03bf \u039a\u03cd\u03bc\u03b1)<\/div>\n                    <\/div>\n                    <div class=\"bg-emerald-50 border border-emerald-100 p-3 rounded-lg max-w-xs\">\n                        <div class=\"text-sm font-bold text-emerald-700 mb-1\">\u03a6\u03ac\u03c3\u03b7 2 (17\/3 &#8211; 31\/3)<\/div>\n                        <div class=\"text-xs text-emerald-600\">\u03a5\u03c0\u03b5\u03bd\u03b8\u03cd\u03bc\u03b9\u03c3\u03b7 \u03b3\u03b5\u03bd\u03b9\u03ba\u03ae \u03c3\u03b5 \u0394\u03a0\u0395 \u03ba \u0394\u0394\u0395, \u03a3\u03c4\u03cc\u03c7\u03b5\u03c5\u03c3\u03b7 \u03c3\u03c4\u03bf\u03c5\u03c2 \u03a0\u039504, Social Media (2\u03bf \u03ba\u03cd\u03bc\u03b1)<\/div>\n                    <\/div>\n                    <div class=\"bg-purple-50 border border-purple-100 p-3 rounded-lg max-w-xs\">\n                        <div class=\"text-sm font-bold text-purple-700 mb-1\">\u03a6\u03ac\u03c3\u03b7 3 (1\/4 &#8211; 10\/4)<\/div>\n                        <div class=\"text-xs text-purple-600\">\u03a4\u03b5\u03bb\u03b5\u03c5\u03c4\u03b1\u03af\u03b1 \u03c5\u03c0\u03b5\u03bd\u03b8\u03cd\u03bc\u03b9\u03c3\u03b7 (Final call) \u03a0\u0394\u0395, \u0394\u0394\u0395, \u0395\u039a\u03a6\u0395<\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n        <\/div>\n\n        <!-- \u039a\u0395\u039d\u03a4\u03a1\u0399\u039a\u039f\u0399 4 \u03a0\u0399\u039d\u0391\u039a\u0395\u03a3 (\u0391\u03bb\u03bb\u03b1\u03b3\u03ae \u03c3\u03b5\u03bb\u03af\u03b4\u03b1\u03c2 2 \u03ba\u03b1\u03b9 3) -->\n        <h3 class=\"max-w-7xl mx-auto text-2xl font-bold text-slate-800 border-b-2 border-slate-200 pb-2 mt-12 mb-6\"><i class=\"fas fa-mouse-pointer text-indigo-500 mr-2\"><\/i>\u0393\u03b5\u03c9\u03b3\u03c1\u03b1\u03c6\u03b9\u03ba\u03ae &#038; \u0395\u03c0\u03b1\u03b3\u03b3\u03b5\u03bb\u03bc\u03b1\u03c4\u03b9\u03ba\u03ae \u039a\u03b1\u03c4\u03b1\u03bd\u03bf\u03bc\u03ae (\u0394\u03b9\u03b1\u03b4\u03c1\u03b1\u03c3\u03c4\u03b9\u03ba\u03bf\u03af \u03a0\u03af\u03bd\u03b1\u03ba\u03b5\u03c2)<\/h3>\n        \n        <div class=\"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-2 gap-8 mb-8 print-1-col print-page-break\">\n            <div class=\"bg-white rounded-2xl shadow-sm border border-slate-200 flex flex-col h-[450px] break-inside-avoid\">\n                <div class=\"bg-slate-50 px-4 py-3 border-b border-slate-200 flex justify-between items-center\">\n                    <h3 class=\"font-bold text-slate-800\"><i class=\"fas fa-map-marker-alt text-blue-500 mr-2\"><\/i>1. \u03a0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b5\u03c2 \u03a3\u03cd\u03bd\u03bf\u03bb\u03bf<\/h3>\n                    <span class=\"text-xs text-slate-400 font-medium\">\u039a\u03bb\u03b9\u03ba \u03b3\u03b9\u03b1 \u03b1\u03bd\u03ac\u03bb\u03c5\u03c3\u03b7<\/span>\n                <\/div>\n                <div class=\"table-container flex-1\">\n                    <table class=\"min-w-full divide-y divide-slate-200 text-sm w-full\"><thead class=\"bg-slate-50 sticky top-0 z-10 shadow-sm\" id=\"thead_tbl_Regions\"><\/thead><tbody class=\"bg-white divide-y divide-slate-100\" id=\"tbl_Regions\"><\/tbody><\/table>\n                <\/div>\n            <\/div>\n\n            <div class=\"bg-white rounded-2xl shadow-sm border border-slate-200 flex flex-col h-[450px] break-inside-avoid\">\n                <div class=\"bg-slate-50 px-4 py-3 border-b border-slate-200 flex justify-between items-center\">\n                    <h3 class=\"font-bold text-slate-800\"><i class=\"fas fa-users text-indigo-500 mr-2\"><\/i>2. \u0395\u03b9\u03b4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b5\u03c2 \u03a3\u03cd\u03bd\u03bf\u03bb\u03bf<\/h3>\n                    <span class=\"text-xs text-slate-400 font-medium\">\u039a\u03bb\u03b9\u03ba \u03b3\u03b9\u03b1 \u03b1\u03bd\u03ac\u03bb\u03c5\u03c3\u03b7<\/span>\n                <\/div>\n                <div class=\"table-container flex-1\">\n                    <table class=\"min-w-full divide-y divide-slate-200 text-sm w-full\"><thead class=\"bg-slate-50 sticky top-0 z-10 shadow-sm\" id=\"thead_tbl_Specs\"><\/thead><tbody class=\"bg-white divide-y divide-slate-100\" id=\"tbl_Specs\"><\/tbody><\/table>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <div class=\"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-2 gap-8 mb-12 print-1-col print-page-break\">\n            <div class=\"bg-white rounded-2xl shadow-sm border-l-4 border-l-purple-500 border-y border-r border-slate-200 flex flex-col h-[450px] break-inside-avoid\">\n                <div class=\"bg-slate-50 px-4 py-3 border-b border-slate-200 flex justify-between items-center\">\n                    <h3 class=\"font-bold text-slate-800\"><i class=\"fas fa-map-marked-alt text-purple-500 mr-2\"><\/i>3. \u03a0\u039504 \u0391\u03bd\u03ac \u03a0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b1<\/h3>\n                    <span class=\"text-xs text-slate-400 font-medium\">\u039a\u03bb\u03b9\u03ba \u03b3\u03b9\u03b1 \u03b1\u03bd\u03ac\u03bb\u03c5\u03c3\u03b7<\/span>\n                <\/div>\n                <div class=\"table-container flex-1\">\n                    <table class=\"min-w-full divide-y divide-slate-200 text-sm w-full\"><thead class=\"bg-slate-50 sticky top-0 z-10 shadow-sm\" id=\"thead_tbl_pe04Regions\"><\/thead><tbody class=\"bg-white divide-y divide-slate-100\" id=\"tbl_pe04Regions\"><\/tbody><\/table>\n                <\/div>\n            <\/div>\n\n            <div class=\"bg-white rounded-2xl shadow-sm border-l-4 border-l-purple-500 border-y border-r border-slate-200 flex flex-col h-[450px] break-inside-avoid\">\n                <div class=\"bg-slate-50 px-4 py-3 border-b border-slate-200 flex justify-between items-center\">\n                    <h3 class=\"font-bold text-slate-800\"><i class=\"fas fa-microscope text-purple-500 mr-2\"><\/i>4. \u03a0\u039504 \u03a5\u03c0\u03bf-\u0395\u03b9\u03b4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b5\u03c2<\/h3>\n                    <span class=\"text-xs text-slate-400 font-medium\">\u039a\u03bb\u03b9\u03ba \u03b3\u03b9\u03b1 \u03b1\u03bd\u03ac\u03bb\u03c5\u03c3\u03b7<\/span>\n                <\/div>\n                <div class=\"table-container flex-1\">\n                    <table class=\"min-w-full divide-y divide-slate-200 text-sm w-full\"><thead class=\"bg-slate-50 sticky top-0 z-10 shadow-sm\" id=\"thead_tbl_pe04Specs\"><\/thead><tbody class=\"bg-white divide-y divide-slate-100\" id=\"tbl_pe04Specs\"><\/tbody><\/table>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <!-- 8 \u0394\u0395\u03a5\u03a4\u0395\u03a1\u0395\u03a5\u039f\u039d\u03a4\u0395\u03a3 \u03a0\u0399\u039d\u0391\u039a\u0395\u03a3 \u0394\u0397\u039c\u039f\u0393\u03a1\u0391\u03a6\u0399\u039a\u03a9\u039d (\u0391\u03bb\u03bb\u03b1\u03b3\u03ae \u03c3\u03b5\u03bb\u03af\u03b4\u03b1\u03c2 4 \u03ba\u03b1\u03b9 5, \u03bf\u03c1\u03b1\u03c4\u03bf\u03af \u03c3\u03c4\u03b7\u03bd \u03b5\u03ba\u03c4\u03cd\u03c0\u03c9\u03c3\u03b7!) -->\n        <h3 class=\"max-w-7xl mx-auto text-2xl font-bold text-slate-800 border-b-2 border-slate-200 pb-2 mt-12 mb-6\"><i class=\"fas fa-id-card text-indigo-500 mr-2\"><\/i>\u03a0\u03bb\u03ae\u03c1\u03b7 \u0394\u03b7\u03bc\u03bf\u03b3\u03c1\u03b1\u03c6\u03b9\u03ba\u03ac \u03a3\u03c4\u03bf\u03b9\u03c7\u03b5\u03af\u03b1<\/h3>\n        \n        <div class=\"max-w-7xl mx-auto grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 mb-6 print-2-cols print-page-break\">\n            <div class=\"bg-white rounded-2xl shadow-sm border border-slate-200 break-inside-avoid flex flex-col h-[340px]\">\n                <div class=\"bg-slate-50 px-3 py-2.5 border-b border-slate-200\"><h3 class=\"font-bold text-slate-800 text-sm\"><i class=\"fas fa-building mr-2\"><\/i>\u0394\u03b7\u03bc\u03cc\u03c3\u03b9\u03bf \/ \u0399\u03b4\u03b9\u03c9\u03c4\u03b9\u03ba\u03cc<\/h3><\/div>\n                <div class=\"table-container flex-1\"><table class=\"w-full text-left border-collapse text-sm table-fixed\"><thead id=\"thead_tbl_PubPriv\" class=\"bg-slate-50 sticky top-0 z-10 shadow-sm\"><\/thead><tbody id=\"tbl_PubPriv\" class=\"divide-y divide-slate-100\"><\/tbody><\/table><\/div>\n            <\/div>\n            <div class=\"bg-white rounded-2xl shadow-sm border border-slate-200 break-inside-avoid flex flex-col h-[340px]\">\n                <div class=\"bg-slate-50 px-3 py-2.5 border-b border-slate-200\"><h3 class=\"font-bold text-slate-800 text-sm\"><i class=\"fas fa-school mr-2\"><\/i>\u03a4\u03cd\u03c0\u03bf\u03c2 \u03a3\u03c7\u03bf\u03bb\u03b5\u03af\u03bf\u03c5<\/h3><\/div>\n                <div class=\"table-container flex-1\"><table class=\"w-full text-left border-collapse text-sm table-fixed\"><thead id=\"thead_tbl_SchoolType\" class=\"bg-slate-50 sticky top-0 z-10 shadow-sm\"><\/thead><tbody id=\"tbl_SchoolType\" class=\"divide-y divide-slate-100\"><\/tbody><\/table><\/div>\n            <\/div>\n            <div class=\"bg-white rounded-2xl shadow-sm border border-slate-200 break-inside-avoid flex flex-col h-[340px]\">\n                <div class=\"bg-slate-50 px-3 py-2.5 border-b border-slate-200\"><h3 class=\"font-bold text-slate-800 text-sm\"><i class=\"fas fa-venus-mars mr-2\"><\/i>\u03a6\u03cd\u03bb\u03bf<\/h3><\/div>\n                <div class=\"table-container flex-1\"><table class=\"w-full text-left border-collapse text-sm table-fixed\"><thead id=\"thead_tbl_Gender\" class=\"bg-slate-50 sticky top-0 z-10 shadow-sm\"><\/thead><tbody id=\"tbl_Gender\" class=\"divide-y divide-slate-100\"><\/tbody><\/table><\/div>\n            <\/div>\n            <div class=\"bg-white rounded-2xl shadow-sm border border-slate-200 break-inside-avoid flex flex-col h-[340px]\">\n                <div class=\"bg-slate-50 px-3 py-2.5 border-b border-slate-200\"><h3 class=\"font-bold text-slate-800 text-sm\"><i class=\"fas fa-church mr-2\"><\/i>\u0398\u03c1\u03ae\u03c3\u03ba\u03b5\u03c5\u03bc\u03b1<\/h3><\/div>\n                <div class=\"table-container flex-1\"><table class=\"w-full text-left border-collapse text-sm table-fixed\"><thead id=\"thead_tbl_Religion\" class=\"bg-slate-50 sticky top-0 z-10 shadow-sm\"><\/thead><tbody id=\"tbl_Religion\" class=\"divide-y divide-slate-100\"><\/tbody><\/table><\/div>\n            <\/div>\n        <\/div>\n\n        <div class=\"max-w-7xl mx-auto grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 mb-12 print-2-cols\">\n            <div class=\"bg-white rounded-2xl shadow-sm border border-slate-200 break-inside-avoid flex flex-col h-[340px]\">\n                <div class=\"bg-slate-50 px-3 py-2.5 border-b border-slate-200\"><h3 class=\"font-bold text-slate-800 text-sm\"><i class=\"fas fa-birthday-cake mr-2\"><\/i>\u0397\u03bb\u03b9\u03ba\u03af\u03b1<\/h3><\/div>\n                <div class=\"table-container flex-1\"><table class=\"w-full text-left border-collapse text-sm table-fixed\"><thead id=\"thead_tbl_Age\" class=\"bg-slate-50 sticky top-0 z-10 shadow-sm\"><\/thead><tbody id=\"tbl_Age\" class=\"divide-y divide-slate-100\"><\/tbody><\/table><\/div>\n            <\/div>\n            <div class=\"bg-white rounded-2xl shadow-sm border border-slate-200 break-inside-avoid flex flex-col h-[340px]\">\n                <div class=\"bg-slate-50 px-3 py-2.5 border-b border-slate-200\"><h3 class=\"font-bold text-slate-800 text-sm\"><i class=\"fas fa-chalkboard-teacher mr-2\"><\/i>\u0388\u03c4\u03b7 \u0394\u03b9\u03b4\u03b1\u03c3\u03ba\u03b1\u03bb\u03af\u03b1\u03c2<\/h3><\/div>\n                <div class=\"table-container flex-1\"><table class=\"w-full text-left border-collapse text-sm table-fixed\"><thead id=\"thead_tbl_TeachingYears\" class=\"bg-slate-50 sticky top-0 z-10 shadow-sm\"><\/thead><tbody id=\"tbl_TeachingYears\" class=\"divide-y divide-slate-100\"><\/tbody><\/table><\/div>\n            <\/div>\n            <div class=\"bg-white rounded-2xl shadow-sm border border-slate-200 break-inside-avoid flex flex-col h-[340px]\">\n                <div class=\"bg-slate-50 px-3 py-2.5 border-b border-slate-200\"><h3 class=\"font-bold text-slate-800 text-sm\"><i class=\"fas fa-graduation-cap mr-2\"><\/i>\u0395\u03ba\u03c0\u03b1\u03b9\u03b4\u03b5\u03c5\u03c4\u03b9\u03ba\u03cc \u0395\u03c0\u03af\u03c0\u03b5\u03b4\u03bf<\/h3><\/div>\n                <div class=\"table-container flex-1\"><table class=\"w-full text-left border-collapse text-sm table-fixed\"><thead id=\"thead_tbl_Edu\" class=\"bg-slate-50 sticky top-0 z-10 shadow-sm\"><\/thead><tbody id=\"tbl_Edu\" class=\"divide-y divide-slate-100\"><\/tbody><\/table><\/div>\n            <\/div>\n            <div class=\"bg-white rounded-2xl shadow-sm border border-slate-200 break-inside-avoid flex flex-col h-[340px]\">\n                <div class=\"bg-slate-50 px-3 py-2.5 border-b border-slate-200\"><h3 class=\"font-bold text-slate-800 text-sm\"><i class=\"fas fa-city mr-2\"><\/i>\u03a0\u03b5\u03c1\u03b9\u03bf\u03c7\u03ae \u03a3\u03c7\u03bf\u03bb\u03b5\u03af\u03bf\u03c5<\/h3><\/div>\n                <div class=\"table-container flex-1\"><table class=\"w-full text-left border-collapse text-sm table-fixed\"><thead id=\"thead_tbl_Location\" class=\"bg-slate-50 sticky top-0 z-10 shadow-sm\"><\/thead><tbody id=\"tbl_Location\" class=\"divide-y divide-slate-100\"><\/tbody><\/table><\/div>\n            <\/div>\n        <\/div>\n\n        <!-- VOLUNTEERS TRACKING TABLE (\u039a\u03c1\u03cd\u03b2\u03b5\u03c4\u03b1\u03b9 \u03c3\u03c4\u03b7\u03bd \u03b5\u03ba\u03c4\u03cd\u03c0\u03c9\u03c3\u03b7) -->\n        <div id=\"volunteers-panel\" class=\"max-w-7xl mx-auto mb-12 bg-white rounded-2xl shadow-sm border-t-4 border-amber-500 overflow-hidden break-inside-avoid no-print\">\n            <div class=\"bg-slate-50 px-6 py-4 border-b border-slate-100 flex flex-col md:flex-row justify-between items-center gap-4\">\n                <div>\n                    <h3 class=\"font-bold text-slate-800\"><i class=\"fas fa-address-book text-amber-500 mr-2\"><\/i>\u0395\u03b8\u03b5\u03bb\u03bf\u03bd\u03c4\u03ad\u03c2 \u03a0\u03bf\u03b9\u03bf\u03c4\u03b9\u03ba\u03ae\u03c2 \u03a6\u03ac\u03c3\u03b7\u03c2<\/h3>\n                    <p class=\"text-[11px] text-slate-500 mt-1\">\u0395\u03bc\u03c6\u03b1\u03bd\u03af\u03b6\u03bf\u03bd\u03c4\u03b1\u03b9 \u03b1\u03c0\u03bf\u03ba\u03bb\u03b5\u03b9\u03c3\u03c4\u03b9\u03ba\u03ac \u0392\u03b9\u03bf\u03bb\u03cc\u03b3\u03bf\u03b9 (404) &#038; \u0393\u03b5\u03c9\u03bb\u03cc\u03b3\u03bf\u03b9 (405) \u03c0\u03bf\u03c5 \u03ac\u03c6\u03b7\u03c3\u03b1\u03bd \u03c3\u03c4\u03bf\u03b9\u03c7\u03b5\u03af\u03b1 \u03c3\u03c4\u03bf \u0393\u03b5\u03bd\u03b9\u03ba\u03cc \u039c\u03ad\u03c1\u03bf\u03c2.<\/p>\n                <\/div>\n                <div class=\"flex flex-wrap gap-2 items-center\">\n                    <span class=\"bg-emerald-100 text-emerald-800 text-xs font-black px-3 py-1.5 rounded-lg border border-emerald-200\"><i class=\"fas fa-leaf mr-1\"><\/i>\u0392\u03b9\u03bf\u03bb\u03cc\u03b3\u03bf\u03b9: <span id=\"bioVolCount\">0<\/span><\/span>\n                    <span class=\"bg-amber-100 text-amber-800 text-xs font-black px-3 py-1.5 rounded-lg border border-amber-200\"><i class=\"fas fa-mountain mr-1\"><\/i>\u0393\u03b5\u03c9\u03bb\u03cc\u03b3\u03bf\u03b9: <span id=\"geoVolCount\">0<\/span><\/span>\n                <\/div>\n            <\/div>\n            <div class=\"table-container overflow-x-auto max-h-96\">\n                <table class=\"w-full text-left border-collapse text-sm\"><thead class=\"bg-white sticky top-0 shadow-sm z-10\"><tr><th class=\"px-4 py-3 text-xs font-bold text-slate-500 uppercase border-b border-slate-200\">\u0397\u03bc\/\u03bd\u03af\u03b1<\/th><th class=\"px-4 py-3 text-xs font-bold text-slate-500 uppercase border-b border-slate-200\">\u0395\u03b9\u03b4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b1<\/th><th class=\"px-4 py-3 text-xs font-bold text-slate-500 uppercase border-b border-slate-200\">\u03a4\u03b7\u03bb\u03ad\u03c6\u03c9\u03bd\u03bf<\/th><th class=\"px-4 py-3 text-xs font-bold text-slate-500 uppercase border-b border-slate-200\">Email<\/th><th class=\"px-4 py-3 text-xs font-bold text-slate-500 uppercase text-center border-b border-slate-200\">\u039a\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7<\/th><\/tr><\/thead><tbody id=\"volunteersTable\" class=\"divide-y divide-slate-100\"><\/tbody><\/table>\n            <\/div>\n        <\/div>\n\n        <!-- NEW SMART PANEL (AI Builder + Datawrapper) (\u039a\u03c1\u03cd\u03b2\u03b5\u03c4\u03b1\u03b9 \u03c3\u03c4\u03b7\u03bd \u03b5\u03ba\u03c4\u03cd\u03c0\u03c9\u03c3\u03b7) -->\n        <div id=\"smart-tools-panel\" class=\"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-6 mb-8 no-print\">\n            \n            <!-- AI PROMPT BUILDER -->\n            <div class=\"lg:col-span-2 bg-slate-800 rounded-2xl p-6 shadow-lg text-white border border-slate-700\">\n                <div class=\"flex items-center mb-4\">\n                    <h3 class=\"text-lg font-bold\"><i class=\"fas fa-robot text-purple-400 mr-2\"><\/i>AI Prompt Builder<\/h3>\n                <\/div>\n                <div class=\"text-xs text-slate-400 mb-4 border-b border-slate-700 pb-3\">\u0395\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u03c4\u03b1 \u03c3\u03b7\u03bc\u03b5\u03af\u03b1 \u03c0\u03bf\u03c5 \u03b8\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03b1\u03bd\u03b1\u03bb\u03cd\u03c3\u03b5\u03b9 \u03c4\u03bf AI. \u03a4\u03bf prompt \u03b8\u03b1 \u03b4\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03b7\u03b8\u03b5\u03af \u03b4\u03c5\u03bd\u03b1\u03bc\u03b9\u03ba\u03ac, \u03b5\u03be\u03ac\u03b3\u03bf\u03bd\u03c4\u03b1\u03c2 \u03b1\u03c5\u03c4\u03bf\u03cd\u03c3\u03b9\u03b1 \u03cc\u03bb\u03b1 \u03c4\u03b1 \u03ba\u03b1\u03b8\u03b1\u03c1\u03ac \u03c3\u03c4\u03b1\u03c4\u03b9\u03c3\u03c4\u03b9\u03ba\u03ac \u03c4\u03b7\u03c2 \u03ad\u03c1\u03b5\u03c5\u03bd\u03ac\u03c2 \u03c3\u03b1\u03c2.<\/div>\n                \n                <div class=\"grid grid-cols-1 sm:grid-cols-2 gap-3 mb-5\">\n                    <label class=\"flex items-center space-x-2 cursor-pointer text-sm\"><input type=\"checkbox\" id=\"chkGen\" class=\"rounded text-purple-500 focus:ring-purple-500\" checked><span class=\"text-slate-200\">\u0393\u03b5\u03bd\u03b9\u03ba\u03ae \u0391\u03be\u03b9\u03bf\u03bb\u03cc\u03b3\u03b7\u03c3\u03b7 (\u039c\u03b5\u03b3\u03ad\u03b8\u03b7 &#038; \u03a0\u03bf\u03c3\u03bf\u03c3\u03c4\u03ac)<\/span><\/label>\n                    <label class=\"flex items-center space-x-2 cursor-pointer text-sm\"><input type=\"checkbox\" id=\"chkDrop\" class=\"rounded text-purple-500 focus:ring-purple-500\" checked><span class=\"text-slate-200\">\u0391\u03bd\u03ac\u03bb\u03c5\u03c3\u03b7 \u0395\u03b3\u03ba\u03b1\u03c4\u03ac\u03bb\u03b5\u03b9\u03c8\u03b7\u03c2 (Drop-offs)<\/span><\/label>\n                    <label class=\"flex items-center space-x-2 cursor-pointer text-sm\"><input type=\"checkbox\" id=\"chkRep\" class=\"rounded text-purple-500 focus:ring-purple-500\" checked><span class=\"text-slate-200\">\u0391\u03bd\u03c4\u03b9\u03c0\u03c1\u03bf\u03c3\u03c9\u03c0\u03b5\u03c5\u03c4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b1 (\u0395\u039b\u03a3\u03a4\u0391\u03a4)<\/span><\/label>\n                    <label class=\"flex items-center space-x-2 cursor-pointer text-sm\"><input type=\"checkbox\" id=\"chkDemo\" class=\"rounded text-purple-500 focus:ring-purple-500\" checked><span class=\"text-slate-200\">\u039b\u03bf\u03b9\u03c0\u03ac \u0394\u03b7\u03bc\u03bf\u03b3\u03c1\u03b1\u03c6\u03b9\u03ba\u03ac \u03a3\u03c4\u03bf\u03b9\u03c7\u03b5\u03af\u03b1<\/span><\/label>\n                    <label class=\"flex items-center space-x-2 cursor-pointer text-sm\"><input type=\"checkbox\" id=\"chkPower\" class=\"rounded text-purple-500 focus:ring-purple-500\" checked><span class=\"text-slate-200\">\u03a3\u03c4\u03b1\u03c4\u03b9\u03c3\u03c4\u03b9\u03ba\u03ae \u0394\u03cd\u03bd\u03b1\u03bc\u03b7 (Power Analysis)<\/span><\/label>\n                    <label class=\"flex items-center space-x-2 cursor-pointer text-sm\"><input type=\"checkbox\" id=\"chkConcl\" class=\"rounded text-purple-500 focus:ring-purple-500\" checked><span class=\"text-slate-200\">\u03a3\u03c5\u03bc\u03c0\u03b5\u03c1\u03ac\u03c3\u03bc\u03b1\u03c4\u03b1 &#038; \u0391\u03be\u03b9\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 (Insights)<\/span><\/label>\n                <\/div>\n                \n                <button onclick=\"generateAdvancedPrompt()\" class=\"bg-purple-600 hover:bg-purple-500 text-white px-5 py-2.5 rounded-lg text-sm font-bold transition w-full shadow-md mb-4\"><i class=\"fas fa-magic mr-2\"><\/i>\u0394\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 Prompt<\/button>\n                \n                <textarea id=\"promptTextarea\" class=\"w-full h-40 bg-slate-900 text-slate-300 border border-slate-700 rounded-lg p-4 text-xs hidden focus:ring-1 focus:ring-purple-500 outline-none font-mono\" readonly><\/textarea>\n                <div class=\"mt-3 flex justify-end\">\n                    <button id=\"copyPromptBtn\" onclick=\"copyAdvancedPrompt()\" class=\"hidden bg-emerald-600 hover:bg-emerald-500 px-5 py-2 rounded-lg text-sm font-bold transition shadow-md\"><i class=\"fas fa-copy mr-2\"><\/i>\u0391\u03bd\u03c4\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae<\/button>\n                <\/div>\n            <\/div>\n\n            <!-- DATAWRAPPER QUICK EXPORT -->\n            <div class=\"bg-slate-800 rounded-2xl p-6 shadow-lg text-white border-t-4 border-orange-500 flex flex-col\">\n                <div class=\"flex items-center mb-4\">\n                    <h3 class=\"text-lg font-bold\"><i class=\"fas fa-chart-bar text-orange-400 mr-2\"><\/i>Datawrapper CSV<\/h3>\n                <\/div>\n                <div class=\"text-xs text-slate-400 mb-4 flex-1\">\u0395\u03c0\u03b9\u03bb\u03ad\u03be\u03c4\u03b5 \u03c0\u03af\u03bd\u03b1\u03ba\u03b1. \u03a4\u03b1 \u03ba\u03b1\u03b8\u03b1\u03c1\u03ac \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03b8\u03b1 \u03b1\u03bd\u03c4\u03b9\u03b3\u03c1\u03b1\u03c6\u03bf\u03cd\u03bd \u03c3\u03c4\u03bf \u03c0\u03c1\u03cc\u03c7\u03b5\u03b9\u03c1\u03bf (Clipboard) \u03b3\u03b9\u03b1 \u03b1\u03c0\u03b5\u03c5\u03b8\u03b5\u03af\u03b1\u03c2 \u03b5\u03c0\u03b9\u03ba\u03cc\u03bb\u03bb\u03b7\u03c3\u03b7 \u03c3\u03c4\u03bf Datawrapper.<\/div>\n                \n                <select id=\"dwSelect\" class=\"bg-slate-700 border border-slate-600 text-white text-sm rounded-lg focus:ring-orange-500 focus:border-orange-500 block p-2.5 w-full outline-none mb-4\">\n                    <optgroup label=\"\u0392\u03b1\u03c3\u03b9\u03ba\u03ac \u0394\u03b7\u03bc\u03bf\u03b3\u03c1\u03b1\u03c6\u03b9\u03ba\u03ac\">\n                        <option value=\"\u03a6\u03cd\u03bb\u03bf\">\u03a6\u03cd\u03bb\u03bf<\/option>\n                        <option value=\"\u03a0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b1 \u03a5\u03c0\u03b7\u03c1\u03ad\u03c4\u03b7\u03c3\u03b7\u03c2\">\u03a0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b5\u03c2 (\u038c\u03bb\u03bf\u03b9)<\/option>\n                        <option value=\"\u0395\u03b9\u03b4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b1\">\u0395\u03b9\u03b4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b5\u03c2<\/option>\n                        <option value=\"\u0397\u03bb\u03b9\u03ba\u03af\u03b1\">\u0397\u03bb\u03b9\u03ba\u03af\u03b1<\/option>\n                        <option value=\"\u0391\u03bd\u03ce\u03c4\u03b1\u03c4\u03bf \u0395\u03ba\u03c0\u03b1\u03b9\u03b4\u03b5\u03c5\u03c4\u03b9\u03ba\u03cc \u0395\u03c0\u03af\u03c0\u03b5\u03b4\u03bf\">\u0395\u03ba\u03c0\u03b1\u03b9\u03b4\u03b5\u03c5\u03c4\u03b9\u03ba\u03cc \u0395\u03c0\u03af\u03c0\u03b5\u03b4\u03bf<\/option>\n                        <option value=\"\u03a4\u03bf \u03a3\u03c7\u03bf\u03bb\u03b5\u03af\u03bf \u03c0\u03bf\u03c5 \u03c5\u03c0\u03b7\u03c1\u03b5\u03c4\u03b5\u03af\u03c4\u03b5 \u03b5\u03af\u03bd\u03b1\u03b9\">\u0394\u03b7\u03bc\u03cc\u03c3\u03b9\u03bf\/\u0399\u03b4\u03b9\u03c9\u03c4\u03b9\u03ba\u03cc<\/option>\n                        <option value=\"\u03a4\u03cd\u03c0\u03bf\u03c2 \u039a\u03cd\u03c1\u03b9\u03b1\u03c2 \u03a3\u03c7\u03bf\u03bb\u03b9\u03ba\u03ae\u03c2 \u039c\u03bf\u03bd\u03ac\u03b4\u03b1\u03c2\">\u03a4\u03cd\u03c0\u03bf\u03c2 \u03a3\u03c7\u03bf\u03bb\u03b5\u03af\u03bf\u03c5<\/option>\n                        <option value=\"\u0388\u03c4\u03b7 \u0394\u03b9\u03b4\u03b1\u03c3\u03ba\u03b1\u03bb\u03af\u03b1\u03c2\">\u0388\u03c4\u03b7 \u0394\u03b9\u03b4\u03b1\u03c3\u03ba\u03b1\u03bb\u03af\u03b1\u03c2<\/option>\n                    <\/optgroup>\n                    <optgroup label=\"\u0391\u03bd\u03c4\u03b9\u03c0\u03c1\u03bf\u03c3\u03c9\u03c0\u03b5\u03c5\u03c4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b1 (\u0395\u039b\u03a3\u03a4\u0391\u03a4)\">\n                        <option value=\"dw_elstat_gen\">\u0395\u039b\u03a3\u03a4\u0391\u03a4 \u03a3\u03c5\u03b3\u03ba\u03c1\u03b9\u03c4\u03b9\u03ba\u03cc (\u038c\u03bb\u03bf\u03b9) &#8211; Split Bars<\/option>\n                        <option value=\"dw_elstat_pe04\">\u0395\u039b\u03a3\u03a4\u0391\u03a4 \u03a3\u03c5\u03b3\u03ba\u03c1\u03b9\u03c4\u03b9\u03ba\u03cc (\u03a0\u039504) &#8211; Split Bars<\/option>\n                        <option value=\"dw_map_gen\">\u0394\u03b9\u03b1\u03c6\u03bf\u03c1\u03ac \u0391\u03bd\u03c4\u03b9\u03c0\u03c1\u03bf\u03c3\u03ce\u03c0\u03b5\u03c5\u03c3\u03b7\u03c2 (\u038c\u03bb\u03bf\u03b9) &#8211; \u03a7\u03ac\u03c1\u03c4\u03b7\u03c2<\/option>\n                        <option value=\"dw_map_pe04\">\u0394\u03b9\u03b1\u03c6\u03bf\u03c1\u03ac \u0391\u03bd\u03c4\u03b9\u03c0\u03c1\u03bf\u03c3\u03ce\u03c0\u03b5\u03c5\u03c3\u03b7\u03c2 (\u03a0\u039504) &#8211; \u03a7\u03ac\u03c1\u03c4\u03b7\u03c2<\/option>\n                    <\/optgroup>\n                <\/select>\n                \n                <button id=\"dwCopyBtn\" onclick=\"copyDatawrapperCSV()\" class=\"bg-orange-600 hover:bg-orange-500 text-white px-5 py-2.5 rounded-lg text-sm font-bold transition w-full shadow-md\"><i class=\"fas fa-clipboard mr-2\"><\/i>\u0391\u03bd\u03c4\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u0394\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd CSV<\/button>\n            <\/div>\n\n        <\/div>\n\n    <\/div>\n\n    <!-- UNIVERSAL Drill-down Modal -->\n    <div id=\"specModal\" class=\"modal\">\n        <div class=\"modal-content bg-white rounded-2xl shadow-2xl w-full max-w-4xl mx-4 flex flex-col\">\n            <div class=\"bg-indigo-600 text-white px-5 py-4 flex justify-between items-center rounded-t-2xl\">\n                <h3 class=\"text-lg font-bold\"><i class=\"fas fa-search-plus text-indigo-300 mr-2\"><\/i><span id=\"modalTitle\">\u0391\u03bd\u03ac\u03bb\u03c5\u03c3\u03b7<\/span>: <span id=\"modalSubtitle\" class=\"bg-indigo-800 px-3 py-1 rounded-lg ml-2 font-mono text-sm\"><\/span><\/h3>\n                <button onclick=\"closeModal()\" class=\"text-indigo-200 hover:text-white transition\"><i class=\"fas fa-times text-xl\"><\/i><\/button>\n            <\/div>\n            <div class=\"p-0 overflow-y-auto flex-1 table-container max-h-[60vh]\">\n                <table class=\"min-w-full divide-y divide-slate-200 text-sm w-full\"><thead class=\"bg-slate-50 sticky top-0 z-10 shadow-sm\" id=\"thead_modalTbody\"><\/thead><tbody class=\"bg-white divide-y divide-slate-100\" id=\"modalTbody\"><\/tbody><\/table>\n            <\/div>\n            <div class=\"px-6 py-4 border-t border-slate-200 bg-slate-50 rounded-b-2xl text-right\">\n                <button onclick=\"closeModal()\" class=\"bg-slate-200 hover:bg-slate-300 text-slate-700 font-bold py-2 px-6 rounded-lg transition\">\u039a\u03bb\u03b5\u03af\u03c3\u03b9\u03bc\u03bf<\/button>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <script>\n        let validRecords = [];\n        let volunteerRecords = [];\n        \n        \/\/ \u0394\u03b9\u03cc\u03c1\u03b8\u03c9\u03c3\u03b7 \u03c4\u03c9\u03bd \u039b\u03b1\u03c4\u03b9\u03bd\u03b9\u03ba\u03ce\u03bd 'A' \u03c3\u03b5 \u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac '\u0391' \u03c3\u03c4\u03b7\u03bd \u0395\u039b\u03a3\u03a4\u0391\u03a4 \n        const elstatData = {\n            '\u0391\u03c4\u03c4\u03b9\u03ba\u03ae': 36.4, '\u039a\u03b5\u03bd\u03c4\u03c1\u03b9\u03ba\u03ae \u039c\u03b1\u03ba\u03b5\u03b4\u03bf\u03bd\u03af\u03b1': 17.1, '\u0398\u03b5\u03c3\u03c3\u03b1\u03bb\u03af\u03b1': 6.6,\n            '\u0394\u03c5\u03c4\u03b9\u03ba\u03ae \u0395\u03bb\u03bb\u03ac\u03b4\u03b1': 6.2, '\u039a\u03c1\u03ae\u03c4\u03b7': 6.0, '\u0391\u03bd\u03b1\u03c4\u03bf\u03bb\u03b9\u03ba\u03ae \u039c\u03b1\u03ba\u03b5\u03b4\u03bf\u03bd\u03af\u03b1 \u0398\u03c1\u03ac\u03ba\u03b7': 5.4,\n            '\u03a0\u03b5\u03bb\u03bf\u03c0\u03cc\u03bd\u03bd\u03b7\u03c3\u03bf\u03c2': 5.1, '\u03a3\u03c4\u03b5\u03c1\u03b5\u03ac \u0395\u03bb\u03bb\u03ac\u03b4\u03b1': 4.8, '\u0389\u03c0\u03b5\u03b9\u03c1\u03bf\u03c2': 3.1,\n            '\u039d\u03cc\u03c4\u03b9\u03bf \u0391\u03b9\u03b3\u03b1\u03af\u03bf': 3.1, '\u0394\u03c5\u03c4\u03b9\u03ba\u03ae \u039c\u03b1\u03ba\u03b5\u03b4\u03bf\u03bd\u03af\u03b1': 2.4, '\u0399\u03cc\u03bd\u03b9\u03b1 \u039d\u03b7\u03c3\u03b9\u03ac': 2.0,\n            '\u0392\u03cc\u03c1\u03b5\u03b9\u03bf \u0391\u03b9\u03b3\u03b1\u03af\u03bf': 1.9\n        };\n\n        \/\/ \u0392\u03bf\u03b7\u03b8\u03b7\u03c4\u03b9\u03ba\u03ae \u03c3\u03c5\u03bd\u03ac\u03c1\u03c4\u03b7\u03c3\u03b7 \u03b3\u03b9\u03b1 \u03b4\u03b9\u03cc\u03c1\u03b8\u03c9\u03c3\u03b7 \u03bb\u03b1\u03c4\u03b9\u03bd\u03b9\u03ba\u03ce\u03bd \u03b3\u03c1\u03b1\u03bc\u03bc\u03ac\u03c4\u03c9\u03bd \u03ba\u03b1\u03b9 \u03bf\u03bd\u03bf\u03bc\u03ac\u03c4\u03c9\u03bd\n        function fixRegionText(text) {\n            if (!text) return '';\n            let fixed = text.replace(\/\\u0041\/g, '\\u0391'); \/\/ Replace Latin A with Greek \u0391\n            if (fixed.includes('\u0391\u03bd\u03b1\u03c4\u03bf\u03bb\u03b9\u03ba\u03ae \u039c\u03b1\u03ba\u03b5\u03b4\u03bf\u03bd\u03af\u03b1')) return '\u0391\u03bd\u03b1\u03c4\u03bf\u03bb\u03b9\u03ba\u03ae \u039c\u03b1\u03ba\u03b5\u03b4\u03bf\u03bd\u03af\u03b1 \u0398\u03c1\u03ac\u03ba\u03b7';\n            if (fixed.includes('\u0399\u03cc\u03bd\u03b9')) return '\u0399\u03cc\u03bd\u03b9\u03b1 \u039d\u03b7\u03c3\u03b9\u03ac'; \/\/ \u03a0\u03b9\u03ac\u03bd\u03b5\u03b9 \u0399\u03cc\u03bd\u03b9\u03bf\u03b9, \u0399\u03cc\u03bd\u03b9\u03b5\u03c2 \u03ba\u03bb\u03c0.\n            return fixed.trim();\n        }\n\n        function getPhase(dateStr) {\n            if (!dateStr) return 0;\n            let d = new Date(dateStr);\n            let p1End = new Date('2026-03-16T23:59:59');\n            let p2End = new Date('2026-03-31T23:59:59');\n            if (d <= p1End) return 1;\n            if (d <= p2End) return 2;\n            return 3;\n        }\n\n        const PHASE_LABELS = { 1: \"\u03a6\u03ac\u03c3\u03b7 1\", 2: \"\u03a6\u03ac\u03c3\u03b7 2\", 3: \"\u03a6\u03ac\u03c3\u03b7 3\" };\n\n        function formatPhoneNumber(phoneStr) {\n            if (!phoneStr) return '';\n            let clean = phoneStr.replace(\/[\\s\\-\\(\\)\\.]\/g, ''); \n            if (clean.length < 10) return phoneStr; \n            let p3 = clean.slice(-6); \n            let p2 = clean.slice(-10, -6); \n            let p1 = clean.slice(0, -10); \n            return [p1, p2, p3].filter(Boolean).join(' '); \n        }\n\n        let rawDemo = [], rawKaevo = [], rawGeneral = [];\n\n        const setupFileInput = (inputId, statusId, dataVar) => {\n            document.getElementById(inputId).addEventListener('change', function(e) {\n                const file = e.target.files[0];\n                const statusEl = document.getElementById(statusId);\n                if (!file) return;\n                \n                \/\/ \u0394\u03c5\u03bd\u03b1\u03bc\u03b9\u03ba\u03ae \u03b5\u03b3\u03b3\u03c1\u03b1\u03c6\u03ae \u03c4\u03bf\u03c5 \u03bf\u03bd\u03cc\u03bc\u03b1\u03c4\u03bf\u03c2 \u03b1\u03c1\u03c7\u03b5\u03af\u03bf\u03c5 \u03b3\u03b9\u03b1 \u03c4\u03b7\u03bd \u03b5\u03ba\u03c4\u03cd\u03c0\u03c9\u03c3\u03b7\n                let printSpan = document.getElementById('printFile_' + dataVar);\n                if(printSpan) printSpan.innerText = file.name;\n\n                statusEl.innerHTML = '<i class=\"fas fa-spinner fa-spin mr-1\"><\/i>\u03a6\u03cc\u03c1\u03c4\u03c9\u03c3\u03b7...';\n                Papa.parse(file, {\n                    header: true, skipEmptyLines: true,\n                    complete: function(res) {\n                        let data = res.data.filter(row => Object.values(row).some(val => val !== \"\"));\n                        if (dataVar === 'demo') rawDemo = data;\n                        if (dataVar === 'kaevo') rawKaevo = data;\n                        if (dataVar === 'general') rawGeneral = data;\n                        statusEl.innerHTML = `<i class=\"fas fa-check-circle mr-1 text-emerald-500\"><\/i>\u0388\u03c4\u03bf\u03b9\u03bc\u03bf (${data.length} \u03b3\u03c1\u03b1\u03bc\u03bc\u03ad\u03c2)`;\n                    }\n                });\n            });\n        };\n\n        setupFileInput('fileDemographics', 'statusDemo', 'demo');\n        setupFileInput('fileKaevo', 'statusKaevo', 'kaevo');\n        setupFileInput('fileGeneral', 'statusGeneral', 'general');\n\n        window.processData = function() {\n            if (rawDemo.length === 0 || rawGeneral.length === 0) {\n                document.getElementById('alertMessage').innerText = \"\u03a6\u03cc\u03c1\u03c4\u03c9\u03c3\u03b5 \u03c4\u03b1 \u03b1\u03c0\u03b1\u03b9\u03c4\u03bf\u03cd\u03bc\u03b5\u03bd\u03b1 \u03b1\u03c1\u03c7\u03b5\u03af\u03b1!\";\n                document.getElementById('alertBox').classList.remove('hidden');\n                return;\n            }\n            document.getElementById('alertBox').classList.add('hidden');\n            \n            validRecords = [];\n            volunteerRecords = [];\n            \n            \/\/ --- \u0391\u039d\u0391\u03a0\u039f\u0394\u0397 \u039c\u0395\u03a4\u03a1\u0397\u03a3\u0397 \/ BOTTOM-UP FUNNEL LOGIC ---\n            let pe04Completed = 0, otherCompleted = 0;\n            rawGeneral.forEach(r => {\n                let k = (r['KEY'] || '').trim();\n                if (k.startsWith('4')) pe04Completed++;\n                else if (k.startsWith('0')) otherCompleted++;\n            });\n\n            let pe04Kaevo = 0;\n            rawKaevo.forEach(r => {\n                if (r['KEY'] && r['KEY'].trim() !== '') pe04Kaevo++;\n            });\n\n            let pe04Started = 0, otherStarted = 0;\n            rawDemo.forEach(r => {\n                let isPE04 = (r['\u0395\u03b9\u03b4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b1'] || '').includes('\u03a0\u0395 04') || (r['\u0395\u03b9\u03b4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b1'] || '').includes('\u03a0\u039504');\n                if (isPE04) pe04Started++;\n                else otherStarted++;\n            });\n\n            \/\/ \u0395\u03bd\u03b7\u03bc\u03ad\u03c1\u03c9\u03c3\u03b7 UI \u03a7\u03c9\u03bd\u03b9\u03ce\u03bd\n            let totalStarted = pe04Started + otherStarted;\n            let totalCompleted = pe04Completed + otherCompleted;\n            \n            document.getElementById('funnelTotalStarted').innerText = totalStarted;\n            document.getElementById('funnelTotalCompleted').innerText = totalCompleted;\n\n            document.getElementById('pe04Started').innerText = pe04Started;\n            document.getElementById('pe04Kaevo').innerText = pe04Kaevo;\n            document.getElementById('pe04Completed').innerText = pe04Completed;\n            \n            let leak1 = pe04Started - pe04Kaevo;\n            let leak1Perc = pe04Started > 0 ? ((leak1 \/ pe04Started) * 100).toFixed(1) : 0;\n            document.getElementById('leak1').innerText = leak1;\n            document.getElementById('leak1Perc').innerText = `(${leak1Perc}%)`;\n            \n            let leak2 = pe04Kaevo - pe04Completed;\n            let leak2Perc = pe04Kaevo > 0 ? ((leak2 \/ pe04Kaevo) * 100).toFixed(1) : 0;\n            document.getElementById('leak2').innerText = leak2;\n            document.getElementById('leak2Perc').innerText = `(${leak2Perc}%)`;\n\n            document.getElementById('otherStarted').innerText = otherStarted;\n            document.getElementById('otherCompleted').innerText = otherCompleted;\n            \n            let leak3 = otherStarted - otherCompleted;\n            let leak3Perc = otherStarted > 0 ? ((leak3 \/ otherStarted) * 100).toFixed(1) : 0;\n            document.getElementById('leak3').innerText = leak3;\n            document.getElementById('leak3Perc').innerText = `(${leak3Perc}%)`;\n\n            let totalLeak = leak1 + leak2 + leak3;\n            let totalLeakPerc = totalStarted > 0 ? ((totalLeak \/ totalStarted) * 100).toFixed(1) : 0;\n            document.getElementById('totalLeak').innerText = totalLeak;\n            document.getElementById('totalLeakPerc').innerText = `(${totalLeakPerc}%)`;\n\n            \/\/ --- \u03a0\u03a1\u039f\u0395\u03a4\u039f\u0399\u039c\u0391\u03a3\u0399\u0391 \u0394\u0395\u0394\u039f\u039c\u0395\u039d\u03a9\u039d \u0393\u0399\u0391 \u03a4\u039f\u03a5\u03a3 \u03a0\u0399\u039d\u0391\u039a\u0395\u03a3 (\u039c\u03b5 Data Cleaning) ---\n            let kaevoKeysFlags = new Map();\n            rawKaevo.forEach(r => { if(r['KEY']) kaevoKeysFlags.set(r['KEY'].trim(), { count: 0 }); });\n\n            let generalKeysFlags = new Map();\n            rawGeneral.forEach(r => { if(r['KEY']) generalKeysFlags.set(r['KEY'].trim(), { count: 0 }); });\n\n            let tempValid = [];\n            rawDemo.forEach(row => {\n                let cleanRow = { ...row };\n\n                let schoolTypeColToClean = Object.keys(cleanRow).find(k => k.includes('\u03a4\u03cd\u03c0\u03bf\u03c2 \u039a\u03cd\u03c1\u03b9\u03b1\u03c2'));\n                if (schoolTypeColToClean) {\n                    let v = (cleanRow[schoolTypeColToClean] || '').toLowerCase().trim();\n                    if (!v) cleanRow[schoolTypeColToClean] = '\u0386\u03bb\u03bb\u03bf'; \n                    else if (v.includes('\u03b3\u03c5\u03bc\u03bd')) cleanRow[schoolTypeColToClean] = '\u0393\u03c5\u03bc\u03bd\u03ac\u03c3\u03b9\u03bf';\n                    else if (v.includes('\u03b4\u03b7\u03bc\u03bf\u03c4')) cleanRow[schoolTypeColToClean] = '\u0394\u03b7\u03bc\u03bf\u03c4\u03b9\u03ba\u03cc';\n                    else if (v.includes('\u03bd\u03b7\u03c0\u03b9\u03b1\u03b3')) cleanRow[schoolTypeColToClean] = '\u039d\u03b7\u03c0\u03b9\u03b1\u03b3\u03c9\u03b3\u03b5\u03af\u03bf';\n                    else if (v.includes('\u03b5\u03c0\u03b1\u03bb') || v.includes('\u03b5\u03c0\u03b1\u03b3\u03b3\u03b5\u03bb\u03bc\u03b1\u03c4\u03b9\u03ba\u03cc')) cleanRow[schoolTypeColToClean] = '\u0395\u03c0\u03b1\u03b3\u03b3\u03b5\u03bb\u03bc\u03b1\u03c4\u03b9\u03ba\u03cc \u039b\u03cd\u03ba\u03b5\u03b9\u03bf (\u0395\u03a0\u0391\u039b)';\n                    else if (v.includes('\u03b3\u03b5\u03bb') || v.includes('\u03b3\u03b5\u03bd\u03b9\u03ba\u03cc') || v.includes('\u03bb\u03cd\u03ba\u03b5\u03b9\u03bf')) cleanRow[schoolTypeColToClean] = '\u0393\u03b5\u03bd\u03b9\u03ba\u03cc \u039b\u03cd\u03ba\u03b5\u03b9\u03bf (\u0393\u0395\u039b)';\n                    else cleanRow[schoolTypeColToClean] = '\u0386\u03bb\u03bb\u03bf';\n                }\n\n                let locColToClean = Object.keys(cleanRow).find(k => k.includes('\u03a0\u03b5\u03c1\u03b9\u03bf\u03c7\u03ae \u039a\u03cd\u03c1\u03b9\u03b1\u03c2'));\n                if (locColToClean && cleanRow[locColToClean]) {\n                    let v = cleanRow[locColToClean].toLowerCase();\n                    if (v.includes('\u03b7\u03bc\u03b9\u03b1\u03c3\u03c4\u03b9\u03ba\u03ae')) cleanRow[locColToClean] = '\u0397\u03bc\u03b9\u03b1\u03c3\u03c4\u03b9\u03ba\u03ae';\n                    else if (v.includes('\u03b1\u03c3\u03c4\u03b9\u03ba\u03ae')) cleanRow[locColToClean] = '\u0391\u03c3\u03c4\u03b9\u03ba\u03ae';\n                    else if (v.includes('\u03b1\u03b3\u03c1\u03bf\u03c4\u03b9\u03ba\u03ae') || v.includes('\u03c5\u03c0\u03bf\u03b1\u03b3\u03c1\u03bf\u03c4\u03b9\u03ba\u03ae') || v.includes('\u03b1\u03c0\u03bf\u03bc\u03b1\u03ba\u03c1\u03c5\u03c3\u03bc\u03ad\u03bd\u03b7')) cleanRow[locColToClean] = '\u0391\u03b3\u03c1\u03bf\u03c4\u03b9\u03ba\u03ae';\n                }\n\n                let relColToClean = Object.keys(cleanRow).find(k => k.includes('\u03b8\u03c1\u03ae\u03c3\u03ba\u03b5\u03c5\u03bc\u03b1') || k.includes('\u0398\u03c1\u03ae\u03c3\u03ba\u03b5\u03c5\u03bc\u03b1'));\n                if (relColToClean && cleanRow[relColToClean]) {\n                    let v = cleanRow[relColToClean].toLowerCase().trim();\n                    if (v === '\u03c3\u03b5 \u03ba\u03b1\u03bd\u03ad\u03bd\u03b1' || v.includes('\u03ac\u03b8\u03c1\u03b7\u03c3\u03ba\u03bf\u03c2') || v.includes('\u03b1\u03b8\u03c1\u03b7\u03c3\u03ba\u03bf\u03c2') || v === '\u03ba\u03b1\u03bd\u03ad\u03bd\u03b1') {\n                        cleanRow[relColToClean] = '\u039a\u03b1\u03bd\u03ad\u03bd\u03b1';\n                    }\n                }\n\n                let eduColToClean = Object.keys(cleanRow).find(k => k.includes('\u0395\u03ba\u03c0\u03b1\u03b9\u03b4\u03b5\u03c5\u03c4\u03b9\u03ba\u03cc \u0395\u03c0\u03af\u03c0\u03b5\u03b4\u03bf'));\n                if (eduColToClean) {\n                    let v = (cleanRow[eduColToClean] || '').toLowerCase().trim();\n                    if (!v) cleanRow[eduColToClean] = '\u0386\u03bb\u03bb\u03bf';\n                    else if (v.includes('\u03b4\u03b9\u03b4\u03b1\u03ba\u03c4\u03bf\u03c1') || v.includes('phd')) cleanRow[eduColToClean] = '\u0394\u03b9\u03b4\u03b1\u03ba\u03c4\u03bf\u03c1\u03b9\u03ba\u03cc';\n                    else if (v.includes('\u03bc\u03b5\u03c4\u03b1\u03c0\u03c4\u03c5\u03c7') || v.includes('\u03bc\u03c0\u03c3') || v.includes('msc') || v.includes('master')) cleanRow[eduColToClean] = '\u039c\u03b5\u03c4\u03b1\u03c0\u03c4\u03c5\u03c7\u03b9\u03b1\u03ba\u03cc';\n                    else if (v.includes('\u03c0\u03c4\u03c5\u03c7') || v.includes('\u03b1\u03b5\u03b9') || v.includes('\u03c4\u03b5\u03b9') || v.includes('bachelor')) cleanRow[eduColToClean] = '\u03a0\u03c4\u03c5\u03c7\u03af\u03bf';\n                    else cleanRow[eduColToClean] = '\u0386\u03bb\u03bb\u03bf';\n                }\n\n                let eid = (cleanRow['eidikotita'] || '').trim();\n                let kPart = (cleanRow['KEY'] || '').trim();\n                let fullKey = eid + kPart;\n                \n                let isPE04 = (cleanRow['\u0395\u03b9\u03b4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b1'] || '').includes('\u03a0\u0395 04') || (cleanRow['\u0395\u03b9\u03b4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b1'] || '').includes('\u03a0\u039504');\n                \n                let inKaevo = false;\n                if (kaevoKeysFlags.has(fullKey)) {\n                    let flagInfo = kaevoKeysFlags.get(fullKey);\n                    if (flagInfo.count === 0) {\n                        inKaevo = true;\n                        flagInfo.count = 1;\n                    }\n                }\n\n                let isCompleted = false;\n                if (generalKeysFlags.has(fullKey)) {\n                    let flagInfo = generalKeysFlags.get(fullKey);\n                    if (flagInfo.count === 0) {\n                        isCompleted = true;\n                        flagInfo.count = 1;\n                    }\n                }\n                \n                let isPE04KaevoOnly = isPE04 && inKaevo && !isCompleted;\n                let phase = getPhase(cleanRow['Submitted at']);\n\n                \/\/ \u0394\u03b9\u03cc\u03c1\u03b8\u03c9\u03c3\u03b7 \u03a0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b1\u03c2 \u03bc\u03b5 \u03c4\u03bf fixRegionText\n                let regCol = Object.keys(cleanRow).find(k => k.includes('\u03a0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b1 \u03a5\u03c0\u03b7\u03c1\u03ad\u03c4\u03b7\u03c3\u03b7\u03c2'));\n                if (regCol && cleanRow[regCol]) {\n                    cleanRow[regCol] = fixRegionText(cleanRow[regCol]);\n                }\n\n                tempValid.push({\n                    ...cleanRow,\n                    _isCompleted: isCompleted,\n                    _isPE04: isPE04,\n                    _isPE04KaevoOnly: isPE04KaevoOnly,\n                    _phase: phase,\n                    _originalKey: fullKey\n                });\n            });\n\n            \/\/ GROUPING <= 29 SPECIALTIES\n            let specCounts = {};\n            tempValid.forEach(r => {\n                if (r._isCompleted && !r._isPE04 && r['\u0395\u03b9\u03b4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b1']) {\n                    let s = r['\u0395\u03b9\u03b4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b1'].trim();\n                    specCounts[s] = (specCounts[s] || 0) + 1;\n                }\n            });\n\n            validRecords = tempValid.map(r => {\n                if (!r._isPE04 && r['\u0395\u03b9\u03b4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b1']) {\n                    let s = r['\u0395\u03b9\u03b4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b1'].trim();\n                    if (specCounts[s] <= 29) {\n                        r['\u0395\u03b9\u03b4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b1'] = '\u039b\u03bf\u03b9\u03c0\u03ad\u03c2 \u0395\u03b9\u03b4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b5\u03c2 (<=29 \u03ac\u03c4\u03bf\u03bc\u03b1)';\n                    }\n                }\n                return r;\n            });\n\n            \/\/ \u0395\u0398\u0395\u039b\u039f\u039d\u03a4\u0395\u03a3\n            let genEmailCols = Object.keys(rawGeneral[0] || {}).filter(k => k.toLowerCase().includes('mail') || k.toLowerCase().includes('email'));\n            let genPhoneCols = Object.keys(rawGeneral[0] || {}).filter(k => k.toLowerCase().includes('\u03c4\u03b7\u03bb\u03b5\u03c6\u03c9\u03bd') || k.toLowerCase().includes('\u03c4\u03b7\u03bb\u03ad\u03c6\u03c9\u03bd') || k.toLowerCase() === 'phone');\n\n            rawGeneral.forEach(row => {\n                let key = (row['KEY'] || '').trim();\n                let isBio = key.startsWith('404');\n                let isGeo = key.startsWith('405');\n\n                if (isBio || isGeo) {\n                    let eInfo = '', pInfo = '';\n                    \n                    for (let col of genEmailCols) { \n                        let val = String(row[col] || '').trim();\n                        if (val && val.includes('@')) { eInfo = val; break; }\n                        else if (!eInfo && val && val !== '0' && val !== '1' && val.toLowerCase() !== 'false') eInfo = val; \n                    }\n                    for (let col of genPhoneCols) { \n                        let val = String(row[col] || '').trim();\n                        if (val && val.length >= 8) { pInfo = val; break; }\n                        else if (!pInfo && val && val !== '0' && val !== '1' && val.toLowerCase() !== 'false') pInfo = val; \n                    }\n\n                    if (eInfo || pInfo) {\n                        let phase = getPhase(row['Submitted at']);\n                        volunteerRecords.push({ \n                            date: row['Submitted at'] || '', \n                            spec: isBio ? '\u0392\u03b9\u03bf\u03bb\u03cc\u03b3\u03bf\u03c2' : '\u0393\u03b5\u03c9\u03bb\u03cc\u03b3\u03bf\u03c2', \n                            isBio: isBio,\n                            isGeo: isGeo,\n                            email: eInfo || '', \n                            phone: pInfo || '',\n                            phase: phase\n                        });\n                    }\n                }\n            });\n\n            renderTables();\n            renderVolunteersTable();\n            \n            document.getElementById('resultsContainer').classList.remove('hidden');\n            document.querySelectorAll('.id-data-loaded').forEach(el => el.classList.remove('hidden'));\n            \n            \/\/ \u039a\u03ac\u03bd\u03bf\u03c5\u03bc\u03b5 force \u03b5\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03c4\u03bf\u03c5 header div \u03c4\u03b7\u03c2 \u03b5\u03ba\u03c4\u03cd\u03c0\u03c9\u03c3\u03b7\u03c2\n            document.querySelector('.print-only').classList.remove('hidden');\n        };\n\n        function buildPhaseTable(records, colName, tableId, includeKaevo = false, drillType = null, isSmallFormat = false) {\n            let counts = {};\n            let totalOverall=0, totalP1=0, totalP2=0, totalP3=0;\n\n            records.forEach(r => {\n                let val = r[colName] ? r[colName].trim() : '\u0386\u03b3\u03bd\u03c9\u03c3\u03c4\u03bf';\n\n                if (!counts[val]) counts[val] = { t:0, p1:0, p2:0, p3:0, kOnly:0 };\n                \n                if (r._isCompleted) {\n                    counts[val].t++; totalOverall++;\n                    if (r._phase === 1) { counts[val].p1++; totalP1++; }\n                    if (r._phase === 2) { counts[val].p2++; totalP2++; }\n                    if (r._phase === 3) { counts[val].p3++; totalP3++; }\n                }\n                if (includeKaevo && r._isPE04KaevoOnly) {\n                    counts[val].kOnly++;\n                }\n            });\n\n            let sortedKeys = Object.keys(counts).sort((a,b) => counts[b].t - counts[a].t);\n            let theadElement = document.getElementById('thead_' + tableId);\n            let theadHtml = '';\n\n            if (!isSmallFormat) {\n                theadHtml += `<tr class=\"bg-slate-50\"><th class=\"px-2 py-2 text-left text-xs font-bold text-slate-500 uppercase whitespace-nowrap\">${drillType ? '\u039a\u03b1\u03c4\u03b7\u03b3\u03bf\u03c1\u03af\u03b1' : colName}<\/th><th class=\"px-1 py-2 text-center text-[12px] font-bold text-blue-600 uppercase w-16 whitespace-nowrap\">${PHASE_LABELS[1]}<\/th><th class=\"px-1 py-2 text-center text-[12px] font-bold text-emerald-600 uppercase w-16 whitespace-nowrap\">${PHASE_LABELS[2]}<\/th><th class=\"px-1 py-2 text-center text-[12px] font-bold text-purple-600 uppercase w-16 whitespace-nowrap\">${PHASE_LABELS[3]}<\/th><th class=\"px-2 py-2 text-center text-xs font-bold text-slate-800 uppercase bg-slate-200 border-l border-slate-300 w-20 whitespace-nowrap\">\u03a3\u03cd\u03bd\u03bf\u03bb\u03bf<\/th><\/tr>\n                <tr class=\"bg-slate-100 border-b-2 border-slate-300 shadow-sm\"><td class=\"px-2 py-2 text-xs font-black text-slate-800 uppercase\">\u03a3\u03a5\u039d\u039f\u039b\u039f:<\/td><td class=\"px-1 py-2 text-center text-sm font-bold text-blue-700\">+${totalP1}<\/td><td class=\"px-1 py-2 text-center text-sm font-bold text-emerald-700\">+${totalP2}<\/td><td class=\"px-1 py-2 text-center text-sm font-bold text-purple-700\">+${totalP3}<\/td><td class=\"px-2 py-2 text-center text-base font-black text-slate-900 border-l border-slate-300 bg-slate-200\/70\">${totalOverall}<\/td><\/tr>`;\n            } else {\n                theadHtml += `<tr class=\"bg-slate-100 border-b-2 border-slate-300 shadow-sm\"><td class=\"px-2 py-2 text-[11px] font-black text-slate-800 uppercase break-words whitespace-normal w-auto\">\u03a3\u03a5\u039d\u039f\u039b\u039f:<\/td><td class=\"px-1 py-2 text-center text-xs font-bold text-blue-700 w-10\">+${totalP1}<\/td><td class=\"px-1 py-2 text-center text-xs font-bold text-emerald-700 w-10\">+${totalP2}<\/td><td class=\"px-1 py-2 text-center text-xs font-bold text-purple-700 w-10\">+${totalP3}<\/td><td class=\"px-2 py-2 text-center text-sm font-black text-slate-900 border-l border-slate-300 bg-slate-200\/70 w-14\">${totalOverall}<\/td><\/tr>`;\n            }\n            if(theadElement) {\n                theadElement.innerHTML = theadHtml;\n            }\n\n            let tbodyHtml = '';\n            let nameClasses = isSmallFormat ? \"text-xs whitespace-normal break-words leading-tight\" : \"text-sm truncate max-w-[200px]\";\n            let cellValClasses = isSmallFormat ? \"text-[11px]\" : \"text-sm\";\n\n            sortedKeys.forEach(k => {\n                let d = counts[k];\n                if (d.t === 0 && d.kOnly === 0) return;\n\n                let tStr = d.t.toString();\n                if (includeKaevo && d.kOnly > 0) tStr += ` <span class=\"text-amber-500 font-bold ml-1\" title=\"\u039c\u03cc\u03bd\u03bf KAEVO\">[+${d.kOnly}]<\/span>`;\n                let pTotal = totalOverall > 0 ? ((d.t \/ totalOverall)*100).toFixed(1) : 0;\n                let trClass = drillType ? 'clickable-row border-b border-slate-100 group' : 'hover:bg-slate-50 border-b border-slate-100';\n                let onClick = drillType ? `onclick=\"openDrillModal('${drillType}', '${k.replace(\/'\/g, \"\\\\'\")}')\"` : '';\n                let iconArrow = drillType ? `<i class=\"fas fa-chevron-right text-slate-300 ml-2 group-hover:text-indigo-500 opacity-0 group-hover:opacity-100 transition float-right mt-1\"><\/i>` : '';\n\n                const fmt = (val, color) => val > 0 ? `<span class=\"bg-${color}-100 text-${color}-800 font-bold px-1.5 py-0.5 rounded ${cellValClasses}\">+${val}<\/span>` : `<span class=\"text-slate-300\">-<\/span>`;\n\n                tbodyHtml += `<tr class=\"${trClass}\" ${onClick}><td class=\"px-2 py-2 font-medium text-slate-700 ${nameClasses}\" title=\"${k}\">${k} ${iconArrow}<\/td><td class=\"px-1 py-2 text-center bg-blue-50\/40\">${fmt(d.p1, 'blue')}<\/td><td class=\"px-1 py-2 text-center bg-emerald-50\/30\">${fmt(d.p2, 'emerald')}<\/td><td class=\"px-1 py-2 text-center bg-purple-50\/30\">${fmt(d.p3, 'purple')}<\/td><td class=\"px-2 py-2 text-center font-bold bg-slate-50 border-l border-slate-200 ${isSmallFormat ? 'text-xs' : 'text-sm'}\">${tStr} <span class=\"text-[10px] text-slate-400 font-normal ml-1 block mt-[-2px]\">(${pTotal}%)<\/span><\/td><\/tr>`;\n            });\n            document.getElementById(tableId).innerHTML = tbodyHtml;\n        }\n\n        function renderTables() {\n            let pe04Col = Object.keys(validRecords[0] || {}).find(k => k.includes('\u03a0\u0395 04.')) || '\u0395\u03b9\u03b4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b1';\n            let pubPrivCol = Object.keys(validRecords[0] || {}).find(k => k.includes('\u03a3\u03c7\u03bf\u03bb\u03b5\u03af\u03bf \u03c0\u03bf\u03c5 \u03c5\u03c0\u03b7\u03c1\u03b5\u03c4\u03b5\u03af\u03c4\u03b5')) || '\u03a4\u03bf \u03a3\u03c7\u03bf\u03bb\u03b5\u03af\u03bf \u03c0\u03bf\u03c5 \u03c5\u03c0\u03b7\u03c1\u03b5\u03c4\u03b5\u03af\u03c4\u03b5 \u03b5\u03af\u03bd\u03b1\u03b9';\n            let typeCol = Object.keys(validRecords[0] || {}).find(k => k.includes('\u03a4\u03cd\u03c0\u03bf\u03c2 \u039a\u03cd\u03c1\u03b9\u03b1\u03c2')) || '\u03a4\u03cd\u03c0\u03bf\u03c2 \u039a\u03cd\u03c1\u03b9\u03b1\u03c2 \u03a3\u03c7\u03bf\u03bb\u03b9\u03ba\u03ae\u03c2 \u039c\u03bf\u03bd\u03ac\u03b4\u03b1\u03c2';\n            let eduCol = Object.keys(validRecords[0] || {}).find(k => k.includes('\u0395\u03ba\u03c0\u03b1\u03b9\u03b4\u03b5\u03c5\u03c4\u03b9\u03ba\u03cc \u0395\u03c0\u03af\u03c0\u03b5\u03b4\u03bf')) || '\u0391\u03bd\u03ce\u03c4\u03b1\u03c4\u03bf \u0395\u03ba\u03c0\u03b1\u03b9\u03b4\u03b5\u03c5\u03c4\u03b9\u03ba\u03cc \u0395\u03c0\u03af\u03c0\u03b5\u03b4\u03bf';\n            let genderCol = Object.keys(validRecords[0] || {}).find(k => k.includes('\u03a6\u03cd\u03bb\u03bf') || k === 'gender') || '\u03a6\u03cd\u03bb\u03bf';\n            let ageCol = Object.keys(validRecords[0] || {}).find(k => k.includes('\u0397\u03bb\u03b9\u03ba\u03af\u03b1') || k === 'age') || '\u0397\u03bb\u03b9\u03ba\u03af\u03b1';\n            let relCol = Object.keys(validRecords[0] || {}).find(k => k.includes('\u03b8\u03c1\u03ae\u03c3\u03ba\u03b5\u03c5\u03bc\u03b1')) || '\u0398\u03c1\u03ae\u03c3\u03ba\u03b5\u03c5\u03bc\u03b1';\n            let yearsCol = Object.keys(validRecords[0] || {}).find(k => k.includes('\u0388\u03c4\u03b7 \u0394\u03b9\u03b4\u03b1\u03c3\u03ba\u03b1\u03bb\u03af\u03b1\u03c2')) || '\u0388\u03c4\u03b7 \u0394\u03b9\u03b4\u03b1\u03c3\u03ba\u03b1\u03bb\u03af\u03b1\u03c2';\n            let locCol = Object.keys(validRecords[0] || {}).find(k => k.includes('\u03a0\u03b5\u03c1\u03b9\u03bf\u03c7\u03ae \u039a\u03cd\u03c1\u03b9\u03b1\u03c2')) || '\u03a0\u03b5\u03c1\u03b9\u03bf\u03c7\u03ae \u039a\u03cd\u03c1\u03b9\u03b1\u03c2 \u03a3\u03c7\u03bf\u03bb\u03b9\u03ba\u03ae\u03c2 \u039c\u03bf\u03bd\u03ac\u03b4\u03b1\u03c2';\n\n            buildPhaseTable(validRecords, '\u03a0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b1 \u03a5\u03c0\u03b7\u03c1\u03ad\u03c4\u03b7\u03c3\u03b7\u03c2', 'tbl_Regions', false, 'regionToSpec');\n            buildPhaseTable(validRecords, '\u0395\u03b9\u03b4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b1', 'tbl_Specs', false, 'specToRegion');\n            buildPhaseTable(validRecords.filter(r => r._isPE04), '\u03a0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b1 \u03a5\u03c0\u03b7\u03c1\u03ad\u03c4\u03b7\u03c3\u03b7\u03c2', 'tbl_pe04Regions', true, 'pe04RegionToSpec');\n            buildPhaseTable(validRecords.filter(r => r._isPE04), pe04Col, 'tbl_pe04Specs', true, 'pe04SpecToRegion');\n\n            buildPhaseTable(validRecords, pubPrivCol, 'tbl_PubPriv', false, null, true);\n            buildPhaseTable(validRecords, typeCol, 'tbl_SchoolType', false, null, true);\n            buildPhaseTable(validRecords, genderCol, 'tbl_Gender', false, null, true);\n            buildPhaseTable(validRecords, relCol, 'tbl_Religion', false, null, true);\n            buildPhaseTable(validRecords, ageCol, 'tbl_Age', false, null, true);\n            buildPhaseTable(validRecords, yearsCol, 'tbl_TeachingYears', false, null, true);\n            buildPhaseTable(validRecords, eduCol, 'tbl_Edu', false, null, true);\n            buildPhaseTable(validRecords, locCol, 'tbl_Location', false, null, true);\n        }\n\n        window.openDrillModal = function(drillType, key) {\n            let filterFn, targetCol, modalTitle;\n            let includeKaevo = false;\n            let pe04Col = Object.keys(validRecords[0] || {}).find(k => k.includes('\u03a0\u0395 04.')) || '\u0395\u03b9\u03b4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b1';\n\n            if (drillType === 'regionToSpec') {\n                filterFn = r => r._isCompleted && (r['\u03a0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b1 \u03a5\u03c0\u03b7\u03c1\u03ad\u03c4\u03b7\u03c3\u03b7\u03c2'] || '').trim() === key;\n                targetCol = '\u0395\u03b9\u03b4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b1'; modalTitle = '\u03a0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b1 (\u0395\u03b9\u03b4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b5\u03c2)';\n            } else if (drillType === 'specToRegion') {\n                filterFn = r => r._isCompleted && (r['\u0395\u03b9\u03b4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b1'] || '').trim() === key;\n                targetCol = '\u03a0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b1 \u03a5\u03c0\u03b7\u03c1\u03ad\u03c4\u03b7\u03c3\u03b7\u03c2'; modalTitle = '\u0395\u03b9\u03b4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b1 (\u03a0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b5\u03c2)';\n            } else if (drillType === 'pe04RegionToSpec') {\n                filterFn = r => (r._isCompleted || r._isPE04KaevoOnly) && r._isPE04 && (r['\u03a0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b1 \u03a5\u03c0\u03b7\u03c1\u03ad\u03c4\u03b7\u03c3\u03b7\u03c2'] || '').trim() === key;\n                targetCol = pe04Col; modalTitle = '\u03a0\u039504 \u03c3\u03c4\u03b7\u03bd \u03a0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b1'; includeKaevo = true;\n            } else if (drillType === 'pe04SpecToRegion') {\n                filterFn = r => (r._isCompleted || r._isPE04KaevoOnly) && r._isPE04 && (r[pe04Col] || '').trim() === key;\n                targetCol = '\u03a0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b1 \u03a5\u03c0\u03b7\u03c1\u03ad\u03c4\u03b7\u03c3\u03b7\u03c2'; modalTitle = '\u03a5\u03c0\u03bf-\u03b5\u03b9\u03b4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b1 \u03a0\u039504 (\u03a0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b5\u03c2)'; includeKaevo = true;\n            }\n\n            document.getElementById('modalTitle').innerText = modalTitle;\n            document.getElementById('modalSubtitle').innerText = key;\n\n            let filteredRecords = validRecords.filter(filterFn);\n            buildPhaseTable(filteredRecords, targetCol, 'modalTbody', includeKaevo, null, false);\n            document.getElementById('specModal').classList.add('show');\n        }\n\n        window.closeModal = function() { document.getElementById('specModal').classList.remove('show'); }\n        window.onclick = function(event) { let modal = document.getElementById('specModal'); if (event.target == modal) closeModal(); }\n\n        function renderVolunteersTable() {\n            const tbody = document.getElementById('volunteersTable');\n            if (!tbody) return;\n            tbody.innerHTML = '';\n            let bioCount = 0; let geoCount = 0;\n            if (!volunteerRecords || volunteerRecords.length === 0) {\n                tbody.innerHTML = '<tr><td colspan=\"5\" class=\"text-center py-6 text-slate-500 font-medium\">\u0394\u03b5\u03bd \u03c5\u03c0\u03ac\u03c1\u03c7\u03bf\u03c5\u03bd \u03b5\u03b8\u03b5\u03bb\u03bf\u03bd\u03c4\u03ad\u03c2.<\/td><\/tr>';\n                return;\n            }\n            volunteerRecords.sort((a, b) => (a.date || '').localeCompare(b.date || ''));\n            \n            volunteerRecords.forEach((v) => {\n                if (v.isBio) bioCount++;\n                if (v.isGeo) geoCount++;\n\n                let niceDate = '\u0386\u03b3\u03bd\u03c9\u03c3\u03c4\u03b7 \u0397\u03bc\/\u03bd\u03af\u03b1';\n                let datePart = '';\n                try {\n                    const dateObj = new Date(v.date);\n                    if (!isNaN(dateObj.getTime())) {\n                        niceDate = dateObj.toLocaleDateString('el-GR') + ' ' + dateObj.toLocaleTimeString('el-GR', {hour: '2-digit', minute:'2-digit'});\n                        datePart = v.date.substring(0, 10);\n                    }\n                } catch(e) {}\n                \n                const isSent = datePart && datePart <= '2026-04-05';\n                const isVamvak = (v.email || '').toLowerCase().includes('vamvak.efi14');\n                let specBadge = v.isBio ? `<span class=\"bg-emerald-100 text-emerald-800 text-[10px] font-black px-2 py-1 rounded-full border border-emerald-200 shadow-sm\"><i class=\"fas fa-leaf mr-1\"><\/i>\u0392\u03b9\u03bf\u03bb\u03cc\u03b3\u03bf\u03c2<\/span>` : (v.isGeo ? `<span class=\"bg-amber-100 text-amber-800 text-[10px] font-black px-2 py-1 rounded-full border border-amber-200 shadow-sm\"><i class=\"fas fa-mountain mr-1\"><\/i>\u0393\u03b5\u03c9\u03bb\u03cc\u03b3\u03bf\u03c2<\/span>` : `<span class=\"bg-slate-100 text-slate-800 text-[10px] font-black px-2 py-1 rounded-full shadow-sm\">${v.spec}<\/span>`);\n                let rowClass = isSent ? 'border-b border-slate-100 bg-white hover:bg-slate-50' : 'border-b border-blue-50 bg-blue-50\/40 hover:bg-blue-50';\n                let statusBadge = isSent ? '<span class=\"text-emerald-600 text-xs font-bold\"><i class=\"fas fa-check-circle mr-1\"><\/i>\u0395\u03bd\u03b7\u03bc\u03b5\u03c1\u03ce\u03b8\u03b7\u03ba\u03b5<\/span>' : '<span class=\"text-blue-600 text-xs font-bold\"><i class=\"fas fa-clock mr-1\"><\/i>\u0395\u03ba\u03ba\u03c1\u03b5\u03bc\u03b5\u03af<\/span>';\n\n                if (isVamvak) { rowClass = 'border-b border-red-50 bg-red-50\/40 hover:bg-red-50'; statusBadge = '<span class=\"text-red-600 text-xs font-bold\"><i class=\"fas fa-exclamation-triangle mr-1\"><\/i>\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1 Email (SMS)<\/span>'; }\n                const phoneStr = formatPhoneNumber(v.phone);\n\n                tbody.insertAdjacentHTML('beforeend', `<tr class=\"${rowClass}\"><td class=\"px-4 py-3 text-sm text-slate-600 font-medium whitespace-nowrap\">${niceDate}<\/td><td class=\"px-4 py-3 text-sm\">${specBadge}<\/td><td class=\"px-4 py-3 text-sm text-slate-700 font-mono select-all\">${phoneStr}<\/td><td class=\"px-4 py-3 text-sm text-indigo-600 font-medium select-all\">${v.email}<\/td><td class=\"px-4 py-3 text-center\">${statusBadge}<\/td><\/tr>`);\n            });\n            document.getElementById('bioVolCount').innerText = bioCount;\n            document.getElementById('geoVolCount').innerText = geoCount;\n        }\n\n        \/\/ --- SMART AI PROMPT GENERATOR v8.1 LOGIC ---\n        window.generateAdvancedPrompt = function() {\n            let startPE04 = document.getElementById('pe04Started').innerText;\n            let kaevoPE04 = document.getElementById('pe04Kaevo').innerText;\n            let compPE04 = document.getElementById('pe04Completed').innerText;\n            \n            let startOth = document.getElementById('otherStarted').innerText;\n            let compOth = document.getElementById('otherCompleted').innerText;\n\n            let leak1 = document.getElementById('leak1').innerText;\n            let leak2 = document.getElementById('leak2').innerText;\n            let leak3 = document.getElementById('leak3').innerText;\n\n            let totalStart = document.getElementById('funnelTotalStarted').innerText;\n            let totalComp = document.getElementById('funnelTotalCompleted').innerText;\n            \n            let genLossP = totalStart > 0 ? (((totalStart - totalComp) \/ totalStart) * 100).toFixed(1) : 0;\n            let othLossP = startOth > 0 ? (((startOth - compOth) \/ startOth) * 100).toFixed(1) : 0;\n            let pe04LossP = startPE04 > 0 ? (((startPE04 - compPE04) \/ startPE04) * 100).toFixed(1) : 0;\n            let kaevoLossP = startPE04 > 0 ? ((leak2 \/ startPE04) * 100).toFixed(1) : 0;\n\n            \/\/ Generate Grouped Lists\n            let completedAll = validRecords.filter(r => r._isCompleted);\n            let compP = validRecords.filter(r => r._isCompleted && r._isPE04);\n            let compO = validRecords.filter(r => r._isCompleted && !r._isPE04);\n\n            let getSortedStr = (arr, col) => {\n                let counts = {};\n                arr.forEach(r => { let v = (r[col] || '').trim(); if(v) counts[v] = (counts[v] || 0) + 1; });\n                return Object.keys(counts).sort((a,b) => counts[b] - counts[a]).map(k => `${k} (${counts[k]})`).join(' | ');\n            };\n\n            let getSortedCol = (arr, col) => {\n                let counts = {};\n                arr.forEach(r => { let v = (r[col] || '').trim(); if(v) counts[v] = (counts[v] || 0) + 1; });\n                return Object.keys(counts).sort((a,b) => counts[b] - counts[a]).map(k => `${k}: ${counts[k]}`).join(' | ');\n            };\n\n            let specListOth = getSortedCol(compO, '\u0395\u03b9\u03b4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b1');\n            let pe04Col = Object.keys(validRecords[0] || {}).find(k => k.includes('\u03a0\u0395 04.')) || '\u0395\u03b9\u03b4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b1';\n            let specListPE04 = getSortedCol(compP, pe04Col);\n\n            \/\/ Drop-offs Lists\n            let dropGen = validRecords.filter(r => !r._isCompleted && !r._isPE04);\n            let dropGenReg = getSortedStr(dropGen, '\u03a0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b1 \u03a5\u03c0\u03b7\u03c1\u03ad\u03c4\u03b7\u03c3\u03b7\u03c2');\n            let dropGenSpec = getSortedStr(dropGen, '\u0395\u03b9\u03b4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b1');\n\n            let dropP1 = validRecords.filter(r => !r._isCompleted && !r._isPE04KaevoOnly && r._isPE04);\n            let dropP1Reg = getSortedStr(dropP1, '\u03a0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b1 \u03a5\u03c0\u03b7\u03c1\u03ad\u03c4\u03b7\u03c3\u03b7\u03c2');\n            let dropP1Spec = getSortedStr(dropP1, pe04Col);\n\n            let dropP2 = validRecords.filter(r => !r._isCompleted && r._isPE04KaevoOnly && r._isPE04);\n            let dropP2Reg = getSortedStr(dropP2, '\u03a0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b1 \u03a5\u03c0\u03b7\u03c1\u03ad\u03c4\u03b7\u03c3\u03b7\u03c2');\n            let dropP2Spec = getSortedStr(dropP2, pe04Col);\n\n            \/\/ ELSTAT Data Strings for Prompt Info\n            let regPStr = \"\", regAllStr = \"\";\n            let pCount = compP.length, allCount = completedAll.length;\n\n            let countsRegP = {}, countsRegAll = {};\n            compP.forEach(r => { let v = (r['\u03a0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b1 \u03a5\u03c0\u03b7\u03c1\u03ad\u03c4\u03b7\u03c3\u03b7\u03c2'] || '').trim(); if(v) countsRegP[v] = (countsRegP[v] || 0) + 1; });\n            completedAll.forEach(r => { let v = (r['\u03a0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b1 \u03a5\u03c0\u03b7\u03c1\u03ad\u03c4\u03b7\u03c3\u03b7\u03c2'] || '').trim(); if(v) countsRegAll[v] = (countsRegAll[v] || 0) + 1; });\n\n            Object.keys(elstatData).sort((a,b) => (countsRegAll[b]||0) - (countsRegAll[a]||0)).forEach(reg => {\n                let cp = countsRegP[reg] || 0; let pPerc = pCount > 0 ? (cp\/pCount)*100 : 0;\n                let ca = countsRegAll[reg] || 0; let aPerc = allCount > 0 ? (ca\/allCount)*100 : 0;\n                let e = elstatData[reg];\n                \n                if (cp > 0) regPStr += `${reg}: \u03a4\u03b5\u03bb\u03b9\u03ba\u03cc [${cp}] | \u03a0\u03bf\u03c3\u03bf\u03c3\u03c4\u03cc: ${pPerc.toFixed(1)}% | \u0395\u039b\u03a3\u03a4\u0391\u03a4: ${e}%\\n`;\n                if (ca > 0) regAllStr += `${reg}: \u03a4\u03b5\u03bb\u03b9\u03ba\u03cc [${ca}] | \u03a0\u03bf\u03c3\u03bf\u03c3\u03c4\u03cc: ${aPerc.toFixed(1)}% | \u0395\u039b\u03a3\u03a4\u0391\u03a4: ${e}%\\n`;\n            });\n\n            \/\/ Demo Strings\n            let pubPrivCol = Object.keys(validRecords[0] || {}).find(k => k.includes('\u03a3\u03c7\u03bf\u03bb\u03b5\u03af\u03bf \u03c0\u03bf\u03c5 \u03c5\u03c0\u03b7\u03c1\u03b5\u03c4\u03b5\u03af\u03c4\u03b5')) || '\u03a4\u03bf \u03a3\u03c7\u03bf\u03bb\u03b5\u03af\u03bf \u03c0\u03bf\u03c5 \u03c5\u03c0\u03b7\u03c1\u03b5\u03c4\u03b5\u03af\u03c4\u03b5 \u03b5\u03af\u03bd\u03b1\u03b9';\n            let genderCol = Object.keys(validRecords[0] || {}).find(k => k.includes('\u03a6\u03cd\u03bb\u03bf') || k === 'gender') || '\u03a6\u03cd\u03bb\u03bf';\n            let ageCol = Object.keys(validRecords[0] || {}).find(k => k.includes('\u0397\u03bb\u03b9\u03ba\u03af\u03b1') || k === 'age') || '\u0397\u03bb\u03b9\u03ba\u03af\u03b1';\n            let eduCol = Object.keys(validRecords[0] || {}).find(k => k.includes('\u0395\u03ba\u03c0\u03b1\u03b9\u03b4\u03b5\u03c5\u03c4\u03b9\u03ba\u03cc \u0395\u03c0\u03af\u03c0\u03b5\u03b4\u03bf')) || '\u0391\u03bd\u03ce\u03c4\u03b1\u03c4\u03bf \u0395\u03ba\u03c0\u03b1\u03b9\u03b4\u03b5\u03c5\u03c4\u03b9\u03ba\u03cc \u0395\u03c0\u03af\u03c0\u03b5\u03b4\u03bf';\n            let yearsCol = Object.keys(validRecords[0] || {}).find(k => k.includes('\u0388\u03c4\u03b7 \u0394\u03b9\u03b4\u03b1\u03c3\u03ba\u03b1\u03bb\u03af\u03b1\u03c2')) || '\u0388\u03c4\u03b7 \u0394\u03b9\u03b4\u03b1\u03c3\u03ba\u03b1\u03bb\u03af\u03b1\u03c2';\n\n            \/\/ --- BUILDING THE NEW PROMPT ---\n            let prompt = `\u0395\u03af\u03c3\u03b1\u03b9 \u03ad\u03bd\u03b1\u03c2 \u03ad\u03bc\u03c0\u03b5\u03b9\u03c1\u03bf\u03c2 \u03c3\u03c4\u03b1\u03c4\u03b9\u03c3\u03c4\u03b9\u03ba\u03bf\u03bb\u03cc\u03b3\u03bf\u03c2 \u03ba\u03b1\u03b9 \u03b1\u03bd\u03b1\u03bb\u03c5\u03c4\u03ae\u03c2 \u03b5\u03c1\u03b5\u03c5\u03bd\u03b7\u03c4\u03b9\u03ba\u03ce\u03bd \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd (Data Analyst). \u0391\u03bd\u03b1\u03bb\u03cd\u03b5\u03b9\u03c2 \u03c4\u03b1 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03bc\u03b9\u03b1\u03c2 \u03ad\u03c1\u03b5\u03c5\u03bd\u03b1\u03c2 \u03c0\u03bf\u03c5 \u03b1\u03c0\u03b5\u03c5\u03b8\u03cd\u03bd\u03b5\u03c4\u03b1\u03b9 \u03c3\u03b5 \u0388\u03bb\u03bb\u03b7\u03bd\u03b5\u03c2 \u03b5\u03ba\u03c0\u03b1\u03b9\u03b4\u03b5\u03c5\u03c4\u03b9\u03ba\u03bf\u03cd\u03c2.\\n\\n`;\n            prompt += `--- \u03a7\u03a9\u039d\u0399 \u0395\u0393\u039a\u0391\u03a4\u0391\u039b\u0395\u0399\u03a8\u0397\u03a3 ---\\n`;\n            prompt += `1. \u039a\u0391\u0398\u0391\u03a1\u039f \u0393\u0395\u039d\u0399\u039a\u039f \u039a\u039f\u0399\u039d\u039f (\u03a7\u03c9\u03c1\u03af\u03c2 \u03a0\u039504): \u0395\u03af\u03c3\u03bf\u03b4\u03bf\u03c2: ${startOth} -> \u03a4\u03b5\u03c1\u03bc\u03b1\u03c4\u03b9\u03c3\u03bc\u03cc\u03c2 (Active): ${compOth} (\u0391\u03c0\u03ce\u03bb\u03b5\u03b9\u03b5\u03c2: ${othLossP}%)\\n`;\n            prompt += `2. \u039a\u039b\u0391\u0394\u039f\u03a3 \u03a0\u039504: \u0395\u03af\u03c3\u03bf\u03b4\u03bf\u03c2: ${startPE04} -> \u0388\u03b3\u03ba\u03c5\u03c1\u03b1 (Active): ${compPE04} [+${leak2} \u03c3\u03c4\u03b1\u03bc\u03ac\u03c4\u03b7\u03c3\u03b1\u03bd \u03c3\u03c4\u03bf KAEVO] -> \u03a3\u03c5\u03bd\u03bf\u03bb\u03b9\u03ba\u03ad\u03c2 \u0391\u03c0\u03ce\u03bb\u03b5\u03b9\u03b5\u03c2: ${pe04LossP}% [\u03b5\u03ba \u03c4\u03c9\u03bd \u03bf\u03c0\u03bf\u03af\u03c9\u03bd \u03c4\u03bf ${kaevoLossP}% \u03c3\u03c4\u03b1\u03bc\u03ac\u03c4\u03b7\u03c3\u03b5 \u03bc\u03b5\u03c4\u03ac \u03c4\u03bf KAEVO]\\n`;\n            prompt += `3. \u03a3\u03a5\u039d\u039f\u039b\u039f \u0394\u0395\u0399\u0393\u039c\u0391\u03a4\u039f\u03a3 (\u0388\u03b3\u03ba\u03c5\u03c1\u03b1 \u03b3\u03b9\u03b1 \u0391\u03bd\u03ac\u03bb\u03c5\u03c3\u03b7): \u0395\u03af\u03c3\u03bf\u03b4\u03bf\u03c2: ${totalStart} -> \u0388\u03b3\u03ba\u03c5\u03c1\u03b1 (Active): ${totalComp} (\u03a3\u03c5\u03bd\u03bf\u03bb\u03b9\u03ba\u03ad\u03c2 \u0391\u03c0\u03ce\u03bb\u03b5\u03b9\u03b5\u03c2: ${genLossP}%)\\n\\n`;\n\n            prompt += `--- \u0391\u039d\u0391\u039b\u03a5\u03a3\u0397 \u0395\u0393\u039a\u03a5\u03a1\u03a9\u039d \u0391\u03a0\u0391\u039d\u03a4\u0397\u03a3\u0395\u03a9\u039d \u0391\u039d\u0391 \u0395\u0399\u0394\u0399\u039a\u039f\u03a4\u0397\u03a4\u0391 (\u0393\u0399\u0391 POWER ANALYSIS) ---\\n`;\n            prompt += `- \u0393\u03b5\u03bd\u03b9\u03ba\u03cc \u039a\u03bf\u03b9\u03bd\u03cc (N): \u03a0\u039504 (\u038c\u03bb\u03b5\u03c2 \u03bf\u03b9 \u03b5\u03b9\u03b4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b5\u03c2): ${compPE04} | ${specListOth}\\n`;\n            prompt += `- \u03a5\u03c0\u03bf\u03b4\u03b5\u03af\u03b3\u03bc\u03b1 \u03a0\u039504 (N): ${specListPE04}\\n\\n`;\n\n            prompt += `--- \u03a0\u03a1\u039f\u03a6\u0399\u039b \u0395\u0393\u039a\u0391\u03a4\u0391\u039b\u0395\u0399\u03a8\u0397\u03a3 \/ \u0391\u03a0\u03a9\u039b\u0395\u0399\u03a9\u039d (DROP-OFF & EXCLUDED) ---\\n`;\n            prompt += `\u0393\u0395\u039d\u0399\u039a\u039f \u039a\u039f\u0399\u039d\u039f (\u0394\u03b5\u03bd \u03bf\u03bb\u03bf\u03ba\u03bb\u03ae\u03c1\u03c9\u03c3\u03b1\u03bd \u03ae \u03b1\u03c0\u03bf\u03c1\u03c1\u03af\u03c6\u03b8\u03b7\u03ba\u03b1\u03bd):\\n- \u0391\u03bd\u03ac \u03a0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b1: ${dropGenReg}\\n- \u0391\u03bd\u03ac \u0395\u03b9\u03b4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b1: ${dropGenSpec}\\n\\n`;\n            prompt += `\u03a0\u039504 - \u0392\u0397\u039c\u0391 1 (\u0395\u03b3\u03ba\u03b1\u03c4\u03ad\u03bb\u03b5\u03b9\u03c8\u03b1\u03bd \u039a\u0391\u03a4\u0391 \u03a4\u0397 \u0394\u0399\u0391\u03a1\u039a\u0395\u0399\u0391 \u03c4\u03bf\u03c5 KAEVO - \u03b4\u03b7\u03bb\u03b1\u03b4\u03ae \u03a0\u03a1\u0399\u039d \u03a5\u03a0\u039f\u0392\u0391\u039b\u039b\u039f\u03a5\u039d \u03c4\u03bf KAEVO):\\n- \u0391\u03bd\u03ac \u03a0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b1: ${dropP1Reg}\\n- \u0391\u03bd\u03ac \u03a5\u03c0\u03bf-\u03b5\u03b9\u03b4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b1: ${dropP1Spec}\\n\\n`;\n            prompt += `\u03a0\u039504 - \u0392\u0397\u039c\u0391 2 (\u039f\u03bb\u03bf\u03ba\u03bb\u03ae\u03c1\u03c9\u03c3\u03b1\u03bd \u03c4\u03bf KAEVO \u03b1\u03bb\u03bb\u03ac \u03b5\u03b3\u03ba\u03b1\u03c4\u03ad\u03bb\u03b5\u03b9\u03c8\u03b1\u03bd \u03a0\u03a1\u0399\u039d \u03a5\u03a0\u039f\u0392\u0391\u039b\u039b\u039f\u03a5\u039d \u03c4\u03bf \u0393\u03b5\u03bd\u03b9\u03ba\u03cc \u039c\u03ad\u03c1\u03bf\u03c2):\\n- \u0391\u03bd\u03ac \u03a0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b1: ${dropP2Reg}\\n- \u0391\u03bd\u03ac \u03a5\u03c0\u03bf-\u03b5\u03b9\u03b4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b1: ${dropP2Spec}\\n\\n`;\n\n            prompt += `--- \u0393\u0395\u039d\u0399\u039a\u0391 \u03a3\u03a5\u039d\u039f\u039b\u0391 \u0395\u0393\u039a\u03a5\u03a1\u03a9\u039d \u0391\u03a0\u0391\u039d\u03a4\u0397\u03a3\u0395\u03a9\u039d ---\\n- \u03a3\u03a5\u039d\u039f\u039b\u039f (\u038c\u03bb\u03bf\u03b9): \u03a4\u03b5\u03bb\u03b9\u03ba\u03cc Active: ${totalComp}\\n- \u039c\u039f\u039d\u039f \u03a0\u039504: \u03a4\u03b5\u03bb\u03b9\u03ba\u03cc Active: ${compPE04}\\n\\n`;\n\n            prompt += `--- \u0391\u039d\u0391\u039b\u03a5\u03a4\u0399\u039a\u0391 \u0394\u0395\u0394\u039f\u039c\u0395\u039d\u0391 \u03a0\u0395\u03a1\u0399\u03a6\u0395\u03a1\u0395\u0399\u03a9\u039d (\u03a3\u03a5\u039d\u039f\u039b\u039f \u0394\u0395\u0399\u0393\u039c\u0391\u03a4\u039f\u03a3) ---\\n${regAllStr}\\n`;\n            prompt += `--- \u0391\u039d\u0391\u039b\u03a5\u03a4\u0399\u039a\u0391 \u0394\u0395\u0394\u039f\u039c\u0395\u039d\u0391 \u03a0\u0395\u03a1\u0399\u03a6\u0395\u03a1\u0395\u0399\u03a9\u039d (\u039c\u039f\u039d\u039f \u03a0\u039504) ---\\n${regPStr}\\n`;\n\n            prompt += `--- \u03a0\u039b\u0397\u03a1\u0397 \u0394\u0397\u039c\u039f\u0393\u03a1\u0391\u03a6\u0399\u039a\u0391 \u03a3\u03a4\u039f\u0399\u03a7\u0395\u0399\u0391 ---\\n`;\n            prompt += `\u0394\u03b7\u03bc\u03cc\u03c3\u03b9\u03bf\/\u0399\u03b4\u03b9\u03c9\u03c4\u03b9\u03ba\u03cc: ${getSortedCol(completedAll, pubPrivCol)}\\n`;\n            prompt += `\u0397\u03bb\u03b9\u03ba\u03af\u03b1: ${getSortedCol(completedAll, ageCol)}\\n`;\n            prompt += `\u0395\u03ba\u03c0. \u0395\u03c0\u03af\u03c0\u03b5\u03b4\u03bf: ${getSortedCol(completedAll, eduCol)}\\n`;\n            prompt += `\u03a6\u03cd\u03bb\u03bf: ${getSortedCol(completedAll, genderCol)}\\n`;\n            prompt += `\u0388\u03c4\u03b7 \u0394\u03b9\u03b4\u03b1\u03c3\u03ba\u03b1\u03bb\u03af\u03b1\u03c2: ${getSortedCol(completedAll, yearsCol)}\\n\\n`;\n\n            prompt += `\u0393\u03c1\u03ac\u03c8\u03b5 \u03bc\u03b5 \u03b5\u03c0\u03b1\u03b3\u03b3\u03b5\u03bb\u03bc\u03b1\u03c4\u03b9\u03ba\u03cc, \u03b5\u03c0\u03b9\u03c3\u03c4\u03b7\u03bc\u03bf\u03bd\u03b9\u03ba\u03cc \u03cd\u03c6\u03bf\u03c2 \u03c4\u03b9\u03c2 \u03b5\u03be\u03ae\u03c2 \u03b1\u03bd\u03b1\u03bb\u03cd\u03c3\u03b5\u03b9\u03c2 (\u03c3\u03c4\u03b1 \u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac):\\n`;\n            \n            let c=1;\n            if(document.getElementById('chkGen').checked) prompt += `${c++}) **\u0393\u03b5\u03bd\u03b9\u03ba\u03ae \u0391\u03be\u03b9\u03bf\u03bb\u03cc\u03b3\u03b7\u03c3\u03b7:** \u039a\u03ac\u03bd\u03b5 \u03bc\u03b9\u03b1 \u03b1\u03c1\u03c7\u03b9\u03ba\u03ae \u03b5\u03ba\u03c4\u03af\u03bc\u03b7\u03c3\u03b7 \u03c4\u03bf\u03c5 \u03b4\u03b5\u03af\u03b3\u03bc\u03b1\u03c4\u03bf\u03c2 \u03b2\u03ac\u03c3\u03b5\u03b9 \u03c4\u03c9\u03bd \u03c0\u03bf\u03c3\u03bf\u03c3\u03c4\u03ce\u03bd \u03c3\u03c5\u03bc\u03bc\u03b5\u03c4\u03bf\u03c7\u03ae\u03c2.\\n`;\n            if(document.getElementById('chkDrop').checked) prompt += `${c++}) **\u0391\u03bd\u03ac\u03bb\u03c5\u03c3\u03b7 \u0395\u03b3\u03ba\u03b1\u03c4\u03ac\u03bb\u03b5\u03b9\u03c8\u03b7\u03c2\/\u0391\u03c0\u03c9\u03bb\u03b5\u03b9\u03ce\u03bd (Drop-off & Excluded):** \u03a0\u03bf\u03b9\u03b5\u03c2 \u03c0\u03b5\u03c1\u03b9\u03bf\u03c7\u03ad\u03c2 \u03ae \u03b5\u03b9\u03b4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b5\u03c2 \u03ad\u03c7\u03bf\u03c5\u03bd \u03c4\u03b7 \u03bc\u03b5\u03b3\u03b1\u03bb\u03cd\u03c4\u03b5\u03c1\u03b7 \u03c4\u03ac\u03c3\u03b7 \u03b1\u03c0\u03c9\u03bb\u03b5\u03b9\u03ce\u03bd \u03c3\u03c4\u03bf \u0393\u03b5\u03bd\u03b9\u03ba\u03cc \u039a\u03bf\u03b9\u03bd\u03cc; \u0393\u03b9\u03b1 \u03c4\u03bf\u03c5\u03c2 \u03a0\u039504, \u03c3\u03c7\u03bf\u03bb\u03af\u03b1\u03c3\u03b5 \u03b1\u03bd\u03b1\u03bb\u03c5\u03c4\u03b9\u03ba\u03ac \u03c4\u03b1 \u03b1\u03c1\u03b9\u03b8\u03bc\u03b7\u03c4\u03b9\u03ba\u03ac \u03c3\u03c4\u03bf\u03b9\u03c7\u03b5\u03af\u03b1.\\n`;\n            if(document.getElementById('chkRep').checked) prompt += `${c++}) **\u0391\u03bd\u03c4\u03b9\u03c0\u03c1\u03bf\u03c3\u03c9\u03c0\u03b5\u03c5\u03c4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b1:** \u039a\u03ac\u03bd\u03b5 \u03bc\u03b9\u03b1 \u03b1\u03bd\u03ac\u03bb\u03c5\u03c3\u03b7 \u03c4\u03bf\u03c5 \u03b4\u03b5\u03af\u03b3\u03bc\u03b1\u03c4\u03bf\u03c2 \u03bc\u03b5 \u03b2\u03ac\u03c3\u03b7 \u03c4\u03bf\u03bd \u03c0\u03bb\u03b7\u03b8\u03c5\u03c3\u03bc\u03cc \u03ba\u03ac\u03b8\u03b5 \u03c0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b1\u03c2 (\u03c3\u03cd\u03b3\u03ba\u03c1\u03b9\u03c3\u03b7 \u03bc\u03b5 \u03c4\u03b1 \u03c0\u03bf\u03c3\u03bf\u03c3\u03c4\u03ac \u03c4\u03b7\u03c2 \u0395\u039b\u03a3\u03a4\u0391\u03a4).\\n`;\n            if(document.getElementById('chkDemo').checked) prompt += `${c++}) **\u0394\u03b7\u03bc\u03bf\u03b3\u03c1\u03b1\u03c6\u03b9\u03ba\u03ac:** \u039a\u03ac\u03bd\u03b5 \u03bc\u03b9\u03b1 \u03b1\u03bd\u03ac\u03bb\u03c5\u03c3\u03b7 \u03c4\u03c9\u03bd \u03c5\u03c0\u03bf\u03bb\u03bf\u03af\u03c0\u03c9\u03bd \u03b4\u03b7\u03bc\u03bf\u03b3\u03c1\u03b1\u03c6\u03b9\u03ba\u03ce\u03bd \u03c3\u03c4\u03bf\u03b9\u03c7\u03b5\u03af\u03c9\u03bd \u03c4\u03bf\u03c5 \u03b4\u03b5\u03af\u03b3\u03bc\u03b1\u03c4\u03bf\u03c2.\\n`;\n            if(document.getElementById('chkPower').checked) {\n                prompt += `${c++}) **\u0394\u03cd\u03bd\u03b1\u03bc\u03b7 \u03c4\u03bf\u03c5 \u0394\u03b5\u03af\u03b3\u03bc\u03b1\u03c4\u03bf\u03c2 (Statistical Power):** \u03a7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b5 \u03c4\u03b1 \u03bd\u03bf\u03cd\u03bc\u03b5\u03c1\u03b1 \u03b1\u03c0\u03cc \u03c4\u03b7\u03bd \u03b5\u03bd\u03cc\u03c4\u03b7\u03c4\u03b1 \u0391\u039d\u0391\u039b\u03a5\u03a3\u0397 \u0395\u0393\u039a\u03a5\u03a1\u03a9\u039d \u0391\u03a0\u0391\u039d\u03a4\u0397\u03a3\u0395\u03a9\u039d.\\n`;\n                prompt += `   - **\u0393\u03b5\u03bd\u03b9\u03ba\u03cc \u039a\u03bf\u03b9\u03bd\u03cc:** \u03a3\u03ba\u03bf\u03c0\u03cc\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9 \u03b7 \u03c3\u03c5\u03c3\u03c7\u03ad\u03c4\u03b9\u03c3\u03b7 \u03c4\u03bf\u03c5 \u03a3\u03ba\u03bf\u03c1 \u0391\u03c0\u03bf\u03b4\u03bf\u03c7\u03ae\u03c2 \u03bc\u03b5 \u03c4\u03bf \u03a3\u03ba\u03bf\u03c1 \u0398\u03c1\u03b7\u03c3\u03ba\u03b5\u03c5\u03c4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2. \u03a0\u03bf\u03b9\u03b5\u03c2 \u03c3\u03c5\u03b3\u03ba\u03c1\u03af\u03c3\u03b5\u03b9\u03c2 \u03b8\u03b5\u03c9\u03c1\u03bf\u03cd\u03bd\u03c4\u03b1\u03b9 \u03c3\u03c4\u03b1\u03c4\u03b9\u03c3\u03c4\u03b9\u03ba\u03ac \u03b5\u03cd\u03c1\u03c9\u03c3\u03c4\u03b5\u03c2;\\n`;\n                prompt += `   - **\u03a5\u03c0\u03bf\u03b4\u03b5\u03af\u03b3\u03bc\u03b1 \u03a0\u039504:** \u0395\u03af\u03bd\u03b1\u03b9 \u03c4\u03bf \u03b4\u03b5\u03af\u03b3\u03bc\u03b1 (N) \u03b5\u03c0\u03b1\u03c1\u03ba\u03ad\u03c2 \u03b3\u03b9\u03b1 t-test\/\u03c3\u03c5\u03c3\u03c7\u03b5\u03c4\u03af\u03c3\u03b5\u03b9\u03c2 \u03bc\u03b5\u03c4\u03b1\u03be\u03cd \u0393\u03b5\u03c9\u03bb\u03cc\u03b3\u03c9\u03bd vs \u0392\u03b9\u03bf\u03bb\u03cc\u03b3\u03c9\u03bd;\\n`;\n            }\n            if(document.getElementById('chkConcl').checked) {\n                prompt += `${c++}) **\u03a3\u03c5\u03bc\u03c0\u03b5\u03c1\u03ac\u03c3\u03bc\u03b1\u03c4\u03b1 & \u0391\u03be\u03b9\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7 (Actionable Insights):** \u0394\u03ce\u03c3\u03b5 3-4 \u03b2\u03b1\u03c3\u03b9\u03ba\u03ac \u03c3\u03c5\u03bc\u03c0\u03b5\u03c1\u03ac\u03c3\u03bc\u03b1\u03c4\u03b1 (bullet points) \u03ba\u03b1\u03b9 \u03c0\u03c1\u03bf\u03c4\u03ac\u03c3\u03b5\u03b9\u03c2 \u03b3\u03b9\u03b1 \u03c4\u03bf \u03c0\u03ce\u03c2 \u03bc\u03c0\u03bf\u03c1\u03bf\u03cd\u03bd \u03b1\u03c5\u03c4\u03ac \u03c4\u03b1 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03bd\u03b1 \u03b1\u03be\u03b9\u03bf\u03c0\u03bf\u03b9\u03b7\u03b8\u03bf\u03cd\u03bd.\\n`;\n            }\n\n            let ta = document.getElementById('promptTextarea'); \n            ta.value = prompt; ta.classList.remove('hidden'); \n            document.getElementById('copyPromptBtn').classList.remove('hidden');\n        }\n\n        window.copyAdvancedPrompt = function() {\n            const copyText = document.getElementById(\"promptTextarea\"); copyText.select(); document.execCommand(\"copy\");\n            const btn = document.getElementById('copyPromptBtn'); const orig = btn.innerHTML;\n            btn.innerHTML = '<i class=\"fas fa-check mr-2\"><\/i>\u0391\u03bd\u03c4\u03b9\u03b3\u03c1\u03ac\u03c6\u03b7\u03ba\u03b5!'; btn.classList.replace('bg-emerald-600', 'bg-indigo-600');\n            setTimeout(() => { btn.innerHTML = orig; btn.classList.replace('bg-indigo-600', 'bg-emerald-600'); }, 2000);\n        }\n\n        \/\/ --- DATAWRAPPER DIRECT EXPORT ---\n        window.copyDatawrapperCSV = function() {\n            if(validRecords.length === 0) { alert('\u03a6\u03bf\u03c1\u03c4\u03ce\u03c3\u03c4\u03b5 \u03c0\u03c1\u03ce\u03c4\u03b1 \u03c4\u03b1 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1!'); return; }\n            let sel = document.getElementById('dwSelect').value;\n            let completedAll = validRecords.filter(r => r._isCompleted);\n            let compP = validRecords.filter(r => r._isCompleted && r._isPE04);\n            \n            let csvStr = \"\";\n\n            if (sel.startsWith(\"dw_\")) {\n                let pCount = compP.length, allCount = completedAll.length;\n                let countsRegP = {}, countsRegAll = {};\n                \n                compP.forEach(r => { let v = (r['\u03a0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b1 \u03a5\u03c0\u03b7\u03c1\u03ad\u03c4\u03b7\u03c3\u03b7\u03c2'] || '').trim(); if(v) countsRegP[v] = (countsRegP[v] || 0) + 1; });\n                completedAll.forEach(r => { let v = (r['\u03a0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b1 \u03a5\u03c0\u03b7\u03c1\u03ad\u03c4\u03b7\u03c3\u03b7\u03c2'] || '').trim(); if(v) countsRegAll[v] = (countsRegAll[v] || 0) + 1; });\n\n                if (sel === \"dw_elstat_gen\") {\n                    csvStr = \"Region,General Sample (%),ELSTAT Population (%)\\n\";\n                    Object.keys(elstatData).forEach(reg => {\n                        let ca = countsRegAll[reg] || 0; let aPerc = allCount > 0 ? (ca\/allCount)*100 : 0;\n                        csvStr += `${reg},${aPerc.toFixed(1)},${elstatData[reg]}\\n`;\n                    });\n                } else if (sel === \"dw_elstat_pe04\") {\n                    csvStr = \"Region,PE04 Sample (%),ELSTAT Population (%)\\n\";\n                    Object.keys(elstatData).forEach(reg => {\n                        let cp = countsRegP[reg] || 0; let pPerc = pCount > 0 ? (cp\/pCount)*100 : 0;\n                        csvStr += `${reg},${pPerc.toFixed(1)},${elstatData[reg]}\\n`;\n                    });\n                } else if (sel === \"dw_map_gen\") {\n                    csvStr = \"\u03a0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b1,\u0394\u03b9\u03b1\u03c6\u03bf\u03c1\u03ac \u0391\u03bd\u03c4\u03b9\u03c0\u03c1\u03bf\u03c3\u03ce\u03c0\u03b5\u03c5\u03c3\u03b7\u03c2 (%)\\n\";\n                    Object.keys(elstatData).forEach(reg => {\n                        let ca = countsRegAll[reg] || 0; let aPerc = allCount > 0 ? (ca\/allCount)*100 : 0;\n                        csvStr += `${reg},${(aPerc - elstatData[reg]).toFixed(1)}\\n`;\n                    });\n                } else if (sel === \"dw_map_pe04\") {\n                    csvStr = \"\u03a0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b1,\u0394\u03b9\u03b1\u03c6\u03bf\u03c1\u03ac \u0391\u03bd\u03c4\u03b9\u03c0\u03c1\u03bf\u03c3\u03ce\u03c0\u03b5\u03c5\u03c3\u03b7\u03c2 (%)\\n\";\n                    Object.keys(elstatData).forEach(reg => {\n                        let cp = countsRegP[reg] || 0; let pPerc = pCount > 0 ? (cp\/pCount)*100 : 0;\n                        csvStr += `${reg},${(pPerc - elstatData[reg]).toFixed(1)}\\n`;\n                    });\n                }\n            } \n            else {\n                let counts = {};\n                completedAll.forEach(r => { let v = (r[sel] || '\u0386\u03b3\u03bd\u03c9\u03c3\u03c4\u03bf').trim(); if(v) counts[v] = (counts[v] || 0) + 1; });\n                csvStr = \"\u039a\u03b1\u03c4\u03b7\u03b3\u03bf\u03c1\u03af\u03b1,\u03a0\u03bb\u03ae\u03b8\u03bf\u03c2\\n\";\n                Object.keys(counts).sort((a,b) => counts[b] - counts[a]).forEach(k => { csvStr += `\"${k}\",${counts[k]}\\n`; });\n            }\n\n            let temp = document.createElement(\"textarea\");\n            temp.value = csvStr; document.body.appendChild(temp); temp.select(); document.execCommand(\"copy\"); document.body.removeChild(temp);\n\n            const btn = document.getElementById('dwCopyBtn'); const orig = btn.innerHTML;\n            btn.innerHTML = '<i class=\"fas fa-check mr-2\"><\/i>\u0391\u03bd\u03c4\u03b9\u03b3\u03c1\u03ac\u03c6\u03b7\u03ba\u03b5!'; btn.classList.replace('bg-orange-600', 'bg-emerald-600');\n            setTimeout(() => { btn.innerHTML = orig; btn.classList.replace('bg-emerald-600', 'bg-orange-600'); }, 2000);\n        }\n\n        \/\/ --- PURE DATA EXCEL EXPORT (\u0391\u03c0\u03cc\u03bb\u03c5\u03c4\u03b1 \u039c\u03b1\u03b8\u03b7\u03bc\u03b1\u03c4\u03b9\u03ba\u03ac \u03c7\u03c9\u03c1\u03af\u03c2 HTML) ---\n        window.exportToExcel = function() {\n            let wb = XLSX.utils.book_new();\n            \n            \/\/ 1. \u03a6\u03cd\u03bb\u03bb\u03bf \u03a3\u03cd\u03bd\u03bf\u03c8\u03b7\u03c2 Funnel\n            let wsSummary = XLSX.utils.aoa_to_sheet([\n                [\"\u03a3\u03a4\u0391\u03a4\u0399\u03a3\u03a4\u0399\u039a\u0391 \u03a3\u03a5\u039c\u039c\u0395\u03a4\u039f\u03a7\u0397\u03a3 & \u0394\u0399\u0391\u03a1\u03a1\u039f\u03a9\u039d\", \"\"],\n                [\"\", \"\"],\n                [\"\u03a0\u039504\", \"\"],\n                [\"\u039e\u03b5\u03ba\u03af\u03bd\u03b7\u03c3\u03b1\u03bd (\u0394\u03b7\u03bc\u03bf\u03b3\u03c1\u03b1\u03c6\u03b9\u03ba\u03ac)\", Number(document.getElementById('pe04Started').innerText)],\n                [\"\u039f\u03bb\u03bf\u03ba\u03bb\u03ae\u03c1\u03c9\u03c3\u03b1\u03bd (KAEVO)\", Number(document.getElementById('pe04Kaevo').innerText)],\n                [\"\u039f\u03bb\u03bf\u03ba\u03bb\u03ae\u03c1\u03c9\u03c3\u03b1\u03bd (\u0393\u03b5\u03bd\u03b9\u03ba\u03cc)\", Number(document.getElementById('pe04Completed').innerText)],\n                [\"\u0394\u03b9\u03b1\u03c1\u03c1\u03bf\u03ae 1 (KAEVO)\", Number(document.getElementById('leak1').innerText)],\n                [\"\u0394\u03b9\u03b1\u03c1\u03c1\u03bf\u03ae 2 (\u0393\u03b5\u03bd\u03b9\u03ba\u03cc)\", Number(document.getElementById('leak2').innerText)],\n                [\"\", \"\"],\n                [\"\u039b\u039f\u0399\u03a0\u0395\u03a3 \u0395\u0399\u0394\u0399\u039a\u039f\u03a4\u0397\u03a4\u0395\u03a3\", \"\"],\n                [\"\u039e\u03b5\u03ba\u03af\u03bd\u03b7\u03c3\u03b1\u03bd (\u0394\u03b7\u03bc\u03bf\u03b3\u03c1\u03b1\u03c6\u03b9\u03ba\u03ac)\", Number(document.getElementById('otherStarted').innerText)],\n                [\"\u039f\u03bb\u03bf\u03ba\u03bb\u03ae\u03c1\u03c9\u03c3\u03b1\u03bd (\u0393\u03b5\u03bd\u03b9\u03ba\u03cc)\", Number(document.getElementById('otherCompleted').innerText)],\n                [\"\u0394\u03b9\u03b1\u03c1\u03c1\u03bf\u03ae\", Number(document.getElementById('leak3').innerText)],\n                [\"\", \"\"],\n                [\"\u03a3\u03a5\u039d\u039f\u039b\u0391\", \"\"],\n                [\"\u03a3\u03c5\u03bd\u03bf\u03bb\u03b9\u03ba\u03ae \u0395\u03af\u03c3\u03bf\u03b4\u03bf\u03c2\", Number(document.getElementById('funnelTotalStarted').innerText)],\n                [\"\u03a3\u03cd\u03bd\u03bf\u03bb\u03bf KAEVO\", Number(document.getElementById('pe04Kaevo').innerText)],\n                [\"\u03a4\u03b5\u03bb\u03b9\u03ba\u03cc \u03a3\u03cd\u03bd\u03bf\u03bb\u03bf \u0395\u03c1\u03b5\u03c5\u03bd\u03b1\u03c2\", Number(document.getElementById('funnelTotalCompleted').innerText)],\n                [\"\u0393\u03b5\u03bd\u03b9\u03ba\u03cc Drop-off\", Number(document.getElementById('totalLeak').innerText)]\n            ]);\n            wsSummary['!cols'] = [{wch: 30}, {wch: 15}];\n            XLSX.utils.book_append_sheet(wb, wsSummary, \"\u03a3\u03cd\u03bd\u03bf\u03c8\u03b7\");\n\n            \/\/ 2. Helper \u03b3\u03b9\u03b1 \u03b4\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03ba\u03b1\u03b8\u03b1\u03c1\u03ce\u03bd \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd AoA (Array of Arrays)\n            function buildSheetData(records, colName, includeKaevo = false) {\n                let counts = {};\n                let totalOverall=0, totalP1=0, totalP2=0, totalP3=0;\n                let totalKaevoOnly = 0;\n\n                records.forEach(r => {\n                    let val = r[colName] ? r[colName].trim() : '\u0386\u03b3\u03bd\u03c9\u03c3\u03c4\u03bf';\n                    if (!counts[val]) counts[val] = { t:0, p1:0, p2:0, p3:0, kOnly:0 };\n                    \n                    if (r._isCompleted) {\n                        counts[val].t++; totalOverall++;\n                        if (r._phase === 1) { counts[val].p1++; totalP1++; }\n                        if (r._phase === 2) { counts[val].p2++; totalP2++; }\n                        if (r._phase === 3) { counts[val].p3++; totalP3++; }\n                    }\n                    if (includeKaevo && r._isPE04KaevoOnly) {\n                        counts[val].kOnly++;\n                        totalKaevoOnly++;\n                    }\n                });\n\n                let sortedKeys = Object.keys(counts).sort((a,b) => counts[b].t - counts[a].t);\n                let headers = includeKaevo \n                    ? [colName, \"\u03a6\u03ac\u03c3\u03b7 1\", \"\u03a6\u03ac\u03c3\u03b7 2\", \"\u03a6\u03ac\u03c3\u03b7 3\", \"\u03a3\u03cd\u03bd\u03bf\u03bb\u03bf\", \"\u039c\u03cc\u03bd\u03bf KAEVO\", \"\u03a0\u03bf\u03c3\u03bf\u03c3\u03c4\u03cc %\"]\n                    : [colName, \"\u03a6\u03ac\u03c3\u03b7 1\", \"\u03a6\u03ac\u03c3\u03b7 2\", \"\u03a6\u03ac\u03c3\u03b7 3\", \"\u03a3\u03cd\u03bd\u03bf\u03bb\u03bf\", \"\u03a0\u03bf\u03c3\u03bf\u03c3\u03c4\u03cc %\"];\n                    \n                let aoa = [headers];\n                \n                sortedKeys.forEach(k => {\n                    let d = counts[k];\n                    if (d.t === 0 && d.kOnly === 0) return;\n                    \n                    \/\/ \u039a\u03b1\u03b8\u03b1\u03c1\u03cc \u03bd\u03bf\u03cd\u03bc\u03b5\u03c1\u03bf \u03b3\u03b9\u03b1 \u03c4\u03bf \u03c0\u03bf\u03c3\u03bf\u03c3\u03c4\u03cc (\u03c0.\u03c7. 25.5 \u03b1\u03bd\u03c4\u03af \u03b3\u03b9\u03b1 \"25.5%\")\n                    let pTotal = totalOverall > 0 ? parseFloat(((d.t \/ totalOverall)*100).toFixed(1)) : 0;\n                    \n                    let row = includeKaevo \n                        ? [k, d.p1, d.p2, d.p3, d.t, d.kOnly, pTotal]\n                        : [k, d.p1, d.p2, d.p3, d.t, pTotal];\n                        \n                    aoa.push(row);\n                });\n                \n                let totalsRow = includeKaevo\n                    ? [\"\u03a3\u03a5\u039d\u039f\u039b\u039f\", totalP1, totalP2, totalP3, totalOverall, totalKaevoOnly, 100]\n                    : [\"\u03a3\u03a5\u039d\u039f\u039b\u039f\", totalP1, totalP2, totalP3, totalOverall, 100];\n                    \n                aoa.push(totalsRow);\n                \n                let ws = XLSX.utils.aoa_to_sheet(aoa);\n                \n                \/\/ \u0394\u03b9\u03b5\u03cd\u03c1\u03c5\u03bd\u03c3\u03b7 \u03a3\u03c4\u03b7\u03bb\u03ce\u03bd (Column Widths) \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03c7\u03c9\u03c1\u03ac\u03bd\u03b5 \u03c4\u03b1 \u03ba\u03b5\u03af\u03bc\u03b5\u03bd\u03b1\n                ws['!cols'] = includeKaevo \n                    ? [{wch: 40}, {wch: 10}, {wch: 10}, {wch: 10}, {wch: 10}, {wch: 15}, {wch: 12}]\n                    : [{wch: 40}, {wch: 10}, {wch: 10}, {wch: 10}, {wch: 10}, {wch: 12}];\n                    \n                return ws;\n            }\n\n            \/\/ \u0395\u03be\u03b1\u03b3\u03c9\u03b3\u03ae \u03cc\u03bb\u03c9\u03bd \u03c4\u03c9\u03bd \u03c3\u03c4\u03b7\u03bb\u03ce\u03bd\n            let pe04Col = Object.keys(validRecords[0] || {}).find(k => k.includes('\u03a0\u0395 04.')) || '\u0395\u03b9\u03b4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b1';\n            let pubPrivCol = Object.keys(validRecords[0] || {}).find(k => k.includes('\u03a3\u03c7\u03bf\u03bb\u03b5\u03af\u03bf \u03c0\u03bf\u03c5 \u03c5\u03c0\u03b7\u03c1\u03b5\u03c4\u03b5\u03af\u03c4\u03b5')) || '\u03a4\u03bf \u03a3\u03c7\u03bf\u03bb\u03b5\u03af\u03bf \u03c0\u03bf\u03c5 \u03c5\u03c0\u03b7\u03c1\u03b5\u03c4\u03b5\u03af\u03c4\u03b5 \u03b5\u03af\u03bd\u03b1\u03b9';\n            let typeCol = Object.keys(validRecords[0] || {}).find(k => k.includes('\u03a4\u03cd\u03c0\u03bf\u03c2 \u039a\u03cd\u03c1\u03b9\u03b1\u03c2')) || '\u03a4\u03cd\u03c0\u03bf\u03c2 \u039a\u03cd\u03c1\u03b9\u03b1\u03c2 \u03a3\u03c7\u03bf\u03bb\u03b9\u03ba\u03ae\u03c2 \u039c\u03bf\u03bd\u03ac\u03b4\u03b1\u03c2';\n            let eduCol = Object.keys(validRecords[0] || {}).find(k => k.includes('\u0395\u03ba\u03c0\u03b1\u03b9\u03b4\u03b5\u03c5\u03c4\u03b9\u03ba\u03cc \u0395\u03c0\u03af\u03c0\u03b5\u03b4\u03bf')) || '\u0391\u03bd\u03ce\u03c4\u03b1\u03c4\u03bf \u0395\u03ba\u03c0\u03b1\u03b9\u03b4\u03b5\u03c5\u03c4\u03b9\u03ba\u03cc \u0395\u03c0\u03af\u03c0\u03b5\u03b4\u03bf';\n            let genderCol = Object.keys(validRecords[0] || {}).find(k => k.includes('\u03a6\u03cd\u03bb\u03bf') || k === 'gender') || '\u03a6\u03cd\u03bb\u03bf';\n            let ageCol = Object.keys(validRecords[0] || {}).find(k => k.includes('\u0397\u03bb\u03b9\u03ba\u03af\u03b1') || k === 'age') || '\u0397\u03bb\u03b9\u03ba\u03af\u03b1';\n            let relCol = Object.keys(validRecords[0] || {}).find(k => k.includes('\u03b8\u03c1\u03ae\u03c3\u03ba\u03b5\u03c5\u03bc\u03b1')) || '\u0398\u03c1\u03ae\u03c3\u03ba\u03b5\u03c5\u03bc\u03b1';\n            let yearsCol = Object.keys(validRecords[0] || {}).find(k => k.includes('\u0388\u03c4\u03b7 \u0394\u03b9\u03b4\u03b1\u03c3\u03ba\u03b1\u03bb\u03af\u03b1\u03c2')) || '\u0388\u03c4\u03b7 \u0394\u03b9\u03b4\u03b1\u03c3\u03ba\u03b1\u03bb\u03af\u03b1\u03c2';\n            let locCol = Object.keys(validRecords[0] || {}).find(k => k.includes('\u03a0\u03b5\u03c1\u03b9\u03bf\u03c7\u03ae \u039a\u03cd\u03c1\u03b9\u03b1\u03c2')) || '\u03a0\u03b5\u03c1\u03b9\u03bf\u03c7\u03ae \u039a\u03cd\u03c1\u03b9\u03b1\u03c2 \u03a3\u03c7\u03bf\u03bb\u03b9\u03ba\u03ae\u03c2 \u039c\u03bf\u03bd\u03ac\u03b4\u03b1\u03c2';\n\n            XLSX.utils.book_append_sheet(wb, buildSheetData(validRecords, '\u03a0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b1 \u03a5\u03c0\u03b7\u03c1\u03ad\u03c4\u03b7\u03c3\u03b7\u03c2'), '\u03a0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b5\u03c2');\n            XLSX.utils.book_append_sheet(wb, buildSheetData(validRecords, '\u0395\u03b9\u03b4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b1'), '\u0395\u03b9\u03b4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b5\u03c2');\n            XLSX.utils.book_append_sheet(wb, buildSheetData(validRecords.filter(r => r._isPE04), '\u03a0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b1 \u03a5\u03c0\u03b7\u03c1\u03ad\u03c4\u03b7\u03c3\u03b7\u03c2', true), '\u0391\u03bd\u03ac\u03bb\u03c5\u03c3\u03b7 \u03a0\u039504 \u03a0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b5\u03c2');\n            XLSX.utils.book_append_sheet(wb, buildSheetData(validRecords.filter(r => r._isPE04), pe04Col, true), '\u0391\u03bd\u03ac\u03bb\u03c5\u03c3\u03b7 \u03a0\u039504 \u0395\u03b9\u03b4\u03b9\u03ba\u03cc\u03c4\u03b7\u03c4\u03b5\u03c2');\n\n            XLSX.utils.book_append_sheet(wb, buildSheetData(validRecords, pubPrivCol), '\u0394\u03b7\u03bc\u03cc\u03c3\u03b9\u03bf-\u0399\u03b4\u03b9\u03c9\u03c4\u03b9\u03ba\u03cc');\n            XLSX.utils.book_append_sheet(wb, buildSheetData(validRecords, typeCol), '\u03a4\u03cd\u03c0\u03bf\u03c2 \u03a3\u03c7\u03bf\u03bb\u03b5\u03af\u03bf\u03c5');\n            XLSX.utils.book_append_sheet(wb, buildSheetData(validRecords, genderCol), '\u03a6\u03cd\u03bb\u03bf');\n            XLSX.utils.book_append_sheet(wb, buildSheetData(validRecords, relCol), '\u0398\u03c1\u03ae\u03c3\u03ba\u03b5\u03c5\u03bc\u03b1');\n            XLSX.utils.book_append_sheet(wb, buildSheetData(validRecords, ageCol), '\u0397\u03bb\u03b9\u03ba\u03af\u03b1');\n            XLSX.utils.book_append_sheet(wb, buildSheetData(validRecords, yearsCol), '\u0388\u03c4\u03b7 \u0394\u03b9\u03b4\u03b1\u03c3\u03ba\u03b1\u03bb\u03af\u03b1\u03c2');\n            XLSX.utils.book_append_sheet(wb, buildSheetData(validRecords, eduCol), '\u0395\u03ba\u03c0\u03b1\u03af\u03b4\u03b5\u03c5\u03c3\u03b7');\n            XLSX.utils.book_append_sheet(wb, buildSheetData(validRecords, locCol), '\u03a0\u03b5\u03c1\u03b9\u03bf\u03c7\u03ae \u03a3\u03c7\u03bf\u03bb\u03b5\u03af\u03bf\u03c5');\n\n            XLSX.writeFile(wb, `Survey_Demographics_v3.3_${new Date().toISOString().slice(0,10)}.xlsx`);\n        };\n    <\/script>\n<\/body>\n<\/html>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button btn-primary\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/geocompetition.weebly.com\/sigmaupsilonmumuepsilontauomicronchieta.html\" target=\"_blank\" rel=\"noopener\">GEO<\/a><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Basic Survey Analytics v3.3 | Ultimate Export &#038; Print Basic Survey Analytics v3.3 \u0391\u03bd\u03b1\u03bb\u03c5\u03c4\u03b9\u03ba\u03ae \u0388\u03ba\u03b8\u03b5\u03c3\u03b7 \u03a3\u03c4\u03b1\u03c4\u03b9\u03c3\u03c4\u03b9\u03ba\u03ce\u03bd &#038; \u0394\u03b7\u03bc\u03bf\u03b3\u03c1\u03b1\u03c6\u03b9\u03ba\u03ce\u03bd \u0394\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd \u0388\u03c1\u03b5\u03c5\u03bd\u03b1\u03c2 \u0395\u03ba\u03c4\u03cd\u03c0\u03c9\u03c3\u03b7 \u0395\u03be\u03b1\u03b3\u03c9\u03b3\u03ae Excel \u0391\u03bd\u03b1\u03bb\u03c5\u03c4\u03b9\u03ba\u03ae \u0388\u03ba\u03b8\u03b5\u03c3\u03b7 \u03a3\u03c4\u03b1\u03c4\u03b9\u03c3\u03c4\u03b9\u03ba\u03ce\u03bd &#038; \u0394\u03b7\u03bc\u03bf\u03b3\u03c1\u03b1\u03c6\u03b9\u03ba\u03ce\u03bd \u0394\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd \u0388\u03c1\u03b5\u03c5\u03bd\u03b1\u03c2 \u0391\u03c1\u03c7\u03b5\u03af\u03b1 \u0391\u03bd\u03ac\u03bb\u03c5\u03c3\u03b7\u03c2 \u03c0\u03bf\u03c5 \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03ae\u03b8\u03b7\u03ba\u03b1\u03bd: 1. \u0394\u03b7\u03bc\u03bf\u03b3\u03c1\u03b1\u03c6\u03b9\u03ba\u03ac: &#8211; 2. KAEVO 2.0: &#8211; 3. \u0393\u03b5\u03bd\u03b9\u03ba\u03cc \u039c\u03ad\u03c1\u03bf\u03c2: &#8211; 1. \u0394\u03b7\u03bc\u03bf\u03b3\u03c1\u03b1\u03c6\u03b9\u03ba\u03ac (CSV) \u0391\u03bd\u03b1\u03bc\u03bf\u03bd\u03ae&#8230; 2. KAEVO 2.0 (CSV) \u0391\u03bd\u03b1\u03bc\u03bf\u03bd\u03ae&#8230; 3. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"templates\/template-full-width.php","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-4109","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/dkouzas.sites.sch.gr\/index.php?rest_route=\/wp\/v2\/posts\/4109","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dkouzas.sites.sch.gr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dkouzas.sites.sch.gr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dkouzas.sites.sch.gr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dkouzas.sites.sch.gr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4109"}],"version-history":[{"count":5,"href":"https:\/\/dkouzas.sites.sch.gr\/index.php?rest_route=\/wp\/v2\/posts\/4109\/revisions"}],"predecessor-version":[{"id":4153,"href":"https:\/\/dkouzas.sites.sch.gr\/index.php?rest_route=\/wp\/v2\/posts\/4109\/revisions\/4153"}],"wp:attachment":[{"href":"https:\/\/dkouzas.sites.sch.gr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4109"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dkouzas.sites.sch.gr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4109"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dkouzas.sites.sch.gr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4109"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}