/* iamcalcio_26 · app.css — stili globali (Attio-light home)
   Critical CSS (variables, layout app, sidebar base, topbar, ph, kpis base)
   è inline in views/_layout.php; qui finisce il resto.
   ============================================================ */

/* Font "Valve" — quello da cui deriva il logo iamcalcio (PROVA: usato per il
   nome del portale nella card territoriale). File in assets/fonts/. */
@font-face{font-family:'Valve';src:url('../fonts/valve-bd.otf') format('opentype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Valve';src:url('../fonts/valve-bd-it.otf') format('opentype');font-weight:700;font-style:italic;font-display:swap}

/* SIDEBAR — brand iamcalcio (Inter 900) */
.sb-brand .brand-link:hover{opacity:.92}

/* TOPBAR — bottone nome network (cliccabile, porta alla home del portale) */
.topbar .net-pill{padding:8px 14px 8px 16px;border-radius:8px;font-size:14px;font-weight:800;letter-spacing:-.005em;display:inline-flex;align-items:center;gap:6px;line-height:1;white-space:nowrap;background:#fff;color:var(--net-color, var(--ink));border:1px solid rgba(0,0,0,.06);box-shadow:0 1px 2px rgba(0,0,0,.10),0 2px 6px rgba(0,0,0,.06);cursor:pointer;text-decoration:none;transition:transform .12s ease,box-shadow .12s ease}
.topbar .net-pill:hover{transform:translateY(-1px);box-shadow:0 2px 4px rgba(0,0,0,.12),0 4px 10px rgba(0,0,0,.10)}
.topbar .net-pill::after{content:"›";font-weight:700;font-size:16px;line-height:1;opacity:.55;margin-left:1px}

/* Tabs su topbar colorata: testo bianco con underline bianco sull'attivo */
.topbar .tabs{display:flex;gap:18px;margin-left:6px}
.topbar .tabs a{font-size:13px;font-weight:600;color:#fff;padding:8px 0;border-bottom:2px solid transparent;cursor:pointer;opacity:.85;transition:opacity .12s}
.topbar .tabs a:hover{opacity:1}
.topbar .tabs a.on{opacity:1;border-bottom-color:#fff;font-weight:700}
.topbar .sp{flex:1}

/* Bottone login a destra */
.topbar-user{position:relative;outline:none}
/* Bottone Accedi: stile chip compatto, testo nero (icona nel colore network come accento) */
.topbar-user-btn{display:inline-flex;align-items:center;gap:5px;min-height:30px;padding:4px 10px;font-size:12px;font-weight:600;color:var(--ink);background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:6px;line-height:1.3;cursor:pointer;font-family:inherit;box-shadow:0 1px 2px rgba(0,0,0,.10);transition:transform .12s ease,box-shadow .12s ease}
.topbar-user-btn:hover{transform:translateY(-1px);box-shadow:0 2px 4px rgba(0,0,0,.12)}
.topbar-user-btn .svg-icon{width:12px;height:12px;color:var(--net-color, var(--ink))}
.topbar-user-menu{display:none;position:absolute;right:0;top:calc(100% + 8px);min-width:260px;background:var(--surf);color:var(--ink);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.10);padding:10px 12px;z-index:50}
.topbar-user:focus-within .topbar-user-menu{display:block}
.tum-head{font-size:10px;color:var(--mute);font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:4px 4px 8px;border-bottom:1px solid var(--line);margin-bottom:6px}
.tum-item{display:block;padding:7px 8px;border-radius:6px;font-size:13px;font-weight:500;color:var(--ink);text-decoration:none}
.tum-item:hover{background:var(--surf2)}
.tum-sep{font-size:10px;color:var(--mute);font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:10px 4px 4px;margin-top:6px;border-top:1px solid var(--line)}
.tum-feat{padding:4px 8px 6px;font-size:11px;color:var(--mute);line-height:1.5}

/* TOPBAR — switcher network */
.netsw{position:relative;outline:none}
/* Bottone "Cambia portale": stile chip compatto, testo nero (pallino nel colore network come accento) */
.netsw-btn{display:inline-flex;align-items:center;gap:5px;min-height:30px;padding:4px 12px;font-size:12px;font-weight:600;border:1px solid rgba(0,0,0,.06);border-radius:6px;background:#fff;color:var(--ink);line-height:1.3;cursor:pointer;font-family:inherit;box-shadow:0 1px 2px rgba(0,0,0,.10);transition:transform .12s ease,box-shadow .12s ease}
.netsw-btn:hover{transform:translateY(-1px);box-shadow:0 2px 4px rgba(0,0,0,.12)}
.netsw-btn .dot{width:7px;height:7px;border-radius:50%;display:inline-block;background:var(--net-color, var(--accent));box-shadow:0 0 0 2px rgba(0,0,0,.04)}
.netsw-btn .lbl{font-weight:600;color:var(--ink)}
.netsw-btn .caret{color:var(--ink);font-size:9px;transition:transform .15s;opacity:.55}
.netsw:hover .netsw-btn .caret,.netsw:focus-within .netsw-btn .caret{transform:rotate(180deg)}
/* "bridge" invisibile per non perdere l'hover passando dal btn al menu */
.netsw::after{content:'';position:absolute;right:0;top:100%;width:280px;height:8px;display:none}
.netsw:hover::after,.netsw:focus-within::after{display:block}
.netsw:hover .netsw-menu,.netsw:focus-within .netsw-menu{display:block}
.netsw-menu{display:none;position:absolute;right:0;top:calc(100% + 8px);min-width:240px;max-height:70vh;overflow-y:auto;background:var(--surf);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 32px rgba(0,0,0,.10),0 2px 4px rgba(0,0,0,.04);padding:6px;z-index:40}
.netsw-head{font-size:10px;color:var(--mute);text-transform:uppercase;letter-spacing:.08em;font-weight:600;padding:8px 10px 6px}
.netsw-sep{font-size:10px;color:var(--mute);text-transform:uppercase;letter-spacing:.08em;font-weight:600;padding:10px 10px 6px;margin-top:4px;border-top:1px solid var(--line)}
.netsw-item{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:6px;font-size:13px;color:var(--ink-2);cursor:pointer;font-weight:500}
.netsw-item:hover{background:var(--accent-bg);color:var(--ink)}
.netsw-item.on{background:var(--accent);color:#fff;font-weight:600}
.netsw-item.on .hint,.netsw-item.on .dot{color:rgba(255,255,255,.85)}
.netsw-item .dot{width:9px;height:9px;border-radius:50%;flex:0 0 9px}
.netsw-item .nm{flex:1;min-width:0;text-transform:capitalize}
.netsw-item .hint{font-size:10px;color:var(--mute);text-transform:uppercase;letter-spacing:.06em;font-weight:600}

/* SIDEBAR — dettagli (dark mode, stile Pipedrive) */
.sb-section{font-size:10px;color:rgba(255,255,255,.4);text-transform:uppercase;letter-spacing:.08em;font-weight:600;padding:14px 10px 6px;display:flex;justify-content:space-between;align-items:center}
.sb-section .add,.sb-section .ct{font-size:10px;color:rgba(255,255,255,.4);font-weight:600;cursor:pointer;background:rgba(255,255,255,.06);padding:1px 6px;border-radius:8px}

/* Gruppo collassabile (Coppe): usa <details>/<summary> nativi, zero JS */
.sb-group{margin:0}
.sb-group > summary{list-style:none;cursor:pointer;user-select:none}
.sb-group > summary::-webkit-details-marker{display:none}
.sb-group > summary:hover{color:rgba(255,255,255,.7)}
.sb-group .sb-caret{display:inline-block;font-size:9px;margin-right:6px;transition:transform .15s ease;color:rgba(255,255,255,.5)}
.sb-group[open] > summary .sb-caret{transform:rotate(90deg)}
.sb-group > summary .ct{margin-left:auto}
.sb-item{display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:6px;color:rgba(255,255,255,.75);cursor:pointer;font-size:13px;font-weight:500;margin-bottom:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb-item:hover{background:rgba(255,255,255,.06);color:#fff}
/* Voce non interattiva (es. "Live" = solo indicatore live count, non un link) */
.sb-item-static{cursor:default}
.sb-item-static:hover{background:transparent;color:rgba(255,255,255,.75)}
.sb-item-static .ic{opacity:.85}
.sb-item.on{background:var(--net-color, var(--accent));color:#fff;font-weight:600}
.sb-item.on:hover{background:color-mix(in srgb, var(--net-color, var(--accent)) 88%, #000);color:#fff}
.sb-item .ic{width:14px;flex:0 0 14px;text-align:center;color:rgba(255,255,255,.55);font-size:11px;line-height:1}
.sb-item .ic .svg-icon{width:12px;height:12px;vertical-align:middle}
.sb-item.on .ic{color:#fff}
.sb-item:hover .ic{color:#fff}
/* Stella "Aggiungi ai preferiti" sui campionati (sostituisce il pallino) */
.sb-item .ic.fav{font-size:13px;cursor:pointer;transition:color .12s,transform .12s}
.sb-item .ic.fav::before{content:'☆'}
.sb-item .ic.fav:hover,.sb-item .ic.fav:focus{color:#fbbf24;transform:scale(1.18);outline:none}
.sb-item .ic.fav.is-fav{color:#fbbf24}
.sb-item .ic.fav.is-fav::before{content:'★'}
.sb-item .ct{margin-left:auto;font-size:11px;color:rgba(255,255,255,.5);font-weight:600;background:rgba(255,255,255,.08);padding:1px 6px;border-radius:9px}
.sb-item.on .ct{background:rgba(255,255,255,.22);color:#fff}
.sb-item.live .ct{background:var(--red);color:#fff;font-weight:700;font-size:10px}

/* TOPBAR */
/* (regole legacy .topbar .tabs / .btn rimosse — sostituite dalle regole sopra
   che applicano il colore bianco coerente con la nuova topbar colorata) */

/* PAGE HEADER */
/* Card territoriale sopra "Live · Italia" — versione discreta della demo 19 */
/* Card territoriale stile "demo 19" ma compatta: gradient saturato dal colore
   del network, testo bianco, blob decorativo, CTA bianco con testo nel colore.
   Le dimensioni restano quelle compatte attuali (padding 12×18, nome 22px). */
.net-card{display:flex;align-items:center;gap:14px;padding:12px 20px;border-radius:10px;margin-bottom:14px;font-size:13px;position:relative;color:#fff;border:none;
    background:linear-gradient(135deg,
        var(--net-color, #10b981),
        color-mix(in srgb, var(--net-color, #10b981) 72%, #000));
    box-shadow:0 1px 3px rgba(0,0,0,.06)}
.net-card::before{content:"";position:absolute;top:-32px;right:-32px;width:140px;height:140px;background:rgba(255,255,255,.10);border-radius:50%;pointer-events:none}
.net-card .net-card-text,
.net-card .net-card-explorer,
.net-card .np-btn-explore{position:relative;z-index:1}
.net-card-prompt{display:inline-block;margin-right:8px;font-size:12px;font-weight:600;color:rgba(255,255,255,.92);letter-spacing:.01em;vertical-align:middle}
.net-card-prompt span{display:inline-block;margin-left:4px;opacity:.85;animation:promptArrow 1.4s ease-in-out infinite}
@keyframes promptArrow{0%,100%{transform:translateX(0)}50%{transform:translateX(4px)}}
.net-card .net-card-name{color:#fff}
/* CTA: bianco pieno con testo nero (es. "‹ Torna a Italia", "Esplora le N province ▾") */
.net-card .np-btn-explore{background:#fff;color:var(--ink);border:1px solid #fff}
.net-card .np-btn-explore:hover{background:rgba(255,255,255,.92);border-color:rgba(255,255,255,.92)}
.net-card-explorer:focus-within .np-btn-explore{background:rgba(0,0,0,.25);color:#fff;border-color:rgba(0,0,0,.25)}
/* Le 2 classi originali restano per retrocompat */
.net-card-it,.net-card-pr{}
.net-card-text{display:flex;align-items:center;flex:1;min-width:0;line-height:1.15}
.net-card-name{font-family:'Valve','Inter',sans-serif;font-style:italic;font-weight:700;font-size:26px;color:var(--ink);letter-spacing:0}
/* Bottone "Esplora province" — stesso form dei tab classifica */
.net-card .np-btn-explore{padding:4px 9px;font-size:11px;font-weight:600;white-space:nowrap;cursor:pointer;font-family:inherit}
/* Dropdown province: nascosto di default, aperto quando il container ha focus dentro */
.net-card-explorer{position:relative;outline:none}
.net-card-dropdown{display:none;position:absolute;right:0;top:calc(100% + 8px);z-index:60;background:var(--surf);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.08);min-width:300px;max-width:400px;padding:12px 14px;font-weight:400;letter-spacing:0}
.net-card-explorer:focus-within .net-card-dropdown{display:block}
.net-card-explorer:focus-within .np-btn-explore{background:var(--ink);color:#fff;border-color:var(--ink)}
.ncd-head{font-size:10px;color:var(--mute);font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid var(--line)}
.ncd-list{display:grid;grid-template-columns:1fr 1fr;gap:2px 14px;max-height:260px;overflow-y:auto}
.ncd-item{display:flex;align-items:center;gap:7px;padding:5px 8px;border-radius:6px;font-size:12px;font-weight:500;color:var(--ink);text-decoration:none}
.ncd-item:hover{background:var(--surf2)}
.ncd-dot{width:7px;height:7px;border-radius:50%;flex:0 0 7px}

.ph{display:flex;align-items:start;justify-content:space-between;margin-bottom:24px;gap:24px}
.ph h1{font-size:24px;font-weight:600;letter-spacing:-.02em;margin-bottom:4px}
.ph p{font-size:13px;color:var(--mute)}
.ph p b{color:var(--ink-2);font-weight:600}

/* DATE BAR — selettore giorno per pagina Live */
.date-bar{display:flex;align-items:stretch;gap:8px;margin-bottom:18px;padding:6px;background:var(--surf);border:1px solid var(--line);border-radius:10px}
.db-nav{display:inline-flex;align-items:center;justify-content:center;width:34px;border-radius:7px;color:var(--mute);font-size:18px;font-weight:600;text-decoration:none;transition:background .12s,color .12s}
.db-nav:hover{background:var(--surf2);color:var(--ink)}
.db-days{flex:1;display:grid;grid-template-columns:repeat(15,1fr);gap:3px}
.db-day{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px 0;border-radius:7px;text-decoration:none;color:var(--ink-2);transition:background .12s,color .12s;line-height:1.1}
.db-day:hover{background:var(--surf2)}
.db-day .db-n{font-size:15px;font-weight:700;letter-spacing:-.01em}
.db-day .db-wd{font-size:9px;font-weight:600;color:var(--mute);text-transform:uppercase;letter-spacing:.08em;margin-top:2px}
.db-day.today .db-n{color:var(--accent)}
.db-day.on{background:var(--accent);color:#fff}
.db-day.on .db-n{color:#fff}
.db-day.on .db-wd{color:rgba(255,255,255,.75)}
.db-day.on.today .db-n{color:#fff}

/* NEXT MATCH — prossima partita compatta (countdown inline) */
.next-match{background:var(--surf);border:1px solid var(--line);border-radius:12px;padding:14px 20px;margin-bottom:20px}
.nm-meta{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--mute);margin-bottom:12px;flex-wrap:wrap}
.nm-tag{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;background:var(--accent-bg);color:var(--accent);border-radius:6px;font-weight:700;font-size:11px;letter-spacing:.06em;text-transform:uppercase}
.nm-when{color:var(--ink-2);font-weight:600}
.nm-cd{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;background:var(--surf2);border:1px solid var(--line);border-radius:6px;font-family:'SF Mono',ui-monospace,Menlo,Consolas,monospace;font-size:12px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.nm-cd .cd-dot{color:var(--accent);font-size:8px;animation:pulse 1.4s infinite;line-height:1}
.nm-cd .countdown.live{color:var(--red)}
.nm-cd .countdown.live ~ .cd-dot,.nm-cd:has(.countdown.live) .cd-dot{color:var(--red)}
.nm-league{margin-left:auto;font-weight:500;color:var(--ink-2);padding:3px 9px;background:var(--surf2);border:1px solid var(--line);border-radius:6px;font-size:11px}
.nm-teams{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px}
.nm-team{display:flex;align-items:center;gap:12px;min-width:0}
.nm-team.home{justify-content:flex-end;text-align:right}
.nm-team .crest.big{position:relative;width:36px;height:36px;flex:0 0 36px;font-size:11px;font-weight:700;background:transparent}
.nm-team .crest.big .ini{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:6px;color:#fff}
.nm-team .crest.big .logo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:transparent;z-index:2}
.nm-team .crest.big:has(.logo) .ini{display:none}
.nm-team .nm{font-size:16px;font-weight:600;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.nm-vs{font-size:12px;color:var(--mute);font-weight:600;padding:0 4px}

/* KPI cards (al momento non in uso, conservate per future feature) */
.kpi{background:var(--surf);border:1px solid var(--line);border-radius:10px;padding:14px 16px;cursor:pointer;transition:border-color .12s}
.kpi:hover{border-color:var(--line2)}
.kpi .lab{font-size:11px;color:var(--mute);font-weight:500;margin-bottom:8px}
.kpi .v{font-size:22px;font-weight:600;letter-spacing:-.02em;line-height:1}
.kpi .d{font-size:11px;color:var(--mute);margin-top:6px;display:flex;align-items:center;gap:5px}
.kpi.live .v{color:var(--red)}
.kpi .d .up{color:var(--green);font-weight:600}

/* NEWS HERO */
.news-hero{background:var(--surf);border:1px solid var(--line);border-radius:12px;margin-bottom:28px;overflow:hidden;display:grid;grid-template-columns:1.4fr 1fr}
.news-hero .main-col{padding:24px 26px;border-right:1px solid var(--line)}
.news-hero .ntag{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--red);font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin-bottom:14px;background:#fef2f2;padding:3px 9px;border-radius:6px}
.news-hero .ntag::before{content:'●';font-size:8px;animation:pulse 1.4s infinite}
.news-hero h2{font-size:30px;font-weight:700;letter-spacing:-.025em;line-height:1.15;margin-bottom:14px}
.news-hero p{font-size:14px;color:var(--ink-2);line-height:1.55;margin-bottom:16px}
.news-hero .meta{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--mute)}
.news-hero .meta .av{width:22px;height:22px;border-radius:50%;background:var(--net-color, var(--accent));color:#fff;font-size:10px;font-weight:600;display:flex;align-items:center;justify-content:center}
.news-hero .meta b{color:var(--ink-2);font-weight:600}
.news-hero .meta .pill{margin-left:auto;padding:3px 9px;background:var(--net-color, var(--accent));color:#fff;border-radius:6px;font-weight:600;font-size:11px}
/* Foto della news in evidenza (mostrata se notizia < 48h, sostituisce "Altre notizie") */
.news-hero .news-hero-img{display:block;position:relative;background:var(--surf2);overflow:hidden;min-height:240px}
.news-hero .news-hero-img img{display:block;width:100%;height:100%;min-height:240px;max-height:420px;object-fit:cover;transition:transform .35s ease}
.news-hero .news-hero-img:hover img{transform:scale(1.03)}
.news-hero .news-hero-img.is-broken{display:none} /* fallback se img 404 */
.news-hero .related{padding:22px 24px;background:var(--surf2)}
.news-hero .related h4{font-size:11px;color:var(--mute);text-transform:uppercase;letter-spacing:.06em;font-weight:600;margin-bottom:14px}
.news-hero .rel-item{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);cursor:pointer}
.news-hero .rel-item:last-child{border-bottom:none}
.news-hero .rel-item .ic{width:26px;height:26px;flex:0 0 26px;background:var(--surf);border:1px solid var(--line);border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--mute)}
.news-hero .rel-item h5{font-size:13px;font-weight:500;line-height:1.3;margin-bottom:3px}
.news-hero .rel-item .by{font-size:11px;color:var(--mute)}

/* SECTION HEADER */
.sh{display:flex;align-items:center;gap:12px;margin-bottom:14px;margin-top:8px;flex-wrap:wrap}
.sh h3{font-size:15px;font-weight:600;letter-spacing:-.01em}
.sh .ct{color:var(--mute);font-size:12px}
.sh .filters{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}
.sh .filters .chip{padding:4px 10px;font-size:12px;font-weight:600;border:1px solid var(--line2);border-radius:6px;background:var(--surf);color:var(--ink-2);cursor:pointer;line-height:1.3;display:inline-flex;align-items:center;gap:5px}
.sh .filters .chip.on{background:var(--ink);color:#fff;border-color:var(--ink);font-weight:600}
.sh .filters .chip.live.on{background:var(--red);border-color:var(--red)}

/* TABELLA PARTITE — raggruppata per competizione */
.tbl{background:var(--surf);border:1px solid var(--line);border-radius:10px;overflow:hidden}

/* Gruppo competizione (Serie A / Coppa Italia / …) */
.match-group{background:var(--surf);border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:10px}
.fr-months{display:flex;flex-direction:column;gap:14px}
.fr-months .match-group{margin-bottom:0}
.fr-months .mg-head .mg-count{margin-left:auto}
.match-group:last-child{margin-bottom:0}
.match-group > summary{list-style:none;cursor:pointer;user-select:none}
.match-group > summary::-webkit-details-marker{display:none}
.mg-head{display:flex;align-items:center;gap:10px;padding:9px 14px;background:var(--surf2);border-bottom:1px solid var(--line);font-size:13px;font-weight:600;color:var(--ink-2)}
.match-group:not([open]) .mg-head{border-bottom:none}
.mg-head .ic.fav{position:static;width:14px;height:14px;flex:0 0 14px;text-align:center;font-size:14px;color:var(--mute2);cursor:pointer;line-height:1;transition:color .12s,transform .12s}
.mg-head .ic.fav::before{content:'☆'}
.mg-head .ic.fav:hover,.mg-head .ic.fav:focus{color:#fbbf24;transform:scale(1.18);outline:none}
.mg-head .ic.fav.is-fav{color:#fbbf24}
.mg-head .ic.fav.is-fav::before{content:'★'}
.mg-head .mg-name{color:var(--ink);font-weight:700;letter-spacing:-.005em}
.mg-head .mg-count{color:var(--mute);font-size:12px;font-weight:500}
.mg-head .mg-caret{margin-left:auto;color:var(--mute);font-size:12px;transition:transform .15s}
.match-group:not([open]) .mg-head .mg-caret{transform:rotate(-90deg)}
.mg-body{}

/* Riga partita (senza la colonna campionato) */
.row{display:grid;grid-template-columns:120px 1fr 80px 1fr 80px;gap:12px;align-items:center;padding:7px 14px;border-bottom:1px solid var(--line);cursor:pointer;font-size:13px;transition:background .1s;text-decoration:none;color:inherit}
.row:last-child{border-bottom:none}
.row:hover{background:var(--surf2)}
.row .st{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:500}
.row .st .dot{width:7px;height:7px;border-radius:50%;background:var(--mute2)}
.row.live .st{color:var(--red)}
.row.live .st .dot{background:var(--red);animation:pulse 1.4s infinite}
.row.up  .st .dot{background:var(--amber)}
.row.up  .st{color:var(--amber)}
.row.ft  .st .dot{background:var(--green)}
.row.ft  .st{color:var(--green)}
.row.other .st .dot{background:var(--mute2)}
.row.other .st{color:var(--mute)}
/* Etichetta "Riposa: Squadra · Squadra" — una sola riga in fondo al turno (no link). */
.row-bye{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;padding:7px 12px;background:var(--surf2);border-top:1px dashed var(--line);font-size:12px;color:var(--mute)}
.row-bye-lbl{font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--mute2);font-size:11px;margin-right:2px}
.row-bye-sep{color:var(--mute2);font-weight:600}
.row-bye-team{display:inline-flex;align-items:center;gap:6px}
.row-bye-name{font-weight:600;color:var(--ink-2)}
.row .home,.row .away{display:flex;align-items:center;gap:8px;min-width:0}
.row .home{justify-content:flex-end}
.row .home .nm,.row .away .nm{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row .nm.winner{font-weight:700;color:var(--ink)}
/* Cartellino rosso: stesso stile usato nel tabellino eventi (square stretch). */
.row .red-marker{display:inline-flex;align-items:center;gap:2px;flex:0 0 auto;line-height:1;font-variant-numeric:tabular-nums}
.row .red-marker .svg-icon{color:#dc2626;font-size:11px;display:inline-block;transform:scaleX(.62) scaleY(1.35);transform-origin:center}
.row .red-marker b{font-size:9px;font-weight:800;color:#dc2626}
.row .crest{position:relative;width:18px;height:18px;font-size:7px;font-weight:700;flex:0 0 18px;background:transparent}
.row .crest .ini{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:4px;color:#fff}
.row .crest .logo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:transparent;z-index:2}
/* Se il logo è presente nel DOM, nascondi il fallback colorato sotto.
   onerror sull'img rimuove l'elemento → :has(.logo) cade → ini torna visibile. */
.row .crest:has(.logo){background:transparent}
.row .crest:has(.logo) .ini{display:none}
.row .scr{text-align:center;font-weight:600;font-size:13px;background:var(--surf2);padding:2px 0;border-radius:5px;border:1px solid var(--line);line-height:1.4}
.row.live .scr{background:var(--red);color:#fff;border-color:var(--red)}
.row.up   .scr{background:transparent;color:var(--mute);border-color:transparent;font-weight:500;font-size:12px}
.row.ft   .scr{background:#ecfdf5;color:#15803d;border-color:#bbf7d0}
.row .league{font-size:11px;color:var(--mute);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row .league .flag{display:inline-block;width:12px;height:9px;background:linear-gradient(90deg,#009246 33%,#fff 33% 66%,#ce2b37 66%);border-radius:1px;margin-right:5px;vertical-align:middle}
.row .when{text-align:center;font-size:11px;color:var(--mute);font-weight:500}
.row .when .when-date{display:block;font-size:9.5px;font-weight:600;color:var(--mute);line-height:1.1;margin-bottom:1px}
.row.live .when{color:var(--red);font-weight:600}

/* SINGOLA NOTIZIA */
.article{max-width:760px}
.art-head{margin-bottom:20px}
.art-back{display:inline-block;font-size:12px;color:var(--mute);font-weight:500;margin-bottom:14px;text-decoration:none}
.art-back:hover{color:var(--ink-2)}
.art-league{margin-left:auto;padding:3px 10px;background:var(--net-color, var(--accent));color:#fff;border-radius:6px;font-weight:700;font-size:11px;letter-spacing:.04em;text-transform:uppercase;text-decoration:none;transition:filter .12s}
.art-league:hover{filter:brightness(.92)}
.art-prov{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border:1px solid var(--line2);background:var(--surf2);color:var(--ink-2);border-radius:6px;font-weight:600;font-size:11px;letter-spacing:.02em;text-decoration:none;transition:border-color .12s,color .12s}
.art-prov:hover{border-color:var(--net-color);color:var(--net-color)}
.art-prov .svg-icon{width:11px;height:11px;flex:0 0 auto}
.art-title{font-size:42px;font-weight:700;line-height:1.1;letter-spacing:-.025em;color:var(--ink);margin-bottom:16px}
.art-meta{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--mute);flex-wrap:wrap}
.art-meta .av{width:24px;height:24px;border-radius:50%;background:var(--net-color, var(--accent));color:#fff;font-size:10px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.art-meta b{color:var(--ink-2);font-weight:600}
.art-meta .sep{color:var(--mute2)}
.art-meta time{color:var(--mute)}

.art-hero{margin:0 0 24px;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:var(--surf2)}
.art-hero img{display:block;width:100%;height:auto}

.art-body{font-size:16px;line-height:1.7;color:var(--ink-2);font-family:'Inter',sans-serif}
.art-body p{margin:0 0 16px}
.art-body p:last-child{margin-bottom:0}
.art-body strong,.art-body b{color:var(--ink);font-weight:600}
.art-body a{color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}
.art-body a:hover{color:var(--ink)}
.art-body h2,.art-body h3{font-weight:800;letter-spacing:-.02em;color:var(--ink);margin:28px 0 12px;line-height:1.15}
.art-body h2{font-size:24px}
.art-body h3{font-size:20px}
.art-body ul,.art-body ol{margin:0 0 16px 24px}
.art-body li{margin-bottom:6px}
.art-body blockquote{margin:18px 0;padding:12px 18px;border-left:3px solid var(--accent);background:var(--surf2);color:var(--ink-2);font-style:italic}
.art-body img{max-width:100%;height:auto;border-radius:8px;margin:18px 0}
.art-body iframe{max-width:100%;border-radius:8px}

.art-related{margin-top:40px;padding-top:24px;border-top:1px solid var(--line)}
.art-related h3{font-size:15px;font-weight:600;letter-spacing:-.01em;margin-bottom:16px;color:var(--ink)}
.art-related h3 .ar-cat{color:var(--accent);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .12s}
.art-related h3 .ar-cat:hover{border-bottom-color:var(--accent)}
.rel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.rel-card{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surf);transition:border-color .12s,transform .12s;text-decoration:none;color:inherit}
.rel-card:hover{border-color:var(--line2);transform:translateY(-1px)}
.rel-card .rc-img{aspect-ratio:16/9;background:var(--surf2);overflow:hidden}
.rel-card .rc-img img{display:block;width:100%;height:100%;object-fit:cover}
.rel-card .rc-body{padding:12px 14px}
.rel-card h5{font-size:14px;font-weight:600;line-height:1.3;color:var(--ink);margin-bottom:6px}
.rel-card .rc-meta{font-size:11px;color:var(--mute)}

@media (max-width:760px){
    .art-title{font-size:30px}
    .art-body{font-size:15px}
}

/* PAGINA CAMPIONATO */
.lg-summary{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:12px;margin-bottom:24px}
.lg-sc{background:var(--surf);border:1px solid var(--line);border-radius:10px;padding:14px 16px}
.lg-sc .sc-lab{font-size:11px;color:var(--mute);font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}
.lg-sc .sc-v{font-size:24px;font-weight:700;letter-spacing:-.02em;color:var(--ink);line-height:1}
.lg-sc .sc-d{font-size:11px;color:var(--mute);margin-top:6px}
.lg-sc-leader{background:linear-gradient(135deg,var(--surf),var(--accent-bg) 240%)}
.lg-sc-leader .sc-team{display:flex;align-items:center;gap:12px}
.lg-sc-leader .sc-team .crest.big{position:relative;width:40px;height:40px;flex:0 0 40px;font-size:11px;font-weight:700;background:transparent}
.lg-sc-leader .sc-team .crest.big .ini{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:6px;color:#fff}
.lg-sc-leader .sc-team .crest.big .logo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:transparent;z-index:2}
.lg-sc-leader .sc-team .crest.big:has(.logo) .ini{display:none}
.lg-sc-leader .sc-name{font-size:16px;font-weight:700;letter-spacing:-.01em;color:var(--ink);line-height:1.2}
.lg-sc-leader .sc-pts{font-size:12px;color:var(--mute);margin-top:2px}
.lg-sc-leader .sc-pts b{color:var(--accent);font-weight:700}

.lg-block{margin-bottom:24px}
.lg-block-head{display:flex;align-items:baseline;gap:12px;margin-bottom:12px}
.lg-block-head h2{font-size:18px;font-weight:700;letter-spacing:-.015em;color:var(--ink)}
.lg-block-head .ct{font-size:12px;color:var(--mute)}
/* Header pagina campionato con bottoni a destra */
.lg-ph{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-wrap:wrap}
.lg-ph-r{display:flex;gap:4px;flex-wrap:wrap;margin-top:24px}
.lg-ph-r .np-btn{padding:4px 9px;font-size:11px;font-weight:600}

.lg-cl-tabs{margin-left:auto;display:flex;gap:4px}
.lg-cl-tabs .np-btn{padding:4px 9px;font-size:11px;font-weight:600}
.lg-cl-tabs .np-btn.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.lg-turn-nav{margin-left:auto;display:flex;gap:6px}
.lg-turn-nav .np-btn{padding:5px 10px;font-size:12px}
.lg-cal-link{color:var(--accent);text-decoration:none;font-weight:600;border-bottom:1px solid transparent;transition:border-color .12s}
.lg-cal-link:hover{border-bottom-color:var(--accent)}

/* CALENDARIO COMPLETO — numero giornata badge nel summary del gruppo */
.match-group .cal-num{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:20px;padding:0 6px;border-radius:5px;background:var(--surf2);color:var(--ink-2);font-size:11px;font-weight:700;line-height:1;letter-spacing:-.01em;box-shadow:inset 0 0 0 1px var(--line);margin-right:2px}
.match-group.is-current > summary{background:var(--accent-bg)}
.match-group.is-current > summary .cal-num{background:var(--accent);color:#fff;box-shadow:none}

/* Variante COMPATTA per la pagina calendario (38 giornate sullo schermo).
   Layout a 2 colonne in desktop, 1 colonna in mobile.
   Non-collapsable: sempre tutto a vista, niente cursor pointer sul summary. */
.cal-compact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:column;gap:8px;align-items:start}
@media (max-width:780px){.cal-compact{grid-template-columns:1fr;grid-template-rows:none !important;grid-auto-flow:row}}
.cal-compact .match-group{margin-bottom:0;border-radius:7px;background:var(--surf);border:1px solid var(--line);overflow:hidden}
.cal-compact .match-group .mg-head{cursor:default;border-bottom:1px solid var(--line)}
.cal-compact .mg-head{padding:5px 10px;font-size:12px;gap:8px;display:flex;align-items:center;background:var(--surf2)}
.cal-compact .mg-head .ic.fav{display:none}
.cal-compact .mg-head .cal-num{min-width:20px;height:18px;padding:0 4px;font-size:10px;margin-right:0}
.cal-compact .mg-head .mg-name{font-weight:700;font-size:12px}
.cal-compact .mg-head .mg-count{font-size:11px}
.cal-compact .row{padding:4px 10px;font-size:12px;gap:10px;grid-template-columns:1fr 70px 1fr 70px}
.cal-compact .row .st{display:none}
.cal-compact .row .crest{width:16px;height:16px;flex:0 0 16px;font-size:6px}
.cal-compact .row .home .nm,.cal-compact .row .away .nm{font-size:12px}
.cal-compact .row .scr{font-size:12px;padding:1px 0;border-radius:4px}
.cal-compact .row.up .scr{font-size:11px}
.cal-compact .row .st{font-size:11px;gap:5px}
.cal-compact .row .when{font-size:11px}
.cal-compact .row.ft .when{visibility:hidden}
@media (max-width:900px){.cal-compact{grid-template-columns:1fr}}

/* Legenda zone qualificazione (sotto la classifica) — discreta */
.lg-legend{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:10px;padding:6px 2px;font-size:11px;color:var(--mute)}
.lg-legend-lbl{font-size:9px;color:var(--mute2);text-transform:uppercase;letter-spacing:.08em;font-weight:600}
.lg-zone-chip{display:inline-flex;align-items:center;gap:6px;padding:0;background:transparent;box-shadow:none;font-size:11px;font-weight:500;color:var(--ink-2)}
.lg-zone-chip::before{content:'';display:inline-block;width:9px;height:9px;border-radius:2px;background:var(--zone);box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);margin:0}
.lg-stand{background:var(--surf);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.lgs-head,.lgs-row{display:grid;grid-template-columns:40px 1fr 50px 40px 40px 40px 40px 50px 50px 60px 50px;gap:8px;padding:8px 14px;align-items:center;font-size:13px}
.lgs-head{background:var(--surf2);border-bottom:1px solid var(--line);font-size:11px;font-weight:600;color:var(--mute);text-transform:uppercase;letter-spacing:.06em}
.lgs-head span,.lgs-row span{text-align:center}
.lgs-head span:nth-child(2),.lgs-row span:nth-child(2){text-align:left}
.lgs-row{border-bottom:1px solid var(--line);transition:background .1s}
.lgs-row:hover{background:var(--surf2)}
.lgs-row:last-child{border-bottom:none}
/* Numero posizione: badge colorato per zone qualificazione, piatto altrimenti */
.lgs-pos{font-weight:700;color:var(--ink);font-size:12px;display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:20px;padding:0 4px;border-radius:5px;line-height:1;letter-spacing:-.01em;background:var(--surf2);box-shadow:inset 0 0 0 1px var(--line)}
.lgs-pos[data-zone]{background:var(--zone);box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);padding-left:7px}
.lgs-pos[data-zone]::before{content:'';display:inline-block;width:2px;height:10px;border-radius:1px;background:rgba(0,0,0,.25);margin-right:4px;flex:0 0 2px}
.lgs-club{display:flex;align-items:center;gap:10px;min-width:0;text-decoration:none;color:inherit;transition:color .12s}
.lgs-club:hover .lgs-name{color:var(--net-color, var(--accent));text-decoration:underline;text-underline-offset:2px}
.lgs-club .crest{position:relative;width:22px;height:22px;flex:0 0 22px;font-size:8px;font-weight:700;background:transparent}
.lgs-club .crest .ini{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:4px;color:#fff}
.lgs-club .crest .logo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:transparent;z-index:2}
.lgs-club .crest:has(.logo) .ini{display:none}
.lgs-club .lgs-name{font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-flex;align-items:baseline;gap:4px;min-width:0}
.lgs-club .lgs-penalty{color:var(--red);font-weight:600;font-size:11px;font-variant-numeric:tabular-nums}
.lgs-club .lgs-bonus{color:var(--green);font-weight:600;font-size:11px;font-variant-numeric:tabular-nums}
.lgs-pts b{color:var(--ink);font-weight:700;font-size:14px}

@media (max-width:900px){
    .lg-summary{grid-template-columns:1fr 1fr}
    .lgs-head,.lgs-row{grid-template-columns:30px 1fr 40px 30px 60px;gap:6px}
    .lgs-head span:nth-child(n+5):not(:last-child),
    .lgs-row span:nth-child(n+5):not(:last-child){display:none}
}

/* STATISTICHE CAMPIONATO — riepilogo a barre (monocromia ink, look professionale) */
.lst-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;margin-bottom:14px}
.lst-overview .lst-card{margin-bottom:0}
.lst-summary .lst-bars{display:flex;flex-direction:column;gap:14px}
.lst-bar{display:flex;flex-direction:column;gap:6px}
.lst-bar-lbl{display:flex;align-items:baseline;justify-content:space-between;font-size:12px;color:var(--ink-2);font-weight:500;line-height:1.2}
.lst-bar-lbl > span:first-child{color:var(--ink-2);font-weight:500}
.lst-bar-lbl .lst-bar-v{color:var(--ink);font-weight:700;font-size:13px;font-variant-numeric:tabular-nums}
.lst-bar-lbl .lst-bar-pct{font-weight:500;color:var(--mute);font-size:11px;margin-left:4px}
.lst-bar-track{height:8px;background:var(--surf2);border-radius:99px;overflow:hidden}
.lst-bar-fill{height:100%;background:var(--net-color,var(--accent));border-radius:99px;transition:width .35s ease}
.lst-bar-tot .lst-bar-lbl{padding-top:8px;border-top:1px solid var(--line)}

/* STATISTICHE CAMPIONATO — forma ultime 5 partite (look professionale) */
.lst-form-card{margin-bottom:14px}
.lst-form-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:10px}
.lst-form-head h3{margin-bottom:0}
.lst-form-legend{display:inline-flex;align-items:center;gap:14px;font-size:11px;color:var(--mute);font-weight:500}
.lst-form-legend > span{display:inline-flex;align-items:center;gap:5px}
.lst-form-legend .form-dot{margin:0}
.lst-form-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(var(--rows,10),auto);grid-auto-flow:column;column-gap:28px;row-gap:0}
.lst-form-row{display:grid;grid-template-columns:20px 20px minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:4px 0;border-bottom:1px solid var(--line);font-size:12px}
.lst-form-row.is-col-last{border-bottom:none}
.lst-form-row .lst-form-pos{font-size:11px;font-weight:600;color:var(--mute);text-align:center;font-variant-numeric:tabular-nums}
.lst-form-row .crest{position:relative;width:20px;height:20px;flex:0 0 20px;font-size:7px;font-weight:700;background:transparent}
.lst-form-row .crest .ini{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:4px;color:#fff}
.lst-form-row .crest .logo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:transparent;z-index:2}
.lst-form-row .crest:has(.logo) .ini{display:none}
.lst-form-row .lst-name{font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}

/* Sequenza V/N/P: 5 chip ben distinti */
.lst-form-row .lst-form{display:inline-flex;gap:3px;justify-content:flex-end}
.lst-form-row .form-dot{width:18px;height:18px;border-radius:4px;font-size:10px}
.form-dot{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;font-size:11px;font-weight:800;color:#fff;letter-spacing:0;line-height:1;font-feature-settings:"tnum"}
.form-v{background:#16a34a;box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}
.form-n{background:#94a3b8;box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}
.form-p{background:#dc2626;box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}

.lst-form-row .lst-val{font-weight:700;color:var(--ink);font-size:13px;font-variant-numeric:tabular-nums;text-align:right;min-width:36px}
.lst-form-row .lst-val .lst-vl{font-size:9px;color:var(--mute);font-weight:500;margin-left:2px;text-transform:uppercase;letter-spacing:.04em}

@media (max-width:1100px){
    .lst-form-list{grid-template-columns:1fr;grid-template-rows:none;grid-auto-flow:row;column-gap:0}
    .lst-form-row{border-bottom:1px solid var(--line)!important}
    .lst-form-row:last-child{border-bottom:none!important}
}
@media (max-width:760px){
    .lst-form-row{grid-template-columns:22px 22px minmax(0,1fr) auto auto;gap:10px}
    .lst-form-row .form-dot{width:20px;height:20px;font-size:10px}
}

/* STATISTICHE CAMPIONATO — sezioni tematiche (Streak / Imbattute / Clean & Goleade) */
.lst-section{margin-top:24px}
.lst-section-title{font-size:12px;font-weight:700;color:var(--mute);text-transform:uppercase;letter-spacing:.1em;margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid var(--line);display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.lst-section-title .lst-section-meta{font-size:11px;font-weight:500;color:var(--mute2);text-transform:none;letter-spacing:0}
.lst-mini-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.lst-mini-grid-2{grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}
.lst-mini-row{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:10px;align-items:center;padding:5px 0;border-bottom:1px solid var(--line);font-size:13px}
.lst-mini-row:last-child{border-bottom:none}
.lst-mini-row .crest{position:relative;width:22px;height:22px;flex:0 0 22px;font-size:8px;font-weight:700;background:transparent}
.lst-mini-row .crest .ini{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:4px;color:#fff}
.lst-mini-row .crest .logo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:transparent;z-index:2}
.lst-mini-row .crest:has(.logo) .ini{display:none}
.lst-mini-row .lst-name{font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.lst-mini-row .lst-val{font-weight:700;color:var(--ink);font-size:13px;font-variant-numeric:tabular-nums;text-align:right}
.lst-mini-row .lst-val .lst-vl{font-size:10px;color:var(--mute);font-weight:500;margin-left:4px;text-transform:uppercase;letter-spacing:.04em}
.lst-match-row .lst-name b{color:var(--ink);font-weight:700}
.lst-empty{font-size:12px;color:var(--mute);padding:8px 0;font-style:italic}
.lst-card-sub{font-size:11px;color:var(--mute);margin:-6px 0 8px;line-height:1.4}
.lst-mini-row .lst-name-sub{color:var(--mute);font-weight:500;font-size:11px;margin-left:4px;font-variant-numeric:tabular-nums}
.lst-mini-row .lst-form-inline{display:inline-flex;gap:3px;margin-left:8px;vertical-align:middle}
.lst-mini-row .lst-form-inline .form-dot{width:16px;height:16px;border-radius:3px;font-size:9px}

/* SVG icons inline (sostituiscono Font Awesome). Dimensione 1em così
   eredita font-size; fill: currentColor → si stila con `color:` su CSS. */
.svg-icon{width:1em;height:1em;display:inline-block;vertical-align:-.125em;fill:currentColor;flex-shrink:0}

/* ===========================================================================
   PAGINA COPPA — /coppa/{slug}
   Hero trofeo + sezioni "fase" (girone roundrobin o bracket knockout).
   =========================================================================== */
.cp-hero{padding:18px 0 14px;margin-bottom:6px;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.cp-hero-text{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}
.cp-hero-title{font-weight:700;font-size:28px;letter-spacing:-.02em;line-height:1.15;color:var(--ink);margin:0}
.cp-hero-meta{color:var(--mute);font-size:13px;margin-top:0;font-weight:500}
.cp-hero-actions{display:flex;gap:8px;align-items:center;flex:0 0 auto}
.cp-hero-actions .np-btn{padding:4px 9px;font-size:11px;font-weight:600}

.cp-phase{margin-top:28px;background:var(--surf);border:1px solid var(--line);border-radius:12px;padding:18px 18px 14px;overflow:hidden}
.cp-phase-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.cp-phase-title{font-family:'Inter',sans-serif;font-weight:700;font-size:18px;color:var(--ink);margin:0;letter-spacing:-.01em}
/* Action bar coppa: stessa dimensione mini dei tab classifica (.lg-ph-r .np-btn) */
.cp-phase-actions{display:inline-flex;align-items:center;gap:8px}
.cp-phase-actions .np-btn{padding:4px 9px;font-size:11px;font-weight:600}
/* (placeholder — la regola definitiva è sotto, con specificità .np-btn.np-btn-tag
   per vincere su .np-btn che è dichiarato DOPO in questo file) */

/* CALENDARIO FASE COPPA */
.cp-cal{display:flex;flex-direction:column;gap:14px;margin-top:8px}
.cp-cal-turn{background:var(--surf);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.cp-cal-turn-head{display:flex;align-items:center;gap:12px;padding:12px 16px;cursor:pointer;list-style:none;background:var(--surf2);border-bottom:1px solid var(--line)}
.cp-cal-turn-head::-webkit-details-marker{display:none}
.cp-cal-turn[open] .cp-cal-turn-head{border-bottom:1px solid var(--line)}
.cp-cal-turn:not([open]) .cp-cal-turn-head{border-bottom:none}
.cp-cal-turn-num{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--ink);color:#fff;font-weight:700;font-size:12px;font-variant-numeric:tabular-nums;flex:0 0 28px}
.cp-cal-turn-name{font-weight:700;font-size:15px;color:var(--ink);flex:1}
.cp-cal-turn-meta{font-size:12px;color:var(--mute);font-weight:500}
.cp-cal-body{padding:8px 0}
.cp-cal-date{padding:0}
.cp-cal-date-head{display:flex;justify-content:space-between;align-items:center;padding:8px 16px;background:var(--surf);border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:11px;font-weight:700;color:var(--mute);text-transform:uppercase;letter-spacing:.08em}
.cp-cal-date:first-child .cp-cal-date-head{border-top:none}
.cp-cal-date-count{font-weight:500;text-transform:none;letter-spacing:0}
.cp-cal-row{display:grid;grid-template-columns:64px minmax(0,1fr) 80px minmax(0,1fr);align-items:center;gap:12px;padding:8px 16px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink);font-size:13px;transition:background .12s ease}
.cp-cal-row:last-child{border-bottom:none}
.cp-cal-row:hover{background:var(--surf2)}
.cp-cal-time{font-size:11px;font-weight:600;color:var(--mute);font-variant-numeric:tabular-nums}
.cp-cal-time .cp-cal-live{color:var(--red);font-weight:800;font-size:10px;letter-spacing:.05em;animation:pulse 1.4s infinite}
.cp-cal-time .cp-cal-ft{color:var(--green);font-weight:700;font-size:11px}
.cp-cal-team{display:flex;align-items:center;gap:8px;min-width:0}
.cp-cal-team-h{justify-content:flex-end;text-align:right}
.cp-cal-team-a{justify-content:flex-start;text-align:left}
.cp-cal-team-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;font-weight:500}
.cp-cal-team.is-winner .cp-cal-team-name{font-weight:700}
.cp-cal-score{font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;background:var(--surf2);border:1px solid var(--line);border-radius:5px;padding:3px 10px;min-width:64px;text-align:center;font-size:13px;white-space:nowrap}
.cp-cal-row.up .cp-cal-score{background:var(--surf);color:var(--mute);font-weight:600;font-size:11px}
.cp-cal-row-bye{display:flex;justify-content:center;align-items:center;gap:12px;color:var(--mute);font-style:italic;padding:8px 16px;border-bottom:1px solid var(--line);background:var(--surf2)}
.cp-cal-row-bye:last-child{border-bottom:none}
.cp-cal-bye-team{display:inline-flex;align-items:center;gap:8px;font-style:normal;color:var(--ink);font-weight:500}
.cp-cal-bye-lbl{font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-weight:700;color:var(--mute);background:var(--surf);padding:2px 9px;border-radius:99px;border:1px solid var(--line2);font-style:normal}

.art-back{display:inline-block;color:var(--mute);font-size:12px;font-weight:500;text-decoration:none;margin-bottom:8px}
.art-back:hover{color:var(--ink)}

/* ----- ROUNDROBIN: classifica + giornate ----- */
.cp-roundrobin{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:24px}
.cp-tbl{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}
.cp-tbl th,.cp-tbl td{padding:6px 6px;text-align:center;border-bottom:1px solid var(--line)}
.cp-tbl th{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--mute);background:var(--surf2)}
.cp-tbl .cp-tbl-team{text-align:left}
.cp-tbl .cp-tbl-pos{color:var(--mute);font-weight:600;width:28px}
.cp-tbl .cp-tbl-pts{font-weight:700;color:var(--ink)}
.cp-tbl tbody tr:hover{background:var(--surf2)}
.cp-tbl td.cp-tbl-team{display:flex;align-items:center;gap:8px;min-width:0;padding-left:8px}
.cp-tbl td.cp-tbl-team span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
/* Banda colorata zona qualificazione (stesso pattern dei campionati) */
.cp-tbl-zone .cp-tbl-pos{position:relative}
.cp-tbl-zone .cp-tbl-pos::before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:3px;background:var(--zone);border-radius:2px}
/* Legenda zone */
.cp-legend{display:flex;flex-wrap:wrap;gap:14px 20px;padding:12px 10px 4px;font-size:12px;color:var(--ink)}
.cp-legend-item{display:inline-flex;align-items:center;gap:6px;color:var(--ink)}
.cp-legend-item b{font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:.02em}
.cp-legend-dot{display:inline-block;width:10px;height:10px;border-radius:2px;flex:0 0 auto}
.cp-rounds{display:flex;flex-direction:column;gap:10px;overflow-y:auto;max-height:780px;padding-right:4px}
.cp-round{background:var(--surf2);border:1px solid var(--line);border-radius:8px;flex-shrink:0}
.cp-round-head{padding:8px 14px;font-size:11px;font-weight:700;color:var(--mute);text-transform:uppercase;letter-spacing:.08em;background:var(--surf);border-bottom:1px solid var(--line)}
/* Riga match compatta dentro le giornate coppa */
.cp-mrow{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px;align-items:center;padding:6px 10px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink);font-size:12px;transition:background .12s ease}
.cp-mrow:last-child{border-bottom:none}
.cp-mrow:hover{background:var(--surf)}
.cp-mrow-team{display:flex;align-items:center;gap:6px;min-width:0}
.cp-mrow-h{justify-content:flex-end;text-align:right}
.cp-mrow-a{justify-content:flex-start;text-align:left}
.cp-mrow-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;font-weight:500}
.cp-mrow-team.is-winner .cp-mrow-name{font-weight:700}
.cp-mrow-score{font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;background:var(--surf);border:1px solid var(--line);border-radius:5px;padding:2px 8px;min-width:56px;text-align:center;font-size:12px;white-space:nowrap}
.cp-mrow.up .cp-mrow-score{background:var(--surf2);font-size:11px;color:var(--mute);font-weight:600}
.cp-mrow .crest.crest-xs{width:16px;height:16px;flex:0 0 16px;font-size:7px}
/* Riga "X riposa" (gironi dispari) */
.cp-mrow-bye{display:flex;align-items:center;justify-content:center;gap:8px;padding:6px 10px;border-bottom:1px solid var(--line);background:var(--surf);color:var(--mute);font-size:12px;font-style:italic}
.cp-mrow-bye:last-child{border-bottom:none}
.cp-mrow-bye .cp-mrow-name{color:var(--ink);font-style:normal;font-weight:500}
.cp-mrow-bye .cp-mrow-bye-lbl{font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-weight:700;color:var(--mute);background:var(--surf2);padding:2px 8px;border-radius:99px;font-style:normal}

/* ----- BRACKET KNOCKOUT ----- */
.cp-bracket-wrap{display:flex;flex-direction:column}
/* Scrollbar gemella in alto, sincronizzata via JS (sync() in _layout.php) */
.cp-bracket-scroll{overflow-x:auto;overflow-y:hidden;height:14px;margin-bottom:6px}
.cp-bracket-scroll-inner{height:1px}
.cp-bracket{display:flex;gap:18px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:4px 0 14px;align-items:stretch}
.cp-bracket-col{flex:0 0 240px;display:flex;flex-direction:column;gap:12px}
.cp-bracket-round{font-size:11px;font-weight:700;color:var(--mute);text-transform:uppercase;letter-spacing:.1em;padding:6px 4px 4px;border-bottom:1px solid var(--line);text-align:center}
.cp-clash{background:var(--surf);border:1px solid var(--line);border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:6px}
.cp-clash.is-done{border-color:var(--line2)}
.cp-clash-side{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;font-size:13px;color:var(--ink)}
.cp-clash-side .cp-clash-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.cp-clash-side.is-winner{font-weight:700}
.cp-clash-side.is-winner .cp-clash-agg{color:#16a34a}
.cp-clash-side:not(.is-winner) .cp-clash-name{color:var(--mute)}
.cp-clash-agg{font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink);min-width:18px;text-align:right}
.cp-clash-legs{display:flex;gap:6px;padding-top:6px;border-top:1px dashed var(--line);justify-content:flex-end;flex-wrap:wrap}
.cp-clash-leg{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:600;color:var(--mute);text-decoration:none;padding:2px 7px;border-radius:99px;background:var(--surf2);transition:background .12s ease, color .12s ease}
.cp-clash-leg:hover{background:var(--line);color:var(--ink)}
.cp-clash-leg-lbl{font-size:9px;font-weight:800;color:var(--mute2);text-transform:uppercase}
.cp-clash-leg-score{font-variant-numeric:tabular-nums;color:var(--ink);font-weight:700}

@media (max-width:900px){
    .cp-roundrobin{grid-template-columns:1fr}
    .cp-hero-title{font-size:28px}
    .cp-bracket-col{flex:0 0 220px}
}

/* ===========================================================================
   TABELLINO PARTITA — /partita/{slug}
   Stile ispirato al vecchio iamcalcio + sofascore: hero a riquadri,
   tabs, cronaca per tempo con separator verticale centrale.
   =========================================================================== */

/* BREADCRUMB */
.mt-crumb{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--mute);text-transform:uppercase;letter-spacing:.06em;font-weight:600;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.mt-crumb-item{color:var(--mute);text-decoration:none;display:inline-flex;align-items:center;gap:6px;padding:2px 0}
.mt-crumb-item i{font-size:11px}
.mt-crumb-item .mt-crumb-logo{width:14px;height:14px;color:var(--net-color)}
.mt-crumb-item:hover{color:var(--ink)}
.mt-crumb-strong{color:var(--ink);font-weight:700}
.mt-crumb-sep{color:var(--mute2);font-size:13px}

/* HERO scoreboard a riquadri (stile diretta.it/sofascore) */
.mt-hero{background:var(--surf);padding:18px 22px 24px;margin-bottom:0}
.mt-hero-grid{display:grid;grid-template-columns:1fr auto 1fr;align-items:start;gap:24px;max-width:820px;margin:0 auto}
.mt-hero-side{display:flex;align-items:flex-start;gap:10px;min-width:0}
/* Home: stella subito a sx del logo (vicini) · blocco allineato verso il centro */
.mt-hero-side-h{justify-content:flex-end}
/* Away: stella subito a dx del logo (vicini) · blocco allineato verso il centro */
.mt-hero-side-a{justify-content:flex-start}
.mt-fav{font-size:18px;color:var(--mute2);cursor:pointer;user-select:none;transition:color .15s ease, transform .15s ease;line-height:1;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;margin-top:33px}
.mt-fav:hover{color:#fbbf24;transform:scale(1.15)}
.mt-fav.is-fav i{font-weight:900;color:#fbbf24}
.mt-hero-team{display:flex;flex-direction:column;align-items:center;gap:10px;text-decoration:none;color:var(--ink);min-width:0;flex:0 0 auto}
.mt-hero-badge{display:block;width:96px;height:96px;border:none;border-radius:0;background:transparent;padding:0;position:relative}
.mt-hero-badge .crest{width:100%;height:100%;display:block;position:relative;background:transparent;font-size:20px;font-weight:800}
.mt-hero-badge .crest .ini{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:6px;color:#fff}
.mt-hero-badge .crest .logo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.mt-hero-badge .crest:has(.logo) .ini{display:none}
.mt-hero-name{font-family:'Inter',sans-serif;font-weight:600;font-size:14px;color:var(--ink);text-align:center;line-height:1.2}
.mt-hero-name.is-winner{font-weight:800}
.mt-hero-teamwrap{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}
.mt-hero-scorers{display:flex;flex-direction:column;align-items:center;gap:1px;max-width:220px}
.mt-hero-scorer{display:inline-flex;align-items:center;gap:4px;font-size:10px;line-height:1.45;color:var(--mute)}
.mt-hero-scorer-balls{display:inline-flex;gap:1px}
.mt-hero-scorer-ball{width:9px;height:9px;color:var(--ink-2)}
.mt-hero-scorer b{font-weight:700;color:var(--ink-2)}

.mt-hero-center{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:170px}
.mt-hero-when{font-size:13px;font-weight:500;color:var(--mute);font-variant-numeric:tabular-nums;letter-spacing:.02em}
.mt-hero-score{display:flex;align-items:baseline;gap:14px;font-family:'Inter',sans-serif;font-weight:700;font-size:56px;letter-spacing:-.04em;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1}
.mt-hero-score .mt-dash{color:var(--ink);font-weight:300;font-size:48px;line-height:1}
/* PROVA font iamcalcio (Valve) sul risultato — non corsivo. Rimuovere questo blocco per tornare indietro */
.mt-hero-score .mt-pt{font-family:'Valve','Inter',sans-serif;font-style:normal;font-weight:700}
.mt-hero-score-vs .mt-vs{font-size:30px;color:var(--mute);font-weight:600;letter-spacing:.04em}
.mt-hero-penalty{font-size:12px;color:var(--mute);font-weight:500;margin-top:2px;line-height:1.25}
.mt-hero-penalty b{color:var(--ink);font-weight:700;font-variant-numeric:tabular-nums}
.mt-hero-penalty-tight{margin-top:0}
.mt-hero-state{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:0;color:var(--mute)}
.mt-hero-state-ft{color:var(--ink)}
.mt-hero-state-live{color:var(--red)}
.mt-hero-state-up{color:var(--green)}

/* CRESTS XS per H2H */
.crest.crest-xs{position:relative;width:18px;height:18px;flex:0 0 18px;font-size:8px;font-weight:700;background:transparent}
.crest.crest-xs .ini{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:3px;color:#fff}
.crest.crest-xs .logo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:2}
.crest.crest-xs:has(.logo) .ini{display:none}

/* TABS PRIMARIE */
.mt-tabs{display:flex;gap:24px;border-bottom:1px solid var(--line);margin-bottom:0;overflow-x:auto;-webkit-overflow-scrolling:touch}
.mt-tab{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--mute);text-decoration:none;padding:10px 0;border-bottom:2px solid transparent;white-space:nowrap}
.mt-tab:hover{color:var(--ink)}
.mt-tab.is-active{color:var(--red);border-bottom-color:var(--red)}

/* TAB ICONS */
.mt-tab i{margin-right:6px;font-size:11px;opacity:.85}
.mt-tab.is-active i{opacity:1}

/* SECTION TITLES (riusano stile lst) */
.mt-section{margin-top:24px}
.mt-section-title{font-size:12px;font-weight:700;color:var(--mute);text-transform:uppercase;letter-spacing:.1em;margin-bottom:14px;padding-bottom:8px;border-bottom:1px solid var(--line);display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.mt-section-title .mt-section-meta{font-size:11px;font-weight:500;color:var(--mute2);text-transform:none;letter-spacing:0}

/* PANES: rendering server-side, mostra solo quello attivo. */
.mt-panes{margin-top:18px}
.mt-pane{display:none}
.mt-pane.is-active{display:block}

/* CRONACA: header tempo + timeline 3-col */
.mt-empty{font-size:13px;color:var(--mute);padding:18px 0;font-style:italic;text-align:center}
.mt-timeline{display:flex;flex-direction:column;gap:0;background:var(--surf);border:1px solid var(--line);border-radius:10px;padding:6px 0;overflow:hidden;margin-bottom:14px}
.mt-half-lbl{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);padding:14px 18px 8px;background:var(--surf2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.mt-half-lbl:first-child{border-top:none;padding-top:8px}
.mt-ev{display:grid;grid-template-columns:1fr 56px 1fr;align-items:center;padding:8px 14px;gap:10px;border-bottom:1px solid var(--line);transition:background .12s ease}
.mt-ev:last-child{border-bottom:none}
.mt-ev:hover{background:var(--surf2)}
.mt-ev-info{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink);min-width:0}
.mt-ev-info-h{justify-content:flex-end;text-align:right}
.mt-ev-info-a{justify-content:flex-start;text-align:left}
.mt-ev-icon{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px}
.mt-ev-icon .mt-ico{font-size:14px;line-height:1}
.mt-ev-icon .mt-ico-goal{color:#1f2937}
.mt-ev-icon .mt-ico-autogoal{color:#dc2626}
/* Cartellini come rettangoli verticali (stretch dell'icona square) */
.mt-ev-icon .mt-ico-yellow,
.mt-ev-icon .mt-ico-red{font-size:14px;display:inline-block;transform:scaleX(.62) scaleY(1.35);transform-origin:center}
.mt-ev-icon .mt-ico-yellow{color:#eab308}
.mt-ev-icon .mt-ico-red{color:#dc2626}
.mt-ev-icon .mt-ico-sub{color:#16a34a;font-size:13px}
.mt-ev-icon .mt-ico-penerr{color:#dc2626;font-size:14px}
.mt-ev-icon .mt-ico-dot{display:inline-block;width:8px;height:8px;background:var(--mute2);border-radius:50%}
/* Mini-chip nelle formazioni (eventi accanto al giocatore) */
.mt-pl-ico-goal{color:#1f2937}
.mt-pl-ico-autogoal{color:#dc2626}
.mt-pl-ico-penerr{color:#dc2626}
.mt-pl-ico-in{color:#16a34a}
.mt-pl-ico-out{color:#dc2626}
.mt-pl-ico-assist{color:#6b7280}
.mt-ev-body{display:inline-flex;flex-direction:row;align-items:baseline;gap:6px;min-width:0;flex-wrap:nowrap}
.mt-ev-info-h .mt-ev-body{justify-content:flex-end}
.mt-ev-info-a .mt-ev-body{justify-content:flex-start}
.mt-ev-player{color:var(--ink);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mt-ev-sub{color:var(--mute);font-size:11px;font-weight:500;white-space:nowrap}
/* Punteggio progressivo accanto al gol (pillola sobria) */
.mt-ev-score{display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;background:var(--surf2);border:1px solid var(--line);border-radius:4px;padding:2px 7px;letter-spacing:.02em;line-height:1.2;white-space:nowrap;flex:0 0 auto}
/* Pillola minuto colorata per tipo evento */
.mt-ev-min{font-size:11px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;text-align:center;background:var(--surf2);border-radius:99px;padding:3px 0;min-width:46px;justify-self:center}
.mt-ev-act-goal .mt-ev-min{background:#dcfce7;color:#166534}
.mt-ev-act-penalty .mt-ev-min{background:#dcfce7;color:#166534}
.mt-ev-act-autogoal .mt-ev-min{background:#fee2e2;color:#991b1b}
.mt-ev-act-yellowcard .mt-ev-min{background:#fef9c3;color:#854d0e}
.mt-ev-act-redcard .mt-ev-min{background:#fecaca;color:#991b1b}
.mt-ev-act-subentry .mt-ev-min{background:#dbeafe;color:#1e40af}
.mt-ev-act-penaltyerror .mt-ev-min{background:#fee2e2;color:#991b1b}
/* Pillola minuto "PRE" per eventi PRE-partita (elapsed < 0 dall'API): */
.mt-ev-min.is-pre{background:#1f2937!important;color:#fff!important;letter-spacing:.08em;font-size:10px}
.mt-ev-act-goal .mt-ev-player,
.mt-ev-act-penalty .mt-ev-player{font-weight:700}
.mt-ev-act-autogoal .mt-ev-player{font-weight:700;color:var(--red)}
.mt-ev-act-redcard .mt-ev-player{color:#991b1b}

/* INFO STRIP (stadio/arbitro sotto la cronaca) */
.mt-info-strip{display:flex;flex-wrap:wrap;gap:18px;font-size:12px;color:var(--mute);padding:12px 16px;margin-top:8px;background:var(--surf2);border:1px solid var(--line);border-radius:8px}
.mt-info-item i{margin-right:4px;color:var(--mute2)}

/* FORMAZIONI */
.mt-lineups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.mt-lineup{background:var(--surf);border:1px solid var(--line);border-radius:10px;padding:0 0 10px;overflow:hidden}
.mt-lineup-head{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:2px solid var(--line);background:var(--surf)}
.mt-lineup-head .mt-lineup-club{font-family:'Inter',sans-serif;font-weight:700;font-size:14px;letter-spacing:0;color:var(--ink)}
.mt-lineup-head .mt-lineup-coach{font-size:11px;color:var(--mute);font-weight:500;margin-left:auto}
/* Crest piccolo nell'header formazione: se c'è il logo, nascondi le iniziali sotto */
.mt-lineup-head .crest{position:relative;width:24px;height:24px;flex:0 0 24px;font-size:9px;font-weight:700;background:transparent}
.mt-lineup-head .crest .ini{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:4px;color:#fff}
.mt-lineup-head .crest .logo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:2}
.mt-lineup-head .crest:has(.logo) .ini{display:none}
.mt-lineup-group-lbl{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);padding:12px 14px 4px;background:var(--surf2);border-bottom:1px solid var(--line)}
.mt-lineup-list{list-style:none;padding:6px 6px 4px;margin:0}
.mt-player{display:grid;grid-template-columns:28px minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:5px 10px;border-radius:6px;font-size:13px}
.mt-player:hover{background:var(--surf2)}
.mt-pl-num{font-variant-numeric:tabular-nums;font-weight:700;color:var(--mute);font-size:12px;text-align:right}
.mt-pl-name{color:var(--ink);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.mt-pl-vote{font-weight:700;font-size:13px;color:var(--ink);font-variant-numeric:tabular-nums;background:var(--surf2);padding:2px 7px;border-radius:6px;min-width:36px;text-align:center}
/* Chip eventi accanto al giocatore (gol, cards, sostituzioni) */
.mt-pl-events{display:inline-flex;align-items:center;gap:6px;flex-wrap:nowrap;font-size:11px;color:var(--mute);font-variant-numeric:tabular-nums}
.mt-pl-ev{display:inline-flex;align-items:center;gap:3px;white-space:nowrap}
.mt-pl-ev i{font-size:11px;line-height:1}
.mt-pl-ev .mt-pl-card{transform:scaleX(.62) scaleY(1.35);display:inline-block;font-size:12px}
.mt-pl-ev .mt-pl-card-y{color:#eab308}
.mt-pl-ev .mt-pl-card-r{color:#dc2626}
.mt-lineup-bench .mt-player{opacity:.85;font-size:12px}
.mt-lineup-bench .mt-pl-name{font-weight:400}

/* PRECEDENTI H2H */
.mt-h2h-list{display:flex;flex-direction:column;gap:6px}
.mt-h2h-row{display:grid;grid-template-columns:1fr auto 1fr auto;gap:14px;align-items:center;background:var(--surf);border:1px solid var(--line);border-radius:8px;padding:10px 16px;font-size:13px}
.mt-h2h-side{display:flex;align-items:center;gap:8px;min-width:0}
.mt-h2h-h{justify-content:flex-end;text-align:right}
.mt-h2h-a{justify-content:flex-start;text-align:left}
.mt-h2h-club{font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.mt-h2h-score{font-weight:700;font-size:15px;font-variant-numeric:tabular-nums;color:var(--ink);background:var(--surf2);padding:4px 12px;border-radius:6px;min-width:64px;text-align:center}
.mt-h2h-win-h .mt-h2h-h .mt-h2h-club,.mt-h2h-win-a .mt-h2h-a .mt-h2h-club{font-weight:700}
.mt-h2h-win-h .mt-h2h-score{background:#dcfce7;color:#166534}
.mt-h2h-win-a .mt-h2h-score{background:#fee2e2;color:#991b1b}
.mt-h2h-draw .mt-h2h-score{background:#f1f5f9;color:#475569}
.mt-h2h-date{font-size:11px;color:var(--mute);white-space:nowrap;font-variant-numeric:tabular-nums}

@media (max-width:760px){
    .mt-scoreboard{grid-template-columns:1fr;gap:14px}
    .mt-team-home,.mt-team-away{align-items:center;text-align:center}
    .mt-score-line{font-size:38px}
    .mt-lineups{grid-template-columns:1fr}
    .mt-h2h-row{grid-template-columns:1fr auto 1fr;font-size:12px}
    .mt-h2h-date{grid-column:1 / -1;text-align:center}
    .mt-ev{grid-template-columns:1fr 40px 1fr;padding:6px 10px}
    .mt-ev-min{font-size:10px;min-width:36px}
}

/* STATISTICHE CAMPIONATO — grafico unico multi-line (andamento punti top 8) */
.lst-multi-spark{background:var(--surf);border:1px solid var(--line);border-radius:10px;padding:14px 14px 12px}
.lst-multi-svg{display:block;width:100%;height:auto;max-height:380px}
.lst-multi-svg .ms-grid{stroke:var(--line);stroke-width:1;stroke-dasharray:3,3;fill:none}
.lst-multi-svg .ms-y-lbl{font-size:12px;font-family:'Inter',sans-serif;fill:var(--mute);text-anchor:end;font-weight:500;font-variant-numeric:tabular-nums}
.lst-multi-svg .ms-x-lbl{font-size:12px;font-family:'Inter',sans-serif;fill:var(--mute);text-anchor:middle;font-weight:500;font-variant-numeric:tabular-nums}
.lst-multi-svg .ms-line{transition:opacity .15s ease, stroke-width .15s ease;cursor:pointer}
/* Hover su una linea: la enfatizza, le altre si attenuano */
.lst-multi-spark:hover .ms-line{opacity:.18}
.lst-multi-spark .ms-line:hover{opacity:1;stroke-width:3}
.lst-multi-legend{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.ms-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 9px 3px 3px;border-radius:99px;background:var(--surf2);font-size:11px;font-weight:500;color:var(--ink);border:1px solid transparent;transition:border-color .15s ease, background .15s ease;cursor:default}
.ms-pill:hover{background:#fff;border-color:var(--line2)}
.ms-pill .crest{position:relative;width:18px;height:18px;flex:0 0 18px;font-size:7px;font-weight:700;background:transparent}
.ms-pill .crest .ini{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:3px;color:#fff}
.ms-pill .crest .logo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:2}
.ms-pill .crest:has(.logo) .ini{display:none}
.ms-pill .ms-dot{display:inline-block;width:12px;height:3px;border-radius:2px;flex:0 0 12px}
.ms-pill .ms-name{font-weight:500}
.ms-pill .ms-pts{font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink);margin-left:2px}
.ms-pill .ms-pts .lst-vl{font-size:9px;color:var(--mute);font-weight:500;margin-left:2px;text-transform:uppercase;letter-spacing:.04em}

/* Legacy sparkline grid (mantenuta per eventuali altri usi) */
.lst-spark-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.lst-spark-card{background:var(--surf);border:1px solid var(--line);border-radius:10px;padding:12px}
.lst-spark-head{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:8px;align-items:center;margin-bottom:8px}
.lst-spark-head .crest{position:relative;width:22px;height:22px;flex:0 0 22px;font-size:8px;font-weight:700;background:transparent}
.lst-spark-head .crest .ini{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:4px;color:#fff}
.lst-spark-head .crest .logo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:2}
.lst-spark-head .crest:has(.logo) .ini{display:none}
.lst-spark-name{font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;font-size:13px}
.lst-spark-pts{font-weight:700;color:var(--ink);font-size:14px;font-variant-numeric:tabular-nums}
.lst-spark-pts .lst-vl{font-size:9px;color:var(--mute);font-weight:500;margin-left:2px;text-transform:uppercase;letter-spacing:.04em}
.lst-spark-svg{display:block;width:100%;height:46px}
.lst-spark-foot{display:flex;justify-content:space-between;font-size:10px;color:var(--mute);margin-top:6px;font-variant-numeric:tabular-nums}

/* STATISTICHE CAMPIONATO — matrice scontri diretti H2H */
.lst-h2h-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.lst-h2h{border-collapse:separate;border-spacing:2px;font-size:10px;font-variant-numeric:tabular-nums;width:auto;margin-top:4px}
.lst-h2h th,.lst-h2h td{padding:0;text-align:center;vertical-align:middle}
.lst-h2h-col{width:26px;height:26px}
.lst-h2h-col .crest{position:relative;width:22px;height:22px;display:inline-block;font-size:7px;font-weight:700}
.lst-h2h-col .crest .ini{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:4px;color:#fff}
.lst-h2h-col .crest .logo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:2}
.lst-h2h-col .crest:has(.logo) .ini{display:none}
.lst-h2h-row{padding:0 8px 0 0!important;text-align:left!important;white-space:nowrap;font-weight:500;font-size:11px;color:var(--ink);min-width:140px}
.lst-h2h-row .lst-h2h-pos{display:inline-block;width:18px;color:var(--mute);font-weight:600;text-align:right;margin-right:6px;font-size:10px}
.lst-h2h-row .crest{position:relative;width:18px;height:18px;display:inline-block;vertical-align:middle;font-size:7px;font-weight:700;margin-right:6px}
.lst-h2h-row .crest .ini{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:3px;color:#fff}
.lst-h2h-row .crest .logo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:2}
.lst-h2h-row .crest:has(.logo) .ini{display:none}
.lst-h2h-row .lst-h2h-tname{vertical-align:middle}
.lst-h2h-cell{width:32px;height:26px;border-radius:4px;font-weight:600;color:var(--ink);background:var(--surf2)}
.lst-h2h-v{background:#dcfce7;color:#166534}
.lst-h2h-n{background:#f1f5f9;color:#475569}
.lst-h2h-p{background:#fee2e2;color:#991b1b}
.lst-h2h-diag{width:32px;height:26px;background:repeating-linear-gradient(45deg,transparent,transparent 3px,var(--line) 3px,var(--line) 4px);border-radius:4px}
@media (max-width:760px){
    .lst-h2h-row{min-width:90px}
    .lst-h2h-row .lst-h2h-tname{display:none}
}

/* STATISTICHE CAMPIONATO — griglia di ranking (attacco/difesa/casa/fuori) */
.lst-rk-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}
.lst-rk-list{display:flex;flex-direction:column}
.lst-rk-row{display:grid;grid-template-columns:24px 22px minmax(0,1fr) 70px 80px;gap:10px;align-items:center;padding:5px 0;border-bottom:1px solid var(--line);font-size:13px}
.lst-rk-row .lst-val{text-align:right}
.lst-rk-row .lst-val .lst-vl{margin-left:4px;font-size:10px;color:var(--mute);font-weight:500;text-transform:uppercase;letter-spacing:.04em}
.lst-rk-row:last-child{border-bottom:none}
.lst-rk-pos{font-size:11px;font-weight:600;color:var(--mute);text-align:center;font-variant-numeric:tabular-nums}
.lst-rk-row .crest{position:relative;width:22px;height:22px;flex:0 0 22px;font-size:8px;font-weight:700;background:transparent}
.lst-rk-row .crest .ini{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:4px;color:#fff}
.lst-rk-row .crest .logo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:transparent;z-index:2}
.lst-rk-row .crest:has(.logo) .ini{display:none}
.lst-rk-row .lst-name{font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.lst-rk-bar{position:relative;height:6px;background:var(--surf2);border-radius:99px;overflow:hidden}
.lst-rk-bar span{display:block;height:100%;background:var(--net-color,var(--accent));border-radius:99px;transition:width .3s ease}
.lst-rk-row .lst-val{font-weight:700;color:var(--ink);font-size:14px;font-variant-numeric:tabular-nums;text-align:right;min-width:48px}

@media (max-width:760px){
    .lst-rk-grid{grid-template-columns:1fr}
    .lst-rk-row{grid-template-columns:20px 22px minmax(0,1fr) auto;gap:8px}
    .lst-rk-row .lst-rk-bar{display:none}
}

/* STATISTICHE CAMPIONATO — griglia di leaderboard (non più in uso) */
.lg-stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.lst-card{background:var(--surf);border:1px solid var(--line);border-radius:10px;padding:14px}
.lst-card h3{font-size:13px;font-weight:700;color:var(--ink);margin-bottom:10px;display:flex;align-items:center;gap:6px;letter-spacing:-.005em}
.lst-row{display:grid;grid-template-columns:24px 1fr auto;gap:10px;align-items:center;padding:5px 0;border-bottom:1px solid var(--line);font-size:13px}
.lst-row:last-child{border-bottom:none}
.lst-row .crest{position:relative;width:22px;height:22px;flex:0 0 22px;font-size:8px;font-weight:700;background:transparent}
.lst-row .crest .ini{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:4px;color:#fff}
.lst-row .crest .logo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:transparent;z-index:2}
.lst-row .crest:has(.logo) .ini{display:none}
.lst-row .lst-name{font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.lst-row .lst-val{font-weight:700;color:var(--ink);font-size:14px;font-variant-numeric:tabular-nums}
.lst-row .lst-val .lst-vl{font-size:10px;color:var(--mute);font-weight:500;margin-left:3px}

/* ARCHIVIO NOTIZIE */
.news-index{max-width:760px}
.ni-head{margin-bottom:24px}
.ni-title{font-size:32px;font-weight:700;line-height:1.15;letter-spacing:-.02em;color:var(--ink);margin:4px 0 6px}
.ni-sub{font-size:13px;color:var(--mute)}
.ni-sub b{color:var(--ink-2);font-weight:600}

.ni-list{list-style:none;padding:0;margin:0}
.ni-item{margin-bottom:14px}
.ni-card{display:grid;grid-template-columns:200px 1fr;gap:16px;border:1px solid var(--line);border-radius:10px;background:var(--surf);text-decoration:none;color:inherit;overflow:hidden;transition:border-color .12s,transform .12s,box-shadow .12s}
.ni-card:hover{border-color:var(--line2);transform:translateY(-1px);box-shadow:0 6px 18px rgba(0,0,0,.04)}
.ni-thumb{aspect-ratio:16/10;background:var(--surf2);overflow:hidden}
.ni-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.ni-body{padding:14px 16px 14px 0;display:flex;flex-direction:column;justify-content:center;min-width:0}
.ni-headline{font-size:18px;font-weight:700;line-height:1.25;letter-spacing:-.015em;color:var(--ink);margin-bottom:6px}
.ni-excerpt{font-size:13px;color:var(--mute);line-height:1.5;margin-bottom:10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ni-meta{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--mute);flex-wrap:wrap}
.ni-meta .av-sm{width:20px;height:20px;border-radius:50%;background:var(--net-color, var(--accent));color:#fff;font-size:9px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.ni-meta b{color:var(--ink-2);font-weight:600}
.ni-meta .sep{color:var(--mute2)}
.ni-league{margin-left:auto;padding:2px 8px;background:var(--accent-bg);color:var(--accent);border-radius:6px;font-weight:700;font-size:10px;letter-spacing:.04em;text-transform:uppercase}
.ni-context{display:inline-block;padding:2px 8px;background:var(--surf2);color:var(--ink-2);border:1px solid var(--line);border-radius:6px;font-weight:600;font-size:11px}

.ni-pager{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}
/* ===== BOTTONE DI DEFAULT (.np-btn) — stile riutilizzabile ovunque =====
   Base cliccabile: rettangolo bordato, hover soft (solo lieve sfondo, bordo
   invariato). Varianti: `.on` (attivo, scuro), `.disabled`, `.np-btn-warn`
   (giallo), `.np-btn-tag` (label pillola non cliccabile), `.np-btn-count`
   (conteggio inline). Definito anche in app-mobile.css con gli stessi token.
   NON creare nuove classi bottone ad-hoc: riusare sempre .np-btn. */
.np-btn{padding:7px 14px;font-size:13px;font-weight:600;border:1px solid var(--line2);border-radius:6px;background:var(--surf);color:var(--ink-2);text-decoration:none;cursor:pointer;transition:border-color .12s,background .12s;display:inline-block}
.np-btn:hover{border-color:var(--line2);background:var(--surf2)}
.np-btn.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.np-btn.disabled{color:var(--mute2);background:var(--surf2);cursor:not-allowed;pointer-events:none}
/* Conteggio inline dentro un bottone (es. chip filtro "Serie A 344") */
.np-btn-count{font-size:10.5px;font-weight:700;opacity:.55;margin-left:5px}
.np-btn.on .np-btn-count{opacity:.85}
/* Tag = label non cliccabile. FORMA DIVERSA dal btn (pillola tonda invece di
   rettangolo) per distinguere a colpo d'occhio etichetta vs azione. Stessa
   altezza così la barra resta allineata. Definito DOPO .np-btn per specificità. */
.np-btn.np-btn-tag{background:var(--surf2);color:var(--mute);border:none;border-radius:99px;cursor:default;pointer-events:none;font-weight:500}
.np-btn.np-btn-tag:hover{background:var(--surf2)}
/* Variante gialla per i tornei collegati (Play Off / Play Out) — sopra le tab Notizie/Calendario/... */
.np-btn.np-btn-warn{background:#fde68a;border-color:#ca8a04;color:#713f12;font-weight:700}
.np-btn.np-btn-warn:hover{background:#facc15;border-color:#a16207;color:#451a03}
.np-info{font-size:12px;color:var(--mute);font-weight:500}

@media (max-width:720px){
    .ni-card{grid-template-columns:120px 1fr}
    .ni-headline{font-size:15px}
    .ni-excerpt{display:none}
}

/* EMPTY */
.empty{padding:32px;text-align:center;color:var(--mute);font-size:13px}

/* TAG dev */
.demo-tag{position:fixed;right:18px;bottom:18px;padding:8px 14px;background:var(--ink);color:#fff;border-radius:8px;font-size:11px;font-weight:600;z-index:100}
.demo-tag b{color:var(--accent)}

/* RESPONSIVE */
@media (max-width:1100px){
    .kpis{grid-template-columns:repeat(3,1fr)}
    .news-hero{grid-template-columns:1fr}
    .news-hero .main-col{border-right:none;border-bottom:1px solid var(--line)}
    .row{grid-template-columns:90px 1fr 80px 1fr 70px}
}
@media (max-width:760px){
    .app{grid-template-columns:1fr}
    .sb{display:none}
    .content{padding:20px 16px 32px}
    .kpis{grid-template-columns:repeat(2,1fr)}
    .topbar{padding:0 16px}
    .topbar .tabs a{padding:18px 8px}
}

/* ===== PAGINA DATI SOCIETÀ (/squadra/{slug}/dati) ===== */
.ds-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(340px, 1fr));gap:18px;margin-top:22px}
.ds-block{position:relative;background:var(--surf);border:1px solid var(--line);border-radius:14px;padding:24px 26px;box-shadow:0 1px 2px rgba(15,23,42,.03);transition:box-shadow .18s ease, border-color .18s ease;overflow:hidden}
.ds-block:hover{box-shadow:0 6px 22px rgba(15,23,42,.07);border-color:color-mix(in srgb, var(--ink) 12%, var(--line))}
.ds-block-wide{grid-column:1/-1}
.ds-block-hero{grid-column:span 2;background:linear-gradient(180deg, color-mix(in srgb, var(--net-color, var(--accent)) 4%, var(--surf)) 0%, var(--surf) 60%)}
.ds-block-hero::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg, var(--net-color, var(--accent)), color-mix(in srgb, var(--net-color, var(--accent)) 35%, transparent))}
@media (max-width:780px){.ds-block-hero{grid-column:1/-1}}

/* Header sezione: tipografia editoriale, separator sottile */
.ds-h2{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--mute);margin:0 0 16px;padding:0 0 12px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px}

/* Hero anno fondazione (solo in .ds-block-hero) */
.ds-hero-year{display:flex;align-items:flex-end;gap:18px;margin-bottom:18px;padding-bottom:18px;border-bottom:1px dashed var(--line)}
.ds-hero-year-num{font-size:56px;font-weight:800;letter-spacing:-.035em;color:var(--ink);line-height:.95;font-variant-numeric:tabular-nums;display:flex;align-items:baseline;gap:8px}
.ds-hero-year-num::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--net-color, var(--accent));margin-right:2px;transform:translateY(-8px)}
.ds-hero-year-meta{font-size:11px;color:var(--mute);text-transform:uppercase;letter-spacing:.10em;font-weight:700;line-height:1.4;display:flex;flex-direction:column;gap:4px;padding-bottom:6px}
.ds-hero-year-age{font-size:13px;color:var(--ink-2);text-transform:none;letter-spacing:0;font-weight:600}

/* Strip chip identità */
.ds-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
.ds-chip{display:inline-flex;align-items:center;padding:5px 11px;border:1px solid var(--line);background:var(--surf2);border-radius:99px;font-size:11.5px;font-weight:600;color:var(--ink-2);letter-spacing:.02em;transition:border-color .12s, color .12s}
.ds-chip:hover{border-color:color-mix(in srgb, var(--net-color, var(--accent)) 50%, var(--line));color:var(--ink)}

/* Container righe label · valore */
.ds-rows{display:flex;flex-direction:column}
.ds-row{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px dashed var(--line);font-size:13.5px}
.ds-row:last-child{border-bottom:none;padding-bottom:0}
.ds-row:first-child{padding-top:0}
.ds-lbl{flex:0 0 38%;color:var(--mute);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.08em}
.ds-val{flex:1;min-width:0;text-align:right;color:var(--ink);font-weight:600;word-break:break-word;text-decoration:none}
a.ds-val{color:var(--net-color, var(--accent));transition:color .12s}
a.ds-val:hover{text-decoration:underline;text-underline-offset:3px}
.ds-ext{font-size:10px;color:var(--mute);margin-left:3px;opacity:.7}

/* Social: griglia di bottoni colorati */
.ds-social{display:grid;grid-template-columns:repeat(auto-fill, minmax(150px, 1fr));gap:8px}
.ds-tifo{grid-template-columns:repeat(auto-fill, minmax(230px, 1fr))}
.ds-soc-tifo{background:linear-gradient(135deg, color-mix(in srgb, var(--c) 6%, transparent), transparent 70%)}
.ds-soc-ico .svg-icon{width:14px;height:14px;color:#fff;display:block}
.ds-soc{display:flex;align-items:center;gap:11px;padding:11px 13px;border:1px solid var(--line);border-radius:10px;text-decoration:none;color:var(--ink);transition:border-color .14s, transform .14s, box-shadow .14s, background .14s;position:relative;overflow:hidden}
.ds-soc::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg, color-mix(in srgb, var(--c) 8%, transparent), transparent 60%);opacity:0;transition:opacity .14s}
.ds-soc:hover{border-color:var(--c, var(--accent));transform:translateY(-2px);box-shadow:0 6px 16px color-mix(in srgb, var(--c, var(--accent)) 18%, transparent)}
.ds-soc:hover::before{opacity:1}
.ds-soc-ico{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;background:var(--c, var(--accent));color:#fff;font-weight:800;font-size:12px;letter-spacing:.02em;flex:0 0 30px;box-shadow:0 2px 5px color-mix(in srgb, var(--c, var(--accent)) 30%, transparent);position:relative;z-index:1}
.ds-soc-lbl{font-size:13px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;position:relative;z-index:1}

/* Colori sociali: banner alto con glow del primo colore */
.ds-color-banner{display:flex;height:140px;border-radius:12px;overflow:hidden;border:1px solid var(--line);position:relative}
.ds-color-banner::after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.18), inset 0 -1px 0 rgba(0,0,0,.10);border-radius:inherit}
.ds-color-stripe{flex:1;display:flex;align-items:flex-end;justify-content:flex-start;padding:14px 18px;transition:flex .35s cubic-bezier(.22,.61,.36,1);position:relative}
.ds-color-banner:hover .ds-color-stripe{flex:1}
.ds-color-banner .ds-color-stripe:hover{flex:2.6}
.ds-color-hex{font-size:11px;font-weight:700;letter-spacing:.10em;color:#fff;background:rgba(0,0,0,.45);padding:4px 9px;border-radius:99px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);font-variant-numeric:tabular-nums;opacity:0;transform:translateY(4px);transition:opacity .22s ease, transform .22s ease}
.ds-color-stripe:hover .ds-color-hex{opacity:1;transform:translateY(0)}

/* Divise: layout compatto orizzontale, immagini SEMPRE 32x32 native (no upscale) */
.ds-uniforms{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-start}
.ds-uniform{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 18px;background:var(--surf2);border:1px solid var(--line);border-radius:10px;min-width:88px;transition:border-color .14s, transform .14s, box-shadow .14s}
.ds-uniform:hover{border-color:color-mix(in srgb, var(--net-color, var(--accent)) 40%, var(--line));transform:translateY(-1px);box-shadow:0 4px 12px rgba(15,23,42,.06)}
.ds-uniform-img{width:32px;height:32px;display:flex;align-items:center;justify-content:center;flex:0 0 32px}
.ds-uniform-img img{width:32px;height:32px;object-fit:contain;image-rendering:pixelated;image-rendering:-moz-crisp-edges}
.ds-uniform-lbl{font-size:10.5px;color:var(--mute);font-weight:700;letter-spacing:.08em;text-transform:uppercase}

/* Su mobile: label sopra, valore sotto */
@media (max-width:600px){
    .ds-row{flex-direction:column;gap:3px;padding:9px 0}
    .ds-val{text-align:left}
    .ds-block{padding:20px 20px}
    .ds-hero-year-num{font-size:44px}
    .ds-color-banner{height:110px}
}

/* ===== PAGINA STORIA (/squadra/{slug}/storia) — struttura informativa ===== */
/* Timeline cronistoria: zebra striping + box anno con accento sx */
.st-timeline{display:flex;flex-direction:column;margin-top:20px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surf)}
.st-season{display:grid;grid-template-columns:108px 1fr;gap:0;padding:0;align-items:stretch;border-bottom:1px solid var(--line);transition:background .15s ease}
.st-season:last-child{border-bottom:none}
.st-season:nth-child(even){background:var(--surf2)}
.st-season:hover{background:color-mix(in srgb, var(--net-color, var(--accent)) 5%, var(--surf))}
.st-season-y{display:flex;align-items:center;justify-content:flex-start;gap:10px;padding:18px 18px 18px 20px;border-right:1px solid var(--line);position:relative}
.st-season-y::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;background:var(--net-color, var(--accent));opacity:.55;border-radius:0 2px 2px 0}
.st-season-y-lbl{font-size:18px;font-weight:800;letter-spacing:-.015em;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1}
.st-season-body{display:flex;flex-direction:column;gap:6px;padding:14px 18px}

/* Entry: layout informativo a riga (nome lega · posizione · range · meta) */
.st-entry{display:inline-flex;align-items:center;gap:10px;padding:8px 12px;background:var(--surf);border:1px solid var(--line);border-radius:6px;font-size:13px;color:var(--ink);transition:border-color .12s ease, background .12s ease;width:100%;max-width:560px;text-decoration:none}
.st-season:nth-child(even) .st-entry{background:var(--surf)}
.st-entry:hover{border-color:var(--net-color, color-mix(in srgb, var(--ink) 30%, var(--line)));background:color-mix(in srgb, var(--net-color, var(--accent)) 5%, var(--surf))}
a.st-entry{cursor:pointer}
a.st-entry:hover .st-entry-name{color:var(--net-color, var(--accent))}
.st-entry-name{flex:1;color:var(--ink);font-weight:600;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.st-entry-pos{flex:0 0 auto;font-size:12.5px;font-weight:800;color:var(--ink-2);font-variant-numeric:tabular-nums;letter-spacing:-.01em;padding:0 4px;min-width:34px;text-align:center}
.st-entry-range{flex:0 0 auto;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:99px;white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis}
.st-entry-meta{flex:0 0 auto;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);padding:3px 8px;border-radius:99px;background:var(--surf2);border:1px solid var(--line);white-space:nowrap}

/* Stagione vinta (1° posto / Campione): cornice e nome evidenziati in oro */
/* Specificity boost (.st-timeline ...) per battere la regola `.st-season:nth-child(even) .st-entry` della zebra striping */
.st-timeline .st-entry.is-champ{background:linear-gradient(135deg, #fef9c3 0%, #fde68a 100%);border-color:#ca8a04}
.st-timeline .st-entry.is-champ .st-entry-name{color:#713f12;font-weight:800}
.st-timeline .st-entry.is-champ .st-entry-pos{color:#713f12}

@media (max-width:600px){
    .st-season{grid-template-columns:84px 1fr}
    .st-season-y{padding:12px 12px 12px 14px}
    .st-season-y-lbl{font-size:16px}
    .st-season-body{padding:10px 14px}
    .st-entry{font-size:12.5px;gap:8px;padding:7px 10px}
    .st-entry-range,.st-entry-meta{font-size:9.5px}
}

/* ===== PAGINA STAFF (/squadra/{slug}/staff) — riusa molti pattern .ros-* ===== */
.stf-block{margin-bottom:28px}
.stf-h{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:700;letter-spacing:-.005em;color:var(--ink);margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.stf-h-ico{font-size:14px;line-height:1}
.stf-h-lbl{flex:1}
.stf-h-count{font-size:10px;font-weight:600;color:var(--mute);background:var(--surf2);padding:2px 8px;border-radius:999px;letter-spacing:0;text-transform:none}
/* Colori pillola ruolo per categoria staff */
.r-tech .ros-role-pill{background:#dbeafe;color:#1e3a8a}
.r-fit  .ros-role-pill{background:#d1fae5;color:#065f46}
.r-med  .ros-role-pill{background:#fee2e2;color:#991b1b}
/* Colori pillola ruolo per categoria organigramma */
.r-pres  .ros-role-pill{background:#fef3c7;color:#92400e}
.r-sport .ros-role-pill{background:#e0e7ff;color:#3730a3}
.r-adm   .ros-role-pill{background:#f3e8ff;color:#6b21a8}

/* ===== PAGINA ROSA SQUADRA (/squadra/{slug}/rosa) ===== */
/* Toolbar in alto: titolo a sx, filtri ruolo al centro, sort a dx */
.ros-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:18px 0 18px;padding:8px 0 12px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.ros-toolbar-l{display:flex;align-items:center;gap:8px;min-width:0}
.ros-toolbar-c{display:flex;align-items:center;gap:4px;flex-wrap:wrap;flex:1;justify-content:center}
.ros-toolbar-r{display:flex;align-items:center;gap:4px}
.ros-title{font-size:11px;color:var(--mute);font-weight:600;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}
.ros-title-sep{color:var(--mute2)}
.ros-title-tot{color:var(--ink);font-weight:700}
/* Tab filtri ruolo (sub-tab style come marcatori) */
.ros-filt,.ros-sort{background:none;border:none;font-family:inherit;cursor:pointer;padding:8px 12px;font-size:12px;font-weight:600;color:var(--mute);border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .12s,border-color .12s;white-space:nowrap;line-height:1.2}
.ros-filt:hover,.ros-sort:hover{color:var(--ink)}
.ros-filt.on,.ros-sort.on{color:var(--net-color, var(--ink));border-bottom-color:var(--net-color, var(--ink))}
.ros-filt-n{color:var(--mute);font-weight:500;margin-left:2px}
.ros-filt.on .ros-filt-n{color:inherit;opacity:.7}

/* Grid: 6 col su wide, responsive */
.ros-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(190px, 1fr));gap:10px}

/* Card singolo giocatore: foto quadrata hero + body info */
.ros-card{position:relative;background:var(--surf);border:1px solid var(--line);border-radius:10px;overflow:hidden;transition:border-color .15s, box-shadow .15s, transform .15s;text-decoration:none;color:inherit;display:block}
.ros-card:hover{border-color:var(--c, var(--accent));box-shadow:0 1px 2px rgba(0,0,0,.04),0 6px 14px rgba(0,0,0,.06);transform:translateY(-1px)}
a.ros-card:hover .ros-card-name{color:var(--net-color, var(--accent))}

/* Foto quadrata in alto, hero della card */
.ros-card-photo{position:relative;aspect-ratio:1;background:linear-gradient(180deg, var(--surf2), #e9eaee);overflow:hidden}
.ros-card-photo img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
/* Overlay sulla foto: pillola ruolo + numero maglia */
.ros-card-overlay{position:absolute;top:8px;left:8px;right:8px;display:flex;align-items:flex-start;justify-content:space-between;gap:6px;pointer-events:none}
.ros-role-pill{display:inline-flex;align-items:center;padding:3px 8px;border-radius:4px;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;line-height:1.4;flex:0 0 auto;white-space:nowrap;box-shadow:0 1px 3px rgba(0,0,0,.20)}
.r-gk .ros-role-pill{background:#fef3c7;color:#92400e}
.r-d  .ros-role-pill{background:#dbeafe;color:#1e3a8a}
.r-m  .ros-role-pill{background:#d1fae5;color:#065f46}
.r-a  .ros-role-pill{background:#fee2e2;color:#991b1b}
.r-x  .ros-role-pill{background:rgba(255,255,255,.92);color:var(--mute)}
/* Numero maglia in alto a dx: pillola compatta su fondo scuro semi-trasparente */
.ros-card-num{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 6px;background:rgba(0,0,0,.55);color:#fff;font-size:13px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1;border-radius:5px;backdrop-filter:blur(4px)}

/* Body: nome + classe + stats */
.ros-card-body{padding:10px 12px 12px}
.ros-card-name{font-size:14px;font-weight:700;color:var(--ink);line-height:1.2;letter-spacing:-.01em;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ros-card-class{font-size:11px;color:var(--mute);font-weight:500;margin-bottom:8px}
.ros-card-stats{display:grid;grid-template-columns:repeat(4, 1fr);gap:4px;padding-top:8px;border-top:1px solid var(--line)}
.ros-stat{display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-width:0}
.ros-stat b{font-size:14px;font-weight:800;color:var(--ink-2);letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1}
.ros-stat span{font-size:9px;color:var(--mute2);font-weight:600;text-transform:uppercase;letter-spacing:.06em;line-height:1}
.ros-stat.is-on b{color:var(--ink)}
.ros-stat.r-g b{color:#16a34a}
.ros-stat.r-y b{color:#d97706}
.ros-stat.r-r b{color:#dc2626}

@media (max-width:600px){.ros-grid{grid-template-columns:repeat(2,1fr)}}

/* ===== DIRECTORY SQUADRE NETWORK (/squadre) — elenco verticale ===== */
.cls-group{margin-bottom:14px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surf)}
.cls-head{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;list-style:none;background:var(--surf2)}
.cls-head::-webkit-details-marker{display:none}
.cls-caret{font-size:11px;color:var(--mute);transition:transform .15s;flex:0 0 auto}
.cls-group:not([open]) .cls-caret{transform:rotate(-90deg)}
.cls-league{flex:1;font-size:14px;font-weight:700;color:var(--ink);text-decoration:none;letter-spacing:-.01em}
.cls-league:hover{color:var(--net-color, var(--accent));text-decoration:underline;text-underline-offset:2px}
.cls-league-count{font-weight:500;color:var(--mute);font-size:12px}

/* Header colonne stats: vivono ora dentro lo <summary>, allineati a destra
   con le stesse width delle .cls-stats nelle righe sotto. */
.cls-stats-head{font-weight:600;color:var(--mute);font-size:10px;letter-spacing:.05em;text-transform:uppercase}
.cls-head .cls-stats-head .cls-pts,
.cls-head .cls-stats-head .cls-vnp,
.cls-head .cls-stats-head .cls-gd{font-size:10px;font-weight:600;letter-spacing:.05em;color:var(--mute);text-transform:uppercase}
@media (max-width:700px){.cls-stats-head{display:none}}

/* Lista verticale: 1 riga per squadra, nome SEMPRE intero */
.cls-list{list-style:none;margin:0;padding:0}
.cls-row{display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:1px solid var(--line);transition:background .1s}
.cls-row:last-child{border-bottom:none}
.cls-row:hover{background:var(--surf2)}

/* Stella "preferiti" (interazione client-side, futura) */
.cls-fav{flex:0 0 24px;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;font-size:22px;line-height:1;color:var(--mute2);cursor:pointer;transition:color .12s, transform .12s;user-select:none}
.cls-fav::before{content:'☆'}
.cls-fav:hover,.cls-fav:focus{color:#fbbf24;transform:scale(1.15);outline:none}
.cls-fav.is-fav{color:#fbbf24}
.cls-fav.is-fav::before{content:'★'}

/* Posizione classifica */
.cls-pos{flex:0 0 32px;text-align:center;font-size:13px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.cls-pos-empty{color:var(--mute2);font-weight:500}

/* Link squadra (crest + nome) */
.cls-link{flex:1;min-width:0;display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit;padding:2px 0}
.cls-link:hover .cls-name{color:var(--net-color, var(--accent))}
.cls-link .crest{position:relative;width:24px;height:24px;flex:0 0 24px;font-size:9px;font-weight:700;background:transparent}
.cls-link .crest .ini{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:4px;color:#fff}
.cls-link .crest .logo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:transparent;z-index:2}
.cls-link .crest:has(.logo) .ini{display:none}
.cls-name{font-size:14px;font-weight:600;color:var(--ink);line-height:1.25;letter-spacing:-.005em;transition:color .12s}

/* Strip stats a destra: colonne a larghezza fissa per allineamento uniforme tra righe */
.cls-stats{display:flex;align-items:baseline;gap:18px;font-size:12px;color:var(--mute);font-variant-numeric:tabular-nums;flex:0 0 auto}
.cls-pts{display:inline-flex;align-items:baseline;gap:3px;width:52px;justify-content:flex-end}
.cls-pts b{font-size:15px;font-weight:800;color:var(--ink);letter-spacing:-.02em}
.cls-pts-lbl{font-size:10px;color:var(--mute);text-transform:lowercase}
.cls-vnp{font-weight:600;letter-spacing:.02em;color:var(--mute);width:74px;text-align:center;display:inline-block}
.cls-vnp .vnp-v{color:#16a34a}
.cls-vnp .vnp-n{color:#a3a3a8}
.cls-vnp .vnp-p{color:#dc2626}
.cls-gd{font-weight:700;color:var(--mute);width:40px;text-align:right;display:inline-block}
.cls-gd.pos{color:#16a34a}
.cls-gd.neg{color:#dc2626}

@media (max-width:700px){
    .cls-row{flex-wrap:wrap;padding:10px 12px}
    .cls-stats{flex-basis:100%;justify-content:flex-end;margin-top:2px;font-size:11px}
}

/* ===== PAGINA SQUADRA (/squadra/{id}-{seo}) ===== */
/* HERO: tessera del club a colori sociali */
.cl-hero{position:relative;border-radius:14px;overflow:hidden;margin-bottom:24px;background:linear-gradient(135deg, var(--c1, #10b981), var(--c2, #0b1220));color:#fff;min-height:170px;box-shadow:0 1px 2px rgba(0,0,0,.06),0 14px 32px rgba(0,0,0,.10)}
.cl-hero::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg, rgba(255,255,255,.05) 0 2px, transparent 2px 14px);mix-blend-mode:overlay;pointer-events:none}
.cl-hero::after{content:"";position:absolute;top:-60px;right:-60px;width:280px;height:280px;background:rgba(255,255,255,.07);border-radius:50%;pointer-events:none}
.cl-hero-inner{position:relative;z-index:1;padding:28px 32px;display:flex;align-items:center;gap:28px}
.cl-hero-crest{width:120px;height:120px;flex:0 0 120px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.10);border-radius:14px;backdrop-filter:blur(4px)}
.cl-hero-crest img{max-width:88%;max-height:88%;object-fit:contain;filter:drop-shadow(0 4px 10px rgba(0,0,0,.30))}
.cl-hero-ini{font-size:36px;font-weight:900;color:#fff;letter-spacing:-.02em}
.cl-hero-meta{flex:1;min-width:0}
.cl-hero-name{font-size:38px;font-weight:900;letter-spacing:-.025em;line-height:1.05;color:#fff;margin:0 0 12px;text-shadow:0 1px 2px rgba(0,0,0,.20)}
/* Badge trofei vinti nella stagione corrente (hero pagina squadra) */
.cl-hero-trophies{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 12px}
.cl-trophy{display:inline-flex;align-items:center;gap:9px;padding:6px 13px 6px 8px;border-radius:6px;background:linear-gradient(135deg, #fde68a 0%, #facc15 65%, #f59e0b 100%);color:#451a03;box-shadow:0 2px 6px rgba(245,158,11,.40), inset 0 1px 0 rgba(255,255,255,.50);font-size:12.5px;font-weight:700;letter-spacing:.01em;border:1px solid #ca8a04}
.cl-trophy-ico{position:relative;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;flex:0 0 22px}
.cl-trophy-ico .svg-icon{width:22px;height:22px;color:#7c2d12;display:block}
/* Numero "1" sovraimpresso allo scudetto (solo per il campionato) */
.cl-trophy-num{position:absolute;top:55%;left:50%;transform:translate(-50%,-50%);font-size:10px;font-weight:900;color:#fff;line-height:1;letter-spacing:0;text-shadow:0 1px 1px rgba(0,0,0,.35)}
.cl-trophy-name{font-weight:700}

.cl-hero-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.cl-chip{display:inline-flex;align-items:center;gap:4px;padding:5px 11px;border-radius:6px;background:rgba(255,255,255,.16);color:#fff;font-size:12px;font-weight:600;text-decoration:none;backdrop-filter:blur(4px);transition:background .12s}
.cl-chip:hover{background:rgba(255,255,255,.26)}
.cl-chip b{font-weight:800}
.cl-chip-dim{opacity:.7;font-weight:500}
.cl-chip-league{background:rgba(255,255,255,.22)}
.cl-chip-streak{background:rgba(255,255,255,.96);color:var(--ink)}
.cl-chip-streak.cl-chip-cold{background:rgba(0,0,0,.30);color:#fff}
@media (max-width:700px){
    .cl-hero-inner{flex-direction:column;text-align:center;padding:22px 18px;gap:14px}
    .cl-hero-crest{width:90px;height:90px;flex:0 0 90px}
    .cl-hero-name{font-size:28px}
}

/* KPI strip: 5 card flat */
.cl-kpi{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:24px}
.cl-kpi-card{background:var(--surf);border:1px solid var(--line);border-radius:10px;padding:14px 16px}
.cl-kpi-lab{font-size:11px;color:var(--mute);font-weight:600;margin-bottom:8px}
.cl-kpi-v{font-size:28px;font-weight:800;letter-spacing:-.025em;color:var(--ink);line-height:1;font-variant-numeric:tabular-nums}
.cl-kpi-d{font-size:11px;color:var(--mute);margin-top:6px}
.cl-kpi-vnp{display:flex;align-items:baseline;gap:8px}
.cl-kpi-vnp .vnp-v{color:#16a34a}
.cl-kpi-vnp .vnp-n{color:#d97706}
.cl-kpi-vnp .vnp-p{color:#dc2626}
.cl-kpi-vnp .vnp-sep{color:var(--line2);font-weight:400}
.cl-kpi-gd.pos{color:#16a34a}
.cl-kpi-gd.neg{color:#dc2626}
@media (max-width:1000px){.cl-kpi{grid-template-columns:repeat(3,1fr)}}
@media (max-width:560px){.cl-kpi{grid-template-columns:repeat(2,1fr)}}

/* Row heatmap + form */
.cl-row{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:18px;margin-bottom:24px}
@media (max-width:900px){.cl-row{grid-template-columns:1fr}}
.cl-block{background:var(--surf);border:1px solid var(--line);border-radius:10px;padding:18px 20px}
.cl-h2{font-size:14px;font-weight:700;letter-spacing:-.005em;color:var(--ink);margin-bottom:6px}
.cl-h2-sub{font-size:11px;color:var(--mute);margin-bottom:14px;line-height:1.5}
.hm-key{display:inline-block;width:14px;height:14px;border-radius:3px;vertical-align:-3px;margin:0 3px;text-align:center;font-size:8px;font-weight:700;color:#fff;line-height:14px}

/* Heatmap: una cella per giornata */
.hm-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(34px, 1fr));gap:5px}
.hm-cell{display:flex;align-items:center;justify-content:center;aspect-ratio:1;border-radius:5px;text-decoration:none;font-size:10px;font-weight:700;color:#fff;line-height:1;transition:transform .12s, box-shadow .12s}
.hm-cell:hover{transform:scale(1.12);z-index:2;box-shadow:0 4px 10px rgba(0,0,0,.20);position:relative}
.hm-cell .hm-num{opacity:.75}
.hm-winner,.hm-w{background:#16a34a}
.hm-pair,.hm-d{background:#a3a3a8}
.hm-loser,.hm-l{background:#dc2626}
.hm-up{background:var(--surf2);color:var(--mute);border:1px dashed var(--line2)}
.hm-up .hm-num{opacity:.9}

/* Form & streak (aside) */
.cl-form{display:flex;flex-direction:column}
.cl-form-dots{display:flex;gap:6px;margin-bottom:18px;flex-wrap:wrap}
.cl-form-dot{width:36px;height:36px;border-radius:7px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:13px;text-decoration:none;transition:transform .12s}
.cl-form-dot:hover{transform:translateY(-2px)}
.cl-streak{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:14px 8px;background:var(--surf2);border-radius:8px;min-height:80px}
.cl-streak-big{font-size:32px;font-weight:800;letter-spacing:-.02em;line-height:1;color:var(--ink)}
.cl-streak-big b{color:var(--net-color, var(--accent));font-weight:900}
.cl-streak-lbl{font-size:11px;color:var(--mute);margin-top:6px}

/* Prossima partita */
.cl-next{margin-bottom:24px}
.cl-next-card{display:grid;grid-template-columns:1fr auto 1fr;gap:18px;align-items:center;background:var(--surf);border:1px solid var(--line);border-radius:12px;padding:20px 24px;text-decoration:none;color:inherit;transition:border-color .15s, box-shadow .15s, transform .15s}
.cl-next-card:hover{border-color:var(--net-color, var(--accent));box-shadow:0 1px 2px rgba(0,0,0,.04),0 8px 22px rgba(0,0,0,.06);transform:translateY(-1px)}
.cl-next-side{display:flex;flex-direction:column;align-items:center;gap:10px;min-width:0}
.cl-next-side .crest{position:relative;width:56px;height:56px;font-size:14px;font-weight:700;background:transparent}
.cl-next-side .crest .ini{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:7px;color:#fff}
.cl-next-side .crest .logo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:transparent;z-index:2}
.cl-next-side .crest:has(.logo) .ini{display:none}
.cl-next-name{font-size:14px;font-weight:700;color:var(--ink);text-align:center;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.cl-next-vs{display:flex;flex-direction:column;align-items:center;gap:4px}
.cl-next-vs-lbl{font-size:22px;font-weight:800;color:var(--mute);letter-spacing:-.02em;line-height:1}
.cl-next-when{font-size:13px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.cl-next-ago{font-size:11px;color:var(--mute);text-transform:lowercase}

/* Top 3 performers */
.cl-top3{margin-bottom:24px}
.cl-top3-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media (max-width:700px){.cl-top3-grid{grid-template-columns:1fr}}
.cl-perf-card{display:block;background:var(--surf);border:1px solid var(--line);border-left:3px solid var(--c, var(--accent));border-radius:8px;padding:12px 14px;text-decoration:none;color:inherit;transition:border-color .15s, box-shadow .15s, transform .15s}
.cl-perf-card:hover{border-color:var(--c, var(--accent));box-shadow:0 1px 2px rgba(0,0,0,.04),0 6px 14px rgba(0,0,0,.06);transform:translateY(-1px)}
.cl-perf-lab{font-size:10px;font-weight:600;color:var(--mute);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}
.cl-perf-body{display:flex;align-items:center;gap:10px}
.cl-perf-photo{width:38px;height:38px;border-radius:50%;object-fit:cover;background:var(--surf2);border:1px solid var(--line);flex:0 0 38px}
.cl-perf-info{flex:1;min-width:0}
.cl-perf-name{font-size:14px;font-weight:700;color:var(--ink);letter-spacing:-.01em;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cl-perf-stat{font-size:11px;color:var(--mute);margin-top:2px}
.cl-perf-stat b{color:var(--c, var(--accent));font-weight:800;font-size:13px}

/* Calendario stagione: griglia responsive che va a capo (no più scroll-x) */
.cl-cal-strip{display:grid;grid-template-columns:repeat(auto-fill, minmax(140px, 1fr));gap:8px;margin-top:6px}
/* Divisione visiva andata/ritorno */
.cl-cal-split + .cl-cal-split{margin-top:22px}
.cl-cal-leg{display:flex;align-items:baseline;gap:10px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--mute);margin:14px 0 8px;padding-bottom:6px;border-bottom:1px solid var(--line)}
.cl-cal-split:first-child .cl-cal-leg{margin-top:6px}
.cl-cal-leg-meta{font-size:11px;font-weight:500;color:var(--mute2);text-transform:none;letter-spacing:0}
.cl-cal-card{background:var(--surf);border:1px solid var(--line);border-radius:8px;padding:10px 12px;text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:5px;transition:transform .12s, border-color .12s, box-shadow .15s}
.cl-cal-card:hover{transform:translateY(-2px);border-color:var(--c, var(--accent));box-shadow:0 4px 12px rgba(0,0,0,.06)}
.cl-cal-top{font-size:10px;color:var(--mute);font-weight:600;letter-spacing:.02em}
.cl-cal-opp{font-size:12px;color:var(--ink);line-height:1.25}
.cl-cal-ha{display:block;font-size:10px;color:var(--mute);font-weight:500}
.cl-cal-vs{display:block;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cl-cal-score{font-size:15px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.cl-cal-winner{border-left:3px solid #16a34a}
.cl-cal-pair{border-left:3px solid #a3a3a8}
.cl-cal-loser{border-left:3px solid #dc2626}
.cl-cal-up{border-left:3px dashed var(--line2);opacity:.78}
.cl-cal-up:hover{opacity:1}
.cl-cal-up .cl-cal-score{color:var(--mute);font-size:13px}

/* ===== DIRECTORY PROVINCE (/tutte-le-province) ===== */
.np-section{margin-bottom:36px}
.np-section-h{font-weight:800;font-size:22px;letter-spacing:-.02em;line-height:1.1;color:var(--ink);margin-bottom:4px;display:flex;align-items:baseline;gap:10px}
.np-section-meta{font-family:'Inter',sans-serif;font-weight:600;font-size:12px;color:var(--mute);background:var(--surf2);padding:2px 8px;border-radius:999px;letter-spacing:0}
.np-section-sub{color:var(--mute);font-size:13px;margin-bottom:16px;max-width:640px}
.np-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(210px, 1fr));gap:10px}
.np-card{position:relative;display:block;background:var(--surf);border:1px solid var(--line);border-left:3px solid var(--c, var(--accent));border-radius:6px;padding:10px 12px;text-decoration:none;color:var(--ink);transition:border-color .15s ease, box-shadow .15s ease, transform .15s ease}
.np-card:hover{border-color:var(--c, var(--accent));box-shadow:0 1px 2px rgba(0,0,0,.04),0 6px 16px rgba(0,0,0,.06);transform:translateY(-1px)}
.np-card-stripe{display:none}
.np-card-body{display:flex;flex-direction:column;gap:8px}
.np-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.np-card-name{font-size:15px;font-weight:700;letter-spacing:-.01em;color:var(--ink);line-height:1.15;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Badge "Live" come status indicator stile dashboard: dot animato + label */
.np-card-badge{display:inline-flex;align-items:center;gap:4px;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;line-height:1.4;flex:0 0 auto}
.np-card-badge-full{color:var(--c, var(--accent))}
.np-card-badge-full::before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--c, var(--accent));box-shadow:0 0 0 0 var(--c, var(--accent));animation:np-pulse 2s ease-in-out infinite}
@keyframes np-pulse{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb, var(--c, var(--accent)) 35%, transparent)}50%{box-shadow:0 0 0 4px transparent}}
.np-card-badge-light{color:var(--mute);padding:1px 6px;border-radius:3px;background:var(--surf2)}

/* Stats: 3-col, numero medio sopra, label sotto in case naturale */
.np-card-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.np-stat{display:flex;flex-direction:column;gap:2px;min-width:0}
.np-stat b{font-weight:700;font-size:17px;color:var(--ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1}
.np-stat span{font-size:11px;font-weight:500;color:var(--mute);line-height:1.2}

.np-card-arrow{display:none}

/* Variante light: bordo sinistro più sobrio, numeri stats meno saturi */
.np-card-light{border-left-color:color-mix(in srgb, var(--c, var(--accent)) 55%, var(--line))}
.np-card-light:hover{border-color:var(--c, var(--accent));border-left-color:var(--c, var(--accent))}
.np-card-light .np-stat b{color:var(--ink-2)}

/* ===== CLASSIFICA MARCATORI (/campionato/{slug}/marcatori) ===== */
/* Tab attivo nella barra azioni (coerente con .lg-cl-tabs .np-btn.on) */
.lg-ph-r .np-btn.on{background:var(--ink);color:#fff;border-color:var(--ink)}

/* Sub-tab sezione (Marcatori / Ammonizioni / Espulsioni / Assist / Autogol / Rigori sbagliati).
   Riga di pillole sotto i tab principali, scrollabile orizzontalmente su mobile. */
.sc-subtabs{display:flex;gap:6px;margin:14px 0 22px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:0}
.sc-subtab{display:inline-flex;align-items:center;padding:8px 12px;font-size:12px;font-weight:600;color:var(--mute);text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .12s,border-color .12s;white-space:nowrap}
.sc-subtab:hover{color:var(--ink)}
.sc-subtab.on{color:var(--net-color, var(--ink));border-bottom-color:var(--net-color, var(--ink))}
/* Voci sub-tab "in arrivo": non cliccabili, colore sbiadito */
.sc-subtab-soon{color:var(--mute2);cursor:not-allowed}
.sc-subtab-soon:hover{color:var(--mute2)}
@media (max-width:700px){.sc-subtabs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px}}

/* Quando la sezione non è "Marcatori" (no sidebar assist) la tabella si allarga a full width */
.lg-2col-full{grid-template-columns:1fr}

/* Hero header in vista "Marcatori <club>": crest 36px inline a sinistra del titolo */
.sc-club-h{display:inline-flex;vertical-align:-6px;margin-right:8px}
.sc-club-h .crest{position:relative;width:36px;height:36px;font-size:11px;font-weight:700;background:transparent}
.sc-club-h .crest .ini{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:5px;color:#fff}
.sc-club-h .crest .logo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:transparent;z-index:2}
.sc-club-h .crest:has(.logo) .ini{display:none}

/* ALERT "marcatori mancanti": banner ambra-warning collapsible (<details>).
   Lista compatta delle partite con discrepanza score↔eventi nel DB. */
.sc-alert{margin:0 0 24px;border:1px solid #f59e0b;border-left-width:4px;border-radius:8px;background:linear-gradient(90deg, #fff8eb, #fffbf2 60%);overflow:hidden}
.sc-alert-head{display:flex;align-items:center;gap:10px;padding:11px 16px;cursor:pointer;list-style:none;font-size:13px;color:var(--ink);font-weight:600;user-select:none}
.sc-alert-head::-webkit-details-marker{display:none}
.sc-alert-ico{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#f59e0b;color:#fff;font-weight:900;font-size:13px;line-height:1;flex:0 0 22px}
.sc-alert-title{flex:1;line-height:1.3}
.sc-alert-title b{font-weight:800;color:#a16207}
.sc-alert-caret{font-size:11px;color:var(--mute);transition:transform .15s}
.sc-alert[open] .sc-alert-caret{transform:rotate(180deg)}
.sc-alert-body{padding:6px 16px 14px;border-top:1px solid #f3e2b3;background:#fffbf2}
.sc-alert-note{font-size:12px;color:var(--ink-2);margin:6px 0 12px;line-height:1.5}
.sc-alert-list{list-style:none;display:grid;grid-template-columns:repeat(2, minmax(0,1fr));gap:6px 18px;margin:0;padding:0}
@media (max-width:700px){.sc-alert-list{grid-template-columns:1fr}}
.sc-alert-row{display:grid;grid-template-columns:auto 1fr auto 1fr;align-items:center;gap:8px;padding:6px 8px;border-radius:5px;font-size:12px;color:var(--ink);text-decoration:none;transition:background .12s}
.sc-alert-row:hover{background:rgba(245,158,11,.10)}
.sc-alert-date{color:var(--mute);font-size:11px;font-weight:500;white-space:nowrap;letter-spacing:-.005em}
.sc-alert-team{display:flex;align-items:center;gap:5px;min-width:0;overflow:hidden}
.sc-alert-team-h{justify-content:flex-end}
.sc-alert-tn{font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sc-alert-score{font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;padding:1px 7px;background:#fff;border:1px solid var(--line);border-radius:4px;font-size:11px;white-space:nowrap}
.sc-alert-team .crest{position:relative;width:18px;height:18px;flex:0 0 18px;font-size:7px;font-weight:700;background:transparent}
.sc-alert-team .crest .ini{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:3px;color:#fff}
.sc-alert-team .crest .logo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:transparent;z-index:2}
.sc-alert-team .crest:has(.logo) .ini{display:none}

/* PODIO TOP 3 — figurine in stile Panini: rettangolo verticale, bordo bianco
   spesso, sfondo a sfumatura coi colori sociali del club, foto giocatore +
   strip nome in basso + numero rank vintage e crest squadra in alto. */
.sc-podium{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:8px 0 28px;justify-items:center}
.sc-podium-1{grid-template-columns:1fr;max-width:240px;margin-inline:auto}
.sc-podium-2{grid-template-columns:repeat(2,1fr);max-width:520px;margin-inline:auto}
@media (max-width:700px){.sc-podium,.sc-podium-2,.sc-podium-3{grid-template-columns:repeat(2,1fr);gap:12px}}
@media (max-width:480px){.sc-podium,.sc-podium-2,.sc-podium-3{grid-template-columns:1fr;max-width:260px;margin-inline:auto}}

/* Card singola figurina. Sfondo gradient con --c1/--c2 ereditati dal markup. */
.sc-pod{
    --c1:#1f2937; --c2:#0b1220;
    position:relative;width:100%;max-width:220px;aspect-ratio:5/7;
    background:#fff;border-radius:6px;
    box-shadow:0 2px 6px rgba(0,0,0,.10),0 10px 24px rgba(0,0,0,.10);
    padding:7px;overflow:visible;
    transition:transform .2s ease, box-shadow .2s ease
}
.sc-pod:hover{transform:translateY(-3px) rotate(-.6deg);box-shadow:0 4px 10px rgba(0,0,0,.14),0 18px 32px rgba(0,0,0,.14)}
/* Inner: l'area colorata "stampata" dentro il bordo bianco */
.sc-pod-inner{
    position:relative;width:100%;height:100%;border-radius:3px;overflow:hidden;
    background:linear-gradient(160deg, var(--c1), var(--c2));
    isolation:isolate
}
/* Pattern decorativo sottile (linee diagonali) per richiamare la stampa Panini */
.sc-pod-inner::before{
    content:"";position:absolute;inset:0;
    background:repeating-linear-gradient(135deg, rgba(255,255,255,.06) 0 2px, transparent 2px 14px);
    mix-blend-mode:overlay;pointer-events:none
}
/* Banda diagonale in alto, classico stilema Panini */
.sc-pod-inner::after{
    content:"";position:absolute;top:0;left:0;width:100%;height:36%;
    background:linear-gradient(180deg, rgba(0,0,0,.18), transparent);
    pointer-events:none
}

/* Numero rank "01 / 02 / 03" in alto a sx (etichetta vintage) */
.sc-pod[data-rank]::before{
    content:"#" attr(data-rank);
    position:absolute;top:14px;left:14px;z-index:3;
    font-weight:800;
    font-size:11px;letter-spacing:.06em;color:#fff;
    background:rgba(0,0,0,.35);padding:2px 7px;border-radius:3px;
    text-shadow:0 1px 2px rgba(0,0,0,.4)
}

/* Crest squadra in alto a dx, dentro la figurina (cliccabile → marcatori club) */
.sc-pod-crest{position:absolute;top:10px;right:10px;z-index:3;width:30px;height:30px;text-decoration:none;transition:transform .12s}
.sc-pod-crest:hover{transform:scale(1.08)}
.sc-pod-crest .crest{position:relative;width:30px;height:30px;font-size:9px;font-weight:700;background:transparent}
.sc-pod-crest .crest .ini{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:4px;color:#fff;background:rgba(255,255,255,.16) !important}
.sc-pod-crest .crest .logo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:transparent;z-index:2;filter:drop-shadow(0 1px 2px rgba(0,0,0,.35))}
.sc-pod-crest .crest:has(.logo) .ini{display:none}

/* Foto giocatore: occupa ~70% verticale, ritaglio busto */
.sc-pod-photo{
    position:absolute;left:0;right:0;top:8%;height:72%;z-index:2;
    display:flex;align-items:flex-end;justify-content:center
}
.sc-pod-photo img{
    max-width:96%;max-height:100%;object-fit:contain;object-position:center bottom;
    filter:drop-shadow(0 4px 8px rgba(0,0,0,.30))
}

/* Banda nome in basso, look strip Panini */
.sc-pod-band{
    position:absolute;left:0;right:0;bottom:0;z-index:3;
    background:linear-gradient(180deg, rgba(0,0,0,.0), rgba(0,0,0,.55) 40%, rgba(0,0,0,.85));
    padding:24px 12px 12px;color:#fff;text-align:center
}
.sc-pod-name{
    font-family:'Inter', sans-serif;font-weight:800;font-size:14px;
    letter-spacing:-.005em;line-height:1.15;color:#fff;
    text-transform:uppercase;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    text-shadow:0 1px 2px rgba(0,0,0,.4)
}
.sc-pod-club{display:none}      /* il club è già nel crest in alto */

/* Conteggio gol come "card stat" sovrapposto in basso a destra */
.sc-pod-goals{
    position:absolute;right:-6px;bottom:38px;z-index:4;
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    background:#fff;color:var(--ink);
    width:46px;height:46px;border-radius:50%;
    box-shadow:0 2px 6px rgba(0,0,0,.25);
    border:2px solid var(--c1);
    line-height:1
}
.sc-pod-g{
    font-weight:900;font-size:20px;letter-spacing:-.02em;
    letter-spacing:-.04em;color:var(--ink);
    font-variant-numeric:tabular-nums
}
.sc-pod-glbl{
    font-size:8px;text-transform:uppercase;letter-spacing:.10em;
    font-weight:700;color:var(--mute);margin-top:-2px
}

/* 1° posto: leggera inclinazione "fortuna" + accento color network sul rank */
.sc-pod-r1{transform:rotate(-1.2deg)}
.sc-pod-r1:hover{transform:translateY(-3px) rotate(-1.8deg)}
.sc-pod-r2{transform:rotate(.8deg)}
.sc-pod-r2:hover{transform:translateY(-3px) rotate(1.2deg)}
.sc-pod-r3{transform:rotate(-.6deg)}
.sc-pod-r3:hover{transform:translateY(-3px) rotate(-1.0deg)}
/* Layout 2 colonne: classifica (≈70%) + sidebar assist (≈30%) */
.lg-2col{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:24px}
.lg-main,.lg-aside{min-width:0}
@media (max-width:1100px){.lg-2col{grid-template-columns:1fr}}
/* Tabella marcatori */
.sc-tbl{width:100%;border-collapse:collapse;font-size:13px}
.sc-tbl thead th{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--mute);padding:8px 8px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
.sc-tbl thead th b{color:var(--ink);font-weight:800}
.sc-tbl thead th.sc-th-rank{width:34px;text-align:center}
.sc-tbl thead th.sc-th-num{width:64px;text-align:center}
.sc-tbl thead th.sc-th-club{width:36%}
.sc-tbl thead th.sc-th-photo{width:36px;padding:0}
.sc-photo{width:36px;padding:4px 0 4px 4px}
.sc-photo img{width:28px;height:28px;border-radius:50%;object-fit:cover;display:block;background:var(--surf2);border:1px solid var(--line)}
/* Top 3 nella tabella: nessun highlight di sfondo (il podio sopra è già evidenza
   sufficiente). Solo il numero rank in .sc-rank.top3 resta nel colore network. */
.sc-tbl tbody tr{border-bottom:1px solid var(--line);transition:background .08s}
.sc-tbl tbody tr:hover{background:var(--surf2)}
.sc-tbl tbody td{padding:7px 8px;vertical-align:middle}
.sc-rank{font-weight:700;color:var(--mute);text-align:center;font-variant-numeric:tabular-nums;font-size:13px}
.sc-rank.top3{color:var(--net-color, var(--accent));font-weight:800}
.sc-pl-name{font-weight:600;color:var(--ink);letter-spacing:-.005em}
.sc-club{display:flex;align-items:center;gap:8px}
.sc-club-link{display:flex;align-items:center;gap:8px;text-decoration:none;color:inherit;border-radius:4px;padding:1px 4px;margin:-1px -4px;transition:background .12s}
.sc-club-link:hover{background:color-mix(in srgb, var(--net-color, var(--accent)) 10%, transparent)}
.sc-club-link:hover .sc-club-name{color:var(--net-color, var(--ink));text-decoration:underline;text-underline-offset:2px}
.sc-club .crest{flex:0 0 auto;position:relative;width:20px;height:20px;font-size:8px;font-weight:700;background:transparent}
.sc-club .crest .ini{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:3px;color:#fff}
.sc-club .crest .logo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:transparent;z-index:2}
.sc-club .crest:has(.logo) .ini{display:none}
.sc-club-name{color:var(--ink-2);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sc-num{text-align:center;font-variant-numeric:tabular-nums;color:var(--ink-2);font-weight:500;font-size:13px}
.sc-num.sc-g{color:var(--ink);font-size:14px}
.sc-num.sc-g b{font-weight:800}
.sc-zero{color:var(--mute2)}
/* Variante mini per la sidebar Top assist */
.sc-tbl-mini thead{display:none}
.sc-tbl-mini tbody td{padding:6px 6px;font-size:12px}
.sc-tbl-mini .sc-rank{width:26px;font-size:12px}
.sc-tbl-mini .sc-num{width:36px}
/* Hero capocannoniere: badge più grande dentro la lg-sc-leader */
.lg-sc-leader .sc-team .crest:not(.big){position:relative;width:56px;height:56px;flex:0 0 56px;font-size:14px;font-weight:700;background:transparent}
.lg-sc-leader .sc-team .crest:not(.big) .ini{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:8px;color:#fff}
.lg-sc-leader .sc-team .crest:not(.big) .logo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:transparent;z-index:2}
.lg-sc-leader .sc-team .crest:not(.big):has(.logo) .ini{display:none}

/* ===== CRONACA LIVE PARTITA (tab #cronaca in match/show.php) ===== */
.mt-cron-block{background:var(--surf);border:1px solid var(--line);border-left:3px solid var(--net-color, var(--accent));border-radius:8px;padding:14px 18px;margin:14px 0 22px}
.mt-cron-pre{border-left-color:#2563eb}
.mt-cron-post{border-left-color:#16a34a}
.mt-cron-blk-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--mute);margin-bottom:8px}
.mt-cron-pre .mt-cron-blk-lbl{color:#1e40af}
.mt-cron-post .mt-cron-blk-lbl{color:#15803d}
.mt-cron-text{font-size:14px;line-height:1.65;color:var(--ink);font-weight:400}
/* Header tempo (Primo tempo / Secondo tempo / Suppl.) */
.mt-cron-half{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--mute);margin:24px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--line)}
.mt-cron-half:first-of-type{margin-top:14px}
.mt-cron-timeline{display:flex;flex-direction:column;gap:0}
/* Singola riga di cronaca: minuto a sx + corpo a dx */
.mt-cron-row{display:grid;grid-template-columns:60px 1fr;gap:14px;padding:10px 0;border-bottom:1px solid var(--line)}
.mt-cron-row:last-child{border-bottom:none}
.mt-cron-min{font-size:12px;font-weight:700;color:var(--net-color, var(--accent));letter-spacing:-.01em;font-variant-numeric:tabular-nums;line-height:1.5;padding-top:1px;white-space:nowrap}
.mt-cron-body{display:flex;flex-direction:column;gap:3px;min-width:0}
.mt-cron-act{display:inline-block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--mute);line-height:1.4}
.mt-cron-act b{color:var(--ink);font-weight:800;letter-spacing:-.01em;text-transform:none;font-size:12px}
.mt-cron-txt{font-size:13px;line-height:1.55;color:var(--ink);font-weight:400}
/* Highlight visuale per eventi importanti */
.mt-cron-act-goal .mt-cron-act,.mt-cron-act-penalty .mt-cron-act{color:#16a34a}
.mt-cron-act-yellowcard .mt-cron-act{color:#d97706}
.mt-cron-act-redcard .mt-cron-act{color:#dc2626}
.mt-cron-act-subentry .mt-cron-act{color:#2563eb}
.mt-cron-act-autogoal .mt-cron-act{color:#dc2626}

/* ===== PAGINA GIOCATORE (/giocatore/{id}-{seo}) — Panoramica v1 ===== */
.pl-hero{position:relative;border-radius:14px;overflow:hidden;background:linear-gradient(135deg,var(--c1) 0%,var(--c2) 100%);color:#fff;padding:24px 28px;margin-bottom:18px;min-height:140px}
.pl-hero::before{content:"";position:absolute;top:-30px;right:-40px;width:200px;height:200px;border-radius:50%;background:rgba(255,255,255,.06);pointer-events:none}
.pl-hero-inner{position:relative;z-index:1;display:flex;gap:22px;align-items:center}
.pl-hero-photo{flex:0 0 96px;width:96px;height:96px;border-radius:50%;overflow:hidden;background:rgba(255,255,255,.18);border:3px solid rgba(255,255,255,.30)}
.pl-hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
.pl-hero-meta{flex:1;min-width:0}
.pl-hero-name{font-size:32px;font-weight:800;letter-spacing:-.02em;line-height:1.1;margin:0 0 8px;color:#fff}
.pl-hero-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.pl-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:99px;background:rgba(255,255,255,.16);color:#fff;font-size:12px;font-weight:600;text-decoration:none;backdrop-filter:blur(4px)}
.pl-chip-dim{opacity:.75;font-weight:500}
.pl-chip-num{font-variant-numeric:tabular-nums;background:rgba(0,0,0,.30)}
.pl-chip-club{transition:background .12s}
.pl-chip-club:hover{background:rgba(255,255,255,.26)}
.pl-chip-club .crest{width:18px;height:18px;flex:0 0 18px}
/* Bottoni "club / lega" — stesse dimensioni, look pieno bianco solido (distinto dalle chip semi-trasparenti) */
.pl-btn{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:7px;background:#fff;color:#0b1220;font-size:11.5px;font-weight:700;text-decoration:none;transition:background .12s, transform .12s, box-shadow .12s;box-shadow:0 1px 2px rgba(0,0,0,.10)}
.pl-btn:hover{background:#f3f4f6;transform:translateY(-1px);box-shadow:0 3px 6px rgba(0,0,0,.15)}
.pl-btn .crest{width:16px;height:16px;flex:0 0 16px}
/* Pillola ruolo (palette unica giocatori) */
.pl-chip.pl-chip-role{background:#fff;color:var(--ink);font-weight:700;padding:5px 12px}
.pl-chip-role.r-gk{background:#fef3c7;color:#92400e}
.pl-chip-role.r-d {background:#dbeafe;color:#1e3a8a}
.pl-chip-role.r-m {background:#d1fae5;color:#065f46}
.pl-chip-role.r-a {background:#fee2e2;color:#991b1b}

/* Context line sotto sub-tabs */
.pl-context{font-size:12.5px;color:var(--mute);margin:10px 0 18px;letter-spacing:.02em}

/* KPI strip */
.pl-kpi{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:24px}
.pl-kpi-card{background:var(--surf);border:1px solid var(--line);border-radius:10px;padding:14px 16px;position:relative;overflow:hidden}
.pl-kpi-card::before{content:"";position:absolute;top:0;left:0;width:3px;height:100%;background:var(--net-color,var(--accent));opacity:.85}
.pl-kpi-card.pl-kpi-yellow::before{background:#eab308}
.pl-kpi-card.pl-kpi-red::before{background:#dc2626}
.pl-kpi-lbl{font-size:10.5px;text-transform:uppercase;letter-spacing:.10em;color:var(--mute);font-weight:600;margin-bottom:6px}
.pl-kpi-v{font-size:28px;font-weight:800;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1}
.pl-kpi-sub{font-size:11px;color:var(--mute);margin-top:4px;font-weight:500}
@media (max-width:780px){.pl-kpi{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Blocchi e legenda */
.pl-block{background:var(--surf);border:1px solid var(--line);border-radius:12px;padding:20px 22px;margin-bottom:18px}
.pl-h2{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.10em;color:var(--ink);margin:0 0 6px}
.pl-sub{font-size:12px;color:var(--mute);margin:0 0 14px}
.pl-leg{display:inline-block;padding:1px 6px;border-radius:4px;font-size:10px;font-weight:700;color:#fff;margin:0 2px}
.pl-leg-goal{background:#15803d}
.pl-leg-assist{background:#0ea5e9}
.pl-leg-yellow{background:#eab308}
.pl-leg-red{background:#dc2626}
.pl-leg-bench{background:var(--mute2);color:#fff}

/* Heatmap stagione (un quadrato per partita) — andata/ritorno split */
.pl-heat-leg{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.10em;color:var(--mute);margin:8px 0 8px;padding-bottom:6px;border-bottom:1px solid var(--line)}
.pl-heat-leg:first-of-type{margin-top:4px}
.pl-heat-leg-meta{font-weight:500;letter-spacing:0;text-transform:none;color:var(--mute2);margin-left:6px;font-size:11px}
.pl-heat{display:grid;grid-template-columns:repeat(auto-fill,minmax(46px,1fr));gap:5px;margin-bottom:12px}
.pl-heat:last-child{margin-bottom:0}
.pl-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;aspect-ratio:1;border-radius:6px;text-decoration:none;font-size:10px;font-weight:700;border:1px solid var(--line);transition:transform .1s ease, box-shadow .1s ease;color:var(--ink-2)}
.pl-cell:hover{transform:scale(1.06);box-shadow:0 4px 10px rgba(0,0,0,.10);z-index:2;position:relative}
.pl-cell-turn{font-size:9px;font-weight:500;opacity:.75;letter-spacing:-.02em}
.pl-cell-mark{font-size:14px;font-weight:800;letter-spacing:-.02em;line-height:1}
.pl-cell-goal{background:#15803d;border-color:#166534;color:#fff}
.pl-cell-goal .pl-cell-turn{color:rgba(255,255,255,.85)}
.pl-cell-assist{background:#0ea5e9;border-color:#0284c7;color:#fff}
.pl-cell-assist .pl-cell-turn{color:rgba(255,255,255,.85)}
.pl-cell-yellow{background:#fde68a;border-color:#ca8a04;color:#713f12}
.pl-cell-red{background:#fee2e2;border-color:#dc2626;color:#991b1b}
.pl-cell-present{background:var(--surf2);border-color:var(--line);color:var(--mute2)}
.pl-cell-bench{background:var(--surf);border-color:var(--line);color:var(--mute2);opacity:.55}
.pl-cell-up{background:var(--surf);border:1px dashed var(--line2);color:var(--mute2)}

/* Carriera — colonne fisse per allineamento perfetto fra le righe */
.pl-career{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surf)}
.pl-career-row{display:grid;grid-template-columns:84px 200px 1fr 360px;gap:14px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line);font-size:13px;transition:background .12s}
.pl-career-row:last-child{border-bottom:none}
.pl-career-row:nth-child(even){background:var(--surf2)}
.pl-career-row:hover{background:color-mix(in srgb,var(--net-color,var(--accent)) 5%,var(--surf))}
.pl-career-y{font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;font-size:14px;letter-spacing:-.01em}
.pl-career-club{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--ink);font-weight:600;min-width:0}
.pl-career-club:hover .pl-career-name{color:var(--net-color,var(--accent))}
.pl-career-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-career-league{font-size:12px;color:var(--mute);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Stats: 5 colonne fisse per colonne sempre allineate verticalmente */
.pl-career-stats{display:grid;grid-template-columns:64px 64px 72px 40px 40px;gap:8px;font-size:12px;color:var(--ink-2);align-items:center;justify-self:end}
.pl-career-stats .pl-st{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.pl-career-stats .pl-st b{color:var(--ink);font-weight:800;margin-right:2px}
.pl-st-y{background:#fde68a;color:#713f12;padding:2px 7px;border-radius:4px;font-weight:700;font-size:10.5px}
.pl-st-r{background:#fee2e2;color:#991b1b;padding:2px 7px;border-radius:4px;font-weight:700;font-size:10.5px}

@media (max-width:780px){
    .pl-hero-inner{flex-direction:column;text-align:center}
    .pl-hero-name{font-size:24px}
    .pl-career-row{grid-template-columns:64px 1fr;gap:8px}
    .pl-career-league,.pl-career-stats{grid-column:2}
}

/* ===== PAGINA GIOCATORE / Statistiche dettagliate (v1.1) ===== */
.ps-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:18px}
.ps-sum-card{background:var(--surf);border:1px solid var(--line);border-radius:10px;padding:16px 18px;position:relative;overflow:hidden}
.ps-sum-card::before{content:"";position:absolute;top:0;left:0;width:3px;height:100%;background:var(--net-color,var(--accent));opacity:.85}
.ps-sum-num{font-size:32px;font-weight:800;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1;margin-bottom:6px}
.ps-sum-lbl{font-size:11px;text-transform:uppercase;letter-spacing:.10em;color:var(--mute);font-weight:600;margin-bottom:4px}
.ps-sum-sub{font-size:11.5px;color:var(--mute);font-weight:500}
@media (max-width:780px){.ps-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}

.ps-block{background:var(--surf);border:1px solid var(--line);border-radius:12px;padding:20px 22px;margin-bottom:18px}
.ps-h2{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.10em;color:var(--ink);margin:0 0 6px}
.ps-sub{font-size:12px;color:var(--mute);margin:0 0 14px}

/* Distribuzione gol — 3 card affiancate con bar chart */
.ps-dist{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.ps-dist-card{background:var(--surf2);border:1px solid var(--line);border-radius:10px;padding:14px 16px}
.ps-dist-h3{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--mute);margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.ps-bars{display:flex;flex-direction:column;gap:9px}
.ps-bar-row{display:grid;grid-template-columns:1fr 80px 28px;gap:8px;align-items:center}
.ps-bar-lbl{font-size:12px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ps-bar-track{position:relative;height:8px;background:var(--surf);border-radius:99px;overflow:hidden}
.ps-bar-fill{position:absolute;top:0;left:0;height:100%;background:linear-gradient(90deg,var(--net-color,var(--accent)),color-mix(in srgb,var(--net-color,var(--accent)) 60%,#fff));border-radius:99px;transition:width .3s ease}
.ps-bar-v{font-size:12.5px;font-weight:800;color:var(--ink);text-align:right;font-variant-numeric:tabular-nums}
@media (max-width:780px){.ps-dist{grid-template-columns:1fr}}

/* Diario eventi — tabella cronologica */
.ps-events{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surf)}
.ps-event-row{display:grid;grid-template-columns:90px 1fr 50px 150px;gap:12px;align-items:center;padding:9px 14px;border-bottom:1px solid var(--line);font-size:12.5px;color:var(--ink-2);text-decoration:none;transition:background .12s}
.ps-event-row:last-child{border-bottom:none}
.ps-event-row:nth-child(even){background:var(--surf2)}
.ps-event-row:hover{background:color-mix(in srgb,var(--net-color,var(--accent)) 5%,var(--surf))}
.ps-event-date{font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;font-size:11.5px;letter-spacing:-.01em}
.ps-event-match{color:var(--ink);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ps-event-min{font-weight:700;font-variant-numeric:tabular-nums;color:var(--mute);text-align:right}
.ps-event-act{font-weight:700;font-size:11.5px;letter-spacing:.04em;text-align:right}
/* Colori per tipo evento */
.ps-event-row.ps-ev-goal .ps-event-act{color:#15803d}
.ps-event-row.ps-ev-assist .ps-event-act{color:#0ea5e9}
.ps-event-row.ps-ev-y .ps-event-act{color:#a16207}
.ps-event-row.ps-ev-r .ps-event-act{color:#dc2626}
.ps-event-row.ps-ev-own .ps-event-act{color:#dc2626}
.ps-event-row.ps-ev-pen-miss .ps-event-act{color:#a16207}
@media (max-width:780px){
    .ps-event-row{grid-template-columns:70px 1fr 40px;gap:8px}
    .ps-event-act{grid-column:1/-1;text-align:left;padding-left:78px}
}

/* ===== PAGINA GIOCATORE / Carriera completa (v1.1 step 2) ===== */
.pc-totals{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:18px}
.pc-total-card{background:var(--surf);border:1px solid var(--line);border-radius:10px;padding:16px 18px;position:relative;overflow:hidden}
.pc-total-card::before{content:"";position:absolute;top:0;left:0;width:3px;height:100%;background:var(--net-color,var(--accent));opacity:.85}
.pc-total-card.pc-total-trophies::before{background:#ca8a04}
.pc-total-num{font-size:30px;font-weight:800;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1;margin-bottom:6px}
.pc-total-lbl{font-size:11px;text-transform:uppercase;letter-spacing:.10em;color:var(--mute);font-weight:600}
.pc-total-sub{font-weight:500;text-transform:none;letter-spacing:0;color:var(--mute2)}
@media (max-width:900px){.pc-totals{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:520px){.pc-totals{grid-template-columns:repeat(2,minmax(0,1fr))}}

.pc-block{background:var(--surf);border:1px solid var(--line);border-radius:12px;padding:20px 22px;margin-bottom:18px}
.pc-h2{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.10em;color:var(--ink);margin:0 0 14px}

/* Palmares: lista trofei aggregata */
.pc-palm{display:flex;flex-direction:column;gap:6px}
.pc-palm-row{display:grid;grid-template-columns:22px 36px 1fr 2fr;gap:10px;align-items:center;padding:8px 10px;background:var(--surf2);border-radius:6px;font-size:13px}
.pc-palm-ico{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px}
.pc-palm-ico .svg-icon{width:22px;height:22px;color:#ca8a04}
.pc-palm-count{font-size:16px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
.pc-palm-name{font-weight:700;color:var(--ink)}
.pc-palm-years{font-size:11.5px;color:var(--mute);text-align:right;font-variant-numeric:tabular-nums}

/* Per competizione: aggregato league name */
.pc-leagues{display:flex;flex-direction:column}
.pc-league-row{display:flex;justify-content:space-between;align-items:center;padding:9px 10px;border-bottom:1px solid var(--line);font-size:13px}
.pc-league-row:last-child{border-bottom:none}
.pc-league-row:hover{background:var(--surf2)}
.pc-league-name{font-weight:700;color:var(--ink)}
.pc-league-stats{font-size:12.5px;color:var(--ink-2)}
.pc-league-stats b{font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums;margin-right:2px}

/* Tabella stagioni in dettaglio (zebra + 6 colonne + opzionale trofei row) */
.pc-table{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surf)}
.pc-row{display:grid;grid-template-columns:80px 180px 1fr 90px 130px auto;gap:14px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line);font-size:13px;transition:background .12s}
.pc-row:last-child{border-bottom:none}
.pc-row:nth-child(even){background:var(--surf2)}
.pc-row:hover{background:color-mix(in srgb,var(--net-color,var(--accent)) 5%,var(--surf))}
.pc-row.is-champ{background:linear-gradient(135deg, #fef9c3 0%, #fde68a 100%);border-left:3px solid #ca8a04}
.pc-row.is-champ:nth-child(even){background:linear-gradient(135deg, #fef9c3 0%, #fde68a 100%)}
.pc-row-y{font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;font-size:14px;letter-spacing:-.01em}
.pc-row-club{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--ink);font-weight:600;min-width:0}
.pc-row-club:hover .pc-row-cname{color:var(--net-color,var(--accent))}
.pc-row-cname{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pc-row-league{font-size:12px;color:var(--mute);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none}
.pc-row-league:hover{color:var(--net-color,var(--accent));text-decoration:underline;text-underline-offset:3px}
.pc-row-pos{display:flex;align-items:baseline;gap:5px;font-variant-numeric:tabular-nums;font-size:12px}
.pc-pos-n{font-size:16px;font-weight:800;color:var(--ink);letter-spacing:-.02em}
.pc-pos-tot{color:var(--mute2)}
.pc-row-range{font-size:11px}
.pc-range{display:inline-block;padding:3px 8px;border-radius:99px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:9.5px;white-space:nowrap;max-width:130px;overflow:hidden;text-overflow:ellipsis}
.pc-row-stats{display:grid;grid-template-columns:56px 56px 64px 36px 36px;gap:6px;font-size:12px;color:var(--ink-2);justify-self:end}
.pc-row-stats .pc-st{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.pc-row-stats .pc-st b{color:var(--ink);font-weight:800;margin-right:2px}
.pc-row-stats .pc-st-y,.pc-row-stats .pc-st-r{text-align:right}
.pc-row-trophies{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:6px;padding-top:8px;margin-top:8px;border-top:1px dashed rgba(202,138,4,.30)}
.pc-row-trophy{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;background:rgba(255,255,255,.55);border:1px solid #ca8a04;border-radius:6px;font-size:11.5px;font-weight:700;color:#713f12}
.pc-row-trophy .svg-icon{width:14px;height:14px;color:#7c2d12}

@media (max-width:900px){
    .pc-row{grid-template-columns:64px 1fr;gap:8px}
    .pc-row-league,.pc-row-pos,.pc-row-range,.pc-row-stats{grid-column:2}
    .pc-row-stats{justify-self:start;grid-template-columns:repeat(5,minmax(0,1fr))}
}

/* ---------- 404 desktop ---------- */
.err-404{padding:32px 0 24px;max-width:720px}
.err-404-big{font-size:140px;font-weight:900;line-height:.9;letter-spacing:-.06em;color:var(--net-color,var(--accent));margin:0 0 8px;font-variant-numeric:tabular-nums;background:linear-gradient(135deg,var(--net-color,var(--accent)),color-mix(in srgb,var(--net-color,var(--accent)) 55%,#000));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.err-404-title{font-size:30px;font-weight:800;letter-spacing:-.025em;color:var(--ink);margin:0 0 10px;line-height:1.15}
.err-404-sub{font-size:14.5px;color:var(--mute);line-height:1.55;margin:0 0 22px;max-width:560px}
.err-404-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 36px}
.err-404-actions .np-btn{padding:7px 14px;font-size:13px}
.err-404-actions .np-btn-primary{background:var(--net-color,var(--accent));color:#fff;border-color:var(--net-color,var(--accent));font-weight:700}
.err-404-actions .np-btn-primary:hover{filter:brightness(.94)}

.err-404-news{margin:0 0 24px;max-width:960px}
.err-404-news-h{font-size:14px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--mute);margin:0 0 12px}
.err-404-news-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.err-404-news-card{display:grid;grid-template-columns:100px 1fr;gap:12px;padding:10px;background:var(--surf);border:1px solid var(--line);border-radius:10px;text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s,transform .15s}
.err-404-news-card:hover{border-color:var(--net-color,var(--accent));box-shadow:0 4px 14px rgba(0,0,0,.05);transform:translateY(-1px)}
.err-404-news-thumb{display:block;width:100px;height:75px;border-radius:6px;overflow:hidden;background:var(--surf2);flex:0 0 100px;aspect-ratio:4/3}
.err-404-news-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.err-404-news-thumb.no-img{background:linear-gradient(135deg,var(--surf2),var(--line))}
.err-404-news-thumb.no-img img{display:none}
.err-404-news-body{display:flex;flex-direction:column;justify-content:center;min-width:0;gap:5px}
.err-404-news-title{font-size:13.5px;font-weight:700;color:var(--ink);line-height:1.35;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;letter-spacing:-.005em}
.err-404-news-meta{font-size:11px;color:var(--mute);font-weight:500;letter-spacing:.005em}
.err-404-news-meta b{color:var(--net-color,var(--accent));font-weight:700}

@media (max-width:600px){
    .err-404-big{font-size:100px}
    .err-404-title{font-size:24px}
}

/* =================================================================
   Autenticazione: avatar topbar (loggato), pagina /accedi, /profilo
   ================================================================= */

/* --- Topbar: stato loggato --- */
.topbar-user-btn .caret{font-size:9px;opacity:.55;color:var(--ink)}
.topbar-user.is-auth .topbar-user-lbl{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tu-avatar{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--net-color,#10b981);color:#fff;font-size:9.5px;font-weight:800;letter-spacing:-.02em;flex:0 0 20px}
.tum-soon{color:var(--mute2);cursor:not-allowed}
.tum-soon:hover{background:transparent}
.tum-logout{margin-top:6px;border-top:1px solid var(--line);border-radius:0 0 6px 6px;color:var(--red);font-weight:600}

/* --- Pagina /accedi --- */
.auth-wrap{display:flex;justify-content:center;padding:36px 0 24px}
.auth-card{width:100%;max-width:400px;background:var(--surf);border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 28px rgba(0,0,0,.06);padding:30px 28px}
.auth-head{margin-bottom:20px}
.auth-title{font-size:22px;font-weight:800;letter-spacing:-.02em;color:var(--ink)}
.auth-sub{font-size:13px;color:var(--mute);margin-top:6px;line-height:1.5}
.auth-alert{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;font-size:12.5px;font-weight:500;padding:9px 12px;border-radius:8px;margin-bottom:16px}
.auth-form{display:flex;flex-direction:column;gap:14px}
.auth-field{display:flex;flex-direction:column;gap:6px}
.auth-label{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--mute)}
.auth-field input{padding:10px 12px;font-size:14px;font-family:inherit;color:var(--ink);background:#fff;border:1px solid var(--line2);border-radius:8px;transition:border-color .12s,box-shadow .12s}
.auth-field input:focus{outline:none;border-color:var(--net-color,#10b981);box-shadow:0 0 0 3px color-mix(in srgb,var(--net-color,#10b981) 18%,transparent)}
.auth-btn{margin-top:4px;padding:11px 16px;font-size:14px;font-weight:700;font-family:inherit;color:#fff;background:var(--net-color,#10b981);border:none;border-radius:8px;cursor:pointer;transition:filter .12s,transform .12s}
.auth-btn:hover{filter:brightness(.94);transform:translateY(-1px)}
.auth-foot{margin-top:20px;padding-top:16px;border-top:1px solid var(--line);font-size:12.5px;color:var(--mute);display:flex;gap:6px;align-items:center;justify-content:center}
.auth-foot-soon{color:var(--mute2);cursor:not-allowed}

/* --- Pagina /profilo --- */
.pr-hero{display:flex;align-items:center;gap:20px;padding:28px 30px;background:linear-gradient(135deg,var(--c) 0%,color-mix(in srgb,var(--c) 60%,#000) 100%);border-radius:18px;color:#fff;position:relative;overflow:hidden;margin-bottom:24px;box-shadow:0 10px 30px color-mix(in srgb,var(--c) 28%,transparent)}
.pr-hero::before{content:"";position:absolute;top:-50px;right:-30px;width:220px;height:220px;border-radius:50%;background:rgba(255,255,255,.09);pointer-events:none}
.pr-hero::after{content:"";position:absolute;bottom:-70px;right:120px;width:160px;height:160px;border-radius:50%;background:rgba(255,255,255,.06);pointer-events:none}
.pr-avatar{flex:0 0 86px;width:86px;height:86px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:31px;font-weight:800;letter-spacing:-.02em;background:rgba(255,255,255,.16);border:2px solid rgba(255,255,255,.55);box-shadow:0 4px 16px rgba(0,0,0,.20);position:relative;z-index:1}
.pr-hero-body{flex:1;min-width:0;position:relative;z-index:1}
.pr-name{font-size:27px;font-weight:900;letter-spacing:-.025em;line-height:1.1}
.pr-handle{font-size:13px;opacity:.85;margin-top:3px}
.pr-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.pr-badge{font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:3px 10px;border-radius:99px;background:rgba(255,255,255,.20);color:#fff}
.pr-badge-type{background:#fff;color:var(--c)}
.pr-logout{align-self:flex-start;font-size:12px;font-weight:700;color:#fff;background:rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.35);padding:7px 15px;border-radius:8px;transition:background .12s;position:relative;z-index:1}
.pr-logout:hover{background:rgba(0,0,0,.4)}
.pr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.pr-card{background:var(--surf);border:1px solid var(--line);border-radius:14px;padding:18px 20px;transition:border-color .12s,box-shadow .12s}
.pr-card:hover{border-color:var(--line2);box-shadow:0 4px 16px rgba(0,0,0,.05)}
.pr-card-h{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);margin-bottom:12px;display:flex;align-items:center;gap:7px}
.pr-card-h::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--net-color,#10b981);flex:0 0 8px}
.pr-row{display:flex;justify-content:space-between;gap:14px;padding:8px 0;border-bottom:1px dashed var(--line)}
.pr-row:last-child{border-bottom:none}
.pr-row-l{font-size:11.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--mute);flex:0 0 auto}
.pr-row-v{font-size:13.5px;color:var(--ink);text-align:right;word-break:break-word}
.pr-note{margin-top:22px;font-size:12.5px;color:var(--mute);background:var(--surf2);border:1px solid var(--line);border-radius:10px;padding:12px 16px;line-height:1.55}

/* --- Profilo: squadre gestite (Team Manager) --- */
.pr-clubs{margin-bottom:24px}
.pr-clubs-h{font-size:14px;font-weight:800;letter-spacing:.01em;color:var(--ink);display:flex;align-items:center;gap:8px}
.pr-clubs-h::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--net-color,#10b981);flex:0 0 9px}
.pr-clubs-n{font-size:11px;font-weight:700;color:var(--mute);background:var(--surf2);border:1px solid var(--line);border-radius:99px;padding:1px 9px}
.pr-clubs-sub{font-size:12.5px;color:var(--mute);margin:4px 0 12px}
.pr-clubs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.pr-club{display:flex;align-items:center;gap:13px;padding:14px;background:var(--surf);border:1px solid var(--line);border-radius:14px;color:var(--ink);transition:border-color .12s,box-shadow .12s,transform .12s}
a.pr-club:hover{border-color:var(--net-color,#10b981);box-shadow:0 6px 18px rgba(0,0,0,.07);transform:translateY(-2px)}
.pr-club-crest{position:relative;width:42px;height:42px;flex:0 0 42px;border-radius:9px;overflow:hidden;background:var(--surf2);border:1px solid var(--line)}
.pr-club-crest .ini{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;border-radius:9px}
.pr-club-crest .logo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:3px;z-index:2}
.pr-club-crest:has(.logo) .ini{display:none}
.pr-club-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.pr-club-name{font-size:14.5px;font-weight:700;color:var(--ink);line-height:1.25;white-space:normal;overflow-wrap:anywhere}
.pr-club-action{font-size:12px;font-weight:600;color:var(--net-color,#10b981);display:inline-flex;align-items:center;gap:5px}
.pr-club-arrow{transition:transform .12s}
a.pr-club:hover .pr-club-arrow{transform:translateX(3px)}
.pr-club-muted{color:var(--mute2)}
.pr-club.is-inactive{opacity:.72;background:var(--surf2)}

/* =================================================================
   Gestione squadra (area Team Manager) — namespace .tm-
   ================================================================= */
.tm-top{margin-bottom:14px}
.tm-back{font-size:13px;font-weight:600;color:var(--mute)}
.tm-back:hover{color:var(--net-color,#10b981)}

.tm-hero{display:flex;align-items:center;gap:16px;padding:20px 24px;background:linear-gradient(135deg,var(--c) 0%,color-mix(in srgb,var(--c) 70%,#000) 100%);border-radius:16px;color:#fff;margin-bottom:16px}
.tm-crest{position:relative;width:56px;height:56px;flex:0 0 56px;border-radius:10px;overflow:hidden;background:#fff;border:1px solid rgba(255,255,255,.5)}
.tm-crest .ini{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:800;border-radius:10px}
.tm-crest .logo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:6px;z-index:2}
.tm-crest:has(.logo) .ini{display:none}
.tm-hero-body{flex:1;min-width:0}
.tm-hero-eyebrow{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;opacity:.85;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.tm-reserved{display:inline-flex;align-items:center;gap:4px;background:#fde68a;color:#713f12;font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:2px 9px;border-radius:99px;opacity:1;box-shadow:0 1px 2px rgba(0,0,0,.12);white-space:nowrap}
.tm-tabs-reserved{margin-left:auto;align-self:center}
.tm-hero-name{font-size:24px;font-weight:900;letter-spacing:-.025em;line-height:1.1;margin-top:2px}
.tm-hero-sub{font-size:12.5px;opacity:.9;margin-top:4px}
.tm-viewpub{align-self:flex-start;font-size:12px;font-weight:600;color:#fff;background:rgba(0,0,0,.2);border:1px solid rgba(255,255,255,.3);padding:6px 12px;border-radius:8px;transition:background .12s}
.tm-viewpub:hover{background:rgba(0,0,0,.35)}

.tm-preview{display:flex;align-items:center;gap:10px;background:#fff8eb;border:1px solid #fcd9a8;color:#92500e;font-size:12.5px;padding:10px 14px;border-radius:10px;margin-bottom:16px;line-height:1.45}
.tm-preview-ic{color:#f59e0b;font-size:11px;animation:pulse 2s infinite}

/* Aggiungi giocatore */
.tm-add{background:var(--surf);border:1px solid var(--line);border-radius:12px;margin-bottom:16px;overflow:hidden}
.tm-add-toggle{cursor:pointer;list-style:none;padding:12px 16px;font-size:13.5px;font-weight:700;color:var(--net-color,#10b981)}
.tm-add-toggle::-webkit-details-marker{display:none}
.tm-add[open] .tm-add-toggle{border-bottom:1px solid var(--line)}
.tm-add-body{padding:16px}
.tm-add-grid{display:grid;grid-template-columns:90px 1fr 1fr 160px;gap:12px}
.tm-fld{display:flex;flex-direction:column;gap:5px}
.tm-fld>span{font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--mute)}
.tm-fld input,.tm-fld select{padding:9px 11px;font-size:13.5px;font-family:inherit;color:var(--ink);background:#fff;border:1px solid var(--line2);border-radius:8px}
.tm-fld input:focus,.tm-fld select:focus{outline:none;border-color:var(--net-color,#10b981);box-shadow:0 0 0 3px color-mix(in srgb,var(--net-color,#10b981) 16%,transparent)}
.tm-add-actions{display:flex;align-items:center;gap:12px;margin-top:14px}
.tm-add-note{font-size:11.5px;color:var(--mute);font-style:italic}

.tm-btn{font-family:inherit;font-size:13px;font-weight:700;padding:9px 16px;border-radius:8px;border:1px solid transparent;cursor:pointer}
.tm-btn-primary{background:var(--net-color,#10b981);color:#fff}
.tm-btn-primary:disabled{opacity:.5;cursor:not-allowed}

/* Tabella rosa */
.tm-roster{background:var(--surf);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.tm-roster-head,.tm-row{display:grid;grid-template-columns:40px 40px 1fr 150px 80px 190px;align-items:center;gap:10px;padding:8px 16px}
.tm-c-photo{display:flex;align-items:center}
.tm-c-photo img{width:32px;height:32px;border-radius:6px;object-fit:cover;object-position:center top;background:var(--surf2);border:1px solid var(--line)}
.tm-roster-head{background:var(--surf2);border-bottom:1px solid var(--line);font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--mute)}
.tm-row{border-bottom:1px solid var(--line)}
.tm-row:last-child{border-bottom:none}
.tm-row:hover{background:var(--surf2)}
.tm-c-num{font-size:15px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--ink)}
.tm-c-name{font-size:14px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tm-c-year{font-size:13px;color:var(--mute);font-variant-numeric:tabular-nums}
.tm-role-pill{font-size:10.5px;font-weight:700;padding:2px 9px;border-radius:99px;background:var(--surf2);border:1px solid var(--line);color:var(--ink-2)}
.tm-role-pill.r-gk{background:#fef3c7;border-color:#fde68a;color:#92500e}
.tm-role-pill.r-d{background:#dbeafe;border-color:#bfdbfe;color:#1e40af}
.tm-role-pill.r-m{background:#dcfce7;border-color:#bbf7d0;color:#166534}
.tm-role-pill.r-a{background:#fee2e2;border-color:#fecaca;color:#991b1b}
.tm-c-act{display:flex;gap:6px;justify-content:flex-end}
.tm-act{font-family:inherit;font-size:12px;font-weight:600;padding:5px 11px;border-radius:7px;border:1px solid var(--line2);background:#fff;color:var(--ink-2);cursor:pointer}
.tm-act:disabled{opacity:.55;cursor:not-allowed}
.tm-act-danger{color:var(--red);border-color:#fca5a5}
.tm-empty{padding:24px 16px;text-align:center;color:var(--mute);font-size:13px}

.tm-denied{background:var(--surf);border:1px solid var(--line);border-radius:14px;padding:32px 28px;max-width:520px}
.tm-denied-h{font-size:20px;font-weight:800;color:var(--ink)}
.tm-denied-p{font-size:13.5px;color:var(--mute);line-height:1.6;margin:10px 0 18px}

@media(max-width:760px){
    .tm-add-grid{grid-template-columns:1fr 1fr}
    .tm-roster-head{display:none}
    .tm-row{grid-template-columns:34px 40px 1fr;grid-template-areas:"num photo name" "act act act";row-gap:8px}
    .tm-c-role,.tm-c-year{display:none}
    .tm-c-num{grid-area:num}.tm-c-photo{grid-area:photo}.tm-c-name{grid-area:name}.tm-c-act{grid-area:act;justify-content:flex-start}
}

/* --- Gestione squadra: flash + righe espandibili (Modifica/Svincola) --- */
.tm-flash{font-size:13px;font-weight:600;padding:10px 14px;border-radius:10px;margin-bottom:16px;border:1px solid}
.tm-flash-ok{background:#ecfdf5;border-color:#a7f3d0;color:#065f46}
.tm-flash-err{background:#fef2f2;border-color:#fecaca;color:#b91c1c}

.tm-player{border-bottom:1px solid var(--line)}
.tm-player:last-child{border-bottom:none}
.tm-player>summary{list-style:none;cursor:pointer}
.tm-player>summary::-webkit-details-marker{display:none}
.tm-player>summary:hover{background:var(--surf2)}
.tm-player[open]>summary{background:var(--surf2)}
.tm-edit-hint{font-size:11.5px;font-weight:700;color:var(--mute)}
.tm-player[open] .tm-edit-hint{color:var(--net-color,#10b981)}

.tm-edit{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px;padding:14px 16px;background:var(--surf2);border-top:1px solid var(--line)}
.tm-edit-form{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}
.tm-edit-form .tm-fld-num{width:84px}
.tm-rel-form{margin-left:auto}
.tm-btn-danger{background:#fff;color:var(--red);border-color:#fca5a5}
.tm-btn-danger:hover{background:#fef2f2}

/* --- Gestione squadra: ricerca + risultati "Aggiungi giocatore" --- */
.tm-search-box .tm-search-input{width:100%;max-width:380px;padding:9px 12px;font-size:14px;font-family:inherit;color:var(--ink);background:#fff;border:1px solid var(--line2);border-radius:8px}
.tm-search-box .tm-search-input:focus{outline:none;border-color:var(--net-color,#10b981);box-shadow:0 0 0 3px color-mix(in srgb,var(--net-color,#10b981) 16%,transparent)}
.tm-search-results{margin-top:10px;border:1px solid var(--line);border-radius:10px;overflow:hidden;max-height:360px;overflow-y:auto}
.tm-search-results:empty{border:none}
.tm-res{display:flex;align-items:center;gap:10px;padding:5px 10px;border-bottom:1px solid var(--line)}
.tm-res:last-child{border-bottom:none}
.tm-res:hover{background:var(--surf2)}
.tm-res-info{flex:1;min-width:0;display:flex;align-items:baseline;gap:7px;flex-wrap:wrap}
.tm-res-name{font-size:13px;font-weight:700;color:var(--ink);white-space:nowrap}
.tm-res-meta{font-size:11.5px;color:var(--mute);display:flex;align-items:center;gap:3px;flex-wrap:wrap;min-width:0}
.tm-res-meta .tm-role-pill{padding:1px 7px;font-size:9.5px}
.tm-res-add{flex:0 0 auto;padding:4px 12px;font-size:12px;border-radius:7px}
.tm-res-msg{font-size:12.5px;color:var(--mute);padding:7px 10px;font-style:italic}

/* --- Gestione squadra: Svincola rapido in colonna Azioni --- */
.tm-c-act{align-items:center}
.tm-quick-rel{font-family:inherit;font-size:11.5px;font-weight:700;padding:4px 11px;border-radius:7px;border:1px solid #fca5a5;background:#fff;color:var(--red);cursor:pointer;transition:background .12s}
.tm-quick-rel:hover{background:#fef2f2}

/* --- Gestione squadra: sub-tabs Rosa/Staff + sezioni + staff --- */
.tm-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:16px}
.tm-tab{padding:9px 16px;font-size:13.5px;font-weight:700;color:var(--mute);border-bottom:2px solid transparent;margin-bottom:-1px}
.tm-tab:hover{color:var(--ink)}
.tm-tab.on{color:var(--net-color,#10b981);border-bottom-color:var(--net-color,#10b981)}
.tm-sect-head{display:flex;align-items:baseline;gap:10px;margin-bottom:12px}
.tm-sect-title{font-size:16px;font-weight:800;letter-spacing:-.01em;color:var(--ink)}
.tm-sect-count{font-size:11.5px;font-weight:700;color:var(--mute);background:var(--surf2);border:1px solid var(--line);border-radius:99px;padding:1px 9px}
.tm-staff-group{margin-bottom:18px}
.tm-staff-gh{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);margin-bottom:6px}
.tm-staff-gn{font-size:10.5px;font-weight:700;color:var(--mute);background:var(--surf2);border:1px solid var(--line);border-radius:99px;padding:0 7px}
.tm-srow{display:grid;grid-template-columns:1fr auto 64px auto;align-items:center;gap:10px;padding:9px 14px}
.tm-s-name{font-size:14px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tm-s-year{font-size:13px;color:var(--mute);font-variant-numeric:tabular-nums;text-align:right}
.tm-s-act{display:flex;gap:8px;align-items:center;justify-content:flex-end}
.tm-role-pill.tm-srole-tech{background:#dbeafe;border-color:#bfdbfe;color:#1e40af}
.tm-role-pill.tm-srole-fit{background:#dcfce7;border-color:#bbf7d0;color:#166534}
.tm-role-pill.tm-srole-med{background:#fee2e2;border-color:#fecaca;color:#991b1b}
.tm-role-pill.tm-srole-pres{background:#fef3c7;border-color:#fde68a;color:#92400e}
.tm-role-pill.tm-srole-sport{background:#e0e7ff;border-color:#c7d2fe;color:#3730a3}
.tm-role-pill.tm-srole-adm{background:#f3e8ff;border-color:#e9d5ff;color:#6b21a8}
.tm-res-role{padding:5px 8px;font-size:12px;font-family:inherit;border:1px solid var(--line2);border-radius:7px;background:#fff;color:var(--ink);max-width:170px}
.tm-res-addform{display:flex;align-items:center;gap:8px;flex:0 0 auto}
@media(max-width:760px){.tm-srow{grid-template-columns:1fr auto auto}.tm-s-year{display:none}}

/* --- Gestione squadra: form Dati società --- */
.tm-form{display:flex;flex-direction:column;gap:14px}
.tm-form-section{background:var(--surf);border:1px solid var(--line);border-radius:12px;padding:16px 18px}
.tm-form-h{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);margin-bottom:12px}
.tm-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.tm-form .tm-fld input{padding:9px 11px;font-size:13.5px;font-family:inherit;color:var(--ink);background:#fff;border:1px solid var(--line2);border-radius:8px;width:100%}
.tm-form .tm-fld input:focus{outline:none;border-color:var(--net-color,#10b981);box-shadow:0 0 0 3px color-mix(in srgb,var(--net-color,#10b981) 16%,transparent)}
.tm-form-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding-top:2px}
.tm-form-actions .tm-btn-primary{padding:10px 20px}

/* --- Dati società: campo in sola lettura (es. Denominazione) --- */
.tm-ro-val{padding:9px 11px;font-size:13.5px;font-weight:600;color:var(--ink-2);background:var(--surf2);border:1px dashed var(--line2);border-radius:8px}
.tm-ro-lock{font-size:9.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--mute2);margin-left:4px}

/* --- Dati società: checkbox orario federale + select giorno --- */
.tm-check{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--ink);cursor:pointer}
.tm-check input{width:16px;height:16px;accent-color:var(--net-color,#10b981);cursor:pointer}
.tm-form .tm-fld select{padding:9px 11px;font-size:13.5px;font-family:inherit;color:var(--ink);background:#fff;border:1px solid var(--line2);border-radius:8px;width:100%}
.tm-form .tm-fld select:disabled,.tm-form .tm-fld input:disabled{background:var(--surf2);color:var(--mute2);cursor:not-allowed}

/* --- Dati società: colori sociali (scudetto/maglie read-only + colori) --- */
.tm-emblems{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-start}
.tm-emblem{display:flex;flex-direction:column;align-items:center;gap:8px;width:90px}
/* min-height = 2 righe: così i riquadri restano allineati anche se l'etichetta
   va a capo (es. "Seconda maglia", "Scudetto non modificabile"). */
.tm-emblem-lbl{font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--mute);text-align:center;line-height:1.3;min-height:2.6em;display:flex;align-items:flex-start;justify-content:center;gap:3px;flex-wrap:wrap}
.tm-emblem-img{width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;padding:4px}
.tm-emblem-img img{max-width:100%;max-height:100%;object-fit:contain}
.tm-emblem-none{color:var(--mute2);font-size:18px}
.tm-color-row{display:flex;align-items:center;gap:8px}
.tm-color-pick{width:48px;height:48px;flex:0 0 48px;padding:0;border:1px solid var(--line2);border-radius:8px;background:#fff;cursor:pointer;transition:border-color .12s,box-shadow .12s}
.tm-color-pick:hover{border-color:var(--net-color,#10b981);box-shadow:0 0 0 3px color-mix(in srgb,var(--net-color,#10b981) 14%,transparent)}
.tm-color-pick::-webkit-color-swatch-wrapper{padding:3px}
.tm-color-pick::-webkit-color-swatch{border:none;border-radius:5px}
.tm-color-pick::-moz-color-swatch{border:none;border-radius:5px}
.tm-color-input{flex:1;min-width:0;padding:9px 11px;font-size:13.5px;font-family:inherit;color:var(--ink);background:#fff;border:1px solid var(--line2);border-radius:8px;text-transform:uppercase}

/* --- Gestione rosa: toggle vista + vista a schede --- */
.tm-viewtoggle{margin-left:auto;display:inline-flex;border:1px solid var(--line2);border-radius:8px;overflow:hidden;flex:0 0 auto}
.tm-vt-btn{font-family:inherit;font-size:12px;font-weight:600;padding:5px 11px;background:#fff;color:var(--mute);border:none;cursor:pointer;line-height:1.4}
.tm-vt-btn+.tm-vt-btn{border-left:1px solid var(--line2)}
.tm-vt-btn.on{background:var(--net-color,#10b981);color:#fff}
.tm-vt-btn:not(.on):hover{background:var(--surf2)}

/* Vista a schede (stile rosa pubblica .ros-card) con controlli di gestione */
.tm-roster[hidden],.tm-cards[hidden]{display:none}
.tm-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.tm-card{position:relative;background:var(--surf);border:1px solid var(--line);border-radius:10px;overflow:hidden;transition:border-color .15s,box-shadow .15s}
.tm-card:hover{border-color:var(--line2);box-shadow:0 1px 2px rgba(0,0,0,.04),0 6px 14px rgba(0,0,0,.06)}
.tm-card[open]{border-color:var(--net-color,#10b981)}
.tm-card>summary.tm-card-sum{list-style:none;cursor:pointer;display:block}
.tm-card>summary::-webkit-details-marker{display:none}
.tm-card .tm-card-body{padding:10px 12px 12px}
.tm-card .ros-card-name{margin-bottom:2px}
.tm-card-actions{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}
.tm-card .tm-edit{border-top:1px solid var(--line);flex-wrap:wrap}
@media(max-width:600px){.tm-cards{grid-template-columns:repeat(2,1fr)}}

/* ===== Sezione FOTO / gallerie (desktop) ============================ */
.gl-index,.gl-show{max-width:1100px;margin:0 auto}
.gl-head{margin-bottom:18px}
.gl-title{font-size:30px;font-weight:800;letter-spacing:-.025em;line-height:1.05;margin:0 0 6px}
.gl-sub{font-size:13px;color:var(--mute);margin:0}
.gl-context{font-weight:600;color:var(--ink-2)}
/* chip categoria */
/* chip filtro categorie foto: riusano il bottone di default .np-btn, solo
   con una dimensione un filo più compatta per la barra chip. */
.gl-cats{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px}
.gl-cats .np-btn{padding:5px 12px;font-size:12.5px}
/* griglia gallerie */
.gl-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px}
.gl-item{margin:0}
.gl-card{display:block;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surf);text-decoration:none;color:inherit;transition:border-color .12s,box-shadow .12s,transform .12s}
.gl-card:hover{border-color:var(--net-color);box-shadow:0 6px 22px rgba(0,0,0,.10);transform:translateY(-2px)}
.gl-thumb{position:relative;aspect-ratio:4/3;background:var(--surf2);overflow:hidden}
.gl-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.gl-thumb.no-img{background:linear-gradient(135deg,var(--surf2),var(--line))}
.gl-count{position:absolute;bottom:8px;right:8px;display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:99px;background:rgba(0,0,0,.62);backdrop-filter:blur(4px);color:#fff;font-size:11.5px;font-weight:700}
.gl-count .svg-icon{width:11px;height:11px}
.gl-cbody{padding:11px 13px 13px}
.gl-cname{font-size:14.5px;font-weight:700;line-height:1.25;margin:0 0 6px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.gl-cmeta{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:11.5px;color:var(--mute);align-items:center}
.gl-photog{font-weight:600;color:var(--ink-2)}
.gl-league{display:inline-block;margin-top:8px;padding:2px 8px;border-radius:99px;background:var(--net-color);color:#fff;font-size:10.5px;font-weight:600;text-decoration:none}
a.gl-league:hover{filter:brightness(.92)}
.gl-pager{display:flex;align-items:center;justify-content:center;gap:14px;margin:26px 0 6px}
/* dettaglio galleria */
.gl-show-head{margin-bottom:18px}
.gl-show-title{font-size:28px;font-weight:800;letter-spacing:-.025em;line-height:1.08;margin:0 0 8px}
.gl-show-meta{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;font-size:13px;color:var(--mute)}
.gl-show-photog{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--ink-2)}
.gl-show-photog .svg-icon{width:13px;height:13px}
.gl-show-count b{color:var(--ink)}
/* Azioni nel meta (categoria + tabellino): piccoli bottoni .np-btn allineati */
.gl-meta-actions{display:inline-flex;align-items:center;gap:8px}
.gl-meta-btn{padding:3px 10px;font-size:11.5px;font-weight:600}
/* mosaico foto */
.gl-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;margin:0 0 8px}
.gl-photo{display:block;aspect-ratio:4/3;background:var(--surf2);border-radius:8px;overflow:hidden;cursor:zoom-in}
.gl-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .18s}
.gl-photo:hover img{transform:scale(1.04)}
/* lightbox */
.gl-lb{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:rgba(6,8,12,.92);padding:40px 64px}
.gl-lb[hidden]{display:none}
.gl-lb-fig{margin:0;max-width:100%;max-height:100%;display:flex;flex-direction:column;align-items:center;gap:12px}
.gl-lb-img{max-width:100%;max-height:82vh;object-fit:contain;border-radius:6px;box-shadow:0 12px 48px rgba(0,0,0,.5)}
.gl-lb-cap{color:rgba(255,255,255,.82);font-size:12.5px;text-align:center}
/* barra sotto la foto: didascalia (nome + progressivo) + bottone Salva */
.gl-lb-bar{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap}
.gl-lb-download{display:inline-flex;align-items:center;gap:7px;padding:6px 13px;border-radius:99px;background:rgba(255,255,255,.14);color:#fff;font-size:12px;font-weight:600;text-decoration:none;transition:background .12s}
.gl-lb-download:hover{background:rgba(255,255,255,.26)}
.gl-lb-download .svg-icon{width:13px;height:13px}
.gl-lb-close{position:absolute;top:18px;right:22px;width:40px;height:40px;border-radius:50%;border:none;background:rgba(255,255,255,.12);color:#fff;font-size:18px;cursor:pointer;transition:background .12s}
.gl-lb-close:hover{background:rgba(255,255,255,.24)}
.gl-lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:none;background:rgba(255,255,255,.12);color:#fff;font-size:28px;line-height:1;cursor:pointer;transition:background .12s}
.gl-lb-nav:hover{background:rgba(255,255,255,.24)}
.gl-lb-prev{left:16px}
.gl-lb-next{right:16px}
.gl-related{margin-top:34px}
.gl-related>h3{font-size:16px;font-weight:800;margin:0 0 14px}
.gl-related .ar-cat{color:var(--net-color);text-decoration:none}
.gl-related .ar-cat:hover{text-decoration:underline}
@media(max-width:600px){.gl-lb{padding:20px 8px}.gl-lb-nav{width:40px;height:40px;font-size:22px}}

/* ===== Bottone UNIVERSALE "Condividi" (.share) ===================== */
.share{position:relative;display:inline-block}
.share-btn{display:inline-flex;align-items:center;gap:7px}
.share-btn .svg-icon{width:14px;height:14px}
.share-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:40;min-width:186px;padding:6px;background:var(--surf);border:1px solid var(--line2);border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,.14);display:flex;flex-direction:column;gap:1px}
.share-menu-left{right:auto;left:0}
.share-menu[hidden]{display:none}
.share-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:none;border-radius:7px;background:none;font-family:inherit;font-size:13px;font-weight:500;color:var(--ink-2);text-decoration:none;cursor:pointer;text-align:left}
.share-item:hover{background:var(--surf2)}
.share-item .svg-icon{width:15px;height:15px;flex-shrink:0}
.share-item[data-share-net=whatsapp] .svg-icon{color:#25d366}
.share-item[data-share-net=facebook] .svg-icon{color:#1877f2}
.share-item[data-share-net=x] .svg-icon{color:var(--ink)}
.share-item[data-share-net=telegram] .svg-icon{color:#229ed9}
.share-item[data-share-net=email] .svg-icon{color:#64748b}
.share-item[data-share-copy] .svg-icon{color:#64748b}
.share-item.done{color:#16a34a}
.share-item.done .svg-icon{color:#16a34a}
/* riga condivisione a fine articolo (allineata a destra) */
.art-share{display:flex;justify-content:flex-end;margin:24px 0 4px;padding-top:16px;border-top:1px solid var(--line)}

/* share nei vari contesti */
.gl-meta-actions .share-btn{padding:3px 10px;font-size:11.5px}
.gl-lb-share{border:0;cursor:pointer;font-family:inherit}
.sc-subtabs-share{margin-left:auto;align-self:center}
.sc-subtabs-share .share-btn{padding:4px 11px;font-size:12px}

/* share in header live + breadcrumb partita */
.ph-share{flex:0 0 auto}
.mt-crumb-share{margin-left:auto}
.mt-crumb .share-btn{text-transform:none;padding:4px 10px;font-size:11px;letter-spacing:0}

/* icona pallone (FA svg) nel badge "Altre notizie" */
.rel-item .ic .svg-icon{width:16px;height:16px;color:var(--net-color)}

/* Apostrofo lampeggiante del minuto live (tick) */
.lv-tick{font-style:normal;font-weight:inherit}

/* Flash giallo chiaro su cambio risultato / inizio partita / finale (dura ~120s) */
@keyframes lvFlash{
  0%   { background-color: rgba(243,255,87,.95); }
  92%  { background-color: rgba(243,255,87,.75); }
  100% { background-color: rgba(243,255,87,0); }
}
.lv-flash{ animation: lvFlash 120s ease-out forwards; }

/* Bottone Condividi in fondo alla pagina Live (oggi/domani/tutti i giorni) */
.live-share-foot{display:flex;justify-content:flex-end;margin:26px 0 6px}

/* Coppa · sfida da giocare: data + ora (invece dell'aggregato 0-0) */
.cp-clash:has(.cp-clash-when){display:grid;grid-template-columns:1fr auto;column-gap:10px;align-items:center}
.cp-clash:has(.cp-clash-when) .cp-clash-side{grid-column:1}
.cp-clash-when{grid-column:2;grid-row:1/3;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:1px}
.cp-clash-when-d{font-size:10px;color:var(--mute);line-height:1;letter-spacing:.02em}
.cp-clash-when-t{font-size:12.5px;font-weight:800;color:var(--ink-2);line-height:1.15;font-variant-numeric:tabular-nums}
