/* ============================================================
   Tournois à élimination — skin + bracket visuel.
   S'appuie sur le hub skin (.hub-page/.hub-hero, qui neutralise .parchemin).
   ============================================================ */

.tour-back{ margin:0 0 6px; }
.tour-note{ color:#8a6d2f; font-style:italic; margin:6px 0 18px; }

/* --- Création admin --- */
.tour-actions{ display:flex; gap:12px; flex-wrap:wrap; align-items:center; margin:2px 0 24px; }
.tour-create{ display:flex; gap:10px; flex-wrap:wrap; align-items:center;
  background:#fbf3dc; border:1px solid #e7d5a6; border-radius:12px; padding:12px 14px; }
.tour-create input[type=text]{ border:1px solid #cdb583; border-radius:8px; padding:9px 12px;
  font-family:var(--sans); font-size:14px; min-width:220px; background:#fffdf6; color:var(--encre); }

/* --- Liste des tournois --- */
.tour-liste{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:16px; }
.tour-card{ background:#fbf3dc; border:1px solid #e7d5a6; border-radius:14px; padding:18px 20px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5); display:flex; flex-direction:column; gap:10px; }
.tour-card-nom{ font-family:var(--serif); font-size:19px; font-weight:700; color:var(--encre); text-decoration:none; }
.tour-card-nom:hover{ text-decoration:underline; }
.tour-card-meta{ font-size:13.5px; color:#5a4620; }
.tour-card > form, .tour-card > .hub-btn-gold, .tour-card > .tour-inscrit-ok{ margin-top:auto; }
.tour-card .hub-btn-gold{ width:100%; box-sizing:border-box; }

/* --- Badges de statut --- */
.tour-badge{ display:inline-block; width:max-content; font-size:12px; font-weight:700;
  padding:3px 11px; border-radius:999px; border:1px solid transparent; }
.tour-badge--inscription{ background:#e7f6e5; color:#1f7a2e; border-color:#a9d9a2; }
.tour-badge--en_cours{ background:#f6ecd2; color:#8a5a12; border-color:#dcc07a; }
.tour-badge--termine{ background:#efe6d6; color:#6b5836; border-color:#cdb98f; }

/* --- Phase d'inscription : compteur, noms secrets --- */
.tour-inscription{ text-align:center; background:#fbf3dc; border:1px solid #e7d5a6; border-radius:16px;
  padding:30px 22px; box-shadow:inset 0 1px 0 rgba(255,255,255,.5); max-width:480px; margin:0 auto; }
.tour-count-n{ display:block; font-family:var(--serif); font-size:58px; font-weight:700; line-height:1; color:#a8842f; }
.tour-count-l{ display:block; font-size:14px; letter-spacing:1px; text-transform:uppercase; color:#8a6d2f; margin-top:4px; }
.tour-secret{ margin:16px 0 20px; color:#6b5836; font-style:italic; }
.tour-inscription form{ display:inline-block; margin:0; }
.tour-inscrit-ok{ color:#1f7a2e; font-weight:700; }

/* --- CTA « jouer ma manche » --- */
.tour-cta{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
  background:linear-gradient(180deg,#fbeec6,#f3dfa0); border:1px solid #d8b25e; border-radius:14px;
  padding:16px 20px; margin:0 0 26px; box-shadow:0 4px 14px rgba(120,90,30,.18); }
.tour-cta-tx{ font-size:15px; color:var(--encre); }
.tour-cta-tx b{ font-family:var(--serif); }
.tour-cta form{ margin:0; }

/* --- Champion --- */
.tour-champion{ font-family:var(--serif); font-size:18px; color:#8a5a12; margin-top:8px; }

/* --- Bracket visuel --- */
.tour-bracket-wrap{ overflow-x:auto; padding-bottom:8px; }   /* scroll LOCAL (overflow-x:clip global) */
.tour-bracket{ display:flex; gap:40px; align-items:stretch; min-width:max-content; padding:6px 2px 10px; }
.tour-col{ display:flex; flex-direction:column; justify-content:space-around; gap:16px; min-width:216px; }
.tour-col-titre{ text-align:center; font-family:var(--serif); font-weight:700; font-size:13px;
  letter-spacing:1px; text-transform:uppercase; color:#8a6d2f; margin-bottom:2px; }
.tour-match{ position:relative; background:#fbf3dc; border:1px solid #e0cf9f; border-radius:12px;
  overflow:hidden; box-shadow:0 2px 8px rgba(120,90,30,.12); }
.tour-match--attente{ opacity:.94; }
.tour-slot{ display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:10px 13px; font-size:14px; color:var(--encre); }
.tour-slot + .tour-slot{ border-top:1px solid #ecdcb2; }
.tour-slot-nom{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tour-slot-score{ flex:none; min-width:22px; height:22px; display:inline-flex; align-items:center;
  justify-content:center; border-radius:6px; background:#efe2be; font-weight:700; font-size:13px; color:#7a5f2c; }
.tour-slot--gagnant{ background:linear-gradient(90deg,rgba(216,178,94,.30),rgba(216,178,94,.08)); }
.tour-slot--gagnant .tour-slot-nom{ font-weight:700; }
.tour-slot--gagnant .tour-slot-score{ background:#d8b25e; color:#2a1d0e; }
.tour-slot--bye{ color:#8a6d2f; font-style:italic; }
.tour-slot-tag{ font-size:11px; text-transform:uppercase; letter-spacing:.5px; color:#a08442; }
/* Marqueur bot (« Champion d'entrainement ») : discret, doré, à côté du nom. */
.tour-bot{ font-size:.8em; font-style:italic; color:var(--or-fonce,#8a6d2f); white-space:nowrap; }
/* connecteur : trait vers la ronde suivante */
.tour-col:not(:last-child) .tour-match::after{ content:""; position:absolute; right:-40px; top:50%;
  width:40px; height:2px; background:#d0b16e; }

@media (max-width:620px){
  .tour-bracket{ gap:26px; }
  .tour-col{ min-width:188px; }
  .tour-col:not(:last-child) .tour-match::after{ right:-26px; width:26px; }
}

/* --- Cycle hebdo : compte a rebours, calendrier, recompense --- */
.tour-countdown { margin-top: 6px; font-size: .9rem; }
.tour-cd-lbl { color: var(--or-fonce, #8a6d2f); }
.tour-cd-val { font-weight: 700; color: var(--encre, #2a1d0e); }

.tour-reward { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between;
  background: #fbf3dc; border: 1px solid #e7d5a6; border-radius: 14px; padding: 16px 20px; margin: 0 0 18px; }
.tour-reward-tx { flex: 1 1 260px; color: var(--encre, #2a1d0e); }
.tour-reward-ok { background: #fbf3dc; border: 1px solid #e7d5a6; border-radius: 14px; padding: 12px 18px; margin: 0 0 18px; }

.tour-cal { margin: 22px 0; }
.tour-cal-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.tour-cal-row { display: grid; grid-template-columns: 1.6rem 6.5rem 1fr; align-items: center; gap: 10px;
  background: #fbf3dc; border: 1px solid #e7d5a6; border-radius: 10px; padding: 10px 14px; }
.tour-cal-jour { font-weight: 700; color: var(--encre, #2a1d0e); }
.tour-cal-quoi { color: var(--or-fonce, #8a6d2f); }
.tour-cal-note { margin-top: 10px; font-size: .85rem; color: var(--or-fonce, #8a6d2f); }

/* --- Outils d'organisateur (admin seulement) : rappel aux absents + cloture de la ronde --- */
.tour-admin { background: #fbf3dc; border: 1px dashed var(--bord, #d0b16e); border-radius: 14px;
  padding: 16px 20px; margin: 0 0 18px; }
.tour-admin-t { margin: 0 0 12px; font-family: var(--serif, serif); font-size: 1rem; letter-spacing: .04em;
  text-transform: uppercase; color: var(--or-fonce, #8a6d2f); display: flex; align-items: center; gap: 8px; }
.tour-admin-only { font-family: var(--sans, sans-serif); font-size: .7rem; letter-spacing: .08em;
  background: var(--or-fonce, #8a6d2f); color: #fbf3dc; border-radius: 999px; padding: 2px 8px; }
.tour-admin-row { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.tour-admin-row form { margin: 0; }
.tour-admin-off { font-size: .9rem; color: var(--or-fonce, #8a6d2f); font-style: italic; }
.tour-admin-note { margin: 12px 0 0; font-size: .85rem; line-height: 1.5; color: var(--or-fonce, #8a6d2f); }
