/* ==========================================================================
   GAFFER -- "dugout terminal"
   Palette scura, accento = colore del club (--club iniettato sul body).
   Display: Oswald (telecronaca). Body: Inter.
   ========================================================================== */

:root{
  /* ---- palette semantica (RUOLI FISSI, indipendenti dal colore-club) ---- */
  --green:#22C55E;   /* campo · soldi · vittoria */
  --gold:#F5C542;    /* trofei · premium */
  --red:#EF4444;     /* passione · urgenza */
  --blue:#2E90FF;    /* tecnologia · fiducia */
  /* ---- chrome scuro ("stadio in notturna" · Petrolio) ---- */
  --bg:#0C1922;
  --panel:#122430;
  --panel-2:#1A303C;
  --line:#26414F;
  --text:#E7F0F2;
  --muted:#8CA0AB;
  /* ---- alias storici → puntano ai ruoli (compat con gli usi esistenti) ---- */
  --amber:var(--gold);    /* luci da stadio / highlight matchday / premium */
  --danger:var(--red);
  --warn:#E8B84D;         /* diffida (giallo, distinto dall'oro-trofeo) */
  --pitch:var(--green);   /* campo Match Pulse */
  --club:#22C55E;         /* fallback: SOVRASCRITTO inline dal body col colore-club */
  --club-2:#0C1922;
  --r:14px;
  --shadow:0 10px 30px rgba(0,0,0,.45);
  /* ---- R2.a design system: token di DENSITA' (scala di spaziatura) ----------
     Un solo posto per la densita' verticale: ridurre qui compatta tutte le
     pagine e riduce lo scroll, senza toccare la struttura. RNG-zero. */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:20px; --sp-6:28px;
  --card-pad:16px;        /* padding interno card (era 20) */
  --card-head-gap:10px;   /* stacco titolo->contenuto card (era 14) */
  --wrap-pad-y:18px;      /* padding verticale pagina (era 28) */
  --wrap-pad-x:20px;      /* padding orizzontale pagina (era 24) */
  --wrap-pad-b:28px;      /* padding inferiore pagina (era 40) */
  --grid-gap:16px;        /* gap griglie multi-colonna (era 20) */
  --stack-gap:14px;       /* gap colonne/liste impilate (era 20) */
}

/* ---- TEMA CIELO (chrome chiaro · "giornata di sole") -----------------------
   Solo override di variabili: tutto il chrome usa le CSS vars -> si adatta.
   Petrolio resta il default (:root). --------------------------------------- */
body.theme-cielo{
  --bg:#E7F0F8;
  --panel:#FFFFFF;
  --panel-2:#EDF4FB;
  --line:#CBDCEA;
  --text:#10222F;
  --muted:#54697B;
  --warn:#B7791F;                 /* oro più scuro: leggibile su fondo chiaro */
  --shadow:0 10px 28px rgba(31,58,84,.14);
}
/* contrasti scoped: pochi elementi hanno bianco hardcoded che su fondo chiaro
   sparirebbe (lo slot vuoto della formazione, lo swatch temi). */
body.theme-cielo .slot.empty{border-color:rgba(16,34,47,.28);background:rgba(16,34,47,.05)}
body.theme-cielo .slot.empty .slot-ph{color:rgba(16,34,47,.5)}
body.theme-cielo .theme-swatch{border-color:rgba(16,34,47,.15)}

*{box-sizing:border-box}
html,body{margin:0}
body{
  background:
    radial-gradient(1200px 600px at 80% -10%, color-mix(in srgb, var(--club) 12%, transparent), transparent 60%),
    var(--bg);
  color:var(--text);
  font-family:"Inter",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  min-height:100vh;
  display:flex;flex-direction:column;
  -webkit-font-smoothing:antialiased;
}

/* ---- topbar ---- */
.topbar{
  display:flex;align-items:center;gap:24px;
  padding:14px 24px;
  background:linear-gradient(180deg, var(--panel), var(--panel) 60%, transparent);
  border-bottom:1px solid var(--line);
  position:sticky;top:0;z-index:20;backdrop-filter:blur(6px);
}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text)}
.crest{
  width:26px;height:30px;display:inline-block;
  background:var(--club);
  box-shadow:inset 0 0 0 2px var(--club-2);
}
.brand-name{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;font-size:20px;letter-spacing:.4px;text-transform:uppercase}
.nav{display:flex;align-items:center;gap:4px;margin-left:8px}
.nav a{
  color:var(--muted);text-decoration:none;font-weight:500;font-size:14px;line-height:1;
  padding:8px 12px;border-radius:8px;transition:.15s;display:inline-flex;align-items:center;
}
.nav a:hover{color:var(--text);background:var(--panel-2)}
.topbar-meta{margin-left:auto;display:flex;gap:16px;align-items:center;font-size:13px}
.week{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:600;color:var(--club);text-transform:uppercase;letter-spacing:.5px}
.mgr{color:var(--muted)}

/* ---- layout ---- */
.wrap{flex:1;width:100%;max-width:1080px;margin:0 auto;padding:var(--wrap-pad-y) var(--wrap-pad-x) var(--wrap-pad-b)}
.foot{
  display:flex;justify-content:space-between;align-items:center;
  padding:16px 24px;border-top:1px solid var(--line);color:var(--muted);font-size:12px;
}
.foot form{margin:0}
.link-danger{background:none;border:none;color:var(--muted);cursor:pointer;font:inherit;text-decoration:underline}
.link-danger:hover{color:var(--danger)}

/* ---- card ---- */
.card{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--r);
  padding:var(--card-pad);box-shadow:var(--shadow);
}
.card-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--card-head-gap)}
.card-head h3{margin:0;font-family:"Oswald","Arial Narrow",sans-serif;font-weight:600;font-size:15px;text-transform:uppercase;letter-spacing:.6px;color:var(--text)}
.see-all,.legend{color:var(--muted);font-size:12px;text-decoration:none}
.see-all:hover{color:var(--blue)}
.eyebrow{font-family:"Oswald","Arial Narrow",sans-serif;text-transform:uppercase;letter-spacing:2px;font-size:12px;color:var(--club);margin:0 0 6px}
.muted{color:var(--muted)}
.big{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;font-size:34px;margin:0 0 6px;line-height:1.05;text-transform:uppercase;letter-spacing:.5px}

/* ---- buttons ---- */
.btn-primary{
  display:inline-block;margin-top:14px;padding:12px 20px;border:none;border-radius:10px;cursor:pointer;
  background:var(--club);color:var(--club-2);
  font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;font-size:15px;text-transform:uppercase;letter-spacing:.8px;text-decoration:none;
  transition:transform .08s, filter .15s;
}
.btn-primary:hover{filter:brightness(1.08)}
.btn-primary:active{transform:translateY(1px)}
.big-btn{font-size:19px;padding:16px 28px}
.btn-ghost{
  display:inline-block;margin-top:12px;padding:10px 16px;border:1px solid var(--line);border-radius:10px;
  background:transparent;color:var(--muted);text-decoration:none;font-size:14px;cursor:pointer;
}
.btn-ghost:hover{color:var(--blue);border-color:var(--blue)}

/* azione SECONDARIA / navigazione (blu elettrico = tecnologia/fiducia) */
.btn-blue{
  display:inline-block;margin-top:14px;padding:12px 20px;border:none;border-radius:10px;cursor:pointer;
  background:var(--blue);color:#04101F;
  font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;font-size:15px;text-transform:uppercase;letter-spacing:.8px;text-decoration:none;
  transition:transform .08s, filter .15s;
}
.btn-blue:hover{filter:brightness(1.08)}
.btn-blue:active{transform:translateY(1px)}
.btn-blue.btn-sm{margin-top:0;padding:7px 14px;font-size:13px}

/* ============================ SETUP ============================ */
.setup{max-width:520px;margin:20px auto}
.setup-hero{text-align:center;margin-bottom:24px}
.setup-hero h1{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;font-size:44px;margin:6px 0;text-transform:uppercase;letter-spacing:.5px}
.lead{color:var(--muted);font-size:16px}
.setup-form{display:flex;flex-direction:column;gap:16px}
.field{display:flex;flex-direction:column;gap:6px}
.field span{font-size:13px;color:var(--muted);font-weight:500}
.field input,.field select{
  background:var(--panel-2);border:1px solid var(--line);border-radius:10px;
  color:var(--text);padding:11px 12px;font:inherit;font-size:15px;
}
.field input:focus,.field select:focus{outline:none;border-color:var(--club)}
.field input[type=color]{height:46px;padding:4px;cursor:pointer}
.colors{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.kit-preview{display:flex;flex-direction:column;align-items:center;gap:8px;padding:8px 0}
.jersey{
  width:110px;height:120px;border-radius:12px 12px 20px 20px;border:4px solid;
  display:flex;align-items:center;justify-content:center;position:relative;
  box-shadow:var(--shadow);
}
.jersey::before,.jersey::after{content:"";position:absolute;top:-4px;width:26px;height:34px;background:inherit;border:4px solid;border-color:inherit;border-radius:10px}
.jersey::before{left:-18px;transform:rotate(-18deg)}
.jersey::after{right:-18px;transform:rotate(18deg)}
.jersey .num{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;font-size:40px}
.kit-caption{color:var(--muted);font-size:12px;margin:0}

/* ============================ DASHBOARD (3 zone, stile FM) ============================ */
.dash3{display:flex;flex-direction:column;gap:var(--stack-gap)}
.dash3-cols{columns:3 260px;column-gap:var(--grid-gap);align-items:start}
/* Layout a RIEMPIMENTO (masonry): le card cadono nella colonna piu' corta -> niente buchi
   ne' colonne lunghissime. display:contents scioglie i wrapper .col senza toccare l'HTML;
   break-inside evita che una card si spezzi tra due colonne. */
.dash3-cols > .col{display:contents}
.dash3-cols > .col > .card{break-inside:avoid;margin-bottom:var(--grid-gap)}
.masonry{columns:3 260px;column-gap:var(--grid-gap)}
.masonry > *{break-inside:avoid;margin-bottom:var(--grid-gap)}
.col{display:flex;flex-direction:column;gap:var(--stack-gap);min-width:0}
.next-match .btn-primary,.next-match form{margin-top:16px}
.next-match .big{display:flex;align-items:center;gap:2px}

/* ---- striscia KPI ---- */
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-3)}
.kpi{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:var(--sp-3) var(--sp-4);display:flex;flex-direction:column;gap:6px}
.kpi-lbl{font-size:11px;text-transform:uppercase;letter-spacing:.8px;color:var(--muted);font-weight:600}
.kpi-big{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;font-size:30px;line-height:1}
.kpi-big small{font-size:14px;color:var(--muted);font-weight:600;margin-left:2px}
.kpi-sub{font-size:12px;color:var(--muted)}

/* PAGELLE giocatori (FASE 1.4) */
.pag-underfield{margin-top:12px}
.pagelle{margin-top:10px}

