/* reSCORE — front Échecs (page publique du championnat individuel).
   Harmonisé avec le langage visuel des pages sport (réf. f1-stats.css) :
   police mono JetBrains pour les chiffres, en-tête de table sombre, ligne
   champion crème + liseré or, onglets/boutons à rayon 8px, cartes à liseré
   latéral. Hydraté par rescore-chess.js depuis l'îlot JSON .rs-chess-data. */
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap');

.rs-chess{
  --rs-chess:#475569; --rs-chess-d:#334155; --rs-gold:#f0ad00; --rs-gold-bg:#fffaed;
  --rs-line:rgba(0,0,0,.10); --rs-ink:#1a1a1a; --rs-muted:#595959;
  --rs-mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --rs-r:8px; --rs-r-sm:4px; --rs-r-lg:12px;
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  color:var(--rs-ink);max-width:none;margin:0;
  /* Pleine largeur comme F1 (#f1-stats-app max-width:none) : le contenu occupe
     toute la zone, le fond neutre (.rs-page--chess > .rs-page__content) ne
     déborde donc plus que comme un fin padding, exactement comme les autres sports. */
  padding:clamp(18px,2.4vw,24px) clamp(14px,2.4vw,28px) 48px;
}
.rs-chess .num,.rs-chess td.num,.rs-chess td.pts,.rs-chess__pos,.rs-chess__bu,
.rs-chess__res,.rs-chess__gr,.rs-chess__kicker,.rs-chess__sel select{font-family:var(--rs-mono);font-variant-numeric:tabular-nums}

/* Polish UX (skill ui-ux-pro-max) : focus clavier, feedback press, table scrollable, reduced-motion */
.rs-chess__seg a:focus-visible,.rs-chess__seg button:focus-visible,.rs-chess__player:focus-visible,
.rs-chess__res:focus-visible,.rs-chess__btn:focus-visible,.rs-chess__sel select:focus-visible{
  outline:3px solid rgba(71,85,105,.35);outline-offset:2px}
.rs-chess__seg a:active,.rs-chess__seg button:active,.rs-chess__res:active{transform:translateY(1px)}
.rs-chess__tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
@media (prefers-reduced-motion:reduce){
  .rs-chess *,.rs-chess__savebar,.rs-chess__chev{transition:none !important;animation:none !important}
}

/* Hero : carte « claire travaillée » — halo slate diffus + halo or + fine
   texture de lignes masquée + badge picto. Esprit des en-têtes sport (Foot /
   Rugby / F1-Sim) mais en version CLAIRE. Top-bar : badge + titre | contrôles
   de jeu de données (Saison + bascule Mixte/Féminin), disposition F1/Rugby. */
/* Hero échecs : SOMBRE comme les autres sports / le masthead (glow slate +
   dégradé near-black + texture lignes blanches). Textes/contrôles internes
   adaptés en clair ci-dessous. */
