.api-loading{padding:75px 24px;text-align:center;position:relative;min-height:200px;width:100%;color:#c7ccdc}.api-button{margin:14px auto;padding:12px 20px;border:1px solid #ffffff25;border-radius:12px;background:#253453;color:#fff;cursor:pointer;font:inherit;display:block}.api-admin-link{position:absolute;right:18px;top:22px;font-size:11px;color:#a9bade;text-decoration:none}.acc__hd{position:relative}.api-fresh{font-size:10px;color:#8993aa;padding-top:9px;line-height:1.5}.api-date{display:flex;gap:10px;justify-content:center;align-items:center;padding:5px 8px 9px;font-size:11px;color:#9aa9bf}.api-date input{color-scheme:dark;background:#16213a;border:1px solid #ffffff20;border-radius:7px;color:#fff;padding:4px;font:inherit}.api-match-meta{font-size:11px;color:#b7c3d8;line-height:1.7;margin:10px 0}.api-match-meta a{color:#98b7ff}.api-events{font-size:12px;line-height:1.8;color:#d4daeb;margin-bottom:12px}#api-message{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);width:min(90%,430px);z-index:100;background:#233551;border:1px solid #728db7;padding:16px;border-radius:14px;font:14px system-ui;box-shadow:0 5px 25px #0009}.api-admin-link:focus-visible,.api-button:focus-visible{outline:2px solid #9abaff}.api-fresh:empty{display:none}

/* Buteurs sous leur équipe, dans l'en-tête du match */
.api-buts{display:grid;grid-template-columns:1fr 1.1em 1fr;align-items:start;gap:.3em;width:100%;padding:.55em .4375em 0;font-family:var(--pc-text);font-size:.72em;line-height:1.35;color:rgba(255,255,255,.82)}
/* Le bloc est centré sous l'équipe, mais les noms partent tous du même bord. */
.api-buts__col{display:flex;flex-direction:column;align-items:flex-start;gap:.12em;width:max-content;max-width:100%;min-width:0;margin:0 auto}
.api-buts__l{max-width:100%;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.api-buts__l span{font-weight:700;color:#fff}
.api-buts__l i{font-style:normal;font-weight:600;color:rgba(255,255,255,.55)}
.api-buts__ball{width:.9em;height:.9em;margin-top:.2em;justify-self:center;border-radius:50%;background:url(/images/icons/goal.png) center/contain no-repeat;opacity:.7}

/* Onglet Live de la fiche joueur : la rencontre avec les maillots */
.lv__t:has(.api-lv){font-size:1em;color:inherit;margin-bottom:.9em}
.api-lv{display:flex;flex-direction:column;gap:.55em;padding:.75em .8em;border-radius:1em;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1)}
.api-lv__c{display:flex;align-items:center;gap:.4em;font-family:var(--pc-text);font-size:.72em;font-weight:600;color:rgba(255,255,255,.6)}
.api-lv__c img{width:1.3em;height:1.3em;object-fit:contain}
.api-lv__c i{width:.25em;height:.25em;border-radius:50%;background:currentColor;opacity:.6}
.api-lv__m{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.5em}
.api-lv__t{display:flex;align-items:center;gap:.45em;min-width:0}
.api-lv__t--ext{flex-direction:row-reverse;text-align:right}
.api-lv__t b{font-family:var(--pc-display);font-weight:800;font-size:.9em;text-transform:uppercase;line-height:1.05;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.api-lv__k{flex:none;width:2em;height:2em}
.api-lv__k .pc__kitbox{width:100%;height:100%}
.api-lv__s{display:flex;align-items:center;gap:.3em;font-family:var(--pc-display);font-weight:800;font-size:1.35em;color:rgba(255,255,255,.55)}
.api-lv__s b.gagne{color:#fff}
.api-lv__s i{font-style:normal;opacity:.5}
.api-lv__s--h{font-size:1em;color:#fff}

/* Courbe des derniers matchs sous une ligne de joueur */
.api-chart{min-height:2em}
.api-chart__msg{margin:.6em 0;font-family:var(--pc-text);font-size:.75em;color:rgba(255,255,255,.55);text-align:center}

.pc.api-switching{opacity:.6;transition:opacity .15s}
.api-compo-note{margin:.2em 0 .8em;padding:.6em .8em;border-radius:.8em;background:rgba(255,255,255,.06);font-family:var(--pc-text);font-size:.72em;line-height:1.4;color:rgba(255,255,255,.7);text-align:center}
/* Fiche joueur : prochain match et liste des matchs */
.api-next{display:block;width:100%;padding:0;margin:0 0 .2em;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
.api-next .api-lv{background:rgba(255,255,255,.07)}
.api-games-h{margin:.4em 0 .5em;font-family:var(--pc-text);font-size:.72em;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:rgba(255,255,255,.45)}
.api-past{min-height:65vh}
.api-game--next .pc__game-right{display:flex;align-items:center;gap:.5em}
.api-game__lg{width:1.4em;height:1.4em;object-fit:contain}
.pc__games > .api-games-h{border-bottom:0!important;padding-bottom:0!important;margin-bottom:.5em!important}
.api-past{display:flex;flex-direction:column}
.api-past > :not(:last-child){border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:.6875em;padding-bottom:.6875em}
.api-past > .api-games-h{border-bottom:0;padding-bottom:0;margin-bottom:.5em}
.pc__tags .api-game__lg{flex:none;align-self:center;margin-right:.15em}

/* ---------- Classements des compétitions ---------- */
.api-st{display:flex;flex-direction:column;gap:.15em;padding:.6em .5em .8em;border:1px solid rgba(255,255,255,.1);border-radius:1em;background:rgba(255,255,255,.04);font-family:var(--pc-text,inherit);color:#fff}
.api-st--card{background:var(--pc-surface,rgba(255,255,255,.05));border-color:var(--pc-border,rgba(255,255,255,.1))}
.api-st__t{display:flex;align-items:center;gap:.5em;padding:.1em .35em .5em;font-family:var(--pc-display,inherit);font-size:.95em}
.api-st__t img{width:1.6em;height:1.6em;object-fit:contain}
.api-st__g{margin:.8em .35em .25em;font-size:.72em;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:rgba(255,255,255,.5)}
.api-st__r{display:grid;grid-template-columns:1.7em minmax(0,1fr) repeat(4,1.55em) 2.1em 2.2em;align-items:center;gap:.15em;width:100%;padding:.42em .35em .42em .5em;border:0;border-radius:.6em;background:none;color:inherit;font:inherit;font-size:.82em;text-align:center;cursor:pointer;position:relative;box-shadow:inset 3px 0 0 var(--z,transparent)}
.api-st__r:hover{background:rgba(255,255,255,.06)}
.api-st__r.is-me{background:rgba(255,255,255,.14)}
.api-st__r.is-me b{color:#fff}
.api-st__r > span{color:rgba(255,255,255,.72);font-variant-numeric:tabular-nums}
.api-st__r--h{cursor:default;font-size:.7em;font-weight:700;text-transform:uppercase;letter-spacing:.03em;box-shadow:none}
.api-st__r--h:hover{background:none}
.api-st__r--h > *{color:rgba(255,255,255,.45)!important}
.api-st__p{font-weight:700;color:rgba(255,255,255,.85)!important}
.api-st__c{display:flex;align-items:center;gap:.5em;min-width:0;text-align:left}
.api-st__c img{flex:none;width:1.45em;height:1.45em;object-fit:contain}
.api-st__c b{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.api-st__pts{font-family:var(--pc-display,inherit);font-weight:800;font-size:1.05em}
.api-st__lg{display:flex;flex-wrap:wrap;gap:.35em .9em;margin:.7em .4em 0;font-size:.7em;color:rgba(255,255,255,.6)}
.api-st__lg span{display:inline-flex;align-items:center;gap:.35em}
.api-st__lg i{width:.6em;height:.6em;border-radius:50%}
.api-st-tabs{display:flex;gap:.4em;overflow-x:auto;margin-bottom:.7em;scrollbar-width:none}
.api-st-tabs::-webkit-scrollbar{display:none}
.api-st-tab{flex:none;display:inline-flex;align-items:center;justify-content:center;min-width:3.2em;height:2.375em;padding:0 .75em;border:1px solid var(--pc-border,rgba(255,255,255,.15));border-radius:999px;background:var(--pc-surface,rgba(255,255,255,.05));color:var(--pc-ink-60,#ccc);font:inherit;font-size:.8em;font-weight:700;cursor:pointer}
.api-st-tab img{max-height:1.5em;max-width:3em;object-fit:contain}
.api-st-tab[aria-pressed="true"]{background:rgba(255,255,255,.22);border-color:rgba(255,255,255,.8);color:#fff}
/* Lecture des courbes : lieu du match au lieu des maillots et du score */
.api-lieu{display:inline-flex;align-items:center;gap:.35em;white-space:nowrap;font-family:var(--pc-text);font-weight:700;font-size:.8em;color:rgba(255,255,255,.75)}
.api-lieu img{width:1em;height:1em;object-fit:contain;opacity:.85}
/* Joueurs : filtres poste / nationalité / tri */
.api-pf{display:flex;flex-direction:column;gap:.1em}
.api-pf__sel{display:flex;gap:.5em;padding:.35em 1.1em .5em}
.api-pf__sel label{flex:1;min-width:0;display:flex;flex-direction:column;gap:.2em;font-size:.68em;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:rgba(255,255,255,.45)}
.api-pf__sel select{appearance:none;-webkit-appearance:none;width:100%;padding:.55em 2em .55em .9em;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(255,255,255,.05) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23fff' stroke-width='1.5' fill='none'/%3E%3C/svg%3E") no-repeat right .9em center;color:#fff;font:inherit;font-size:1.35em;font-weight:600;text-transform:none;letter-spacing:0}
.api-pf__sel select option{background:#1b1b1b;color:#fff}
.api-pf__v{flex:none;display:flex;flex-direction:column;align-items:flex-end;margin-right:.3em;font-size:.68em;color:rgba(255,255,255,.5)}
.api-pf__v b{font-size:1.6em;color:#fff;line-height:1}
/* Compétition terminée : puce légèrement grisée */
.pc__filter[data-done]{opacity:.42;filter:grayscale(.7)}
.pc__filter[data-done][aria-pressed="true"]{opacity:.75}
/* En-tête de match : maillots toujours alignés, même si un nom tient sur
   deux lignes (MANCHESTER UNITED) et l'autre sur une seule. */
.pc .mh{align-items:start}
.pc .mh__n{display:flex;align-items:center;justify-content:center;min-height:2.1em;max-height:2.1em;overflow:hidden;-webkit-line-clamp:unset}
.pc .mh__c{align-self:stretch;justify-content:center;padding:1.2em .5em 0}
.pc--match .mh__k,.pc--match .mh__n{cursor:pointer}
.pc--match .mh__k{transition:transform .15s ease}
.pc--match .mh__k:hover{transform:scale(1.05)}

/* ---------- Fiche compétition ---------- */
[data-comp-open]{cursor:pointer}
.api-comp-go{font-style:normal;margin-left:.3em;opacity:.45;font-weight:700}
.api-st__t[data-comp-open]:hover b,.jr__ligue-nom[data-comp-open]:hover{text-decoration:underline;text-underline-offset:3px}
.api-comp__hd{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:.45em;padding:2.2em 1em 1em;text-align:center}
.api-comp__hd img{width:4.2em;height:4.2em;object-fit:contain;filter:drop-shadow(0 .3em .8em rgba(0,0,0,.35))}
.api-comp__hd h2{font-family:var(--pc-display);font-weight:800;font-size:1.45em;line-height:1.1}
.api-comp__hd p{font-size:.78em;color:var(--pc-ink-60)}
.api-comp__tabs{position:relative;z-index:1;display:flex;margin:0 1em;border-bottom:1px solid rgba(255,255,255,.12)}
.api-comp__tabs button{flex:1;padding:.8em 0;border:0;background:none;color:var(--pc-ink-50);font-family:var(--pc-display);font-weight:800;font-size:1em;cursor:pointer;transition:color .25s ease}
.api-comp__tabs button[aria-pressed="true"]{color:#fff}
.api-comp__ink{position:absolute;left:0;bottom:-1px;height:2px;width:0;border-radius:2px;background:#fff;transition:transform .32s cubic-bezier(.2,.8,.2,1),width .32s cubic-bezier(.2,.8,.2,1);pointer-events:none}
@keyframes apiCpInR{from{opacity:0;transform:translateX(1.6em)}to{opacity:1;transform:none}}
@keyframes apiCpInL{from{opacity:0;transform:translateX(-1.6em)}to{opacity:1;transform:none}}
.api-cp-in-r{animation:apiCpInR .32s cubic-bezier(.2,.8,.2,1)}
.api-cp-in-l{animation:apiCpInL .32s cubic-bezier(.2,.8,.2,1)}
@media (prefers-reduced-motion:reduce){.api-comp__ink{transition:none}.api-cp-in-r,.api-cp-in-l{animation:none}}
.api-comp__body{padding:.6em 1em 3em!important}
.api-cd{margin-bottom:.9em}
.api-cd__h{display:flex;align-items:baseline;justify-content:space-between;gap:.6em;padding:.5em .2em .45em;font-size:.78em}
.api-cd__h b{font-family:var(--pc-display);font-weight:800;text-transform:capitalize;color:#fff}
.api-cd__h span{color:var(--pc-ink-50);font-weight:600}
.api-cd[data-now] .api-cd__h b::after{content:"· à venir";margin-left:.4em;font-weight:700;color:#7fb2ff;text-transform:none}
.api-cm{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:.5em;width:100%;padding:.55em .6em;margin-bottom:.35em;border:1px solid var(--pc-border,rgba(255,255,255,.15));border-radius:.8em;background:var(--pc-surface,rgba(255,255,255,.05));color:#fff;cursor:pointer;text-align:left}
.api-cm:hover{background:var(--pc-surface-10,rgba(255,255,255,.1))}
.api-cm__t{display:flex;align-items:center;gap:.45em;min-width:0}
.api-cm__t--ext{flex-direction:row-reverse;text-align:right}
.api-cm__t b{font-weight:700;font-size:.85em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.api-cm__k{flex:none;width:1.9em;height:1.9em}
.api-cm__k .pc__kitbox{width:100%;height:100%}
.api-cm__s{display:flex;align-items:center;gap:.25em;min-width:3.6em;justify-content:center;font-family:var(--pc-display);font-weight:800;font-size:1.05em;color:var(--pc-ink-60);position:relative}
.api-cm__s b.gagne{color:#fff}
.api-cm__s i{font-style:normal;opacity:.5}
.api-cm__s em{position:absolute;top:100%;left:50%;transform:translateX(-50%);font-style:normal;font-size:.6em;color:#54d68a;white-space:nowrap}
.api-cm__s.is-live b{color:#54d68a}
.api-cm__s--h{font-size:.95em;color:#fff}
.api-comp__hd{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}
.api-comp__hd img{-webkit-user-drag:none;pointer-events:none}

/* ---------- En-tête des fiches club et compétition ----------
   Le motif du fond s'éteignait d'un coup à hauteur du nom (bande nette).
   Ici il est plus grand, cadré par le haut, et se fond progressivement ;
   le dégradé de couleur descend plus bas, et un halo éclaire l'écusson. */
.pc--club,.api-comp{--pc-glow:17em;--pc-bg-opacity:.34}
.pc--club::before,.api-comp::before{
  left:0;width:100%;height:19em;
  background-size:cover;background-position:center top;
  -webkit-mask-image:linear-gradient(to bottom,#000 0,#000 38%,rgba(0,0,0,.55) 62%,transparent 92%);
          mask-image:linear-gradient(to bottom,#000 0,#000 38%,rgba(0,0,0,.55) 62%,transparent 92%)}
.pc--club .clh{position:relative;padding-top:0;margin-top:-.4em}
.pc--club .clh::before,.api-comp__hd::before{
  content:"";position:absolute;left:50%;top:-1.2em;width:13em;height:11em;transform:translateX(-50%);
  background:radial-gradient(closest-side,rgba(var(--pc-ray,103,147,255),.38),rgba(var(--pc-ray,103,147,255),.12) 55%,transparent);
  pointer-events:none;z-index:-1}
.pc--club .clh__lg{width:5em;height:5em;filter:drop-shadow(0 .45em 1em rgba(0,0,0,.6))}
.pc--club .clh__n{text-shadow:0 .08em .5em rgba(0,0,0,.45)}
.api-comp__hd{isolation:isolate}
/* Fiche compétition : le motif s'éteint avant le titre, pour qu'il reste lisible. */
.api-comp::before{
  -webkit-mask-image:linear-gradient(to bottom,#000 0,#000 18%,rgba(0,0,0,.45) 28%,transparent 36%);
          mask-image:linear-gradient(to bottom,#000 0,#000 18%,rgba(0,0,0,.45) 28%,transparent 36%)}
.api-comp__hd h2,.api-comp__hd p{text-shadow:0 .08em .6em rgba(0,0,0,.5)}
/* Fiche match à 4 onglets (avec Classement) : onglets un peu plus serrés */
.pc--match .pc__tabs:has([data-tab="classement"]) .pc__tab{padding-left:.25em;padding-right:.25em;font-size:.9em}
.api-st__g.is-mine{color:#fff}
/* de la place sous le tableau pour que la poule du match puisse arriver en haut */
.pc--match .pc__panel[data-panel="classement"]{padding-bottom:55vh}
/* Fiche club à 5 onglets (avec Classement) */
.pc--club .pc__tabs:has([data-tab="classement"]) .pc__tab{padding-left:.15em;padding-right:.15em;font-size:.8em;letter-spacing:-.01em}
/* Compétition terminée : puce grisée */
.api-st-tab[data-done]{opacity:.42;filter:grayscale(.7)}
.api-st-tab[data-done][aria-pressed="true"]{opacity:.75}
/* Correctif mobile — 2026-09-23.
   À ajouter après les styles existants dans public/api-ui.css.
   La largeur mobile ne dépend plus de la hauteur ni des barres du navigateur.
   Le cadre et les proportions ordinateur restent inchangés. */
@media (max-width: 767px), (pointer: coarse) and (max-width: 1024px) and (max-height: 600px) {
  html, body {
    width: 100%;
    height: 100%;
    overflow: hidden;
  }
  body {
    display: block;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }
  #ecran {
    --frame-h: 100vh;
    --frame-h: 100dvh;
    --pc-root: clamp(12px, 3.787879vw, 19px);
    width: 100%;
    max-width: none;
    height: var(--frame-h);
    min-height: 0;
    margin: 0;
    border-radius: 0;
    padding: env(safe-area-inset-top, 0px) env(safe-area-inset-right, 0px)
             env(safe-area-inset-bottom, 0px) env(safe-area-inset-left, 0px);
  }
  #ecran > .acc,
  #ecran > .pc,
  #ecran .acc__li,
  #ecran .fe__in > .pc,
  #ecran .pc__scroll {
    min-width: 0;
    min-height: 0;
  }
  #ecran .fe {
    top: env(safe-area-inset-top, 0px);
    right: env(safe-area-inset-right, 0px);
    bottom: env(safe-area-inset-bottom, 0px);
    left: env(safe-area-inset-left, 0px);
  }
  #ecran .fe__corps { top: 8px; }
  #ecran .api-cm {
    font: inherit;
    min-height: 44px;
  }
  #ecran .pc__close {
    min-width: 44px;
    min-height: 44px;
  }
  #ecran .api-comp__tabs button { min-height: 44px; }
  #ecran .acc__in,
  #ecran .api-date input { font-size: max(16px, 1em); }
}
