{"id":3409,"date":"2025-11-14T13:15:42","date_gmt":"2025-11-14T13:15:42","guid":{"rendered":"https:\/\/lotterylottowin.com\/?page_id=3409"},"modified":"2026-04-11T00:40:11","modified_gmt":"2026-04-11T00:40:11","slug":"superenalotto","status":"publish","type":"page","link":"https:\/\/lotterylottowin.com\/el\/superenalotto\/","title":{"rendered":"SuperEnalotto"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3409\" class=\"elementor elementor-3409\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e36453b e-flex e-con-boxed e-con e-parent\" data-id=\"e36453b\" 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-c018fa7 elementor-widget elementor-widget-html\" data-id=\"c018fa7\" 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\/Untitled-design-1-5.webp\" \r\n    alt=\"SuperEnalotto 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;\">SuperEnalotto 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<div class=\"elementor-element elementor-element-2e1005f elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"2e1005f\" 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-baa130a elementor-widget elementor-widget-html\" data-id=\"baa130a\" 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>SUPERENALOTTO<\/title>\r\n  <style>\r\n    body { font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif; margin: 0; padding: 24px; background: #0b0f19; color: #fff; }\r\n    .card { max-width: 720px; margin: 0 auto; background: transparent; border: none; border-radius: 12px; padding: 20px; text-align: center; }\r\n    .title { font-size: 24px; font-weight: 700; margin: 0 0 8px; letter-spacing: 0.5px; }\r\n    .subtitle { font-size: 14px; color: #e5e7eb; margin: 0 0 16px; }\r\n    .numbers { display: flex; align-items: center; justify-content: center; gap: 10px; flex-wrap: wrap; }\r\n    .ball { width: 44px; height: 44px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-weight: 600; font-size: 16px; }\r\n    .ball.main { background: #2563eb; color: #fff; }\r\n    .separator { font-weight: 700; color: #e5e7eb; padding: 0 6px; }\r\n    .ball.jolly { background: #f59e0b; color: #fff; }\r\n    .ball.superstar { background: #10b981; color: #0b0f19; }\r\n    .meta { margin-top: 16px; font-size: 13px; color: #e5e7eb; }\r\n    .error { color: #b91c1c; margin-top: 12px; font-size: 14px; }\r\n    .section { margin-top: 24px; }\r\n    table { width: 100%; border-collapse: collapse; margin: 0 auto; }\r\n    th, td { text-align: center; padding: 10px 12px; }\r\n    th { font-weight: 700; font-size: 13px; color: #fff; }\r\n    td { font-size: 13px; color: #e5e7eb; }\r\n    thead { background: rgba(255,255,255,0.06); }\r\n    tbody tr:nth-child(odd) { background: rgba(255,255,255,0.03); }\r\n    .recent-item { display: flex; align-items: center; justify-content: center; gap: 10px; margin: 8px 0; }\r\n    .recent-meta { font-size: 12px; color: #e5e7eb; min-width: auto; text-align: center; }\r\n  <\/style>\r\n<\/head>\r\n<body>\r\n  <div class=\"card\">\r\n    <h1 class=\"title\">SUPERENALOTTO<\/h1>\r\n    <p class=\"subtitle\">\ud83c\udfab\ufe0f Last Draw<\/p>\r\n    <p id=\"drawMeta\" class=\"subtitle\"><\/p>\r\n    <div id=\"numbers\" class=\"numbers\"><\/div>\r\n    <div id=\"error\" class=\"error\" style=\"display:none\"><\/div>\r\n    <div class=\"meta\" id=\"meta\"><\/div>\r\n    <div class=\"section\">\r\n      <table id=\"prizeTable\">\r\n        <thead>\r\n          <tr>\r\n            <th>Numbers Matched<\/th>\r\n            <th>Prize Per Winner<\/th>\r\n            <th>Winners<\/th>\r\n            <th>Prize Fund Amount<\/th>\r\n          <\/tr>\r\n        <\/thead>\r\n        <tbody><\/tbody>\r\n      <\/table>\r\n    <\/div>\r\n    <div class=\"section meta\" id=\"seo\"><\/div>\r\n    <div class=\"section\">\r\n      <div class=\"subtitle\">Recent Draws<\/div>\r\n      <div id=\"recent\"><\/div>\r\n    <\/div>\r\n  <\/div>\r\n  <script>\r\n    const endpoint = 'https:\/\/sl-alpha.vercel.app\/api\/superenalotto?limit=20';\r\n    const API_CACHE_KEY = 'superena-fetch-api-v1';\r\n    const API_CACHE_TTL = 5 * 60 * 1000;\r\n    const PRIZE_CACHE_PREFIX = 'superena-fetch-prizes-v1-';\r\n    const PRIZE_CACHE_TTL = 12 * 60 * 60 * 1000;\r\n    const FETCH_TIMEOUT_MS = 10000;\r\n    function setText(id, text) { const el = document.getElementById(id); if (el) el.textContent = text; }\r\n    function showError(message) { const el = document.getElementById('error'); el.style.display = 'block'; el.textContent = message; }\r\n    function renderBalls(container, values, cls) { values.forEach(v => { const b = document.createElement('div'); b.className = 'ball ' + cls; b.textContent = String(v); container.appendChild(b); }); }\r\n    function readCache(key, ttlMs) {\r\n      try {\r\n        const raw = localStorage.getItem(key);\r\n        if (!raw) return null;\r\n        const parsed = JSON.parse(raw);\r\n        if (!parsed || typeof parsed.savedAt !== 'number') return null;\r\n        if (Date.now() - parsed.savedAt > ttlMs) return null;\r\n        return parsed.value;\r\n      } catch { return null; }\r\n    }\r\n    function writeCache(key, value) {\r\n      try { localStorage.setItem(key, JSON.stringify({ savedAt: Date.now(), value })); } catch {}\r\n    }\r\n    async function fetchWithTimeout(url, options) {\r\n      const controller = new AbortController();\r\n      const timeoutId = setTimeout(() => controller.abort(), FETCH_TIMEOUT_MS);\r\n      try {\r\n        const res = await fetch(url, { ...(options || {}), signal: controller.signal });\r\n        return res;\r\n      } finally {\r\n        clearTimeout(timeoutId);\r\n      }\r\n    }\r\n    async function fetchJsonCached(url, cacheKey, ttlMs) {\r\n      const cached = readCache(cacheKey, ttlMs);\r\n      if (cached) return cached;\r\n      const res = await fetchWithTimeout(url, { cache: 'no-store' });\r\n      if (!res.ok) throw new Error('Request failed: ' + res.status);\r\n      const data = await res.json();\r\n      writeCache(cacheKey, data);\r\n      return data;\r\n    }\r\n    function parsePrizeText(txt) {\r\n      const labels = [\r\n        { tier: '6', patterns: [\/match\\s*6\/i, \/category\\s*6\/i] },\r\n        { tier: '5+Jolly', patterns: [\/5\\s*\\+\\s*jolly\/i, \/match\\s*5\\s*\\+\\s*jolly\/i, \/category\\s*5\\s*\\+\\s*jolly\/i, \/5\\s*\\+\\s*super\\s*star\/i, \/5\\s*\\+\\s*superstar\/i] },\r\n        { tier: '5', patterns: [\/match\\s*5\/i, \/category\\s*5\/i] },\r\n        { tier: '4', patterns: [\/match\\s*4\/i, \/category\\s*4\/i] },\r\n        { tier: '3', patterns: [\/match\\s*3\/i, \/category\\s*3\/i] },\r\n        { tier: '2', patterns: [\/match\\s*2\/i, \/category\\s*2\/i] }\r\n      ];\r\n      const rows = [];\r\n      labels.forEach(({ tier, patterns }) => {\r\n        let idx = txt.search(new RegExp(`(^|\\W)${tier.replace('+','\\\\+')}(\\W|$)`, 'i'));\r\n        if (idx < 0) { for (const p of patterns) { idx = txt.search(p); if (idx >= 0) break; } }\r\n        if (idx < 0) return;\r\n        const seg = txt.slice(idx, idx + 3000);\r\n        let winners = '';\r\n        let amount = '';\r\n        const wMatch = seg.match(\/winners?\\s*:?\\s*([0-9][0-9.,]*)\/i);\r\n        if (wMatch) winners = wMatch[1];\r\n        const aMatch = seg.match(\/(prize\\s*(per\\s*winner|fund)?[^\u20ac]*\u20ac\\s*[0-9][0-9.,]*)|\u20ac\\s*[0-9][0-9.,]*\/i);\r\n        if (aMatch) { const euroOnly = (aMatch[0].match(\/\u20ac\\s*[0-9][0-9.,]*\/i) || [null])[0]; if (euroOnly) amount = euroOnly; }\r\n        if (!winners) { const nums = Array.from(seg.matchAll(\/[0-9][0-9.,]*\/g)).map(m => m[0]); winners = (nums.find(n => !\/^\u20ac\/.test(n)) || '').trim(); }\r\n        if (!winners) winners = '\u2014';\r\n        if (!amount) amount = '';\r\n        rows.push({ tier, winners, per: amount });\r\n      });\r\n      return rows;\r\n    }\r\n\r\n    function parseDetailsText(txt) {\r\n      const mapTierNames = s => {\r\n        const x = s.toLowerCase();\r\n        if (\/\\b6\\s*\\+\\s*super\\s*star|6\\s*\\+\\s*superstar\/.test(x)) return null;\r\n        if (\/\\b5\\s*\\+\\s*jolly\/.test(x)) return '5+Jolly';\r\n        if (\/\\bmatch\\s*6\\b|\\bcategory\\s*6\\b|^\\s*6\\b\/.test(x)) return '6';\r\n        if (\/\\bmatch\\s*5\\b|\\bcategory\\s*5\\b|^\\s*5\\b\/.test(x) && !\/\\+\/.test(x)) return '5';\r\n        if (\/\\bmatch\\s*4\\b|\\bcategory\\s*4\\b|^\\s*4\\b\/.test(x)) return '4';\r\n        if (\/\\bmatch\\s*3\\b|\\bcategory\\s*3\\b|^\\s*3\\b\/.test(x)) return '3';\r\n        if (\/\\bmatch\\s*2\\b|\\bcategory\\s*2\\b|^\\s*2\\b\/.test(x)) return '2';\r\n        return null;\r\n      };\r\n      const rows = [];\r\n      const lines = txt.split(\/\\n+\/);\r\n      for (const ln of lines) {\r\n        const tier = mapTierNames(ln);\r\n        if (!tier) continue;\r\n        const w = (ln.match(\/\\b([0-9][0-9.,]*)\\b(?=[^0-9]*winners?)\/i) || [null,null])[1]\r\n          || (ln.match(\/winners?[^0-9]*([0-9][0-9.,]*)\/i) || [null,null])[1];\r\n        const a = (ln.match(\/(\u20ac|&euro;|EUR)\\s*[0-9][0-9.,]*\/i) || [null])[0];\r\n        const winners = w ? w : '\u2014';\r\n        const amount = a ? a.replace(\/&euro;\/i,'\u20ac') : 'Not available';\r\n        rows.push({ tier, winners, amount });\r\n      }\r\n      return rows;\r\n    }\r\n\r\n    function normalizeTier(t) {\r\n      const s = String(t || '').toLowerCase().replace(\/\\s+balls?\/g,'');\r\n      if (\/^\\s*6\\s*$\/.test(s) || \/match\\s*6\/.test(s) || \/category\\s*6\/.test(s)) return '6';\r\n      if (\/5\\s*\\+\\s*jolly\/.test(s) || \/match\\s*5\\s*\\+\\s*jolly\/.test(s)) return '5+Jolly';\r\n      if (\/^\\s*5\\s*$\/.test(s) || \/match\\s*5(?!\\s*\\+)\/.test(s) || \/category\\s*5(?!\\s*\\+)\/.test(s)) return '5';\r\n      if (\/^\\s*4\\s*$\/.test(s) || \/match\\s*4\/.test(s) || \/category\\s*4\/.test(s)) return '4';\r\n      if (\/^\\s*3\\s*$\/.test(s) || \/match\\s*3\/.test(s) || \/category\\s*3\/.test(s)) return '3';\r\n      if (\/^\\s*2\\s*$\/.test(s) || \/match\\s*2\/.test(s) || \/category\\s*2\/.test(s)) return '2';\r\n      return String(t || '');\r\n    }\r\n    function parseDetailsSection(txt) {\r\n      const pickAmt = s => {\r\n        const m = s.match(\/(\u20ac|&euro;|EUR)\\s*[0-9][0-9.,]*\/i);\r\n        return m ? m[0].replace(\/&euro;\/i,'\u20ac') : '';\r\n      };\r\n      const pickWin = s => {\r\n        const m = s.match(\/Winners[^0-9]*([0-9][0-9,]*)\/i) || s.match(\/([0-9][0-9,]*)\\s*Winners\/i);\r\n        return m ? m[1] : '';\r\n      };\r\n      const toTier = s => {\r\n        const x = String(s||'').toLowerCase();\r\n        if (\/super\\s*star|superstar\/.test(x)) return '';\r\n        if (\/match\\s*6\/.test(x)) return '6';\r\n        if (\/match\\s*5\\s*\\+\\s*jolly\/.test(x)) return '5+Jolly';\r\n        if (\/match\\s*5(?!\\s*\\+)\/.test(x)) return '5';\r\n        if (\/match\\s*4\/.test(x)) return '4';\r\n        if (\/match\\s*3\/.test(x)) return '3';\r\n        if (\/match\\s*2\/.test(x)) return '2';\r\n        return '';\r\n      };\r\n      const block = (txt.split(\/superenalotto\\s*prizes\/i)[1] || txt);\r\n      const lines = String(block||'').split(\/\\n+\/);\r\n      const tierStart = [\/match\\s*6\/i, \/match\\s*5\\s*\\+\\s*jolly\/i, \/match\\s*5(?!\\s*\\+)\/i, \/match\\s*4\/i, \/match\\s*3\/i, \/match\\s*2\/i];\r\n      const out = [];\r\n      let cur = null;\r\n      for (let i=0;i<lines.length;i++) {\r\n        const ln = lines[i].trim();\r\n        if (!ln) continue;\r\n        const pipe = ln.match(\/^\\|\\s*(.+?)\\s*\\|\\s*(.+?)\\s*\\|\\s*(.+?)\\s*\\|\\s*(.+?)\\s*\\|\/);\r\n        if (pipe) {\r\n          const clean = s => String(s||'').replace(\/!\\[[^\\]]*\\]\\([^)]*\\)\/g,'').trim();\r\n          const nm = clean(pipe[1]);\r\n          const tier = toTier(nm);\r\n          if (tier) {\r\n            const winners = clean(pipe[3]);\r\n            const fund = clean(pipe[4]);\r\n            const per = clean(pipe[2]);\r\n            const fundAmt = pickAmt(fund);\r\n            const perAmt = pickAmt(per);\r\n            out.push({ tier, winners, fund: fundAmt, per: perAmt });\r\n            cur = null;\r\n            continue;\r\n          }\r\n        }\r\n        if (tierStart.some(rx => rx.test(ln))) {\r\n          if (cur) out.push(cur);\r\n          const t = toTier(ln);\r\n          cur = { tier: t, winners: '', fund: '', per: '' };\r\n          continue;\r\n        }\r\n        if (!cur) continue;\r\n        if (\/winners\/i.test(ln)) {\r\n          const w = pickWin(ln);\r\n          if (w) cur.winners = w;\r\n        }\r\n        if (\/prize\\s*fund(\\s*amount)?\/i.test(ln)) {\r\n          const a = pickAmt(ln);\r\n          if (a) cur.fund = a;\r\n        } else if (\/amount|prize\\s*per\\s*winner\/i.test(ln)) {\r\n          const a = pickAmt(ln);\r\n          if (a && !cur.per) cur.per = a;\r\n        }\r\n      }\r\n      if (cur) out.push(cur);\r\n      return out.filter(r => r.tier);\r\n    }\r\n\r\n    async function load() {\r\n      try {\r\n        const data = await fetchJsonCached(endpoint, API_CACHE_KEY, API_CACHE_TTL);\r\n\r\n        const latest = data.latest || {};\r\n        const main = Array.isArray(latest.main) ? [...latest.main].sort((a,b)=>a-b) : [];\r\n        const jolly = latest.jolly != null ? [latest.jolly] : [];\r\n        const superstar = latest.superstar != null ? [latest.superstar] : [];\r\n        const drawId = latest.draw || '';\r\n        const drawDate = latest.date || '';\r\n\r\n        setText('drawMeta', 'Draw ' + drawId + (drawDate ? (' \u2022 ' + drawDate) : ''));\r\n\r\n        const c = document.getElementById('numbers');\r\n        c.innerHTML = '';\r\n        renderBalls(c, main, 'main');\r\n        const sep1 = document.createElement('span'); sep1.className = 'separator'; sep1.textContent = '|'; c.appendChild(sep1);\r\n        renderBalls(c, jolly, 'jolly');\r\n        const sep2 = document.createElement('span'); sep2.className = 'separator'; sep2.textContent = '|'; c.appendChild(sep2);\r\n        renderBalls(c, superstar, 'superstar');\r\n\r\n        const jackpot = data.jackpot && data.jackpot.jackpot ? data.jackpot.jackpot : null;\r\n        if (jackpot) setText('meta', 'Jackpot: ' + jackpot);\r\n\r\n        const seoText = 'SUPERENALOTTO results. Draw ' + drawId + (drawDate ? (' took place on ' + drawDate) : '') +\r\n          ' and the winning numbers drawn are ' + main.join(', ') + ', Jolly ' + (jolly[0] ?? '') + ', Superstar ' + (superstar[0] ?? '') + '.';\r\n        setText('seo', seoText);\r\n\r\n        const recentBox = document.getElementById('recent');\r\n        recentBox.innerHTML = '';\r\n        const prev = (data.previous && Array.isArray(data.previous.draws)) ? data.previous.draws : [];\r\n        prev.forEach(item => {\r\n          const rMain = Array.isArray(item.main) ? [...item.main].sort((a,b)=>a-b) : [];\r\n          const rJolly = item.jolly != null ? [item.jolly] : [];\r\n          const rStar = item.superstar != null ? [item.superstar] : [];\r\n          const row = document.createElement('div'); row.className = 'recent-item';\r\n          const meta = document.createElement('div'); meta.className = 'recent-meta'; meta.textContent = (item.date || '');\r\n          const balls = document.createElement('div'); balls.className = 'numbers';\r\n          renderBalls(balls, rMain, 'main');\r\n          const sepA = document.createElement('span'); sepA.className = 'separator'; sepA.textContent = '|'; balls.appendChild(sepA);\r\n          renderBalls(balls, rJolly, 'jolly');\r\n          const sepB = document.createElement('span'); sepB.className = 'separator'; sepB.textContent = '|'; balls.appendChild(sepB);\r\n          renderBalls(balls, rStar, 'superstar');\r\n          row.appendChild(meta); row.appendChild(balls); recentBox.appendChild(row);\r\n        });\r\n\r\n        const tbody = document.querySelector('#prizeTable tbody');\r\n        tbody.innerHTML = '';\r\n        let prizeRows = (latest && latest.prize && Array.isArray(latest.prize.rows)) ? latest.prize.rows : [];\r\n        const prizeCacheKey = PRIZE_CACHE_PREFIX + String(drawId || drawDate || 'latest');\r\n        if (!prizeRows.length) {\r\n          const cachedPrizeRows = readCache(prizeCacheKey, PRIZE_CACHE_TTL);\r\n          if (Array.isArray(cachedPrizeRows) && cachedPrizeRows.length) prizeRows = cachedPrizeRows;\r\n        }\r\n        if (!prizeRows.length) {\r\n          try {\r\n            const res2 = await fetchWithTimeout('\/api\/superenalotto?limit=20', { cache: 'no-store' });\r\n            if (res2.ok) {\r\n              const data2 = await res2.json();\r\n              const rows2 = (data2 && data2.latest && Array.isArray(data2.latest.prize && data2.latest.prize.rows)) ? data2.latest.prize.rows : [];\r\n              if (rows2.length) prizeRows = rows2;\r\n            }\r\n          } catch {}\r\n        }\r\n        if (!prizeRows.length && drawDate) {\r\n          const months = { january: '01', february: '02', march: '03', april: '04', may: '05', june: '06', july: '07', august: '08', september: '09', october: '10', november: '11', december: '12' };\r\n          const m = drawDate.match(\/(\\d{1,2})\\s+(January|February|March|April|May|June|July|August|September|October|November|December)\\s+(\\d{4})\/i);\r\n          if (m) {\r\n            const dd = String(parseInt(m[1], 10)).padStart(2, '0');\r\n            const mm = months[m[2].toLowerCase()] || '';\r\n            const yyyy = m[3];\r\n            const path = `${dd}-${mm}-${yyyy}`;\r\n            try {\r\n                const resDate = await fetchWithTimeout(`https:\/\/r.jina.ai\/https:\/\/www.superenalotto.net\/en\/results\/${path}`, { cache: 'no-store' });\r\n              if (resDate.ok) {\r\n                const htmlTextD = await resDate.text();\r\n                const docD = new DOMParser().parseFromString(htmlTextD, 'text\/html');\r\n                const tablesD = Array.from(docD.querySelectorAll('table'));\r\n                let rowsD = [];\r\n                const findSupTable = () => {\r\n                  const heads = Array.from(docD.querySelectorAll('h1,h2,h3,h4'));\r\n                  const h = heads.find(x => \/superenalotto\\s*prizes\/i.test((x.textContent || '').trim()));\r\n                  if (!h) return null;\r\n                  const sib = h.nextElementSibling;\r\n                  if (sib && sib.tagName === 'TABLE') return sib;\r\n                  const parentTbl = h.parentElement ? h.parentElement.querySelector('table') : null;\r\n                  return parentTbl || null;\r\n                };\r\n                const supTable = findSupTable();\r\n                if (supTable) {\r\n                  const head = supTable.querySelector('tr');\r\n                  const cells = head ? Array.from(head.querySelectorAll('th,td')).map(c => (c.textContent || '').trim().toLowerCase()) : [];\r\n                  const iNM = cells.findIndex(h => \/numbers\\s*matched\/i.test(h));\r\n                  const iW = cells.findIndex(h => \/winners\/i.test(h));\r\n                  const iPFund = cells.findIndex(h => \/distributed|prize\\s*fund(\\s*amount)?\/i.test(h));\r\n                  const iPPer = cells.findIndex(h => \/prize\\s*per\\s*winner\/i.test(h));\r\n                  const trs = Array.from(supTable.querySelectorAll('tr')).slice(1);\r\n                  trs.forEach(tr => {\r\n                    const tds = Array.from(tr.querySelectorAll('td,th'));\r\n                    if (!tds.length) return;\r\n                    const nm = (tds[iNM] && tds[iNM].textContent || '').trim();\r\n                    const tier = normalizeTier(tierFromNumbersMatched(nm));\r\n                    if (!tier) return;\r\n                    const wTxt = iW >= 0 ? (tds[iW] && tds[iW].textContent || '').trim() : '';\r\n                    const fundTxt = iPFund >= 0 ? (tds[iPFund] && tds[iPFund].textContent || '').trim() : '';\r\n                    const perTxt = iPPer >= 0 ? (tds[iPPer] && tds[iPPer].textContent || '').trim() : '';\r\n                    let winners = wTxt;\r\n                    const toNum = s => parseFloat(String(s||'').replace(\/[^0-9.,-]\/g,'').replace(\/,\/g,''));\r\n                    const wNum = toNum(winners);\r\n                    const fundNum = toNum(fundTxt);\r\n                    const perNum = toNum(perTxt);\r\n                    if ((!Number.isFinite(wNum) || wNum < 10) && Number.isFinite(fundNum) && Number.isFinite(perNum) && perNum > 0) {\r\n                      const calc = Math.round(fundNum \/ perNum);\r\n                      if (calc > 0) winners = calc.toLocaleString();\r\n                    }\r\n                    const amount = fundTxt || perTxt || '';\r\n                    rowsD.push({ tier, winners, amount });\r\n                  });\r\n                }\r\n                const tierFromNumbersMatched = (nm) => {\r\n                  const s = String(nm || '').toLowerCase().replace(\/\\s+balls?\/g, '');\r\n                  if (\/super\\s*star|superstar\/.test(s)) return '';\r\n                  if (\/match\\s*6(\\D|$)\/i.test(s)) return '6';\r\n                  if (\/match\\s*5\\s*\\+\\s*jolly(\\D|$)\/i.test(s)) return '5+Jolly';\r\n                  if (\/match\\s*5(\\D|$)\/i.test(s)) return '5';\r\n                  if (\/match\\s*4(\\D|$)\/i.test(s)) return '4';\r\n                  if (\/match\\s*3(\\D|$)\/i.test(s)) return '3';\r\n                  if (\/match\\s*2(\\D|$)\/i.test(s)) return '2';\r\n                  return '';\r\n                };\r\n                tablesD.forEach(tbl => {\r\n                  const head = tbl.querySelector('tr');\r\n                  const cells = head ? Array.from(head.querySelectorAll('th,td')).map(c => (c.textContent || '').trim().toLowerCase()) : [];\r\n                  const iNM = cells.findIndex(h => \/numbers\\s*matched\/i.test(h));\r\n                  const iW = cells.findIndex(h => \/winners\/i.test(h));\r\n                  const iPF = cells.findIndex(h => \/distributed|prize\\s*fund(\\s*amount)?\/i.test(h));\r\n                  const iAmt = iPF >= 0 ? iPF : (cells.findIndex(h => \/amount\/i.test(h)) >= 0 ? cells.findIndex(h => \/amount\/i.test(h)) : cells.findIndex(h => \/prize\\s*per\\s*winner\/i.test(h)));\r\n                  if (iNM < 0 || iW < 0) return;\r\n                  const trs = Array.from(tbl.querySelectorAll('tr')).slice(1);\r\n                  trs.forEach(tr => {\r\n                    const tds = Array.from(tr.querySelectorAll('td,th'));\r\n                    if (!tds.length) return;\r\n                    const nm = (tds[iNM] && tds[iNM].textContent || '').trim();\r\n                    const w = (tds[iW] && tds[iW].textContent || '').trim();\r\n                    const fund = iPF >= 0 ? (tds[iPF] && tds[iPF].textContent || '').trim() : '';\r\n                    const per = (cells.findIndex(h => \/prize\\s*per\\s*winner\/i.test(h)));\r\n                    const perVal = per >= 0 ? (tds[per] && tds[per].textContent || '').trim() : '';\r\n                    const tier = normalizeTier(tierFromNumbersMatched(nm));\r\n                    if (tier) rowsD.push({ tier, winners: w, fund, per: perVal });\r\n                  });\r\n                });\r\n                if (rowsD.length) prizeRows = rowsD;\r\n                if (!prizeRows.length) {\r\n                  const rxFor = (label, rxPart) => {\r\n                    const rx = new RegExp(`Match\\\\s*${rxPart}[\\\\s\\\\S]*?Prize\\\\s*Per\\\\s*Winner[\\\\s\\\\S]*?(\u20ac[0-9.,]+)[\\\\s\\\\S]*?Winners[\\\\s\\\\S]*?([0-9,]+)[\\\\s\\\\S]*?Prize\\\\s*Fund\\\\s*Amount[\\\\s\\\\S]*?(\u20ac[0-9.,]+)`, 'i');\r\n                    const m = htmlTextD.match(rx);\r\n                    if (!m) return null;\r\n                    return { tier: label, per: m[1], winners: m[2], fund: m[3] };\r\n                  };\r\n                  const picks = [];\r\n                  const p6 = rxFor('6', '6'); if (p6) picks.push(p6);\r\n                  const p5j = rxFor('5+Jolly', '5\\\\s*\\\\+\\\\s*Jolly'); if (p5j) picks.push(p5j);\r\n                  const p5 = rxFor('5', '5(?!\\s*\\+)'); if (p5) picks.push(p5);\r\n                  const p4 = rxFor('4', '4'); if (p4) picks.push(p4);\r\n                  const p3 = rxFor('3', '3'); if (p3) picks.push(p3);\r\n                  const p2 = rxFor('2', '2'); if (p2) picks.push(p2);\r\n                  if (picks.length) prizeRows = picks;\r\n                  if (!prizeRows.length) {\r\n                    const rowsT = parseDetailsSection(htmlTextD);\r\n                    if (rowsT.length) prizeRows = rowsT;\r\n                  }\r\n                }\r\n              }\r\n            } catch {}\r\n          }\r\n        }\r\n        if (!prizeRows.length) {\r\n          try {\r\n            const res3 = await fetchWithTimeout('https:\/\/r.jina.ai\/https:\/\/www.superenalotto.net\/en\/results', { cache: 'no-store' });\r\n            if (res3.ok) {\r\n              const htmlText = await res3.text();\r\n              const doc = new DOMParser().parseFromString(htmlText, 'text\/html');\r\n              const collected = [];\r\n              const prizeHeading = Array.from(doc.querySelectorAll('h1,h2,h3')).find(h => \/prize\\s*breakdown\/i.test((h.textContent || '').trim()));\r\n              const targetTable = prizeHeading ? prizeHeading.nextElementSibling && prizeHeading.nextElementSibling.tagName === 'TABLE' ? prizeHeading.nextElementSibling : prizeHeading.parentElement.querySelector('table') : null;\r\n              const tables = targetTable ? [targetTable] : Array.from(doc.querySelectorAll('table'));\r\n              tables.forEach(tbl => {\r\n                const headerRow = tbl.querySelector('tr');\r\n                const headerCells = headerRow ? Array.from(headerRow.querySelectorAll('th,td')) : [];\r\n                const headers = headerCells.map(c => (c.textContent || '').trim().toLowerCase());\r\n                const ti = headers.findIndex(h => \/tier|category\/.test(h));\r\n                const wi = headers.findIndex(h => \/winner\/.test(h));\r\n                const iPFund = headers.findIndex(h => \/distributed|prize\\s*fund(\\s*amount)?\/.test(h));\r\n                const iPPer = headers.findIndex(h => \/prize\\s*per\\s*winner\/.test(h));\r\n                const rows = Array.from(tbl.querySelectorAll('tr')).slice(1);\r\n                rows.forEach(tr => {\r\n                  const cells = Array.from(tr.querySelectorAll('td,th'));\r\n                  if (!cells.length) return;\r\n                  let tier = '', winners = '', fund = '', per = '';\r\n                  if (ti >= 0) tier = (cells[ti] && cells[ti].textContent || '').trim();\r\n                  if (wi >= 0) winners = (cells[wi] && cells[wi].textContent || '').trim();\r\n                  if (iPFund >= 0) fund = (cells[iPFund] && cells[iPFund].textContent || '').trim();\r\n                  if (iPPer >= 0) per = (cells[iPPer] && cells[iPPer].textContent || '').trim();\r\n                  if (!tier && cells.length >= 3) {\r\n                    tier = (cells[0].textContent || '').trim();\r\n                    winners = (cells[1].textContent || '').trim();\r\n                    per = (cells[2].textContent || '').trim();\r\n                  }\r\n                  if (\/super\\s*star|superstar\/i.test(tier)) return;\r\n                  if (tier && (winners || fund || per)) collected.push({ tier, winners, fund, per });\r\n                });\r\n              });\r\n              if (collected.length) {\r\n                prizeRows = collected;\r\n              } else {\r\n                let detRows = [];\r\n                try {\r\n                  const links = Array.from(doc.querySelectorAll('a')).filter(a => \/draw\\s*details\/i.test((a.textContent || '').trim()));\r\n                  let detHref = '';\r\n                  const norm = s => String(s || '').toLowerCase().replace(\/\\s+\/g,' ').replace(\/(st|nd|rd|th)\/g,'');\r\n                  const nd = norm(drawDate);\r\n                  const ni = norm(drawId);\r\n                  for (const a of links) {\r\n                    const textCtx = norm(a.closest('tr,div,section,article')?.textContent || '');\r\n                    if ((nd && textCtx.includes(norm(drawDate))) || (ni && textCtx.includes(norm(drawId)))) { detHref = a.getAttribute('href') || ''; if (detHref) break; }\r\n                  }\r\n                  if (!detHref && links.length) detHref = links[0].getAttribute('href') || '';\r\n                  if (detHref) {\r\n                    const full = \/^https?:\/i.test(detHref) ? detHref : `https:\/\/www.superenalotto.net${detHref}`;\r\n                    const resDet = await fetchWithTimeout(`https:\/\/r.jina.ai\/${full}`, { cache: 'no-store' });\r\n                    if (resDet.ok) {\r\n                      const detHtml = await resDet.text();\r\n                      const detDoc = new DOMParser().parseFromString(detHtml, 'text\/html');\r\n                      const tbs = Array.from(detDoc.querySelectorAll('table'));\r\n                      tbs.forEach(tbl => {\r\n                      const headerRow = tbl.querySelector('tr');\r\n                      const headers = headerRow ? Array.from(headerRow.querySelectorAll('th,td')).map(c => (c.textContent || '').trim().toLowerCase()) : [];\r\n                      const ti = headers.findIndex(h => \/tier|category|match\/.test(h));\r\n                      const wi = headers.findIndex(h => \/winner\/.test(h));\r\n                      const iPFund = headers.findIndex(h => \/distributed|prize\\s*fund(\\s*amount)?\/.test(h));\r\n                      const iPPer = headers.findIndex(h => \/prize\\s*per\\s*winner\/.test(h));\r\n                      const rows = Array.from(tbl.querySelectorAll('tr')).slice(1);\r\n                      rows.forEach(tr => {\r\n                        const cells = Array.from(tr.querySelectorAll('td,th'));\r\n                        if (!cells.length) return;\r\n                        let tier = '', winners = '', fund = '', per = '';\r\n                        if (ti >= 0) tier = (cells[ti] && cells[ti].textContent || '').trim();\r\n                        if (wi >= 0) winners = (cells[wi] && cells[wi].textContent || '').trim();\r\n                        if (iPFund >= 0) fund = (cells[iPFund] && cells[iPFund].textContent || '').trim();\r\n                        if (iPPer >= 0) per = (cells[iPPer] && cells[iPPer].textContent || '').trim();\r\n                        if (!tier && cells.length >= 3) {\r\n                          tier = (cells[0].textContent || '').trim();\r\n                          winners = (cells[1].textContent || '').trim();\r\n                          per = (cells[2].textContent || '').trim();\r\n                        }\r\n                        if (\/super\\s*star|superstar\/i.test(tier)) return;\r\n                        if (tier && (winners || fund || per)) detRows.push({ tier, winners, fund, per });\r\n                      });\r\n                    });\r\n                    }\r\n                  }\r\n                } catch {}\r\n                if (detRows.length) {\r\n                  prizeRows = detRows;\r\n                } else {\r\n                  const parsedTbl = parsePrizeText(htmlText);\r\n                  const parsedTxt = parseDetailsText(htmlText);\r\n                  const combined = parsedTbl.length ? parsedTbl : parsedTxt;\r\n                  if (combined.length) prizeRows = combined;\r\n                }\r\n              }\r\n            }\r\n          } catch {}\r\n        }\r\n        if (!prizeRows.length) {\r\n          try {\r\n            const resP = await fetchWithTimeout('https:\/\/r.jina.ai\/https:\/\/www.superenalotto.net\/en\/prizes', { cache: 'no-store' });\r\n            if (resP.ok) {\r\n              const txtP = await resP.text();\r\n              const map = {};\r\n              const grab = (label, re) => {\r\n                const m = txtP.match(re);\r\n                if (m) map[label] = m[0].match(\/\u20ac\\s*[0-9][0-9.,]*\/)[0];\r\n              };\r\n              grab('6', \/\\b6\\b[\\s\\S]*?\u20ac\\s*[0-9][0-9.,]*\/i);\r\n              grab('5+Jolly', \/5\\s*\\+\\s*Jolly[\\s\\S]*?\u20ac\\s*[0-9][0-9.,]*\/i);\r\n              grab('5', \/\\b5\\b[\\s\\S]*?\u20ac\\s*[0-9][0-9.,]*\/i);\r\n              grab('4', \/\\b4\\b[\\s\\S]*?\u20ac\\s*[0-9][0-9.,]*\/i);\r\n              grab('3', \/\\b3\\b[\\s\\S]*?\u20ac\\s*[0-9][0-9.,]*\/i);\r\n              grab('2', \/\\b2\\b[\\s\\S]*?\u20ac\\s*[0-9][0-9.,]*\/i);\r\n              const tiers = ['6','5+Jolly','5','4','3','2'];\r\n              const rowsP = tiers.filter(t => map[t]).map(t => ({ tier: t, winners: '\u2014', per: map[t] }));\r\n              if (rowsP.length) prizeRows = rowsP;\r\n            }\r\n          } catch {}\r\n        }\r\n        if (prizeRows.length && prizeRows.some(r => !r.winners || String(r.winners).trim() === '\u2014')) {\r\n          if (drawDate) {\r\n            const months = { january: '01', february: '02', march: '03', april: '04', may: '05', june: '06', july: '07', august: '08', september: '09', october: '10', november: '11', december: '12' };\r\n            const m = drawDate.match(\/(\\d{1,2})\\s+(January|February|March|April|May|June|July|August|September|October|November|December)\\s+(\\d{4})\/i);\r\n            if (m) {\r\n              const dd = String(parseInt(m[1], 10)).padStart(2, '0');\r\n              const mm = months[m[2].toLowerCase()] || '';\r\n              const yyyy = m[3];\r\n              const path = `${dd}-${mm}-${yyyy}`;\r\n              try {\r\n                const resDate2 = await fetchWithTimeout(`https:\/\/r.jina.ai\/https:\/\/www.superenalotto.net\/en\/results\/${path}`, { cache: 'no-store' });\r\n                if (resDate2.ok) {\r\n                  const htmlD2 = await resDate2.text();\r\n                  const docD2 = new DOMParser().parseFromString(htmlD2, 'text\/html');\r\n                  const tables2 = Array.from(docD2.querySelectorAll('table'));\r\n                  const map = {};\r\n                  const findSupTable2 = () => {\r\n                    const heads = Array.from(docD2.querySelectorAll('h1,h2,h3,h4'));\r\n                    const h = heads.find(x => \/superenalotto\\s*prizes\/i.test((x.textContent || '').trim()));\r\n                    if (!h) return null;\r\n                    const sib = h.nextElementSibling;\r\n                    if (sib && sib.tagName === 'TABLE') return sib;\r\n                    const parentTbl = h.parentElement ? h.parentElement.querySelector('table') : null;\r\n                    return parentTbl || null;\r\n                  };\r\n                  const supTable2 = findSupTable2();\r\n                  if (supTable2) tables2.unshift(supTable2);\r\n                  tables2.forEach(tbl => {\r\n                    const head = tbl.querySelector('tr');\r\n                    const cells = head ? Array.from(head.querySelectorAll('th,td')).map(c => (c.textContent || '').trim().toLowerCase()) : [];\r\n                    const iNM = cells.findIndex(h => \/numbers\\s*matched\/i.test(h));\r\n                    const iW = cells.findIndex(h => \/winners\/i.test(h));\r\n                    const iPF = cells.findIndex(h => \/distributed|prize\\s*fund(\\s*amount)?\/i.test(h));\r\n                    const iAmt = iPF >= 0 ? iPF : (cells.findIndex(h => \/amount\/i.test(h)) >= 0 ? cells.findIndex(h => \/amount\/i.test(h)) : cells.findIndex(h => \/prize\\s*per\\s*winner\/i.test(h)));\r\n                    if (iNM < 0 || iW < 0) return;\r\n                    const trs = Array.from(tbl.querySelectorAll('tr')).slice(1);\r\n                    trs.forEach(tr => {\r\n                      const tds = Array.from(tr.querySelectorAll('td,th'));\r\n                      const nm = (tds[iNM] && tds[iNM].textContent || '').trim();\r\n                      const s = nm.toLowerCase().replace(\/\\s+balls?\/g, '');\r\n                      let tier = '';\r\n                      if (\/match\\s*6(\\D|$)\/i.test(s)) tier = '6';\r\n                      else if (\/match\\s*5\\s*\\+\\s*jolly(\\D|$)\/i.test(s)) tier = '5+Jolly';\r\n                      else if (\/match\\s*5(\\D|$)\/i.test(s)) tier = '5';\r\n                      else if (\/match\\s*4(\\D|$)\/i.test(s)) tier = '4';\r\n                      else if (\/match\\s*3(\\D|$)\/i.test(s)) tier = '3';\r\n                      else if (\/match\\s*2(\\D|$)\/i.test(s)) tier = '2';\r\n                      if (!tier) return;\r\n                      const w = (tds[iW] && tds[iW].textContent || '').trim();\r\n                      const amt = iAmt >= 0 ? (tds[iAmt] && tds[iAmt].textContent || '').trim() : '';\r\n                      const perIdx = cells.findIndex(h => \/prize\\s*per\\s*winner\/i.test(h));\r\n                      const perVal = perIdx >= 0 ? (tds[perIdx] && tds[perIdx].textContent || '').trim() : '';\r\n                      const fundIdx = cells.findIndex(h => \/distributed|prize\\s*fund(\\s*amount)?\/i.test(h));\r\n                      const fundVal = fundIdx >= 0 ? (tds[fundIdx] && tds[fundIdx].textContent || '').trim() : '';\r\n                      map[normalizeTier(tier)] = { winners: w, fund: fundVal || amt, per: perVal };\r\n                    });\r\n                  });\r\n                  if (Object.keys(map).length) {\r\n                    prizeRows = prizeRows.map(r => {\r\n                      const t = normalizeTier(r.tier ?? r.category ?? r.name ?? '');\r\n                      const mObj = map[t];\r\n                      if (!mObj) return r;\r\n                      const w0 = String(r.winners || '').trim();\r\n                      const a0 = String(r.fund || r.amount || r.distributed || r.prize || r.value || '').trim();\r\n                      const winners = ((!w0 || w0 === '\u2014') && mObj.winners && String(mObj.winners).trim()) ? mObj.winners : r.winners;\r\n                      const fund = a0 ? a0 : ((mObj.fund && String(mObj.fund).trim()) ? mObj.fund : a0);\r\n                      const per = r.per ?? mObj.per ?? r.per;\r\n                      return { ...r, winners, fund, per };\r\n                    });\r\n                  } else {\r\n                    const rowsT2 = parseDetailsSection(htmlD2);\r\n                    if (rowsT2.length) {\r\n                      const map2 = {};\r\n                      rowsT2.forEach(x => { map2[normalizeTier(x.tier)] = { winners: x.winners, fund: x.fund, per: x.per }; });\r\n                      prizeRows = prizeRows.map(r => {\r\n                        const t = normalizeTier(r.tier ?? r.category ?? r.name ?? '');\r\n                        const mObj = map2[t];\r\n                        if (!mObj) return r;\r\n                        const w0 = String(r.winners || '').trim();\r\n                        const a0 = String(r.fund || r.amount || r.distributed || r.prize || r.value || '').trim();\r\n                        const winners = ((!w0 || w0 === '\u2014') && mObj.winners && String(mObj.winners).trim()) ? mObj.winners : r.winners;\r\n                        const fund = a0 ? a0 : ((mObj.fund && String(mObj.fund).trim()) ? mObj.fund : a0);\r\n                        const per = r.per ?? mObj.per ?? r.per;\r\n                        return { ...r, winners, fund, per };\r\n                      });\r\n                    }\r\n                  }\r\n                }\r\n              } catch {}\r\n            }\r\n          }\r\n          if (prizeRows.some(r => !r.winners || String(r.winners).trim() === '\u2014')) {\r\n            try {\r\n              const resRL = await fetchWithTimeout('https:\/\/r.jina.ai\/https:\/\/www.superenalotto.net\/en\/results', { cache: 'no-store' });\r\n              if (resRL.ok) {\r\n                const htmlRL = await resRL.text();\r\n                const docRL = new DOMParser().parseFromString(htmlRL, 'text\/html');\r\n                const link = Array.from(docRL.querySelectorAll('a')).find(a => \/draw\\s*details\/i.test((a.textContent || '').trim()));\r\n                if (link) {\r\n                  const href = link.getAttribute('href') || '';\r\n                  if (href) {\r\n                    const full = \/^https?:\/i.test(href) ? href : `https:\/\/www.superenalotto.net${href}`;\r\n                    const resDet2 = await fetchWithTimeout(`https:\/\/r.jina.ai\/${full}`, { cache: 'no-store' });\r\n                    if (resDet2.ok) {\r\n                      const htmlDet2 = await resDet2.text();\r\n                      const docDet2 = new DOMParser().parseFromString(htmlDet2, 'text\/html');\r\n                      const tablesX = Array.from(docDet2.querySelectorAll('table'));\r\n                      const mapX = {};\r\n                      const tierFromNumbersMatched = (nm) => {\r\n                        const s = String(nm || '').toLowerCase().replace(\/\\s+balls?\/g, '');\r\n                        if (\/match\\s*6(\\D|$)\/i.test(s)) return '6';\r\n                        if (\/match\\s*5\\s*\\+\\s*jolly(\\D|$)\/i.test(s)) return '5+Jolly';\r\n                        if (\/match\\s*5(\\D|$)\/i.test(s)) return '5';\r\n                        if (\/match\\s*4(\\D|$)\/i.test(s)) return '4';\r\n                        if (\/match\\s*3(\\D|$)\/i.test(s)) return '3';\r\n                        if (\/match\\s*2(\\D|$)\/i.test(s)) return '2';\r\n                        return '';\r\n                      };\r\n                      tablesX.forEach(tbl => {\r\n                        const head = tbl.querySelector('tr');\r\n                        const cells = head ? Array.from(head.querySelectorAll('th,td')).map(c => (c.textContent || '').trim().toLowerCase()) : [];\r\n                        const iNM = cells.findIndex(h => \/numbers\\s*matched\/i.test(h));\r\n                        const iW = cells.findIndex(h => \/winners\/i.test(h));\r\n                        const iPF = cells.findIndex(h => \/prize\\s*fund\\s*amount|prize\\s*fund\/i.test(h));\r\n                        if (iNM < 0 || iW < 0) return;\r\n                        const trs = Array.from(tbl.querySelectorAll('tr')).slice(1);\r\n                        trs.forEach(tr => {\r\n                          const tds = Array.from(tr.querySelectorAll('td,th'));\r\n                          const nm = (tds[iNM] && tds[iNM].textContent || '').trim();\r\n                          const tier = tierFromNumbersMatched(nm);\r\n                          if (!tier) return;\r\n                          const w = (tds[iW] && tds[iW].textContent || '').trim();\r\n                          const pf = iPF >= 0 ? (tds[iPF] && tds[iPF].textContent || '').trim() : '';\r\n                          mapX[tier] = { winners: w, amount: pf };\r\n                        });\r\n                      });\r\n                      if (Object.keys(mapX).length) {\r\n                        prizeRows = prizeRows.map(r => {\r\n                          const t = normalizeTier(r.tier ?? r.category ?? r.name ?? '');\r\n                          const mObj = mapX[t];\r\n                          if (!mObj) return r;\r\n                          const w0 = String(r.winners || '').trim();\r\n                          const a0 = String(r.amount || r.distributed || r.prize || r.value || '').trim();\r\n                          const winners = ((!w0 || w0 === '\u2014') && mObj.winners && String(mObj.winners).trim()) ? mObj.winners : r.winners;\r\n                          const amount = a0 ? a0 : ((mObj.amount && String(mObj.amount).trim()) ? mObj.amount : a0);\r\n                          return { ...r, winners, amount };\r\n                        });\r\n                      } else {\r\n                        const rowsTX = parseDetailsSection(htmlDet2);\r\n                        if (rowsTX.length) {\r\n                          const map2 = {};\r\n                          rowsTX.forEach(x => { map2[normalizeTier(x.tier)] = { winners: x.winners, fund: x.fund, per: x.per }; });\r\n                          prizeRows = prizeRows.map(r => {\r\n                            const t = normalizeTier(r.tier ?? r.category ?? r.name ?? '');\r\n                            const mObj = map2[t];\r\n                            if (!mObj) return r;\r\n                            const w0 = String(r.winners || '').trim();\r\n                            const a0 = String(r.fund || r.amount || r.distributed || r.prize || r.value || '').trim();\r\n                            const winners = (!w0 || w0 === '\u2014') ? mObj.winners : r.winners;\r\n                            const fund = a0 ? a0 : (mObj.fund || a0);\r\n                            const per = r.per ?? mObj.per ?? r.per;\r\n                            return { ...r, winners, fund, per };\r\n                          });\r\n                        }\r\n                      }\r\n                    }\r\n                  }\r\n                }\r\n              }\r\n            } catch {}\r\n          }\r\n        }\r\n        if (!prizeRows.length) {\r\n          try {\r\n            const res4 = await fetchWithTimeout('https:\/\/r.jina.ai\/http:\/\/www.superenalotto.com\/en\/', { cache: 'no-store' });\r\n            if (res4.ok) {\r\n              const htmlText2 = await res4.text();\r\n              const parsed2 = parsePrizeText(htmlText2);\r\n              if (parsed2.length) prizeRows = parsed2;\r\n            }\r\n          } catch {}\r\n        }\r\n        if (prizeRows.length) {\r\n          writeCache(prizeCacheKey, prizeRows);\r\n          prizeRows = prizeRows.map(r => ({\r\n            ...r,\r\n            tier: normalizeTier(r.tier ?? r.category ?? r.name ?? ''),\r\n          }));\r\n          prizeRows.forEach(r => {\r\n            const tr = document.createElement('tr');\r\n            const tdNM = document.createElement('td');\r\n            const tdPer = document.createElement('td');\r\n            const tdWinners = document.createElement('td');\r\n            const tdFund = document.createElement('td');\r\n            const tier = r.tier ?? '';\r\n            const nmText = tier === '5+Jolly' ? 'Match 5 + JollyBalls' : (tier ? `Match ${tier}Balls` : '');\r\n            tdNM.textContent = nmText;\r\n            const perRaw = r.per ?? r.perWinner ?? r.prizePerWinner ?? '';\r\n            const winnersRaw = r.winners ?? r.winner ?? r.count ?? '';\r\n            const fundRaw = r.fund ?? '';\r\n            const winnersText = String(winnersRaw || '').trim();\r\n            const w = parseInt(winnersText.replace(\/[^0-9-]\/g, ''), 10);\r\n            let perText = String(perRaw || '');\r\n            const fundNum = parseFloat(String(fundRaw || '').replace(\/[^0-9.,-]\/g,'').replace(\/,\/g,''));\r\n            if ((!perText || \/\u20ac\\s*0(\\.0+)?\/i.test(perText)) && Number.isFinite(fundNum) && fundNum > 0 && Number.isFinite(w) && w > 0) {\r\n              perText = '\u20ac' + (fundNum \/ w).toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 });\r\n            }\r\n            tdPer.textContent = String(perText || 'Not available');\r\n            tdWinners.textContent = !winnersText ? '\u2014' : (\/\u20ac|eur\/i.test(winnersText) ? '\u2014' : (Number.isFinite(w) ? w.toLocaleString() : winnersText));\r\n            tdFund.textContent = String(fundRaw || 'Not available');\r\n            tr.appendChild(tdNM);\r\n            tr.appendChild(tdPer);\r\n            tr.appendChild(tdWinners);\r\n            tr.appendChild(tdFund);\r\n            tbody.appendChild(tr);\r\n          });\r\n        } else {\r\n          const tiers = ['6', '5+Jolly', '5', '4', '3', '2'];\r\n          tiers.forEach(t => {\r\n            const tr = document.createElement('tr');\r\n            const tdNM = document.createElement('td'); tdNM.textContent = t === '5+Jolly' ? 'Match 5 + JollyBalls' : `Match ${t}Balls`;\r\n            const tdPer = document.createElement('td'); tdPer.textContent = 'Not available';\r\n            const tdWinners = document.createElement('td'); tdWinners.textContent = '\u2014';\r\n            const tdFund = document.createElement('td'); tdFund.textContent = 'Not available';\r\n            tr.appendChild(tdNM); tr.appendChild(tdPer); tr.appendChild(tdWinners); tr.appendChild(tdFund);\r\n            tbody.appendChild(tr);\r\n          });\r\n        }\r\n\r\n        if (data.errors && (data.errors.jackpot || data.errors.latest || data.errors.previous)) {\r\n          showError('Some sections failed to load. Please retry later.');\r\n        }\r\n      } catch (err) {\r\n        showError('Failed to load SuperEnalotto results.');\r\n      }\r\n    }\r\n\r\n    load();\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-81bf116 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"81bf116\" 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-3b14850 elementor-widget elementor-widget-html\" data-id=\"3b14850\" 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>SuperEnalotto 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    .checker-optional 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-optional {\r\n      display: flex;\r\n      justify-content: center;\r\n      gap: 10px;\r\n      margin-bottom: 16px;\r\n      flex-wrap: wrap;\r\n    }\r\n    .checker-optional label {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 8px;\r\n      color: #e5e7eb;\r\n      font-size: 14px;\r\n    }\r\n    .checker-optional input {\r\n      width: 100px;\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: #b91c1c;\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    .result-tier.near {\r\n      background: #f59e0b;\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    .ball.jolly {\r\n      background: #f59e0b;\r\n      color: #ffffff;\r\n      border-color: #f59e0b;\r\n    }\r\n    .ball.superstar {\r\n      background: #10b981;\r\n      color: #052e2b;\r\n      border-color: #10b981;\r\n    }\r\n    .ball-label {\r\n      font-size: 12px;\r\n      color: #cbd5e1;\r\n      font-weight: 700;\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\">SuperEnalotto Winner Checker<\/h1>\r\n      <p class=\"checker-subtitle\">Enter 6 main numbers and optionally your Superstar number to see if this ticket would have won in the stored SuperEnalotto draws.<\/p>\r\n\r\n      <div class=\"checker-grid\" id=\"checkerInputs\">\r\n        <input type=\"number\" min=\"1\" max=\"90\" placeholder=\"1\">\r\n        <input type=\"number\" min=\"1\" max=\"90\" placeholder=\"2\">\r\n        <input type=\"number\" min=\"1\" max=\"90\" placeholder=\"3\">\r\n        <input type=\"number\" min=\"1\" max=\"90\" placeholder=\"4\">\r\n        <input type=\"number\" min=\"1\" max=\"90\" placeholder=\"5\">\r\n        <input type=\"number\" min=\"1\" max=\"90\" placeholder=\"6\">\r\n      <\/div>\r\n\r\n      <div class=\"checker-optional\">\r\n        <label>\r\n          Optional Superstar\r\n          <input type=\"number\" id=\"superstarInput\" min=\"1\" max=\"90\" placeholder=\"1-90\">\r\n        <\/label>\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 SuperEnalotto 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: \"1yfmrJmJQxGdXIBJqBh23VUXEfo5if-xy\",\r\n        2026: \"1_eRL-WFOTYF7zaO2eup-AyqMNJTg2xp8\"\r\n      };\r\n      const CACHE_PREFIX = \"superena-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 superstarInput = document.getElementById(\"superstarInput\");\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,I,J\");\r\n        const cb = \"__superenaWinnerCb_\" + 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 numericValues = [];\r\n          for (let j = 2; j < row.length; j++) {\r\n            const value = Number(String(row[j] == null ? \"\" : row[j]).trim());\r\n            if (Number.isFinite(value) && value >= 1 && value <= 90) {\r\n              numericValues.push(value);\r\n            }\r\n          }\r\n\r\n          if (numericValues.length < 6 || seen[drawId]) continue;\r\n          seen[drawId] = true;\r\n\r\n          const main = numericValues.slice(0, 6).sort(function (a, b) {\r\n            return a - b;\r\n          });\r\n          const jolly = numericValues.length > 6 ? numericValues[6] : null;\r\n          const superstar = numericValues.length > 7 ? numericValues[7] : null;\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            jolly: jolly,\r\n            superstar: superstar\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, hasJollyMatch) {\r\n        if (matchCount === 6) return \"Jackpot\";\r\n        if (matchCount === 5 && hasJollyMatch) return \"5 + Jolly\";\r\n        if (matchCount === 5) return \"5\";\r\n        if (matchCount === 4) return \"4\";\r\n        if (matchCount === 3) return \"3\";\r\n        if (matchCount === 2) return \"2\";\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, superstarValue) {\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 SuperEnalotto 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            (Number.isFinite(superstarValue) ? (\" + Superstar \" + superstarValue) : \"\") +\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, superstarValue) {\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          const extras = [];\r\n          if (Number.isFinite(result.draw.jolly)) {\r\n            extras.push('<span class=\"ball-label\">Jolly<\/span>' + renderBall(result.draw.jolly, \"jolly\"));\r\n          }\r\n          if (Number.isFinite(result.draw.superstar)) {\r\n            extras.push('<span class=\"ball-label\">SuperStar<\/span>' + renderBall(result.draw.superstar, \"superstar\"));\r\n          }\r\n\r\n          const notes = [];\r\n          notes.push(result.matchCount + \" main numbers matched\");\r\n          if (result.jollyMatched) notes.push(\"Jolly matched for 5 + Jolly\");\r\n          if (result.superstarMatched) notes.push(\"SuperStar matched too\");\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=\"ball-row\">' + extras.join('<span class=\"separator\">|<\/span>') + '<\/div>' +\r\n              '<div class=\"result-meta\">' + notes.join(\" | \") + '<\/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 main numbers.\");\r\n        }\r\n        if (nums.some(function (n) { return n < 1 || n > 90; })) {\r\n          throw new Error(\"Main numbers must be between 1 and 90.\");\r\n        }\r\n\r\n        const unique = Array.from(new Set(nums));\r\n        if (unique.length !== 6) {\r\n          throw new Error(\"Main numbers must be unique.\");\r\n        }\r\n\r\n        const superstarRaw = String(superstarInput.value || \"\").trim();\r\n        const superstarValue = superstarRaw ? Number(superstarRaw) : null;\r\n        if (superstarRaw && (!Number.isFinite(superstarValue) || superstarValue < 1 || superstarValue > 90)) {\r\n          throw new Error(\"Superstar must be between 1 and 90.\");\r\n        }\r\n\r\n        unique.sort(function (a, b) { return a - b; });\r\n        return { numbers: unique, superstar: superstarValue };\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.numbers.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 unmatchedTicket = ticket.numbers.filter(function (n) {\r\n            return !matches.includes(n);\r\n          });\r\n          const jollyMatched = matchCount === 5 && Number.isFinite(draw.jolly) && unmatchedTicket.length === 1 && unmatchedTicket[0] === draw.jolly;\r\n          const tier = getTier(matchCount, jollyMatched);\r\n          const superstarMatched = Number.isFinite(ticket.superstar) && Number.isFinite(draw.superstar) && ticket.superstar === draw.superstar;\r\n\r\n          return {\r\n            draw: draw,\r\n            matches: matches,\r\n            matchCount: matchCount,\r\n            jollyMatched: jollyMatched,\r\n            superstarMatched: superstarMatched,\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 = { \"Jackpot\": 6, \"5 + Jolly\": 5, \"5\": 4, \"4\": 3, \"3\": 2, \"2\": 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.numbers, ticket.superstar);\r\n        renderResults(results, ticket.superstar);\r\n      }\r\n\r\n      function clearInputs() {\r\n        inputEls.forEach(function (el) { el.value = \"\"; });\r\n        superstarInput.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 SuperEnalotto 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.concat([superstarInput]).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-b1ba271 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"b1ba271\" 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-bb79f90 elementor-widget elementor-widget-html\" data-id=\"bb79f90\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n.se-super-wrap {\r\n  font-family: Arial, sans-serif;\r\n  color: #111;\r\n}\r\n\r\n.se-super-wrap .llw-card,\r\n.se-super-wrap .llw-box,\r\n.se-super-wrap .llw-number,\r\n.se-super-wrap .llw-search,\r\n.se-super-wrap .llw-note,\r\n.se-super-wrap .llw-title,\r\n.se-super-wrap .llw-heading {\r\n  box-sizing: border-box;\r\n}\r\n\r\n.se-super-wrap .llw-card {\r\n  text-align: center;\r\n}\r\n\r\n.se-super-wrap .llw-card h3 {\r\n  text-align: center;\r\n  margin-bottom: 15px;\r\n}\r\n\r\n.se-super-wrap .llw-card canvas {\r\n  display: block;\r\n  margin: 0 auto;\r\n  max-width: 100%;\r\n}\r\n\r\n.se-super-wrap .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.se-super-wrap .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.se-super-wrap .lw-columns {\r\n  display: flex;\r\n  gap: 20px;\r\n  flex-wrap: wrap;\r\n}\r\n\r\n.se-super-wrap .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.se-super-wrap .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.se-super-wrap .lw-hot {\r\n  background: linear-gradient(135deg, #ff4d4d, #cc0000);\r\n}\r\n\r\n.se-super-wrap .lw-cold {\r\n  background: linear-gradient(135deg, #4da6ff, #003366);\r\n}\r\n\r\n.se-super-wrap .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  gap: 10px;\r\n}\r\n\r\n.se-super-wrap .lw-meta {\r\n  flex: 1;\r\n  text-align: right;\r\n  color: #fff;\r\n}\r\n\r\n.se-super-wrap .lw-search {\r\n  margin-top: 25px;\r\n  text-align: center;\r\n}\r\n\r\n.se-super-wrap .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.se-super-wrap .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.se-super-wrap .lw-result {\r\n  margin-top: 15px;\r\n  color: #000;\r\n  font-weight: bold;\r\n}\r\n\r\n.se-super-wrap .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=\"se-super-wrap\">\r\n  <div class=\"lw-infographic\">\r\n    <div class=\"lw-title\">\ud83d\udd25 Hot & \u2744\ufe0f Cold SuperEnalotto 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=\"se-super-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=\"se-super-cold-list\">Loading...<\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"lw-search\">\r\n      <input type=\"number\" id=\"se-super-search-input\" placeholder=\"Search number (1-90)\" min=\"1\" max=\"90\">\r\n      <button id=\"se-super-search-btn\">Search<\/button>\r\n      <div id=\"se-super-search-result\" class=\"lw-result\"><\/div>\r\n    <\/div>\r\n\r\n    <div class=\"lw-note\">\r\n      These statistics are based on the pasted SuperEnalotto sheets and do not influence future lottery draws.\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <section class=\"llw-section llw-alt\">\r\n    <div class=\"llw-container\">\r\n      <h2 class=\"llw-heading\" style=\"text-align:center;\">SuperEnalotto 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=\"se-super-odd-even-chart\"><\/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=\"se-super-high-low-chart\"><\/canvas>\r\n        <\/div>\r\n\r\n        <div class=\"llw-card\">\r\n          <h3>\ud83d\udd22 Number Distribution<\/h3>\r\n          <canvas id=\"se-super-range-chart\"><\/canvas>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/section>\r\n\r\n  <section class=\"llw-section\">\r\n    <div class=\"llw-container\" style=\"text-align:center;\">\r\n      <h2 class=\"llw-heading\">SuperEnalotto Number Patterns<\/h2>\r\n\r\n      <div class=\"llw-grid\" style=\"text-align:center;\">\r\n        <div class=\"llw-card\" style=\"text-align:center;\">\r\n          <h3>\ud83d\udd17 Common Pairs<\/h3>\r\n          <div id=\"se-super-pairs\">Loading...<\/div>\r\n        <\/div>\r\n\r\n        <div class=\"llw-card\" style=\"text-align:center;\">\r\n          <h3>\ud83d\udd3a Common Triplets<\/h3>\r\n          <div id=\"se-super-triplets\">Loading...<\/div>\r\n        <\/div>\r\n\r\n        <div class=\"llw-card\" style=\"text-align:center;\">\r\n          <h3>\u2795 Consecutive Numbers<\/h3>\r\n          <div id=\"se-super-consecutive\">Loading...<\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/section>\r\n\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 SuperEnalotto Yearly Number Trends<\/h2>\r\n      <div class=\"llw-grid\" id=\"se-super-yearly-grid\">\r\n        <div class=\"llw-card\">\r\n          <h3>Loading yearly trends...<\/h3>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/section>\r\n<\/div>\r\n\r\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/chart.js\"><\/script>\r\n<script>\r\n(function () {\r\n  const SHEETS = {\r\n    2025: \"1yfmrJmJQxGdXIBJqBh23VUXEfo5if-xy\",\r\n    2026: \"1_eRL-WFOTYF7zaO2eup-AyqMNJTg2xp8\"\r\n  };\r\n  const CACHE_PREFIX = \"superenalotto-super-cache-v2-\";\r\n  const CACHE_MAX_AGE_MS = 6 * 60 * 60 * 1000;\r\n  const LOAD_CONCURRENCY = 2;\r\n\r\n  const state = {\r\n    globalStats: {},\r\n    totalDraws: 0\r\n  };\r\n  const yearDrawCache = {};\r\n\r\n  function readYearCache(year) {\r\n    try {\r\n      if (!window.localStorage) return null;\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 (!parsed.draws.length) 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      if (!window.localStorage) return;\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 gvizFetchRows(sheetId) {\r\n    const tq = encodeURIComponent(\"select A,B,C,D,E,F,G,H,I,J\");\r\n    const cb = \"__superenaSuperCb_\" + 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 = [];\r\n\r\n      for (let j = 2; j < row.length; j++) {\r\n        const value = Number(String(row[j] == null ? \"\" : row[j]).trim());\r\n        if (Number.isFinite(value) && value >= 1 && value <= 90) {\r\n          main.push(value);\r\n        }\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        main: main.slice(0, 6).sort(function (a, b) {\r\n          return a - b;\r\n        })\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    yearDraws.sort(function (a, b) {\r\n      return a.drawId - b.drawId;\r\n    });\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 groupedDraws = new Array(years.length);\r\n    const globalSeen = {};\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        groupedDraws[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 allDraws = [];\r\n    for (let i = 0; i < groupedDraws.length; i++) {\r\n      const yearDraws = groupedDraws[i] || [];\r\n      for (let j = 0; j < yearDraws.length; j++) {\r\n        const draw = yearDraws[j];\r\n        const uniqueKey = String(draw.year) + \"-\" + String(draw.drawId);\r\n        if (globalSeen[uniqueKey]) continue;\r\n        globalSeen[uniqueKey] = true;\r\n        allDraws.push(draw);\r\n      }\r\n    }\r\n\r\n    return allDraws;\r\n  }\r\n\r\n  function scheduleBackgroundWork(task) {\r\n    if (window.requestIdleCallback) {\r\n      window.requestIdleCallback(function () {\r\n        task();\r\n      }, { timeout: 1000 });\r\n      return;\r\n    }\r\n    setTimeout(task, 0);\r\n  }\r\n\r\n  function renderPatternItems(items) {\r\n    if (!items.length) return \"<p>No pattern data available.<\/p>\";\r\n\r\n    return items.map(function (item) {\r\n      const numbers = item[0].split(\"-\");\r\n      return (\r\n        '<div style=\"margin-bottom:10px; text-align:center;\">' +\r\n          '<div>' +\r\n            numbers.map(function (n) {\r\n              return (\r\n                '<span style=\"display:inline-block;background:#fff;color:#000;border-radius:50%;width:36px;height:36px;line-height:36px;text-align:center;font-weight:bold;margin:3px;border:1px solid #ccc;\">' +\r\n                  n +\r\n                \"<\/span>\"\r\n              );\r\n            }).join(\"\") +\r\n          '<\/div>' +\r\n          '<div style=\"margin-top:4px;color:#fff;font-weight:bold;\">(' + item[1] + 'x)<\/div>' +\r\n        '<\/div>'\r\n      );\r\n    }).join(\"\");\r\n  }\r\n\r\n  function renderYearCard(year, top) {\r\n    if (!top.length) {\r\n      return (\r\n        '<div class=\"llw-card\" style=\"text-align:center;\">' +\r\n          '<h3>\ud83d\udd25 Top Numbers (' + year + ')<\/h3>' +\r\n          '<p>No data found.<\/p>' +\r\n        '<\/div>'\r\n      );\r\n    }\r\n\r\n    return (\r\n      '<div class=\"llw-card\" style=\"text-align:center;\">' +\r\n        '<h3>\ud83d\udd25 Top Numbers (' + year + ')<\/h3>' +\r\n        '<div>' +\r\n          top.map(function (item) {\r\n            return (\r\n              '<div style=\"display:inline-block;text-align:center;margin:6px;\">' +\r\n                '<div style=\"background:#fff;color:#000;border-radius:50%;width:48px;height:48px;line-height:48px;font-weight:bold;margin:auto;border:2px solid rgba(0,0,0,0.25);box-sizing:border-box;\">' + item[0] + '<\/div>' +\r\n                '<div style=\"font-size:12px; margin-top:4px;\">' + item[1] + 'x<\/div>' +\r\n              '<\/div>'\r\n            );\r\n          }).join(\"\") +\r\n        '<\/div>' +\r\n      '<\/div>'\r\n    );\r\n  }\r\n\r\n  function renderHotCold(list, mode) {\r\n    if (!list.length) return \"<p>No data available.<\/p>\";\r\n\r\n    const maxValue = mode === \"hot\" ? list[0].count : list[0].gap;\r\n\r\n    function renderBall(num) {\r\n      if (mode === \"cold\") {\r\n        return (\r\n          '<svg width=\"38\" height=\"38\" viewBox=\"0 0 38 38\" aria-hidden=\"true\" style=\"display:block;min-width:38px;\">' +\r\n            '<circle cx=\"19\" cy=\"19\" r=\"17\" fill=\"#cfe8ff\" stroke=\"#5aa9ff\" stroke-width=\"3\"><\/circle>' +\r\n            '<text x=\"19\" y=\"24\" text-anchor=\"middle\" font-family=\"Arial, sans-serif\" font-size=\"14\" font-weight=\"700\" fill=\"#003b73\">' + num + '<\/text>' +\r\n          '<\/svg>'\r\n        );\r\n      }\r\n\r\n      return '<span style=\"display:inline-flex !important;align-items:center !important;justify-content:center !important;width:34px !important;height:34px !important;min-width:34px !important;border-radius:50% !important;background:#ffffff !important;color:#000000 !important;-webkit-text-fill-color:#000000 !important;border:2px solid rgba(0,0,0,0.35) !important;font-weight:bold !important;box-sizing:border-box !important;\">' + num + '<\/span>';\r\n    }\r\n\r\n    return list.map(function (item) {\r\n      const intensityBase = mode === \"hot\" ? item.count : item.gap;\r\n      const intensity = maxValue > 0 ? intensityBase \/ maxValue : 0;\r\n      const bg = mode === \"cold\"\r\n        ? \"rgba(140,195,255,\" + (0.22 + intensity * 0.28) + \")\"\r\n        : \"rgba(255,255,255,\" + (0.1 + intensity * 0.4) + \")\";\r\n\r\n      return (\r\n        '<div class=\"lw-number\" style=\"background:' + bg + ' !important;\">' +\r\n          renderBall(item.num) +\r\n          '<span class=\"lw-meta\">' + item.count + 'x | ' + item.gap + ' draws ago<\/span>' +\r\n        '<\/div>'\r\n      );\r\n    }).join(\"\");\r\n  }\r\n\r\n  function renderAnalysisCharts(draws) {\r\n    let odd = 0;\r\n    let even = 0;\r\n    let low = 0;\r\n    let high = 0;\r\n    const ranges = [0, 0, 0, 0, 0];\r\n\r\n    draws.forEach(function (draw) {\r\n      draw.main.forEach(function (n) {\r\n        if (n % 2 === 0) even++;\r\n        else odd++;\r\n\r\n        if (n <= 45) low++;\r\n        else high++;\r\n\r\n        if (n <= 18) ranges[0]++;\r\n        else if (n <= 36) ranges[1]++;\r\n        else if (n <= 54) ranges[2]++;\r\n        else if (n <= 72) ranges[3]++;\r\n        else ranges[4]++;\r\n      });\r\n    });\r\n\r\n    new Chart(document.getElementById(\"se-super-odd-even-chart\"), {\r\n      type: \"bar\",\r\n      data: {\r\n        labels: [\"Odd\", \"Even\"],\r\n        datasets: [{\r\n          data: [odd, even],\r\n          backgroundColor: [\"#7c3aed\", \"#06b6d4\"],\r\n          borderColor: [\"#5b21b6\", \"#0e7490\"],\r\n          borderWidth: 1,\r\n          borderRadius: 8\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(\"se-super-high-low-chart\"), {\r\n      type: \"bar\",\r\n      data: {\r\n        labels: [\"Low (1-45)\", \"High (46-90)\"],\r\n        datasets: [{\r\n          data: [low, high],\r\n          backgroundColor: [\"#22c55e\", \"#f59e0b\"],\r\n          borderColor: [\"#15803d\", \"#b45309\"],\r\n          borderWidth: 1,\r\n          borderRadius: 8\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(\"se-super-range-chart\"), {\r\n      type: \"bar\",\r\n      data: {\r\n        labels: [\"1-18\", \"19-36\", \"37-54\", \"55-72\", \"73-90\"],\r\n        datasets: [{\r\n          data: ranges,\r\n          backgroundColor: [\"#3b82f6\", \"#06b6d4\", \"#8b5cf6\", \"#ec4899\", \"#ef4444\"],\r\n          borderColor: [\"#1d4ed8\", \"#0e7490\", \"#6d28d9\", \"#be185d\", \"#b91c1c\"],\r\n          borderWidth: 1,\r\n          borderRadius: 8\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  function renderPatterns(draws) {\r\n    const pairFreq = {};\r\n    const tripletFreq = {};\r\n    const consecutiveFreq = {};\r\n\r\n    draws.forEach(function (draw) {\r\n      const numbers = draw.main.slice().sort(function (a, b) {\r\n        return a - b;\r\n      });\r\n\r\n      for (let i = 0; i < numbers.length; i++) {\r\n        for (let j = i + 1; j < numbers.length; j++) {\r\n          const key = numbers[i] + \"-\" + numbers[j];\r\n          pairFreq[key] = (pairFreq[key] || 0) + 1;\r\n        }\r\n      }\r\n\r\n      for (let i = 0; i < numbers.length; i++) {\r\n        for (let j = i + 1; j < numbers.length; j++) {\r\n          for (let k = j + 1; k < numbers.length; k++) {\r\n            const key = numbers[i] + \"-\" + numbers[j] + \"-\" + numbers[k];\r\n            tripletFreq[key] = (tripletFreq[key] || 0) + 1;\r\n          }\r\n        }\r\n      }\r\n\r\n      for (let i = 0; i < numbers.length - 1; i++) {\r\n        if (numbers[i + 1] === numbers[i] + 1) {\r\n          const key = numbers[i] + \"-\" + numbers[i + 1];\r\n          consecutiveFreq[key] = (consecutiveFreq[key] || 0) + 1;\r\n        }\r\n      }\r\n    });\r\n\r\n    const topPairs = Object.entries(pairFreq).sort(function (a, b) {\r\n      return b[1] - a[1];\r\n    }).slice(0, 5);\r\n    const topTriplets = Object.entries(tripletFreq).sort(function (a, b) {\r\n      return b[1] - a[1];\r\n    }).slice(0, 5);\r\n    const topConsecutive = Object.entries(consecutiveFreq).sort(function (a, b) {\r\n      return b[1] - a[1];\r\n    }).slice(0, 5);\r\n\r\n    document.getElementById(\"se-super-pairs\").innerHTML = renderPatternItems(topPairs);\r\n    document.getElementById(\"se-super-triplets\").innerHTML = renderPatternItems(topTriplets);\r\n    document.getElementById(\"se-super-consecutive\").innerHTML = renderPatternItems(topConsecutive);\r\n  }\r\n\r\n  function renderYearlyTrends(draws) {\r\n    const years = Object.keys(SHEETS).sort(function (a, b) {\r\n      return Number(b) - Number(a);\r\n    });\r\n    let html = \"\";\r\n\r\n    for (let i = 0; i < years.length; i++) {\r\n      const year = Number(years[i]);\r\n      const freq = {};\r\n\r\n      draws.filter(function (draw) {\r\n        return draw.year === year;\r\n      }).forEach(function (draw) {\r\n        draw.main.forEach(function (n) {\r\n          freq[n] = (freq[n] || 0) + 1;\r\n        });\r\n      });\r\n\r\n      const top = Object.entries(freq).sort(function (a, b) {\r\n        if (b[1] !== a[1]) return b[1] - a[1];\r\n        return Number(a[0]) - Number(b[0]);\r\n      }).slice(0, 10);\r\n\r\n      html += renderYearCard(year, top);\r\n    }\r\n\r\n    document.getElementById(\"se-super-yearly-grid\").innerHTML =\r\n      html || '<div class=\"llw-card\"><p>No yearly SuperEnalotto data found.<\/p><\/div>';\r\n  }\r\n\r\n  function renderHotColdSection(draws) {\r\n    const freq = {};\r\n    const lastSeen = {};\r\n\r\n    for (let i = 1; i <= 90; i++) {\r\n      freq[i] = 0;\r\n      lastSeen[i] = -1;\r\n    }\r\n\r\n    draws.forEach(function (draw, index) {\r\n      draw.main.forEach(function (n) {\r\n        freq[n]++;\r\n        lastSeen[n] = index;\r\n      });\r\n    });\r\n\r\n    state.totalDraws = draws.length;\r\n\r\n    const stats = Object.keys(freq).map(function (n) {\r\n      const num = parseInt(n, 10);\r\n      return {\r\n        num: num,\r\n        count: freq[num],\r\n        gap: lastSeen[num] === -1 ? state.totalDraws : state.totalDraws - lastSeen[num]\r\n      };\r\n    });\r\n\r\n    stats.forEach(function (item) {\r\n      state.globalStats[item.num] = item;\r\n    });\r\n\r\n    const hot = stats.slice().sort(function (a, b) {\r\n      if (b.count !== a.count) return b.count - a.count;\r\n      return a.num - b.num;\r\n    }).slice(0, 10);\r\n\r\n    const cold = stats.slice().sort(function (a, b) {\r\n      if (a.count !== b.count) return a.count - b.count;\r\n      if (b.gap !== a.gap) return b.gap - a.gap;\r\n      return a.num - b.num;\r\n    }).slice(0, 10);\r\n\r\n    document.getElementById(\"se-super-hot-list\").innerHTML = renderHotCold(hot, \"hot\");\r\n    document.getElementById(\"se-super-cold-list\").innerHTML = renderHotCold(cold, \"cold\");\r\n  }\r\n\r\n  function setupSearch() {\r\n    const inputEl = document.getElementById(\"se-super-search-input\");\r\n    const buttonEl = document.getElementById(\"se-super-search-btn\");\r\n    const resultEl = document.getElementById(\"se-super-search-result\");\r\n\r\n    function searchNumber() {\r\n      const num = parseInt(inputEl.value, 10);\r\n      if (!num || num < 1 || num > 90) {\r\n        resultEl.innerHTML = \"Enter a valid number (1-90)\";\r\n        return;\r\n      }\r\n\r\n      const data = state.globalStats[num];\r\n      if (!data || data.count === 0) {\r\n        resultEl.innerHTML = \"Number \" + num + \" has not appeared yet.\";\r\n        return;\r\n      }\r\n\r\n      resultEl.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    buttonEl.addEventListener(\"click\", searchNumber);\r\n    inputEl.addEventListener(\"keypress\", function (e) {\r\n      if (e.key === \"Enter\") searchNumber();\r\n    });\r\n  }\r\n\r\n  function renderGlobalError(message) {\r\n    document.getElementById(\"se-super-hot-list\").innerHTML = message;\r\n    document.getElementById(\"se-super-cold-list\").innerHTML = message;\r\n    document.getElementById(\"se-super-pairs\").innerHTML = message;\r\n    document.getElementById(\"se-super-triplets\").innerHTML = message;\r\n    document.getElementById(\"se-super-consecutive\").innerHTML = message;\r\n    document.getElementById(\"se-super-yearly-grid\").innerHTML = '<div class=\"llw-card\"><p>' + message.replace(\/<[^>]+>\/g, \"\") + '<\/p><\/div>';\r\n\r\n    const oddCard = document.getElementById(\"se-super-odd-even-chart\");\r\n    const highCard = document.getElementById(\"se-super-high-low-chart\");\r\n    const rangeCard = document.getElementById(\"se-super-range-chart\");\r\n    if (oddCard && oddCard.parentNode) oddCard.parentNode.innerHTML = \"<p>Unable to load SuperEnalotto analysis.<\/p>\";\r\n    if (highCard && highCard.parentNode) highCard.parentNode.innerHTML = \"<p>Unable to load SuperEnalotto analysis.<\/p>\";\r\n    if (rangeCard && rangeCard.parentNode) rangeCard.parentNode.innerHTML = \"<p>Unable to load SuperEnalotto analysis.<\/p>\";\r\n  }\r\n\r\n  async function init() {\r\n    setupSearch();\r\n\r\n    try {\r\n      const allDraws = await loadAllDraws();\r\n      if (!allDraws.length) {\r\n        renderGlobalError(\"<p>No SuperEnalotto draws found.<\/p>\");\r\n        return;\r\n      }\r\n\r\n      renderHotColdSection(allDraws);\r\n      renderAnalysisCharts(allDraws);\r\n\r\n      scheduleBackgroundWork(function () {\r\n        renderPatterns(allDraws);\r\n        renderYearlyTrends(allDraws);\r\n      });\r\n    } catch (err) {\r\n      renderGlobalError(\"<p>Unable to load SuperEnalotto data.<\/p>\");\r\n    }\r\n  }\r\n\r\n  init();\r\n})();\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0af8d0e elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"0af8d0e\" 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-3cf6510 elementor-widget elementor-widget-html\" data-id=\"3cf6510\" 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>SuperEnalotto - Next Draw Countdown<\/title>\r\n  <style>\r\n    body {\r\n      font-family: Arial, sans-serif;\r\n      background: #111;\r\n      color: white;\r\n      margin: 0;\r\n      padding: 0;\r\n      display: flex;\r\n      flex-direction: column;\r\n      justify-content: center;\r\n      align-items: center;\r\n      min-height: 100vh;\r\n      text-align: center;\r\n    }\r\n    h1 {\r\n      font-size: 32px;\r\n      margin-bottom: 20px;\r\n      text-align: center;\r\n    }\r\n    .countdown-box {\r\n      background: #0b0b0b;\r\n      padding: 30px 40px;\r\n      border-radius: 12px;\r\n      margin-top: 20px;\r\n      box-shadow: 0 4px 12px rgba(0,0,0,0.5);\r\n      display: flex;\r\n      flex-direction: column;\r\n      align-items: center;\r\n      justify-content: center;\r\n      text-align: center;\r\n    }\r\n    .draw-info {\r\n      font-size: 1.2rem;\r\n      color: #ddd;\r\n      margin-bottom: 15px;\r\n      text-align: center;\r\n    }\r\n    #countdown {\r\n      font-size: 1.5rem;\r\n      color: #ffcc00;\r\n      font-weight: bold;\r\n      text-align: center;\r\n    }\r\n  <\/style>\r\n<\/head>\r\n<body>\r\n\r\n  <h1>\ud83c\udfab SuperEnalotto<\/h1>\r\n\r\n  <div class=\"countdown-box\">\r\n    <div class=\"draw-info\">\r\n      The draw takes place every Tuesday, Thursday and Saturday at 20:00\r\n    <\/div>\r\n    <div id=\"countdown\">Loading...<\/div>\r\n  <\/div>\r\n\r\n  <script>\r\n    function getNextDrawDate() {\r\n      const now = new Date();\r\n      const drawDays = [2, 4, 6]; \/\/ Tuesday=2, Thursday=4, 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  <\/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-6b89767 e-flex e-con-boxed e-con e-parent\" data-id=\"6b89767\" 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-0a908c1 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"0a908c1\" 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-1f212e7 elementor-widget elementor-widget-heading\" data-id=\"1f212e7\" 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 SuperEnalotto Results and Information<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-90d9df9 elementor-widget elementor-widget-text-editor\" data-id=\"90d9df9\" 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=\"198\" data-end=\"237\">The <strong data-start=\"209\" data-end=\"226\">SuperEnalotto<\/strong> is one of Italy\u2019s most popular and long-standing lotteries, attracting thousands of players each week who dream of winning life-changing jackpots. Known for its massive prize pools and exciting draws, the SuperEnalotto provides an entertaining and thrilling experience for lottery enthusiasts across Italy and beyond. This page is dedicated to providing accurate and up-to-date <strong data-start=\"605\" data-end=\"622\">SuperEnalotto<\/strong> results, jackpot information, and insights into prize structures.<\/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-9c814e4 e-flex e-con-boxed e-con e-parent\" data-id=\"9c814e4\" 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-0b810ed elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"0b810ed\" 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-fa81827 elementor-widget elementor-widget-heading\" data-id=\"fa81827\" 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 SuperEnalotto<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-92a2a3e elementor-widget elementor-widget-text-editor\" data-id=\"92a2a3e\" 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=\"720\" data-end=\"1199\">Playing the <strong data-start=\"732\" data-end=\"749\">SuperEnalotto<\/strong> is simple, yet the game offers enormous winning potential. To participate, players must choose six numbers from 1 to 90. Additionally, a \u201cJolly\u201d number is drawn in each game, offering players a chance to win secondary prizes. Players can buy tickets at authorized retailers in Italy or online through official platforms. Each draw provides multiple prize tiers, allowing even those who don\u2019t hit the jackpot to win smaller but significant amounts.<\/h6><h6 data-start=\"1201\" data-end=\"1481\">Tickets can be purchased individually or as part of a syndicate, increasing your chances of winning by pooling together selections. SuperEnalotto draws are held three times a week\u2014on Tuesday, Thursday, and Saturday\u2014giving players multiple opportunities to play and win every week.<\/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-d5ad158 e-flex e-con-boxed e-con e-parent\" data-id=\"d5ad158\" 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-ff4e6bf elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"ff4e6bf\" 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-dbd5d86 elementor-widget elementor-widget-heading\" data-id=\"dbd5d86\" 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 SuperEnalotto Prizes<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9b8ebf2 elementor-widget elementor-widget-text-editor\" data-id=\"9b8ebf2\" 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=\"1508\" data-end=\"1896\">There are\u00a0seven prize categories, ranging from matching two numbers to hitting all six numbers plus the Jolly for the jackpot. The minimum jackpot starts at \u20ac1 million and can roll over to reach staggering amounts, sometimes exceeding \u20ac200 million. Secondary prizes also provide attractive payouts, rewarding players who correctly match a subset of the drawn numbers.<\/h6><h6 data-start=\"1898\" data-end=\"2262\">Jackpot winners often make headlines due to the sheer size of the prizes. However, even smaller wins contribute to the excitement, and regular players appreciate the frequent opportunities for prizes. Keeping track of past results can also help players understand patterns and improve their number selection strategy, although the game is ultimately based on luck.<\/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-b837d7d e-flex e-con-boxed e-con e-parent\" data-id=\"b837d7d\" 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-77f83e0 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"77f83e0\" 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-a956580 elementor-widget elementor-widget-heading\" data-id=\"a956580\" 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 SuperEnalotto Results and Statistics<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-51f0de3 elementor-widget elementor-widget-text-editor\" data-id=\"51f0de3\" 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=\"2314\" data-end=\"2589\">Results\u00a0are published immediately after each draw. On this page, you can find the latest winning numbers, historical draws, and jackpot totals. Whether you missed a draw or want to review past results, all data is presented clearly and accurately.<\/h6><h6 data-start=\"2591\" data-end=\"2980\">Statistics are also available, showing frequently drawn numbers, rare numbers, and patterns observed in previous draws. While the lottery is a game of chance, many players enjoy analyzing past data to guide their selections. By staying updated with the latest <strong data-start=\"2851\" data-end=\"2868\">SuperEnalotto<\/strong> results, you can quickly see whether your ticket is a winner and how prize tiers are distributed for each draw.<\/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-6e4b3dc e-flex e-con-boxed e-con e-parent\" data-id=\"6e4b3dc\" 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-febce96 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"febce96\" 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-3ed5b49 elementor-widget elementor-widget-heading\" data-id=\"3ed5b49\" 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 Tips for Enthusiasts<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b2dbb12 elementor-widget elementor-widget-text-editor\" data-id=\"b2dbb12\" 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=\"3021\" data-end=\"3360\">Although the <strong data-start=\"3034\" data-end=\"3051\">SuperEnalotto<\/strong> is based on chance, there are ways to enjoy the game responsibly. Setting a budget for how much to spend each week, playing in a group, and checking results regularly are all practical strategies. Additionally, always purchasing tickets from official sources ensures your participation is valid and secure.<\/h6><h6 data-start=\"3362\" data-end=\"3657\">Fans also follow jackpot announcements closely, as the excitement builds significantly when the prize rolls over to record levels. By combining careful play with up-to-date information from trusted sources, participants can enjoy the game fully while keeping their experience safe and enjoyable.<\/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-b03014c e-flex e-con-boxed e-con e-parent\" data-id=\"b03014c\" 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-a34bd3f elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"a34bd3f\" 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-26973a6 elementor-widget elementor-widget-heading\" data-id=\"26973a6\" 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 Why Follow SuperEnalotto Results Online<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0f25f71 elementor-widget elementor-widget-text-editor\" data-id=\"0f25f71\" 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=\"3703\" data-end=\"4023\">Checking results online offers several benefits. It allows you to see numbers instantly after the draw, compare with your ticket selections, and understand the prize breakdown for each category. Many players also track historical draws to observe trends, although each draw remains completely random.<\/h6><h6 data-start=\"4025\" data-end=\"4331\">This page provides a reliable hub for enthusiasts, ensuring that you never miss an update. Whether you\u2019re a casual player or a dedicated lottery fan, having a centralized source for results, jackpot totals, and prize information is convenient and essential for anyone who plays regularly.<\/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-70fa473 e-flex e-con-boxed e-con e-parent\" data-id=\"70fa473\" 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-49534a3 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"49534a3\" 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-741af5d elementor-widget elementor-widget-html\" data-id=\"741af5d\" 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 SuperEnalotto?<\/b><br>\r\n      A: SuperEnalotto uses 8 numbers: 5 main numbers + 1 Joker + 1 Superstar.  \r\n      - Jackpot (all 5 main numbers + Superstar): <b>1 in 622,614,630<\/b><br>\r\n      - 5 main numbers + Joker: 1 in 103,769,105<br>\r\n      - 5 main numbers: 1 in 1,250,230<br>\r\n      - Other combinations vary, always extremely low odds.  \r\n      Lottery is purely chance-based.<\/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-9e53753 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"9e53753\" 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-adaf419 elementor-widget elementor-widget-heading\" data-id=\"adaf419\" 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\">You may also be interested in checking other popular lottery results.<\/h6>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b2d516e elementor-widget elementor-widget-html\" data-id=\"b2d516e\" 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\/euromillions-results\/\" class=\"lottery-button\">\r\n    EUROMILLIONS\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>SuperEnalotto Results Today Latest winning numbers, jackpot totals &#038; prize details SUPERENALOTTO SUPERENALOTTO \ud83c\udfab\ufe0f Last Draw Numbers Matched Prize Per Winner Winners Prize Fund Amount Recent Draws SuperEnalotto Winner Checker SuperEnalotto Winner Checker Enter 6 main numbers and optionally your Superstar number to see if this ticket would have won in the stored SuperEnalotto draws.<\/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-3409","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\/3409","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=3409"}],"version-history":[{"count":257,"href":"https:\/\/lotterylottowin.com\/el\/wp-json\/wp\/v2\/pages\/3409\/revisions"}],"predecessor-version":[{"id":6232,"href":"https:\/\/lotterylottowin.com\/el\/wp-json\/wp\/v2\/pages\/3409\/revisions\/6232"}],"wp:attachment":[{"href":"https:\/\/lotterylottowin.com\/el\/wp-json\/wp\/v2\/media?parent=3409"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}