{"id":6555,"date":"2026-07-19T19:07:27","date_gmt":"2026-07-19T17:07:27","guid":{"rendered":"https:\/\/www.aviglianabasket.it\/?page_id=6555"},"modified":"2026-07-19T19:07:33","modified_gmt":"2026-07-19T17:07:33","slug":"risultati-nba-a1-a2","status":"publish","type":"page","link":"https:\/\/www.aviglianabasket.it\/?page_id=6555","title":{"rendered":"Risultati NBA &#8211; A1 &#8211; A2"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"it\" class=\"dark\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, viewport-fit=cover\">\n<title>Risultati NBA \u00b7 A1 \u00b7 A2 \u2014 Avigliana Basket<\/title>\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Urbanist:ital,wght@0,400;0,500;0,600;0,700;0,800;1,700&#038;display=swap\" rel=\"stylesheet\">\n<style>\n:root {\n  --ink: #07080c;\n  --ink-2: #10131a;\n  --line: rgba(255,255,255,.08);\n  --text: #f4f6fb;\n  --muted: #8b93a7;\n  --signal: #C9A84C;\n  --signal-light: #E8D48B;\n  --brand-green: #4ade80;\n  --heat: #ff6b4a;\n  --radius: 18px;\n  --font: 'Urbanist', system-ui, sans-serif;\n  color-scheme: dark;\n}\n*, *::before, *::after { box-sizing: border-box; }\nhtml, body { margin: 0; min-height: 100%; }\nbody {\n  background:\n    radial-gradient(900px 420px at 10% -10%, rgba(201,168,76,.12), transparent 55%),\n    radial-gradient(700px 380px at 100% 0%, rgba(74,222,128,.08), transparent 50%),\n    var(--ink);\n  color: var(--text);\n  font-family: var(--font);\n}\na { color: inherit; text-decoration: none; }\n.wrap { width: min(1100px, calc(100% - 2rem)); margin: 0 auto; padding: 1.25rem 0 3rem; }\n.top {\n  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;\n  gap: .75rem; margin-bottom: 1.5rem;\n}\n.brand {\n  display: inline-flex; align-items: center; gap: .7rem; font-weight: 800;\n}\n.brand img { width: 42px; height: 42px; object-fit: contain; }\n.btn {\n  display: inline-flex; align-items: center; gap: .4rem;\n  border: 1px solid var(--line); background: rgba(255,255,255,.03);\n  color: var(--text); font-weight: 700; font-size: .85rem;\n  padding: .65rem 1rem; border-radius: 999px; cursor: pointer;\n}\n.btn:hover { border-color: rgba(201,168,76,.45); }\n.btn-primary {\n  background: var(--signal); color: #0b1220; border-color: var(--signal-light);\n}\nh1 {\n  margin: 0 0 .35rem; font-size: clamp(1.6rem, 3vw, 2.2rem); font-weight: 800;\n  letter-spacing: -.02em;\n}\n.lead { margin: 0; color: var(--muted); font-weight: 600; line-height: 1.45; }\n.tabs {\n  display: flex; flex-wrap: wrap; gap: .45rem; margin: 1.4rem 0 1rem;\n}\n.tab {\n  appearance: none; border: 1px solid var(--line);\n  background: rgba(255,255,255,.03); color: var(--muted);\n  font-weight: 800; font-size: .72rem; letter-spacing: .08em;\n  text-transform: uppercase; padding: .55rem .95rem; border-radius: 999px; cursor: pointer;\n}\n.tab.is-on {\n  color: #0b1220; background: var(--signal); border-color: var(--signal-light);\n  box-shadow: 0 0 18px rgba(201,168,76,.25);\n}\n.meta {\n  font-size: .78rem; color: var(--muted); font-weight: 600; margin-bottom: .85rem;\n}\n.grid {\n  display: grid;\n  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));\n  gap: .7rem;\n}\n.card {\n  background: #12151c; border: 1px solid rgba(255,255,255,.1);\n  border-radius: 12px; padding: .8rem .9rem .7rem;\n}\n.head { margin-bottom: .65rem; }\n.status {\n  display: block; font-size: .78rem; font-weight: 800;\n  letter-spacing: .04em; text-transform: uppercase;\n}\n.status.is-live { color: var(--heat); }\n.status.is-ft { color: var(--brand-green); }\n.sub {\n  display: block; margin-top: .2rem; font-size: .72rem; font-weight: 600; color: #9aa3b5;\n}\n.rows { display: grid; gap: .45rem; }\n.row {\n  display: grid; grid-template-columns: 28px 1fr auto;\n  align-items: center; gap: .55rem; min-height: 28px;\n}\n.row img {\n  width: 28px; height: 28px; object-fit: contain; border-radius: 50%;\n  background: rgba(255,255,255,.04);\n}\n.row .name {\n  font-size: .92rem; font-weight: 700; color: #e8ecf4;\n  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\n}\n.row .score {\n  font-size: 1.05rem; font-weight: 800; color: #7d8698; min-width: 1.6ch; text-align: right;\n}\n.row.is-winner .name, .row.is-winner .score { color: #fff; }\n.foot {\n  margin-top: .65rem; padding-top: .5rem;\n  border-top: 1px solid rgba(255,255,255,.08);\n  font-size: .68rem; font-weight: 700; color: #8b93a7;\n}\n.empty {\n  grid-column: 1 \/ -1; padding: 2rem 1rem; text-align: center;\n  border: 1px dashed var(--line); border-radius: var(--radius);\n  color: var(--muted); font-weight: 700;\n}\n<\/style>\n<\/head>\n<body>\n  <div class=\"wrap\">\n    <div class=\"top\">\n      <a class=\"brand\" href=\"https:\/\/www.aviglianabasket.it\/\">\n        <img decoding=\"async\" crossorigin=\"anonymous\" src=\"https:\/\/www.aviglianabasket.it\/wp-content\/uploads\/2026\/05\/LOGO_AB.png\" alt=\"Avigliana Basket\" title=\"\">\n        <span>Avigliana Basket<\/span>\n      <\/a>\n      <div style=\"display:flex;gap:.45rem;flex-wrap:wrap\">\n        <button type=\"button\" class=\"btn\" id=\"btn-refresh\">Aggiorna<\/button>\n        <a class=\"btn btn-primary\" href=\"https:\/\/www.aviglianabasket.it\/\">Torna alla home<\/a>\n      <\/div>\n    <\/div>\n\n    <h1>Risultati NBA \u00b7 A1 \u00b7 A2<\/h1>\n    <p class=\"lead\">NBA da ESPN (stagione corrente). Serie A1\/A2 da fonti free (elenco ridotto).<\/p>\n\n    <div class=\"tabs\" role=\"tablist\" aria-label=\"Campionato\">\n      <button type=\"button\" class=\"tab is-on\" data-league=\"nba\" role=\"tab\" aria-selected=\"true\">NBA<\/button>\n      <button type=\"button\" class=\"tab\" data-league=\"a1\" role=\"tab\" aria-selected=\"false\">Serie A1<\/button>\n      <button type=\"button\" class=\"tab\" data-league=\"a2\" role=\"tab\" aria-selected=\"false\">Serie A2<\/button>\n    <\/div>\n    <div class=\"meta\" id=\"meta\">Caricamento\u2026<\/div>\n    <div class=\"grid\" id=\"grid\" aria-live=\"polite\">\n      <div class=\"empty\">Caricamento risultati\u2026<\/div>\n    <\/div>\n  <\/div>\n\n<script>\n(() => {\n  const CLOUD = 'https:\/\/www.aviglianabasket.cloud';\n  const cache = {};\n  let active = 'nba';\n\n  const esc = (s) => String(s ?? '')\n    .replace(\/&\/g, '&amp;').replace(\/<\/g, '&lt;').replace(\/\"\/g, '&quot;');\n\n  const rowHtml = (logo, name, pts, winner) => `\n    <div class=\"row${winner ? ' is-winner' : ''}\">\n      ${logo ? `<img decoding=\"async\" crossorigin=\"anonymous\" src=\"${esc(logo)}\" alt=\"\" onerror=\"this.style.visibility='hidden'\">` : '<span><\/span>'}\n      <span class=\"name\">${esc(name)}<\/span>\n      <span class=\"score\">${pts == null || pts === '' ? '\u2014' : pts}<\/span>\n    <\/div>`;\n\n  function render(games, league) {\n    const grid = document.getElementById('grid');\n    const meta = document.getElementById('meta');\n    const src = league?.source ? ` \u00b7 fonte ${league.source}` : '';\n    const season = league?.season ? ` \u00b7 stagione ${league.season}` : '';\n    const note = league?.note ? ` \u00b7 ${league.note}` : '';\n    meta.textContent = `${games?.length || 0} partite${season}${src}${note}`;\n\n    if (!games || !games.length) {\n      grid.innerHTML = `<div class=\"empty\">Nessun risultato recente per ${esc(league?.label || 'questo campionato')}.<\/div>`;\n      return;\n    }\n    grid.innerHTML = games.map((g) => {\n      const hs = g.home?.score;\n      const as = g.away?.score;\n      const homeWin = hs != null && as != null && Number(hs) > Number(as);\n      const awayWin = hs != null && as != null && Number(as) > Number(hs);\n      let status = 'FINALE';\n      let statusClass = 'is-ft';\n      if (g.live) { status = 'LIVE'; statusClass = 'is-live'; }\n      const foot = [g.date_label, league?.name || league?.label].filter(Boolean).join(' \u00b7 ');\n      return `<article class=\"card\">\n        <div class=\"head\">\n          <span class=\"status ${statusClass}\">${esc(status)}<\/span>\n          <span class=\"sub\">${esc(g.home?.name || '')} vs ${esc(g.away?.name || '')}<\/span>\n        <\/div>\n        <div class=\"rows\">\n          ${rowHtml(g.home?.logo, g.home?.name, hs, homeWin)}\n          ${rowHtml(g.away?.logo, g.away?.name, as, awayWin)}\n        <\/div>\n        <div class=\"foot\">${esc(foot)}<\/div>\n      <\/article>`;\n    }).join('');\n  }\n\n  async function load(league, force) {\n    active = league || active;\n    document.querySelectorAll('.tab').forEach((btn) => {\n      const on = btn.getAttribute('data-league') === active;\n      btn.classList.toggle('is-on', on);\n      btn.setAttribute('aria-selected', on ? 'true' : 'false');\n    });\n    if (!force && cache[active]) {\n      render(cache[active].games, cache[active].league);\n      return;\n    }\n    document.getElementById('grid').innerHTML = '<div class=\"empty\">Caricamento risultati\u2026<\/div>';\n    document.getElementById('meta').textContent = 'Caricamento\u2026';\n    try {\n      const res = await fetch(\n        CLOUD + '\/api_scores.php?league=' + encodeURIComponent(active) + '&t=' + Date.now(),\n        { cache: 'no-store' }\n      );\n      const data = await res.json();\n      if (!data?.ok) {\n        document.getElementById('grid').innerHTML =\n          `<div class=\"empty\">Risultati non disponibili${data?.error ? ' (' + esc(data.error) + ')' : ''}.<\/div>`;\n        document.getElementById('meta').textContent = 'Errore';\n        return;\n      }\n      cache[active] = data;\n      render(data.games || [], data.league);\n    } catch (e) {\n      document.getElementById('grid').innerHTML = '<div class=\"empty\">Errore di connessione.<\/div>';\n      document.getElementById('meta').textContent = 'Offline';\n    }\n  }\n\n  document.querySelectorAll('.tab').forEach((btn) => {\n    btn.addEventListener('click', () => load(btn.getAttribute('data-league'), false));\n  });\n  document.getElementById('btn-refresh').addEventListener('click', () => {\n    delete cache[active];\n    load(active, true);\n  });\n\n  load('nba', true);\n})();\n<\/script>\n<\/body>\n<\/html>\n\n","protected":false},"excerpt":{"rendered":"<p>Risultati NBA \u00b7 A1 \u00b7 A2 \u2014 Avigliana Basket Avigliana Basket Aggiorna Torna alla home Risultati NBA \u00b7 A1 \u00b7 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"unboxed","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"disabled","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"disabled","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-6555","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.aviglianabasket.it\/index.php?rest_route=\/wp\/v2\/pages\/6555","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.aviglianabasket.it\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.aviglianabasket.it\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.aviglianabasket.it\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.aviglianabasket.it\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6555"}],"version-history":[{"count":1,"href":"https:\/\/www.aviglianabasket.it\/index.php?rest_route=\/wp\/v2\/pages\/6555\/revisions"}],"predecessor-version":[{"id":6556,"href":"https:\/\/www.aviglianabasket.it\/index.php?rest_route=\/wp\/v2\/pages\/6555\/revisions\/6556"}],"wp:attachment":[{"href":"https:\/\/www.aviglianabasket.it\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6555"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}