:root{color-scheme:light;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
body{margin:0;font:14px system-ui,-apple-system,sans-serif}img{max-width:100%}[hidden]{display:none!important}

/* Layout: tabellino da bordo campo — tabellone riassuntivo, classifica marcatori, elenco partite come referti */
:root{
  --bg:#f2f4f9; --surface:#ffffff; --surface-2:#e6eaf4; --line:#d0d7e8;
  --fg:#141a2e; --muted:#5a6380; --accent:#234090; --accent-fg:#ffffff;
  --club:#234090; --club-fg:#ffffff; --yellow:#f8ec1c;
  --ball:#f8ec1c; --win:#1f7a3f; --draw:#8a7a1f; --loss:#b23a2e;
  --win-bg:#dcefe2; --draw-bg:#f3edcf; --loss-bg:#f6dedb;
  --display:"Saira Condensed","Arial Narrow",system-ui,sans-serif;
  --body:"Source Sans 3",system-ui,-apple-system,"Segoe UI",sans-serif;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0e1222; --surface:#161c33; --surface-2:#1f2742; --line:#2c3556;
  --fg:#e8ebf5; --muted:#9aa3c0; --accent:#f8ec1c; --accent-fg:#141a2e;
  --club:#1b3278; --club-fg:#ffffff; --yellow:#f8ec1c;
  --ball:#f8ec1c; --win:#6fd294; --draw:#d9c45c; --loss:#f08a7d;
  --win-bg:#1d3324; --draw-bg:#33301a; --loss-bg:#3a2220; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0e1222; --surface:#161c33; --surface-2:#1f2742; --line:#2c3556;
  --fg:#e8ebf5; --muted:#9aa3c0; --accent:#f8ec1c; --accent-fg:#141a2e;
  --club:#1b3278; --club-fg:#ffffff; --yellow:#f8ec1c;
  --ball:#f8ec1c; --win:#6fd294; --draw:#d9c45c; --loss:#f08a7d;
  --win-bg:#1d3324; --draw-bg:#33301a; --loss-bg:#3a2220; color-scheme:dark}

*{box-sizing:border-box}
body{background:var(--bg);color:var(--fg);font-family:var(--body);font-size:16px;line-height:1.45}
.wrap{max-width:860px;margin:0 auto;padding-block:20px 64px;
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));
  display:flex;flex-direction:column;gap:28px}