/* ARCHIVIO NEWS (FASE 1.5) */
.news-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px;flex-wrap:wrap}
.news-counts{display:flex;gap:6px;flex-wrap:wrap}
.news-pill{font-size:12px;padding:3px 8px;border-radius:999px;border:1px solid var(--line);background:var(--panel-2);color:var(--muted)}
.news-pill b{color:var(--text)}
.news-feed{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.news-item{display:grid;grid-template-columns:88px 1fr;align-items:baseline;gap:10px;padding:8px;border-radius:8px;background:var(--panel-2);border-left:3px solid var(--line)}
.news-text{font-size:14px;line-height:1.4}
.news-tag{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);text-align:right}
.news-finance{color:var(--green)} .news-b-finance{border-left-color:var(--green)}
.news-board{color:var(--warn)} .news-b-board{border-left-color:var(--warn)}
.news-market{color:#5AA9E6} .news-b-market{border-left-color:#5AA9E6}
.news-squad{color:var(--club)} .news-b-squad{border-left-color:var(--club)}
.news-general{color:var(--muted)}
@media (max-width:520px){ .news-item{grid-template-columns:1fr} .news-tag{text-align:left} }
.pag-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}
.pag-title{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}
.pag-avg{font-size:12px;color:var(--muted)} .pag-avg b{color:var(--text)}
.pag-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}
.pag-row{display:grid;grid-template-columns:34px 1fr auto auto;align-items:center;gap:8px;padding:4px 8px;border-radius:8px;background:var(--panel-2)}
.pag-motm{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--warn) 55%,transparent)}
.pag-pos{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:600;font-size:11px;color:var(--muted);text-align:center}
.pos-GK{color:var(--warn)} .pos-DEF{color:#5AA9E6} .pos-MID{color:var(--green)} .pos-ATT{color:var(--red)}
.pag-name{font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pag-sub{font-size:11px;color:var(--muted);font-weight:400}
.pag-tags{display:flex;gap:3px;align-items:center;font-size:12px}
.pag-tag{line-height:1}
.pag-tag-motm{color:var(--warn)}
.pag-yellow{color:var(--warn)} .pag-red{color:var(--red)} .pag-miss{color:var(--red)}
.pag-vote{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;font-size:16px;min-width:34px;text-align:center;border-radius:6px;padding:1px 4px}
.pag-poor{color:#fff;background:var(--red)}
.pag-ok{color:var(--text);background:var(--panel)}
.pag-good{color:#0C1922;background:var(--green)}
.pag-top{color:#0C1922;background:var(--warn)}

/* TROPHY ROOM / HALL OF FAME (FASE 1.3) */
.tr-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:16px}
.tr-hero-stat{text-align:center;padding:8px 18px;border:1px solid var(--line);border-radius:var(--r);background:var(--panel-2)}
.tr-hero-num{display:block;font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;font-size:40px;line-height:1;color:var(--club)}
.tr-hero-lbl{font-size:11px;text-transform:uppercase;letter-spacing:.8px;color:var(--muted)}
.tr-trophies{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:14px}
.tr-trophy{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:96px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--warn) 40%,var(--line));border-radius:var(--r);background:color-mix(in srgb,var(--warn) 10%,transparent)}
.tr-cup{font-size:30px;line-height:1}
.tr-trophy-name{font-size:12px;font-weight:600;text-align:center}
.tr-trophy-season{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:600;font-size:13px;color:var(--muted)}
.tr-kpis{margin-top:4px}
.tr-hof{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:640px){ .tr-hof{grid-template-columns:1fr} .tr-hero{flex-direction:column;align-items:flex-start} }
.tr-sub{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);margin:0 0 8px}
.tr-legends,.tr-boots{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.tr-legends li{display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"s n p" "s t t";column-gap:8px;align-items:baseline;padding:6px 8px;border-radius:8px;background:var(--panel-2)}
.tr-legend-season{grid-area:s;font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;color:var(--club);align-self:center}
.tr-legend-name{grid-area:n;font-weight:600}
.tr-legend-pos{grid-area:p;font-size:11px;color:var(--muted);text-transform:uppercase}
.tr-legend-stat{grid-area:t;font-size:12px;color:var(--muted)}
.tr-boots li{display:flex;gap:8px;align-items:baseline;padding:6px 8px;border-radius:8px;background:var(--panel-2)}
.tr-boot-who{font-weight:600}
.tr-pos-title{color:var(--warn);font-weight:700;white-space:nowrap}
.kpi-form{min-height:20px}
.kpi-fans.lvl-hi{color:var(--pitch)} .kpi-fans.lvl-mid{color:var(--amber)} .kpi-fans.lvl-lo{color:var(--danger)}
.kpi-bar{height:6px;background:var(--panel-2);border-radius:4px;overflow:hidden}
.kpi-bar i{display:block;height:100%;background:var(--muted)}
.kpi-fans.lvl-hi ~ .kpi-bar i{background:var(--pitch)}
.kpi-fans.lvl-mid ~ .kpi-bar i{background:var(--amber)}
.kpi-fans.lvl-lo ~ .kpi-bar i{background:var(--danger)}

/* ---- ultimo risultato ---- */
.result-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;margin-top:6px}
.rr-side{display:flex;align-items:center;gap:5px;min-width:0}
.rr-side.rr-right{justify-content:flex-end;text-align:right}
.rr-name{font-weight:600;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.rr-side.you .rr-name{color:var(--club)}
.rr-score{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;font-size:26px;display:flex;gap:6px;align-items:center;padding:0 4px;flex:0 0 auto}
.rr-score .colon{color:var(--muted)}
.rr-score.res-W{color:var(--pitch)} .rr-score.res-D{color:var(--muted)} .rr-score.res-L{color:var(--danger)}

/* ---- prossime gare ---- */
.fx-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}
.fx-item{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--panel-2);border-radius:9px;font-size:14px}
.fx-rnd{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;color:var(--muted);width:20px;text-align:center;flex:0 0 auto}
.fx-opp{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.fx-where{margin-left:auto;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:2px 7px;border-radius:5px;flex:0 0 auto}
.fx-home{background:color-mix(in srgb,var(--pitch) 18%,transparent);color:#8fe6b5}
.fx-away{background:var(--panel);color:var(--muted);border:1px solid var(--line)}

.you-pos{margin:12px 0 0;color:var(--muted);font-size:13px}
.row-label{font-size:12px;text-transform:uppercase;letter-spacing:.6px;margin:10px 0 6px;font-weight:600}
.row-label.danger{color:var(--danger)} .row-label.warn{color:var(--warn)}
.pill-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px}
.pill{font-size:12px;padding:4px 9px;border-radius:20px;background:var(--panel-2);border:1px solid var(--line)}
.pill.danger{border-color:color-mix(in srgb,var(--danger) 50%,var(--line));color:#ffb3b5}
.pill.warn{border-color:color-mix(in srgb,var(--warn) 50%,var(--line));color:#ffd699}
.news-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.news-list li{padding:10px 12px;background:var(--panel-2);border-left:3px solid var(--club);border-radius:0 8px 8px 0;font-size:14px;color:var(--text)}

/* ---- tables ---- */
.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th{text-align:left;color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.5px;padding:var(--sp-2) var(--sp-2);border-bottom:1px solid var(--line)}
.tbl td{padding:6px var(--sp-2);border-bottom:1px solid color-mix(in srgb,var(--line) 55%,transparent)}
.tbl tbody tr:hover{background:var(--panel-2)}
.tbl .pts{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;color:var(--text)}
.tbl .pts .pen{color:var(--red);font-size:.68em;font-weight:700;margin-left:2px;vertical-align:super;cursor:help}
.tbl tr.you{background:color-mix(in srgb,var(--club) 14%,transparent)}
.tbl tr.you td{color:var(--text);font-weight:600}
.tbl tr.you td:first-child{box-shadow:inset 3px 0 0 var(--club)}

/* ============================ SQUAD ============================ */
.squad-layout{display:grid;grid-template-columns:300px 1fr;gap:20px;align-items:start}

/* ---- layout tattica: pitch grande + colonna laterale ---- */
.squad3{display:grid;grid-template-columns:1fr 320px;gap:var(--grid-gap);align-items:stretch}
.col-tactic{display:flex;flex-direction:column;gap:var(--stack-gap)}
/* la panchina sta accanto al campo (drag&drop) e si stira per riempirne l'altezza:
   zero buco a destra sotto la colonna laterale. */
.col-tactic > .bench-card{flex:1 1 auto}
.col-tactic > .bench-card .bench{flex:1 1 auto}
.roster-ref{margin-top:var(--stack-gap)}
.contracts-sub{margin:2px 0 0;font-size:12px}
.contracts-tbl .contract-cell{min-width:120px}
.contracts-tbl .td-renew .renew-form{margin-top:0}
.contracts-tbl th.th-renew,.contracts-tbl td.td-renew{text-align:right}
.pitch-hint{margin:0 0 12px}

/* ---- campo ---- */
.tpitch{
  display:flex;flex-direction:column;gap:6px;
  height:560px;padding:16px 10px;border-radius:14px;
  background:
    repeating-linear-gradient(0deg, color-mix(in srgb,var(--pitch) 22%,#0c1a12) 0 40px, color-mix(in srgb,var(--pitch) 15%,#0c1a12) 40px 80px);
  border:1px solid color-mix(in srgb,var(--pitch) 40%,var(--line));
  box-shadow:inset 0 0 0 2px color-mix(in srgb,#fff 12%,transparent), inset 0 0 60px rgba(0,0,0,.35);
  position:relative;
}
.tpitch::before{content:"";position:absolute;left:10px;right:10px;top:50%;height:0;border-top:2px solid rgba(255,255,255,.18)}
.tpitch::after{content:"";position:absolute;left:50%;top:50%;width:80px;height:80px;transform:translate(-50%,-50%);border:2px solid rgba(255,255,255,.18);border-radius:50%}
.tpitch-row{display:flex;justify-content:space-around;align-items:center;gap:8px;flex:1 1 0;position:relative;z-index:1}

/* ---- slot ---- */
.slot{width:74px;height:88px;border-radius:12px;display:flex;align-items:center;justify-content:center;
  transition:transform .1s ease,box-shadow .1s ease;cursor:pointer}
.slot.empty{border:2px dashed rgba(255,255,255,.35);background:rgba(0,0,0,.18)}
.slot.empty .slot-ph{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;font-size:13px;color:rgba(255,255,255,.55);letter-spacing:.5px}
.slot.drop-ok{box-shadow:0 0 0 3px var(--amber);transform:scale(1.05)}
.slot.drop-bad{box-shadow:0 0 0 3px var(--danger)}
.slot.sel{box-shadow:0 0 0 3px var(--amber)}

/* ---- disco giocatore ---- */
.disc{display:flex;flex-direction:column;align-items:center;gap:2px;width:100%;height:100%;justify-content:center;
  background:rgba(12,25,34,.82);border-radius:11px;border:2px solid var(--line);position:relative;cursor:grab;padding:4px 2px}
.disc:active{cursor:grabbing}
.disc.dragging{opacity:.4}
.slot.pos-GK .disc{border-color:#f2cf6b} .slot.pos-DEF .disc{border-color:#6bc7f2}
.slot.pos-MID .disc{border-color:#6bf2a5} .slot.pos-ATT .disc{border-color:#f26b9c}
.disc-face{display:none}
.face-disc{width:48px;height:48px}
.face-disc .face-ph{font-size:17px}
.face-chip{width:30px;height:30px;flex:0 0 30px}
.face-chip .face-ph{font-size:12px}
.disc-name{font-size:10px;font-weight:600;max-width:70px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}
.disc-ovr{position:absolute;top:-7px;right:-7px;font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;font-size:11px;
  background:var(--club);color:var(--club-2);border-radius:6px;padding:0 5px;line-height:16px;min-width:16px;text-align:center;box-shadow:0 1px 3px rgba(0,0,0,.4)}
.form-ind{position:absolute;top:-6px;left:-6px;width:0;height:0}
.form-ind.up{border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:8px solid var(--pitch)}
.form-ind.down{border-left:5px solid transparent;border-right:5px solid transparent;border-top:8px solid var(--danger)}
.form-ind.flat{width:9px;height:2px;background:var(--muted)}

/* ---- panchina ---- */
.bench{display:flex;flex-direction:column;gap:6px;min-height:40px}
.bench-wallet{display:flex;gap:10px;margin:0 0 10px}
.wallet-item{flex:1;display:flex;flex-direction:column;gap:2px;background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:6px 10px}
.wallet-item .w-lbl{font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted)}
.wallet-item .w-val{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;font-size:18px;color:var(--text)}
.wallet-item.money .w-val{color:var(--green)}
.wallet-item.premium .w-val{color:var(--gold)}
.wallet-item.premium{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--gold) 32%, transparent)}
.wallet-item.bill .w-val{color:var(--text)}
.bench.drop-ok{outline:2px dashed var(--amber);outline-offset:4px;border-radius:8px}
.bchip{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--panel-2);border:1px solid var(--line);
  border-radius:9px;cursor:grab;font-size:13px}
.bchip:active{cursor:grabbing}
.bchip.sel{border-color:var(--amber);box-shadow:0 0 0 2px color-mix(in srgb,var(--amber) 40%,transparent)}
.bchip-pos{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;font-size:10px;padding:2px 6px;border-radius:5px;flex:0 0 auto}
.bchip-name{font-weight:600;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bchip-ovr{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;color:var(--text)}

/* ---- barre DNA ---- */
.dna{display:flex;flex-direction:column;gap:10px}
.dna-row{display:grid;grid-template-columns:92px 1fr 30px;align-items:center;gap:10px}
.dna-lbl{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-weight:600}
.dna-bar{height:8px;background:var(--panel-2);border-radius:5px;overflow:hidden}
.dna-bar i{display:block;height:100%;background:linear-gradient(90deg,color-mix(in srgb,var(--club) 60%,#000),var(--club));transition:width .28s ease}
.dna-val{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;font-size:14px;text-align:right}
.psyche-cell{min-width:120px}
.pgrid{display:flex;gap:5px}
.ptr{display:flex;flex-direction:column;align-items:center;gap:3px;cursor:help}
.ptr>.pbar{width:13px;height:30px;background:var(--panel-2);border-radius:3px;overflow:hidden;display:flex;align-items:flex-end}
.ptr>.pbar>i{display:block;width:100%;background:var(--club);border-radius:3px 3px 0 0}
.ptr>b{font-size:9px;font-weight:700;color:var(--muted);letter-spacing:.2px}
.pchar{display:inline-block;margin-bottom:5px;font-size:10px;font-weight:700;letter-spacing:.3px;color:var(--club);background:color-mix(in srgb,var(--club) 15%,transparent);border:1px solid color-mix(in srgb,var(--club) 35%,transparent);border-radius:20px;padding:2px 8px;white-space:nowrap}
.pl-profile{font-size:10px;font-weight:700;letter-spacing:.3px;color:var(--text);background:var(--panel-2);border:1px solid var(--line);border-radius:20px;padding:2px 8px;white-space:nowrap}
.pn-prof{display:block;font-size:10px;font-weight:500;letter-spacing:.2px;color:var(--muted);margin-top:1px}
.media-quote{margin:10px auto;max-width:520px;text-align:center;font-style:italic;color:var(--text);background:var(--panel-2);border:1px solid var(--line);border-left:3px solid var(--club);border-radius:0 10px 10px 0;padding:10px 14px;font-size:14px}
.media-quote .mq-name{font-style:normal;font-weight:700;color:var(--club);margin-right:6px}

/* ---- contratti (rosa completa) ---- */
.contract-cell{white-space:nowrap;min-width:150px}
.contract-info{display:flex;flex-direction:column;line-height:1.15}
.c-years{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;font-size:14px}
.contract-cell.exp .c-years{color:var(--amber)}
.c-wage{font-size:11px;color:var(--muted)}
.c-renew-hint{font-size:10.5px;color:var(--muted);opacity:.85;margin-top:1px}
.c-renew-hint.up{color:var(--amber)}
.renew-form{display:flex;gap:5px;margin-top:5px;align-items:center}
.renew-form select{background:var(--panel-2);border:1px solid var(--line);color:var(--text);border-radius:6px;padding:3px 6px;font-size:11px;font-family:inherit;cursor:pointer}
.renew-form .btn-mini{padding:4px 10px;font-size:11px;background:var(--club);color:var(--club-2)}
.pill-pos{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;font-size:10px;padding:1px 5px;border-radius:4px;margin:0 2px}

/* ---- interesse-mercato: offerte AI ---- */
.offers-section{border-color:color-mix(in srgb,var(--amber) 28%,var(--line))}
.offer-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.offer-item{display:grid;grid-template-columns:1.2fr 1.2fr auto;gap:14px;align-items:center;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:10px 14px}
.offer-item.offer-exp{border-color:color-mix(in srgb,var(--amber) 45%,var(--line))}
.offer-main{display:flex;align-items:center;gap:8px;min-width:0}
.offer-player{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.offer-ovr{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;color:var(--club)}
.offer-mid{display:flex;flex-direction:column;gap:1px;font-size:13px;min-width:0}
.offer-from b{color:var(--text)}
.offer-amount{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;font-size:18px;color:var(--club)}
.offer-expiry{font-size:11px;color:var(--muted)}
.offer-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.offer-actions form{margin:0}
.offer-counter{display:flex;gap:4px;align-items:center}
.offer-counter input[type=number]{width:96px;background:var(--panel-2);border:1px solid var(--line);color:var(--text);border-radius:6px;padding:4px 6px;font-size:12px;font-family:inherit}
.btn-mini-counter{background:var(--panel-2);color:var(--text);border:1px solid var(--line)}
.btn-mini-counter:hover{border-color:var(--blue);color:var(--blue)}
.offers-alert{display:block;font-weight:600;color:var(--amber);text-decoration:none;padding:6px 2px}
.offers-alert:hover{text-decoration:underline}
@media (max-width:820px){ .offer-item{grid-template-columns:1fr;gap:8px} }

.tactic-form{display:flex;flex-direction:column;gap:14px}
.hint{color:var(--muted);font-size:12px;margin:2px 0 0}
.roster-tbl{font-size:13px}
.roster-tbl td.dot{color:var(--club);width:16px}
.roster-tbl tr.starter td{background:color-mix(in srgb,var(--club) 8%,transparent)}
.roster-tbl tr.inj td.pname{color:var(--muted)}
.pname{font-weight:500}
.ovr{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700}
.val{color:var(--muted);white-space:nowrap}
.pos{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:600;font-size:11px;padding:2px 6px;border-radius:5px;letter-spacing:.5px}
.pos-GK{background:#3a2f0a;color:#f2cf6b}
.pos-DEF{background:#0a2a3a;color:#6bc7f2}
.pos-MID{background:#0a3a1f;color:#6bf2a5}
.pos-ATT{background:#3a0a1f;color:#f26b9c}
.tag{font-size:9px;font-weight:700;padding:1px 4px;border-radius:4px;vertical-align:middle}
.tag.danger{background:var(--danger);color:#fff}
.legend{color:var(--club)}

/* ============================ MATCHDAY ============================ */
.matchday{max-width:620px;margin:0 auto;text-align:center}
.scoreboard{
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;
  background:linear-gradient(180deg,var(--panel-2),var(--panel));
  border:1px solid var(--line);border-radius:16px;padding:22px 20px;box-shadow:var(--shadow);
}
.scoreboard .side{display:flex;flex-direction:column;align-items:center;gap:6px}
.scoreboard .tname{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:600;font-size:24px;text-transform:uppercase;letter-spacing:.5px}
.scoreboard .side.you .tname{color:var(--club)}
.score{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;font-size:56px;line-height:1;display:flex;gap:10px;justify-content:center}
.score .colon{color:var(--muted)}
.score.flash{animation:pop .5s ease}
@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.18);color:var(--amber)}100%{transform:scale(1)}}
.clock{font-family:"Oswald","Arial Narrow",sans-serif;color:var(--amber);font-weight:600;letter-spacing:1px;margin:10px 0 16px;font-size:15px}

.ticker{display:flex;flex-direction:column;gap:8px;text-align:left;min-height:120px}
.tick{padding:10px 14px;border-radius:10px;background:var(--panel);border:1px solid var(--line);font-size:14px;animation:slidein .25s ease}
@keyframes slidein{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.tick-goal{border-left:4px solid var(--amber);background:color-mix(in srgb,var(--amber) 10%,var(--panel));font-weight:600}
.tick-injury{border-left:4px solid var(--danger)}
.tick-save{border-left:4px solid var(--pitch)}
.tick-chance{color:var(--muted)}

.postmatch{margin-top:16px;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.postmatch .btn-primary,.postmatch .btn-ghost,.postmatch form{margin:0;width:auto}
.postmatch .media-quote{align-self:stretch}
#skip{display:block;margin:14px auto 0}
.statbars{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin-bottom:16px}
.statrow{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;margin:8px 0;font-size:14px}
.statrow label{text-align:center;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.5px}
.statrow span:first-child{text-align:left;font-family:"Oswald","Arial Narrow",sans-serif;font-weight:600}
.statrow span:last-child{text-align:right;font-family:"Oswald","Arial Narrow",sans-serif;font-weight:600}
.bar{height:6px;background:var(--panel-2);border-radius:4px;overflow:hidden;margin:2px 0 10px}
.bar i{display:block;height:100%;background:var(--club)}

/* prematch */
.prematch,.center-card{max-width:560px;margin:20px auto;text-align:center}
.prematch .vs{color:var(--muted);font-size:22px;margin:0 8px}
.prematch-info{display:flex;justify-content:center;gap:28px;margin:20px 0}
.prematch-info .k{display:block;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.5px}
.prematch-info .v{display:block;font-family:"Oswald","Arial Narrow",sans-serif;font-weight:600;font-size:18px;text-transform:capitalize}
.center-card form{margin-top:8px}

/* ---- responsive ---- */
@media (max-width:820px){
  .dash3-cols,.squad-layout,.squad3{grid-template-columns:1fr}
  .nav{display:none}
  .big{font-size:26px}
  .kpi-big{font-size:24px}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
}

/* ---- formazione manuale ---- */
.req-shape{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.req-title{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin:0 0 8px}
.req-list{list-style:none;padding:0;margin:0;display:flex;gap:14px;flex-wrap:wrap}
.req-list li{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:600;font-size:15px;display:flex;align-items:center;gap:6px}

.counters{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.cnt{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:600;font-size:12px;padding:3px 9px;border-radius:20px;
     background:var(--panel-2);border:1px solid var(--line);color:var(--muted);letter-spacing:.3px}
.cnt.cnt-ok{border-color:color-mix(in srgb,var(--pitch) 60%,var(--line));color:#8fe6b5;background:color-mix(in srgb,var(--pitch) 12%,var(--panel-2))}
.cnt.cnt-bad{border-color:color-mix(in srgb,var(--danger) 40%,var(--line));color:#ffb3b5}
.cnt.total{background:var(--club);color:var(--club-2);border-color:transparent}

.banner-error{
  background:color-mix(in srgb,var(--danger) 16%,var(--panel));
  border:1px solid color-mix(in srgb,var(--danger) 55%,var(--line));
  color:#ffc9cb;padding:10px 14px;border-radius:10px;margin-bottom:14px;font-size:14px;
}
.banner-info{
  background:color-mix(in srgb,var(--amber) 14%,var(--panel));
  border:1px solid color-mix(in srgb,var(--amber) 45%,var(--line));
  color:var(--amber);padding:10px 14px;border-radius:10px;margin-bottom:14px;font-size:14px;
}
.pick{width:34px;text-align:center}
.pick input{width:17px;height:17px;accent-color:var(--club);cursor:pointer}
.lineup-actions{display:flex;align-items:center;gap:14px;margin-top:14px;flex-wrap:wrap}
.hint.ok{color:#8fe6b5}
.btn-primary:disabled{opacity:.45;cursor:not-allowed;filter:none}

/* ---- calciomercato ---- */
.market-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:18px;flex-wrap:wrap}
.market-head .big{margin:0}
.budget-box{display:flex;flex-direction:column;align-items:flex-end;gap:2px;
  background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 18px;box-shadow:var(--shadow)}
.budget-label{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted)}
.budget-val{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;font-size:26px;color:var(--club)}
.roster-count{font-size:12px;color:var(--muted)}

.banner-ok{background:color-mix(in srgb,var(--pitch) 15%,var(--panel));
  border:1px solid color-mix(in srgb,var(--pitch) 55%,var(--line));
  color:#a5edc4;padding:10px 14px;border-radius:10px;margin-bottom:14px;font-size:14px}

.market-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:20px;align-items:start}
.filters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.chip{font-size:12px;padding:5px 12px;border-radius:20px;text-decoration:none;
  background:var(--panel-2);border:1px solid var(--line);color:var(--muted)}
.chip:hover{color:var(--text)}
.chip-on{background:var(--club);color:var(--club-2);border-color:transparent;font-weight:600}
.filters-arch{margin-top:-6px}
.chip-sub{font-size:11px;padding:4px 10px}
.cap-badge{display:inline-block;width:16px;height:16px;line-height:16px;text-align:center;font-size:10px;font-weight:800;color:var(--club-2);background:var(--club);border-radius:50%;margin-left:6px;vertical-align:middle}
.market-tbl{font-size:13px}
.market-tbl .club-cell{color:var(--muted)}
.btn-mini{border:none;border-radius:7px;padding:6px 12px;cursor:pointer;
  background:var(--club);color:var(--club-2);font-family:"Oswald","Arial Narrow",sans-serif;
  font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.4px}
.btn-mini:hover{filter:brightness(1.1)}
.btn-mini-off{opacity:.35;cursor:not-allowed;filter:none}
.btn-mini-sell{background:var(--panel-2);color:var(--text);border:1px solid var(--line)}
.btn-mini-sell:hover{border-color:var(--danger);color:#ffb3b5}
@media (max-width:820px){ .market-grid{grid-template-columns:1fr} }

/* ---- facce giocatori ---- */
.pname{display:flex;align-items:center;gap:9px}
.pname .pn{min-width:0}
.face{position:relative;display:inline-block;flex:0 0 auto;border-radius:50%;overflow:hidden;
  background:var(--panel-2);border:1px solid var(--line)}
.face-sm{width:30px;height:30px}
.face-md{width:44px;height:44px}
.face-lg{width:56px;height:56px}
.face img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2}
.face-ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:"Oswald","Arial Narrow",sans-serif;font-weight:600;font-size:12px;color:#fff;z-index:1;letter-spacing:.3px}
.face-md .face-ph{font-size:16px}
.face-lg .face-ph{font-size:20px}
/* colore segnaposto per ruolo (usa gli stessi accenti dei badge posizione) */
.face-ph.pos-GK{background:linear-gradient(135deg,#5a4a12,#3a2f0a)}
.face-ph.pos-DEF{background:linear-gradient(135deg,#0f4a63,#0a2a3a)}
.face-ph.pos-MID{background:linear-gradient(135deg,#0f633a,#0a3a1f)}
.face-ph.pos-ATT{background:linear-gradient(135deg,#63102f,#3a0a1f)}

/* ---- allenamento ---- */
.training-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
.growth-card,.advice-card{grid-column:1 / span 2}
.intensity-form{display:flex;flex-direction:column;gap:10px}
.intensity-opt{display:block;padding:12px 14px;border:1px solid var(--line);border-radius:10px;cursor:pointer;background:var(--panel-2);transition:.15s}
.intensity-opt:hover{border-color:var(--muted)}
.intensity-opt.on{border-color:var(--club);background:color-mix(in srgb,var(--club) 12%,var(--panel-2))}
.intensity-opt input{margin-right:8px;accent-color:var(--club)}
.io-name{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:600;font-size:15px}
.io-desc{display:block;color:var(--muted);font-size:12px;margin-top:2px;margin-left:22px}
.staff-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid color-mix(in srgb,var(--line) 55%,transparent)}
.staff-row:last-of-type{border-bottom:none}
.staff-name{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:600;font-size:15px;display:block}
.staff-desc{color:var(--muted);font-size:12px}
.advice-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.advice-list li{padding:10px 12px;border-radius:8px;font-size:14px;background:var(--panel-2)}
.tip-form{border-left:3px solid var(--club)}
.tip-train{border-left:3px solid var(--pitch)}
.advice-dash .advice-list li{background:var(--panel-2)}
.growth-bar{display:inline-block;width:90px;height:6px;background:var(--panel-2);border-radius:4px;overflow:hidden;vertical-align:middle;margin-right:6px}
.growth-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--club),var(--pitch))}
.growth-n{color:var(--pitch);font-family:"Oswald","Arial Narrow",sans-serif;font-weight:600;font-size:13px}

/* ---- report scout nel mercato ---- */
.scout-card{margin-bottom:20px}
.scout-list{display:flex;flex-direction:column;gap:8px}
.scout-item{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:9px 12px;background:var(--panel-2);border-radius:9px}
.scout-tag{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;font-size:10px;padding:2px 7px;border-radius:5px;letter-spacing:.5px}
.scout-talento{background:linear-gradient(135deg,#0f633a,#0a3a1f);color:#8fe6b5}
.scout-affare{background:linear-gradient(135deg,#5a4a12,#3a2f0a);color:#f2cf6b}
.scout-name{font-weight:600}
.scout-meta{color:var(--muted);font-size:12px}
.scout-price{margin-left:auto;font-family:"Oswald","Arial Narrow",sans-serif;font-weight:600}
@media (max-width:820px){ .training-grid{grid-template-columns:1fr} .growth-card,.advice-card{grid-column:1} }

/* ---- Match Pulse (campo) + cartellini ---- */
.pulse-wrap{max-width:480px;margin:14px auto 6px;text-align:center}
.pitch{width:100%;height:auto;border-radius:12px;border:1px solid var(--line);box-shadow:var(--shadow);display:block}
.pulse-legend{font-size:12px;color:var(--muted);margin:8px 0 0}
.lg-home{color:var(--club)} .lg-away{color:#e8eef2}
.tick-yellow{border-left:4px solid var(--amber)}
.tick-red{border-left:4px solid var(--danger);background:color-mix(in srgb,var(--danger) 10%,var(--panel));font-weight:600}

/* -- Fase 2 · C8: leggibilita' eventi da piazzato nel ticker/log ------------- */
.tick-penalty_goal,.tick-freekick_goal{border-left:4px solid var(--amber);background:color-mix(in srgb,var(--amber) 10%,var(--panel));font-weight:600}
.tick-penalty_miss,.tick-freekick_miss{border-left:4px solid var(--warn)}
.tick-corner{border-left:4px solid color-mix(in srgb,var(--pitch) 60%,var(--line))}
.tick-offside{border-left:4px solid var(--muted);color:var(--muted)}
.tick-post{border-left:4px solid #D9A441;background:color-mix(in srgb,#D9A441 10%,var(--panel));font-weight:600}
.tick-goal_provisional{border-left:4px dashed #F2B233;background:color-mix(in srgb,#F2B233 12%,var(--panel));font-weight:600}
.tick-var_check{border-left:4px solid #4C8DFF;background:color-mix(in srgb,#4C8DFF 12%,var(--panel));letter-spacing:.3px}
.tick-goal_disallowed{border-left:4px solid var(--danger);background:color-mix(in srgb,var(--danger) 10%,var(--panel));text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--danger) 70%,transparent);font-weight:600}
.tick-goal_confirmed{border-left:4px solid var(--ok,#2FBF71);background:color-mix(in srgb,var(--ok,#2FBF71) 12%,var(--panel));font-weight:700}
.tick-offside_chance{border-left:4px solid #E8873C;background:color-mix(in srgb,#E8873C 10%,var(--panel));text-decoration:line-through;text-decoration-color:color-mix(in srgb,#E8873C 70%,transparent);font-weight:600}

/* marker sul campo (SVG): palo evidenziato + gol annullato barrato */
.sh-post{animation:woodpulse 1.1s ease-in-out 2}
@keyframes woodpulse{0%,100%{opacity:.55}50%{opacity:1}}
.sh-disallowed{opacity:.85;animation:disallowfade 1.2s ease forwards}
@keyframes disallowfade{0%{opacity:1}100%{opacity:.55}}
.sh-confirmed{opacity:1;animation:confirmflash .6s ease forwards}
@keyframes confirmflash{0%{opacity:.55}40%{opacity:1}62%{opacity:.78}100%{opacity:1}}
.sh-annul{opacity:0;animation:annulin .5s ease .15s forwards}
@keyframes annulin{from{opacity:0}to{opacity:1}}

/* badge VAR: nascosto di default, lampeggia al var_check */
.varbadge{opacity:0;pointer-events:none;transform-box:fill-box;transform-origin:center}
.varbadge rect{fill:rgba(10,16,24,.82);stroke:#4C8DFF;stroke-width:2.5}
.varbadge text{fill:#eaf1ff;font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;font-size:30px;letter-spacing:3px}
.varbadge.on{animation:varflash 1.4s ease forwards}
@keyframes varflash{0%{opacity:0;transform:scale(.86)}18%{opacity:1;transform:scale(1.04)}30%{transform:scale(1)}72%{opacity:1}100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.sh-post,.sh-disallowed,.sh-confirmed,.sh-annul,.varbadge.on{animation-duration:.01ms;animation-iteration-count:1}}

/* ---- intervallo ---- */
.halftime{max-width:820px;margin:0 auto}
.ht-score{display:flex;align-items:center;justify-content:center;gap:20px;margin:6px 0 20px}
.ht-team{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:600;font-size:20px;text-transform:uppercase}
.ht-nums{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;font-size:40px;color:var(--club)}
.ht-cards{align-items:start}
.talk-opts{display:flex;flex-direction:column;gap:10px}
.talk-btn{width:100%;text-align:left;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:12px 14px;cursor:pointer;color:var(--text);transition:.15s}
.talk-btn:hover{border-color:var(--club);background:color-mix(in srgb,var(--club) 12%,var(--panel-2))}
.t-name{display:block;font-family:"Oswald","Arial Narrow",sans-serif;font-weight:600;font-size:16px}
.t-desc{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.sub-form{display:flex;flex-direction:column;gap:12px}
.ht-go{text-align:center;margin-top:24px}
@media (max-width:820px){ .ht-cards{columns:1} }

/* ---- pre-partita talk + fine stagione ---- */
.prematch-talk{margin:18px 0 10px}
.pt-title{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin:0 0 8px}
.prematch-talk .talk-opts{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.season-end{grid-column:1 / span 2}
.verdicts{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.v-label{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--club);margin:0 0 8px;font-weight:600}
.rank{list-style:decimal;margin:0;padding-left:20px;display:flex;flex-direction:column;gap:5px}
.rank li{display:flex;justify-content:space-between;gap:10px;font-size:14px}
.rank li b{font-family:"Oswald","Arial Narrow",sans-serif;color:var(--club)}
.honours{list-style:none;padding:0;margin:6px 0 0;display:flex;flex-direction:column;gap:6px}
.honours li{padding:8px 10px;background:var(--panel-2);border-left:3px solid var(--amber);border-radius:0 8px 8px 0;font-size:13px}
@media (max-width:820px){ .season-end{grid-column:1} .prematch-talk .talk-opts,.verdicts{grid-template-columns:1fr} }

/* ---- controllo velocita' + assetto intervallo ---- */
.speed-ctrl{display:flex;align-items:center;justify-content:center;gap:8px;margin:6px 0 12px;font-size:12px;color:var(--muted)}
.spd{background:var(--panel-2);border:1px solid var(--line);color:var(--muted);border-radius:20px;padding:4px 12px;cursor:pointer;font-size:12px}
.spd:hover{color:var(--text)}
.spd-on{background:var(--club);color:var(--club-2);border-color:transparent;font-weight:600}
.ht-tactic{margin-bottom:20px}
.ht-tactic-form{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap}
.ht-tactic-form .field{flex:1;min-width:140px}
.ht-tactic-form button{margin-top:0}

/* ---- Match Pulse: due colonne (campo sx, cronaca dx) ---- */
.matchday{max-width:960px}
.match-2col{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:22px;align-items:start;text-align:left}
.match-2col .col-left,.match-2col .col-right{min-width:0}
.match-2col .pulse-wrap{max-width:none;margin:0}
.match-2col .ticker{min-height:0;max-height:520px;overflow-y:auto}
.match-2col .speed-ctrl{justify-content:flex-start}
@media (max-width:820px){ .match-2col{grid-template-columns:1fr} }

/* ---- GAFFER Match Studio: regia video telecronaca muta ---- */
.match-studio{margin:0 0 14px;min-width:0}
.studio-frame{position:relative;isolation:isolate;overflow:hidden;aspect-ratio:16/9;background:#d7dadd;border:4px solid #17202a;border-radius:10px;box-shadow:0 10px 28px rgba(20,27,33,.2)}
.studio-frame:after{content:"";position:absolute;inset:0;z-index:4;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(255,255,255,.25),inset 0 -50px 80px rgba(8,15,23,.15)}
.studio-poster,.studio-video{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;background:#d7dadd}
.studio-poster{z-index:0;opacity:1;transition:opacity .18s ease}
.studio-video{z-index:1;opacity:0;transform:scale(1.002);transition:opacity .18s ease,transform .5s ease}
.match-studio.is-on-air .studio-video{opacity:1}
.match-studio.is-on-air .studio-poster{opacity:0}
.studio-video.is-changing{opacity:.28!important;transform:scale(1.025)}
.studio-scan{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:.1;background:repeating-linear-gradient(to bottom,transparent 0,transparent 3px,#0a1118 4px)}
.studio-topline{position:absolute;z-index:5;left:12px;right:12px;top:10px;display:flex;justify-content:space-between;align-items:center;gap:8px;color:#fff;font-family:"Oswald","Arial Narrow",sans-serif;font-size:11px;letter-spacing:.8px;text-shadow:0 1px 4px rgba(0,0,0,.7)}
.studio-brand{padding:5px 8px;background:rgba(13,25,36,.84);border-left:3px solid var(--club)}
.studio-brand b{color:#ffd86b}
.studio-live,.studio-state{align-items:center;gap:5px;padding:5px 7px;border-radius:4px;font-weight:700}
.studio-live{display:none;background:#d92f3d}
.is-on-air .studio-live{display:inline-flex}
.studio-live i{width:6px;height:6px;border-radius:50%;background:#fff;box-shadow:0 0 0 0 rgba(255,255,255,.7);animation:studioPulse 1.5s infinite}
.studio-state{display:inline-flex;background:rgba(13,25,36,.84)}
.is-on-air .studio-state{display:none}
.is-off-air .studio-state{background:#c59024;color:#fff}
.is-unavailable .studio-state{background:#7d2630;color:#fff}
@keyframes studioPulse{70%{box-shadow:0 0 0 6px rgba(255,255,255,0)}100%{box-shadow:0 0 0 0 rgba(255,255,255,0)}}
.studio-lower-third{position:absolute;z-index:5;left:12px;right:12px;bottom:11px;display:grid;grid-template-columns:auto 1fr;grid-template-areas:"host role" "action action";align-items:center;overflow:hidden;border-radius:5px;background:linear-gradient(90deg,rgba(11,25,38,.96),rgba(24,43,58,.88));color:#fff;box-shadow:0 3px 12px rgba(0,0,0,.25)}
.studio-host{grid-area:host;align-self:stretch;display:flex;align-items:center;padding:6px 9px;background:var(--club);color:var(--club-2);font:700 12px/1 "Oswald","Arial Narrow",sans-serif;letter-spacing:.8px}
.studio-role{grid-area:role;padding:5px 8px;color:#b9c7d4;font-size:10px;text-transform:uppercase;letter-spacing:.6px}
.studio-action{grid-area:action;padding:6px 9px;border-top:1px solid rgba(255,255,255,.12);font-size:12px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.is-off-air .studio-action{color:#ffe5a5}
.is-unavailable .studio-action{color:#ffb8bd}
.studio-desk{display:flex;align-items:center;gap:7px;padding:8px 9px 0;overflow-x:auto;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.4px}
.studio-label{font-weight:800;margin-right:2px}
.studio-person{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;opacity:.62;transition:opacity .2s,color .2s}
.studio-person b{display:grid;place-items:center;width:19px;height:19px;border-radius:50%;background:var(--line);color:var(--muted);font-size:9px}
.studio-person.is-live{opacity:1;color:var(--text);font-weight:800}
.studio-person.is-live b{background:#d92f3d;color:#fff;box-shadow:0 0 0 3px rgba(217,47,61,.15)}
.is-off-air .studio-person.is-live b{background:#c59024;box-shadow:0 0 0 3px rgba(197,144,36,.15)}
.is-unavailable .studio-person{opacity:.35}
@media (max-width:820px){.match-studio{max-width:560px;margin:0 auto 14px}.studio-action{font-size:11px}}
@media (prefers-reduced-motion:reduce){.studio-poster,.studio-video,.studio-person{transition:none}.studio-live i{animation:none}}

/* ---- riquadro sostituzioni + storico ---- */
.subs-done{background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:14px}
.subs-title{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--club);margin:0 0 8px;font-weight:600}
.sub-line{display:flex;align-items:center;gap:8px;font-size:13px;padding:4px 0}
.sub-out{color:var(--muted)} .sub-in{color:var(--text);font-weight:500}
.sub-arrow{color:var(--club);font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700}
.results-tbl .res-score{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:600}
.res-badge{display:inline-block;width:22px;text-align:center;font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;font-size:12px;padding:2px 0;border-radius:5px}
.res-V{background:color-mix(in srgb,var(--pitch) 25%,transparent);color:#8fe6b5}
.res-N{background:var(--panel-2);color:var(--muted)}
.res-P{background:color-mix(in srgb,var(--danger) 22%,transparent);color:#ffb3b5}


/* ---- forme stemma (store) ---- */
.crest-shield{clip-path:polygon(50% 0,100% 18%,100% 62%,50% 100%,0 62%,0 18%)}
.crest-circle{clip-path:circle(50%)}
.crest-diamond{clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
.crest-hex{clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%)}
.crest-lg{width:64px;height:72px}
.store-grid{columns:240px;column-gap:var(--sp-4)}
.store-grid > *{break-inside:avoid;margin-bottom:var(--sp-4)}
.store-item{display:flex;gap:14px;align-items:center}
.store-preview{flex:0 0 72px;display:flex;align-items:center;justify-content:center}
.store-ico{font-size:34px;color:var(--amber)}
.store-body{min-width:0;flex:1}
.store-body h3{margin:0 0 4px;font-family:"Oswald","Arial Narrow",sans-serif;font-size:16px}
.store-foot{display:flex;align-items:center;gap:10px;margin-top:10px}
.store-price{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:600;color:var(--club)}
.tag-active{font-size:12px;color:#8fe6b5;font-weight:600}

/* ---- log partita dallo storico ---- */
.matchlog{max-width:640px;margin:0 auto}
.matchlog .scoreboard{margin-top:4px}
.matchlog .score{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;font-size:48px;display:flex;gap:10px;justify-content:center}
.ml-sub{text-align:center;color:var(--muted);font-size:13px;margin:10px 0 16px}
.ml-ticker{max-height:none}
.res-row{cursor:pointer}
.res-row:hover{background:var(--panel-2)}
.res-open{color:var(--club);font-size:12px;text-align:right;white-space:nowrap}

/* ---- leggende store ---- */
.legend-item{border-color:color-mix(in srgb,var(--amber) 30%,var(--line))}
.legend-badge{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;
  background:linear-gradient(135deg,#f2b233,#a9781a);color:#1a1205;font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;font-size:22px}

/* ---- taglio crediti + badge leggenda con bonus ---- */
.credits-buy{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.legend-badge{flex-direction:column;line-height:1}
.legend-badge em{font-style:normal;font-size:11px;color:#5a3e0a;font-weight:700}

/* ---- selettore lingua ---- */
.lang-switch{display:inline-flex;gap:4px;margin-left:12px}
.lang-btn{background:transparent;border:1px solid var(--line);color:var(--muted);border-radius:6px;padding:2px 7px;font-size:11px;cursor:pointer;font-weight:600}
.lang-btn:hover{color:var(--text)}
.lang-on{background:var(--club);color:var(--club-2);border-color:transparent}

/* ---- selettore lingua nel setup ---- */
.setup-lang{display:flex;gap:6px;justify-content:flex-end;margin-bottom:8px}
.setup-lang .lang-btn{text-decoration:none}

/* ---- ricompensa giornaliera ---- */
.daily-card{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);border-color:color-mix(in srgb,var(--amber) 25%,var(--line))}
.daily-info{display:flex;align-items:center;gap:14px}
.daily-ico{font-size:30px}
.daily-info h3{margin:0;font-family:"Oswald","Arial Narrow",sans-serif;font-size:17px}

/* ---- immagine leggenda nello store ---- */
.legend-preview{position:relative;width:72px;height:72px;flex:0 0 72px}
.legend-img{width:64px;height:64px;border-radius:50%;object-fit:cover;border:2px solid var(--amber);display:block;margin:0 auto}
.legend-preview .legend-badge{position:absolute;right:-4px;bottom:-4px;width:30px;height:30px;font-size:14px;border:2px solid var(--panel)}
.legend-preview .legend-badge em{font-size:8px}

/* ---- missioni ---- */
.miss-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.miss-item{transition:.15s}
.miss-done{border-color:color-mix(in srgb,var(--pitch) 40%,var(--line))}
.miss-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.miss-top h3{margin:0;font-family:"Oswald","Arial Narrow",sans-serif;font-size:16px}
.miss-reward{color:var(--amber);font-family:"Oswald","Arial Narrow",sans-serif;font-weight:600;white-space:nowrap}
.miss-bar{height:7px;background:var(--panel-2);border-radius:4px;overflow:hidden;margin:12px 0 8px}
.miss-bar i{display:block;height:100%;background:var(--club);border-radius:4px}
.miss-done .miss-bar i{background:var(--pitch)}
.miss-foot{display:flex;justify-content:space-between;align-items:center}

/* ---- Season Pass ---- */
.pass-head{display:flex;align-items:center;gap:20px}
.pass-lvl{text-align:center;flex:0 0 auto}
.pass-lvl-num{display:block;font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;font-size:38px;color:var(--club);line-height:1}
.pass-lvl-lab{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}
.pass-xp{flex:1;min-width:0}
.pass-xp-top{display:flex;justify-content:space-between;font-family:"Oswald","Arial Narrow",sans-serif;font-size:14px;margin-bottom:6px}
.pass-bar{height:9px;background:var(--panel-2);border-radius:5px;overflow:hidden}
.pass-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--club),var(--amber));border-radius:5px}
.pass-track-labels{display:grid;grid-template-columns:70px 1fr 1fr;gap:10px;margin:18px 0 6px;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}
.pass-grid{display:flex;flex-direction:column;gap:6px}
.pass-row{display:grid;grid-template-columns:70px 1fr 1fr;gap:10px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px 10px;opacity:.55}
.pass-reached{opacity:1;border-color:color-mix(in srgb,var(--club) 30%,var(--line))}
.pass-tier{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;font-size:18px;text-align:center}
.pass-cell{display:flex;align-items:center}
.pass-premium-cell{border-left:1px solid var(--line);padding-left:12px}
.pass-locked{color:var(--muted);font-size:13px}

/* ---- selettore lingua a tendina (compatto, non scrolla con molte lingue) ---- */
.lang-select{background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:7px;padding:4px 26px 4px 9px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%238a94a6' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center}
.lang-select:hover{border-color:var(--club)}
.lang-select option{background:var(--panel);color:var(--text)}
.setup-lang .lang-select{padding:6px 28px 6px 10px}

/* ---- link replay animato nello storico ---- */
.replay-link{display:inline-block;color:var(--club);font-weight:600;text-decoration:none;margin-right:10px;white-space:nowrap}
.replay-link:hover{text-decoration:underline}
.log-link{color:var(--muted);font-size:12px}

/* ---- stadio ---- */
.st-grid{columns:200px;column-gap:var(--grid-gap);margin-bottom:var(--sp-4)}
.st-grid > *{break-inside:avoid;margin-bottom:var(--grid-gap)}
.st-stat{display:flex;align-items:center;gap:14px}
.st-ico{font-size:30px}
.st-label{margin:0;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}
.st-val{margin:2px 0 0;font-family:"Oswald","Arial Narrow",sans-serif;font-size:22px;font-weight:600}
.st-val small{font-size:12px;color:var(--muted);font-weight:400}
.st-price-form{display:flex;align-items:center;gap:14px;margin-top:10px}
.st-price-form input[type=range]{flex:1;accent-color:var(--club)}
.st-price-val{font-family:"Oswald","Arial Narrow",sans-serif;font-size:20px;font-weight:600;color:var(--club);min-width:64px;text-align:right}
.st-expand{border-color:color-mix(in srgb,var(--amber) 25%,var(--line))}

/* ---- economia della gara ---- */
.st-econ .econ-rows{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.econ-row{display:flex;justify-content:space-between;align-items:center;font-size:15px}
.econ-row span:first-child{color:var(--text)}
.econ-pos{color:var(--pitch);font-family:"Oswald","Arial Narrow",sans-serif;font-weight:600}
.econ-neg{color:#e0607a;font-family:"Oswald","Arial Narrow",sans-serif;font-weight:600}
.econ-net{border-top:1px solid var(--line);padding-top:8px;margin-top:2px;font-family:"Oswald","Arial Narrow",sans-serif;font-size:19px;font-weight:700}
.econ-net span:last-child{color:var(--club)}

/* ---- nav raggruppata (dropdown, non scrolla) ---- */
.nav-grp{position:relative;display:flex;align-items:center}
.nav-grp-btn{background:none;border:none;color:var(--muted);cursor:pointer;font-weight:500;font-size:14px;line-height:1;padding:8px 12px;border-radius:8px;transition:.15s;display:inline-flex;align-items:center;gap:4px}
.nav-grp-btn:hover{color:var(--text);background:var(--panel-2)}
.nav-grp-btn i{font-style:normal;font-size:9px;opacity:.7}
.nav-drop{display:none;position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:6px;min-width:160px;z-index:60;flex-direction:column;gap:2px;box-shadow:0 12px 30px rgba(0,0,0,.4)}
.nav-grp:hover .nav-drop,.nav-grp:focus-within .nav-drop{display:flex}
.nav-drop::before{content:"";position:absolute;top:-8px;left:0;right:0;height:8px}
.nav-drop a{padding:8px 12px;border-radius:7px;white-space:nowrap}
.nav-drop a:hover{background:var(--panel-2);color:var(--text)}

/* ---- naming rights ---- */
.st-naming{border-color:color-mix(in srgb,var(--club) 22%,var(--line))}
.st-name-input{flex:1;background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:9px 12px;color:var(--text);font:inherit}
.st-name-input:focus{outline:none;border-color:var(--club)}

/* ---- morale tifosi ---- */
.fan-morale{margin-top:16px}
.fan-top{display:flex;justify-content:space-between;font-family:"Oswald","Arial Narrow",sans-serif;font-size:14px;margin-bottom:6px}
.fan-val{color:var(--club);font-weight:600}
.fan-bar{height:9px;background:var(--panel-2);border-radius:5px;overflow:hidden}
.fan-fill{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,#e0607a,var(--amber),var(--pitch))}

/* ---- temi stadio cosmetici ---- */
.theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:10px}
.theme-cell{display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px}
.theme-swatch{width:26px;height:26px;border-radius:7px;flex:0 0 26px;border:1px solid rgba(255,255,255,.15)}
.theme-name{flex:1;font-weight:600;font-size:14px}
.theme-cell .btn-mini,.theme-cell .tag-active{white-space:nowrap;flex:0 0 auto}
.theme-cell{flex-wrap:wrap}
.theme-sw-classic{background:linear-gradient(135deg,#7C5CFF,#0E1519)}
.theme-sw-emerald{background:linear-gradient(135deg,#10b981,#064e3b)}
.theme-sw-crimson{background:linear-gradient(135deg,#e0607a,#4c0519)}
.theme-sw-gold{background:linear-gradient(135deg,#f5c451,#7a5c12)}
.theme-sw-neon{background:linear-gradient(135deg,#22d3ee,#c026d3)}
/* accento del tema applicato alla pagina stadio */
.stadium-theme.theme-emerald .big,.stadium-theme.theme-emerald .econ-net span:last-child,.stadium-theme.theme-emerald .st-val small{color:#10b981}
.stadium-theme.theme-crimson .big,.stadium-theme.theme-crimson .econ-net span:last-child{color:#e0607a}
.stadium-theme.theme-gold .big,.stadium-theme.theme-gold .econ-net span:last-child{color:#f5c451}
.stadium-theme.theme-neon .big,.stadium-theme.theme-neon .econ-net span:last-child{color:#22d3ee}

/* ---- profili manager ---- */
.prof-list{display:flex;flex-direction:column;gap:12px;margin-top:20px}
.prof-item{display:flex;align-items:center;justify-content:space-between;gap:16px}
.prof-active{border-color:var(--club)}
.prof-info{display:flex;align-items:center;gap:14px}
.prof-ico{font-size:28px}
.prof-info h3{margin:0;font-family:"Oswald","Arial Narrow",sans-serif;font-size:17px}
.prof-actions{display:flex;align-items:center;gap:10px}

/* ---- lega condivisa ---- */
.mini-table{width:100%;border-collapse:collapse;margin-top:8px}
.mini-table th,.mini-table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);font-size:14px}
.mini-table th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.5px}
.mini-table .row-you{background:color-mix(in srgb,var(--club) 12%,transparent)}
.lg-human{font-size:12px;color:var(--club)}

/* ---- lega: tattica + stato ---- */
.tactic-row{display:flex;gap:10px;margin-top:8px;flex-wrap:wrap}
.tactic-btn{background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:9px;padding:10px 18px;font:inherit;font-weight:600;cursor:pointer;transition:.15s}
.tactic-btn:hover{border-color:var(--club)}
.tactic-on{background:var(--club);border-color:var(--club);color:#fff}
.st-status p{margin:6px 0}

/* ---- login / registrazione ---- */
.auth-box{max-width:420px;margin:0 auto}
/* P2.2 · selettore lingua: compatto, allineato a destra sopra il titolo */
.auth-lang{display:flex;justify-content:flex-end;gap:6px;margin-bottom:6px}
.auth-lang select{background:var(--panel-2);border:1px solid var(--line);border-radius:8px;
  padding:5px 8px;color:var(--text);font:inherit;font-size:13px;cursor:pointer}
.auth-lang select:focus-visible{outline:3px solid var(--club);outline-offset:2px}
.auth-lang-go{background:var(--panel-2);border:1px solid var(--line);border-radius:8px;
  padding:5px 10px;color:var(--text);cursor:pointer}
/* Login: FORM + POSTER trailer. Mobile (base): 1 colonna, form PRIMA (DOM) e poster DOPO.
   Desktop (@media): 2 colonne, poster a SINISTRA (order:-1) e form a DESTRA. */
.auth-wrap{display:grid;grid-template-columns:1fr;gap:28px;align-items:center;max-width:1040px}
.auth-hero{width:100%;max-width:560px;margin:0 auto}
/* poster 16:9 CLICCABILE: nessun crop (object-fit:contain) -> una copertina verticale NON viene tagliata
   (si adagia nel riquadro con lo sfondo pannello). Pronto per un poster 16:9 dedicato se aggiunto. */
.auth-poster{position:relative;display:block;width:100%;aspect-ratio:16/9;padding:0;border:1px solid var(--line);
  border-radius:14px;overflow:hidden;background:var(--panel-2);cursor:pointer;box-shadow:0 10px 30px rgba(0,0,0,.35)}
.auth-poster img{width:100%;height:100%;object-fit:contain;display:block;background:var(--panel-2)}
.auth-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:64px;height:64px;border-radius:50%;
  background:rgba(10,16,24,.7);color:#fff;display:flex;align-items:center;justify-content:center;font-size:24px;
  padding-left:4px;border:2px solid rgba(255,255,255,.85);transition:.15s}
.auth-poster:hover .auth-play{background:var(--club);transform:translate(-50%,-50%) scale(1.06)}
.auth-poster-label{position:absolute;left:0;right:0;bottom:0;padding:10px 14px;color:#fff;font-weight:600;font-size:14px;
  text-align:center;background:linear-gradient(transparent,rgba(10,16,24,.78))}
.auth-cover{width:100%;height:auto;display:block;border-radius:14px}
@media (min-width:900px){
  .auth-wrap{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:40px;margin:56px auto}
  .auth-hero{order:-1;max-width:none}   /* poster a SINISTRA, form a destra */
  .auth-box{margin:0}
}
/* MODAL TRAILER 16:9 */
body.modal-open{overflow:hidden}
.trailer-modal{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:20px}
.trailer-modal[hidden]{display:none}
.trailer-modal-backdrop{position:absolute;inset:0;background:rgba(6,10,16,.82)}
.trailer-modal-box{position:relative;width:min(92vw,960px);aspect-ratio:16/9;background:#000;border-radius:14px;
  overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.6);z-index:1}
.trailer-modal-box .auth-trailer{width:100%;height:100%;display:block;object-fit:contain;background:#000}
.trailer-close{position:absolute;top:8px;right:10px;z-index:2;width:38px;height:38px;border-radius:50%;
  background:rgba(10,16,24,.72);color:#fff;border:1px solid rgba(255,255,255,.4);font-size:22px;line-height:1;cursor:pointer}
.trailer-close:hover{background:var(--club)}
/* P1.1 a11y: focus da TASTIERA sempre VISIBILE su poster e controlli del modal (il mouse non lo
   attiva grazie a :focus-visible). L'outline non e' croppato: offset positivo + z-index del box. */
.auth-poster:focus-visible,.trailer-close:focus-visible,.auth-trailer:focus-visible,
.auth-form input:focus-visible,.btn-primary:focus-visible,.auth-switch a:focus-visible{
  outline:3px solid var(--club);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.auth-poster:hover .auth-play{transform:translate(-50%,-50%)}}
.auth-form{display:flex;flex-direction:column;gap:14px;margin-top:20px}
.auth-form label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted);font-weight:600}
.auth-form input{background:var(--panel-2);border:1px solid var(--line);border-radius:9px;padding:11px 13px;color:var(--text);font:inherit;font-size:15px}
.auth-form input:focus{outline:none;border-color:var(--club)}
.btn-block{width:100%;padding:12px;font-size:15px}
.banner-err{background:color-mix(in srgb,#e0607a 18%,var(--panel));border:1px solid #e0607a;color:#f0a5b5;border-radius:9px;padding:10px 14px;margin-top:16px}
.auth-or{display:flex;align-items:center;gap:12px;margin:22px 0 16px;color:var(--muted);font-size:13px}
.auth-or::before,.auth-or::after{content:"";flex:1;height:1px;background:var(--line)}
.auth-social{display:flex;flex-direction:column;gap:10px}
.social-btn{display:flex;align-items:center;justify-content:center;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:11px;color:var(--text);font:inherit;font-weight:600;cursor:not-allowed;opacity:.6}
.soc-g{color:#4285F4;font-weight:800}.soc-f{color:#1877F2;font-weight:800}
.auth-soon{text-align:center;font-size:12px;margin-top:8px}
.auth-switch{text-align:center;margin-top:20px}
.auth-switch a{color:var(--club);text-decoration:none;font-weight:600}

/* ---- logout ---- */
.logout-btn{background:none;border:none;cursor:pointer;padding:5px 7px;border-radius:6px;display:inline-flex;align-items:center;opacity:.7;transition:.15s}
.logout-btn:hover{opacity:1;background:var(--panel-2)}
.logout-ico{width:18px;height:18px;display:block}

/* ---- calendario stagione ---- */
.cal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.cal-round-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.cal-round-head h3{margin:0;font-family:"Oswald","Arial Narrow",sans-serif;font-size:15px}
.cal-current{border-color:var(--club)}
.cal-badge{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#fff;background:var(--club);padding:2px 8px;border-radius:20px}
.cal-matches{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.cal-match{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;padding:6px 8px;border-radius:7px;font-size:13px}
.cal-home{text-align:right}.cal-away{text-align:left}
.cal-score{min-width:44px;text-align:center;font-family:"Oswald","Arial Narrow",sans-serif}
.cal-vs{color:var(--muted);font-size:11px}
.cal-mine{background:color-mix(in srgb,var(--club) 14%,transparent);font-weight:600}

/* ---- store: riepilogo modulo/ruoli + avviso panchina ---- */
.leg-slots{margin-bottom:16px}
.leg-slots-title{margin:0 0 10px;font-size:14px}
.leg-slots-row{display:flex;gap:12px;flex-wrap:wrap}
.leg-slot{display:flex;align-items:center;gap:7px;background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:7px 12px}
.leg-slot-n{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:600;font-size:15px}
.leg-warn{margin:6px 0 0;color:var(--amber);font-size:12px;font-weight:600;cursor:help}

/* ---- almanacco statistiche ---- */
.stat-grid{columns:260px;column-gap:var(--grid-gap)}
.stat-grid > *{break-inside:avoid;margin-bottom:var(--grid-gap)}
.stat-section{margin:24px 0 12px;font-family:"Oswald","Arial Narrow",sans-serif;font-size:18px}
.stat-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:2px;counter-reset:none}
.stat-list li{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:8px;padding:7px 6px;border-bottom:1px solid var(--line);font-size:14px}
.stat-list li:last-child{border-bottom:none}
.stat-rank{color:var(--muted);font-family:"Oswald","Arial Narrow",sans-serif;font-weight:600;text-align:center}
.stat-list li:first-child .stat-rank{color:var(--amber)}
.stat-val{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;font-size:16px;color:var(--club)}
.card-y{background:#f5c451;color:#3a2e00;border-radius:3px;padding:1px 6px;font-weight:700;font-size:12px}
.card-r{background:#e0607a;color:#fff;border-radius:3px;padding:1px 6px;font-weight:700;font-size:12px}

/* ---- rapporto scout avversario ---- */
.scout{display:flex;flex-wrap:wrap;gap:18px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
/* v1.0.191: rimosso override colonna che rendeva i blocchi enormi; vale la riga compatta orizzontale sopra */
.scout-lbl{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}
.scout-val{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:600;font-size:15px}
.scout-form{display:flex;gap:4px}
.scout-form span{width:20px;height:20px;border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff}
.form-W{background:var(--pitch)}.form-D{background:#8a94a6}.form-L{background:#e0607a}

/* ---- classifiche di lega + premi ---- */
.lg-team{font-size:11px;color:var(--muted);font-weight:400}
.lg-team.mine{color:var(--club);font-weight:600}
.award{text-align:center;border-color:color-mix(in srgb,var(--amber) 30%,var(--line))}
.award-lbl{margin:0 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--amber);font-weight:600}
.award-name{margin:0;font-family:"Oswald","Arial Narrow",sans-serif;font-size:18px;font-weight:700}

/* ---- marcatura a uomo ---- */
.mark-btn{background:var(--panel-2);border:1px solid var(--line);color:var(--text);border-radius:7px;padding:5px 12px;font:inherit;font-size:12px;font-weight:600;cursor:pointer}
.mark-btn:hover{border-color:var(--club)}
.mark-on{background:var(--club);border-color:var(--club);color:#fff}

/* Badge "ricompensa giornaliera pronta" nella nav (Panchina) -- v0.83 */
.nav-daily{position:relative}
.nav-badge{display:inline-block;width:8px;height:8px;margin-left:6px;border-radius:50%;
  background:var(--gold);vertical-align:middle;
  box-shadow:0 0 0 0 rgba(245,197,66,.55);animation:navpulse 1.8s ease-out infinite}
@keyframes navpulse{
  0%{box-shadow:0 0 0 0 rgba(245,197,66,.55)}
  70%{box-shadow:0 0 0 6px rgba(245,197,66,0)}
  100%{box-shadow:0 0 0 0 rgba(245,197,66,0)}}
@media (prefers-reduced-motion: reduce){ .nav-badge{animation:none} }

/* Pannello Movimenti di lega -- v0.87 */
.mv-tbl{margin-bottom:18px}
.mv-tbl td.mv-c, .mv-tbl th.mv-c{text-align:center;white-space:nowrap}
.mv-tbl td.mv-fee, .mv-tbl th.mv-fee{text-align:right;color:var(--green);white-space:nowrap}

/* ===== Pagina giocatore (v1.0.22) ===== */
.player-page{max-width:900px;margin:0 auto}
.player-page>.btn-ghost{display:inline-block;margin-bottom:12px}
.pl-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.pl-face .face-lg{width:72px;height:72px}
.pl-id{flex:1 1 220px;min-width:220px}
.pl-name{margin:0 0 4px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pl-sub{margin:0 0 2px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pl-nat{font-weight:600}
.pl-club{margin:0}
.pl-physique{margin:0 0 2px;font-size:13px}
.pl-ovr{display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-width:88px;padding:8px 14px;border-radius:12px;background:var(--panel-2,rgba(255,255,255,.04));border:1px solid var(--line)}
.pl-ovr-num{font-size:34px;font-weight:800;line-height:1;color:var(--green)}
.pl-ovr-lbl{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.pl-pot{margin-top:4px;font-size:11px;color:var(--gold)}
.pl-grid{columns:260px;column-gap:var(--grid-gap);margin-top:var(--stack-gap)}
.pl-grid > *{break-inside:avoid;margin-bottom:var(--grid-gap)}
.pl-attrs{display:flex;flex-direction:column;gap:8px}
.pl-attr{display:grid;grid-template-columns:64px 1fr 28px;align-items:center;gap:8px}
.pl-attr-lbl{font-size:12px;color:var(--muted)}
.pl-attr-val{text-align:right;font-variant-numeric:tabular-nums}
.pl-bar{height:8px;border-radius:5px;background:rgba(255,255,255,.08);overflow:hidden}
.pl-bar>i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--green))}
.pl-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(72px,1fr));gap:10px;text-align:center}
.pl-stat b{display:block;font-size:20px;font-variant-numeric:tabular-nums}
.pl-stat span{font-size:11px;color:var(--muted)}
/* Contratto: valore/ingaggio possono essere lunghi (es. "120.000.000 €") -> font piu' piccolo e
   colonne piu' larghe per evitare sovrapposizioni; wrap di sicurezza per importi anomali. */
.pl-money{grid-template-columns:repeat(auto-fit,minmax(116px,1fr))}
.pl-money .pl-stat b{font-size:13px;line-height:1.25;overflow-wrap:anywhere}
.pn-link{color:inherit;text-decoration:none;border-bottom:1px dotted transparent}
.pn-link:hover{color:var(--blue);border-bottom-color:var(--blue)}

/* ---- Pronostico pre-partita (feature 1.4) ---- */
.forecast .fc-prob{display:flex;height:22px;border-radius:6px;overflow:hidden;margin:6px 0;font:600 11px/22px "Inter",sans-serif;color:#0b1418;text-align:center}
.fc-seg{overflow:hidden;white-space:nowrap;min-width:0}
.fc-win{background:var(--green)} .fc-draw{background:var(--gold)} .fc-loss{background:var(--red)}
.fc-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-top:2px}
.fc-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}
.fc-dot.fc-win{background:var(--green)} .fc-dot.fc-draw{background:var(--gold)} .fc-dot.fc-loss{background:var(--red)}
.fc-xg{margin:8px 0 0;font-size:13px}
.fc-axes{list-style:none;padding:0;margin:6px 0 0;display:grid;gap:5px}
.fc-axes li{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;gap:12px}
.fc-ax-val{font-weight:700;font-family:"Oswald","Arial Narrow",sans-serif}
.fc-ax-val.fc-good{color:var(--green)} .fc-ax-val.fc-bad{color:var(--red)} .fc-ax-val.fc-flat{color:var(--muted)}
.fc-hint{font-size:11px;margin:8px 0 0}

/* ---- Analisi post-partita (feature 1.5) ---- */
.report .rep-score{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;margin:0 6px}
.rep-verdict{font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:14px;margin:4px 0}
.rep-verdict.rep-win{color:var(--green)} .rep-verdict.rep-draw{color:var(--muted)} .rep-verdict.rep-lose{color:var(--red)}
.rep-cs{color:var(--green)}
.rep-grid{columns:2;column-gap:var(--grid-gap);margin:var(--stack-gap) 0}
.rep-grid > *{break-inside:avoid;margin-bottom:var(--grid-gap)}
.rep-plan{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:10px}
.rep-plan .k{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.rep-plan .v{font-weight:600}
.rep-actual,.rep-effects{display:flex;gap:14px;flex-wrap:wrap}
.ra-cell{display:flex;flex-direction:column}
.ra-cell b{font-family:"Oswald","Arial Narrow",sans-serif;font-size:20px;line-height:1}
.ra-cell span{font-size:11px;color:var(--muted)}
.rp-tab{width:100%;border-collapse:collapse;font-size:13px}
.rp-tab th{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;text-align:right;padding:4px 8px;font-weight:600}
.rp-tab th:first-child{text-align:left}
.rp-tab td{padding:6px 8px;text-align:right;border-top:1px solid var(--line,#243038)}
.rp-tab .rp-lab{text-align:left;color:var(--muted)}
.rp-tab b{font-family:"Oswald","Arial Narrow",sans-serif;font-size:16px}
.rp-sh{display:block;font-size:10px;color:var(--muted)}
.rep-form{margin-top:10px;display:flex;align-items:center;gap:6px}
.rep-form .k{font-size:11px;color:var(--muted);text-transform:uppercase;margin-right:4px}
.form-dot{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:5px;font:700 11px/1 "Inter",sans-serif;color:#0b1418}
.form-w{background:var(--green)} .form-d{background:var(--gold)} .form-l{background:var(--red)}
.rep-sub{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:10px 0 4px}
.rep-players{list-style:none;padding:0;margin:0;display:grid;gap:4px}
.rep-players li{font-size:14px}
.rep-min{color:var(--muted);font-size:12px;margin-left:6px}
.rep-badge{background:var(--petrol,#0B5D4C);color:#fff;border-radius:4px;padding:0 5px;font-size:11px;font-weight:700;margin-left:6px}
.rep-timeline{list-style:none;padding:0;margin:0;display:grid;gap:6px}
.rep-timeline li{display:flex;align-items:baseline;gap:8px;font-size:13px;padding-left:6px;border-left:3px solid transparent}
.rep-timeline .rt-us{border-left-color:var(--green)} .rep-timeline .rt-them{border-left-color:var(--red)}
.rep-timeline .rt-goal_provisional{opacity:.7;font-style:italic}
.rep-timeline .rt-offside_chance{opacity:.7;font-style:italic;text-decoration:line-through}
.rt-min{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;min-width:34px}
@media (max-width:820px){ .rep-grid{grid-template-columns:1fr} }

/* ---- Home "Oggi" · priorita' (feature 1.1) ---- */
.today-card .card-head h3{letter-spacing:.02em}
.today-list{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.today-item{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:8px;background:var(--card,#fff);border-left:4px solid var(--muted)}
.today-item.lvl-danger{border-left-color:var(--red);background:rgba(239,68,68,.06)}
.today-item.lvl-warn{border-left-color:var(--gold);background:rgba(245,197,66,.07)}
.today-item.lvl-info{border-left-color:var(--blue);background:rgba(46,144,255,.06)}
.today-ico{font-size:18px;line-height:1}
.today-body{flex:1;display:flex;flex-direction:column;min-width:0}
.today-ttl{font-weight:600;font-size:14px}
.today-det{font-size:12px;color:var(--muted)}
.today-cta{flex-shrink:0;font-size:12px;font-weight:600;padding:5px 10px;border-radius:6px;background:var(--petrol,#0B5D4C);color:#fff;text-decoration:none}
.today-none{margin:4px 0}
.dash-fc{margin:12px 0 4px}
.next-match .fc-legend{gap:12px;font-size:11px}

/* ======================================================================
   IA a 5 aree -- stato ATTIVO topbar (desktop) + BOTTOM-NAV (mobile)
   Usa solo CSS vars -> eredita Petrolio/Cielo e il colore-club automaticamente.
   ====================================================================== */
.nav a.is-active,.nav-grp-btn.is-active{color:var(--text);background:var(--panel-2);box-shadow:inset 0 -2px 0 var(--club)}

.botnav{display:none}
@media (max-width:820px){
  .botnav{
    display:flex;position:fixed;left:0;right:0;bottom:0;z-index:80;
    background:var(--panel);border-top:1px solid var(--line);
    padding:6px 4px;padding-bottom:calc(6px + env(safe-area-inset-bottom,0px));
    box-shadow:0 -6px 20px rgba(0,0,0,.28);
  }
  .botnav-item{
    flex:1 1 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
    min-height:46px;padding:4px 2px;border-radius:12px;position:relative;
    color:var(--muted);text-decoration:none;font-size:10px;font-weight:600;letter-spacing:.2px;
  }
  .botnav-item.is-active{color:var(--text)}
  .botnav-item.is-active::before{content:"";position:absolute;top:0;left:22%;right:22%;height:3px;border-radius:0 0 3px 3px;background:var(--club)}
  .botnav-ico{font-size:21px;line-height:1}
  .botnav-lbl{line-height:1;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .botnav-badge{position:absolute;top:3px;left:calc(50% + 6px);width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 2px var(--panel)}
  /* la barra e' fissa in basso: spazio perche' il contenuto non ci finisca sotto */
  .wrap{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))}
  .foot{margin-bottom:60px}
}

/* ---- sub-navigazione per-area (desktop + mobile): strip di tab sotto la topbar ---- */
.subnav{border-bottom:1px solid var(--line)}
.subnav-inner{max-width:1080px;margin:0 auto;display:flex;gap:2px;padding:0 24px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.subnav-inner::-webkit-scrollbar{display:none}
.subnav-tab{white-space:nowrap;padding:12px 14px;color:var(--muted);text-decoration:none;font-size:13px;font-weight:600;border-bottom:2px solid transparent;margin-bottom:-1px;transition:.15s}
.subnav-tab:hover{color:var(--text)}
.subnav-tab.is-active{color:var(--text);border-bottom-color:var(--club)}
@media (max-width:820px){ .subnav-inner{padding:0 12px} }

/* ---- report causale: pronostico-vs-esito + momento chiave ---- */
.rep-causal{margin:16px 0}
.rc-top{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.rc-fc{flex:1;min-width:220px}
.rc-cap{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}
.rc-bar{display:flex;height:12px;border-radius:6px;overflow:hidden;margin:6px 0;background:var(--panel-2)}
.rc-bar .rc-w{background:var(--green)}
.rc-bar .rc-dr{background:var(--muted)}
.rc-bar .rc-l{background:var(--red)}
.rc-legend{font-size:12px;color:var(--muted)}
.rc-verdict{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:600;font-size:15px;padding:6px 12px;border-radius:8px;border:1px solid var(--line);white-space:nowrap}
.rc-v-as_expected{color:var(--text)}
.rc-v-above{color:var(--green);border-color:color-mix(in srgb,var(--green) 45%,var(--line))}
.rc-v-below{color:var(--red);border-color:color-mix(in srgb,var(--red) 45%,var(--line))}
.rc-xg{margin-top:10px;font-size:14px;color:var(--text)}
.rc-turn{margin-top:10px;padding-top:10px;border-top:1px solid var(--line);font-size:14px}
.rc-turn-min{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:600;color:var(--club)}
.rc-turn-lab{color:var(--muted);text-transform:uppercase;font-size:12px;letter-spacing:.4px}

/* VERDETTO post-partita (FASE 1.1): headline 'cosa ha funzionato / non ha funzionato / la svolta' */
.rep-vd{margin:16px 0}
.vd-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:640px){ .vd-grid{grid-template-columns:1fr} }
.vd-cap{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.4px;margin:0 0 8px}
.vd-pos .vd-cap{color:var(--green)}
.vd-neg .vd-cap{color:var(--red)}
.vd-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.vd-list li{position:relative;padding-left:16px;font-size:14px;line-height:1.35;color:var(--text)}
.vd-list li::before{content:"";position:absolute;left:0;top:7px;width:6px;height:6px;border-radius:50%}
.vd-pos .vd-list li::before{background:var(--green)}
.vd-neg .vd-list li::before{background:var(--red)}
.vd-none{font-size:14px;margin:0}
.vd-turn{margin-top:14px;padding:10px 12px;border-radius:8px;border:1px solid var(--line);border-left:3px solid var(--club);display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;font-size:14px}
.vd-turn-lab{color:var(--muted);text-transform:uppercase;font-size:12px;letter-spacing:.4px}
.vd-turn-min{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:600;color:var(--club)}
.vd-turn-us{border-left-color:var(--green)}
.vd-turn-them{border-left-color:var(--red)}

/* ---- piani tattici salvabili ---- */
.tactic-plans{margin-top:var(--sp-3)}
.tp-save{display:flex;gap:8px;margin-bottom:10px}
.tp-save input{flex:1;min-width:0;padding:8px 10px;border-radius:8px;border:1px solid var(--line);background:var(--panel-2);color:var(--text)}
.tp-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.tp-item{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2)}
.tp-name{font-weight:700}
.tp-meta{color:var(--muted);font-size:12px;flex:1;min-width:120px}
.tp-actions{display:flex;gap:6px}
.tp-actions form{margin:0}
.btn-mini{padding:5px 10px;border-radius:7px;border:1px solid var(--line);background:var(--panel);color:var(--text);font-size:12px;font-weight:600;cursor:pointer}
.btn-mini:hover{border-color:var(--club)}
.btn-mini.btn-danger:hover{border-color:var(--red);color:var(--red)}
.btn-ghost{padding:8px 14px;border-radius:8px;border:1px solid var(--line);background:transparent;color:var(--text);font-weight:600;cursor:pointer}
.btn-ghost:hover{border-color:var(--club)}
/* ====================== MATCH GRAPH EXPLORER ====================== */
.mg-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:16px}
.mg-subtitle{margin:0;max-width:720px}
.mg-score{display:grid;grid-template-columns:minmax(90px,1fr) auto minmax(90px,1fr);align-items:center;gap:12px;text-align:center}
.mg-score span{font-size:13px;font-weight:600}
.mg-score strong{font-family:"Oswald","Arial Narrow",sans-serif;font-size:34px;color:var(--club);white-space:nowrap}
.mg-explorer{width:min(1420px,calc(100vw - 40px));margin-left:50%;transform:translateX(-50%)}

/* AUTOPSIA TATTICA (FASE 1.2): lettura-prima in testa al match graph */
.mg-autopsy{margin:16px 0}
.ap-flow{margin-bottom:14px}
.ap-flow-head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:8px;margin-bottom:6px}
.ap-flow-title{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}
.ap-flow-legend{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ap-flow-legend b{color:var(--text)}
.ap-swatch{width:10px;height:10px;border-radius:2px;display:inline-block}
.ap-swatch.ap-us{background:var(--green)}
.ap-swatch.ap-them{background:var(--red)}
.ap-svg{width:100%;height:auto;display:block;background:var(--panel-2);border-radius:8px;border:1px solid var(--line)}
.ap-axis{stroke:var(--line);stroke-width:1}
.ap-line{stroke-width:2.2;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}
.ap-line-us{stroke:var(--green)}
.ap-line-them{stroke:var(--red)}
.ap-segs{display:flex;gap:3px;margin-top:8px}
.ap-seg{flex:1;height:22px;border-radius:4px;display:flex;align-items:center;justify-content:center;background:var(--panel-2);border:1px solid var(--line)}
.ap-seg-lab{font-size:10px;color:var(--muted);white-space:nowrap}
.ap-seg-us{background:color-mix(in srgb,var(--green) 22%,transparent);border-color:color-mix(in srgb,var(--green) 45%,var(--line))}
.ap-seg-them{background:color-mix(in srgb,var(--red) 22%,transparent);border-color:color-mix(in srgb,var(--red) 45%,var(--line))}
.ap-seg-even{background:color-mix(in srgb,var(--muted) 16%,transparent)}
.ap-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:640px){ .ap-cols{grid-template-columns:1fr} }
.ap-sub{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);margin:0 0 8px}
.ap-findings{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:6px}
.ap-findings li{position:relative;padding-left:16px;font-size:14px;line-height:1.35;color:var(--text)}
.ap-findings li::before{content:"";position:absolute;left:0;top:7px;width:6px;height:6px;border-radius:50%;background:var(--club)}
.ap-origin{display:flex;gap:3px;height:26px;border-radius:6px;overflow:hidden}
.ap-origin-cell{display:flex;align-items:center;justify-content:center;min-width:0;background:var(--panel-2)}
.ap-origin-lab{font-size:10px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 4px}
.ap-origin-open_play{background:color-mix(in srgb,var(--club) 30%,transparent)}
.ap-origin-corner{background:color-mix(in srgb,var(--club) 20%,transparent)}
.ap-origin-freekick{background:color-mix(in srgb,var(--warn) 26%,transparent)}
.ap-origin-penalty{background:color-mix(in srgb,var(--red) 26%,transparent)}
.ap-goals{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px}
.ap-goals li{display:flex;align-items:baseline;gap:8px;font-size:14px;padding-left:10px;border-left:3px solid var(--line)}
.ap-goal-us{border-left-color:var(--green)}
.ap-goal-them{border-left-color:var(--red)}
.ap-goal-min{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:600;color:var(--club);min-width:28px}
.ap-goal-side{font-weight:600}
.ap-goal-origin{color:var(--muted);font-size:13px}
.mg-toolbar{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;padding:14px;margin-bottom:10px;box-shadow:none}
.mg-levels,.mg-view-tools{display:flex;gap:6px;flex-wrap:wrap}
.mg-view-tools{margin-left:auto}
.mg-tool{border:1px solid var(--line);background:var(--panel-2);color:var(--muted);border-radius:8px;padding:8px 11px;font:inherit;font-size:12px;font-weight:600;cursor:pointer}
.mg-tool:hover,.mg-tool:focus-visible{color:var(--text);border-color:var(--club);outline:2px solid color-mix(in srgb,var(--club) 45%,transparent);outline-offset:2px}
.mg-tool.is-active{background:var(--club);border-color:var(--club);color:var(--club-2)}
.mg-select{display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.5px}
.mg-select select{min-width:150px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);border-radius:8px;padding:8px;font:inherit;font-size:12px;text-transform:none}
.mg-kpis{display:flex;align-items:center;gap:15px;flex-wrap:wrap;padding:8px 4px 12px;color:var(--muted);font-size:12px}
.mg-kpis b{color:var(--text)}
.mg-validity{margin-right:auto;padding:3px 9px;border:1px solid var(--line);border-radius:20px}
.mg-validity.is-valid{color:var(--green);border-color:color-mix(in srgb,var(--green) 55%,var(--line))}
.mg-validity.is-invalid{color:var(--red);border-color:color-mix(in srgb,var(--red) 55%,var(--line))}
.mg-legend{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.mg-line{display:inline-block;width:24px;height:0;border-top:2px solid}
.mg-line.causal{border-color:var(--gold)}
.mg-line.temporal{border-color:var(--muted);border-top-style:dashed}
.mg-line.reference{border-color:#C084FC;border-top-style:dotted}
.mg-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:14px;align-items:start}
.mg-canvas-card{padding:0;overflow:hidden;position:relative;min-width:0}
.mg-canvas-shell{height:540px;overflow:auto;background-color:var(--bg);background-image:linear-gradient(color-mix(in srgb,var(--line) 28%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--line) 28%,transparent) 1px,transparent 1px);background-size:24px 24px;scrollbar-color:var(--line) var(--panel)}
.mg-canvas-shell:focus-visible{outline:3px solid var(--club);outline-offset:-3px}
.mg-canvas-shell.is-panning{cursor:grabbing}
.mg-canvas-shell.can-pan{cursor:grab}
.mg-minimap{position:absolute;right:12px;bottom:12px;z-index:3;width:216px;height:84px;padding:4px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--panel) 92%,transparent);box-shadow:0 4px 14px rgba(0,0,0,.28)}
.mg-minimap-svg{display:block;width:100%;height:100%;cursor:pointer}
.mg-minimap-dot{stroke:none}
.mg-minimap-view{fill:color-mix(in srgb,var(--club) 22%,transparent);stroke:var(--club);stroke-width:1.5;rx:2}
@media (max-width:720px){.mg-minimap{width:150px;height:60px}}
.mg-svg{display:block;min-width:900px;min-height:500px}
.mg-status{position:absolute;inset:0;z-index:2;display:grid;place-items:center;background:color-mix(in srgb,var(--panel) 88%,transparent);color:var(--muted);font-weight:600}
.mg-status[hidden]{display:none}
.mg-lane-line{stroke:var(--line);stroke-width:1;stroke-dasharray:4 8}
.mg-lane-name{font-family:"Oswald","Arial Narrow",sans-serif;font-weight:700;font-size:12px;text-transform:uppercase}
.mg-edge{fill:none;stroke-width:2;opacity:.8;pointer-events:none}
.mg-edge-causal{stroke:var(--gold)}
.mg-edge-causal.is-projected{stroke-dasharray:2 3}
.mg-edge-temporal{stroke:var(--muted);stroke-dasharray:5 7;opacity:.42}
.mg-edge-reference{stroke:#C084FC;stroke-dasharray:3 4}
.mg-arrow{fill:var(--muted)}
.mg-node{cursor:pointer}
.mg-node-box{fill:var(--panel);stroke-width:3;filter:drop-shadow(0 4px 7px rgba(0,0,0,.28));transition:.12s}
.mg-node:hover .mg-node-box,.mg-node:focus-visible .mg-node-box{fill:var(--panel-2);stroke-width:5}
.mg-node:focus{outline:none}
.mg-node.is-selected .mg-node-box{stroke:var(--gold)!important;stroke-width:5}
.mg-node-time,.mg-node-label,.mg-node-icon,.mg-node-action{fill:var(--text);font-family:"Inter",system-ui,sans-serif;pointer-events:none}
.mg-node-time{font-size:10px;font-weight:700;fill:var(--muted)}
.mg-node-label{font-size:10px;font-weight:700}
.mg-node-icon{font-size:14px;font-weight:800}
.mg-node-action{font-size:8px;fill:var(--muted)}
.mg-compound-box{fill:color-mix(in srgb,var(--club) 8%,var(--panel-2));stroke-width:4}
.mg-compound:hover .mg-compound-box,.mg-compound:focus-visible .mg-compound-box{fill:color-mix(in srgb,var(--club) 16%,var(--panel-2));stroke-width:5}
.mg-compound-badge{fill:var(--gold);font-family:"Inter",system-ui,sans-serif;font-size:10px;font-weight:800;pointer-events:none}
.mg-compound-label{fill:var(--text);font-family:"Inter",system-ui,sans-serif;font-size:10px;font-weight:700;pointer-events:none}
.mg-segment-band{fill:color-mix(in srgb,var(--line) 8%,transparent);pointer-events:none}
.mg-segment-band.alt{fill:color-mix(in srgb,var(--line) 16%,transparent)}
.mg-segment-label{fill:var(--muted);font-family:"Oswald","Arial Narrow",sans-serif;font-size:11px;font-weight:700;letter-spacing:.5px;pointer-events:none}
.mg-segment-sep{stroke:var(--line);stroke-width:1;stroke-dasharray:2 6;opacity:.55;pointer-events:none}
.mg-level-3 .mg-node-box{fill:color-mix(in srgb,var(--gold) 10%,var(--panel))}
.mg-node.is-dimmed{opacity:.24}
.mg-node.is-on-path .mg-node-box{stroke:var(--gold)!important;stroke-width:5;filter:drop-shadow(0 0 6px color-mix(in srgb,var(--gold) 60%,transparent))}
.mg-edge.is-dimmed{opacity:.12}
.mg-edge.is-on-path{stroke:var(--gold);opacity:1;stroke-width:3}
.mg-inspector{position:sticky;top:142px;min-height:300px}
.mg-event-head{display:flex;gap:12px;align-items:center;padding-bottom:12px;border-bottom:1px solid var(--line)}
.mg-event-head div{display:flex;flex-direction:column;gap:3px}
.mg-event-head span{color:var(--muted);font-size:12px}
.mg-detail-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--panel-2);color:var(--club)!important;font-size:19px!important;font-weight:800}
.mg-detail-text{line-height:1.45;font-size:13px;min-height:38px}
.mg-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}
.mg-detail-grid div{min-width:0;padding:8px;background:var(--panel-2);border-radius:8px}
.mg-detail-grid dt{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.5px}
.mg-detail-grid dd{margin:4px 0 0;font-size:12px;font-weight:600;overflow-wrap:anywhere}
@media (max-width:900px){
  .mg-hero{align-items:flex-start;flex-direction:column}.mg-score{width:100%}
  .mg-layout{grid-template-columns:1fr}.mg-inspector{position:static;min-height:0}
  .mg-view-tools{margin-left:0}.mg-canvas-shell{height:480px}
}
@media (max-width:600px){
  .mg-explorer{width:calc(100vw - 24px)}.mg-toolbar{align-items:stretch}
  .mg-levels,.mg-view-tools{width:100%}.mg-tool{flex:1}
  .mg-select{flex:1}.mg-select select{min-width:0;width:100%}.mg-kpis{gap:9px}
  .mg-score{grid-template-columns:1fr auto 1fr}.mg-score strong{font-size:28px}
}
.mg-validity.is-reduced{color:var(--gold);border-color:color-mix(in srgb,var(--gold) 55%,var(--line))}
.mg-legacy-note{display:inline-block;margin:10px 0 0;padding:7px 10px;border:1px solid color-mix(in srgb,var(--gold) 50%,var(--line));border-radius:8px;color:var(--gold);font-size:12px}

/* ===== Meteo (WP2) - scheda pre-gara + chip panchina. Puro CSS, tema-aware. ===== */
.weather-card{display:flex;align-items:center;gap:12px;margin:14px 0;padding:12px 14px;
  background:var(--panel-2);border:1px solid var(--line);border-radius:12px}
.weather-card .w-icon{color:var(--blue);flex:0 0 auto;display:inline-flex}
.weather-card .w-ic{width:30px;height:30px;display:block}
.weather-card .w-main{display:flex;flex-direction:column;gap:2px;flex:1 1 auto;min-width:0}
.weather-card .w-cond{font-weight:600;font-size:15px;color:var(--text)}
.weather-card .w-meta{font-size:13px;color:var(--muted)}
.weather-card .w-tag{font-size:11px;text-transform:uppercase;letter-spacing:.7px;
  color:var(--muted);font-weight:600;flex:0 0 auto}
.weather-chip{display:flex;align-items:center;gap:8px;margin:8px 0 2px;padding:6px 10px;
  background:var(--panel-2);border:1px solid var(--line);border-radius:10px}
.weather-chip .w-icon{color:var(--blue);flex:0 0 auto;display:inline-flex}
.weather-chip .w-ic{width:20px;height:20px;display:block}
.weather-chip .w-cond{font-weight:600;font-size:13px;color:var(--text)}
.weather-chip .w-meta{font-size:12px;color:var(--muted);margin-left:auto}

/* ===== Macchina del Tempo (v1.0.111) -- collezione e match isolati. ===== */
.hist-store-head{margin-top:32px}.hist-store-title{font-size:26px}.hist-store-note{margin-bottom:16px}
.hist-grid{columns:3 240px;column-gap:14px}
.hist-grid > .card{margin-bottom:14px}
.hist-card{padding:0;overflow:hidden;break-inside:avoid;border-color:color-mix(in srgb,var(--hist-a) 34%,var(--line))}
.hist-card.is-locked{filter:saturate(.62)}
.hist-card-banner{min-height:108px;padding:18px;display:flex;align-items:flex-start;justify-content:space-between;
  color:#101418;background:linear-gradient(135deg,var(--hist-a),color-mix(in srgb,var(--hist-b) 86%,#fff))}
.hist-card-banner strong{font:800 30px/1 "Oswald","Arial Narrow",sans-serif;letter-spacing:1px}
.hist-flag{font-size:38px;line-height:1}.hist-card-body{padding:16px}.hist-card-body h2,.hist-card-body h3{margin:4px 0 8px}
.hist-mini-xi{display:flex;flex-wrap:wrap;gap:4px;margin:14px 0}.hist-mini-xi .pos{font-size:8px}
.hist-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:6px 0 18px}
.hist-lead{max-width:720px;color:var(--muted);line-height:1.55}.hist-collection-count{display:flex;flex-direction:column;align-items:flex-end}
.hist-collection-count strong{font:800 36px/1 "Oswald","Arial Narrow",sans-serif;color:var(--club)}
.hist-collection-count span{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.8px}
.hist-isolation{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px;border-left:3px solid var(--blue)}
.hist-isolation>span{font-size:24px}.hist-isolation p{margin:4px 0 0;color:var(--muted);font-size:13px;line-height:1.45}
.hist-team-hero,.hist-result-hero{padding:22px;margin-bottom:18px;border:1px solid color-mix(in srgb,var(--hist-a) 45%,var(--line));
  border-radius:16px;background:linear-gradient(135deg,color-mix(in srgb,var(--hist-a) 24%,var(--panel)),var(--panel) 62%)}
.hist-back{display:inline-block;margin-bottom:18px;color:var(--muted);font-size:12px;text-decoration:none}
.hist-team-identity{display:flex;align-items:center;gap:16px}.hist-team-identity .hist-flag{font-size:56px}
.hist-team-identity h1{margin:2px 0;font:800 42px/1 "Oswald","Arial Narrow",sans-serif;text-transform:uppercase}
.hist-team-identity p{margin:5px 0;color:var(--muted)}
.hist-lock-panel,.hist-play-panel{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:20px}
.hist-lock-panel form,.hist-approaches{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.hist-play-panel h2,.hist-lock-panel h2{margin:2px 0 5px}.hist-primary{background:var(--club);border-color:var(--club);color:#07110c}
.hist-xi-head{margin-top:26px}.hist-assets-note{margin:-4px 0 16px}
.hist-roster{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.hist-player{padding:0;overflow:hidden}.hist-portrait{height:190px;position:relative;display:grid;place-items:center;background:var(--panel-2)}
.hist-portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hist-initials{font:800 42px/1 "Oswald","Arial Narrow",sans-serif;color:var(--muted);opacity:.45}
.hist-player-info{position:relative;padding:12px 54px 12px 12px;min-height:62px}.hist-player-info h3{margin:5px 0 0;font-size:14px}
.hist-player-info>strong{position:absolute;right:12px;top:14px;font:800 22px/1 "Oswald","Arial Narrow",sans-serif;color:var(--club)}
.hist-result-hero{text-align:center}.hist-scoreboard{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px}
.hist-scoreboard>div{display:flex;flex-direction:column;align-items:center;gap:5px}.hist-scoreboard>div>span{font-size:32px}
.hist-scoreboard>div>strong{font-size:17px}.hist-scoreboard small{color:var(--muted)}
.hist-scoreboard>p{display:flex;align-items:center;gap:10px;margin:0}.hist-scoreboard b{font:800 52px/1 "Oswald","Arial Narrow",sans-serif}.hist-scoreboard i{font-style:normal;color:var(--muted);font-size:24px}
.hist-seed{margin:16px 0 0;color:var(--muted);font-size:10px}.hist-result-note{display:flex;justify-content:center;gap:8px;margin-bottom:14px;font-size:12px}
.hist-result-note span{color:var(--muted)}.hist-result-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.hist-result-grid h2{margin-top:0}
.hist-stat{display:grid;grid-template-columns:55px 1fr 55px;align-items:center;text-align:center;padding:8px 0;border-bottom:1px solid var(--line)}
.hist-stat span{color:var(--muted);font-size:12px}.hist-events{list-style:none;padding:0;margin:0;max-height:340px;overflow:auto}
.hist-events li{display:grid;grid-template-columns:42px 1fr;gap:8px;padding:8px 0;border-bottom:1px solid var(--line);font-size:12px;line-height:1.4}
.hist-events time{font-weight:800;color:var(--club)}.hist-result-actions{display:flex;justify-content:space-between;margin-top:16px}
@media (max-width:900px){.hist-roster{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){
  .hist-roster,.hist-result-grid{grid-template-columns:1fr}.hist-hero,.hist-lock-panel,.hist-play-panel{align-items:stretch;flex-direction:column}
  .hist-collection-count{align-items:flex-start}.hist-team-identity h1{font-size:32px}.hist-portrait{height:260px}
  .hist-scoreboard{gap:8px}.hist-scoreboard b{font-size:40px}.hist-scoreboard>div>strong{font-size:13px;text-align:center}
  .hist-result-note{flex-direction:column}.hist-result-actions{gap:8px}.hist-result-actions .btn-mini{flex:1;text-align:center}
}

/* 1.0.118: icona meteo inline nello scoreboard (sempre visibile) */
.wx-inline{display:inline-flex;align-items:center;gap:6px;margin-left:10px;font-size:13px;
  font-weight:600;color:var(--muted);vertical-align:middle}
.wx-inline .w-ic{width:20px;height:20px;color:var(--amber)}
.wx-inline b{color:var(--text);font-weight:700}

/* ============================================================================
   SFONDI AMBIENTALI GAFFER (V1 auth / V2 operativo) - RNG-zero, solo presentazione.
   Asset in app/static/bg/ (FUORI ZIP, policy binari: gestiti localmente come
   telecronaca/cover/favicon). FALLBACK: se un asset manca, il layer immagine e'
   trasparente e resta il gradiente attuale -> nessuna rottura.
   Da incollare in coda a style.css. Richiede body class="auth-page" su login.html.
   ============================================================================ */

/* --- Pagina auth/login: Variante 1 come atmosfera (dietro form + poster cover) --- */
body.auth-page{
  background:
    linear-gradient(rgba(8,16,22,.30), rgba(8,16,22,.55)),
    url("bg/bg_auth_petrolio.webp") center/cover no-repeat,
    radial-gradient(1200px 600px at 80% -10%, color-mix(in srgb, var(--club) 12%, transparent), transparent 60%),
    var(--bg);
}

/* --- Pagine operative: Variante 2 trattata come texture, per tema --- */
body.theme-petrolio{
  background:
    url("bg/bg_body_petrolio.webp") center top/cover no-repeat fixed,
    radial-gradient(1200px 600px at 80% -10%, color-mix(in srgb, var(--club) 12%, transparent), transparent 60%),
    var(--bg);
}
body.theme-cielo{
  background:
    url("bg/bg_body_cielo.webp") center top/cover no-repeat fixed,
    var(--bg);
}

/* Mobile: 'fixed' e' costoso/instabile su iOS -> scroll normale + asset piu' leggero. */
@media (max-width: 720px){
  body.theme-petrolio{
    background:
      url("bg/bg_body_petrolio_1024.webp") center top/cover no-repeat,
      var(--bg);
  }
  body.theme-cielo{ background: var(--bg); }        /* su mobile chiaro: solo tinta, max leggibilita' */
}

/* @media (prefers-reduced-motion) e prestazioni: nessuna animazione, l'asset e' statico. */

/* --- Volto staff (assistant/scout): 1 di 20 immagini per carriera, deterministica dal seed. Asset
   in /static/faces/<role>_<n>.png (FUORI ZIP); se manca, onerror -> .noimg -> niente cornice vuota. --- */
.staff-face{position:relative;display:inline-block;border-radius:50%;overflow:hidden;background:var(--panel-2);border:1px solid var(--line);vertical-align:middle;flex:0 0 auto}
.staff-face img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.staff-face-sm{width:34px;height:34px}
.staff-face-md{width:52px;height:52px}
.staff-face-lg{width:72px;height:72px}
.staff-head{display:flex;align-items:center;gap:10px}

/* --- Voce narrativa del vice (feedback narrativo, dash): commento contestuale pre-gara --- */
.assistant-voice{margin:2px 0 10px;padding:8px 12px;border-left:3px solid var(--club);background:color-mix(in srgb,var(--club) 8%,transparent);border-radius:0 8px 8px 0;font-style:italic;color:var(--text);font-size:14px;line-height:1.4}

/* A3 Fase Football Memory: il cammino del club */
.career-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.career-row{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:8px;background:rgba(255,255,255,.03);border-left:3px solid var(--muted,#556)}
.career-row .career-season{font-variant-numeric:tabular-nums;opacity:.7;min-width:4.5em}
.career-row .career-div{font-weight:600;min-width:8em}
.career-row .career-pos{font-variant-numeric:tabular-nums;opacity:.8}
.career-row .career-outcome{margin-left:auto;font-size:.9em}
.career-row.co-promoted_direct,.career-row.co-promoted_playoff{border-left-color:#3ecf8e}
.career-row.co-relegated_direct,.career-row.co-relegated_playout{border-left-color:#e5534b}
.career-row.co-survived_playout{border-left-color:#e3b341}
.career-row.co-playoff_lost{border-left-color:#d98c3f}

/* A3 Football Memory: rivalita' (bestia nera / vittima preferita) */
.rivalry-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.rivalry-row{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:8px;background:rgba(255,255,255,.03);border-left:3px solid var(--muted,#556)}
.rivalry-row .riv-tag{font-size:.78em;text-transform:uppercase;letter-spacing:.04em;opacity:.85;min-width:9em}
.rivalry-row .riv-name{font-weight:600}
.rivalry-row .riv-record{margin-left:auto;font-variant-numeric:tabular-nums;opacity:.8}
.rivalry-row.riv-nemesis{border-left-color:#e5534b}
.rivalry-row.riv-favourite{border-left-color:#3ecf8e}

/* ============================================================================
   SFONDO-UFFICIO per CATEGORIA (realismo dell'ascesa): l'ufficio del manager
   cambia col livello raggiunto (l1=Serie D vertice ... l5=Seconda Categoria fondo).
   Atmosfera ATTENUATA da un overlay -> le card (pannelli opachi) restano leggibili.
   Asset in /static/bg/bg_office_l<N>.webp (FUORI ZIP); se mancano, l'overlay + var(--bg)
   degradano a sfondo pieno senza rompere nulla (fallback).
   ============================================================================ */
body.office-l1{ --office-img:url("bg/bg_office_l1.webp"); }
body.office-l2{ --office-img:url("bg/bg_office_l2.webp"); }
body.office-l3{ --office-img:url("bg/bg_office_l3.webp"); }
body.office-l4{ --office-img:url("bg/bg_office_l4.webp"); }
body.office-l5{ --office-img:url("bg/bg_office_l5.webp"); }
body[class*="office-l"]{
  background:
    linear-gradient(rgba(8,16,22,.66), rgba(8,16,22,.80)),
    var(--office-img) center/cover no-repeat fixed,
    var(--bg);
}
@media (max-width: 720px){
  body[class*="office-l"]{   /* 'fixed' instabile su iOS -> scroll normale, overlay un filo piu' denso */
    background:
      linear-gradient(rgba(8,16,22,.70), rgba(8,16,22,.85)),
      var(--office-img) center top/cover no-repeat,
      var(--bg);
  }
}

/* A3 Fase 2: ZONE della piramide (promozione/playoff/playout/retrocessione) - legibilita' del movimento */
.standings-full tr.z-promo{box-shadow:inset 3px 0 0 #3ecf8e}
.standings-full tr.z-playoff{box-shadow:inset 3px 0 0 #7fd6a8}
.standings-full tr.z-playout{box-shadow:inset 3px 0 0 #e3b341}
.standings-full tr.z-releg{box-shadow:inset 3px 0 0 #e5534b}
.pyramid-legend{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px;padding:0 4px;font-size:.8em;opacity:.85}
.pyramid-legend .lg{display:inline-flex;align-items:center;gap:6px}
.pyramid-legend .lg::before{content:"";width:10px;height:10px;border-radius:2px;display:inline-block}
.pyramid-legend .lg.z-promo::before{background:#3ecf8e}
.pyramid-legend .lg.z-playoff::before{background:#7fd6a8}
.pyramid-legend .lg.z-playout::before{background:#e3b341}
.pyramid-legend .lg.z-releg::before{background:#e5534b}

/* SPOGLIATOI per CATEGORIA: sfondo delle pagine gestione-rosa (squad/contratti/allenamento).
   Sovrascrive l'ufficio (definito dopo -> vince) mantenendo overlay+fallback. Asset FUORI ZIP in
   /static/spogliatoi/locker_l<N>.webp. */
body.locker-l1{ --locker-img:url("spogliatoi/locker_l1.webp"); }
body.locker-l2{ --locker-img:url("spogliatoi/locker_l2.webp"); }
body.locker-l3{ --locker-img:url("spogliatoi/locker_l3.webp"); }
body.locker-l4{ --locker-img:url("spogliatoi/locker_l4.webp"); }
body.locker-l5{ --locker-img:url("spogliatoi/locker_l5.webp"); }
body[class*="locker-l"]{
  background:
    linear-gradient(rgba(8,16,22,.68), rgba(8,16,22,.82)),
    var(--locker-img) center/cover no-repeat fixed,
    var(--bg);
}
@media (max-width: 720px){
  body[class*="locker-l"]{
    background:
      linear-gradient(rgba(8,16,22,.72), rgba(8,16,22,.86)),
      var(--locker-img) center top/cover no-repeat,
      var(--bg);
  }
}

/* STADIO per CATEGORIA: hero in cima alla pagina stadio (immagine PIENA, la vetrina del club).
   Asset FUORI ZIP in /static/stadium/stadium_l<N>.webp; se manca, resta un pannello scuro (fallback). */
.stadium-hero{position:relative;height:210px;border-radius:14px;overflow:hidden;margin-bottom:18px;background:var(--panel-2) center/cover no-repeat;box-shadow:0 6px 24px rgba(0,0,0,.28)}
.stadium-hero.stadium-l1{background-image:url("stadium/stadium_l1.webp")}
.stadium-hero.stadium-l2{background-image:url("stadium/stadium_l2.webp")}
.stadium-hero.stadium-l3{background-image:url("stadium/stadium_l3.webp")}
.stadium-hero.stadium-l4{background-image:url("stadium/stadium_l4.webp")}
.stadium-hero.stadium-l5{background-image:url("stadium/stadium_l5.webp")}
.stadium-hero-cap{position:absolute;left:0;right:0;bottom:0;padding:26px 18px 12px;display:flex;flex-direction:column;gap:2px;background:linear-gradient(transparent, rgba(6,12,18,.86))}
.stadium-hero-cap .sh-div{font-size:.78em;text-transform:uppercase;letter-spacing:.06em;color:#cdd6e2;opacity:.9}
.stadium-hero-cap .sh-name{font-size:1.35em;font-weight:700;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.5)}
@media (max-width:720px){ .stadium-hero{height:150px} }
/* v1.0.188 - modulo EFFETTIVO (badge trasparenza formazione d'emergenza) */
.eff-shape{color:var(--warn);font-weight:600;font-size:.82em;white-space:nowrap}
.eff-shape-note{margin:6px 0 0;font-size:.9em}
.eff-shape-note strong{color:var(--warn)}
/* v1.0.190 - card bracket spareggio utente (Fase B) */
.playoff-card{border-left:4px solid var(--warn)}
.playoff-card.is-playout{border-left-color:var(--red)}
.playoff-card .po-tie{margin:2px 0 6px;font-size:1.05em}
.playoff-card .po-round{color:var(--warn);font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:.82em}
.playoff-card.is-playout .po-round{color:var(--red)}
.playoff-card .po-adv,.playoff-card .po-next{margin:2px 0}
/* v1.0.191 - volto nel report osservatore + riga compatta */
.scout-item .face{flex:0 0 auto}
.scout-item{row-gap:6px}
/* v1.0.191 - pagina Bilancio */
.bilancio-summary .bil-budget{font-size:2em;font-weight:800;color:var(--gold);margin:2px 0 10px}
.bil-chips{display:flex;flex-wrap:wrap;gap:8px}
.bil-chip{padding:6px 10px;border-radius:9px;background:var(--panel-2);font-weight:600;font-size:.9em}
.bil-chip-out{color:var(--red)}
.bilancio-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.bil-move{padding:8px 12px;background:var(--panel-2);border-radius:9px;border-left:3px solid var(--warn)}
.budget-ledger-link{margin-left:8px;text-decoration:none;font-size:1.1em;opacity:.85}
.budget-ledger-link:hover{opacity:1}
/* v1.0.192 - pagina spareggio interattivo (Fase B slice 3) */
.playoff-live{max-width:560px;margin:0 auto}
.po-round{font-size:.85em;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:6px}
.po-opp{font-size:1.5em;font-weight:800;margin:6px 0}
.po-adv{padding:8px 12px;border-radius:9px;background:var(--panel-2);font-weight:600;margin:8px 0}
.po-adv.ok{border-left:3px solid var(--gold)}
.po-adv.warn{border-left:3px solid var(--red)}
.po-note{color:var(--muted);font-size:.95em;margin-bottom:10px}
.po-log{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:6px}
.po-log-row{display:flex;gap:10px;align-items:center;padding:6px 10px;background:var(--panel-2);border-radius:9px;font-size:.92em}
.po-log-row.won{border-left:3px solid var(--gold)}
.po-log-row.lost{border-left:3px solid var(--red)}
.po-log-stage{color:var(--muted);text-transform:uppercase;font-size:.8em;min-width:64px}
.po-log-score{font-weight:800;margin-left:auto}
.po-cta{margin-top:8px}
/* v1.0.193 - selezione stemma-immagine al setup + stemma header */
.crest-img{background:none;box-shadow:none;clip-path:none;width:30px;height:30px;object-fit:contain;vertical-align:middle}
/* stemmi inline (v1.0.197): classifica e header partita */
.crest-mini{background:none;box-shadow:none;clip-path:none;width:18px;height:18px;object-fit:contain;vertical-align:middle;margin-right:6px}
.crest-hd{background:none;box-shadow:none;clip-path:none;width:26px;height:26px;object-fit:contain;vertical-align:middle;margin-right:8px}
.mh-team{display:inline-flex;align-items:center}
/* Derby (v1.0.200): badge + nota del vice pre-partita */
.derby-badge{display:inline-block;padding:1px 8px;border-radius:999px;background:var(--gold);
  color:#1a1206;font-weight:800;font-size:11px;letter-spacing:.06em;text-transform:uppercase}
.derby-badge-sm{padding:0 6px;font-size:9px;margin-left:4px;vertical-align:middle}
.cal-derby{outline:1px solid var(--gold);outline-offset:-1px;border-radius:8px}
.derby-note{margin:12px 0;padding:10px 12px;border-radius:12px;background:var(--panel-2);
  border-left:3px solid var(--gold);text-align:left;font-style:italic}
/* Drill-down piramide (v1.0.198): nav compatta su /table + navigazione su /division */
.pyramid-nav{display:flex;flex-direction:column;gap:8px;margin:4px 0 10px}
.pyr-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;
  background:var(--panel-2);text-decoration:none;color:var(--text);border:2px solid transparent}
.pyr-row:hover{background:var(--panel)}
.pyr-row.you{border-color:var(--gold)}
.pyr-name{font-weight:600;flex:0 0 auto}
.pyr-lead{color:var(--muted);font-size:13px;display:inline-flex;align-items:center;gap:2px;
  margin-left:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:45%}
.pyr-go{color:var(--muted);font-size:20px;line-height:1;flex:0 0 auto}
.div-back{margin-left:auto;color:var(--muted);text-decoration:none;font-size:13px}
.div-back:hover{color:var(--text)}
.div-nav{display:flex;gap:8px;margin:4px 0 10px;flex-wrap:wrap}
.div-step{flex:1 1 0;min-width:0;padding:8px 10px;border-radius:10px;background:var(--panel-2);
  color:var(--text);text-decoration:none;font-size:13px;text-align:center;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap;border:2px solid transparent}
.div-step:hover{background:var(--panel)}
.div-step.disabled{opacity:.35;pointer-events:none}
.crest-pick{margin:8px 0 2px}
.crest-label{display:block;font-size:13px;color:var(--muted);font-weight:500;margin-bottom:6px}
/* Picker stemma (v1.0.196): anteprima grande + griglia a scomparsa */
.crest-picker{background:var(--panel-2);border-radius:12px;padding:8px}
.crest-current{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;
  background:var(--panel);border:2px solid var(--gold);border-radius:10px;padding:8px;cursor:pointer}
.crest-current img{width:56px;height:56px;object-fit:contain;display:block}
.crest-caret{color:var(--muted);font-size:14px;transition:transform .15s}
.crest-picker.collapsed .crest-caret{transform:rotate(-90deg)}
.crest-picker.collapsed .crest-grid{display:none}
.crest-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:8px;
  max-height:240px;overflow-y:auto;padding:8px 4px 2px;margin-top:8px}
.crest-opt{cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:10px;padding:4px;border:2px solid transparent;transition:border-color .12s,background .12s}
.crest-opt input{position:absolute;opacity:0;pointer-events:none}
.crest-opt img{width:48px;height:48px;object-fit:contain;display:block}
.crest-opt:hover{background:var(--panel)}
.crest-opt:has(input:checked){border-color:var(--gold);background:var(--panel)}
/* P3 MANAGER CAREER 2.0: pannello carriera manager (trophy room) */
.mgr-career{display:flex;flex-wrap:wrap;align-items:center;gap:18px}
.mgr-rep{display:flex;flex-direction:column;gap:2px;min-width:150px}
.mgr-stars{font-size:15px;letter-spacing:2px;color:var(--accent,#7C5CFF)}
.mgr-stats{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:14px}
.mgr-stats li{display:flex;flex-direction:column;align-items:center;min-width:56px}
.mgr-stats .ms-lbl{font-size:12px;color:var(--muted)}
.mgr-stats .ms-val{font-size:20px;font-weight:700}
/* P3 slice 2: record di carriera V/N/P nel pannello manager */
.mgr-record{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.mgr-record li{display:flex;flex-direction:column;align-items:center;min-width:48px;padding:4px 8px;border-radius:8px;background:var(--panel)}
.mgr-record .ms-lbl{font-size:11px;color:var(--muted)}
.mgr-record .ms-val{font-size:18px;font-weight:700}
.mgr-record .rec-w .ms-val{color:var(--good,#22C55E)}
.mgr-record .rec-l .ms-val{color:var(--bad,#EF4444)}
/* P3 slice 3: traguardi (milestone) nel pannello manager */
.mgr-milestones{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.ms-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;font-size:13px;border:1px solid var(--line,#2a2f3a)}
.ms-badge .ms-ic{font-size:14px}
.ms-badge.ms-done{background:var(--panel);color:var(--txt);border-color:var(--accent,#7C5CFF)}
.ms-badge.ms-lock{opacity:.45;filter:grayscale(1)}
/* P3 slice 4: picco di reputazione (career high) */
.mgr-peak{font-size:12px;color:var(--muted);font-weight:600}
/* P3-adjacent: riga totali rosa (footer tabella squad) */
.roster-tbl tfoot .roster-tot td{border-top:2px solid var(--line,#2a2f3a);font-weight:700;color:var(--muted)}
.roster-tbl tfoot .roster-tot .val{color:var(--txt)}
/* profondita' per ruolo nel footer rosa */
.roster-tbl tfoot .roster-depth{text-align:center;color:var(--muted);font-weight:600;letter-spacing:.3px}
/* P3 SPECIALIZZAZIONE MANAGER: picker al setup */
.spec-pick{margin:14px 0}
.spec-grid{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.spec-opt{flex:1;min-width:150px;display:flex;flex-direction:column;gap:3px;padding:10px 12px;border:1px solid var(--line,#2a2f3a);border-radius:10px;cursor:pointer}
.spec-opt:has(input:checked){border-color:var(--accent,#7C5CFF);background:var(--panel)}
.spec-opt input{position:absolute;opacity:0}
.spec-opt .spec-name{font-weight:700}
.spec-opt .spec-desc{font-size:12px;color:var(--muted)}
/* SPONSORSHIP: pagina sponsor (offerte + attivo) */
.sponsor-offers{display:flex;flex-wrap:wrap;gap:14px;margin-top:10px}
.sponsor-card{flex:1;min-width:190px;display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px;border:1px solid var(--line,#2a2f3a);border-radius:12px;background:var(--panel)}
.sponsor-card .sp-name{font-weight:700;font-size:18px}
.sp-logo{display:inline-block;width:150px;height:44px;background-size:contain;background-repeat:no-repeat;background-position:center}
.sp-terms-list{list-style:none;margin:0;padding:0;display:flex;gap:16px}
.sp-terms-list li{display:flex;flex-direction:column;align-items:center}
.sp-terms-list .ms-lbl{font-size:11px;color:var(--muted)}
.sp-terms-list .ms-val{font-size:16px;font-weight:700}
.sponsor-active{display:flex;align-items:center;gap:16px;margin-top:10px;padding:14px;border:1px solid var(--accent,#7C5CFF);border-radius:12px;background:var(--panel)}
.sponsor-active .sp-info{display:flex;flex-direction:column;flex:1}
.sponsor-active .sp-name{font-weight:700;font-size:18px}
.sponsor-active .sp-terms{font-size:13px;color:var(--muted)}
.sponsor-active .sp-badge{font-size:12px;font-weight:700;color:var(--accent,#7C5CFF)}
/* SPONSORSHIP pluriennale: badge durata */
.sponsor-card .sp-years{font-size:12px;font-weight:700;color:var(--accent,#7C5CFF);padding:2px 8px;border-radius:999px;border:1px solid var(--accent,#7C5CFF)}
/* SPONSORSHIP visibilita': cartelloni bordo campo + striscia squadra */
.pitch-boards{overflow:hidden;margin-top:8px;padding:6px 8px;background:linear-gradient(180deg,#0d1017,#141926);border-radius:8px}
.boards-track{display:flex;width:max-content;animation:board-scroll 30s linear infinite}
.pitch-boards .board{flex:0 0 auto;width:104px;height:22px;margin-right:16px;background-size:contain;background-repeat:no-repeat;background-position:center;opacity:.9}
@keyframes board-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion: reduce){.boards-track{animation:none}}
.squad-sponsor{display:flex;align-items:center;justify-content:center;gap:12px;margin:0 0 12px;padding:8px 14px;border-radius:10px;background:var(--panel);border:1px solid var(--line,#2a2f3a)}
.squad-sponsor .ss-logo{display:inline-block;width:150px;height:30px;background-size:contain;background-repeat:no-repeat;background-position:center}
.squad-sponsor .ss-name{font-weight:700;color:var(--muted)}
/* SPONSORSHIP: sponsor UFFICIALE sulla tribuna (sopra il campo, statico, distinto dai LED perimetrali) */
.stand-sponsor{display:flex;justify-content:center;align-items:center;margin:0 0 6px;padding:5px 10px;background:linear-gradient(180deg,#141926,#0d1017);border-radius:8px 8px 4px 4px;border-bottom:2px solid rgba(255,255,255,.08)}
.stand-logo{display:inline-block;width:180px;height:30px;background-size:contain;background-repeat:no-repeat;background-position:center}
/* COPPA: tabellone */
.cup-champ{text-align:right}
.cup-champ-lbl{display:block;font-size:11px;color:var(--muted)}
.cup-champ-name{font-weight:700;font-size:18px}
.cup-bracket{display:flex;gap:14px;overflow-x:auto;padding:6px 0}
.cup-round{flex:0 0 auto;display:flex;flex-direction:column;gap:10px;justify-content:space-around;min-width:150px}
.cup-round-lbl{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin:0 0 2px}
.cup-tie{border:1px solid var(--line,#2a2f3a);border-radius:8px;overflow:hidden;background:var(--panel)}
.cup-side{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:5px 9px;font-size:13px}
.cup-side+.cup-side{border-top:1px solid var(--line,#2a2f3a)}
.cup-side.cup-win{font-weight:700}
.cup-side:not(.cup-win){opacity:.6}
.cup-side.cup-me{background:rgba(124,92,255,.14)}
.cup-team{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cup-score{font-variant-numeric:tabular-nums}
