/* === ML Manager XG — app.css (core UI) =============================== */

/* --------- Tokens / Theme — blu (preferenza utente) + griglia sfondo leggera --------- */
:root{
  --bg:#0e141b;
  --panel:#121a22;
  --card:#111826;
  --line:#2a3948;
  --text:#dae7f5;
  --muted:#9bb0c3;

  --accent-1:#12d6c5;
  --accent-2:#22c55e;
  --accent-3:#0ea5e9;

  --radius:14px;
  --radius-sm:10px;
  --shadow:0 8px 28px rgba(0,0,0,.35);
  --shadow-sm:0 6px 18px rgba(0,0,0,.28);

  --blue-600:#3b82f6;
  --blue-500:#60a5fa;
  --green-600:#22c55e;
  --green-500:#86efac;
}

/* Container globale */
.container{
  max-width: none;   /* full width always */
  width: 100%;
  margin: 0 auto;
  padding-left: 5px;
  padding-right: 5px;
  padding-top:5px;
}

/* Helper opzionale: per “ri-stringere” moduli specifici se serve */
.wrap-narrow { max-width: 1200px; margin: 0 auto; }
.wrap-wide   { max-width: 1400px; margin: 0 auto; }

/* --------- Legacy Actions bar (compat) --------- */
.actions-bar{display:flex;gap:.5rem;flex-wrap:wrap;margin:12px auto 0;align-items:center}
.actions-bar .btn{display:inline-block;padding:.55rem .9rem;border-radius:.7rem;font-weight:600;text-decoration:none;line-height:1;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.06)}
.actions-bar .btn.primary{background:#27c399;color:#041a14;border-color:#27c399}
.actions-bar .btn.admin{background:#3b82f6;color:#041a14;border-color:#3b82f6}
@media(min-width:768px){.actions-bar{margin-top:16px}}

/* --------- Base --------- */
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0; color:var(--text);
  background-color: var(--bg);
  background-image:
    radial-gradient(1200px 600px at 60% -200px, #16324a 0%, transparent 60%),
    radial-gradient(800px 400px at 100% 100%, rgba(14,165,233,.06), transparent 55%),
    repeating-linear-gradient(0deg, transparent, transparent 40px, rgba(125,180,255,.02) 40px, rgba(125,180,255,.02) 41px),
    repeating-linear-gradient(90deg, transparent, transparent 40px, rgba(125,180,255,.018) 40px, rgba(125,180,255,.018) 41px),
    url('./img/bg.png');
  background-repeat: no-repeat, no-repeat, repeat, repeat, no-repeat;
  background-position: center -200px, center bottom, center center, center center, center center;
  background-attachment: fixed, fixed, fixed, fixed, fixed;
  background-size: auto, auto, auto, auto, cover;
  font-family: ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,"Helvetica Neue",Arial;
  line-height: 1.45;
}


a{color:#7cc9ff;text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%;display:block}

/* --------- PWA: link “installa / App ML” nascosti se già aperta come app (Home) --------- */
@media (display-mode: standalone), (display-mode: fullscreen), (display-mode: minimal-ui) {
  .hide-when-pwa-installed { display: none !important; }
}
html.pwa-installed .hide-when-pwa-installed { display: none !important; }

/* --------- Layout helpers --------- */
/* (rimosso duplicato .container; usa body.layout-default .container più sotto) */
.card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:5px;
  box-shadow:var(--shadow-sm);
  margin-bottom:10px;
  margin-top:10px;
    
}
.muted{color:var(--muted)}

/* --------- Buttons --------- */
.btn{
  appearance:none; border:1px solid var(--line);
  background:linear-gradient(180deg,#1c2a36,#15212c);
  color:var(--text);
  border-radius:12px; padding:.55rem .9rem;
  font-weight:600; cursor:pointer;
  transition:transform .06s ease,box-shadow .12s ease,border-color .12s ease,background .12s ease,opacity .12s ease;
}
.btn:hover{box-shadow:0 6px 20px rgba(0,0,0,.32)}
.btn:active{transform:translateY(1px)}
.btn.ghost{background:transparent;border-color:var(--line);color:var(--text)}
.btn.wide{width:100%;justify-content:center}
.btn:disabled,.btn[disabled],.btn.is-disabled{opacity:.55; cursor:not-allowed; filter:saturate(.2); box-shadow:none}

/* Focus ring coerente */
.btn:focus-visible,
button:focus-visible,
select:focus-visible,
input:focus-visible,
textarea:focus-visible{
  outline:2px solid var(--accent-3);
  outline-offset:2px;
  border-color:var(--accent-3);
}

/* --------- Form --------- */
.form input,.form select,.form textarea{
  width:100%; color:var(--text);
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:10px; padding:.55rem .7rem;
}
.form textarea{resize:vertical}

/* --------- Pills / Chips --------- */
.pill{
  display:inline-block; padding:.3rem .55rem;
  border-radius:0px; font-size:.86rem;
  border:1px solid var(--line); background:var(--panel);
}
.pill.success{background:rgba(34,197,94,.12);border-color:rgba(34,197,94,.35);color:#86f3b0; margin:15px}
.pill.warning{background:rgba(234,179,8,.11);border-color:rgba(234,179,8,.35);color:#ffe08a; margin:15px}
.pill.danger{background:rgba(239,68,68,.12);border-color:rgba(239,68,68,.35);color:#ff9b9b; margin:15px}

/* Chip base */
.chip{display:inline-flex;align-items:center;gap:.45rem;background:rgba(255,255,255,.04);border:1px dashed var(--line);color:var(--text);padding:.28rem .5rem;border-radius:999px;margin:.2rem .3rem .2rem 0}
.chip b{opacity:.9}
.chip a{color:#9ccfff;text-decoration:none}
.chip a:hover{color:#d6ecff}

/* Evidenzia riga giocatore rimosso (liste/tabella) */
.tr-removed{
  background: rgba(239,68,68,.06);
}
.tr-removed:hover{
  background: rgba(239,68,68,.10);
}


/* Chip stato giocatore */
.chip-removed{
  display:inline-flex; align-items:center; gap:6px;
  padding:2px 8px; border-radius:999px; font-size:.82rem;
  color:#ef4444; background:rgba(239,68,68,.12);
  border:1px solid rgba(239,68,68,.32); vertical-align:middle;
}
.chip-removed .dot{width:8px;height:8px;border-radius:50%;background:#ef4444;box-shadow:0 0 0 2px rgba(239,68,68,.18) inset;}

/* --------- Hero --------- */
.page-hero{background:radial-gradient(1200px 600px at 70% -250px,rgba(16,131,168,.45) 0%,transparent 50%);border-bottom:1px solid var(--line)}
.page-hero h1{font-size:clamp(32px,4vw,56px);margin:0 0 14px}

.hero{
  background:
    radial-gradient(1200px 600px at 70% -250px, rgba(16,131,168,.35) 0%, transparent 55%),
    linear-gradient(180deg, rgba(0,0,0,.55), rgba(0,0,0,.35));
  background-size: cover; background-repeat:no-repeat; background-position:center;
  border-bottom:1px solid var(--line); color:var(--text); padding:20px 0;
  border-left:1px;
  border-right:1px;
    
    
}


/* ====== Chip varianti ====== */
.chip:hover { background:rgba(255,255,255,.06); }
.chip.sofifa { border-color:#3aa0ff; background:rgba(58,160,255,.12); }
.chip.tm     { border-color:#15c26b; background:rgba(21,194,107,.12); }

/* ===== Finance Admin ===== */
.f-grid{display:grid;grid-template-columns:360px 1fr;gap:16px}
@media (max-width:980px){.f-grid{grid-template-columns:1fr}}
@media (max-width:480px){.f-kpis{padding:12px}.f-card{margin-top:10px}}
.f-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:14px}
.badge-kpi{display:inline-flex;align-items:center;gap:.35rem;padding:.22rem .6rem;border-radius:999px;border:1px solid rgba(21,194,107,.35);background:rgba(21,194,107,.12);color:#b6ffd2;font-weight:700;white-space:nowrap}
.f-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px}
.f-head h3{margin:0}
.mov-cards{display:none}
@media (max-width:980px){.mov-table{display:none}.mov-cards{display:grid;gap:10px}}
.mov-item{background:rgba(255,255,255,.03);border:1px dashed var(--line);border-radius:12px;padding:12px}
.mov-item .row{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid rgba(255,255,255,.06);padding:6px 0}
.mov-item .row:last-child{border-bottom:none}
.amount-pos{color:#48e981;font-weight:700}
.amount-neg{color:#ff9b9b;font-weight:700}
.kpi-item{display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.03);border:1px dashed var(--line);border-radius:12px;padding:12px 14px;margin:10px 0 0}
.kpi-item .name{font-weight:600}
.f-modal-back{position:fixed;inset:0;background:rgba(0,0,0,.55);display:none;z-index:98}
.f-modal{position:fixed;inset:auto 16px 16px 16px;top:10vh;max-width:620px;margin:0 auto;background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:16px;z-index:99;display:none}
.f-modal.show,.f-modal-back.show{display:block}
.f-modal .form label{display:block;margin:8px 0 4px}
.f-modal .form input,.f-modal .form select,.f-modal .form textarea{width:100%}
.f-modal .form button{width:100%;margin-top:10px}

/* ===== Trade Picker ===== */
.picker-backdrop{position:fixed;inset:0;display:none;background:rgba(8,12,20,.55);backdrop-filter:blur(6px);z-index:900;animation:pb-in .18s ease-out}
@keyframes pb-in{from{opacity:0}to{opacity:1}}
.picker{position:fixed;inset:auto 0 0 auto;left:0;right:0;margin:auto;max-width:1200px;display:none;z-index:901;background:linear-gradient(180deg,rgba(20,28,40,.9),rgba(12,18,28,.92));border:1px solid rgba(255,255,255,.08);border-radius:18px 18px 0 0;box-shadow:0 15px 60px rgba(0,0,0,.5);animation:pk-in .18s ease-out;max-height:82vh;overflow:auto}
@keyframes pk-in{from{transform:translateY(24px);opacity:.6}to{transform:translateY(0);opacity:1}}
.picker header{position:sticky;top:0;display:flex;gap:.5rem;align-items:center;padding:14px 16px;background:linear-gradient(180deg,rgba(18,24,35,.96),rgba(18,24,35,.88));border-bottom:1px solid rgba(255,255,255,.06);z-index:1}
.picker .grid{padding:12px 16px;width:100%}

/* ===== Tables/cards adaptive ===== */
.p-table{width:100%;border-collapse:separate;border-spacing:0 8px}
.p-table thead th{position:sticky;top:0;background:rgba(10,14,22,.85);backdrop-filter:blur(4px);padding:10px;border-bottom:1px solid rgba(255,255,255,.06)}
.p-table tbody tr{background:var(--panel);border:1px solid rgba(255,255,255,.06)}
.p-table td{padding:10px;border-top:1px solid rgba(255,255,255,.05)}
#pk_table_wrap{display:flex !important;justify-content:center;width:100%}
#pk_table_wrap .p-table{width:100%;max-width:1080px;margin:0 auto;table-layout:auto}
@media (max-width:979px){#pk_table_wrap{display:none !important}}

/* ===== Manager Dashboard ===== */
.manager{--bg:#0b1220;--card:#111826;--ink:#e6edf6;--muted:#9fb0c3;--line:rgba(255,255,255,.08);--btn:#167dff;--btn-ol:#2d82ff;--ok:#7dffb3;--okbg:#123f24;--wrn:#ffe07d;--wrnbg:#3d3816;--err:#ff9f9f;--errbg:#431313}
.manager *{box-sizing:border-box}
.manager .container{max-width:1200px;margin:0 auto;padding:14px}
.manager .manager-wrap{display:grid;gap:14px}
.manager .left,.manager .right,.manager .card,.manager .flex-between>div{min-width:0}
.manager .card{background:var(--card);border-radius:14px;padding:16px;box-shadow:0 2px 10px rgba(0,0,0,.25)}
.manager .small{font-size:12px;color:var(--muted)}
.manager .kpi{display:flex;justify-content:space-between;margin:4px 0;color:var(--muted)}
.manager .kpi strong{color:var(--ink)}
.manager .badge{padding:3px 8px;border-radius:999px;font-size:12px}
.manager .badge.ok{background:var(--okbg);color:var(--ok)}
.manager .badge.warn{background:var(--wrnbg);color:var(--wrn)}
.manager .badge.danger{background:var(--errbg);color:var(--err)}
.manager .flex{display:flex;gap:10px;align-items:center}
.manager .flex-between{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.manager .btn{background:var(--btn);color:#fff;border:none;padding:0px 12px;border-radius:8px;font-weight:600;text-decoration:none;transition:transform .06s ease,box-shadow .12s ease,border-color .12s ease,background .12s ease,opacity .12s ease}
.manager .btn:hover{box-shadow:0 6px 20px rgba(0,0,0,.32)}
.manager .btn:active{transform:translateY(1px)}
.manager .btn.outline{background:transparent;border:1px solid var(--btn-ol);color:#fff}
.manager .input,.manager select{width:100%;padding:10px;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--ink)}
.manager .logo{width:64px;height:64px;border-radius:12px;background:var(--bg);display:grid;place-items:center}
.manager .logo img{max-width:50px;max-height:50px}
.manager .kpi-grid{display:grid;gap:10px;grid-template-columns:1fr}
.manager .kpi-card{border:1px solid var(--line);border-radius:12px;padding:12px}
@media(min-width:360px){.manager .kpi-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:600px){.manager .kpi-grid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:900px){.manager .kpi-grid{grid-template-columns:repeat(4,1fr)}}
.manager .roster-toolbar{
  display:grid;
  gap:8px;
  grid-template-columns:minmax(0,1fr);
  width:100%;
  min-width:0;
  box-sizing:border-box;
}
.manager .roster-toolbar > *{
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}
@media(min-width:560px){
  .manager .roster-toolbar{grid-template-columns:repeat(2, minmax(0,1fr))}
  .manager .roster-toolbar > input{grid-column:1 / -1}
  .manager .roster-toolbar > .rt-row2{grid-column:1 / -1}
}
@media(min-width:1200px){
  .manager .roster-toolbar{
    grid-template-columns:minmax(12rem,1.6fr) minmax(8rem,1fr) minmax(8rem,1fr) minmax(10rem,auto);
  }
  .manager .roster-toolbar > input,
  .manager .roster-toolbar > .rt-row2{grid-column:auto}
}
.manager .table-wrap{overflow:auto;border-radius:10px;border:1px solid var(--line)}
.manager table{width:100%;border-collapse:collapse}
.manager th,.manager td{padding:10px;border-bottom:1px solid var(--line);font-size:14px;white-space:nowrap}
.manager th{font-size:12px;letter-spacing:.04em;color:var(--muted);text-transform:uppercase}
.manager td.num{text-align:right}
.manager .player-cards{display:grid;gap:10px}
.manager .player-card{border:1px solid var(--line);border-radius:12px;padding:12px;background:#0e1628}
.manager .pc-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}

.manager .statline{display:flex;gap:10px;color:var(--muted);font-size:13px;flex-wrap:wrap}
.manager .pc-tags{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
.manager .tag{font-size:11px;padding:2px 6px;border-radius:999px;border:1px solid var(--line);color:var(--muted)}
.manager .hide-sm{display:none}
@media(min-width:560px){.manager .hide-sm{display:table-row-group}.manager .player-cards{display:none}}
@media(min-width:900px){.manager .manager-wrap{grid-template-columns:3fr 2fr}}

/* ===== Layout variants ===== */
body.theme-dark{
  color: var(--text);
  background-color: var(--bg);
  background-image:
    radial-gradient(1200px 600px at 60% -200px, #16324a 0%, transparent 60%),
    url('./img/bg.png');
  background-repeat: no-repeat, no-repeat;
  background-position: center -200px, center center;
  background-attachment: fixed, fixed;
  background-size: cover, cover;
}

body.layout-default .container{max-width:1100px}
body.layout-default .page-content{min-height:60vh}
body.manager .container{max-width:1200px}

/* ===== Home cards ===== */
.cards-grid{display:grid;gap:16px;grid-template-columns:1fr}
@media (min-width:780px){.cards-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1100px){.cards-grid{grid-template-columns:repeat(3,1fr)}}
.list{list-style:none;margin:0;padding:0}
.list li{padding:10px 0;border-bottom:1px solid var(--line)}
.list li:last-child{border-bottom:0}

/* ===== Teams Grid ===== */
.teams-grid{display:grid;gap:16px;grid-template-columns:1fr}
@media (min-width:700px){.teams-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1100px){.teams-grid{grid-template-columns:repeat(3,1fr)}}
.team-card{display:grid;grid-template-columns:64px 1fr auto;gap:12px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow-sm)}
.team-card .logo{width:64px;height:64px;border-radius:12px;background:var(--panel);display:grid;place-items:center;overflow:hidden;border:1px solid var(--line)}
.team-card .logo img{width:100%;height:100%;object-fit:contain}
.team-card .name{font-weight:700}
.team-card .meta{color:var(--muted);font-size:.92rem;margin-top:4px}
.team-card .tag{font-size:.75rem;padding:.2rem .5rem;border-radius:999px;border:1px solid var(--line);color:var(--muted);background:rgba(255,255,255,.03)}

/* Players: tabella sempre visibile (card mobile rimosse; sotto 980px la tabella si adatta a card via data-label) */
.players-table{display:block}
.players-cards{display:none}
.player-cards{display:grid;gap:12px}
@media (min-width:980px){.player-cards{display:none}}

/* ===== Buttons themes ===== */
.btn-blue{background:linear-gradient(180deg,var(--blue-600),#2563eb);border-color:transparent;color:#fff;text-shadow:0 1px 0 rgba(0,0,0,.18)}
.btn-blue:hover{filter:brightness(1.05);box-shadow:0 10px 30px rgba(59,130,246,.25)}
.btn-blue:active{transform:translateY(1px)}
.btn-blue-outline{background:transparent;color:var(--blue-500);border:1px solid var(--blue-600)}
.btn-blue-outline:hover{background:rgba(59,130,246,.1);box-shadow:0 6px 18px rgba(59,130,246,.18)}
.btn-blue-outline:active{transform:translateY(1px)}
.btn-green{background:linear-gradient(180deg,var(--green-600),#16a34a);border-color:transparent;color:#fff;text-shadow:0 1px 0 rgba(0,0,0,.18)}
.btn-green:hover{filter:brightness(1.05);box-shadow:0 10px 30px rgba(34,197,94,.25)}
.btn-green:active{transform:translateY(1px)}
.btn-green-outline{background:transparent;color:var(--green-500);border:1px solid var(--green-600)}
.btn-green-outline:hover{background:rgba(34,197,94,.12);box-shadow:0 6px 18px rgba(34,197,94,.2)}
.btn-green-outline:active{transform:translateY(1px)}

.btn-red{background:linear-gradient(180deg,var(--red-600),#CC0E32);border-color:transparent;color:#fff;text-shadow:0 1px 0 rgba(0,0,0,.18)}
.btn-red:hover{filter:brightness(1.05);box-shadow:0 10px 30px rgba(197,24,33,.25)}
.btn-red:active{transform:translateY(1px)}
.btn-red-outline{background:transparent;color:var(--green-500);border:1px solid var(--green-600)}
.btn-red-outline:hover{background:rgba(197,24,33,.12);box-shadow:0 6px 18px rgba(197,24,33,.2)}
.btn-red-outline:active{transform:translateY(1px)}




/* ===== Players toolbar sticky ===== */
.players-toolbar{position:static;top:66px;left:1;right:1;z-index:8;border-radius:1;border-left:1;border-right:1; margin-top:10px}
.players-toolbar .roster-toolbar{max-width:100%;margin:0 auto;padding:8px 20px}
.players-toolbar-spacer{height:64px}
@media (max-width:560px){.players-toolbar-spacer{height:72px}}

/* ===== Players row expanded (desktop) ===== */
@media (min-width:880px){
  .acc-content{display:grid;grid-template-columns:1fr 280px;gap:16px;align-items:flex-start}
  .acc-actions{border-left:1px dashed var(--line);padding-left:14px}
  .acc-actions .btn{width:100%}
}
.acc-toggle .chev{display:inline-block;transition:transform .15s ease}
.acc-toggle.is-open .chev{transform:rotate(180deg)}

/* ===== Tooltip ===== */
.tip{position:relative;cursor:help}
.tip::after{
  content:attr(data-tip);position:absolute;left:50%;bottom:120%;transform:translateX(-50%);
  background:rgba(0,0,0,.85);color:#fff;font-size:12px;line-height:1.35;padding:6px 8px;border-radius:8px;
  width:max-content;max-width:260px;box-shadow:0 6px 18px rgba(0,0,0,.35);opacity:0;pointer-events:none;transition:opacity .12s ease;white-space:normal;z-index:40
}
.tip::before{content:"";position:absolute;left:50%;bottom:110%;transform:translateX(-50%);border:6px solid transparent;border-top-color:rgba(0,0,0,.85);opacity:0;transition:opacity .12s ease;z-index:39}
.tip:hover::after,.tip:hover::before{opacity:1}

/* ============================
   Players (tabella -> card su mobile)
   2 colonne esterne: foto | information (3 righe)
   ============================ */
.players-table .player-information{ display:none; }

@media (max-width:767px){
  .players-table .table{ min-width:0 !important; width:100% !important; }
  .players-table .table thead{display:none}

  .players-table .table > tbody > tr.player-card:not(.acc-row){
    display:grid;
    box-sizing:border-box;
    width:100%;
    grid-template-columns:clamp(76px, 21vw, 94px) minmax(0, 1fr);
    grid-template-rows:auto;
    gap:10px;
    align-items:stretch;
    margin:8px 0;
    padding:12px;
    border:1px solid var(--line);
    border-radius:12px;
    background:var(--panel);
    min-height:0;
  }
  .players-table .table > tbody > tr.player-card.is-removed:not(.acc-row){
    border:1px solid rgba(239,68,68,.62);
    box-shadow:0 0 0 1px rgba(239,68,68,.18);
    background:linear-gradient(165deg,rgba(239,68,68,.05),var(--panel));
  }
  .players-table .table > tbody > tr.player-card:not(.acc-row)::after{
    content:none !important;
    display:none !important;
  }
  .players-table .table > tbody > tr.player-card:not(.acc-row):hover{
    background:var(--panel);
  }
  .players-table .table > tbody > tr.acc-row{
    display:none !important;
  }

  /* Nascondi colonne desktop / azioni / CM */
  .players-table .table > tbody > tr.player-card > td.pl-desk{
    display:none !important;
  }

  .players-table .table td{
    margin:0;
    padding:0 !important;
    border:0 !important;
    background:transparent;
    min-width:0;
  }
  .players-table .table td::before{ content:none !important; }

  /* Colonna 1: foto */
  .players-table .table > tbody > tr.player-card td.player-photo{
    grid-column:1;
    grid-row:1;
    display:flex;
    align-items:flex-end;
    justify-content:center;
    align-self:stretch;
    overflow:hidden;
  }
  .players-table .table > tbody > tr.player-card td.player-photo img{
    width:100% !important;
    height:100% !important;
    max-height:135px;
    border-radius:10px;
    object-fit:contain;
    object-position:center bottom;
    display:block;
  }

  /* Colonna 2: tre righe annidate */
  .players-table .table > tbody > tr.player-card td.player-information{
    grid-column:2;
    grid-row:1;
    display:grid;
    grid-template-rows:auto auto auto;
    align-content:center;
    gap:8px;
    min-width:0;
  }

  .players-table .player-row{
    min-width:0;
  }

  /* Riga 1: flag | nome | [chip + OVR] */
  .players-table .player-row-1{
    display:grid;
    grid-template-columns:auto minmax(0, 1fr) auto;
    align-items:center;
    gap:7px;
  }
  .players-table .player-flag{
    display:inline-flex;
    align-items:center;
    flex-shrink:0;
    line-height:1;
  }
  .players-table .player-flag img{
    width:16px;
    height:16px;
    display:block;
  }
  .players-table .player-name{
    min-width:0;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    color:inherit;
    text-decoration:none;
    font-weight:700;
    font-size:.95rem;
  }
  .players-table .player-row-1-status{
    display:flex;
    align-items:center;
    gap:6px;
    flex-shrink:0;
  }
  .players-table .chip-removed--mob{
    flex-shrink:0;
    margin:0;
    padding:0 4px;
    gap:2px;
    font-size:.46rem;
    font-weight:800;
    line-height:1.1;
    letter-spacing:.01em;
    vertical-align:middle;
    border-width:1px;
  }
  .players-table .chip-removed--mob .dot{
    width:4px;
    height:4px;
    animation:none;
    box-shadow:none;
  }
  .players-table .player-foot-group{
    display:inline-flex;
    align-items:center;
    gap:3px;
    flex-shrink:0;
  }

  /* Riga 2: ruolo · età · altezza · piede [+ smarrito] */
  .players-table .player-row-2{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:flex-start;
    gap:6px clamp(6px, 2vw, 12px);
    min-width:0;
  }

  .players-table .player-age,
  .players-table .player-height,
  .players-table .player-foot{
    flex-shrink:0;
    font-size:.8rem;
    color:#94a3b8;
    font-variant-numeric:tabular-nums;
  }

  /* Riga 3: club | VDM | ING */
  .players-table .player-row-3{
    display:grid;
    grid-template-columns:minmax(0, 1fr) auto auto;
    align-items:center;
    gap:8px;
    min-width:0;
  }
  .players-table .player-club{
    min-width:0;
    display:flex;
    align-items:center;
    gap:5px;
  }
  .players-table .player-club .team-cell{
    display:inline-flex;
    align-items:center;
    gap:5px;
    min-width:0;
    max-width:100%;
    overflow:hidden;
  }
  .players-table .player-club .team-logo{
    width:18px;
    height:18px;
    border-radius:9px;
    flex:0 0 auto;
  }
  .players-table .player-club .team-name{
    min-width:0;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    font-weight:600;
    font-size:.8rem;
    color:#cbd5e1;
  }
  .players-table .player-club .team-free{
    color:#94a3b8;
    font-style:italic;
    font-size:.8rem;
  }
  .players-table .player-vdm,
  .players-table .player-ing{
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    justify-content:center;
    gap:1px;
    flex-shrink:0;
    line-height:1.15;
  }
  .players-table .player-stat-lbl{
    font-size:.65rem;
    font-weight:600;
    letter-spacing:.02em;
    color:#94a3b8;
    text-transform:uppercase;
  }
  .players-table .player-stat-val{
    font-size:.82rem;
    color:#cbd5e1;
    white-space:nowrap;
  }
  .players-table .player-ing .player-stat-val{
    font-weight:800;
  }

  /* Schermi stretti: gap / etichette leggermente ridotti */
  @media (max-width:360px){
    .players-table .table > tbody > tr.player-card:not(.acc-row){
      gap:8px;
      padding:10px;
    }
    .players-table .table > tbody > tr.player-card td.player-information{
      gap:6px;
    }
    .players-table .player-row-1{ gap:5px; }
    .players-table .player-row-2{ gap:6px; }
    .players-table .player-row-3{ gap:6px; }
    .players-table .player-name{ font-size:.9rem; }
    .players-table .player-stat-lbl{ font-size:.6rem; }
    .players-table .player-stat-val{ font-size:.78rem; }
  }
}

/* ===== Mobile UX for /trade ===== */

/*** Desktop (default) ***/
.m-sticky-toolbar,.m-tabs{display:none}

/* Opbar (Scambio/Prestito/Svincolo/Smarrito) */
.m-opbar{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px}
.m-opbar .btn-op{padding:.45rem .65rem;font-size:.95rem;line-height:1}

/* Mobile: opbar 2x2, max 240px centrata */
@media (max-width:820px){
  .m-opbar{
    width:min(240px,100%);
    margin:8px auto;
    display:grid; grid-template-columns:1fr 1fr; gap:8px;
    position:static !important; top:auto !important; z-index:auto !important;
    background:transparent !important; box-shadow:none !important;
  }
  .m-opbar .btn-op{
    padding:.42rem .55rem; font-size:.92rem; line-height:1;
    width:100%; min-width:0;
  }
  /* sopra: Scambio/Prestito — sotto: Svincolo/Smarrito */
  .m-opbar .btn-swap,.m-opbar .btn-loan{order:1}
  .m-opbar .btn-release,.m-opbar .btn-lost{order:2}
}
/* Hard-fix anti-sticky ereditato */
.card > .m-opbar,.m-opbar{
  position:static !important; top:auto !important; z-index:auto !important;
  background:transparent !important; box-shadow:none !important;
}
.m-opbar + *{ margin-top:8px; }

/* Swap grid (select + liste) */
.swap-grid{display:grid;gap:10px;grid-template-columns:1fr 1fr;align-items:start;margin-top:6px}
@media (max-width:820px){ .swap-grid{grid-template-columns:1fr} }

/* Tabs mobili (Team avversario / La tua squadra) */
.swap-tabs{display:none;gap:8px;margin:8px 0}
.swap-tabs .m-tab{
  padding:.45rem .8rem;border:1px solid var(--line);
  border-radius:999px;background:rgba(255,255,255,.04);white-space:nowrap;
}
.swap-tabs .m-tab.active{border-color:var(--blue-600);box-shadow:0 6px 18px rgba(59,130,246,.18)}
/* Mobile: tabs visibili, una sola pane alla volta, testo bianco */
.m-tabpane{display:block}
@media (max-width:980px){
  .swap-tabs{display:flex;width:min(240px,100%);margin:8px auto}
  .swap-tabs .m-tab{color:#fff !important}
  .swap-tabs .m-tab.active{color:#fff !important}
  .m-tabpane{display:none}
  .m-tabpane.active{display:block}
}

/* Select Team avversario compatta */
@media (max-width:820px){
  #team_b{width:min(240px,100%);margin:0 auto 8px;display:block}
}

/* Cards lista più compatte */
#opp_cards_wrap .players-cards .player-card,
.players-cards .player-card{padding:10px 12px}

/* Campi denaro — sotto la swap-grid nel markup attuale
   (se hai un wrapper dedicato usa una classe; altrimenti questa regola targetta il blocco) */
@media (max-width:820px){
  .swap-grid + div[style*="grid-template-columns:repeat(2"]{
    max-width:240px !important;
    margin:10px auto 0 !important;
    grid-template-columns:1fr !important; /* uno sotto l’altro */
    gap:8px !important;
  }
  .swap-grid + div[style*="grid-template-columns:repeat(2"] label{font-size:.9rem}
}

/* --- Blocchi interni più compatti --- */
#opp_cards_wrap .players-cards .player-card,
.players-cards .player-card{ padding:10px 12px; }
#team_b{ max-width:240px; }                 /* select più stretta su mobile */
/* Wizard scambio: select a tutta larghezza */
.swap-wizard #team_b,
.swap-wizard #loan_team,
select.swap-team-select{
  width:100% !important;
  max-width:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
}

/*** Mobile ***/
@media (max-width:720px){

  .container.card{overflow:visible}

  /* Toolbar “Nuova / Ricevute / Le mie” — resta sticky */
  .m-sticky-toolbar{
    display:flex;gap:8px;padding:8px 12px;position:sticky;top:62px;z-index:120;
    background:linear-gradient(180deg,rgba(14,20,27,.95),rgba(14,20,27,.92));border-bottom:1px solid var(--line);
    backdrop-filter:blur(6px);overflow-x:auto
  }
  .m-sticky-toolbar .btn{white-space:nowrap}

  /* FIX: opbar NON sticky (niente overlay durante lo scroll) */
  .m-opbar{
    position: static !important;
    top: auto !important;
    z-index: auto !important;
    display: grid;
    grid-template-columns: 1fr 1fr;  /* 2x2 */
    gap: 8px;
    padding: 0;
    margin: 8px 0;
    background: transparent !important;
    box-shadow: none !important;
  }

  /* Tabs contenuto controparte/tuo team */
  .m-tabs{display:flex;gap:8px;padding:8px 0}
  .m-tab{padding:.45rem .8rem;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.04);white-space:nowrap}
  .m-tab.active{border-color:var(--blue-600);box-shadow:0 6px 18px rgba(59,130,246,.18)}
  .m-tabpane{display:none}
  .m-tabpane.active{display:block}

  .m-listbox{max-height:54vh;overflow:auto;border:1px dashed var(--line);padding:10px;border-radius:10px;background:rgba(255,255,255,.02)}

  .trade-mobile .card{padding:12px}

  /* KPI 2×2 (1: Cassa, 2: Monte, 3: Residuo, 4: Prestiti) */
  .kpi-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .kpi-grid .kpi-card{width:100%}
}

/* Hard fix anti-sticky per qualunque eredità globale */
.card > .m-opbar,
.m-opbar{
  position: static !important;
  top: auto !important;
  z-index: auto !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* Spazio sotto all'opbar per evitare sovrapposizioni visive */
.m-opbar + *{ margin-top: 8px; }


/* Barra orizzontale helper */
.h-scroll{overflow-x:auto;white-space:nowrap}
.h-scroll>*{white-space:nowrap}

/*** Trade: griglia Controparte (desktop 2 col / mobile 1 col) ***/
.trade-opponent-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:980px}
.trade-opponent-grid>*{min-width:0}
@media (max-width:720px){
  .trade-opponent-grid{grid-template-columns:1fr !important}
  #playersB_wrap,.opponent-players{grid-column:1 / -1;width:100%}
}
#playersB_wrap{width:100%}
#playersB_wrap em{display:block;white-space:normal;color:var(--muted)}



/* === Prestito (loan_in) — rifinitura mobile ========================== */
@media (max-width: 620px){

  /* Select "Team cedente" compatta e centrata */
  #loan_team{
    width: min(340px, 100%);
    margin: 0 0 8px;
    display: block;
  }

  /* Griglia dei campi (Giocatore / Periodo / Fee):
     stack verticale, centrata e larga max 240px */
  #loanForm > div[style*="grid-template-columns:repeat(3"]{
    max-width: 340px !important;
    margin: 10px auto 0 !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }
  #loanForm > div[style*="grid-template-columns:repeat(3"] label{
    font-size: .9rem;
  }

  /* Bottone "Invia richiesta" centrato e stretto */
  #loanForm #loanSubmit{
    width: min(340px, 100%);
    margin: 10px auto 0;
    display: block;
  }
}

/* Card elenco giocatori prestito: già compatte,
   ma ribadisco il padding per coerenza */
#loan_cards .player-card{ padding:10px 12px; }
/* ====== Checkboxes belli (tema scuro) ====== */
input[type="checkbox"].chk{
  -webkit-appearance: none;
  appearance: none;
  width: 18px; height: 18px;
  margin: 0;
  border: 1.5px solid var(--line);
  border-radius: 6px;
  background: var(--panel);
  display:inline-grid; place-content:center;
  transition: border-color .12s ease, background .12s ease, box-shadow .12s ease;
}
input[type="checkbox"].chk::before{
  content:"";
  width: 10px; height: 10px;
  transform: scale(0);
  transition: transform .12s ease;
  /* disegno del segno di spunta via clip-path */
  background: var(--green-600);
  clip-path: polygon(12% 55%, 0 67%, 38% 100%, 100% 30%, 88% 18%, 38% 70%);
}
input[type="checkbox"].chk:checked{
  border-color: var(--green-600);
  background: radial-gradient(50% 50% at 50% 50%, rgba(34,197,94,.18) 0%, rgba(34,197,94,.08) 100%);
  box-shadow: 0 0 0 2px rgba(34,197,94,.14) inset;
}
input[type="checkbox"].chk:checked::before{ transform: scale(1); }
input[type="checkbox"].chk:focus-visible{
  outline:2px solid var(--accent-3);
  outline-offset:2px;
  border-color: var(--accent-3);
}
input[type="checkbox"].chk:disabled{
  opacity:.45; cursor:not-allowed;
}

/* piccolo spazio fra checkbox e testo */
.chk + span{ margin-left:.45rem; }

/* badge ruolo: già presenti le 4 varianti r-gk / r-def / r-mid / r-att,
   qui assicuro un leggero allineamento verticale in liste lunghe */
.role-badge{vertical-align:middle; margin:0 .05rem; font-weight:700}

/* === Micro badge OVR — vedi assets/css/ovr.css (scala unificata) === */

/* === Trade header KPI layout ===================================== */
/* Card KPI (override solo per la sezione trade header) */
.trade-kpis .kpi-card{
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  padding: 14px;
  box-shadow: var(--shadow-sm);
}
/* Desktop: 4 in linea */
.trade-kpis{
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 14px;
  margin-top: 12px;
}
/* Mobile: 2 per riga */
@media (max-width:720px){
  .trade-kpis{
    grid-template-columns: repeat(4, minmax(0,1fr));
    gap: 10px;
  }
}

/* Icona campanella header */
.header-icon {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  margin-left: 12px;
  text-decoration: none;
}
.header-icon i {
  color: #ffffff;
  transition: color 0.2s ease;
}
/* Badge numero notifiche */
.header-icon .badge {
  position: absolute;
  top: -6px;
  right: -10px;
  background: #e63946;
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  padding: 2px 6px;
  border-radius: 12px;
  line-height: 1;
}
/* Lampeggio colore (oro ↔ ambra) */
@keyframes bellPulse { 0%,100%{color:#FFD700;} 50%{color:#FFA500;} }
/* Oscillazione campanella */
@keyframes bellShake{
  0%{transform:rotate(0deg);}12%{transform:rotate(-18deg);}24%{transform:rotate(14deg);}
  36%{transform:rotate(-10deg);}48%{transform:rotate(7deg);}60%{transform:rotate(-4deg);}
  72%{transform:rotate(2deg);}84%{transform:rotate(-1deg);}100%{transform:rotate(0deg);}
}
/* Stato con notifiche: oro + animazioni */
.header-icon i.has-notify{
  color:#FFD700;
  animation: bellPulse 1.2s infinite, bellShake 1.8s ease-in-out infinite;
  transform-origin:50% 0%;
}
/* Hover: solo pulse (opzionale) */
.header-icon:hover i.has-notify{ animation: bellPulse 1.2s infinite; }
/* Accessibilità */
@media (prefers-reduced-motion: reduce) { .header-icon i.has-notify{ animation:none; } }
/* Proteggi i font di Font Awesome da override */
.fa-solid{font-family:"Font Awesome 6 Free" !important;font-weight:900;}
.fa-regular{font-family:"Font Awesome 6 Free" !important;font-weight:400;}
.fa-brands{font-family:"Font Awesome 6 Brands" !important;font-weight:400;}
/* Utility per testo solo per screen reader */
.sr-only{
  position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

.t-inbox tbody tr:not(:last-child),
.t-mine tbody tr:not(:last-child){ border-bottom:1px solid rgba(255,255,255,0.08); }

/* ====== Preset: Tabella Scroll-X ====== */
.scroll-x-table{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
.scroll-x-table table{ width:100%; min-width:1200px; table-layout:auto; }
.scroll-x-table th,.scroll-x-table td{ padding:12px 14px; vertical-align:top; white-space:nowrap; }
.scroll-x-table thead th{ white-space:nowrap; }
/* Colonne tipiche */
.scroll-x-table .col-id{ width:72px; }
.scroll-x-table .col-da{ width:260px; }
.scroll-x-table .col-pkg{ min-width:520px; white-space:normal; }
.scroll-x-table .col-cash{ width:180px; text-align:right; }
.scroll-x-table .col-actions{ width:230px; }
/* Stile pacchetti + chip */
.scroll-x-table .pkg > div{ margin:6px 0; }
.scroll-x-table .chip{
  display:inline-block; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.08);
  padding:2px 8px; border-radius:999px; margin-right:8px; font-size:.85em; white-space:nowrap;
}
.scroll-x-table .btnrow{ display:inline-flex; gap:8px; flex-wrap:nowrap; }
.scroll-x-table .col-cash div{ white-space:nowrap; }

.finance-chart svg{width:100%;height:auto;display:block}

/* colore base icona */
.site-header .icon-btn .icon-bell { color: #9fb0c3; }
/* evidenziata quando ci sono notifiche (classe "has") */
.site-header .icon-btn.notif.has .icon-bell { color: #facc15; }
/* puntino opzionale */
.site-header .notif-dot{
  position:absolute; right:-2px; top:-2px; width:8px; height:8px; border-radius:50%;
  background:#facc15; box-shadow:0 0 0 2px rgba(0,0,0,.35);
}
/* fallback per alcune versioni del drawer mobile */
.site-header #notif-btn-mobile.notif.has .icon-bell,
.site-header #notif-btn-desktop.notif.has .icon-bell{ color:#facc15; }

/* wrapper scroll orizzontale mobile */
.table-wrap{
  width:100%; overflow-x:auto; border:1px solid var(--line, rgba(255,255,255,.08));
  border-radius:10px; background:rgba(255,255,255,.02);
}
/* tabella base */
.xg-table{
  width:100%; border-collapse:collapse; min-width:720px; font-size:14px;
}
.xg-table thead th{
  text-align:left; font-weight:700; padding:10px 12px;
  border-bottom:1px solid var(--line, rgba(255,255,255,.08)); white-space:nowrap;
}
.xg-table tbody td{
  padding:10px 12px; border-bottom:1px dashed var(--line, rgba(255,255,255,.08));
  vertical-align:middle;
}
.xg-table tbody tr:hover{ background:rgba(255,255,255,.03); }
/* utilità */
.ta-right{text-align:right;} .ta-center{text-align:center;} .nowrap{white-space:nowrap;}
.mono{font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;}
/* badge Dettagli A ⇄ B */
.badge{
  display:inline-block; padding:2px 8px; border-radius:999px; font-size:12px; line-height:18px;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12);
}
.badge-swap{ letter-spacing:.3px; }
/* importi */
.ml-amount{ font-weight:700; } .ml-amount::first-letter{ letter-spacing:.1px; }
/* stato */
.status{
  display:inline-flex; align-items:center; gap:6px;
  padding:3px 8px; border-radius:999px; font-size:12px; line-height:18px; font-weight:800;
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12);
}
.status-applied{ color:#86efac; background:rgba(34,197,94,.18); border-color:rgba(34,197,94,.45); }
.status-pending{ color:#fde047; background:rgba(250,204,21,.18); border-color:rgba(250,204,21,.5); }
.status-rejected{ color:#fecaca; background:rgba(248,113,113,.2); border-color:rgba(248,113,113,.5); }
.status-admin_approved{ color:#86efac; background:rgba(34,197,94,.18); border-color:rgba(34,197,94,.45); }
/* filtro select */
.trade-filter{ margin:12px 0 10px; }
.trade-filter select{
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); color:inherit;
  padding:6px 10px; border-radius:8px; outline:none;
}

/* ===== Team Hero (stile Football Manager) ===== */
.team-hero{
  padding:16px 16px 10px; display:grid; grid-template-columns:1fr 1.3fr; gap:18px;
  background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03));
  border:1px solid var(--line);
}
@media (max-width: 820px){ .team-hero{ grid-template-columns: 1fr; } }
.team-hero-left{ display:flex; gap:14px; align-items:center; }
.team-hero-logo{
  width:96px; height:96px; border-radius:16px; background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.12); display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.team-hero-logo img{ max-width:100%; max-height:100%; object-fit:contain; }
.team-hero-name{ font-size:1.35rem; font-weight:800; line-height:1; }
.team-hero-sub{ margin-top:6px; display:flex; gap:8px; flex-wrap:wrap; }
.chip.soft{ background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); }
.team-hero-right{ display:flex; align-items:center; }
.kpi-grid{ width:100%; display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:10px; }
@media (max-width: 820px){ .kpi-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); } }
.kpi-card{ background:rgba(0,0,0,.18); border:1px solid rgba(255,255,255,.10); border-radius:12px; padding:10px 12px; }
.kpi-label{ font-size:.78rem; letter-spacing:.3px; color:#a8b2c1; display:flex; gap:6px; align-items:center; }
.kpi-value{ margin-top:6px; font-weight:800; font-size:1.05rem; display:flex; gap:8px; align-items:center; }
.kpi-value.pos{ color:#b6f4c6; } .kpi-value.neg{ color:#f8b4b4; } .kpi-value.top{ display:flex; gap:8px; align-items:center; }
/* barra infrastrutture */
.team-hero-infra{
  grid-column:1 / -1; margin-top:2px; padding-top:8px;
  border-top:1px dashed rgba(255,255,255,.10); display:flex; gap:8px; flex-wrap:wrap;
}
/* colori icone */
.ico-manager{color:#60a5fa;} .ico-saldo{color:#34d399;} .ico-ovr{color:#a78bfa;}
.ico-age{color:#f59e0b;} .ico-count{color:#94a3b8;} .ico-top{color:#fbbf24;} .ico-wage{color:#22c55e;}
.ico-prim{color:#10b981;} .ico-stadio{color:#38bdf8;} .ico-tsm{color:#ef4444;} .ico-tv{color:#60a5fa;}
/* Forza Squadra */
.xg-stars i{ color:#fbbf24; } .ico-stars{ color:#eab308; }
.xg-stars i.fa-star,
.xg-stars i.fa-star-half-stroke{ color:#fbbf24; }
.xg-stars i.fa-regular.fa-star{ color:#ffffff; }
.ico-info{ color:#9ca3af; margin-left:4px; cursor:pointer; }
.ico-info:hover{ color:#fbbf24; }

/* ================================
   Finance Add-on (safe merge)
   Aggiunge SOLO le classi mancanti
   ================================ */
.table{ width:100%; border-collapse:collapse; min-width:720px; font-size:14px; }
.table thead th{
  text-align:left; font-weight:700; padding:10px 12px;
  border-bottom:1px solid var(--line, rgba(255,255,255,.08)); white-space:nowrap;
}
.table tbody td{
  padding:10px 12px; border-bottom:1px dashed var(--line, rgba(255,255,255,.08)); vertical-align:middle;
}
.table tbody tr:hover{ background: rgba(255,255,255,.03); }
/* Utility importi e segni */
.t-right{text-align:right;} .sign{font-weight:800;} .sign.plus{color:var(--green-600, #22c55e);} .sign.minus{color:#ef4444;}
/* Header/Content per card finanza */
.card-header{ padding:12px 14px; border-bottom:1px solid var(--line); font-weight:700; }
.card-content{ padding:14px; }
/* Badge categoria ledger */
.badge-type{
  display:inline-block; padding:3px 8px; border-radius:999px; font-size:.78rem; font-weight:700; border:1px solid var(--line);
}
.badge-type.premio{ background:rgba(34,197,94,.12); border-color:rgba(34,197,94,.35); color:#b6ffd2; }
.badge-type.stadio_bonus{ background:rgba(59,130,246,.12); border-color:rgba(59,130,246,.35); color:#cfe3ff; }
.badge-type.match_bonus{ background:rgba(52,211,153,.12); border-color:rgba(52,211,153,.38); color:#a7f3d0; }
.badge-type.struttura{ background:rgba(255,198,134,.10); border-color:rgba(255,198,134,.35); color:#ffdcb6; }
.badge-type.ingaggi{ background:rgba(239,68,68,.10); border-color:rgba(239,68,68,.35); color:#ffc7c7; }
.badge-type.market{ background:rgba(99,102,241,.10); border-color:rgba(99,102,241,.35); color:#d7dbff; }
.badge-type.prestito{ background:rgba(14,165,233,.12); border-color:rgba(14,165,233,.35); color:#bfe6ff; }
.badge-type.asta{ background:rgba(234,179,8,.12); border-color:rgba(234,179,8,.35); color:#ffe08a; }
.badge-type.draft{ background:rgba(168,85,247,.12); border-color:rgba(168,85,247,.35); color:#ecd7ff; }
.badge-type.diritti_tv{ background:rgba(16,185,129,.12); border-color:rgba(16,185,129,.35); color:#bff3df; }
.badge-type.multa{ background:rgba(239,68,68,.12); border-color:rgba(239,68,68,.35); color:#ffc7c7; }
.badge-type.manuale{ background:rgba(255,255,255,.04); border-color:rgba(255,255,255,.12); color:var(--text); }
/* Prossime scadenze */
.deadlines-list{ list-style:none; padding:0; margin:0; display:grid; gap:10px; }
.deadlines-list li{
  display:grid; gap:4px; padding:10px 12px;
  border:1px dashed var(--line); border-radius:12px; background:rgba(255,255,255,.02);
}
.cal-badge{
  display:inline-grid; place-items:center; width:34px; height:34px; border-radius:8px;
  background:rgba(17,27,40,.9); border:1px solid rgba(34,50,72,.9); font-weight:800;
}
/* Responsive (tabelle finanza in card su mobile) */
@media (max-width: 980px){
  .table thead{ display:none; }
  .table tr{
    display:grid; grid-template-columns:1fr 1fr; gap:6px;
    padding:8px 6px; border:1px dashed var(--line); border-radius:10px; margin-bottom:8px;
    background: var(--panel);
  }
  .table tbody td{ border-bottom:none; padding:6px 6px; }
  .t-right{ text-align:left; }
}

/* Hover effetti logo team */
a.team-meta, a.team-cell { display:inline-flex; }
a.team-meta:hover .team-logo,
a.team-cell:hover .team-logo {
  box-shadow: 0 0 0 3px rgba(46,204,113,.7);
  transform: scale(1.05);
  transition: .2s;
}

/* ===== MOBILE — card stile SoFIFA ===== */
.player-card--compact{
  display:grid;
  grid-template-columns: 50px 1fr;    /* sinistra: foto; destra: contenuti */
  grid-template-rows: auto;
  gap: 8px 10px;
  align-items:start;
  width:100%;
  max-width:none;
}

/* Colonna sinistra */
.player-card--compact .pc-left{
  grid-column:1; grid-row:1;
  display:flex; flex-direction:column; align-items:center; gap:6px;
  min-width:74px;
}
.player-card--compact .pc-photo{
  width:74px; height:74px; border-radius:12px; object-fit:cover; display:block;
  box-shadow: 0 0 0 6px rgba(0,0,0,.5) inset;
  background: radial-gradient(circle, rgba(0,0,0,.5) 0%, rgba(0,0,0,0) 100%);
}
.player-card--compact .pc-flag-age{
  display:flex; align-items:center; gap:6px; font-size:.88rem; color:#cfd7e3;
}

/* Colonna destra */
.player-card--compact .pc-right{
  grid-column:2; grid-row:1; 
  display:flex; flex-direction:column; gap:6px;
}

/* Riga 1: nome + ruolo + OVR + toggle */
.player-card--compact .row-top{
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
}
.player-card--compact .row-top .push-right{ margin-left:auto; }

/* Riga 2: logo team + nome team */
.player-card--compact .row-team{
  display:flex; align-items:center; gap:8px; min-height:24px;
}
.player-card--compact .team-logo{
  width:24px; height:24px; border-radius:6px; object-fit:cover;
  background: rgba(255,255,255,.06);
  box-shadow: 0 0 0 2px rgba(0,0,0,.25) inset;
}

/* Riga 3: VDM + Ing + SoFIFA */
.player-card--compact .row-econ{
  display:flex; align-items:center; gap:6px; flex-wrap:wrap;
  font-size:.88rem; white-space:wrap;
}
.player-card--compact .row-econ .meta-pack{ display:inline-flex; gap:6px; }
.player-card--compact .row-econ .sofifa img{
  display:inline-block; width:20px; height:20px; border-radius:4px;
}

/* Fisarmonica dettagli */
.player-card--compact .pc-acc{ margin-top:8px; }

/* Card lista players: disabilitate (HTML rimosso); tabella unica */
.players-cards > .player-card { width: 100%; }
.players-cards { display: none; }
.players-table { display: block; }

/* Pulsante toggle più compatto su mobile */
.player-card--compact .btn.btn-blue-outline{
  padding: 4px 8px;
  line-height: 1;
}

/* Adattamenti XS */
@media (max-width:480px){
  .player-card--compact{ gap:6px 8px; }
  .player-card--compact .pc-photo{ width:60px; height:60px; border-radius:10px; }
  .player-card--compact .team-logo{ width:20px; height:20px; }
}


/* Fallback minimi nel caso mancassero in app.css */
.page-hero{
  padding:18px 0;
  background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,0));
  border-bottom:1px solid var(--line, #2a3948);
  margin-bottom:10px;

  /* 👇 Assicura che l'hero stia sotto qualsiasi overlay/drawer */
  position: relative;
  z-index: 0;
}
.page-hero .hero-title{font-weight:800;letter-spacing:.2px}
.page-hero .hero-subtitle{opacity:.95}

/* 👇 Alza con certezza il drawer e il backdrop sopra ogni contenuto */
#site-drawer,
#drawer-backdrop{
  position: fixed;       /* giusto nel caso in cui non lo fossero già */
  z-index: 9999;         /* più alto di tutto il resto */
}



.flash{
  padding:12px 14px; border-radius:12px; margin-bottom:10px;
  border:1px solid transparent; font-weight:600;
  box-shadow:0 6px 18px rgba(0,0,0,.18)
}
.flash--ok{
  background:rgba(34,197,94,.15);
  border-color:rgba(34,197,94,.4);
  color:#c8f5d5;
}
.flash--err{
  background:rgba(239,68,68,.15);
  border-color:rgba(239,68,68,.45);
  color:#ffd3d3;
}





/* Badge “Smarrito” */
.chip-removed{
  display:inline-flex;align-items:center;gap:6px;
  padding:2px 8px;border-radius:999px;
  background:rgba(239,68,68,.12);
  border:1px solid rgba(239,68,68,.35);
  color:#fecaca;font-weight:700
}
.chip-removed .dot{
  width:8px;height:8px;border-radius:999px;background:#ef4444;
  box-shadow:0 0 0 2px rgba(239,68,68,.35);
  animation:removedPulse 1.8s ease-out infinite
}
@keyframes removedPulse{
  0%{box-shadow:0 0 0 0 rgba(239,68,68,.6)}
  70%{box-shadow:0 0 0 8px rgba(239,68,68,0)}
  100%{box-shadow:0 0 0 0 rgba(239,68,68,0)}
}
/* Riga attenuata nelle tabelle */
tr.row-removed td{ background:rgba(239,68,68,.06) }


/* === Date/Time picker — icona calendario bianca globale (dark friendly) === */

:root{
  /* dimensioni/spacing dell’icona */
  --dt-icon-size: 18px;
  --dt-icon-pad: 8px;

  /* SVG bianco (percent-encoded) usato come background dell’indicatore */
  --dt-icon-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'%3E%3Cpath d='M7 2h2v2h6V2h2v2h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2V2zm12 8H5v10h14V10zM5 8h14V6H5v2z'/%3E%3C/svg%3E");
}

/* palette scura nativa del controllo (utile anche su Firefox) */
input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="month"],
input[type="week"]{
  color-scheme: dark;
  /* spazio a destra per l'icona ingrandita */
  padding-right: calc(var(--dt-icon-size) + var(--dt-icon-pad)*2);
}

/* Sostituisce l’icona nativa con lo SVG bianco — Blink/WebKit */
input[type="date"]::-webkit-calendar-picker-indicator,
input[type="time"]::-webkit-calendar-picker-indicator,
input[type="datetime-local"]::-webkit-calendar-picker-indicator,
input[type="month"]::-webkit-calendar-picker-indicator,
input[type="week"]::-webkit-calendar-picker-indicator{
  background-image: var(--dt-icon-svg) !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: var(--dt-icon-size) var(--dt-icon-size) !important;
  opacity: 1 !important;
  filter: none !important;                 /* evita tint scuri del tema */
  cursor: pointer;
  padding: var(--dt-icon-pad);
  margin-right: 2px;
  border-radius: 8px;
}

/* Hover/focus: piccolo highlight per visibilità */
input[type="date"]:hover::-webkit-calendar-picker-indicator,
input[type="time"]:hover::-webkit-calendar-picker-indicator,
input[type="datetime-local"]:hover::-webkit-calendar-picker-indicator,
input[type="month"]:hover::-webkit-calendar-picker-indicator,
input[type="week"]:hover::-webkit-calendar-picker-indicator,
input[type="date"]:focus::-webkit-calendar-picker-indicator,
input[type="time"]:focus::-webkit-calendar-picker-indicator,
input[type="datetime-local"]:focus::-webkit-calendar-picker-indicator,
input[type="month"]:focus::-webkit-calendar-picker-indicator,
input[type="week"]:focus::-webkit-calendar-picker-indicator{
  background-color: rgba(255,255,255,.14);
}

/* (Opz.) placeholder più leggibile in dark */
input[type="date"]::placeholder,
input[type="time"]::placeholder,
input[type="datetime-local"]::placeholder,
input[type="month"]::placeholder,
input[type="week"]::placeholder{
  color: rgba(255,255,255,.7);
}

/* Pagina team — fallback se team-page.css non viene applicato (img SoFIFA / chip a dimensione intrinseca) */
.team-page .ico-sofifa {
  width: 16px;
  height: 16px;
  max-width: 16px;
  max-height: 16px;
  object-fit: contain;
  vertical-align: middle;
}
.team-page .chip-sofifa {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 6px;
  border: 1px solid rgba(14, 165, 233, 0.3);
  border-radius: 999px;
  background: rgba(14, 165, 233, 0.08);
  vertical-align: middle;
}
.team-page .chip-market {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-left: 8px;
  padding: 2px 6px;
  border-radius: 999px;
  font-size: 0.85rem;
  color: #22c55e;
  background: rgba(34, 197, 94, 0.12);
  border: 1px solid rgba(34, 197, 94, 0.32);
  vertical-align: middle;
}
.team-page .chip-market i {
  font-size: 0.85em;
  line-height: 1;
  vertical-align: middle;
}

/* --- Sfondo fotografico (stadio / tema) --- */
/* Layer dedicato: evita buchi/grigio durante scroll su pagine lunghe. */
body.theme-dark.has-xg-site-photo,
body.layout-default.has-xg-site-photo {
  position: relative;
  background-color: var(--bg);
  background-image: none !important;
}
body.theme-dark.has-xg-site-photo::before,
body.layout-default.has-xg-site-photo::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-image:
    linear-gradient(var(--xg-site-grad-top), var(--xg-site-grad-bot)),
    var(--xg-site-photo);
  background-repeat: no-repeat, no-repeat;
  background-position: center center, center center;
  background-size: cover, cover;
}
body.theme-dark.has-xg-site-photo.site-bg-fixed::before,
body.layout-default.has-xg-site-photo.site-bg-fixed::before {
  position: fixed;
}

/* ========== Footer sito pubblico ========== */
.site-footer {
  margin-top: 20px;
  margin-bottom: 8px;
  padding: 18px 16px 22px;
  border-radius: var(--radius);
}

/* Partner tecnico (CMTracker) — fascia in evidenza sopra le colonne link */
.site-footer__partner {
  margin: -4px -4px 18px;
  padding: 0;
  border-radius: calc(var(--radius) - 2px);
  background: linear-gradient(
    135deg,
    rgba(56, 189, 248, 0.12) 0%,
    rgba(139, 92, 246, 0.1) 45%,
    rgba(15, 23, 42, 0.55) 100%
  );
  border: 1px solid rgba(56, 189, 248, 0.28);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.2) inset,
    0 12px 32px rgba(0, 0, 0, 0.18);
}

/* Wordmark bianco su trasparente: sfondo verdone scuro + testo chiaro */
.site-footer__partner--cmtracker {
  background: linear-gradient(
    145deg,
    #0f2918 0%,
    #14532d 42%,
    #052e16 100%
  );
  border: 1px solid rgba(34, 197, 94, 0.35);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.35) inset,
    0 12px 28px rgba(0, 0, 0, 0.28);
}
.site-footer__partner-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 18px;
  padding: 16px 18px;
}
.site-footer__partner-badge {
  flex-shrink: 0;
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #e0f2fe;
  background: linear-gradient(145deg, rgba(14, 165, 233, 0.45), rgba(99, 102, 241, 0.35));
  border: 1px solid rgba(125, 211, 252, 0.35);
  padding: 6px 12px;
  border-radius: 999px;
  line-height: 1;
}

.site-footer__partner--cmtracker .site-footer__partner-badge {
  color: #ecfdf5;
  background: linear-gradient(145deg, rgba(22, 163, 74, 0.55), rgba(20, 83, 45, 0.65));
  border-color: rgba(134, 239, 172, 0.4);
}
.site-footer__partner-text {
  flex: 1 1 220px;
  min-width: 0;
}

/* CM Tracker: badge + logo + descrizione sulla stessa riga */
.site-footer__partner--cmtracker .site-footer__partner-inner {
  flex-wrap: nowrap;
  align-items: center;
  gap: 12px 16px;
  padding: 12px 16px;
}
.site-footer__partner--cmtracker .site-footer__partner-text {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 12px 18px;
  flex: 1 1 auto;
  min-width: 0;
}
.site-footer__partner--cmtracker .site-footer__partner-brand {
  flex-shrink: 0;
}
.site-footer__partner-brand {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 1.15rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--text);
  text-decoration: none;
  line-height: 1.25;
}
.site-footer__partner-logo {
  display: block;
  height: 22px;
  width: auto;
  max-width: min(200px, 38vw);
  object-fit: contain;
  object-position: left center;
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.35));
}

.site-footer__partner-logo--wordmark {
  height: 36px;
  max-width: min(300px, 88vw);
  filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.45));
}

.site-footer__partner-name-fallback {
  font-size: 1.15rem;
  font-weight: 800;
  letter-spacing: -0.02em;
}
.site-footer__partner-brand:hover {
  color: #7dd3fc;
  text-decoration: none;
}
.site-footer__partner-brand:hover .site-footer__partner-logo {
  opacity: 0.92;
}
.site-footer__partner-brand:focus-visible {
  outline: 2px solid var(--accent-3, #38bdf8);
  outline-offset: 3px;
  border-radius: 6px;
}
.site-footer__partner-ext {
  font-size: 0.72em;
  opacity: 0.75;
}
.site-footer__partner-desc {
  margin: 6px 0 0;
  font-size: 0.88rem;
  line-height: 1.45;
  color: var(--muted);
  max-width: 42rem;
}
.site-footer__partner-desc strong {
  color: var(--text);
  font-weight: 650;
}
.site-footer__partner-cta {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  padding: 10px 16px;
  border-radius: 12px;
  text-decoration: none;
  box-shadow: 0 4px 18px rgba(37, 99, 235, 0.25);
}

.site-footer__partner--cmtracker .site-footer__partner-brand {
  color: #f0fdf4;
}
.site-footer__partner--cmtracker .site-footer__partner-brand:hover {
  color: #bbf7d0;
}
.site-footer__partner--cmtracker .site-footer__partner-brand:hover .site-footer__partner-logo--wordmark {
  opacity: 1;
  filter: drop-shadow(0 0 10px rgba(187, 247, 208, 0.35));
}
.site-footer__partner--cmtracker .site-footer__partner-brand:focus-visible {
  outline-color: #86efac;
}
.site-footer__partner--cmtracker .site-footer__partner-ext {
  color: #bbf7d0;
  opacity: 0.9;
}
.site-footer__partner--cmtracker .site-footer__partner-desc {
  margin: 0;
  flex: 1 1 auto;
  min-width: 0;
  font-size: 0.8rem;
  line-height: 1.35;
  color: rgba(240, 253, 244, 0.78);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.site-footer__partner--cmtracker .site-footer__partner-desc strong {
  color: #ecfdf5;
}

.site-footer__partner-cta i {
  font-size: 0.85em;
  opacity: 0.9;
}
@media (max-width: 599px) {
  .site-footer__partner {
    margin-left: 0;
    margin-right: 0;
  }
  .site-footer__partner-inner {
    flex-direction: column;
    align-items: stretch;
    padding: 14px 14px;
  }
  .site-footer__partner-badge {
    align-self: flex-start;
  }
  .site-footer__partner-cta {
    justify-content: center;
    width: 100%;
    box-sizing: border-box;
  }

  .site-footer__partner--cmtracker .site-footer__partner-inner {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    padding: 10px 12px;
  }
  .site-footer__partner--cmtracker .site-footer__partner-text {
    flex-direction: row;
    align-items: center;
    gap: 10px 12px;
  }
  .site-footer__partner--cmtracker .site-footer__partner-logo--wordmark {
    height: 28px;
    max-width: min(160px, 42vw);
  }
  .site-footer__partner--cmtracker .site-footer__partner-desc {
    font-size: 0.68rem;
    line-height: 1.3;
  }
}

.site-footer__top {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  margin-bottom: 16px;
}
@media (min-width: 720px) {
  .site-footer__top {
    justify-content: flex-end;
    align-items: center;
    margin-bottom: 12px;
  }
}
.site-footer__grid {
  display: grid;
  gap: 20px;
  grid-template-columns: 1fr;
}
@media (min-width: 520px) {
  .site-footer__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 18px;
  }
}
@media (min-width: 900px) {
  .site-footer__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px 22px;
  }
}

/* Colonne footer: stack verticale esplicito (evita layout “a paragrafo” su mobile) */
.site-footer__col {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  min-width: 0;
}

/* Footer: fisarmonica su viewport stretti (tablet/mobile), sempre espanso su desktop largo */
.site-footer__acc {
  min-width: 0;
}
.site-footer__acc-nav {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  min-width: 0;
}
.site-footer__acc-summary {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
  box-sizing: border-box;
  cursor: pointer;
  user-select: none;
  -webkit-user-select: none;
}
.site-footer__acc-summary::-webkit-details-marker {
  display: none;
}
.site-footer__acc-chev {
  flex-shrink: 0;
  font-size: 0.68rem;
  opacity: 0.7;
  transition: transform 0.18s ease;
}
.site-footer__acc[open] .site-footer__acc-chev {
  transform: rotate(180deg);
}
@media (min-width: 900px) {
  .site-footer__acc-chev {
    display: none;
  }
  .site-footer__acc-summary {
    cursor: default;
    pointer-events: none;
  }
}

.site-footer__title {
  margin: 0 0 10px;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}
.site-footer__link {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 0;
  text-decoration: none;
  font-size: 0.92rem;
  line-height: 1.35;
  color: var(--text);
  border-radius: 6px;
  transition: color 0.12s ease, background 0.12s ease;
}
.site-footer__link > span {
  flex: 1;
  min-width: 0;
}
@media (max-width: 899px) {
  .site-footer {
    padding: 16px 12px 20px;
  }
  .site-footer__title {
    margin-bottom: 8px;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--line);
  }
  .site-footer__acc-summary.site-footer__title {
    margin-bottom: 0;
    padding: 10px 4px 10px 2px;
    min-height: 44px;
    box-sizing: border-box;
    border-bottom: 1px solid var(--line);
  }
  .site-footer__acc[open] .site-footer__acc-nav {
    padding-bottom: 4px;
  }
  .site-footer__col {
    padding-bottom: 4px;
  }
  .site-footer__link {
    width: 100%;
    box-sizing: border-box;
    min-height: 44px;
    padding: 10px 8px 10px 6px;
    align-items: flex-start;
    border-radius: 8px;
  }
  .site-footer__link .fa-fw {
    margin-top: 0.12em;
  }
  .site-footer__link:active {
    background: rgba(255, 255, 255, 0.06);
  }
}
/* Solo colonna singola: separa le sezioni in verticale senza alterare il grid 2×2 tablet */
@media (max-width: 519px) {
  .site-footer__grid {
    gap: 0;
  }
  .site-footer__col + .site-footer__col {
    margin-top: 4px;
    padding-top: 16px;
    border-top: 1px solid var(--line);
  }
}
@media (min-width: 900px) {
  .site-footer__link {
    padding: 5px 0;
  }
}
.site-footer__link:hover {
  color: #7cc9ff;
  text-decoration: none;
}
.site-footer__link:focus-visible {
  outline: 2px solid var(--accent-3);
  outline-offset: 2px;
}
.site-footer__link .fa-fw {
  width: 1.1em;
  opacity: 0.85;
  flex-shrink: 0;
}
.site-footer__copy {
  margin: 18px 0 0;
  padding-top: 16px;
  border-top: 1px solid var(--line);
  font-size: 0.86rem;
  color: var(--muted);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px 16px;
}
.site-footer__copy strong {
  color: var(--text);
  font-weight: 700;
}

/* Identità pubblica manager (piattaforma + nome reale) — elenchi / scheda squadra */
.xg-mgr-identity {
  display: inline-flex;
  align-items: flex-start;
  gap: 0.45rem;
  max-width: 100%;
  text-align: left;
}
.xg-mgr-identity__ico {
  flex-shrink: 0;
  width: 1.85rem;
  height: 1.85rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  font-size: 1rem;
  line-height: 1;
  border: 1px solid rgba(148, 163, 184, 0.35);
  background: rgba(15, 23, 42, 0.55);
  color: #e2e8f0;
}
.xg-mgr-identity__ea {
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: #f8fafc;
}
.xg-mgr-identity__txt {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  align-items: flex-start;
}
.xg-mgr-identity__line1 {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  flex-wrap: wrap;
}
.xg-mgr-identity__main {
  font-weight: 700;
  line-height: 1.2;
  word-break: break-word;
  color: inherit;
}
.xg-mgr-identity__sub {
  font-size: 0.78rem;
  font-weight: 500;
  line-height: 1.25;
  word-break: break-word;
  color: #94a3b8;
}
.xg-mgr-identity__vf {
  flex-shrink: 0;
  color: #34d399;
  font-size: 0.85rem;
  line-height: 1;
}
.xg-mgr-identity--team-dd {
  justify-content: flex-end;
  margin-left: auto;
}
.xg-mgr-identity--team-dd .xg-mgr-identity__txt {
  align-items: flex-end;
  text-align: right;
}
.xg-mgr-identity--team-dd .xg-mgr-identity__sub {
  color: #94a3b8;
}

/* Badge EA (PC) — usato in sidebar utenti online e ovunque serva il marchio compatto */
.xg-pf-ea-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.35em;
  min-height: 1.35em;
  padding: 0 0.2em;
  border-radius: 5px;
  font-size: 0.58em;
  font-weight: 900;
  letter-spacing: 0.02em;
  line-height: 1;
  color: #fff;
  background: linear-gradient(145deg, #ff4747 0%, #b91c1c 100%);
  border: 1px solid rgba(255, 255, 255, 0.28);
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.35);
}

/* iOS/PWA thermal: niente backdrop-filter live sul telefono (GPU pesante) */
@media (max-width: 980px) {
  *,
  *::before,
  *::after {
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
}

/* Tab/PWA in background: pausa animazioni CSS infinite */
html.xg-page-hidden *,
html.xg-page-hidden *::before,
html.xg-page-hidden *::after {
  animation-play-state: paused !important;
}
