.t2t-tournoi{border:1px solid #ddd;padding:12px;border-radius:10px;width:100%;max-width:none;box-sizing:border-box}
.t2t-form{border:1px solid #eee;background:#fff;border-radius:10px;padding:12px;margin:10px 0}
.t2t-form h4{margin:0 0 10px 0}
.t2t-row{display:flex;gap:10px;align-items:flex-end;margin-bottom:10px;flex-wrap:wrap}
.t2t-row label{display:block}
.t2t-row input{padding:8px;min-width:220px}
.t2t-row select{padding:8px;min-width:120px}
.t2t-btn{padding:8px 12px;border:1px solid #999;background:#f7f7f7;border-radius:8px;cursor:pointer}
.t2t-btn:hover{background:#eee}
.t2t-player{margin:10px 0;padding:10px;background:#fafafa;border:1px solid #eee;border-radius:10px}
.t2t-tableaux{margin:10px 0}
.t2t-addons{margin:10px 0}
.t2t-chk{display:block;margin:6px 0}
.t2t-cap{opacity:.7;font-size:12px}
.t2t-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.t2t-total{font-size:16px}
.t2t-msg{margin-top:10px}
.t2t-msg.t2t-success{color:#0a7a0a}
.t2t-msg.t2t-error{color:#b00020}
.t2t-msg.t2t-info{color:#1a4b8c}
.t2t-table{width:100%;border-collapse:collapse}
.t2t-table th,.t2t-table td{border:1px solid #ddd;padding:6px}

/* ===== Choix licence / non-licence sur la même ligne ===== */
.t2t-player-choice,
.t2t-member-choice{
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 12px;
  align-items: start;
  margin-bottom: 10px;
}
.t2t-choice-single{
  grid-template-columns: 1fr;
}
.t2t-choice-sep{
  align-self: center;
  font-weight: 800;
  opacity: .65;
  padding: 0 4px;
}

.t2t-choice-title{
  font-weight: 900;
  margin: 0 0 8px;
}

.t2t-grid-2{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:10px;
  margin-bottom:10px;
}

.t2t-grid-3{
  display:grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap:10px;
}
.t2t-player-choice .t2t-row,
.t2t-member-choice .t2t-row{
  margin-bottom: 0;
}
.t2t-player-choice input,
.t2t-member-choice input,
.t2t-player-choice select,
.t2t-member-choice select{
  min-width: 0;
  width: 100%;
  max-width: 100%;
}
.t2t-team-final-actions{
  margin-top: 8px;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
}
/* =========================
   MOBILE: table -> fiches
   ========================= */
@media (max-width: 767px){
  .t2t-player-choice,
  .t2t-member-choice{
    grid-template-columns: 1fr;
  }
  .t2t-choice-sep{
    display:none;
  }

  .t2t-grid-2,
  .t2t-grid-3{
    grid-template-columns: 1fr;
  }
  /* Fiches "équipes" (tableaux par équipes) */
  .t2t-team-table tbody tr{
    display:block !important;
    padding:12px 12px !important;
    border:1px solid #e2e2e2 !important;
    border-radius:14px !important;
    background:#fff !important;
    margin:0 0 12px 0 !important;
  }
  .t2t-team-table tbody tr td{
    display:block !important;
    flex:none !important;
    padding:0 !important;
  }
  .t2t-team-table td.t2t-team-name{
    margin:0 0 10px 0 !important;
    font-weight:900 !important;
    width:auto !important;
  }
  .t2t-team-table td.t2t-team-members{
    padding:0 !important;
  }


  /* On masque l'entête du tableau */
  .t2t-table thead{
    display:none;
  }

  /* Le tableau garde sa largeur mais n'affiche plus la grille */
  .t2t-table{
    border-collapse:separate;
    border-spacing:0;
  }

  /* Chaque ligne devient une "fiche" */
  .t2t-table tbody tr{
    display:flex;
    flex-wrap:wrap;
    gap:6px 10px;
    margin:0 0 12px 0;
    padding:10px 12px;
    border:1px solid #ddd;
    border-radius:14px;
    background:#fff;
  }

  /* On enlève les bordures internes du tableau */
  .t2t-table th,
  .t2t-table td{
    border:none !important;
  }

  /* Par défaut, chaque cellule prend toute la largeur en mode "label / valeur" */
  .t2t-table tbody tr td{
    flex:0 0 100%;
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    gap:12px;
    padding:2px 0;
  }

  /* Labels pour les fiches (tableaux) */
  .t2t-tableau-list .t2t-table tbody tr td:nth-child(3)::before{ content:"Licence"; font-weight:600; opacity:.65; }
  .t2t-tableau-list .t2t-table tbody tr td:nth-child(6)::before{ content:"Club"; font-weight:600; opacity:.65; }

  /* Labels pour les fiches (options) */
  .t2t-option-list .t2t-table tbody tr td:nth-child(3)::before{ content:"Licence"; font-weight:600; opacity:.65; }
  .t2t-option-list .t2t-table tbody tr td:nth-child(6)::before{ content:"Club"; font-weight:600; opacity:.65; }

  /* =========================
     LIGNE "HEADER" DE LA FICHE
     Rang + Nom Prénom + Points/Qté sur la même ligne
     ========================= */

  /* Commun: Rang (badge) */
  .t2t-table tbody tr td:nth-child(1){
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:2px 10px;
    border-radius:999px;
    background:#f2f2f2;
    font-weight:700;
  }
  .t2t-table tbody tr td:nth-child(1)::before{ display:none; }

  /* Nom (col 4) + Prénom (col 5) : inline sur la même ligne */
  .t2t-table tbody tr td:nth-child(4),
  .t2t-table tbody tr td:nth-child(5){
    flex:0 0 auto;
    display:inline-flex;
    justify-content:flex-start;
    font-weight:800;
    font-size:16px;
    padding:2px 0;
  }
  .t2t-table tbody tr td:nth-child(4)::before,
  .t2t-table tbody tr td:nth-child(5)::before{ display:none; }

  /* Petit espace entre Nom et Prénom */
  .t2t-table tbody tr td:nth-child(5){
    margin-left:-6px; /* resserre un peu */
  }
  .t2t-table tbody tr td:nth-child(5){
    padding-left:6px;
  }

  /* Points (tableaux) en haut à droite */
  .t2t-tableau-list .t2t-table tbody tr td:nth-child(2){
    flex:0 0 auto;
    margin-left:auto;
    display:inline-flex;
    justify-content:flex-end;
    font-weight:800;
  }
  .t2t-tableau-list .t2t-table tbody tr td:nth-child(2)::before{ display:none; }
  .t2t-tableau-list .t2t-table tbody tr td:nth-child(2)::after{
    content:" pts";
    opacity:.7;
    font-weight:700;
    margin-left:4px;
  }

  /* Qté (options) en haut à droite */
  .t2t-option-list .t2t-table tbody tr td:nth-child(2){
    flex:0 0 auto;
    margin-left:auto;
    display:inline-flex;
    justify-content:flex-end;
    font-weight:800;
  }
  .t2t-option-list .t2t-table tbody tr td:nth-child(2)::before{ display:none; }
  .t2t-option-list .t2t-table tbody tr td:nth-child(2)::after{
    content:" x";
    opacity:.7;
    font-weight:700;
    margin-left:4px;
  }
}


.t2t-team-tableaux{margin:10px 0}
.t2t-tab{display:block;margin:6px 0}
.t2t-meta{opacity:.7;font-size:12px}
.t2t-team-builders{margin:10px 0}
.t2t-team-builder{border:1px solid #eee;background:#fcfcfc;border-radius:10px;padding:12px;margin:10px 0}
.t2t-team-builder h3{margin:0 0 10px 0}
.t2t-field{margin:8px 0}
.t2t-field label{display:block;font-weight:600;margin-bottom:4px}
.t2t-field input,.t2t-field select{padding:8px;min-width:220px;max-width:100%}
.t2t-team-member{border:1px dashed #ddd;border-radius:10px;padding:10px;margin:10px 0}
.t2t-member-title{font-weight:700;margin-bottom:6px}
.t2t-member-readonly{opacity:.85}
.button-link{background:none;border:none;padding:0;color:#2271b1;cursor:pointer}
.button-link:hover{text-decoration:underline}

/* =========================
   Affichage équipes (shortcode)
   ========================= */
.t2t-team-members-list{margin:0;padding:0;list-style:none}
.t2t-team-members-list li{padding:6px 10px;border-radius:10px}
.t2t-team-members-list li{background:transparent;border-top:1px solid rgba(0,0,0,.06)}
.t2t-team-members-list li:first-child{border-top:0}
.t2t-team-members-list .t2t-m-name{font-weight:800}
.t2t-team-name{font-weight:800}

@media (max-width:768px){
  .t2t-tableau-teams .t2t-team-table thead{display:none}
  .t2t-tableau-teams .t2t-team-table tbody tr{
    display:block;
    border:1px solid #ddd;
    border-radius:14px;
    background:#fff;
    padding:10px 12px;
    margin:0 0 12px 0;
  }
  .t2t-tableau-teams .t2t-team-table tbody tr td{
    border:none !important;
    display:block;
    padding:0;
  }
  .t2t-tableau-teams .t2t-team-name{font-size:16px;margin:0 0 8px 0}
}


/* ===== T2T : Affichage équipes (tableau) ===== */
.t2t-team-table{
  overflow: hidden;
  border-radius: 14px;

  border-collapse: separate;
  border-spacing: 0;
  width: 100%;
}

.t2t-team-table thead th{
  font-weight: 700;
}

.t2t-team-table tbody tr{transition: background .15s ease}

.t2t-team-table tbody tr:nth-child(odd){background:rgba(0,0,0,.02)}
.t2t-team-table tbody tr:nth-child(even){background:#fff}
.t2t-team-table tbody tr:hover{background:rgba(46, 120, 255, .07)}

.t2t-team-table td{
  vertical-align: top;
  padding: 14px 16px;
}

.t2t-team-name{
  white-space: nowrap;
  font-weight: 700;
}

.t2t-team-members-list{
  list-style: none;
  margin: 0;
  padding: 0;
}

.t2t-team-members-list li{
  margin: 0;
  padding: 8px 10px;
  border-radius: 8px;
}

.t2t-team-members-list li:nth-child(odd){
  background: rgba(0,0,0,.03);
}

.t2t-team-members-list li:nth-child(even){
  background: rgba(0,0,0,.01);
}

.t2t-team-members-list .t2t-m-name{
  font-weight: 800;
}

.t2t-team-members-list .t2t-m-lic,
.t2t-team-members-list .t2t-m-club,
.t2t-team-members-list .t2t-m-rank,
.t2t-team-members-list .t2t-m-pts{
  opacity: .9;
}

/* Mobile : afficher les équipes en "cartes" */
@media (max-width: 768px){
  .t2t-team-table thead{ display:none; }
  .t2t-team-table, .t2t-team-table tbody, .t2t-team-table tr, .t2t-team-table td{
    display:block;
    width:100%;
  }
  .t2t-team-table tbody tr{
    background: transparent !important;
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 14px;
    margin: 12px 0;
    overflow: hidden;
  }
  .t2t-team-table td{
    padding: 12px 14px;
  }
  .t2t-team-name{
    background: rgba(0,0,0,.03);
    border-bottom: 1px solid rgba(0,0,0,.08);
  }
}


/* =========================
   Affichage équipes (shortcode)
   ========================= */
.t2t-tableau-teams{margin:12px 0}
.t2t-team-table{
  overflow: hidden;
  border-radius: 14px;
width:100%; border-collapse:separate; border-spacing:0; border:1px solid #e9e9e9; border-radius:14px; overflow:hidden; background:#fff}
.t2t-team-table thead th{background:#f5f6f7; font-weight:800; letter-spacing:.2px; padding:14px 16px; border-bottom:1px solid #e9e9e9; text-align:left}
.t2t-team-table td{padding:14px 16px; vertical-align:top; border-bottom:1px solid #f0f0f0}
.t2t-team-table tbody tr{transition: background .15s ease}

.t2t-team-table tbody tr:nth-child(odd) td{background:#fcfcfd}
.t2t-team-table tbody tr:nth-child(even) td{background:#ffffff}
.t2t-team-table tbody tr:hover td{background:#f7f9ff}
.t2t-team-table td.t2t-team-name{font-weight:900; white-space:nowrap; width:140px}

.t2t-team-members-list{margin:0; padding:0; list-style:none}
.t2t-team-members-list li{padding:8px 10px; border-radius:12px; line-height:1.35}
.t2t-team-members-list li + li{margin-top:8px}
.t2t-team-members-list li{background:transparent;border-top:1px solid rgba(0,0,0,.06)}
.t2t-team-members-list li:first-child{border-top:0}
.t2t-team-members-list .t2t-m-name{font-weight:900}
.t2t-team-members-list .t2t-m-lic{opacity:.75}
.t2t-team-members-list .t2t-m-club{opacity:.9}
.t2t-team-members-list .t2t-m-rank{opacity:.9}
.t2t-team-members-list .t2t-m-pts{opacity:.95; font-weight:700}



/* =========================================================
   T2T – Formulaire inscription (léger) : orange + noir
   Scope: uniquement dans .t2t-tournoi pour éviter les conflits
   Orange: #f57c00
   ========================================================= */
.t2t-tournoi{
  border:1px solid #e7e8ec;
  background:#fff;
  border-radius:14px;
  padding:16px;
  width:100%;
  max-width:none;
  box-sizing:border-box;
  box-shadow:0 8px 22px rgba(18,18,20,.05);
}

.t2t-tournoi h3{
  margin:0 0 10px;
  color:#f57c00;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.02em;
}

.t2t-tournoi .t2t-form{
  background:#fff;
  border:1px solid #e7e8ec;
  border-left:4px solid #f57c00;
  border-radius:12px;
  padding:14px 14px 12px;
  margin:14px 0;
}

.t2t-tournoi .t2t-form h4{
  margin:0 0 10px;
  color:#f57c00;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.02em;
}

.t2t-tournoi .t2t-row{
  display:flex;
  gap:10px;
  align-items:flex-end;
  flex-wrap:wrap;
  margin:10px 0;
}

.t2t-tournoi .t2t-row label{
  display:block;
  flex:1 1 220px;
  min-width:200px;
  color:#5f6672;
  font-weight:600;
  font-size:13px;
}

.t2t-tournoi .t2t-row input,
.t2t-tournoi .t2t-row select{
  width:100%;
  background:#f6f7f9;
  border:1px solid #e7e8ec;
  border-radius:10px;
  padding:10px 10px;
  color:#1b1c1f;
  outline:none;
  box-shadow:none;
  transition:border-color .15s ease, background .15s ease, box-shadow .15s ease;
}

.t2t-tournoi .t2t-row input:focus,
.t2t-tournoi .t2t-row select:focus{
  background:#fff;
  border-color:rgba(245,124,0,.70);
  box-shadow:0 0 0 4px rgba(245,124,0,.14);
}

.t2t-tournoi .t2t-btn{
  white-space:nowrap;
  border:1px solid rgba(245,124,0,.65);
  background:#fff;
  color:#111;
  border-radius:10px;
  padding:10px 14px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.02em;
  cursor:pointer;
  transition:background .15s ease, border-color .15s ease, transform .06s ease;
}

.t2t-tournoi .t2t-btn:hover{
  background:rgba(245,124,0,.10);
  border-color:rgba(245,124,0,.85);
}

.t2t-tournoi .t2t-btn:active{
  transform:translateY(1px);
}

/* blocs d'info (joueur trouvé / tableaux / options) : plus lisibles */
.t2t-tournoi .t2t-player{
  margin:10px 0;
  padding:12px;
  background:#fbfbfc;
  border:1px solid #e7e8ec;
  border-radius:12px;
}

.t2t-tournoi .t2t-cap{
  opacity:1;
  color:#6b7280;
  font-size:12px;
}

/* Mobile : tout respire, champs en colonne */
@media (max-width: 767px){
  .t2t-tournoi{padding:14px;border-radius:16px}
  .t2t-tournoi .t2t-form{border-radius:16px;padding:14px}
  .t2t-tournoi .t2t-row{gap:8px}
  .t2t-tournoi .t2t-row label{flex:1 1 100%;min-width:0}
  .t2t-tournoi .t2t-btn{width:auto}
}


/* ===== T2T: Team builder (public form) ===== */

.t2t-team-player1{
  margin: 10px 0 12px;
  padding: 10px 12px;
  background: #f7f7f7;
  border: 1px solid #e7e8ec;
  border-radius: 10px;
}

.t2t-team-member{
  margin: 10px 0;
  padding: 12px;
  background: #ffffff;
  border: 1px solid #e7e8ec;
  border-radius: 10px;
}

.t2t-member-top{
  margin-bottom: 8px;
  color: #f57c00;
}

.t2t-grid-2{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.t2t-grid-3{
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 10px;
}

.t2t-m-player{
  margin-top: 8px;
  padding: 10px 12px;
  background: #f7f7f7;
  border-left: 4px solid #f57c00;
  border-radius: 10px;
}

.t2t-team-actions{
  margin-top: 10px;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

@media (max-width: 600px){
  .t2t-grid-2, .t2t-grid-3{
    grid-template-columns: 1fr;
  }
}