h1,h2,h3{font-family:var(--display);margin:0;text-wrap:balance;letter-spacing:.01em}
.num{font-variant-numeric:tabular-nums}
.label{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}
button{font:inherit;cursor:pointer}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* testata */
.top{background:var(--club);color:var(--club-fg);border-radius:18px;padding:18px 20px;display:flex;align-items:center;gap:18px;flex-wrap:wrap;position:relative;overflow:hidden}
.top::after{content:"";position:absolute;left:0;right:0;bottom:0;height:6px;background:var(--yellow)}
.crest{width:92px;height:auto;flex:none;box-sizing:content-box;background:#fff;border-radius:18px;padding:6px 8px;box-shadow:0 3px 10px rgba(0,0,0,.18)}
.top .titles{flex:1;min-width:180px}
.top h1{font-size:clamp(32px,7vw,48px);font-weight:800;line-height:.95;text-transform:uppercase}
.top h1 span{color:var(--yellow)}
.season{opacity:.85;margin-top:6px}
.top .btn-primary{background:var(--yellow);color:#141a2e}
@media (max-width:520px){.crest{width:72px}.top .btn-primary{width:100%}}
.btn{border:0;border-radius:999px;padding:10px 18px;font-weight:700}
.btn-primary{background:var(--accent);color:var(--accent-fg)}
.btn-ghost{background:transparent;color:var(--fg);border:1px solid var(--line)}
.btn-danger{background:var(--loss);color:var(--surface)}
.btn-sm{padding:6px 12px;font-size:14px}

/* tabellone */
.board{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 12px}
.board .cell{display:flex;flex-direction:column;gap:2px}
.board .big{font-family:var(--display);font-weight:800;font-size:38px;line-height:1}
.form-strip{grid-column:1/-1;display:flex;align-items:center;gap:6px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:12px}
.dot{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-family:var(--display);font-weight:700;font-size:14px}
.r-V{background:var(--win-bg);color:var(--win)} .r-N{background:var(--draw-bg);color:var(--draw)} .r-P{background:var(--loss-bg);color:var(--loss)}
@media (max-width:520px){.board{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* sezioni */
.section{display:flex;flex-direction:column;gap:12px}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.section-head h2{font-size:26px;font-weight:700;text-transform:uppercase}
.filters{display:flex;gap:6px;flex-wrap:wrap}
.chip-f{border:1px solid var(--line);background:var(--surface);color:var(--fg);border-radius:999px;padding:5px 12px;font-size:14px}
.chip-f[aria-pressed="true"]{background:var(--fg);color:var(--bg);border-color:var(--fg)}

/* marcatori */
.scorers{list-style:none;margin:0;padding:0;background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.scorers li{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 16px;border-top:1px solid var(--line)}
.scorers li:first-child{border-top:0}
.scorers .pos{font-family:var(--display);font-weight:700;color:var(--muted)}
.scorers .name{font-weight:600;overflow-wrap:anywhere}
.scorers .goals{font-family:var(--display);font-weight:800;font-size:22px}
.scorers .bar{height:4px;border-radius:2px;background:var(--surface-2);margin-top:4px}
.scorers .bar i{display:block;height:100%;border-radius:2px;background:var(--accent)}
.scorers li.me .name::after{content:"mio figlio";margin-left:8px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;background:var(--ball);color:#141a2e;padding:2px 6px;border-radius:4px;font-weight:700}
.scorers li.me .bar i{background:var(--ball)}

/* partite */
.matches{display:flex;flex-direction:column;gap:10px}
.match{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 16px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 14px;border-left:5px solid var(--line)}
.match.V{border-left-color:var(--win)} .match.N{border-left-color:var(--draw)} .match.P{border-left-color:var(--loss)}
.match .meta{display:flex;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:14px;align-items:center}
.match .teams{font-family:var(--display);font-size:22px;font-weight:700;line-height:1.1;overflow-wrap:anywhere}
.match .teams .us{color:var(--accent)}
.match .score{font-family:var(--display);font-weight:800;font-size:34px;line-height:1;text-align:right;grid-row:1/3;grid-column:2;align-self:center}
.pill{font-size:12px;font-weight:700;padding:2px 8px;border-radius:999px;text-transform:uppercase;letter-spacing:.05em}
.goals-list{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.g{display:inline-flex;align-items:center;gap:5px;background:var(--surface-2);border-radius:999px;padding:3px 10px;font-size:14px}
.g.me{background:var(--ball);color:#141a2e;font-weight:700}
.g svg{width:13px;height:13px}
.note{grid-column:1/-1;margin-top:6px;padding:10px 12px;background:var(--surface-2);border-radius:10px;font-size:15px;line-height:1.5;white-space:pre-line;overflow-wrap:anywhere}
.note .label{display:block;margin-bottom:2px}
.add-note{grid-column:1/-1;justify-self:start;border:1px dashed var(--line);background:transparent;color:var(--muted);border-radius:10px;padding:6px 12px;font-size:14px}
.actions{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:8px}
.del-row{grid-column:1/-1;display:flex;gap:8px;justify-content:center;align-items:center;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:4px;padding-top:6px}
.del-link{display:inline-flex;align-items:center;gap:6px;border:0;background:none;color:var(--loss);font:inherit;font-weight:600;font-size:14px;padding:8px 12px}
.del-link svg{width:16px;height:16px}
.actions .btn,.ph-actions .btn{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:10px 6px;border-radius:12px;line-height:1.1;text-decoration:none;text-align:center}
.actions .btn svg,.ph-actions .btn svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.confirm{font-size:14px;color:var(--loss);font-weight:600}

/* rosa */
.roster{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.role-group{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;min-width:0}
.role-group h3{font-size:16px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);display:flex;justify-content:space-between}
.player{display:grid;grid-template-columns:30px minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:4px 0;border-top:1px solid var(--line)}
.player:first-of-type{border-top:0}
.player .role-tag{font-family:var(--display);font-weight:800;font-size:13px;width:30px;height:24px;border-radius:6px;display:grid;place-items:center;background:var(--surface-2);color:var(--fg)}
.player .role-tag.POR{background:var(--ball);color:#141a2e}
.player .pname{font-weight:600;overflow-wrap:anywhere}
.player.me .pname{color:var(--accent)}
.player .pg{font-variant-numeric:tabular-nums;color:var(--muted);font-size:14px;display:inline-flex;gap:3px;align-items:center}
.player .pg svg{width:12px;height:12px}
.x{border:0;background:transparent;color:var(--muted);width:28px;height:28px;border-radius:6px}
.x:hover{background:var(--surface-2);color:var(--loss)}
.add-player{display:grid;grid-template-columns:minmax(0,1fr) 150px auto;gap:8px}
@media (max-width:520px){.add-player{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.add-player .btn{grid-column:1/-1}}

.empty{background:var(--surface);border:1px dashed var(--line);border-radius:14px;padding:24px;text-align:center;color:var(--muted)}
.empty strong{display:block;color:var(--fg);font-family:var(--display);font-size:22px;margin-bottom:4px}
.status{font-size:14px;color:var(--muted)}
.status.warn{color:var(--loss)}

/* pannello inserimento */
.sheet-bg{position:fixed;inset:0;background:rgba(10,15,11,.55);z-index:60;display:flex;align-items:flex-end;justify-content:center}
.sheet{background:var(--surface);color:var(--fg);width:100%;max-width:560px;max-height:92vh;overflow:auto;border-radius:18px 18px 0 0;
  padding:20px max(18px,env(safe-area-inset-right,0px)) calc(20px + env(safe-area-inset-bottom,0px)) max(18px,env(safe-area-inset-left,0px));display:flex;flex-direction:column;gap:14px}
@media (min-width:640px){.sheet-bg{align-items:center}.sheet{border-radius:18px}}
.sheet h3{font-size:26px;text-transform:uppercase}
.field{display:flex;flex-direction:column;gap:4px;min-width:0}
.row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
input,select,textarea{font:inherit;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:9px 11px;width:100%;min-width:0}
textarea{min-height:60px;resize:vertical}
.seg{display:flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.seg button{flex:1;border:0;background:var(--bg);color:var(--fg);padding:9px}
.seg button[aria-pressed="true"]{background:var(--accent);color:var(--accent-fg);font-weight:700}
.scoreinput{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:10px;align-items:end}
.scoreinput input{font-family:var(--display);font-size:28px;font-weight:800;text-align:center}
.scoreinput .sep{font-family:var(--display);font-size:28px;font-weight:800;padding-bottom:6px}
.scorer-row,.assist-row{display:grid;grid-template-columns:minmax(0,1fr) 84px 40px;gap:8px;align-items:center}
.icon-btn{border:1px solid var(--line);background:var(--bg);color:var(--fg);border-radius:10px;height:40px}
.hint{font-size:13px;color:var(--muted)}
.hint.warn{color:var(--loss)}
.sheet-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
@media (prefers-reduced-motion:no-preference){.sheet{animation:up .18s ease-out}@keyframes up{from{transform:translateY(16px);opacity:.6}}}

/* foto squadra */
.team-photo{margin:0;background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:hidden;display:flex;flex-direction:column}
.team-photo img{display:block;width:100%;height:auto;aspect-ratio:900/659;object-fit:cover;background:var(--surface-2)}
.team-photo figcaption{padding:10px 16px;display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;align-items:baseline}
.team-photo figcaption strong{font-family:var(--display);font-size:20px;text-transform:uppercase;letter-spacing:.02em}

.player .role-tag.ALL{background:var(--club);color:var(--club-fg)}
.role-group.coach .alias{font-weight:400;color:var(--muted)}

.coach-photo{display:block;width:100%;height:auto;aspect-ratio:400/288;object-fit:cover;border-radius:10px;margin-bottom:6px;background:var(--surface-2)}

.present{grid-column:1/-1;font-size:14px;color:var(--muted);overflow-wrap:anywhere}
.present .label{margin-right:4px}
.present .me{color:var(--accent);font-weight:700}
.player .pres{font-size:13px;margin-right:6px}
.pres-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px}
.pres-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--bg);font-size:14px;min-width:0}
.pres-item input{width:auto}

/* grafici */
.charts{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:12px}
@media (max-width:700px){.charts{grid-template-columns:minmax(0,1fr)}}
.chart-card{margin:0;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:10px;min-width:0;position:relative}
.chart-card figcaption{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}
.chart-title{font-family:var(--display);font-size:18px;font-weight:700;text-transform:uppercase}
.legend{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}
.sw{display:inline-block;width:10px;height:10px;border-radius:3px}
.sw-gf{background:var(--accent)} .sw-ga{background:var(--muted);opacity:.55;margin-left:6px}
.chart-scroll{overflow-x:auto}
#chartGoals{display:block;width:100%;min-width:420px;height:auto}
#chartGoals text{font-family:var(--body);fill:var(--muted);font-size:11px}
#chartGoals .val{fill:var(--fg);font-weight:700;font-size:11px}
#chartGoals .grid{stroke:var(--line);stroke-width:1}
#chartGoals .bar-gf{fill:var(--accent)} #chartGoals .bar-ga{fill:var(--muted);opacity:.55}
#chartGoals .hit{fill:transparent;cursor:pointer}
#chartGoals .hit:hover+g rect,#chartGoals .col:hover rect{opacity:.85}
.hbars{display:flex;flex-direction:column;gap:5px}
.hbar{display:grid;grid-template-columns:minmax(0,9ch) minmax(0,1fr) 2ch;align-items:center;gap:8px;font-size:13px}
.hbar .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hbar .tr{height:10px;background:var(--surface-2);border-radius:5px;overflow:hidden}
.hbar .tr i{display:block;height:100%;background:var(--accent);border-radius:5px}
.hbar .n{font-variant-numeric:tabular-nums;text-align:right;color:var(--fg);font-weight:600}
.tip{position:absolute;pointer-events:none;background:var(--fg);color:var(--bg);font-size:12px;padding:6px 8px;border-radius:8px;white-space:nowrap;z-index:5;transform:translate(-50%,-110%)}

/* momento della stagione */
.highlight{display:flex;gap:8px;flex-wrap:wrap}
.highlight:empty{display:none}
.hl{display:flex;align-items:baseline;gap:8px;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--yellow);border-radius:12px;padding:10px 14px;flex:1 1 200px;min-width:0}
.hl strong{font-family:var(--display);font-size:22px;font-weight:800;line-height:1;white-space:nowrap}
.hl span{color:var(--muted);font-size:14px}
/* casa trasferta */
.chart-card.wide{grid-column:1/-1}
.ha{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (max-width:520px){.ha{grid-template-columns:minmax(0,1fr)}}
.ha-col{display:flex;flex-direction:column;gap:6px;background:var(--surface-2);border-radius:10px;padding:10px 12px}
.ha-col h4{margin:0;font-family:var(--display);font-size:16px;text-transform:uppercase;display:flex;justify-content:space-between}
.ha-row{display:grid;grid-template-columns:9ch minmax(0,1fr) 3ch;gap:8px;align-items:center;font-size:13px}
.ha-row .tr{height:8px;background:var(--surface);border-radius:4px;overflow:hidden}
.ha-row .tr i{display:block;height:100%;border-radius:4px;background:var(--accent)}
.ha-row .tr i.ga{background:var(--muted);opacity:.55}
.ha-row .n{text-align:right;font-weight:600;font-variant-numeric:tabular-nums}
/* prossime partite */
.next-list{display:flex;flex-direction:column;gap:8px}
.next{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:12px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:10px 14px}
.next .day{display:flex;flex-direction:column;align-items:center;background:var(--club);color:var(--club-fg);border-radius:10px;padding:6px 0;font-family:var(--display);line-height:1}
.next .day b{font-size:24px}
.next .day small{font-size:12px;text-transform:uppercase;letter-spacing:.06em}
.next .info{min-width:0}
.next .info strong{display:block;font-family:var(--display);font-size:19px;overflow-wrap:anywhere}
.next .info span{color:var(--muted);font-size:14px;overflow-wrap:anywhere}
.next-form{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.next-form #nOpp,.next-form #nPlace{grid-column:span 2}
@media (max-width:640px){.next-form{grid-template-columns:repeat(2,minmax(0,1fr))}.next-form #nOpp,.next-form #nPlace,.next-form .btn{grid-column:1/-1}}
/* scheda giocatore */
.pbtn{all:unset;cursor:pointer;font-weight:600;overflow-wrap:anywhere}
.pbtn:hover{text-decoration:underline}
.pbtn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}
.ps-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.ps-stats div{background:var(--surface-2);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:2px}
.ps-stats b{font-family:var(--display);font-size:28px;line-height:1}
.ps-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.ps-list li{display:grid;grid-template-columns:6ch minmax(0,1fr) auto;gap:10px;padding:8px 0;border-top:1px solid var(--line);font-size:14px;align-items:center}
.ps-list li .res{font-family:var(--display);font-weight:700;font-variant-numeric:tabular-nums}
.ps-list li .gl{color:var(--fg);font-weight:600}
.ps-list li.out{color:var(--muted)}
/* condividi */
.share-btn{display:inline-flex;align-items:center;gap:6px}
#shareText{font-family:var(--body)}

/* diretta */
.live-sec{display:flex;flex-direction:column}
.live-card{background:var(--surface);border:2px solid var(--loss);border-radius:18px;padding:16px;display:flex;flex-direction:column;gap:12px}
.live-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:14px}
.live-badge{display:inline-flex;align-items:center;gap:6px;background:var(--loss);color:#fff;font-weight:800;font-size:12px;letter-spacing:.1em;padding:3px 9px;border-radius:999px}
.live-badge i{width:8px;height:8px;border-radius:50%;background:#fff}
@media (prefers-reduced-motion:no-preference){.live-badge i{animation:blink 1.2s ease-in-out infinite}@keyframes blink{50%{opacity:.25}}}
.live-score{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;text-align:center}
.live-score .tm{font-family:var(--display);font-size:20px;font-weight:700;line-height:1.1;overflow-wrap:anywhere}
.live-score .tm.us{color:var(--accent)}
.live-score .sc{font-family:var(--display);font-size:56px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
.live-ctrl{display:flex;gap:8px;flex-wrap:wrap}
.live-ctrl .btn{flex:1 1 auto}
.btn-goal{background:var(--accent);color:var(--accent-fg)}
.btn-goal-opp{background:var(--surface-2);color:var(--fg);border:1px solid var(--line)}
.live-pick{display:flex;flex-direction:column;gap:8px;background:var(--surface-2);border-radius:12px;padding:10px}
.live-pick .opts{display:flex;flex-wrap:wrap;gap:6px}
.live-pick .opts button{border:1px solid var(--line);background:var(--surface);color:var(--fg);border-radius:999px;padding:6px 12px;font-size:14px}
.live-note{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
.live-quick{display:flex;flex-wrap:wrap;gap:6px}
.live-quick button{border:1px dashed var(--line);background:transparent;color:var(--muted);border-radius:999px;padding:5px 11px;font-size:13px}
.feed{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.feed li{display:grid;grid-template-columns:5ch minmax(0,1fr);gap:10px;padding:8px 0;border-top:1px solid var(--line);font-size:15px;align-items:baseline}
.feed li .t{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}
.feed li.gol{font-weight:700}
.feed li.gol .ev::before{content:"⚽ "}
.feed li.golavv .ev{color:var(--muted)}
.live-foot{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;align-items:center}
.live-start{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;background:var(--surface);border:1px dashed var(--line);border-radius:14px;padding:12px 16px}
.live-start span{color:var(--muted)}

/* PWA: accesso e barra */
.login{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:24px max(16px,env(safe-area-inset-right,0px)) 24px max(16px,env(safe-area-inset-left,0px));background:var(--club)}
.login-card{width:100%;max-width:360px;background:var(--surface);border-radius:20px;padding:24px;display:flex;flex-direction:column;gap:14px;box-shadow:0 10px 40px rgba(0,0,0,.25)}
.login-card img{align-self:center;box-sizing:content-box;background:#fff;border-radius:18px;padding:8px 10px;box-shadow:0 2px 10px rgba(0,0,0,.15)}
.login-card h1{font-family:var(--display);text-transform:uppercase;text-align:center;font-size:30px;line-height:1;margin:0}
.login-card h1 span{color:var(--muted);font-size:20px}
.login-card .btn{padding:12px}
.topbar{display:flex;justify-content:flex-end;align-items:center;gap:12px;font-size:13px;color:var(--muted);margin-bottom:-16px}
.linkbtn{border:0;background:none;color:var(--accent);font-weight:700;padding:4px 0;cursor:pointer}
.offline{background:var(--draw-bg);color:var(--fg);border-radius:10px;padding:8px 12px;font-size:14px}
.seed{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;background:var(--surface);border:1px dashed var(--accent);border-radius:14px;padding:12px 16px}

.goalToast{position:sticky;top:8px;z-index:30;background:var(--yellow,#f5e300);color:#13214f;border-radius:14px;padding:12px 16px;font-weight:700;font-size:16px;box-shadow:0 6px 24px rgba(0,0,0,.3);text-align:center}
.goalToast.opp{background:#fff;color:#13214f;border:2px solid var(--club,#234090)}
.alertbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px 12px;font-size:14px}
@media (prefers-reduced-motion:no-preference){.goalToast{animation:pop .35s ease-out}@keyframes pop{from{transform:scale(.92);opacity:0}}}

/* ---------- menu a schede ---------- */
.wrap[data-active="home"] [data-pane]:not([data-pane="home"]),
.wrap[data-active="live"] [data-pane]:not([data-pane="live"]),
.wrap[data-active="partite"] [data-pane]:not([data-pane="partite"]),
.wrap[data-active="rosa"] [data-pane]:not([data-pane="rosa"]),
.wrap[data-active="utenti"] [data-pane]:not([data-pane="utenti"]),
.wrap[data-active="allenamento"] [data-pane]:not([data-pane="allenamento"]){display:none!important}
.tabs{display:flex;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:4px;position:sticky;top:6px;z-index:20}
.tabs button{flex:1;position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;border:0;background:transparent;color:var(--muted);font:inherit;font-size:12px;font-weight:600;padding:8px 4px;border-radius:12px;cursor:pointer;min-width:0}
.tabs button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tabs button[aria-current="page"]{background:var(--club);color:#fff}
.tabs .tdot{position:absolute;top:6px;left:calc(50% + 6px);width:9px;height:9px;border-radius:50%;background:#e53935;box-shadow:0 0 0 2px var(--surface)}
.empty-pane{background:var(--surface);border:1px dashed var(--line);border-radius:14px;padding:22px 16px;text-align:center;color:var(--muted)}
@media (max-width:720px){
  .tabs{position:fixed;top:auto;left:0;right:0;bottom:0;border-radius:18px 18px 0 0;border-width:1px 0 0;padding:6px 8px calc(6px + env(safe-area-inset-bottom,0px));box-shadow:0 -4px 18px rgba(0,0,0,.12);z-index:40}
  .wrap{padding-bottom:110px}
}
@media (min-width:721px){.goalToast{top:78px}}

/* ---------- prossima partita ---------- */
.upc{background:var(--surface);border:1px solid var(--line);border-left:5px solid var(--club);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:8px}
.upc .u-top{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px;color:var(--muted)}
.upc .u-badge{background:var(--yellow,#f5e300);color:#13214f;font-weight:800;font-size:12px;letter-spacing:.04em;border-radius:999px;padding:3px 10px}
.upc .u-teams{font-family:var(--display);font-size:26px;line-height:1.1;font-weight:700;text-transform:uppercase}
.upc .u-teams .us{color:var(--club)}
.upc .u-when{font-weight:700;font-size:16px}
.upc .u-live{background:var(--draw-bg,#eef1f8);border-radius:10px;padding:8px 12px;font-size:14px}
.upc .u-live b{font-variant-numeric:tabular-nums}
.upc .u-count{font-size:14px;color:var(--muted)}
.upc .u-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:2px}

/* ---------- partite in arrivo (elenco) ---------- */
.upc-wrap{display:flex;flex-direction:column;gap:10px}
.upc.small .u-teams{font-size:20px}
.upc .u-map{font-size:14px;color:var(--club);text-decoration:none;font-weight:600}
.upc .u-map:hover{text-decoration:underline}
/* ---------- statistiche in più ---------- */
details.more{border:1px solid var(--line);border-radius:12px;padding:8px 12px;display:flex;flex-direction:column;gap:12px}
details.more>summary{cursor:pointer;font-weight:600;color:var(--club);padding:4px 0}
details.more[open]>summary{margin-bottom:6px}
.min-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}
.min-item{display:flex;align-items:center;gap:6px;font-size:13px;min-width:0}
.min-item span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.min-item input{width:62px;padding:6px 8px}
.xline{font-size:14px;margin-top:6px;color:var(--fg)}
.xline b{font-weight:700}
.ps-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
.reportbar{display:flex;justify-content:center}
/* ---------- stampa: solo il report ---------- */
#report{display:none}
@media print{
  body>*:not(#report){display:none!important}
  #report{display:block!important;color:#000;background:#fff;font:12px/1.4 system-ui,sans-serif;padding:0}
  #report h1{font-size:22px;margin:0 0 4px}#report h2{font-size:15px;margin:18px 0 6px;border-bottom:2px solid #234090;padding-bottom:2px}
  #report table{width:100%;border-collapse:collapse}#report th,#report td{border-bottom:1px solid #ccc;padding:4px 6px;text-align:left;vertical-align:top}
  #report th{background:#eef1f8}#report .r-grid{display:flex;gap:18px;flex-wrap:wrap;margin:8px 0}#report .r-grid div b{display:block;font-size:20px}
  #report tr{break-inside:avoid}
}

/* ---------- foto ---------- */
.photos{grid-column:1/-1;display:flex;flex-direction:column;gap:8px;margin-top:8px}
.ph-strip{display:flex;gap:6px;flex-wrap:wrap}
.ph{width:76px;height:76px;padding:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface-2,#eef1f8);cursor:pointer;flex:none}
.ph img{width:100%;height:100%;object-fit:cover;display:block}
.ph-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ph-actions .status{grid-column:1/-1}
.ph-add{cursor:pointer}
.pic-bg{align-items:center!important;background:rgba(0,0,0,.85)}
.pic-box{display:flex;flex-direction:column;gap:10px;align-items:center;max-width:96vw}
.pic-box img{max-width:96vw;max-height:78vh;border-radius:10px;background:#111;object-fit:contain}
.pic-actions{display:flex;gap:8px}

/* carta giocatore, suono, banner offline */
.fifa{display:flex;justify-content:center;margin:0 0 10px}
.fifa img{width:min(260px,70%);height:auto;border-radius:14px;box-shadow:0 8px 24px rgba(0,0,0,.35);background:var(--surface-2)}
.fifa-act{display:flex;gap:8px;align-items:center;justify-content:center;margin-bottom:10px}
.fifa-act .btn svg,.sound-row .btn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:-4px;margin-right:6px}
.sound-row{display:flex;justify-content:flex-end;margin:0 0 8px}
.offline{cursor:pointer}

html{background:var(--bg);min-height:100%;overscroll-behavior-y:none}
body{min-height:100vh;min-height:100dvh;overscroll-behavior-y:none}
@media (max-width:720px){.tabs{bottom:0;inset-block-end:0;-webkit-transform:translateZ(0);will-change:transform}}
.fifa img{width:min(210px,60%)}
.fifa img:not([src]){width:min(210px,60%);aspect-ratio:3/4;border-radius:14px;background:linear-gradient(100deg,var(--surface-2) 30%,var(--line) 50%,var(--surface-2) 70%);background-size:200% 100%;animation:shim 1.2s linear infinite}
@keyframes shim{to{background-position:-200% 0}}
.poster{display:flex;gap:12px;align-items:center;width:100%;text-align:left;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:8px;color:var(--fg);font:inherit;margin:6px 0 2px;cursor:pointer}
.poster .pt{width:64px;height:84px;border-radius:8px;background:var(--line);flex:none;overflow:hidden}.poster .pt img{width:100%;height:100%;object-fit:cover;display:block}
.poster .pl{display:flex;flex-direction:column;gap:2px}.poster .pl small{color:var(--muted)}
.padm{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:8px;border-top:1px solid var(--line);padding-top:8px}
.padm .btn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:-4px;margin-right:6px}

/* podio marcatori */
.podium-sec{margin:14px 0}.podium-sec h2{font-size:14px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 10px}
.pod{display:flex;align-items:flex-end;justify-content:center;gap:10px}.pc{flex:1;text-align:center;min-width:0}
.pc .av{width:42px;height:42px;border-radius:50%;margin:0 auto 6px;display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:800;font-size:16px;background:var(--club);color:#fff;border:2px solid var(--ball)}
.pc .blk{border-radius:12px 12px 0 0;background:var(--surface-2);border:1px solid var(--line);border-bottom:0;display:flex;align-items:center;justify-content:center}
.pc .blk b{font-family:var(--display);font-size:30px;font-weight:800;color:var(--fg)}
.pc.pos1 .av{width:50px;height:50px;box-shadow:0 0 0 3px var(--ball)}.pc.pos1 .blk{background:linear-gradient(180deg,var(--ball),#d8c60a);border-color:#d8c60a}.pc.pos1 .blk b{color:#141a2e}
.pc small{display:block;margin-top:6px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pc.me small:after{content:" ★"}
/* tabellone in diretta */
.live-card{background:radial-gradient(120% 100% at 50% 0,#1d3a8f 0,#0b1230 72%);color:#fff;border-color:var(--loss);position:relative;overflow:hidden}
.live-card:before{content:"";position:absolute;left:50%;top:0;bottom:0;border-left:1px solid #ffffff14;pointer-events:none}
.live-card:after{content:"";position:absolute;left:50%;top:92px;width:120px;height:120px;margin:-60px;border:1px solid #ffffff14;border-radius:50%;pointer-events:none}
.live-card .live-top,.live-card .hint,.live-card .status{color:#c8d0f2}
.live-card .live-score{position:relative;z-index:1}.live-card .live-score .tm{color:#fff}.live-card .live-score .tm.us{color:var(--ball)}
.live-card .live-score .sc{font-size:72px;color:#fff;text-shadow:0 0 26px #f8ec1c66}
.live-card .feed,.live-card .live-foot,.live-card .live-ctrl,.live-card .live-quick,.live-card .live-note{position:relative;z-index:1}
.live-card .btn-ghost{color:#fff;border-color:#ffffff40}
.sc.bump{animation:bump .9s cubic-bezier(.2,1.6,.4,1)}
@keyframes bump{0%{transform:scale(.6);opacity:.3}60%{transform:scale(1.25)}100%{transform:scale(1)}}
.confetti{position:fixed;inset:0;pointer-events:none;z-index:90;overflow:hidden}
.confetti i{position:absolute;top:-16px;width:9px;height:15px;border-radius:2px;opacity:.95;animation:fall linear forwards}
@keyframes fall{to{transform:translate(var(--dx),110vh) rotate(var(--rot));opacity:.9}}
@media (prefers-reduced-motion:reduce){.sc.bump{animation:none}}
/* prossima partita: blocchi + testata */
.cd{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:4px 0}
.cd div{background:var(--surface-2);border-radius:10px;padding:8px 0;text-align:center}
.cd b{display:block;font-family:var(--display);font-size:28px;font-weight:800;line-height:1.05;color:var(--accent);font-variant-numeric:tabular-nums}
.cd span{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.upc.has-hero{overflow:hidden}
.u-hero{margin:-14px -16px 4px;height:92px;overflow:hidden;cursor:pointer;position:relative}
.u-hero img{width:calc(100% + 8px);height:100%;margin:0 -4px;object-fit:cover;object-position:center 25%;filter:blur(3px) brightness(.75) saturate(1.1);display:block;background:var(--club)}
.u-hero:after{content:"Apri la locandina";position:absolute;right:10px;bottom:8px;font-size:11px;font-weight:700;color:#fff;background:#0009;border-radius:999px;padding:3px 9px}
.live-card .live-score{gap:8px}
.live-card .live-score .tm{font-size:16px;overflow-wrap:normal;word-break:normal;hyphens:none;text-transform:uppercase;letter-spacing:.02em}
.live-card .live-score .sc{font-size:56px}
.live-card .live-score .tm{font-size:13px}.live-card .live-score .sc{font-size:50px}

/* convocazioni */
.cv-grp{display:flex;flex-direction:column;gap:6px;margin:6px 0}
.conv{border:1px solid var(--line);border-radius:12px;background:var(--surface-2);padding:8px 10px;margin:6px 0 2px}
.conv summary{cursor:pointer;display:flex;justify-content:space-between;gap:8px;align-items:center;list-style:none}
.conv summary::-webkit-details-marker{display:none}.conv summary span{color:var(--muted);font-size:13px}
.conv summary:after{content:"›";font-size:20px;color:var(--muted);transition:transform .15s}.conv[open] summary:after{transform:rotate(90deg)}
.cv-g h5{margin:10px 0 2px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.cv-g p{margin:0;font-weight:600;line-height:1.4}
.cv-note{margin:8px 0 6px;padding-top:8px;border-top:1px solid var(--line);color:var(--muted)}
.conv .btn{margin-top:8px}
.conv-hi{border:2px solid var(--accent);background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 14%,var(--surface-2)),var(--surface-2));padding:12px 14px;margin:10px 0 4px;box-shadow:0 4px 16px color-mix(in srgb,var(--accent) 22%,transparent)}
.cv-head{display:flex;gap:10px;align-items:center;font-size:13px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;list-style:none}.cv-head::-webkit-details-marker{display:none}
.cv-head b{flex:0 0 auto}.cv-sum{margin-left:auto;letter-spacing:0;text-transform:none;font-size:14px;color:var(--muted)}.cv-sum strong{color:var(--accent);font-size:20px}.cv-head:after{content:"›";font-size:22px;color:var(--accent);transition:transform .15s}.conv-hi[open] .cv-head:after{transform:rotate(90deg)}.conv-hi[open] .cv-sum{display:none}.conv-hi[open] .cv-head .cv-n{margin-left:auto}
.cv-n{background:var(--accent);color:var(--accent-fg);border-radius:999px;min-width:30px;height:30px;display:grid;place-items:center;font-weight:800;font-size:15px;letter-spacing:0}
.cv-rit{display:flex;align-items:baseline;gap:10px;margin:10px 0 4px}.cv-rit small{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-size:12px}.cv-rit strong{font-size:34px;line-height:1;color:var(--accent)}
.cv-list{list-style:none;margin:10px 0 2px;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:6px 12px}
.cv-list li{font-weight:700;font-size:16px;padding-left:16px;position:relative}.cv-list li:before{content:"";position:absolute;left:0;top:.5em;width:8px;height:8px;border-radius:50%;background:var(--accent)}
.cv-act{display:flex;gap:8px;flex-wrap:wrap}

/* password visibile + utenti */
.pw{position:relative;display:block}.pw input{padding-right:46px}
.pw-eye{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:38px;height:34px;border:0;background:transparent;color:var(--muted);cursor:pointer;border-radius:8px;display:grid;place-items:center}
.pw-eye svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.pw-eye[aria-pressed="true"]{color:var(--accent)}
.ulist{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.urow{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:10px 12px}
.urow b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
.urow .badge{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:99px;background:var(--surface-2);color:var(--muted)}
.urow .badge.adm{background:var(--club);color:#fff}
.urow .me{font-size:12px;color:var(--muted)}

/* video */
.yt{position:relative;aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:#000;margin:0 0 6px}
.yt iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.yt-open{display:inline-block;font-size:13px;color:var(--muted);margin:0 0 10px}
#liveVideo{margin-bottom:6px}

/* spezzoni */
.vlist{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.vrow{display:flex;align-items:center;gap:6px}
.vplay{flex:1;min-width:0;display:flex;align-items:center;gap:12px;text-align:left;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:10px 12px;font:inherit;color:inherit;cursor:pointer}
.vico{flex:none;width:34px;height:34px;border-radius:50%;background:var(--club);color:#fff;display:grid;place-items:center;font-size:13px;padding-left:2px}
.vtxt{display:flex;flex-direction:column;min-width:0}.vtxt b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vtxt small{color:var(--muted)}

/* lettore video a tutto schermo */
#vidBg{background:#000;align-items:stretch}
#vidBg .sheet{max-width:none;width:100%;height:100vh;height:100dvh;max-height:none;border-radius:0;background:#000;color:#fff;display:flex;flex-direction:column;gap:0;padding:max(8px,env(safe-area-inset-top)) 0 max(8px,env(safe-area-inset-bottom));overflow:hidden}
#vidBg h3{font-size:16px;padding:6px 14px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#vidBg #vidFrame{flex:1;min-height:0}
#vidBg .yt{aspect-ratio:auto;width:100%;height:100%;border-radius:0;margin:0}
#vidBg .sheet-actions{padding:8px 14px 0;justify-content:space-between}
#vidBg .btn{text-decoration:none}
#vidBg .btn-ghost{color:#fff;border-color:rgba(255,255,255,.4)}

/* avvisi push */
.push-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:0 0 10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.push-row small{color:var(--muted)}

.push-row .push-note{flex-basis:100%}

.check{display:flex;align-items:center;gap:8px;margin:8px 0;font-size:14px}.check input{width:18px;height:18px}
.cv-push-msg{display:block;margin-top:6px;font-size:13px;color:var(--ok,#1a7f37)}.cv-push-msg.bad{color:#b42318}
