/* tournois.css — Page Tournois, page d'un tournoi, confirmation (11/10/2026).
   Le style de l'espace (DESIGN.md, tg-tokens.css) : IBM Plex Sans, surfaces
   sombres, jaune en accent seulement, rayons de 4 à 8 px, pas de dégradé. */
@font-face { font-family: 'Plex'; src: url('/fonts/plex-sans.woff2') format('woff2'); font-weight: 400 600; font-style: normal; font-display: swap; }
.trn { --f: 'Plex', 'IBM Plex Sans', system-ui, sans-serif; font-family: var(--f); color: var(--tg-texte, #EAECEF); }
body.trn-page { background: var(--tg-fond, #0B0E11); margin: 0; }
.trn * { box-sizing: border-box; }
.trn a { color: inherit; }
.trn-cont { max-width: 1120px; margin: 0 auto; padding: 20px 16px 56px; }
.trn h1 { font-family: var(--f); font-size: 26px; line-height: 1.2; font-weight: 600; margin: 0 0 6px; letter-spacing: 0; text-transform: none; }
.trn h2 { font-family: var(--f); font-size: 18px; font-weight: 600; margin: 0 0 12px; letter-spacing: 0; text-transform: none; }
.trn h3 { font-family: var(--f); font-size: 15px; font-weight: 600; margin: 0; letter-spacing: 0; text-transform: none; }
.trn p { line-height: 1.55; }
.trn .second { color: var(--tg-texte-2, #848E9C); font-size: 13px; }
.trn .intro { color: var(--tg-texte-2, #848E9C); font-size: 15px; margin: 0 0 20px; max-width: 680px; }
.trn-ico { width: 16px; height: 16px; flex: none; stroke: currentColor; fill: none; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; vertical-align: -3px; }

/* Badges : « Tendance » (icône flamme), complet, fermé */
.trn-badge { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 600; padding: 3px 8px; border-radius: 4px; border: 1px solid var(--tg-bord, #2B3139); background: var(--tg-surface-2, #1E2329); color: var(--tg-texte, #EAECEF); white-space: nowrap; }
.trn-badge.tendance { color: #F0B90B; border-color: rgba(232,196,0,.45); background: rgba(232,196,0,.10); }
.trn-badge.complet { color: #F6465D; border-color: rgba(246,70,93,.4); background: rgba(246,70,93,.08); }
.trn-badge.termine, .trn-badge.ferme, .trn-badge.annule { color: var(--tg-texte-2, #848E9C); }

/* Liste */
.trn-grille { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
.trn-carte { display: flex; flex-direction: column; background: var(--tg-surface, #181A20); border: 1px solid var(--tg-bord, #2B3139); border-radius: 8px; overflow: hidden; text-decoration: none; }
.trn-carte:hover, .trn-carte:focus-visible { border-color: var(--tg-bord-fort, #474D57); }
.trn-carte-img { position: relative; aspect-ratio: 4 / 5; background: var(--tg-surface-2, #1E2329); }
.trn-carte-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.trn-carte-img .trn-badge { position: absolute; top: 10px; left: 10px; background: #0B0E11; }
.trn-sans-affiche { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; color: var(--tg-texte-2, #848E9C); }
.trn-sans-affiche svg { width: 40px; height: 40px; }
.trn-carte-corps { padding: 12px 14px 14px; display: grid; gap: 6px; }
.trn-ligne { display: flex; align-items: center; gap: 6px; color: var(--tg-texte-2, #848E9C); font-size: 13px; }
.trn-prix { font-size: 15px; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--tg-texte, #EAECEF); }
.trn-section { margin-top: 36px; }
.trn-vide { border: 1px dashed var(--tg-bord, #2B3139); border-radius: 8px; padding: 28px 16px; text-align: center; color: var(--tg-texte-2, #848E9C); }
.trn-podium { display: grid; gap: 2px; font-size: 13px; color: var(--tg-texte-2, #848E9C); }
.trn-podium b { color: var(--tg-texte, #EAECEF); font-weight: 600; }

/* Page d'un tournoi */
.trn-hero { display: grid; grid-template-columns: 1fr; gap: 20px; }
.trn-affiche { width: 100%; max-width: 440px; border-radius: 8px; border: 1px solid var(--tg-bord, #2B3139); display: block; background: var(--tg-surface, #181A20); }
.trn-infos { display: grid; gap: 10px; align-content: start; }
.trn-faits { display: grid; gap: 8px; margin: 4px 0; }
.trn-faits .trn-ligne { font-size: 14px; color: var(--tg-texte, #EAECEF); }
.trn-faits .trn-ligne svg { color: var(--tg-texte-2, #848E9C); }
.trn-total-carte { background: var(--tg-surface, #181A20); border: 1px solid var(--tg-bord, #2B3139); border-radius: 8px; padding: 14px; display: grid; gap: 4px; }
.trn-total-carte .grand { font-size: 28px; font-weight: 600; font-variant-numeric: tabular-nums; }
.trn-alerte-duo { border: 1px solid rgba(232,196,0,.45); background: rgba(232,196,0,.08); border-radius: 6px; padding: 10px 12px; font-weight: 600; font-size: 14px; }
.trn-compte { font-variant-numeric: tabular-nums; font-size: 14px; }
.trn-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 44px; padding: 0 20px; border-radius: 5px; border: 1px solid transparent; font: 600 15px var(--f); cursor: pointer; text-decoration: none; }
.trn-btn.p { background: var(--tg-accent, #E8C400); color: #14161A; }
.trn-btn.p:hover { background: var(--tg-accent-survol, #D1B000); }
.trn-btn.s { background: var(--tg-surface-2, #1E2329); color: var(--tg-texte, #EAECEF); border-color: var(--tg-bord, #2B3139); }
.trn-btn[disabled], .trn-btn[aria-disabled="true"] { opacity: .55; cursor: not-allowed; }
.trn-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.trn-bloc { background: var(--tg-surface, #181A20); border: 1px solid var(--tg-bord, #2B3139); border-radius: 8px; padding: 16px; }
.trn-html { line-height: 1.6; font-size: 15px; overflow-wrap: anywhere; }
.trn-html ul, .trn-html ol { padding-left: 22px; }
.trn-html a { color: var(--tg-accent, #E8C400); }
.trn-html h3 { margin: 14px 0 6px; }
.trn-programme-phrase { font-size: 15px; margin: 0 0 14px; }
.trn-frise { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.trn-frise li { display: grid; grid-template-columns: 36px 1fr; gap: 12px; position: relative; padding-bottom: 18px; }
.trn-frise li:not(:last-child)::before { content: ''; position: absolute; left: 17px; top: 36px; bottom: 0; width: 2px; background: var(--tg-bord, #2B3139); }
.trn-pastille { width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--tg-bord-fort, #474D57); background: var(--tg-surface-2, #1E2329); display: flex; align-items: center; justify-content: center; color: var(--tg-accent, #E8C400); }
.trn-pastille svg { width: 18px; height: 18px; }
.trn-phase { display: grid; gap: 4px; padding-top: 6px; }
.trn-phase .second a { color: var(--tg-accent, #E8C400); }
.trn-gains { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.trn-gains li { display: flex; justify-content: space-between; gap: 12px; padding: 10px 12px; border: 1px solid var(--tg-bord, #2B3139); border-radius: 6px; background: var(--tg-surface, #181A20); font-variant-numeric: tabular-nums; }
.trn-gains li b { font-weight: 600; }
.trn-photos { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 10px; }
.trn-photos img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 6px; border: 1px solid var(--tg-bord, #2B3139); display: block; }
details.trn-plie summary { cursor: pointer; font-weight: 600; font-size: 15px; padding: 12px 0; }
details.trn-plie[open] summary { margin-bottom: 10px; }

/* Formulaire d'inscription */
.trn-form { display: grid; gap: 16px; }
.trn-joueur { border: 1px solid var(--tg-bord, #2B3139); border-radius: 8px; padding: 14px; background: var(--tg-surface, #181A20); display: grid; gap: 12px; }
.trn-champs { display: grid; grid-template-columns: 1fr; gap: 12px; }
.trn-champ { display: grid; gap: 5px; font-size: 13px; color: var(--tg-texte-2, #848E9C); }
.trn-champ input, .trn-champ select, .trn-champ textarea { height: 44px; padding: 0 12px; border-radius: 5px; border: 1px solid #6B7380; background: var(--tg-fond, #0B0E11); color: var(--tg-texte, #EAECEF); font: 400 15px var(--f); width: 100%; }
.trn-champ input:focus, .trn-champ select:focus { outline: 2px solid var(--tg-accent, #E8C400); outline-offset: 1px; border-color: transparent; }
.trn-champ .opt { color: var(--tg-texte-3, #848E9C); font-weight: 400; }
.trn-case { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; line-height: 1.45; cursor: pointer; }
.trn-case input { width: 20px; height: 20px; margin: 1px 0 0; flex: none; accent-color: #E8C400; }
.trn-moyens { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 8px; }
.trn-moyen { position: relative; display: flex; align-items: center; gap: 10px; border: 1px solid var(--tg-bord, #2B3139); border-radius: 6px; padding: 10px 12px; cursor: pointer; background: var(--tg-surface, #181A20); font-size: 14px; font-weight: 500; }
.trn-moyen img { width: 30px; height: 30px; object-fit: contain; border-radius: 4px; }
.trn-moyen input { position: absolute; opacity: 0; pointer-events: none; }
.trn-moyen:has(input:checked) { border-color: var(--tg-accent, #E8C400); box-shadow: inset 0 0 0 1px var(--tg-accent, #E8C400); }
.trn-moyen:focus-within { outline: 2px solid var(--tg-accent, #E8C400); outline-offset: 1px; }
.trn-erreur { color: #F6465D; font-size: 14px; min-height: 20px; }
.trn-apercu-note { border: 1px dashed var(--tg-bord-fort, #474D57); border-radius: 6px; padding: 8px 12px; font-size: 13px; color: var(--tg-texte-2, #848E9C); }

@media (min-width: 720px) {
  .trn-champs { grid-template-columns: 1fr 1fr; }
  .trn h1 { font-size: 32px; }
}
/* Sur ordinateur, le bandeau d'annonce (108 à 150 px) est posé sur la page : on commence dessous, comme /cartes. */
@media (min-width: 768px) {
  .trn-cont { padding-top: 62px; }
}
@media (min-width: 960px) {
  .trn-hero { grid-template-columns: minmax(0, 400px) minmax(0, 1fr); gap: 32px; align-items: start; }
  .trn-corps { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 420px); gap: 32px; align-items: start; }
  .trn-colle { position: sticky; top: 124px; }
}