.rs-chess__hero{position:relative;isolation:isolate;overflow:hidden;margin:0 0 16px;color:#fff;
  border:1px solid rgba(255,255,255,.10);border-radius:var(--rs-r-lg);
  padding:clamp(16px,3vw,22px) clamp(16px,3.5vw,26px);
  box-shadow:inset 3px 0 0 var(--rs-chess,#475569), 0 14px 36px -18px rgba(0,0,0,.5);
  background:
    radial-gradient(90% 140% at 12% -15%, rgba(148,163,184,.40) 0, transparent 55%),
    linear-gradient(120deg,#141210 0%,#1d1a17 70%,#14100f 100%);}
.rs-chess__hero::after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:repeating-linear-gradient(115deg,rgba(255,255,255,.04) 0 2px,transparent 2px 11px);
  -webkit-mask-image:radial-gradient(80% 95% at 18% 30%,#000 18%,transparent 100%);
          mask-image:radial-gradient(80% 95% at 18% 30%,#000 18%,transparent 100%);}
/* Textes + contrôles internes du hero, version sombre. */
.rs-chess__hero .rs-chess__kicker{color:rgba(255,255,255,.72)}
.rs-chess__hero .rs-chess__sub{color:rgba(255,255,255,.75)}
.rs-chess__hero .rs-chess__season{color:rgba(255,255,255,.72)}
.rs-chess__hero .rs-chess__season select{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.20);color:#fff}
.rs-chess__hero .rs-chess__champseg{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.16)}
.rs-chess__hero .rs-chess__champseg a,.rs-chess__hero .rs-chess__champseg span{color:rgba(255,255,255,.8)}
.rs-chess__hero .rs-chess__champseg a:hover{color:#fff}
.rs-chess__hero .rs-chess__status--leader{background:rgba(255,255,255,.10);color:#fff;border-color:rgba(255,255,255,.2)}
.rs-chess__hero .rs-chess__simbanner{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.18);color:rgba(255,255,255,.85)}
.rs-chess__herobar{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap}
.rs-chess__badge{flex:0 0 auto;width:52px;height:52px;border-radius:15px;display:flex;align-items:center;
  justify-content:center;color:#fff;background:linear-gradient(135deg,var(--rs-chess),#64748b);
  box-shadow:0 6px 16px -6px rgba(71,85,105,.6)}
.rs-chess__badge svg{width:74%;height:74%}
.rs-chess__tcol{min-width:0;flex:1 1 auto}
.rs-chess__kicker{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;
  text-transform:uppercase;letter-spacing:.14em;color:var(--rs-chess)}
.rs-chess__title{font-size:clamp(1.45rem,3.2vw,1.95rem);font-weight:800;letter-spacing:-.015em;line-height:1.1;margin:.4rem 0 .2rem}
.rs-chess__sub{color:var(--rs-muted);font-size:13px}

/* Contrôles de jeu de données intégrés au header (poussés à droite) */
.rs-chess__hctl{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-left:auto}
.rs-chess__season{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:var(--rs-muted)}
.rs-chess__season select{font-family:var(--rs-mono);font-weight:600;font-size:13px;color:var(--rs-chess-d);
  background:rgba(255,255,255,.85);border:1px solid rgba(71,85,105,.30);border-radius:var(--rs-r);
  padding:8px 10px;min-height:40px;cursor:pointer}
.rs-chess__champseg{display:inline-flex;background:rgba(255,255,255,.7);border:1px solid rgba(71,85,105,.22);
  border-radius:var(--rs-r);padding:3px;gap:3px}
.rs-chess__champseg a,.rs-chess__champseg span{display:inline-flex;align-items:center;justify-content:center;
  min-height:34px;padding:6px 14px;border-radius:6px;font-size:13px;font-weight:700;color:var(--rs-muted);
  text-decoration:none;cursor:pointer;line-height:1;transition:background .15s,color .15s}
.rs-chess__champseg a:hover{color:var(--rs-chess-d)}
.rs-chess__champseg .on{background:var(--rs-chess);color:#fff;box-shadow:0 2px 6px rgba(71,85,105,.28)}

.rs-chess__status{position:relative;z-index:1;margin-top:14px;display:inline-flex;align-items:center;gap:8px;
  font-weight:700;font-size:13px;padding:7px 13px;border-radius:var(--rs-r)}
.rs-chess__status--champ{background:#fff;color:#7a5c00;border:1px solid rgba(240,173,0,.55);box-shadow:0 2px 8px -4px rgba(240,173,0,.6)}
.rs-chess__status--leader{background:rgba(255,255,255,.7);color:var(--rs-chess-d);border:1px solid rgba(71,85,105,.30)}
.rs-chess__simbanner{position:relative;z-index:1;display:flex;align-items:center;gap:10px;margin-top:12px;padding:9px 14px;
  background:rgba(238,241,245,.9);border:1px solid rgba(71,85,105,.25);border-radius:var(--rs-r);font-size:13px;color:var(--rs-chess-d)}

/* Barre de contrôles : onglets + sélecteurs (style boutons F1) */
.rs-chess__controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 12px}
.rs-chess__seg{display:inline-flex;gap:6px}
.rs-chess__seg a,.rs-chess__seg button,.rs-chess__seg span{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:44px;
  padding:8px 14px;background:#fff;border:1px solid var(--rs-line);border-radius:var(--rs-r);
  font-size:13px;font-weight:700;color:var(--rs-muted);cursor:pointer;text-decoration:none;
  transition:color .15s,border-color .15s,background .15s,box-shadow .15s;line-height:1.2}
.rs-chess__seg a:hover,.rs-chess__seg button:hover{color:var(--rs-ink);border-color:var(--rs-ink)}
.rs-chess__seg .on,.rs-chess__seg button.on{background:var(--rs-chess);border-color:var(--rs-chess);color:#fff;
  box-shadow:0 2px 6px rgba(71,85,105,.28)}
.rs-chess__sel{margin-left:auto;display:flex;gap:10px;align-items:center;font-size:13px;color:var(--rs-muted)}
.rs-chess__sel select{font-weight:600;color:var(--rs-ink);background:#fff;border:1px solid rgba(0,0,0,.2);
  border-radius:var(--rs-r-sm);padding:8px 10px;min-height:40px;cursor:pointer}
.rs-chess__sel label{display:inline-flex;align-items:center;gap:6px}

/* Carte + table (en-tête sombre, zébrage, ligne champion crème + liseré or) */
.rs-chess__card{position:relative;background:#fff;border:1px solid var(--rs-line);border-radius:var(--rs-r);
  overflow:hidden;margin-top:8px}
.rs-chess__card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--rs-chess)}
.rs-chess__chead{display:flex;justify-content:space-between;align-items:center;padding:13px 16px;border-bottom:1px solid var(--rs-line)}
.rs-chess__chead h3{margin:0;font-size:15px;font-weight:800;letter-spacing:-.01em}
.rs-chess__chead .meta{font-size:11px;color:var(--rs-muted);font-family:var(--rs-mono);text-transform:uppercase;letter-spacing:.06em}
.rs-chess table{width:100%;border-collapse:collapse;font-size:13px}
.rs-chess thead th{background:var(--rs-ink);color:#fff;text-align:left;padding:9px 12px;font-weight:700;font-size:12px}
.rs-chess th.num,.rs-chess td.num{text-align:center;width:46px}
.rs-chess td.pts{font-weight:800;text-align:center;color:var(--rs-chess-d)}
.rs-chess tbody td{padding:8px 12px;border-bottom:1px solid #eee;vertical-align:middle}
.rs-chess tbody tr:nth-child(even):not(.rs-chess__exrow){background:#f9f9f9}
.rs-chess tbody tr:hover:not(.rs-chess__exrow){background:#eef3ff}
.rs-chess tbody tr:last-child td{border-bottom:0}
.rs-chess tr.champ{background:var(--rs-gold-bg) !important;border-left:4px solid var(--rs-gold)}
.rs-chess tr.champ:hover{background:#fff3cc !important}
.rs-chess__pos{display:inline-flex;width:24px;height:24px;align-items:center;justify-content:center;
  border-radius:var(--rs-r-sm);background:var(--rs-bg-2,#ebe9e4);font-weight:700;font-size:12px}
.rs-chess__player{display:flex;align-items:center;gap:10px;cursor:pointer;background:none;border:0;padding:0;text-align:left;font:inherit;color:inherit;width:100%}
.rs-chess__chev{display:inline-block;transition:transform .18s ease;color:var(--rs-muted);font-size:11px;flex-shrink:0}
.rs-chess tr.is-open .rs-chess__chev{transform:rotate(90deg);color:var(--rs-chess)}
.rs-chess tr.is-open > td{background:rgba(71,85,105,.06)}
.rs-chess__ava{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--rs-chess),#64748b);
  color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;flex-shrink:0}
.rs-chess__nm{font-weight:600}
.rs-chess__tt{font-size:10px;font-weight:800;color:var(--rs-chess);margin-left:6px;font-family:var(--rs-mono);letter-spacing:.04em}
.rs-chess__clb{font-size:12px;color:var(--rs-muted)}
.rs-chess__bu{color:var(--rs-muted)}

/* Déplié joueur (inline, façon courses F1) */
.rs-chess__exrow > td{background:rgba(71,85,105,.06);padding:0 12px 12px}
.rs-chess__pinfo{display:flex;flex-wrap:wrap;gap:6px 18px;padding:12px 6px;font-size:13px;color:var(--rs-muted);
  border-bottom:1px solid var(--rs-line);margin-bottom:4px}
.rs-chess__pinfo b{color:var(--rs-ink);font-weight:700;margin-right:4px}
.rs-chess__pgames{display:flex;flex-direction:column}
.rs-chess__erow{display:flex;align-items:center;gap:10px;border-bottom:1px solid #ececec}
.rs-chess__erow:last-child{border-bottom:0}
.rs-chess__erow .rs-chess__game{flex:1;border-bottom:0;padding:7px 0}
.rs-chess__gr{flex-shrink:0;width:34px;font-size:11px;font-weight:700;color:var(--rs-chess);text-align:center}

/* Élément de partie (onglet Rondes + déplié) — vainqueur remarquable */
.rs-chess__round h4{margin:16px 16px 6px;font-size:13px;font-weight:800;color:var(--rs-chess);text-transform:uppercase;letter-spacing:.05em}
.rs-chess__game{display:grid;grid-template-columns:1fr 86px 1fr;gap:8px;align-items:center;padding:8px 16px;border-bottom:1px solid #eee;font-size:13px}
.rs-chess__game .w{text-align:right}
.rs-chess__game .b{text-align:left}
.rs-chess__game .w.win,.rs-chess__game .b.win{font-weight:800;color:var(--rs-chess-d)}
.rs-chess__star{color:var(--rs-chess);font-size:.82em;opacity:.85}
.rs-chess__game.upcoming{opacity:.6}
.rs-chess__res{justify-self:center;border:1px solid var(--rs-line);background:#fff;border-radius:var(--rs-r-sm);
  min-height:32px;padding:6px 0;width:74px;text-align:center;font-weight:700;cursor:pointer;color:var(--rs-ink);
  transition:border-color .15s,color .15s,background .15s}
.rs-chess__res:hover{border-color:var(--rs-chess);color:var(--rs-chess)}
.rs-chess__res.edited{border-color:var(--rs-chess);background:rgba(71,85,105,.1);color:var(--rs-chess)}
.rs-chess__game.upcoming .rs-chess__res{border-style:dashed;color:var(--rs-muted)}

/* Barre de scénario = composant PARTAGÉ .rs-mods-bar (position fixe + wrap +
   colonne latérale ≥1600px gérés dans overrides.css, comme les autres sports).
   Ici on ne style que le CONTENU : conteneur des pastilles + zone d'actions. */
.rs-chess .rs-mods-pills{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}
.rs-chess .rs-mods-actions{display:flex;align-items:center;gap:8px}
.rs-chess__mod{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:4px 4px 4px 10px;
  background:#fff;border:1px solid var(--rs-line);border-radius:999px;font-size:12px;font-weight:600;color:var(--rs-ink)}
.rs-chess__mod-lbl{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.rs-chess__mod-x{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;flex-shrink:0;
  background:transparent;border:0;border-radius:50%;color:var(--rs-muted);cursor:pointer;font-size:11px;line-height:1;transition:background .15s,color .15s}
.rs-chess__mod-x:hover{background:var(--rs-bg-2,#ebe9e4);color:var(--rs-chess)}
.rs-chess__mod-x:focus-visible{outline:2px solid rgba(71,85,105,.4);outline-offset:1px}
.rs-chess__btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;height:44px;padding:0 18px;font-size:13px;font-weight:700;
  border-radius:var(--rs-r);border:2px solid transparent;cursor:pointer;line-height:1;
  transition:background .15s,color .15s,border-color .15s,box-shadow .15s,transform .12s}
.rs-chess__btn:active{transform:translateY(1px)}
.rs-chess__btn--ghost{background:#fff;border-color:var(--rs-chess);color:var(--rs-chess)}
.rs-chess__btn--ghost:hover{background:var(--rs-chess);color:#fff;box-shadow:0 4px 12px rgba(71,85,105,.25)}
.rs-chess__btn--primary{background:var(--rs-chess);border-color:var(--rs-chess);color:#fff;box-shadow:0 4px 12px rgba(71,85,105,.28)}
.rs-chess__btn--primary:hover{background:var(--rs-chess-d);border-color:var(--rs-chess-d);box-shadow:0 6px 16px rgba(71,85,105,.38)}
.rs-chess__btn[disabled]{opacity:.5;cursor:not-allowed;box-shadow:none}

@media(max-width:640px){
  .rs-chess__hctl{margin-left:0;width:100%}                 /* Saison + Mixte/Féminin pleine largeur */
  .rs-chess__season,.rs-chess__season select{flex:1 1 auto}
  .rs-chess__season select{min-height:44px}
  .rs-chess__champseg{flex:1 1 auto}
  .rs-chess__champseg a,.rs-chess__champseg span{flex:1 1 auto;min-height:44px}
  .rs-chess__sel{margin-left:0;width:100%;flex-wrap:wrap;gap:8px 12px}
  .rs-chess__sel label{flex:1 1 auto}
  .rs-chess__sel select{flex:1 1 auto;min-height:44px}     /* cible tactile mobile */
  .rs-chess__player{min-height:44px}                        /* ligne joueur tap ≥44 */
  .rs-chess__res{min-height:40px}                           /* résultat éditable plus large au doigt */
  .rs-chess th.hide-sm,.rs-chess td.hide-sm{display:none}
}
