{"id":3242,"date":"2025-11-01T20:05:43","date_gmt":"2025-11-01T20:05:43","guid":{"rendered":"https:\/\/lotterylottowin.com\/?page_id=3242"},"modified":"2026-04-11T02:16:43","modified_gmt":"2026-04-11T02:16:43","slug":"lotto","status":"publish","type":"page","link":"https:\/\/lotterylottowin.com\/el\/lotto\/","title":{"rendered":"\u039b\u03cc\u03c4\u03c4\u03bf"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3242\" class=\"elementor elementor-3242\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2d3194a e-flex e-con-boxed e-con e-parent\" data-id=\"2d3194a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0f6b97b elementor-widget elementor-widget-html\" data-id=\"0f6b97b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div style=\"position:relative;width:100%;height:260px;overflow:hidden;border-radius:12px;\">\r\n  \r\n  <img decoding=\"async\" \r\n    src=\"https:\/\/lotterylottowin.com\/wp-content\/uploads\/2026\/02\/layout_icon-1.webp\" \r\n    alt=\"Lotto Greece results and jackpot updates\"\r\n    style=\"\r\n      width:100%;\r\n      height:100%;\r\n      object-fit:cover;\r\n      object-position:center center;\r\n      transform:scaleY(1);\r\n      display:block;\r\n    \"\r\n  >\r\n\r\n  <div style=\"\r\n    position:absolute;\r\n    inset:0;\r\n    background:linear-gradient(to bottom, rgba(0,0,0,0.15), rgba(0,0,0,0.65));\r\n  \"><\/div>\r\n\r\n  <div style=\"\r\n    position:absolute;\r\n    bottom:20px;\r\n    left:20px;\r\n    color:#ffffff;\r\n    z-index:2;\r\n  \">\r\n    <h1 style=\"margin:0;font-size:28px;font-weight:700;\">Lotto Greece Results Today<\/h1>\r\n    <p style=\"margin-top:6px;font-size:14px;opacity:0.9;\">\r\n      Latest winning numbers, jackpot totals & prize details\r\n    <\/p>\r\n  <\/div>\r\n\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-82c7fcf e-flex e-con-boxed e-con e-parent\" data-id=\"82c7fcf\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2245a6f elementor-widget elementor-widget-shortcode\" data-id=\"2245a6f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><p><strong>\u0391\u03c0\u03bf\u03c4\u03b5\u03bb\u03ad\u03c3\u03bc\u03b1\u03c4\u03b1 \u039b\u039f\u03a4\u03a4\u039f \u039f\u03a0\u0391\u03a0 (LOTTO)<\/strong><\/p>\n            <p><strong>\u039a\u039b\u0397\u03a1\u03a9\u03a3\u0397 \u039b\u039f\u03a4\u03a4\u039f 2718 \u03a3\u03a4\u0399\u03a3 15\/04\/2026 19:00<\/strong><\/p><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4a3445e e-flex e-con-boxed e-con e-parent\" data-id=\"4a3445e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c0e2f51 elementor-widget elementor-widget-html\" data-id=\"c0e2f51\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- \ud83c\udf9f\ufe0f Latest LOTTO Draw -->\r\n<h2 style=\"text-align:center; margin-bottom:20px;\">\ud83c\udfab\ufe0f Latest LOTTO Draw<\/h2>\r\n\r\n<div id=\"lottoDraw\" style=\"text-align:center; margin-bottom:30px;\">\r\n  <!-- Numbers will be injected here -->\r\n  Loading numbers...\r\n<\/div>\r\n\r\n<!-- LOTTO Results -->\r\n<div id=\"lotto-results\" style=\"text-align:center; margin-bottom:30px;\">Loading LOTTO results\u2026<\/div>\r\n\r\n<script>\r\n(async function(){\r\n  const container = document.getElementById(\"lotto-results\");\r\n  const drawContainer = document.getElementById(\"lottoDraw\");\r\n  const gameId = 5103;\r\n  const endpoint = `https:\/\/api.opap.gr\/draws\/v3.0\/${gameId}\/last-result-and-active`;\r\n\r\n  function fmtNum(n){ if (n === null || typeof n === 'undefined' || n === '-') return '-'; return Number(n).toLocaleString('en-US'); }\r\n  function asNum(v){ return (v === null || typeof v === 'undefined' || v === '') ? NaN : Number(v); }\r\n  function approxEquals(a, b, tol = 0.5){ if (isNaN(a) || isNaN(b)) return false; return Math.abs(a - b) <= tol; }\r\n\r\n  try {\r\n    const resp = await fetch(endpoint);\r\n    if (!resp.ok) throw new Error(\"HTTP \" + resp.status);\r\n    const data = await resp.json();\r\n    const last = data.last;\r\n    if (!last) throw new Error(\"No 'last' draw in response\");\r\n    const drawId = last.visualDraw ?? last.drawId;\r\n    const dt = new Date(last.drawTime);\r\n    const day = dt.getDate(), month = dt.getMonth()+1, year = dt.getFullYear();\r\n    const main = (last.winningNumbers && last.winningNumbers.list) ? last.winningNumbers.list.map(Number) : [];\r\n\r\n    \/\/ \u2705 Sort Lotto numbers from smallest to largest (numeric sort)\r\n    main.sort((a, b) => a - b);\r\n\r\n    \/\/ \u2705 Inject sorted numbers into the page\r\n    drawContainer.innerHTML = main\r\n      .map(n => `<span style=\"display:inline-block; background:#fff; color:#000; border-radius:50%; width:45px; height:45px; line-height:45px; text-align:center; font-weight:bold; margin:5px;\">${n}<\/span>`)\r\n      .join(\"\");\r\n\r\n    const catsAll = (last.prizeCategories || []).slice();\r\n    function popMatch(fn){ const idx = catsAll.findIndex(fn); return idx >= 0 ? catsAll.splice(idx,1)[0] : null; }\r\n    function valueScore(c){ return (asNum(c.minimumDistributed) || asNum(c.jackpot) || asNum(c.fixed) || asNum(c.divident) || asNum(c.distributed) || 0); }\r\n    function popMaxByValue(){ if (catsAll.length === 0) return null; let bestIdx = 0, bestVal = valueScore(catsAll[0]); for (let i=1;i<catsAll.length;i++){ const v = valueScore(catsAll[i]); if (v > bestVal){ bestVal = v; bestIdx = i; } } return catsAll.splice(bestIdx,1)[0]; }\r\n\r\n    let catJackpot = popMatch(c => (asNum(c.minimumDistributed) > 0) || (asNum(c.jackpot) > 0) || (asNum(c.divident) === 0));\r\n    if (!catJackpot) catJackpot = popMaxByValue();\r\n    let cat30 = popMatch(c => approxEquals(asNum(c.divident), 30) || approxEquals(asNum(c.fixed), 30));\r\n    let cat2  = popMatch(c => approxEquals(asNum(c.divident), 2)  || approxEquals(asNum(c.fixed), 2));\r\n    let cat1  = popMatch(c => approxEquals(asNum(c.divident), 1)  || approxEquals(asNum(c.fixed), 1));\r\n\r\n    if (!cat30) cat30 = popMatch(c => typeof c.divident === 'number' && Math.round(c.divident) === 30);\r\n    if (!cat2)  cat2  = popMatch(c => typeof c.divident === 'number' && Math.round(c.divident) === 2);\r\n    if (!cat1)  cat1  = popMatch(c => typeof c.divident === 'number' && Math.round(c.divident) === 1);\r\n\r\n    let cat5 = null;\r\n    if (catsAll.length > 0) {\r\n      const positiveWinners = catsAll.filter(c => typeof c.winners === 'number' && c.winners > 0);\r\n      if (positiveWinners.length > 0) {\r\n        positiveWinners.sort((a,b) => (a.winners - b.winners));\r\n        cat5 = positiveWinners[0];\r\n        const idx = catsAll.findIndex(c => c === cat5);\r\n        if (idx >= 0) catsAll.splice(idx,1);\r\n      } else {\r\n        cat5 = popMaxByValue();\r\n      }\r\n    }\r\n\r\n    function ensureFromRemaining(slot, fallbackId) {\r\n      if (slot) return slot;\r\n      const found = (last.prizeCategories || []).find(c => c.id === fallbackId);\r\n      if (found) return found;\r\n      return catsAll.length ? catsAll.shift() : null;\r\n    }\r\n    catJackpot = ensureFromRemaining(catJackpot, 1);\r\n    cat5 = ensureFromRemaining(cat5, 2);\r\n    cat30 = ensureFromRemaining(cat30, 3);\r\n    cat2 = ensureFromRemaining(cat2, 4);\r\n    cat1 = ensureFromRemaining(cat1, 5);\r\n\r\n    const rows = [\r\n      { label: '6', cat: catJackpot, prizeText: '\u20ac10,000.00 per month for 10 years' },\r\n      { label: '5', cat: cat5,       prizeText: '\u20ac1,000.00 per month for 1 year' },\r\n      { label: '4', cat: cat30,      prizeText: '\u20ac30.00' },\r\n      { label: '3', cat: cat2,       prizeText: '\u20ac2.00' },\r\n      { label: '2', cat: cat1,       prizeText: '\u20ac1.00' }\r\n    ];\r\n\r\n    let html = `<h3 style=\"text-align:center;\">OPAP LOTTO Results (LOTTO)<\/h3>`;\r\n    html += `<p style=\"text-align:center;\">Draw <strong>${drawId}<\/strong> of OPAP LOTTO took place on <strong>${day}\/${month}\/${year}<\/strong> and the winning numbers drawn are <strong>${main.join(\", \")}<\/strong>.<\/p>`;\r\n\r\n    html += `<h4 style=\"text-align:center;\">CATEGORY - DISTRIBUTED WINNINGS<\/h4>`;\r\n    html += `<table style=\"margin:auto; border-collapse:collapse; text-align:center;\">\r\n      <thead><tr style=\"background:#f2f2f2; color:#000; font-weight:bold;\">\r\n        <th style=\"border:1px solid #ccc; padding:6px;\">Category<\/th>\r\n        <th style=\"border:1px solid #ccc; padding:6px;\">Winners<\/th>\r\n        <th style=\"border:1px solid #ccc; padding:6px;\">Prize<\/th>\r\n      <\/tr><\/thead><tbody>`;\r\n\r\n    rows.forEach(r => {\r\n      let winners = '-';\r\n      if (r.cat && typeof r.cat.winners !== 'undefined' && r.cat.winners !== null) {\r\n        winners = (r.cat.winners === 0) ? '-' : fmtNum(r.cat.winners);\r\n      }\r\n      html += `<tr>\r\n        <td style=\"border:1px solid #ccc; padding:6px;\">${r.label}<\/td>\r\n        <td style=\"border:1px solid #ccc; padding:6px;\">${winners}<\/td>\r\n        <td style=\"border:1px solid #ccc; padding:6px;\">${r.prizeText}<\/td>\r\n      <\/tr>`;\r\n    });\r\n\r\n    html += `<\/tbody><\/table>`;\r\n    const totalCols = last.wagerStatistics?.columns ?? '-';\r\n    html += `<p style=\"text-align:center;\"><strong>Total Columns:<\/strong> ${fmtNum(totalCols)}<\/p>`;\r\n\r\n    if (data.active && data.active.drawTime) {\r\n      const nd = new Date(data.active.drawTime);\r\n      html += `<p style=\"text-align:center;\">Next LOTTO Draw: <strong>${nd.getDate()}\/${nd.getMonth()+1}\/${nd.getFullYear()}<\/strong><\/p>`;\r\n    }\r\n\r\n    container.innerHTML = html;\r\n  } catch (err) {\r\n    console.error(\"Lotto fetch error:\", err);\r\n    container.innerHTML = `<p style=\"text-align:center;\">Data is temporarily unavailable.<\/p>`;\r\n  }\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dbcdcdf elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"dbcdcdf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d4ff072 elementor-widget elementor-widget-html\" data-id=\"d4ff072\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!doctype html>\r\n<html lang=\"en\">\r\n<head>\r\n  <meta charset=\"utf-8\">\r\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n  <title>Lotto Greece Winner Checker<\/title>\r\n  <style>\r\n    body {\r\n      font-family: Arial, sans-serif;\r\n      margin: 0;\r\n      padding: 24px 16px;\r\n      background: #0b0f19;\r\n      color: #ffffff;\r\n    }\r\n    .checker-wrap {\r\n      max-width: 980px;\r\n      margin: 0 auto;\r\n    }\r\n    .checker-card {\r\n      background: transparent;\r\n      border-radius: 16px;\r\n      padding: 24px;\r\n    }\r\n    .checker-title {\r\n      margin: 0 0 8px;\r\n      text-align: center;\r\n      font-size: 28px;\r\n      color: #ffffff;\r\n    }\r\n    .checker-subtitle {\r\n      margin: 0 0 20px;\r\n      text-align: center;\r\n      color: #e5e7eb;\r\n      font-size: 14px;\r\n    }\r\n    .checker-grid {\r\n      display: grid;\r\n      grid-template-columns: repeat(6, 72px);\r\n      justify-content: center;\r\n      gap: 10px;\r\n      margin-bottom: 14px;\r\n    }\r\n    .checker-grid input {\r\n      width: 100%;\r\n      padding: 12px 10px;\r\n      border: 1px solid #cbd5e1;\r\n      border-radius: 10px;\r\n      font-size: 16px;\r\n      text-align: center;\r\n      color: #111827;\r\n      background: #ffffff;\r\n      box-sizing: border-box;\r\n    }\r\n    .checker-actions {\r\n      display: flex;\r\n      justify-content: center;\r\n      gap: 10px;\r\n      flex-wrap: wrap;\r\n      margin-bottom: 14px;\r\n    }\r\n    .checker-btn {\r\n      border: 0;\r\n      border-radius: 10px;\r\n      padding: 10px 14px;\r\n      font-size: 15px;\r\n      cursor: pointer;\r\n      color: #000;\r\n      background: #ffffff;\r\n    }\r\n    .checker-btn.secondary {\r\n      background: #e5e7eb;\r\n    }\r\n    .checker-status {\r\n      text-align: center;\r\n      color: #e5e7eb;\r\n      font-size: 14px;\r\n      margin-bottom: 18px;\r\n      min-height: 20px;\r\n    }\r\n    .checker-error {\r\n      text-align: center;\r\n      color: #fca5a5;\r\n      font-weight: 700;\r\n      margin-bottom: 16px;\r\n      min-height: 20px;\r\n    }\r\n    .summary-box {\r\n      background: rgba(255,255,255,0.08);\r\n      border: 1px solid rgba(255,255,255,0.14);\r\n      border-radius: 12px;\r\n      padding: 16px;\r\n      margin-bottom: 18px;\r\n    }\r\n    .summary-box h3 {\r\n      margin: 0 0 8px;\r\n      font-size: 18px;\r\n      color: #ffffff;\r\n      text-align: center;\r\n    }\r\n    .summary-box p {\r\n      margin: 0;\r\n      text-align: center;\r\n      color: #e5e7eb;\r\n    }\r\n    .results-list {\r\n      display: grid;\r\n      gap: 14px;\r\n    }\r\n    .result-item {\r\n      background: rgba(255,255,255,0.05);\r\n      border: 1px solid rgba(255,255,255,0.12);\r\n      border-radius: 14px;\r\n      padding: 16px;\r\n    }\r\n    .result-head {\r\n      display: flex;\r\n      justify-content: space-between;\r\n      align-items: center;\r\n      gap: 10px;\r\n      flex-wrap: wrap;\r\n      margin-bottom: 12px;\r\n    }\r\n    .result-draw {\r\n      font-weight: 700;\r\n      color: #ffffff;\r\n    }\r\n    .result-tier {\r\n      background: #16a34a;\r\n      color: #fff;\r\n      padding: 6px 10px;\r\n      border-radius: 999px;\r\n      font-size: 13px;\r\n      font-weight: 700;\r\n    }\r\n    .ball-row {\r\n      display: flex;\r\n      align-items: center;\r\n      justify-content: center;\r\n      gap: 8px;\r\n      flex-wrap: wrap;\r\n      margin-bottom: 10px;\r\n    }\r\n    .ball {\r\n      width: 42px;\r\n      height: 42px;\r\n      border-radius: 50%;\r\n      display: inline-flex;\r\n      align-items: center;\r\n      justify-content: center;\r\n      font-weight: 700;\r\n      border: 2px solid rgba(15, 23, 42, 0.45);\r\n      box-sizing: border-box;\r\n      background: #ffffff;\r\n      color: #0f172a;\r\n    }\r\n    .ball.match {\r\n      background: #ffffff;\r\n      color: #000000;\r\n      border-color: #94a3b8;\r\n    }\r\n    .result-meta {\r\n      text-align: center;\r\n      color: #e5e7eb;\r\n      font-size: 14px;\r\n    }\r\n    .empty-state {\r\n      text-align: center;\r\n      color: #e5e7eb;\r\n      background: rgba(255,255,255,0.04);\r\n      border: 1px dashed rgba(255,255,255,0.25);\r\n      border-radius: 12px;\r\n      padding: 18px;\r\n    }\r\n    @media (max-width: 720px) {\r\n      .checker-grid {\r\n        grid-template-columns: repeat(3, 72px);\r\n      }\r\n    }\r\n  <\/style>\r\n<\/head>\r\n<body>\r\n  <div class=\"checker-wrap\">\r\n    <div class=\"checker-card\">\r\n      <h1 class=\"checker-title\">Lotto Greece Winner Checker<\/h1>\r\n      <p class=\"checker-subtitle\">Enter 6 Lotto numbers to see if this ticket would have won in the stored Greece Lotto draws.<\/p>\r\n\r\n      <div class=\"checker-grid\" id=\"checkerInputs\">\r\n        <input type=\"number\" min=\"1\" max=\"49\" placeholder=\"1\">\r\n        <input type=\"number\" min=\"1\" max=\"49\" placeholder=\"2\">\r\n        <input type=\"number\" min=\"1\" max=\"49\" placeholder=\"3\">\r\n        <input type=\"number\" min=\"1\" max=\"49\" placeholder=\"4\">\r\n        <input type=\"number\" min=\"1\" max=\"49\" placeholder=\"5\">\r\n        <input type=\"number\" min=\"1\" max=\"49\" placeholder=\"6\">\r\n      <\/div>\r\n\r\n      <div class=\"checker-actions\">\r\n        <button class=\"checker-btn\" id=\"checkBtn\">Check Ticket<\/button>\r\n        <button class=\"checker-btn secondary\" id=\"clearBtn\">Clear<\/button>\r\n      <\/div>\r\n\r\n      <div class=\"checker-status\" id=\"checkerStatus\">Loading Lotto draw data...<\/div>\r\n      <div class=\"checker-error\" id=\"checkerError\"><\/div>\r\n\r\n      <div id=\"summaryBox\"><\/div>\r\n      <div class=\"results-list\" id=\"resultsList\"><\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <script>\r\n    (function () {\r\n      const SHEETS = {\r\n        2025: \"1oLa-qbfBYeNOvf95yum5A5n0DzJU97WG\",\r\n        2026: \"1bENFZ5p0a1h67i1_p450m7gWOMwN2w11\"\r\n      };\r\n      const CACHE_PREFIX = \"lotto-winner-checker-v1-\";\r\n      const CACHE_MAX_AGE_MS = 6 * 60 * 60 * 1000;\r\n      const LOAD_CONCURRENCY = 2;\r\n\r\n      const inputEls = Array.from(document.querySelectorAll(\"#checkerInputs input\"));\r\n      const checkBtn = document.getElementById(\"checkBtn\");\r\n      const clearBtn = document.getElementById(\"clearBtn\");\r\n      const checkerStatus = document.getElementById(\"checkerStatus\");\r\n      const checkerError = document.getElementById(\"checkerError\");\r\n      const summaryBox = document.getElementById(\"summaryBox\");\r\n      const resultsList = document.getElementById(\"resultsList\");\r\n\r\n      const yearDrawCache = {};\r\n      let allDraws = [];\r\n\r\n      function readYearCache(year) {\r\n        try {\r\n          const raw = localStorage.getItem(CACHE_PREFIX + year);\r\n          if (!raw) return null;\r\n          const parsed = JSON.parse(raw);\r\n          if (!parsed || !Array.isArray(parsed.draws) || !parsed.savedAt) return null;\r\n          if (Date.now() - parsed.savedAt > CACHE_MAX_AGE_MS) return null;\r\n          return parsed.draws;\r\n        } catch (e) {\r\n          return null;\r\n        }\r\n      }\r\n\r\n      function writeYearCache(year, draws) {\r\n        try {\r\n          localStorage.setItem(CACHE_PREFIX + year, JSON.stringify({\r\n            savedAt: Date.now(),\r\n            draws: draws\r\n          }));\r\n        } catch (e) {}\r\n      }\r\n\r\n      function setStatus(text) {\r\n        checkerStatus.textContent = text;\r\n      }\r\n\r\n      function setError(text) {\r\n        checkerError.textContent = text || \"\";\r\n      }\r\n\r\n      function gvizFetchRows(sheetId) {\r\n        const tq = encodeURIComponent(\"select A,B,C,D,E,F,G,H\");\r\n        const cb = \"__lottoWinnerCb_\" + Date.now() + \"_\" + Math.random().toString(16).slice(2);\r\n        const tqx = encodeURIComponent(\"out:json;responseHandler:\" + cb);\r\n        const url = \"https:\/\/docs.google.com\/spreadsheets\/d\/\" + sheetId + \"\/gviz\/tq?gid=0&headers=1&tqx=\" + tqx + \"&tq=\" + tq;\r\n\r\n        return new Promise(function (resolve, reject) {\r\n          const script = document.createElement(\"script\");\r\n          const timeoutId = setTimeout(function () {\r\n            cleanup();\r\n            reject(new Error(\"Request timed out\"));\r\n          }, 15000);\r\n\r\n          function cleanup() {\r\n            clearTimeout(timeoutId);\r\n            try {\r\n              delete window[cb];\r\n            } catch (e) {\r\n              window[cb] = undefined;\r\n            }\r\n            if (script.parentNode) script.parentNode.removeChild(script);\r\n          }\r\n\r\n          window[cb] = function (resp) {\r\n            cleanup();\r\n\r\n            if (!resp || resp.status !== \"ok\" || !resp.table) {\r\n              reject(new Error(\"GViz response not ok\"));\r\n              return;\r\n            }\r\n\r\n            const rows = (resp.table.rows || []).map(function (row) {\r\n              return (row.c || []).map(function (cell) {\r\n                if (!cell) return \"\";\r\n                if (cell.f != null) return cell.f;\r\n                if (cell.v == null) return \"\";\r\n                return cell.v;\r\n              });\r\n            });\r\n\r\n            resolve(rows);\r\n          };\r\n\r\n          script.async = true;\r\n          script.onerror = function () {\r\n            cleanup();\r\n            reject(new Error(\"Failed to load sheet\"));\r\n          };\r\n          script.src = url;\r\n          document.head.appendChild(script);\r\n        });\r\n      }\r\n\r\n      function normalizeDrawRows(rows, year) {\r\n        const draws = [];\r\n        const seen = {};\r\n\r\n        for (let i = 0; i < rows.length; i++) {\r\n          const row = rows[i] || [];\r\n          const rawDrawId = String(row[0] == null ? \"\" : row[0]).trim();\r\n          if (!\/^\\d+$\/.test(rawDrawId)) continue;\r\n\r\n          const drawId = Number(rawDrawId);\r\n          const main = [row[2], row[3], row[4], row[5], row[6], row[7]]\r\n            .map(function (value) {\r\n              return Number(String(value == null ? \"\" : value).trim());\r\n            })\r\n            .filter(function (num) {\r\n              return Number.isFinite(num) && num >= 1 && num <= 49;\r\n            })\r\n            .sort(function (a, b) {\r\n              return a - b;\r\n            });\r\n\r\n          if (main.length !== 6 || seen[drawId]) continue;\r\n          seen[drawId] = true;\r\n\r\n          draws.push({\r\n            year: Number(year),\r\n            drawId: drawId,\r\n            date: String(row[1] == null ? \"\" : row[1]).trim(),\r\n            main: main\r\n          });\r\n        }\r\n\r\n        return draws;\r\n      }\r\n\r\n      async function loadYearDraws(year) {\r\n        if (yearDrawCache[year]) return yearDrawCache[year];\r\n\r\n        const cached = readYearCache(year);\r\n        if (cached) {\r\n          yearDrawCache[year] = cached;\r\n          return cached;\r\n        }\r\n\r\n        const rows = await gvizFetchRows(SHEETS[year]);\r\n        const yearDraws = normalizeDrawRows(rows, year);\r\n        yearDrawCache[year] = yearDraws;\r\n        writeYearCache(year, yearDraws);\r\n        return yearDraws;\r\n      }\r\n\r\n      async function loadAllDraws() {\r\n        const years = Object.keys(SHEETS).sort(function (a, b) {\r\n          return Number(a) - Number(b);\r\n        });\r\n        const grouped = new Array(years.length);\r\n        let cursor = 0;\r\n\r\n        async function worker() {\r\n          while (cursor < years.length) {\r\n            const index = cursor++;\r\n            const year = years[index];\r\n            grouped[index] = await loadYearDraws(year);\r\n          }\r\n        }\r\n\r\n        const workers = [];\r\n        for (let i = 0; i < Math.min(LOAD_CONCURRENCY, years.length); i++) {\r\n          workers.push(worker());\r\n        }\r\n        await Promise.all(workers);\r\n\r\n        const out = [];\r\n        const seen = {};\r\n        for (let i = 0; i < grouped.length; i++) {\r\n          const draws = grouped[i] || [];\r\n          for (let j = 0; j < draws.length; j++) {\r\n            const draw = draws[j];\r\n            const key = String(draw.year) + \"-\" + String(draw.drawId);\r\n            if (seen[key]) continue;\r\n            seen[key] = true;\r\n            out.push(draw);\r\n          }\r\n        }\r\n\r\n        return out;\r\n      }\r\n\r\n      function getTier(matchCount) {\r\n        if (matchCount === 6) return \"6\";\r\n        if (matchCount === 5) return \"5\";\r\n        if (matchCount === 4) return \"4\";\r\n        if (matchCount === 3) return \"3\";\r\n        return \"\";\r\n      }\r\n\r\n      function renderBall(num, classes) {\r\n        return '<span class=\"ball ' + classes + '\">' + num + '<\/span>';\r\n      }\r\n\r\n      function renderSummary(results, ticket) {\r\n        if (!results.length) {\r\n          summaryBox.innerHTML =\r\n            '<div class=\"summary-box\">' +\r\n              '<h3>No Winning Draws Found<\/h3>' +\r\n              '<p>Your numbers ' + ticket.join(\", \") + ' do not produce a recorded win in the stored Lotto Greece draws.<\/p>' +\r\n            '<\/div>';\r\n          return;\r\n        }\r\n\r\n        const topTier = results[0].tier;\r\n        summaryBox.innerHTML =\r\n          '<div class=\"summary-box\">' +\r\n            '<h3>Winning Matches Found<\/h3>' +\r\n            '<p>Your ticket ' + ticket.join(\", \") +\r\n            ' produced <b>' + results.length + '<\/b> winning result(s). Best category: <b>' + topTier + '<\/b>.<\/p>' +\r\n          '<\/div>';\r\n      }\r\n\r\n      function renderResults(results) {\r\n        if (!results.length) {\r\n          resultsList.innerHTML = '<div class=\"empty-state\">No stored draw matches this ticket as a winning combination.<\/div>';\r\n          return;\r\n        }\r\n\r\n        resultsList.innerHTML = results.map(function (result) {\r\n          const matchedSet = {};\r\n          result.matches.forEach(function (n) { matchedSet[n] = true; });\r\n\r\n          const mainBalls = result.draw.main.map(function (n) {\r\n            return renderBall(n, matchedSet[n] ? \"match\" : \"\");\r\n          }).join(\"\");\r\n\r\n          return (\r\n            '<div class=\"result-item\">' +\r\n              '<div class=\"result-head\">' +\r\n                '<div class=\"result-draw\">Draw ' + result.draw.drawId + (result.draw.date ? (\" \u2022 \" + result.draw.date) : \"\") + '<\/div>' +\r\n                '<div class=\"result-tier\">' + result.tier + '<\/div>' +\r\n              '<\/div>' +\r\n              '<div class=\"ball-row\">' + mainBalls + '<\/div>' +\r\n              '<div class=\"result-meta\">' + result.matchCount + ' numbers matched<\/div>' +\r\n            '<\/div>'\r\n          );\r\n        }).join(\"\");\r\n      }\r\n\r\n      function clearResults() {\r\n        setError(\"\");\r\n        summaryBox.innerHTML = \"\";\r\n        resultsList.innerHTML = \"\";\r\n      }\r\n\r\n      function validateTicket() {\r\n        const nums = inputEls.map(function (el) {\r\n          return Number(String(el.value || \"\").trim());\r\n        });\r\n\r\n        if (nums.some(function (n) { return !Number.isFinite(n); })) {\r\n          throw new Error(\"Enter all 6 Lotto numbers.\");\r\n        }\r\n        if (nums.some(function (n) { return n < 1 || n > 49; })) {\r\n          throw new Error(\"Numbers must be between 1 and 49.\");\r\n        }\r\n\r\n        const unique = Array.from(new Set(nums));\r\n        if (unique.length !== 6) {\r\n          throw new Error(\"Numbers must be unique.\");\r\n        }\r\n\r\n        unique.sort(function (a, b) { return a - b; });\r\n        return unique;\r\n      }\r\n\r\n      function checkTicket() {\r\n        clearResults();\r\n\r\n        if (!allDraws.length) {\r\n          setError(\"Draw data is not loaded yet. Please wait.\");\r\n          return;\r\n        }\r\n\r\n        let ticket;\r\n        try {\r\n          ticket = validateTicket();\r\n        } catch (err) {\r\n          setError(err.message || \"Invalid ticket.\");\r\n          return;\r\n        }\r\n\r\n        const ticketSet = {};\r\n        ticket.forEach(function (n) { ticketSet[n] = true; });\r\n\r\n        const results = allDraws.map(function (draw) {\r\n          const matches = draw.main.filter(function (n) {\r\n            return !!ticketSet[n];\r\n          });\r\n          const matchCount = matches.length;\r\n          const tier = getTier(matchCount);\r\n\r\n          return {\r\n            draw: draw,\r\n            matches: matches,\r\n            matchCount: matchCount,\r\n            tier: tier\r\n          };\r\n        }).filter(function (result) {\r\n          return !!result.tier;\r\n        }).sort(function (a, b) {\r\n          const order = { \"6\": 4, \"5\": 3, \"4\": 2, \"3\": 1 };\r\n          const oa = order[a.tier] || 0;\r\n          const ob = order[b.tier] || 0;\r\n          if (ob !== oa) return ob - oa;\r\n          return b.draw.drawId - a.draw.drawId;\r\n        });\r\n\r\n        renderSummary(results, ticket);\r\n        renderResults(results);\r\n      }\r\n\r\n      function clearInputs() {\r\n        inputEls.forEach(function (el) { el.value = \"\"; });\r\n        clearResults();\r\n        setError(\"\");\r\n      }\r\n\r\n      async function init() {\r\n        checkBtn.disabled = true;\r\n        clearBtn.disabled = true;\r\n        try {\r\n          allDraws = await loadAllDraws();\r\n          if (!allDraws.length) {\r\n            throw new Error(\"No draw data found.\");\r\n          }\r\n          setStatus(\"Loaded \" + allDraws.length + \" stored draws. Enter your numbers to check for past wins.\");\r\n        } catch (err) {\r\n          setStatus(\"\");\r\n          setError(\"Unable to load Lotto draw history.\");\r\n          return;\r\n        }\r\n\r\n        checkBtn.disabled = false;\r\n        clearBtn.disabled = false;\r\n        checkBtn.addEventListener(\"click\", checkTicket);\r\n        clearBtn.addEventListener(\"click\", clearInputs);\r\n        inputEls.forEach(function (el) {\r\n          el.addEventListener(\"keypress\", function (e) {\r\n            if (e.key === \"Enter\") checkTicket();\r\n          });\r\n        });\r\n      }\r\n\r\n      init();\r\n    })();\r\n  <\/script>\r\n<\/body>\r\n<\/html>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b3613c8 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"b3613c8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-df47507 elementor-widget elementor-widget-html\" data-id=\"df47507\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- \ud83c\udf9f\ufe0f Previous LOTTO Draws -->\r\n<h2 style=\"text-align:center; margin-bottom:20px;\">\ud83d\udcdc Previous LOTTO Draws<\/h2>\r\n\r\n<div id=\"previousDraws\" style=\"text-align:center;\">\r\n  Loading previous draws...\r\n<\/div>\r\n\r\n<script>\r\n(async function(){\r\n  const container = document.getElementById(\"previousDraws\");\r\n  const gameId = 5103;\r\n\r\n  \/\/ Fetch last 6 draws (1 latest + 5 previous)\r\n  const endpoint = `https:\/\/api.opap.gr\/draws\/v3.0\/${gameId}\/last\/6`;\r\n\r\n  try {\r\n    const resp = await fetch(endpoint);\r\n    if (!resp.ok) throw new Error(\"HTTP \" + resp.status);\r\n    const data = await resp.json();\r\n\r\n    \/\/ Remove latest \u2192 keep only 5 previous\r\n    const previous = data.slice(1);\r\n\r\n    let html = \"\";\r\n\r\n    previous.forEach(draw => {\r\n      let numbers = draw.winningNumbers?.list || [];\r\n\r\n      \/\/ Sort numbers\r\n      numbers = numbers.map(Number).sort((a,b)=>a-b);\r\n\r\n      const balls = numbers.map(n => `\r\n        <span style=\"\r\n          display:inline-block;\r\n          background:#fff;\r\n          color:#000;\r\n          border-radius:50%;\r\n          width:40px;\r\n          height:40px;\r\n          line-height:40px;\r\n          text-align:center;\r\n          font-weight:bold;\r\n          margin:4px;\r\n        \">${n}<\/span>\r\n      `).join(\"\");\r\n\r\n      const date = new Date(draw.drawTime);\r\n      const label = `${date.getDate()}\/${date.getMonth()+1}\/${date.getFullYear()}`;\r\n\r\n      html += `\r\n        <div style=\"margin-bottom:15px;\">\r\n          <div style=\"font-size:13px; opacity:0.7; margin-bottom:5px;\">\r\n            Draw ${draw.drawId} \u2014 ${label}\r\n          <\/div>\r\n          ${balls}\r\n        <\/div>\r\n      `;\r\n    });\r\n\r\n    container.innerHTML = html;\r\n\r\n  } catch (err) {\r\n    console.error(\"Previous draws error:\", err);\r\n    container.innerHTML = `<p>Unable to load previous draws.<\/p>`;\r\n  }\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4feaf2c elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"4feaf2c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-82bf78a elementor-widget elementor-widget-html\" data-id=\"82bf78a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- NUMBER PATTERNS -->\r\n<section class=\"llw-section\">\r\n  <div class=\"llw-container\">\r\n    <h2 class=\"llw-heading\" style=\"text-align:center;\">Number Patterns<\/h2>\r\n\r\n    <div class=\"llw-grid\">\r\n      \r\n      <div class=\"llw-card\">\r\n        <h3>\ud83d\udd17 Common Pairs<\/h3>\r\n        <div id=\"pairs\">Loading...<\/div>\r\n      <\/div>\r\n\r\n      <div class=\"llw-card\">\r\n        <h3>\ud83d\udd3a Common Triplets<\/h3>\r\n        <div id=\"triplets\">Loading...<\/div>\r\n      <\/div>\r\n\r\n      <div class=\"llw-card\">\r\n        <h3>\u2795 Consecutive Numbers<\/h3>\r\n        <div id=\"consecutive\">Loading...<\/div>\r\n      <\/div>\r\n\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<script>\r\nconst sheetURLs_patterns = [\r\n  \"https:\/\/docs.google.com\/spreadsheets\/d\/1oLa-qbfBYeNOvf95yum5A5n0DzJU97WG\/export?format=csv\",\r\n  \"https:\/\/docs.google.com\/spreadsheets\/d\/1bENFZ5p0a1h67i1_p450m7gWOMwN2w11\/export?format=csv\"\r\n];\r\n\r\nfunction extractNumbers(row) {\r\n  return row.match(\/\\d+\/g)?.map(n => parseInt(n)) || [];\r\n}\r\n\r\nasync function fetchPatternData() {\r\n  let draws = [];\r\n\r\n  for (let url of sheetURLs_patterns) {\r\n    const res = await fetch(url);\r\n    const text = await res.text();\r\n    const rows = text.split(\"\\n\");\r\n\r\n    rows.forEach(row => {\r\n      const nums = extractNumbers(row).filter(n => n >= 1 && n <= 49);\r\n      if (nums.length >= 5) {\r\n        draws.push(nums.sort((a,b)=>a-b));\r\n      }\r\n    });\r\n  }\r\n\r\n  calculatePatterns(draws);\r\n}\r\n\r\nfunction calculatePatterns(draws) {\r\n  let pairFreq = {};\r\n  let tripletFreq = {};\r\n  let consecutiveCount = 0;\r\n\r\n  draws.forEach(draw => {\r\n\r\n    \/\/ Pairs\r\n    for (let i = 0; i < draw.length; i++) {\r\n      for (let j = i+1; j < draw.length; j++) {\r\n        let key = `${draw[i]}-${draw[j]}`;\r\n        pairFreq[key] = (pairFreq[key] || 0) + 1;\r\n      }\r\n    }\r\n\r\n    \/\/ Triplets\r\n    for (let i = 0; i < draw.length; i++) {\r\n      for (let j = i+1; j < draw.length; j++) {\r\n        for (let k = j+1; k < draw.length; k++) {\r\n          let key = `${draw[i]}-${draw[j]}-${draw[k]}`;\r\n          tripletFreq[key] = (tripletFreq[key] || 0) + 1;\r\n        }\r\n      }\r\n    }\r\n\r\n    \/\/ Consecutive\r\n    for (let i = 0; i < draw.length - 1; i++) {\r\n      if (draw[i+1] === draw[i] + 1) {\r\n        consecutiveCount++;\r\n      }\r\n    }\r\n\r\n  });\r\n\r\n  \/\/ Sort + top 5\r\n  const topPairs = Object.entries(pairFreq).sort((a,b)=>b[1]-a[1]).slice(0,5);\r\n  const topTriplets = Object.entries(tripletFreq).sort((a,b)=>b[1]-a[1]).slice(0,5);\r\n\r\n  document.getElementById(\"pairs\").innerHTML = renderPatterns(topPairs);\r\n  document.getElementById(\"triplets\").innerHTML = renderPatterns(topTriplets);\r\n  document.getElementById(\"consecutive\").innerHTML =\r\n    `<strong>${consecutiveCount}<\/strong> consecutive appearances found`;\r\n}\r\n\r\nfunction renderPatterns(arr){\r\n  return arr.map(item => {\r\n    const nums = item[0].split(\"-\");\r\n    return `\r\n      <div style=\"margin-bottom:8px;\">\r\n        ${nums.map(n => `\r\n          <span style=\"\r\n            display:inline-block;\r\n            background:#fff;\r\n            color:#000;\r\n            border-radius:50%;\r\n            width:30px;\r\n            height:30px;\r\n            line-height:30px;\r\n            text-align:center;\r\n            font-weight:bold;\r\n            margin:2px;\r\n          \">${n}<\/span>\r\n        `).join(\"\")}\r\n        <span style=\"margin-left:8px; opacity:0.7;\">(${item[1]}x)<\/span>\r\n      <\/div>\r\n    `;\r\n  }).join(\"\");\r\n}\r\n\r\nfetchPatternData();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fe4f408 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"fe4f408\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e95764c elementor-widget elementor-widget-html\" data-id=\"e95764c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n.lw-infographic {\r\n  font-family: Arial, sans-serif;\r\n  background: #f9fafb;\r\n  border-radius: 12px;\r\n  padding: 20px;\r\n  box-shadow: 0 4px 12px rgba(0,0,0,0.08);\r\n  max-width: 800px;\r\n  margin: 20px auto;\r\n}\r\n\r\n.lw-title {\r\n  text-align: center;\r\n  font-size: 24px;\r\n  font-weight: bold;\r\n  margin-bottom: 20px;\r\n  color: #000;\r\n}\r\n\r\n.lw-columns {\r\n  display: flex;\r\n  gap: 20px;\r\n  flex-wrap: wrap;\r\n}\r\n\r\n.lw-box {\r\n  flex: 1;\r\n  min-width: 250px;\r\n  border-radius: 10px;\r\n  padding: 15px;\r\n  color: #fff;\r\n  text-align: center;\r\n}\r\n\r\n\/* \u2705 FIXED HEADING SIZE *\/\r\n.lw-box h3 {\r\n  font-size: 16px;\r\n  font-weight: bold;\r\n  margin-bottom: 10px;\r\n  color: #fff;\r\n}\r\n\r\n.lw-hot {\r\n  background: linear-gradient(135deg, #ff4d4d, #cc0000);\r\n}\r\n\r\n.lw-cold {\r\n  background: linear-gradient(135deg, #4da6ff, #003366);\r\n}\r\n\r\n.lw-number {\r\n  display: flex;\r\n  justify-content: space-between;\r\n  align-items: center;\r\n  padding: 6px 8px;\r\n  margin-bottom: 4px;\r\n  border-radius: 6px;\r\n  background: rgba(255,255,255,0.1);\r\n}\r\n\r\n.lw-number span {\r\n  color: #fff;\r\n}\r\n\r\n.lw-search {\r\n  margin-top: 25px;\r\n  text-align: center;\r\n}\r\n\r\n.lw-search input {\r\n  padding:10px;\r\n  border-radius:8px;\r\n  border:1px solid #ccc;\r\n  width:180px;\r\n  color:#000;\r\n}\r\n\r\n.lw-search button {\r\n  padding:10px 15px;\r\n  margin-left:10px;\r\n  border:none;\r\n  border-radius:8px;\r\n  background:#000;\r\n  color:#fff;\r\n  cursor:pointer;\r\n}\r\n\r\n.lw-result {\r\n  margin-top:15px;\r\n  color:#000;\r\n  font-weight:bold;\r\n}\r\n\r\n.lw-note {\r\n  margin-top: 15px;\r\n  font-size: 13px;\r\n  color: #000;\r\n  text-align: center;\r\n}\r\n<\/style>\r\n\r\n<div class=\"lw-infographic\">\r\n  <div class=\"lw-title\">\ud83d\udd25 Hot & \u2744\ufe0f Cold Lotto Numbers<\/div>\r\n\r\n  <div class=\"lw-columns\">\r\n    <div class=\"lw-box lw-hot\">\r\n      <h3>\ud83d\udd25 Hot Numbers<\/h3>\r\n      <div id=\"lw-hot-list\">Loading...<\/div>\r\n    <\/div>\r\n\r\n    <div class=\"lw-box lw-cold\">\r\n      <h3>\u2744\ufe0f Cold Numbers<\/h3>\r\n      <div id=\"lw-cold-list\">Loading...<\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"lw-search\">\r\n    <input type=\"number\" id=\"lw-search-input\" placeholder=\"Search number (1\u201349)\" min=\"1\" max=\"49\">\r\n    <button id=\"lw-search-btn\">Search<\/button>\r\n    <div id=\"lw-search-result\" class=\"lw-result\"><\/div>\r\n  <\/div>\r\n\r\n  <div class=\"lw-note\">\r\n    These statistics are based on past results and do not influence future lottery draws.\r\n  <\/div>\r\n<\/div>\r\n\r\n<script>\r\nconst sheetURLs = [\r\n  \"https:\/\/docs.google.com\/spreadsheets\/d\/1oLa-qbfBYeNOvf95yum5A5n0DzJU97WG\/export?format=csv\",\r\n  \"https:\/\/docs.google.com\/spreadsheets\/d\/1bENFZ5p0a1h67i1_p450m7gWOMwN2w11\/export?format=csv\"\r\n];\r\n\r\nlet globalStats = {};\r\nlet totalDraws = 0;\r\n\r\nfunction extractNumbers(row) {\r\n  return row.match(\/\\d+\/g)?.map(n => parseInt(n)) || [];\r\n}\r\n\r\nasync function fetchData() {\r\n  let freq = {};\r\n  let lastSeen = {};\r\n\r\n  for (let i = 1; i <= 49; i++) {\r\n    freq[i] = 0;\r\n    lastSeen[i] = -1;\r\n  }\r\n\r\n  let allDraws = [];\r\n\r\n  for (let url of sheetURLs) {\r\n    const res = await fetch(url);\r\n    const text = await res.text();\r\n    const rows = text.split(\"\\n\");\r\n\r\n    rows.forEach(row => {\r\n      const nums = extractNumbers(row).filter(n => n >= 1 && n <= 49);\r\n\r\n      if (nums.length >= 6) {\r\n        allDraws.push(nums.slice(0,6));\r\n      }\r\n    });\r\n  }\r\n\r\n  allDraws.forEach((draw, index) => {\r\n    draw.forEach(n => {\r\n      freq[n]++;\r\n      lastSeen[n] = index;\r\n    });\r\n  });\r\n\r\n  totalDraws = allDraws.length;\r\n\r\n  let stats = Object.keys(freq).map(n => ({\r\n    num: parseInt(n),\r\n    count: freq[n],\r\n    gap: totalDraws - lastSeen[n]\r\n  }));\r\n\r\n  stats.forEach(s => globalStats[s.num] = s);\r\n\r\n  stats.sort((a,b)=>b.count - a.count);\r\n\r\n  const hot = stats.slice(0,10);\r\n  const cold = [...stats].sort((a,b)=>b.gap - a.gap).slice(0,10);\r\n\r\n  renderHotCold(hot, cold);\r\n}\r\n\r\nfunction renderHotCold(hot, cold) {\r\n  const maxHot = hot[0].count;\r\n  const maxCold = cold[0].gap;\r\n\r\n  document.getElementById(\"lw-hot-list\").innerHTML = hot.map(item => {\r\n    const intensity = item.count \/ maxHot;\r\n\r\n    return `\r\n      <div class=\"lw-number\" style=\"background: rgba(255,255,255,${0.1 + intensity * 0.4});\">\r\n        <span><strong>${item.num}<\/strong><\/span>\r\n        <span>${item.count}x | ${item.gap} draws ago<\/span>\r\n      <\/div>\r\n    `;\r\n  }).join(\"\");\r\n\r\n  document.getElementById(\"lw-cold-list\").innerHTML = cold.map(item => {\r\n    const intensity = item.gap \/ maxCold;\r\n\r\n    return `\r\n      <div class=\"lw-number\" style=\"background: rgba(255,255,255,${0.1 + intensity * 0.4});\">\r\n        <span><strong>${item.num}<\/strong><\/span>\r\n        <span>${item.count}x | ${item.gap} draws ago<\/span>\r\n      <\/div>\r\n    `;\r\n  }).join(\"\");\r\n}\r\n\r\nfunction searchNumber() {\r\n  const num = parseInt(document.getElementById(\"lw-search-input\").value);\r\n  const resultBox = document.getElementById(\"lw-search-result\");\r\n\r\n  if (!num || num < 1 || num > 49) {\r\n    resultBox.innerHTML = \"Enter a valid number (1\u201349)\";\r\n    return;\r\n  }\r\n\r\n  const data = globalStats[num];\r\n\r\n  if (!data || data.count === 0) {\r\n    resultBox.innerHTML = `Number ${num} has not appeared yet.`;\r\n    return;\r\n  }\r\n\r\n  resultBox.innerHTML = `\r\n    Number <b>${num}<\/b> appeared <b>${data.count}<\/b> times<br>\r\n    Last seen <b>${data.gap}<\/b> draws ago\r\n  `;\r\n}\r\n\r\ndocument.getElementById(\"lw-search-btn\").addEventListener(\"click\", searchNumber);\r\n\r\ndocument.getElementById(\"lw-search-input\").addEventListener(\"keypress\", function(e) {\r\n  if (e.key === \"Enter\") searchNumber();\r\n});\r\n\r\nfetchData();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6ed4401 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"6ed4401\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4041d41 elementor-widget elementor-widget-html\" data-id=\"4041d41\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- RESULTS ANALYSIS (VISUAL) -->\r\n<section class=\"llw-section llw-alt\">\r\n  <div class=\"llw-container\">\r\n    <h2 class=\"llw-heading\" style=\"text-align:center;\">Results Analysis<\/h2>\r\n\r\n    <div class=\"llw-grid\">\r\n      <div class=\"llw-card\">\r\n        <h3>\u2696\ufe0f Odd vs Even<\/h3>\r\n        <canvas id=\"oddEvenChart\"><\/canvas>\r\n      <\/div>\r\n\r\n      <div class=\"llw-card\">\r\n        <h3>\ud83d\udcc8 High vs Low<\/h3>\r\n        <canvas id=\"highLowChart\"><\/canvas>\r\n      <\/div>\r\n\r\n      <div class=\"llw-card\">\r\n        <h3>\ud83d\udd22 Number Distribution<\/h3>\r\n        <canvas id=\"rangeChart\"><\/canvas>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- Chart.js -->\r\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/chart.js\"><\/script>\r\n\r\n<style>\r\n\/* CENTER ALIGNMENT FIX *\/\r\n.llw-card {\r\n  text-align: center;\r\n}\r\n\r\n.llw-card h3 {\r\n  text-align: center;\r\n  margin-bottom: 15px;\r\n}\r\n\r\n.llw-card canvas {\r\n  display: block;\r\n  margin: 0 auto;\r\n  max-width: 100%;\r\n}\r\n<\/style>\r\n\r\n<script>\r\nconst sheetURLs_analysis = [\r\n  \"https:\/\/docs.google.com\/spreadsheets\/d\/1oLa-qbfBYeNOvf95yum5A5n0DzJU97WG\/export?format=csv\",\r\n  \"https:\/\/docs.google.com\/spreadsheets\/d\/1bENFZ5p0a1h67i1_p450m7gWOMwN2w11\/export?format=csv\"\r\n];\r\n\r\nfunction extractNumbers(row) {\r\n  return row.match(\/\\d+\/g)?.map(n => parseInt(n)) || [];\r\n}\r\n\r\nasync function fetchAnalysisData() {\r\n  let draws = [];\r\n\r\n  for (let url of sheetURLs_analysis) {\r\n    const res = await fetch(url);\r\n    const text = await res.text();\r\n    const rows = text.split(\"\\n\");\r\n\r\n    rows.forEach(row => {\r\n      const nums = extractNumbers(row).filter(n => n >= 1 && n <= 49);\r\n      if (nums.length >= 5) draws.push(nums);\r\n    });\r\n  }\r\n\r\n  calculateAnalysis(draws);\r\n}\r\n\r\nfunction calculateAnalysis(draws) {\r\n  let odd = 0, even = 0;\r\n  let low = 0, high = 0;\r\n\r\n  let ranges = [0,0,0,0,0];\r\n\r\n  draws.forEach(draw => {\r\n    draw.forEach(n => {\r\n      if (n % 2 === 0) even++; else odd++;\r\n      if (n <= 24) low++; else high++;\r\n\r\n      if (n <= 10) ranges[0]++;\r\n      else if (n <= 20) ranges[1]++;\r\n      else if (n <= 30) ranges[2]++;\r\n      else if (n <= 40) ranges[3]++;\r\n      else ranges[4]++;\r\n    });\r\n  });\r\n\r\n  renderCharts(odd, even, low, high, ranges);\r\n}\r\n\r\nfunction renderCharts(odd, even, low, high, ranges){\r\n\r\n  new Chart(document.getElementById('oddEvenChart'), {\r\n    type: 'bar',\r\n    data: {\r\n      labels: ['Odd', 'Even'],\r\n      datasets: [{\r\n        data: [odd, even]\r\n      }]\r\n    },\r\n    options: {\r\n      responsive: true,\r\n      plugins: { legend: { display: false } }\r\n    }\r\n  });\r\n\r\n  new Chart(document.getElementById('highLowChart'), {\r\n    type: 'bar',\r\n    data: {\r\n      labels: ['Low (1-24)', 'High (25-49)'],\r\n      datasets: [{\r\n        data: [low, high]\r\n      }]\r\n    },\r\n    options: {\r\n      responsive: true,\r\n      plugins: { legend: { display: false } }\r\n    }\r\n  });\r\n\r\n  new Chart(document.getElementById('rangeChart'), {\r\n    type: 'bar',\r\n    data: {\r\n      labels: ['1-10','11-20','21-30','31-40','41-49'],\r\n      datasets: [{\r\n        data: ranges\r\n      }]\r\n    },\r\n    options: {\r\n      responsive: true,\r\n      plugins: { legend: { display: false } }\r\n    }\r\n  });\r\n\r\n}\r\n\r\nfetchAnalysisData();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-397b45a elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"397b45a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2acf354 elementor-widget elementor-widget-html\" data-id=\"2acf354\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- YEARLY NUMBER STATS -->\r\n<section class=\"llw-section llw-alt\">\r\n  <div class=\"llw-container\">\r\n    <h2 class=\"llw-heading\" style=\"text-align:center;\">\ud83d\udcca Yearly Number Trends<\/h2>\r\n\r\n    <div class=\"llw-grid\">\r\n\r\n      <!-- 2025 -->\r\n      <div class=\"llw-card\">\r\n        <h3>\ud83d\udd25 Top Numbers (2025)<\/h3>\r\n        <div id=\"year2025\">Loading...<\/div>\r\n      <\/div>\r\n\r\n      <!-- 2026 -->\r\n      <div class=\"llw-card\">\r\n        <h3>\ud83d\udd25 Top Numbers (2026)<\/h3>\r\n        <div id=\"year2026\">Loading...<\/div>\r\n      <\/div>\r\n\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<script>\r\nconst sheets = {\r\n  \"2025\": \"https:\/\/docs.google.com\/spreadsheets\/d\/1oLa-qbfBYeNOvf95yum5A5n0DzJU97WG\/export?format=csv\",\r\n  \"2026\": \"https:\/\/docs.google.com\/spreadsheets\/d\/1bENFZ5p0a1h67i1_p450m7gWOMwN2w11\/export?format=csv\"\r\n};\r\n\r\nfunction extractNumbers(row) {\r\n  return row.match(\/\\d+\/g)?.map(n => parseInt(n)) || [];\r\n}\r\n\r\nasync function fetchYearlyStats() {\r\n  for (let year in sheets) {\r\n    const res = await fetch(sheets[year]);\r\n    const text = await res.text();\r\n    const rows = text.split(\"\\n\");\r\n\r\n    let freq = {};\r\n\r\n    rows.forEach(row => {\r\n      const numbers = extractNumbers(row).filter(n => n >= 1 && n <= 49);\r\n\r\n      numbers.forEach(n => {\r\n        freq[n] = (freq[n] || 0) + 1;\r\n      });\r\n    });\r\n\r\n    \/\/ sort + take top 10\r\n    const top = Object.entries(freq)\r\n      .sort((a,b) => b[1] - a[1])\r\n      .slice(0,10);\r\n\r\n    document.getElementById(\"year\" + year).innerHTML =\r\n      top.map(item => `\r\n        <div style=\"\r\n          display:inline-block;\r\n          text-align:center;\r\n          margin:6px;\r\n        \">\r\n          <div style=\"\r\n            background:#fff;\r\n            color:#000;\r\n            border-radius:50%;\r\n            width:40px;\r\n            height:40px;\r\n            line-height:40px;\r\n            font-weight:bold;\r\n            margin:auto;\r\n          \">${item[0]}<\/div>\r\n          <div style=\"font-size:12px; margin-top:4px;\">\r\n            ${item[1]}x\r\n          <\/div>\r\n        <\/div>\r\n      `).join(\"\");\r\n  }\r\n}\r\n\r\nfetchYearlyStats();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b470611 e-flex e-con-boxed e-con e-parent\" data-id=\"b470611\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b28f1e4 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"b28f1e4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ebe37a5 elementor-widget elementor-widget-html\" data-id=\"ebe37a5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n  <meta charset=\"UTF-8\">\r\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n  <title>Greece LOTTO - Random Numbers & Next Draw<\/title>\r\n<\/head>\r\n<body style=\"font-family:Arial,sans-serif;background:#111;color:white;margin:0;padding:20px;text-align:center;\">\r\n\r\n  <header style=\"padding:20px 0;\">\r\n    <h1 style=\"margin:0 0 20px 0;\">\ud83c\udfab\ufe0f Greece LOTTO<\/h1>\r\n  <\/header>\r\n\r\n  <!-- Countdown Timer -->\r\n  <div style=\"background:#0b0b0b;padding:20px;border-radius:12px;margin-bottom:40px;\">\r\n    <div style=\"font-size:1.2rem;color:#ddd;\">\r\n      The draw takes place every Wednesday and Saturday at 20:00\r\n    <\/div>\r\n    <div id=\"countdown\" style=\"font-size:1.8rem;color:#ffcc00;font-weight:bold;margin-top:10px;\"><\/div>\r\n  <\/div>\r\n\r\n  <!-- Generator -->\r\n  <div style=\"display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;max-width:800px;margin:0 auto;\">\r\n    <h2 style=\"margin:0 0 20px 0;\">Random Number Selection<\/h2>\r\n\r\n    <button id=\"generateBtn\" onclick=\"generateLotto()\" style=\"background:#007bff;color:white;border:none;padding:15px 35px;border-radius:12px;font-size:18px;cursor:pointer;position:relative;overflow:hidden;display:block;margin:20px auto;box-shadow:0 0 15px rgba(0,123,255,0.6);transition:all 0.3s;\">\r\n      Generate Numbers\r\n    <\/button>\r\n\r\n    <div id=\"numbers\" style=\"display:flex;justify-content:center;gap:10px;margin-top:30px;flex-wrap:wrap;\"><\/div>\r\n  <\/div>\r\n\r\n  <footer style=\"text-align:center;padding:20px 0;color:#bbb;font-size:0.9rem;\">\r\n  <\/footer>\r\n\r\n  <script>\r\n    \/\/ Countdown Timer\r\n    function getNextDrawDate() {\r\n      const now = new Date();\r\n      const drawDays = [3, 6]; \/\/ Wednesday=3, Saturday=6\r\n      let nextDraw = new Date(now);\r\n\r\n      while (\r\n        !drawDays.includes(nextDraw.getDay()) ||\r\n        (nextDraw.getDay() === now.getDay() &&\r\n         (now.getHours() > 20 || (now.getHours() === 20 && now.getMinutes() >= 0)))\r\n      ) {\r\n        nextDraw.setDate(nextDraw.getDate() + 1);\r\n      }\r\n\r\n      nextDraw.setHours(20, 0, 0, 0);\r\n      return nextDraw;\r\n    }\r\n\r\n    function updateCountdown() {\r\n      const countdown = document.getElementById(\"countdown\");\r\n      const now = new Date();\r\n      const drawTime = getNextDrawDate();\r\n      const diff = drawTime - now;\r\n\r\n      if (diff <= 0) {\r\n        countdown.innerHTML = \"The draw starts now!\";\r\n        return;\r\n      }\r\n\r\n      const days = Math.floor(diff \/ (1000 * 60 * 60 * 24));\r\n      const hours = Math.floor((diff \/ (1000 * 60 * 60)) % 24);\r\n      const minutes = Math.floor((diff \/ (1000 * 60)) % 60);\r\n      const seconds = Math.floor((diff \/ 1000) % 60);\r\n\r\n      countdown.innerHTML = `${days}d ${hours}h ${minutes}m ${seconds}s`;\r\n    }\r\n\r\n    setInterval(updateCountdown, 1000);\r\n    updateCountdown();\r\n\r\n    \/\/ Lotto Generator (6 numbers 1\u201349)\r\n    function generateLotto() {\r\n      const container = document.getElementById('numbers');\r\n      container.innerHTML = '';\r\n\r\n      const numbers = [];\r\n      while (numbers.length < 6) {\r\n        const num = Math.floor(Math.random() * 49) + 1;\r\n        if (!numbers.includes(num)) numbers.push(num);\r\n      }\r\n\r\n      numbers.sort((a, b) => a - b);\r\n\r\n      numbers.forEach(n => {\r\n        const ball = document.createElement('div');\r\n        ball.textContent = n;\r\n        ball.setAttribute(\r\n          'style',\r\n          'width:60px;height:60px;border-radius:50%;background:white;color:black;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:bold;box-shadow:0 0 10px rgba(255,255,255,0.4);margin:5px;'\r\n        );\r\n        container.appendChild(ball);\r\n      });\r\n    }\r\n\r\n    \/\/ Button shine effect\r\n    const btn = document.getElementById('generateBtn');\r\n    btn.addEventListener('mouseenter', () => {\r\n      btn.style.boxShadow = '0 0 30px rgba(255,255,255,0.9), 0 0 60px rgba(0,123,255,0.7)';\r\n      btn.style.transform = 'scale(1.05)';\r\n    });\r\n\r\n    btn.addEventListener('mouseleave', () => {\r\n      btn.style.boxShadow = '0 0 15px rgba(0,123,255,0.6)';\r\n      btn.style.transform = 'scale(1)';\r\n    });\r\n\r\n    \/\/ Generate numbers on page load\r\n    generateLotto();\r\n  <\/script>\r\n\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-abd7346 e-flex e-con-boxed e-con e-parent\" data-id=\"abd7346\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3f4d156 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"3f4d156\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7c88381 elementor-widget elementor-widget-heading\" data-id=\"7c88381\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h6 class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/www.allwyn.gr\/el\" target=\"_blank\" rel=\"noopener\">Official draw information and prize structures are published by OPAP, the authorised operator of Lotto Greece.<\/a><\/h6>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2dc558b e-flex e-con-boxed e-con e-parent\" data-id=\"2dc558b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-127148d elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"127148d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2c29dc9 e-flex e-con-boxed e-con e-parent\" data-id=\"2c29dc9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5308cbd elementor-widget elementor-widget-heading\" data-id=\"5308cbd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">\ud83c\udfab How to Play Lotto<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-010dc3b elementor-widget elementor-widget-text-editor\" data-id=\"010dc3b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h6 data-start=\"160\" data-end=\"506\">Lotto is one of the most popular lottery games in Greece, operated by OPAP, and it\u2019s easy to play whether you choose a physical retailer or online platform. To participate, players select <strong data-start=\"348\" data-end=\"374\">6 numbers from 1 to 49<\/strong> on a Lotto ticket. You can either pick your own numbers or use the <strong data-start=\"442\" data-end=\"456\">Quick Pick<\/strong> option, which randomly generates numbers for you.<\/h6><h6 data-start=\"508\" data-end=\"826\">In addition to the main Lotto draw, players can also choose to participate in the <strong data-start=\"590\" data-end=\"599\">Extra<\/strong> game for an additional chance to win. Each Lotto ticket is valid for a single draw unless you choose to play multiple draws in advance. Draws take place <strong data-start=\"753\" data-end=\"775\">three times a week<\/strong>, typically on <strong data-start=\"790\" data-end=\"825\">Wednesday, Saturday, and Sunday<\/strong>.<\/h6><h6 data-start=\"828\" data-end=\"1069\">Tickets must be purchased before the official draw closing time. Once the draw takes place, the winning numbers are announced shortly after. Playing Lotto responsibly is important, and players should always set a budget before participating.<\/h6>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-18b6441 e-flex e-con-boxed e-con e-parent\" data-id=\"18b6441\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-bf015f7 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"bf015f7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c037861 e-flex e-con-boxed e-con e-parent\" data-id=\"c037861\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-40cb3d3 elementor-widget elementor-widget-heading\" data-id=\"40cb3d3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">\ud83c\udfab Lotto Prizes<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2f2b269 elementor-widget elementor-widget-text-editor\" data-id=\"2f2b269\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h6>Lotto Greece is well known for its <strong data-start=\"1132\" data-end=\"1155\">high jackpot prizes<\/strong>, which can reach <strong data-start=\"1173\" data-end=\"1194\">millions of euros<\/strong>, depending on ticket sales and rollovers. The jackpot is won by matching <strong data-start=\"1268\" data-end=\"1285\">all 6 numbers<\/strong>, but there are several prize tiers that allow players to win even if they don\u2019t match all numbers.<\/h6><h6 data-start=\"1386\" data-end=\"1418\">Prizes are awarded for matching:<\/h6><ul data-start=\"1419\" data-end=\"1476\"><li data-start=\"1419\" data-end=\"1440\"><h6 data-start=\"1421\" data-end=\"1440\">6 numbers (Jackpot)<\/h6><\/li><li data-start=\"1441\" data-end=\"1452\"><h6 data-start=\"1443\" data-end=\"1452\">5 numbers<\/h6><\/li><li data-start=\"1453\" data-end=\"1464\"><h6 data-start=\"1455\" data-end=\"1464\">4 numbers<\/h6><\/li><li data-start=\"1465\" data-end=\"1476\"><h6 data-start=\"1467\" data-end=\"1476\">3 numbers<\/h6><\/li><\/ul><h6 data-start=\"1478\" data-end=\"1757\">This tiered prize structure means there are <strong data-start=\"1522\" data-end=\"1545\">many chances to win<\/strong> in every draw. When no one wins the jackpot, the prize rolls over to the next draw, making Lotto even more exciting. The <strong data-start=\"1667\" data-end=\"1676\">Extra<\/strong> game offers additional fixed prizes and increases overall winning opportunities.<\/h6><h6 data-start=\"1759\" data-end=\"1976\">Prize amounts vary depending on the number of winners and total ticket sales. Smaller prizes can usually be claimed directly from OPAP retailers, while larger winnings must be claimed through official OPAP procedures.<\/h6>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2e4fc4c e-flex e-con-boxed e-con e-parent\" data-id=\"2e4fc4c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-700cb56 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"700cb56\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-8a02944 e-flex e-con-boxed e-con e-parent\" data-id=\"8a02944\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-480976d elementor-widget elementor-widget-heading\" data-id=\"480976d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">\ud83c\udfab About Lotto<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-060c1c9 elementor-widget elementor-widget-text-editor\" data-id=\"060c1c9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h6 data-start=\"2003\" data-end=\"2300\">Lotto Greece has been a cornerstone of Greek lottery culture for decades. Operated by <strong data-start=\"2089\" data-end=\"2097\">OPAP<\/strong>, the game is fully regulated and trusted by millions of players nationwide. Its simple rules, frequent draws, and attractive jackpots have made Lotto one of the most played lottery games in the country.<\/h6><h6 data-start=\"2302\" data-end=\"2530\">Beyond entertainment, Lotto contributes to Greek society, as a portion of lottery revenues supports <strong data-start=\"2402\" data-end=\"2442\">sports, culture, and social programs<\/strong>. This makes playing Lotto not only exciting but also beneficial to the wider community.<\/h6><h6 data-start=\"2532\" data-end=\"2769\">The game has evolved over time, offering digital access, improved security, and transparent draw procedures. Whether you are a casual player or a long-time Lotto enthusiast, the game remains easy to understand and accessible to everyone.<\/h6>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-a14bb88 e-flex e-con-boxed e-con e-parent\" data-id=\"a14bb88\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-920d0c0 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"920d0c0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f547800 e-flex e-con-boxed e-con e-parent\" data-id=\"f547800\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f8a3d5a elementor-widget elementor-widget-heading\" data-id=\"f8a3d5a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">\ud83c\udfab Checking Lotto Results and Statistics<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-787cdee elementor-widget elementor-widget-text-editor\" data-id=\"787cdee\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h6 data-start=\"2822\" data-end=\"3115\">Checking Lotto results is quick and simple. Results are published <strong data-start=\"2888\" data-end=\"2919\">immediately after each draw<\/strong> and are available through OPAP\u2019s official channels, lottery websites, and authorized retailers. Players can verify their tickets by matching their selected numbers with the official draw numbers.<\/h6><h6 data-start=\"3117\" data-end=\"3396\">In addition to results, many players enjoy reviewing <strong data-start=\"3170\" data-end=\"3190\">Lotto statistics<\/strong>, such as frequently drawn numbers, hot and cold numbers, and past jackpot trends. While Lotto is a game of chance and every draw is random, statistics can make the experience more engaging and informative.<\/h6><h6 data-start=\"3398\" data-end=\"3656\">Keeping track of past results also helps players confirm winnings and follow jackpot rollovers. For convenience, online platforms often archive previous draws, allowing players to analyze patterns and stay up to date with the latest Lotto Greece information.<\/h6><h6>Many platforms also offer <strong data-start=\"167\" data-end=\"191\">result notifications<\/strong>, email alerts, and mobile updates so players never miss a draw. By following <strong data-start=\"269\" data-end=\"293\">Lotto Greece results<\/strong> through trusted sources, players can quickly confirm winning numbers and prize tiers. Some services allow saved number combinations and automatic result checking, making <strong data-start=\"464\" data-end=\"488\">Lotto Greece results<\/strong> easier to track over time. These tools help players stay consistently informed and review <strong data-start=\"579\" data-end=\"603\">Lotto Greece results<\/strong> without manual searches.<\/h6>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4964bdf e-flex e-con-boxed e-con e-parent\" data-id=\"4964bdf\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d325885 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"d325885\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e3ccada elementor-widget elementor-widget-html\" data-id=\"e3ccada\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- TRUST & INFO SECTIONS -->\r\n<section class=\"llw-section\" style=\"margin-top:40px;\">\r\n  <div class=\"llw-container\" style=\"max-width:800px; margin:0 auto; text-align:left;\">\r\n\r\n    <!-- 9. Disclaimer -->\r\n    <div style=\"\r\n      background:#fff3cd;\r\n      color:#000;\r\n      padding:15px 20px;\r\n      border-left:5px solid #ffc107;\r\n      border-radius:8px;\r\n      margin-bottom:20px;\r\n    \">\r\n      <h3 style=\"margin-top:0; color:#000;\">\ud83e\uddf1 Disclaimer<\/h3>\r\n      <p style=\"margin:0; color:#000;\">\r\n        LLW \u2013 Lottery Lotto Win is an informational platform only. We do not sell lottery tickets, promote gambling, or encourage betting. All lottery and sports content is provided for news, informational, and entertainment purposes. Always play responsibly and follow the laws of your country.\r\n      <\/p>\r\n    <\/div>\r\n\r\n    <!-- 10. FAQ -->\r\n    <div style=\"\r\n      background:#e2e3e5;\r\n      color:#000;\r\n      padding:15px 20px;\r\n      border-radius:8px;\r\n      margin-bottom:20px;\r\n    \">\r\n      <h3 style=\"margin-top:0; color:#000;\">\u2753 FAQ<\/h3>\r\n      <p style=\"color:#000;\"><b>Q: Can past results predict future numbers?<\/b><br>\r\n      A: No. Each draw is independent, and past results do not influence future outcomes. Lottery is purely chance-based.<\/p>\r\n\r\n      <p style=\"color:#000;\"><b>Q: What are the odds of winning?<\/b><br>\r\n      A: Odds depend on the lottery type and number of players. In most 6\/49 lotteries, the odds of hitting the jackpot are extremely low, typically around 1 in 13.9 million.<\/p>\r\n    <\/div>\r\n\r\n    <!-- 4. Responsible Play Section -->\r\n    <div style=\"\r\n      background:#f8d7da;\r\n      color:#000;\r\n      padding:15px 20px;\r\n      border-left:5px solid #dc3545;\r\n      border-radius:8px;\r\n      text-align:center;\r\n      font-weight:bold;\r\n    \">\r\n      \u26a0\ufe0f Play responsibly | Set limits | Lottery is chance-based\r\n    <\/div>\r\n\r\n  <\/div>\r\n<\/section>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1bf9c8f elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"1bf9c8f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-eae65a2 e-flex e-con-boxed e-con e-parent\" data-id=\"eae65a2\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f3ae260 elementor-widget elementor-widget-heading\" data-id=\"f3ae260\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h6 class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/www.allwyn.cy\/el\/games\/\" target=\"_blank\" rel=\"noopener\">You may also be interested in checking other popular lottery results.<\/a><\/h6>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-787a260 elementor-widget elementor-widget-html\" data-id=\"787a260\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n.lottery-widget {\r\n  display: flex;\r\n  gap: 14px;\r\n  max-width: 520px;\r\n  margin: 16px auto;\r\n}\r\n\r\n.lottery-button {\r\n  flex: 1;\r\n  background: linear-gradient(135deg, #111827, #020617);\r\n  border-radius: 12px;\r\n  padding: 14px 12px; \/* smaller height *\/\r\n  text-align: center;\r\n  text-decoration: none;\r\n  color: #f9fafb;\r\n  font-family: Arial, sans-serif;\r\n  font-weight: 700;\r\n  letter-spacing: 0.6px;\r\n  box-shadow: 0 8px 18px rgba(0,0,0,0.35);\r\n  border: 1px solid rgba(234, 179, 8, 0.25);\r\n  transition: all 0.2s ease;\r\n}\r\n\r\n.lottery-button span {\r\n  display: block;\r\n  font-size: 11px;\r\n  font-weight: 400;\r\n  color: #facc15; \/* gold accent *\/\r\n  margin-top: 4px;\r\n}\r\n\r\n.lottery-button:hover {\r\n  transform: translateY(-2px);\r\n  background: linear-gradient(135deg, #1f2937, #020617);\r\n  box-shadow: 0 12px 28px rgba(0,0,0,0.45);\r\n  border-color: rgba(234, 179, 8, 0.6);\r\n}\r\n\r\n\/* Mobile *\/\r\n@media (max-width: 600px) {\r\n  .lottery-widget {\r\n    flex-direction: column;\r\n  }\r\n}\r\n<\/style>\r\n\r\n<div class=\"lottery-widget\">\r\n  <a href=\"https:\/\/lotterylottowin.com\/eurojackpot-results\/\" class=\"lottery-button\">\r\n    EUROJACKPOT\r\n    <span>Latest Results<\/span>\r\n  <\/a>\r\n\r\n  <a href=\"https:\/\/lotterylottowin.com\/tzoker\/\" class=\"lottery-button\">\r\n    TZOKER\r\n    <span>Jackpot Info<\/span>\r\n  <\/a>\r\n<\/div>\r\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Lotto Greece Results Today Latest winning numbers, jackpot totals &#038; prize details \ud83c\udfab\ufe0f Latest LOTTO Draw Loading numbers&#8230; Loading LOTTO results\u2026 Lotto Greece Winner Checker Lotto Greece Winner Checker Enter 6 Lotto numbers to see if this ticket would have won in the stored Greece Lotto draws. Check Ticket Clear Loading Lotto draw data&#8230; \ud83d\udcdc<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"inline_featured_image":false,"footnotes":""},"class_list":["post-3242","page","type-page","status-publish","hentry"],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/lotterylottowin.com\/el\/wp-json\/wp\/v2\/pages\/3242","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lotterylottowin.com\/el\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/lotterylottowin.com\/el\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/lotterylottowin.com\/el\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lotterylottowin.com\/el\/wp-json\/wp\/v2\/comments?post=3242"}],"version-history":[{"count":157,"href":"https:\/\/lotterylottowin.com\/el\/wp-json\/wp\/v2\/pages\/3242\/revisions"}],"predecessor-version":[{"id":6241,"href":"https:\/\/lotterylottowin.com\/el\/wp-json\/wp\/v2\/pages\/3242\/revisions\/6241"}],"wp:attachment":[{"href":"https:\/\/lotterylottowin.com\/el\/wp-json\/wp\/v2\/media?parent=3242"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}