/*
 * Espace organisateur : un outil de travail. Sobre, plat et dense : fond neutre, pas de
 * motif décoratif, boutons pleins sans dégradé, angles peu arrondis. Les couleurs vives
 * sont réservées aux informations utiles (états, cartons, actions du direct).
 */
body.site-organizer { background: #f3f6f8; }
body.site-organizer .navbar-organizer, body.site-organizer .tournament-topbar { background: #08283a; border-bottom: 3px solid var(--gx-primary); box-shadow: none; }
body.site-organizer .navbar-tournlive { background: #fff; border-bottom: 1px solid #d6e0e6; }
body.site-organizer .brand-icon { background: var(--gx-primary); border-radius: 8px; box-shadow: none; }
body.site-organizer .organizer-link:hover { color: var(--gx-border); }
body.site-organizer .app-footer { background: #08283a; color: #9fb6c2; }

/* Boutons : pleins, sans effet. */
body.site-organizer .btn { border-radius: 8px; box-shadow: none; letter-spacing: 0; }
body.site-organizer .btn-primary { --bs-btn-color: #fff; --bs-btn-bg: #007a9e; --bs-btn-border-color: #007a9e; --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #006684; --bs-btn-hover-border-color: #006684; --bs-btn-active-color: #fff; --bs-btn-active-bg: #005a75; --bs-btn-active-border-color: #005a75; --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #a9c6d1; --bs-btn-disabled-border-color: #a9c6d1; background: #007a9e; border-color: #007a9e; box-shadow: none; color: #fff; }
body.site-organizer .btn-primary:hover { background: #006684; border-color: #006684; transform: none; }
body.site-organizer .btn-primary:disabled, body.site-organizer .btn-primary.disabled { background: #a9c6d1; border-color: #a9c6d1; }
body.site-organizer .btn-outline-primary { --bs-btn-color: #007a9e; --bs-btn-border-color: #9bbfcc; --bs-btn-hover-color: #005a75; --bs-btn-hover-bg: #e9f3f6; --bs-btn-hover-border-color: #007a9e; --bs-btn-active-color: #fff; --bs-btn-active-bg: #007a9e; --bs-btn-active-border-color: #007a9e; --bs-btn-bg: #fff; }
body.site-organizer .btn-success { --bs-btn-bg: #12805f; --bs-btn-border-color: #12805f; --bs-btn-hover-bg: #0e6b50; --bs-btn-hover-border-color: #0e6b50; --bs-btn-active-bg: #0b5942; }
body.site-organizer .btn-dark { --bs-btn-bg: #08283a; --bs-btn-border-color: #08283a; --bs-btn-hover-bg: #0b3a52; --bs-btn-hover-border-color: #0b3a52; }

/* Cadres : blancs, bordure fine et neutre. */
body.site-organizer .workspace-panel, body.site-organizer .score-row, body.site-organizer .score-progress, body.site-organizer .live-roster, body.site-organizer .live-timeline, body.site-organizer .live-bar, body.site-organizer .organizer-event, body.site-organizer .bg-white.border.rounded-3, body.site-organizer .tl-card { border-color: #d6e0e6 !important; border-radius: 12px !important; box-shadow: none; }
body.site-organizer .form-control, body.site-organizer .form-select { border-color: #c5d3da; border-radius: 8px; }
body.site-organizer .live-header { background: #08283a; border-radius: 12px; box-shadow: inset 0 -3px 0 var(--gx-orange); }

/* Colonne de navigation : fixe à l'écran, sous la barre du tournoi (hauteur réelle mesurée
   par assets/app.js), quoi qu'il arrive au contenu. Le contenu reste dans la seconde colonne. */
@media (min-width: 768px) {
    body.site-organizer .tournament-sidebar { bottom: 0; height: auto; left: 0; overflow-y: auto; padding-top: .5rem; position: fixed !important; top: var(--topbar-h, 64px); width: 110px; z-index: 1020; }
    body.site-organizer .tournament-workspace { min-height: calc(100vh - var(--topbar-h, 64px)); }
    body.site-organizer .tournament-workspace > .tournament-main { grid-column: 2; }
    /* La première colonne garde le fond blanc de la navigation jusqu'au pied de page, qui passe par-dessus. */
    body.site-organizer .tournament-workspace { background: linear-gradient(to right, #fff 109px, #d6e0e6 109px, #d6e0e6 110px, transparent 110px); }
    body.site-organizer .tournament-sidebar { border-right: 1px solid #d6e0e6; }
    body.site-organizer:has(.tournament-sidebar) .app-footer { position: relative; z-index: 1025; }
    /* Fenêtre basse : les six entrées restent visibles en se resserrant, puis en gardant seulement l'icône. */
    body.site-organizer .tournament-sidebar { display: flex; flex-direction: column; }
}
@media (min-width: 768px) and (max-height: 720px) {
    body.site-organizer .tournament-sidebar { padding-top: .25rem; }
    body.site-organizer .tournament-sidebar a { gap: .1rem; padding: .4rem .25rem; }
    body.site-organizer .tournament-sidebar a i { font-size: 1.15rem; }
}
@media (min-width: 768px) and (max-height: 500px) {
    body.site-organizer .tournament-sidebar a { padding: .45rem .25rem; }
    body.site-organizer .tournament-sidebar a span { clip: rect(0 0 0 0); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }
    body.site-organizer .tournament-sidebar a { position: relative; }
}

/* Scores : une grille, pour que les équipes, les scores et les actions tombent sur les mêmes colonnes d'une ligne à l'autre. */
body.site-organizer .score-row { align-items: center; display: grid; gap: .5rem 1.25rem; grid-template-columns: minmax(0, 1fr) auto; min-height: 0; padding: .85rem 1rem; }
body.site-organizer .score-row > div:first-child { min-width: 0; }
body.site-organizer .score-teams { align-items: center; display: grid; gap: .75rem; grid-template-columns: minmax(0, 15rem) 12.5rem minmax(0, 15rem); margin-top: .4rem; }
body.site-organizer .score-home { overflow-wrap: anywhere; text-align: right; }
body.site-organizer .score-away { overflow-wrap: anywhere; text-align: left; }
body.site-organizer .quick-result, body.site-organizer .score-box { align-items: center; background: transparent; display: inline-flex; gap: .35rem; padding: 0; }
body.site-organizer .quick-result input, body.site-organizer .score-box b { border: 1px solid #c5d3da; border-radius: 8px; box-sizing: border-box; font-size: 1.05rem; font-variant-numeric: tabular-nums; font-weight: 700; height: 2.5rem; line-height: 2.4rem; padding: 0; text-align: center; width: 3.4rem; }
body.site-organizer .score-box b { background: #eef3f6; border-color: #dbe5ea; color: var(--gx-ink); display: inline-block; }
body.site-organizer .quick-result .btn { height: 2.5rem; padding: 0; width: 2.5rem; }
body.site-organizer .score-actions { align-items: center; display: flex; gap: .5rem; justify-content: flex-end; min-width: 23.5rem; }
body.site-organizer .score-actions > .btn-primary { min-width: 11.5rem; }
body.site-organizer .score-actions > .badge { white-space: nowrap; }
@media (max-width: 991px) {
    body.site-organizer .score-row { grid-template-columns: minmax(0, 1fr); }
    body.site-organizer .score-teams { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); }
    body.site-organizer .score-actions { justify-content: flex-start; min-width: 0; }
    body.site-organizer .score-actions > .btn-primary { min-width: 0; }
}

/* Présentation : menu du site public. */
.public-menu-row { align-items: center; border-top: 1px solid #d6e0e6; display: grid; gap: .6rem 1.25rem; grid-template-columns: minmax(10rem, 13rem) 1fr auto; padding: .85rem 0; }
.public-menu-row:first-child { border-top: 0; }
.public-menu-row .form-check-input { cursor: pointer; }
@media (max-width: 767px) { .public-menu-row { grid-template-columns: 1fr; } }

/* Écran direct : on choisit l'action une fois, puis on touche le joueur. */
.live-players { display: grid; gap: .45rem; grid-template-columns: repeat(auto-fill, minmax(10.5rem, 1fr)); }
.live-player-btn { align-items: center; background: var(--gx-pale); border: 2px solid transparent; border-radius: 12px; color: var(--gx-ink); display: flex; font-weight: 600; gap: .55rem; min-height: 3.1rem; padding: .35rem .6rem; text-align: left; width: 100%; }
.live-player-btn.is-substitute { background: var(--gx-peach); }
.live-player-btn.is-out { opacity: .6; }
.live-player-btn .live-number { background: #fff; flex: none; }
.live-player-btn:hover, .live-player-btn:focus-visible { border-color: var(--gx-primary); box-shadow: 0 6px 16px rgba(0,143,184,.2); outline: 0; }
#live-form:has(#action_goal:checked) .live-player-btn:hover { border-color: #12a47c; }
#live-form:has(#action_yellow_card:checked) .live-player-btn:hover { border-color: #e0b400; }
#live-form:has(#action_red_card:checked) .live-player-btn:hover { border-color: #e03131; }
#live-form.is-closed .live-bar, #live-form.is-closed .live-players { opacity: .45; }
.live-incoming { display: none; }
#live-form:has(#action_substitution:checked) .live-incoming { display: block; }
.live-sub-hint { display: none; }
#live-form:has(#action_substitution:checked) .live-sub-hint { display: inline; }
.live-bar { background: #fff; border: 1px solid #d6e0e6; border-radius: 12px; margin-bottom: 1rem; padding: .7rem; }
.live-bar-help { color: var(--gx-muted); font-size: .85rem; margin-bottom: .5rem; }
.live-choices { display: grid; gap: .4rem; grid-template-columns: repeat(4, 1fr); }
.live-choice { align-items: center; background: #eef6f9; border: 2px solid transparent; border-radius: 12px; color: var(--gx-ink); cursor: pointer; display: flex; font-weight: 800; gap: .35rem; justify-content: center; min-height: 3rem; padding: .3rem; text-align: center; }
.live-choice-yellow_card i { color: #e0b400; }
.live-choice-red_card i { color: #e03131; }
.btn-check:checked + .live-choice { border-color: var(--gx-ink); box-shadow: 0 0 0 3px rgba(255,106,0,.45); }
.btn-check:checked + .live-choice-goal { background: #12a47c; color: #fff; }
.btn-check:checked + .live-choice-yellow_card { background: #ffd43b; color: #3d2f00; }
.btn-check:checked + .live-choice-yellow_card i { color: #3d2f00; }
.btn-check:checked + .live-choice-red_card { background: #e03131; color: #fff; }
.btn-check:checked + .live-choice-red_card i { color: #fff; }
.btn-check:checked + .live-choice-substitution { background: var(--gx-ink); color: #fff; }
.btn-check:focus-visible + .live-choice { outline: 3px solid rgba(0,143,184,.6); }
.live-more { margin-top: .5rem; }
.live-more summary { color: var(--gx-muted); cursor: pointer; font-size: .85rem; }
.live-bar .live-context { background: transparent; border: 0; margin: 0; padding: .5rem 0 0; position: static; }
@media (max-width: 575px) { .live-choice { flex-direction: column; font-size: .8rem; gap: .1rem; } }

/* Espace de travail : les messages de confirmation et d'erreur y étaient masqués. */
body:has(.tournament-topbar) > main.flex-grow-1 > .container.pt-3:has(.alert) { display: block !important; max-width: none; padding: 0; position: fixed; right: 1rem; top: 76px; width: min(26rem, calc(100% - 2rem)); z-index: 1040; }
body:has(.tournament-topbar) > main.flex-grow-1 > .container.pt-3 .alert { box-shadow: 0 12px 34px rgba(8,40,58,.22); cursor: pointer; }
body:has(.tournament-topbar) > main.flex-grow-1 > .container.pt-3 .alert-success, body:has(.tournament-topbar) > main.flex-grow-1 > .container.pt-3 .alert-info { animation: gx-flash 7s forwards; }
@keyframes gx-flash { 0%, 85% { opacity: 1; visibility: visible; } 100% { opacity: 0; visibility: hidden; } }

/* Calendrier : réglages d'affichage public. */

/* Boutons au trait : couleurs écrites en clair pour le repos et le survol. */
body.site-organizer .btn-outline-primary { background-color: #fff; border-color: #9bbfcc; color: #007a9e; }
body.site-organizer .btn-outline-primary:hover, body.site-organizer .btn-outline-primary:focus-visible, body.site-organizer .btn-outline-primary:active { background-color: #e9f3f6; border-color: #007a9e; color: #005a75; }

/* Bouton du menu : le mot « Menu » n'est affiché que sur la vitrine. */
body.site-organizer .navbar-toggler-label { display: none; }

/* Création d'un tournoi : une carte centrée, une barre de progression en trois segments, une étape à la fois. */
body.site-organizer .create-page { display: flex; justify-content: center; padding: clamp(1.5rem, 5vw, 4rem) 1rem 4rem; }
body.site-organizer .create-card { background: #fff; border: 1px solid #d6e0e6; border-radius: 12px; box-shadow: 0 16px 40px rgba(8,40,58,.08); overflow: hidden; padding: 0 clamp(1.25rem, 4vw, 2.5rem) clamp(1.25rem, 3vw, 2rem); width: min(100%, 34rem); }
body.site-organizer .create-progress { display: grid; gap: 4px; grid-template-columns: repeat(3, 1fr); margin: 0 calc(-1 * clamp(1.25rem, 4vw, 2.5rem)) 1.75rem; }
body.site-organizer .create-progress span { background: #d6e0e6; height: 5px; }
body.site-organizer .create-card[data-step="1"] .create-progress span:nth-child(-n+1),
body.site-organizer .create-card[data-step="2"] .create-progress span:nth-child(-n+2),
body.site-organizer .create-card[data-step="3"] .create-progress span { background: var(--gx-primary); }
body.site-organizer .create-step { display: grid; gap: 1rem; }
body.site-organizer .create-card:not(.is-stepped) .create-step + .create-step { border-top: 1px solid #d6e0e6; margin-top: 1.5rem; padding-top: 1.5rem; }
body.site-organizer .create-count { color: var(--gx-muted); font-size: .8rem; font-weight: 700; letter-spacing: .06em; margin: 0; text-transform: uppercase; }
body.site-organizer .create-step h1, body.site-organizer .create-step h2 { font-size: clamp(1.6rem, 3vw, 2rem); font-weight: 800; margin: 0; }
body.site-organizer .create-lead { color: var(--gx-muted); margin: 0; }
body.site-organizer .create-field { display: grid; gap: .35rem; }
body.site-organizer .create-field label { font-size: .9rem; font-weight: 700; }
body.site-organizer .create-field label span { color: var(--gx-muted); font-weight: 400; }
body.site-organizer .create-field .form-control, body.site-organizer .create-field .form-select { min-height: 2.9rem; }
body.site-organizer .create-dates { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); }
body.site-organizer .create-divisions { display: grid; gap: .6rem; }
body.site-organizer .create-add { justify-self: start; }
body.site-organizer .create-actions { align-items: center; border-top: 1px solid #d6e0e6; display: flex; gap: .5rem; justify-content: flex-end; margin-top: 1.75rem; padding-top: 1.25rem; }
body.site-organizer .create-actions .btn-link { color: var(--gx-ink); font-weight: 700; text-decoration: none; }
body.site-organizer .create-actions .btn-primary { min-width: 9rem; }

/* Accueil de l'espace sans compétition : un mot de bienvenue et un seul bouton. */
body.site-organizer .welcome-empty { display: grid; gap: .75rem; justify-items: center; margin: clamp(2rem, 8vh, 5rem) auto; max-width: 30rem; text-align: center; }
body.site-organizer .welcome-empty .welcome-icon { align-items: center; background: #08283a; border-radius: 20px; box-shadow: inset 0 -5px 0 var(--gx-orange); color: #ffd43b; display: inline-flex; font-size: 2.6rem; height: 5.5rem; justify-content: center; margin-bottom: .5rem; width: 5.5rem; }
body.site-organizer .welcome-empty h2 { font-size: 1.6rem; font-weight: 800; margin: 0; }
body.site-organizer .welcome-empty p { color: var(--gx-muted); margin: 0 0 .5rem; }

/* Présentation : onglets Site web, Diaporama, Design. */
body.site-organizer .presentation-tabs { margin-bottom: 1.25rem; }
body.site-organizer .presentation-tabs .bi-lock-fill { color: #8aa3af; font-size: .8em; }
.slideshow-contents { display: grid; gap: .5rem; list-style: none; margin: 1rem 0 1.25rem; padding: 0; }
.slideshow-contents li { align-items: center; background: #f3f6f8; border-radius: 8px; display: flex; gap: .75rem; padding: .6rem .8rem; }
.slideshow-contents .bi { color: #007a9e; font-size: 1.1rem; }
.slideshow-launch { border-top: 1px solid #d6e0e6; padding-top: 1rem; }

.design-locked { align-items: center; background: #fff7ef; border: 1px solid #ffd2ad; border-radius: 10px; display: flex; gap: 1rem; margin: .75rem 0 1.25rem; padding: .9rem 1rem; }
.design-locked > .bi { color: #ff6a00; font-size: 1.4rem; }
.design-locked > div { display: grid; flex: 1; gap: .1rem; }
.design-locked span { color: #52798a; font-size: .9rem; }
.design-layout { align-items: start; display: grid; gap: 1.5rem; grid-template-columns: minmax(0, 1fr) 20rem; }
.design-fields { display: grid; gap: 1rem; }
.design-block { border: 1px solid #d6e0e6; border-radius: 10px; margin: 0; padding: 1rem 1.1rem; position: relative; }
.design-block legend { float: none; font-size: 1rem; font-weight: 700; margin: 0 0 .25rem; padding: 0; width: auto; }
.design-block.is-locked { background: #f7f9fa; }
.design-block.is-locked > *:not(legend) { opacity: .55; }
.design-block.is-locked legend::after { color: #8aa3af; content: "\F47B"; font-family: bootstrap-icons; font-size: .8em; font-weight: 400; margin-left: .4rem; }
.design-colors { display: flex; flex-wrap: wrap; gap: 1.5rem; }
.design-colors .form-control-color { height: 2.6rem; width: 5rem; }
.design-current { align-items: center; display: flex; gap: .75rem; margin-bottom: .6rem; }
.design-current img { background: repeating-conic-gradient(#e7edf0 0 25%, #fff 0 50%) 0 0 / 12px 12px; border: 1px solid #d6e0e6; border-radius: 8px; height: 56px; max-width: 160px; object-fit: contain; }

/* Aperçu du site public, mis à jour pendant les réglages. */
.design-preview { --d-band: #08283a; --d-band-text: #fff; --d-accent: #ff6a00; --d-font: inherit; border: 1px solid #d6e0e6; border-radius: 12px; font-family: var(--d-font); overflow: hidden; position: sticky; top: 5rem; }
.design-preview-label { background: #fff; border-bottom: 1px solid #d6e0e6; color: #52798a; display: block; font-family: system-ui, sans-serif; font-size: .75rem; font-weight: 700; letter-spacing: .06em; padding: .4rem .8rem; text-transform: uppercase; }
.design-preview-band { align-items: center; background: var(--d-band) var(--d-image, none) center / cover; color: var(--d-band-text); display: flex; gap: .6rem; min-height: 5.5rem; padding: 1rem; }
.design-preview-band img { background: #fff; border-radius: 8px; height: 40px; object-fit: contain; padding: 2px; width: 40px; }
.design-preview-band .bi { font-size: 1.6rem; }
.design-preview-band strong { font-size: 1.1rem; line-height: 1.2; }
.design-preview-tabs { background: #fff; border-bottom: 1px solid #e3eaee; display: flex; font-size: .8rem; gap: .9rem; padding: .55rem .9rem 0; }
.design-preview-tabs span { color: #52798a; padding-bottom: .45rem; }
.design-preview-tabs .is-active { border-bottom: 3px solid var(--d-accent); color: #08283a; font-weight: 700; }
.design-preview-match { align-items: center; background: #f3f6f8; display: grid; font-size: .85rem; gap: .35rem; grid-template-columns: 1fr auto auto 1fr; padding: 1rem .9rem; }
.design-preview-match span:last-child { text-align: right; }
.design-preview-match b { background: #1f9d55; border-radius: 6px; color: #fff; min-width: 1.8rem; padding: .2rem .4rem; text-align: center; }
.design-preview-match b + b { background: #e5484d; }
@media (max-width: 991.98px) { .design-layout { grid-template-columns: 1fr; } .design-preview { position: static; } }
@media (max-width: 575.98px) { .design-locked { align-items: flex-start; flex-direction: column; } }

.upgrade-plans { display: grid; gap: .5rem; list-style: none; margin: 1rem 0 0; padding: 0; }
.upgrade-plans li { align-items: baseline; border: 1px solid #d6e0e6; border-radius: 10px; display: grid; gap: 0 .75rem; grid-template-columns: 1fr auto; padding: .7rem .9rem; }
.upgrade-plans li span { color: #08283a; font-weight: 700; }
.upgrade-plans li small { color: #52798a; grid-column: 1 / -1; }

/* Calendrier : titre, liste des dates et outils sur une seule ligne, pour laisser la place aux terrains. */
body.site-organizer .planning-heading { align-items: center; flex-direction: row; flex-wrap: wrap; gap: .75rem 1.5rem; margin-bottom: 1rem; }
body.site-organizer .planning-heading h1 { margin: 0; }
body.site-organizer .planning-toolbar { align-items: center; display: flex; flex-wrap: wrap; gap: .5rem; }
body.site-organizer .planning-daypick { display: flex; gap: .5rem; }
body.site-organizer .planning-daypick .form-select { font-weight: 600; min-width: 19rem; }
body.site-organizer .planning-duration-menu { padding: 1rem; width: 17rem; }
@media (max-width: 575.98px) { body.site-organizer .planning-daypick, body.site-organizer .planning-daypick .form-select { flex: 1 1 100%; min-width: 0; } }
.planning-delete-list { list-style: none; margin: 0; max-height: 14rem; overflow-y: auto; padding: 0; }
.planning-delete-list li { border-top: 1px solid #e3eaee; padding: .4rem 0; }
.planning-delete-list time { color: #007a9e; font-variant-numeric: tabular-nums; font-weight: 700; margin-right: .4rem; }
body.site-organizer .planning-field-new-title { font-size: 1rem; font-weight: 700; margin: 0 0 .75rem; }
body.site-organizer .planning-field-new .form-label { display: block; margin: .5rem 0 .25rem; }

/* Présentation, ligne « Équipes » : réglages des joueurs regroupés. */
.public-player-settings { border-left: 3px solid #d6e0e6; display: grid; gap: .35rem; margin: .6rem 0 0; padding: .1rem 0 .1rem .75rem; }
.public-player-settings legend { color: #08283a; float: none; font-size: .8rem; font-weight: 700; letter-spacing: .04em; margin: 0; padding: 0; text-transform: uppercase; width: auto; }

/* Participants, onglet Équipes : barre d'outils au-dessus du tableau. */
.teams-toolbar { align-items: center; display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: .75rem; }
.teams-search { flex: 1 1 16rem; max-width: 24rem; position: relative; }
.teams-search .bi { color: #52798a; left: .75rem; position: absolute; top: 50%; transform: translateY(-50%); }
.teams-search .form-control { padding-left: 2.2rem; }
.teams-columns-menu { max-height: 22rem; min-width: 16rem; overflow-y: auto; }
.teams-columns-menu .dropdown-item.form-check { cursor: pointer; display: flex; gap: .5rem; margin: 0; padding: .35rem 1rem; }
.teams-columns-menu .dropdown-item.form-check .form-check-input { float: none; margin: .2rem 0 0; }

/* Fenêtre « Ajouter des équipes » : deux onglets, une équipe ou plusieurs. */
.add-teams-tabs { padding: .5rem 1rem 0; }
.add-teams-tabs .nav-link { color: #52798a; font-weight: 600; }
.add-teams-tabs .nav-link.active { color: #08283a; }

/* Effectif d'une équipe (fenêtre rapide) : un bouton d'ajout à deux onglets, la liste avec modifier / supprimer. */
.roster .roster-head { align-items: center; display: flex; gap: 1rem; justify-content: space-between; margin-bottom: .75rem; }
.roster .roster-head div { display: grid; }
.roster .roster-head small { color: #52798a; }
.roster .roster-add { border: 1px solid #d6e0e6; border-radius: 10px; margin-bottom: 1rem; }
.roster .roster-add .tab-content { padding: 1rem; }
.roster .roster-list { display: grid; gap: .4rem; }
.roster .roster-player { align-items: center; border: 1px solid #e3eaee; border-radius: 10px; display: flex; gap: .75rem; padding: .5rem .75rem; }
.roster .roster-player > div { display: grid; min-width: 0; }
.roster .roster-player small { color: #52798a; }
.roster .roster-badge { background: #08283a; border-radius: 4px; color: #fff; display: inline-block; font-size: .65rem; font-weight: 700; line-height: 1; padding: .2rem .3rem; vertical-align: middle; }
.roster .roster-action { align-items: center; background: none; border: 0; border-radius: 8px; color: #52798a; display: inline-flex; height: 2rem; justify-content: center; text-decoration: none; width: 2rem; }
.roster .roster-action:hover { background: #e9f3f6; color: #007a9e; }
.roster .roster-action.is-danger:hover { background: #fdecec; color: #b42318; }
.roster .roster-back { display: inline-flex; gap: .35rem; margin-bottom: 1rem; text-decoration: none; }

/* Paiement d'une équipe : liste déroulante colorée selon l'état. */
.payment-select { border-radius: 999px; font-size: .8rem; font-weight: 700; min-width: 8.5rem; padding-bottom: .2rem; padding-top: .2rem; }
.payment-select.is-unpaid { background-color: #fdecec; border-color: #f3b4b4; color: #b42318; }
.payment-select.is-partial { background-color: #fff4e5; border-color: #f5c98a; color: #9a5800; }
.payment-select.is-paid { background-color: #e6f6ec; border-color: #9fd8b2; color: #17603a; }

/* Barre du tournoi : un seul outil, le menu « Site public » (site et diaporama, dans un nouvel onglet). */
body.site-organizer .tournament-topbar .topbar-tools { align-items: center; display: flex; }
body.site-organizer .tournament-topbar .topbar-button { align-items: center; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.25); border-radius: 8px; color: #fff; display: inline-flex; font-size: .9rem; font-weight: 700; gap: .45rem; margin: 0; padding: .4rem .8rem; text-decoration: none; }
body.site-organizer .tournament-topbar .topbar-button:hover { background: rgba(255,255,255,.16); }
body.site-organizer .tournament-topbar .dropdown-menu a { color: #08283a; font-size: .9rem; font-weight: 600; margin: 0; }
body.site-organizer .tournament-topbar .dropdown-menu a:hover { background: #e9f3f6; }
@media (max-width: 575.98px) { body.site-organizer .tournament-topbar .topbar-button span { display: none; } }

/* Compte : réglages et facturation. */
body.site-organizer .account-page { max-width: 52rem; }
body.site-organizer .account-panel { margin-bottom: 1.25rem; padding: 1.25rem 1.5rem; }
body.site-organizer .account-panel h2 { font-size: 1.1rem; font-weight: 800; margin-bottom: 1rem; }
body.site-organizer .account-panel input[readonly] { background: #f3f6f8; color: #52798a; }
body.site-organizer .account-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
body.site-organizer .account-menu-email { color: #52798a; font-size: .85rem; }
body.site-organizer .plan-pill { background: #eef2f4; border-radius: 999px; color: #52798a; font-size: .8rem; font-weight: 700; padding: .15rem .6rem; }
body.site-organizer .plan-pill.is-paid { background: #e6f6ec; color: #17603a; }

body.site-organizer .planning-tag.warn { background: #fff4e5; color: #9a5800; }

/* Informations de facturation : formulaire et aperçu de l'en-tête de facture. */
body.site-organizer .account-page:has(#billing-details) { max-width: 64rem; }
body.site-organizer .billing-layout { align-items: start; display: grid; gap: 1.5rem; grid-template-columns: minmax(0, 1fr) 17rem; }
body.site-organizer .billing-preview { background: #f3f6f8; border: 1px solid #d6e0e6; border-radius: 10px; display: grid; gap: .25rem; padding: 1rem; position: sticky; top: 5rem; }
body.site-organizer .billing-preview > span { color: #52798a; font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
body.site-organizer .billing-preview address { color: #08283a; font-weight: 600; margin: .25rem 0; }
@media (max-width: 767.98px) { body.site-organizer .billing-layout { grid-template-columns: 1fr; } body.site-organizer .billing-preview { position: static; } }

/* Feuille de match (section Scores) : le match, une carte « prochaine étape », le détail en onglets. */
body.site-organizer .sheet-page { display: grid; gap: 14px; max-width: 64rem; }
body.site-organizer .sheet-back { align-items: center; color: #52798a; display: inline-flex; font-size: .85rem; font-weight: 700; gap: .35rem; justify-self: start; text-decoration: none; }
body.site-organizer .sheet-back:hover { color: #007a9e; }
body.site-organizer .sheet-head { align-items: flex-start; display: flex; flex-wrap: wrap; gap: 12px 24px; justify-content: space-between; }
body.site-organizer .sheet-kicker { color: #007a9e; display: block; font-size: .78rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
body.site-organizer .sheet-title h1 { font-size: 1.5rem; font-weight: 800; margin: .15rem 0 .35rem; }
body.site-organizer .sheet-title h1 span { color: #9bb3bf; font-weight: 600; }
body.site-organizer .sheet-meta { color: #52798a; display: flex; flex-wrap: wrap; font-size: .88rem; gap: 4px 16px; margin: 0; }
body.site-organizer .sheet-meta .bi { margin-right: 4px; }
body.site-organizer .sheet-tools { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; }
body.site-organizer .sheet-tool-note { color: #52798a; font-size: .82rem; }
body.site-organizer .sheet-status { border-radius: 999px; font-size: .8rem; font-weight: 800; padding: .3rem .8rem; }
body.site-organizer .sheet-status.is-draft { background: #eef2f4; color: #52798a; }
body.site-organizer .sheet-status.is-pending { background: #fff4e5; color: #9a5800; }
body.site-organizer .sheet-status.is-approved { background: #e6f6ec; color: #17603a; }

body.site-organizer .sheet-board { align-items: center; background: #fff; border: 1px solid #d6e0e6; border-radius: 12px; display: grid; gap: 8px 16px; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); padding: 18px 20px 14px; text-align: center; }
body.site-organizer .sheet-board-team span { color: #52798a; display: block; font-size: .75rem; letter-spacing: .04em; text-transform: uppercase; }
body.site-organizer .sheet-board-team strong { font-size: 1.1rem; }
body.site-organizer .sheet-board-score { display: grid; gap: 4px; justify-items: center; }
body.site-organizer .sheet-board-score b, body.site-organizer .sheet-board-score i { display: inline-block; font-size: 2.1rem; font-style: normal; font-variant-numeric: tabular-nums; font-weight: 800; line-height: 1; }
body.site-organizer .sheet-board-score { grid-template-columns: auto auto auto; }
body.site-organizer .sheet-board-score i { color: #9bb3bf; padding: 0 .3rem; }
body.site-organizer .sheet-board-score .badge, body.site-organizer .sheet-board-score small { grid-column: 1 / -1; }
body.site-organizer .sheet-board-score small { color: #52798a; font-size: .75rem; max-width: 16rem; }
body.site-organizer .sheet-steps { border-top: 1px solid #e3eaee; display: flex; gap: 6px; grid-column: 1 / -1; justify-content: center; list-style: none; margin: 6px 0 0; padding: 12px 0 0; }
body.site-organizer .sheet-steps li { align-items: center; border: 0; background: none; color: #8aa3af; display: flex; font-size: .82rem; font-weight: 700; gap: 6px; padding: 0 8px; }
body.site-organizer .sheet-steps li + li::before { background: #d6e0e6; content: ""; height: 2px; margin-right: 8px; width: 28px; }
body.site-organizer .sheet-steps li span { align-items: center; background: #eef2f4; border-radius: 50%; display: inline-flex; font-size: .72rem; height: 22px; justify-content: center; width: 22px; }
body.site-organizer .sheet-steps li.done { color: #17603a; }
body.site-organizer .sheet-steps li.done span { background: #12805f; color: #fff; }
body.site-organizer .sheet-steps li.active { color: #08283a; }
body.site-organizer .sheet-steps li.active span { background: #007a9e; color: #fff; }

body.site-organizer .sheet-alert { align-items: flex-start; background: #fff7ef; border: 1px solid #ffd2ad; border-left: 4px solid #ff6a00; border-radius: 10px; display: flex; gap: 10px; padding: 12px 14px; }
body.site-organizer .sheet-alert > i { color: #ff6a00; font-size: 1.15rem; }
body.site-organizer .sheet-alert div { display: grid; font-size: .88rem; gap: 2px; }

body.site-organizer .sheet-next { align-items: center; background: #fff; border: 1px solid #9bbfcc; border-left: 4px solid #007a9e; border-radius: 12px; display: flex; flex-wrap: wrap; gap: 12px 16px; padding: 14px 18px; }
body.site-organizer .sheet-next > i, body.site-organizer .sheet-next-head > i { color: #007a9e; font-size: 1.5rem; }
body.site-organizer .sheet-next > div, body.site-organizer .sheet-next-head > div { display: grid; flex: 1 1 18rem; gap: 2px; }
body.site-organizer .sheet-next span { color: #52798a; font-size: .88rem; }
body.site-organizer .sheet-next form { margin: 0; }
body.site-organizer .sheet-next.is-locked { border-color: #d6e0e6; border-left-color: #ff6a00; }
body.site-organizer .sheet-next.is-locked > i { color: #ff6a00; }
body.site-organizer .sheet-next.is-approved { border-left-color: #12805f; }
body.site-organizer .sheet-next.is-approved > i { color: #12805f; }
body.site-organizer .sheet-next.is-pending { align-items: stretch; display: grid; }
body.site-organizer .sheet-next-head { align-items: center; display: flex; flex-wrap: wrap; gap: 12px 16px; }
body.site-organizer .sheet-validation-list { display: grid; gap: 8px; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); }
body.site-organizer .sheet-validation { border: 1px solid #d6e0e6; border-radius: 10px; padding: 10px 12px; }
body.site-organizer .sheet-validation.is-valid { background: #f3fbf6; border-color: #b7e4c7; }
body.site-organizer .sheet-validation.has-reserve { background: #fffaf0; border-color: #f5c98a; }
body.site-organizer .sheet-validation-head { align-items: baseline; display: flex; flex-wrap: wrap; gap: 4px 10px; justify-content: space-between; }
body.site-organizer .sheet-validation-state { color: #17603a; font-size: .82rem; font-weight: 700; }
body.site-organizer .sheet-validation.has-reserve .sheet-validation-state { color: #9a5800; }
body.site-organizer .sheet-validation-state.is-waiting { color: #8aa3af; }
body.site-organizer .sheet-validation small { color: #52798a; }
body.site-organizer .sheet-validation details summary { color: #007a9e; cursor: pointer; font-size: .85rem; font-weight: 700; margin-top: 6px; }
body.site-organizer .sheet-validation details form { margin-top: 8px; }
body.site-organizer .sheet-observation { font-size: .85rem; margin: 6px 0 0; }
body.site-organizer .sheet-reopen { color: #52798a; font-size: .88rem; }
body.site-organizer .sheet-reopen summary { cursor: pointer; font-weight: 700; }
body.site-organizer .sheet-reopen form { margin-top: 6px; max-width: 36rem; }
body.site-organizer .sheet-reopen .form-control { flex: 1 1 16rem; }

body.site-organizer .sheet-tabs { border-bottom-color: #d6e0e6; margin-top: 6px; }
body.site-organizer .sheet-tabs .nav-link { color: #52798a; font-weight: 700; }
body.site-organizer .sheet-tabs .nav-link.active { color: #08283a; }
body.site-organizer .sheet-count { background: #eef2f4; border-radius: 999px; font-size: .72rem; margin-left: 4px; padding: 1px 7px; }
body.site-organizer .sheet-panes > .tab-pane { padding-top: 4px; }
body.site-organizer .sheet-teams { display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 12px; }
body.site-organizer .sheet-team, body.site-organizer .sheet-events, body.site-organizer #sheet-history, body.site-organizer #team-links { background: #fff; border: 1px solid #d6e0e6; border-radius: 12px; padding: 14px 16px; }
body.site-organizer .sheet-team h2, body.site-organizer .sheet-events h2 { font-size: 1rem; font-weight: 800; margin: 0 0 8px; }
body.site-organizer .sheet-team h3 { color: #52798a; font-size: .72rem; font-weight: 800; letter-spacing: .05em; margin: 10px 0 4px; text-transform: uppercase; }
body.site-organizer .sheet-team ul { list-style: none; margin: 0; padding: 0; }
body.site-organizer .sheet-team li { border-top: 1px solid #eef2f4; display: flex; font-size: .9rem; gap: 10px; padding: 5px 0; }
body.site-organizer .sheet-team li b { color: #007a9e; font-variant-numeric: tabular-nums; min-width: 1.6rem; text-align: right; }
body.site-organizer .sheet-captain { background: #08283a; border-radius: 4px; color: #fff; font-size: .62rem; font-weight: 800; padding: 1px 4px; }
body.site-organizer .sheet-staff { border-top: 1px solid #eef2f4; font-size: .85rem; margin: 8px 0 0; padding-top: 8px; }
body.site-organizer .sheet-staff span { color: #52798a; margin-right: 4px; }
body.site-organizer .sheet-empty { color: #52798a; font-size: .88rem; margin: 0; }
body.site-organizer .sheet-event { align-items: center; border-top: 1px solid #eef2f4; display: grid; font-size: .9rem; gap: 4px 12px; grid-template-columns: 2.6rem 8.5rem minmax(0, 1fr); padding: 7px 0; }
body.site-organizer .sheet-event:first-of-type { border-top: 0; }
body.site-organizer .sheet-event time { color: #52798a; font-variant-numeric: tabular-nums; font-weight: 800; text-align: right; }
body.site-organizer .sheet-event small { color: #52798a; }
body.site-organizer .sheet-event-type { border-radius: 6px; font-size: .78rem; font-weight: 800; justify-self: start; padding: 2px 8px; background: #eef2f4; color: #52798a; }
body.site-organizer .sheet-event-type.is-goal { background: #e6f6ec; color: #17603a; }
body.site-organizer .sheet-event-type.is-yellow_card { background: #fff6cc; color: #7a5b00; }
body.site-organizer .sheet-event-type.is-red_card { background: #fdecec; color: #b42318; }
body.site-organizer .sheet-event-type.is-substitution { background: #e4f4f8; color: #005a75; }
body.site-organizer .sheet-event.has-issue { background: #fffaf3; }
body.site-organizer .sheet-event-issue { color: #b14a00; font-size: .8rem; grid-column: 2 / -1; }
body.site-organizer .sheet-links { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr)); }
body.site-organizer .sheet-link { border: 1px solid #e3eaee; border-radius: 10px; padding: 12px; }
body.site-organizer .sheet-log { border-top: 1px solid #eef2f4; display: flex; flex-wrap: wrap; font-size: .88rem; gap: 2px 12px; justify-content: space-between; padding: 7px 0; }
body.site-organizer .sheet-log:first-child { border-top: 0; }
body.site-organizer .sheet-log small { color: #52798a; }
@media (max-width: 720px) {
    body.site-organizer .sheet-teams { grid-template-columns: 1fr; }
    body.site-organizer .sheet-board { grid-template-columns: 1fr auto 1fr; padding: 14px 10px; }
    body.site-organizer .sheet-board-score b, body.site-organizer .sheet-board-score i { font-size: 1.7rem; }
    body.site-organizer .sheet-event { grid-template-columns: 2.2rem minmax(0, 1fr); }
    body.site-organizer .sheet-event > span:last-of-type:not(.sheet-event-issue) { grid-column: 2; }
}
body.site-organizer .sheet-board-score { column-gap: 2px; justify-content: center; }

/* Cartons dessinés (déroulé du match). */
body.site-organizer .foul-card { border-radius: 2px; box-shadow: 0 1px 2px rgba(8,40,58,.25), inset 0 0 0 1px rgba(0,0,0,.08); display: inline-block; height: 1.15em; transform: rotate(-8deg); vertical-align: middle; width: .82em; }
body.site-organizer .foul-card.is-yellow { background: linear-gradient(160deg, #ffe45c, #f5c400); }
body.site-organizer .foul-card.is-red { background: linear-gradient(160deg, #ff5a4f, #d6201a); }
body.site-organizer .sheet-event-type.is-card { background: none; font-size: 1.15rem; padding: 0 .4rem; }

/* Ligne d'événement : minute, puis type et joueur sur une même ligne (retour à la ligne si besoin). */
body.site-organizer .sheet-event { grid-template-columns: 2.6rem minmax(0, 1fr); }
body.site-organizer .sheet-event-body { align-items: center; display: flex; flex-wrap: wrap; gap: 4px 10px; min-width: 0; }
body.site-organizer .sheet-event-type { flex: 0 0 auto; }
body.site-organizer .sheet-event-who { min-width: 0; overflow-wrap: anywhere; }
body.site-organizer .sheet-event-issue { flex-basis: 100%; grid-column: auto; }
body.site-organizer .sheet-event-type.is-card { font-size: 1.05rem; line-height: 1; padding: 0 .55rem 0 .2rem; }
body.site-organizer .sheet-board-score { display: grid; grid-template-columns: none; justify-items: center; }
body.site-organizer .sheet-board-digits { align-items: baseline; display: flex; gap: 6px; }

/* Carton : petit rectangle vertical, comme celui de l'arbitre (taille fixe, quel que soit le texte autour). */
body.site-organizer .foul-card { border-radius: 2px; box-shadow: 0 1px 1px rgba(8,40,58,.3); display: inline-block; flex: 0 0 auto; height: 14px; transform: rotate(-6deg); vertical-align: -2px; width: 10px; }
body.site-organizer .foul-card.is-yellow { background: #f7c600; }
body.site-organizer .foul-card.is-red { background: #e02a20; }
body.site-organizer .sheet-event-type.is-card { font-size: inherit; padding: 0 4px; }

/* Téléphone : le menu des sections reste fixé sous la barre du tournoi, sans barre de défilement visible. */
@media (max-width: 767.98px) {
    body.site-organizer .tournament-sidebar { background: #fff; border-bottom: 1px solid #d6e0e6; box-shadow: 0 6px 14px rgba(8,40,58,.06); display: flex; flex-direction: row; gap: 0; height: auto; overflow-x: auto; padding: 0; position: sticky !important; scrollbar-width: none; top: var(--topbar-h, 58px); z-index: 1015; }
    body.site-organizer .tournament-sidebar::-webkit-scrollbar { display: none; }
    body.site-organizer .tournament-sidebar a { flex: 1 0 auto; gap: 2px; min-width: 64px; padding: 8px 6px 7px; position: relative; }
    body.site-organizer .tournament-sidebar a i { font-size: 1.15rem; }
    body.site-organizer .tournament-sidebar a span { font-size: .68rem; }
    body.site-organizer .tournament-sidebar a.active::after { background: #007a9e; border-radius: 3px 3px 0 0; bottom: 0; content: ""; height: 3px; left: 12px; position: absolute; right: 12px; }
}

/* Ballon et flèches de remplacement, à la taille des cartons. */
body.site-organizer .event-ball { color: #08283a; display: inline-block; flex: 0 0 auto; height: 16px; vertical-align: -3px; width: 16px; }
body.site-organizer .event-sub { align-items: center; display: inline-flex; flex: 0 0 auto; gap: 0; line-height: 1; }
body.site-organizer .event-sub .bi { font-size: 15px; font-weight: 700; -webkit-text-stroke: .6px currentColor; }
body.site-organizer .event-sub .is-in { color: #12805f; }
body.site-organizer .event-sub .is-out { color: #d6201a; margin-left: -3px; }
body.site-organizer .sheet-event-type.is-icon { align-items: center; background: none; display: inline-flex; justify-content: center; min-width: 22px; padding: 0 2px; }

/* Écran direct : icônes dessinées sur les boutons d'action et dans le fil du match. */
body.site-organizer .live-choice { align-items: center; display: inline-flex; gap: 6px; justify-content: center; }
body.site-organizer .live-choice .foul-card { height: 16px; width: 11px; }
body.site-organizer .live-choice .event-ball { height: 18px; width: 18px; }
body.site-organizer .live-choice .event-ball, body.site-organizer .btn-check:checked + .live-choice .event-ball { color: #08283a; }
body.site-organizer .live-event { align-items: center; display: flex; gap: 10px; }
body.site-organizer .live-event-icon { align-items: center; display: inline-flex; flex: 0 0 22px; justify-content: center; }
body.site-organizer .live-event-text { flex: 1 1 auto; min-width: 0; }

/* Écran direct : logos, score manuel, saisie détaillée réservée aux formules payantes. */
body.site-organizer .live-team { align-items: center; display: flex; flex-direction: column; gap: 8px; }
body.site-organizer .live-team .team-logo { background: #fff; border-radius: 12px; height: 56px; object-fit: contain; padding: 4px; width: 56px; }
body.site-organizer .live-team .team-logo.is-empty { align-items: center; background: rgba(255,255,255,.1); color: #9dd8e5; display: inline-flex; font-size: 1.6rem; justify-content: center; }
body.site-organizer .live-manual-score { align-items: center; background: #fff; border: 1px solid #d6e0e6; border-radius: 12px; display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin: 0 0 14px; padding: 10px 14px; }
body.site-organizer .live-manual-score .form-control { font-size: 1.2rem; font-weight: 800; text-align: center; width: 4.5rem; }
body.site-organizer .live-manual-label { color: #52798a; font-size: .85rem; font-weight: 700; margin-right: 4px; }
body.site-organizer .live-locked { position: relative; }
body.site-organizer .live-locked #live-form { filter: grayscale(.6); opacity: .45; pointer-events: none; user-select: none; }
body.site-organizer .live-locked-overlay { align-items: flex-start; background: transparent; border: 0; color: #08283a; cursor: pointer; display: flex; font-weight: 800; inset: 0; justify-content: center; padding-top: 18px; position: absolute; width: 100%; }
body.site-organizer .live-locked-overlay > * { pointer-events: none; }
body.site-organizer .live-locked-overlay { gap: 8px; }
body.site-organizer .live-locked-overlay .bi { color: #ff6a00; }
body.site-organizer .live-locked-overlay:hover { background: rgba(255,255,255,.35); }
body.site-organizer .live-locked-overlay { align-items: flex-start; padding-top: 44px; }
body.site-organizer .live-locked-badge { align-items: center; background: #fff; border: 1px solid #ffd2ad; border-radius: 999px; box-shadow: 0 8px 22px rgba(8,40,58,.12); display: inline-flex; font-size: .9rem; gap: 8px; padding: 8px 16px; }
body.site-organizer .live-locked-badge u { color: #007a9e; text-underline-offset: 3px; }
body.site-organizer .live-locked { isolation: isolate; z-index: 0; }
body.site-organizer.modal-open .live-locked-overlay { visibility: hidden; }

/* Zone des messages : elle ne capte que les clics sur les messages eux-mêmes. */
body:has(.tournament-topbar) > main.flex-grow-1 > .container.pt-3 { pointer-events: none; }
body:has(.tournament-topbar) > main.flex-grow-1 > .container.pt-3 .alert { pointer-events: auto; }

/* Taille des commandes de l'espace organisateur : outil de travail, commandes compactes. */
body.site-organizer .btn { font-size: .875rem; font-weight: 600; line-height: 1.4; padding: .4rem .85rem; }
body.site-organizer .btn-sm { font-size: .8125rem; padding: .25rem .6rem; }
body.site-organizer .btn-lg { font-size: 1rem; padding: .55rem 1.15rem; }
body.site-organizer .form-control, body.site-organizer .form-select, body.site-organizer .quick-modal .form-control, body.site-organizer .quick-modal .form-select { font-size: .9rem; min-height: 38px; padding-bottom: .35rem; padding-top: .35rem; }
body.site-organizer .form-control-sm, body.site-organizer .form-select-sm { font-size: .8125rem; min-height: 31px; }
body.site-organizer .create-field .form-control, body.site-organizer .create-field .form-select { min-height: 2.5rem; }
body.site-organizer .quick-modal .btn { border-radius: 8px; }

/* Section Scores : cartes nettes. */
body.site-organizer .score-row { gap: .35rem 1rem; padding: .7rem .9rem; }
body.site-organizer .score-meta { align-items: center; display: flex; gap: .5rem; justify-content: space-between; }
body.site-organizer .score-meta > span:first-child { color: #52798a; font-size: .78rem; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.site-organizer .score-meta .badge { font-size: .68rem; font-weight: 600; }
body.site-organizer .score-teams { gap: .6rem; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); margin-top: .35rem; max-width: 34rem; }
body.site-organizer .score-home, body.site-organizer .score-away { font-size: .92rem; font-weight: 700; line-height: 1.2; }
body.site-organizer .score-home { text-align: right; }
body.site-organizer .quick-result { gap: .25rem; position: relative; }
body.site-organizer .quick-result input, body.site-organizer .score-box b { font-size: .95rem; height: 2rem; line-height: 1.9rem; width: 2.5rem; }
body.site-organizer .quick-result .btn { height: 2rem; width: 2rem; }
body.site-organizer .score-actions { gap: .4rem; min-width: 0; }
body.site-organizer .score-actions > .btn-primary { min-width: 0; }
body.site-organizer .score-actions .badge { font-size: .7rem; font-weight: 600; }
body.site-organizer .score-more { line-height: 1; padding: .3rem .5rem; }
body.site-organizer .score-more i { font-size: 1rem; }
@media (max-width: 991.98px) {
    body.site-organizer .score-actions { border-top: 1px solid #edf2f5; justify-content: flex-end; margin-top: .25rem; padding-top: .5rem; }
}

/* Écran direct : commandes et score à la main plus discrets. */
body.site-organizer .live-controls { gap: .45rem; }
body.site-organizer .live-manual-score { gap: 6px; padding: 8px 12px; }
body.site-organizer .live-manual-score .form-control { font-size: 1rem; height: 2.1rem; min-height: 0; padding: 0; width: 3rem; }

/* Section Scores : le score ouvre la fenêtre de saisie. */
body.site-organizer .score-open { align-items: center; background: #fff; border: 1px solid #c5d3da; border-radius: 8px; color: var(--gx-ink); display: inline-flex; font-variant-numeric: tabular-nums; gap: .4rem; min-height: 2rem; padding: .15rem .6rem; }
body.site-organizer .score-open:hover, body.site-organizer .score-open:focus-visible { border-color: #007a9e; box-shadow: 0 0 0 3px rgba(0,122,158,.12); }
body.site-organizer .score-open b { font-size: 1rem; font-weight: 800; }
body.site-organizer .score-open-pen { color: #7c98a6; font-size: .75rem; }
body.site-organizer .score-open-empty { color: #007a9e; font-size: .8rem; font-weight: 600; white-space: nowrap; }
body.site-organizer .score-qualified { color: #12805f; display: block; font-size: .78rem; font-weight: 600; margin-top: .3rem; text-align: center; max-width: 34rem; }
body.site-organizer .score-modal-grid { align-items: center; display: grid; gap: .35rem .75rem; grid-template-columns: 1fr auto 1fr; }
body.site-organizer .score-modal-team { font-size: .9rem; font-weight: 700; text-align: center; }
body.site-organizer .score-modal-input { font-size: 1.6rem !important; font-variant-numeric: tabular-nums; font-weight: 800; height: 3.2rem; text-align: center; }
body.site-organizer .score-modal-dash { color: #7c98a6; font-size: 1.4rem; font-weight: 700; }
body.site-organizer .score-tie { background: #fff5ea; border: 1px solid #ffd2ad; border-radius: 10px; margin-top: 1rem; padding: .75rem .9rem; }
body.site-organizer .score-tie legend { float: none; font-size: .9rem; font-weight: 700; margin: 0 0 .15rem; width: auto; }
body.site-organizer .score-tie p { color: #52798a; font-size: .8rem; margin: 0 0 .6rem; }
body.site-organizer .score-tie-options { display: grid; gap: .5rem; grid-template-columns: 1fr 1fr; }
body.site-organizer .score-modal-note { color: #52798a; font-size: .8rem; margin: .9rem 0 0; }

/* Écran direct : crayon du score (formule gratuite), en haut à droite du tableau. */
body.site-organizer .live-header { position: relative; }
body.site-organizer .live-score-edit { align-items: center; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.25); border-radius: 8px; color: #fff; display: inline-flex; height: 2rem; justify-content: center; position: absolute; right: .6rem; top: .6rem; width: 2rem; z-index: 2; }
body.site-organizer .live-score-edit:hover, body.site-organizer .live-score-edit:focus-visible { background: rgba(255,255,255,.22); border-color: #fff; }

/* Compositions : fenêtre de l'organisateur et carte de l'écran direct. */
body.site-organizer .lineup-editor-team { border-bottom: 2px solid #08283a; font-size: 1rem; font-weight: 800; margin: 0 0 .4rem; padding-bottom: .35rem; }
body.site-organizer .lineup-editor-head, body.site-organizer .lineup-editor-row { align-items: center; display: grid; gap: .5rem; grid-template-columns: 4rem minmax(0, 1fr) 8.5rem 2.2rem; }
body.site-organizer .lineup-editor-head { color: #52798a; font-size: .72rem; font-weight: 700; padding: .2rem 0; text-transform: uppercase; }
body.site-organizer .lineup-editor-head span:last-child, body.site-organizer .lineup-editor-row .form-check-input { justify-self: center; }
body.site-organizer .lineup-editor-row { border-top: 1px solid #edf2f5; padding: .35rem 0; }
body.site-organizer .lineup-editor-row .form-control { text-align: center; font-weight: 700; }
body.site-organizer .lineup-editor-name { line-height: 1.2; min-width: 0; }
body.site-organizer .lineup-editor-name strong { display: block; font-size: .9rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.site-organizer .lineup-editor-name small { color: #52798a; font-size: .75rem; }
body.site-organizer .lineup-editor-row.is-unavailable { opacity: .55; }
body.site-organizer .lineup-editor-note { color: #52798a; font-size: .8rem; margin: 1rem 0 0; }
@media (max-width: 575.98px) { body.site-organizer .lineup-editor-head, body.site-organizer .lineup-editor-row { grid-template-columns: 3.3rem minmax(0, 1fr) 7.5rem 1.8rem; gap: .35rem; } }
body.site-organizer .live-lineups { background: #fff; border: 1px solid #d6e0e6; border-radius: 12px; margin: 0 0 14px; padding: 10px 14px; }
body.site-organizer .live-lineups-head { align-items: center; display: flex; justify-content: space-between; margin-bottom: .5rem; }
body.site-organizer .live-lineups-teams { display: grid; gap: .5rem 1.25rem; grid-template-columns: 1fr 1fr; }
@media (max-width: 575.98px) { body.site-organizer .live-lineups-teams { grid-template-columns: 1fr; } }
body.site-organizer .live-lineup-line { align-items: center; display: flex; flex-wrap: wrap; gap: .4rem; justify-content: space-between; }
body.site-organizer .live-lineup-line strong { font-size: .9rem; }
body.site-organizer .live-lineup-line .badge { font-size: .7rem; font-weight: 600; }
body.site-organizer .live-lineup-tools { display: flex; flex-wrap: wrap; gap: .25rem .9rem; margin-top: .25rem; }
body.site-organizer .live-lineup-tools .btn-link { font-size: .8rem; text-decoration: none; }
body.site-organizer .live-lineups-note { border-top: 1px solid #edf2f5; color: #52798a; font-size: .78rem; margin: .6rem 0 0; padding-top: .5rem; }

/* Écran direct : issue particulière du match (forfait, annulation, report). */
body.site-organizer .live-outcome { border-radius: 10px; font-size: .88rem; font-weight: 600; margin: -4px auto 12px; max-width: 34rem; padding: 8px 12px; text-align: center; }
body.site-organizer .live-outcome.is-forfeit { background: #fff5ea; border: 1px solid #ffd2ad; color: #8a3b00; }
body.site-organizer .live-outcome.is-cancelled { background: #fdecec; border: 1px solid #f3b9b9; color: #9b1c1c; }
body.site-organizer .live-outcome.is-postponed { background: #fff8e1; border: 1px solid #f4dc8f; color: #6b5200; }
body.site-organizer .score-qualified.is-forfeit { color: #b04a00; }

/* Effectif : transfert d'un joueur. */
.roster .roster-arrival { color: #007a9e !important; font-size: .75rem; }
.roster .roster-transfer { background: #f5f9fb; border: 1px solid #e3eaee; border-radius: 10px; margin: -.2rem 0 .4rem; padding: .6rem .75rem; }
.roster .roster-transfer-fields { align-items: flex-end; display: grid; gap: .5rem; grid-template-columns: minmax(0, 1fr) 5.5rem auto; }
.roster .roster-transfer-note { color: #52798a; font-size: .75rem; margin: .4rem 0 0; }

/* Tableau final tiré au sort : une ligne par affiche. */
.bracket-draw-match { align-items: center; border-top: 1px solid #e3eaee; display: grid; gap: .35rem; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); padding: .45rem 0; }
.bracket-draw-match small { color: #52798a; font-weight: 700; grid-column: 1 / -1; }

/* Écran direct : tirs au but d'un match à élimination directe à égalité. */
body.site-organizer .live-penalties:not(.modal-content) { background: #fff5ea; border: 1px solid #ffd2ad; border-radius: 12px; display: flex; flex-direction: column; align-items: center; gap: .5rem; margin: 0 0 14px; padding: 12px 14px; }
body.site-organizer .live-penalties-title { color: #8a3b00; font-weight: 700; margin: 0; }
body.site-organizer .live-penalties-row { align-items: center; display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; }
body.site-organizer .live-penalties-row .form-control { font-size: 1.1rem; font-weight: 800; text-align: center; width: 3.5rem; }
body.site-organizer .live-penalties-team { font-weight: 700; }
body.site-organizer .live-penalties-score { color: #ffd9b8; display: block; font-size: .8rem; font-weight: 700; }
body.site-organizer .score-pens { align-items: center; display: flex; gap: .4rem; margin-bottom: .6rem; }
body.site-organizer .score-pens .form-control { font-weight: 700; text-align: center; width: 3.2rem; }

/* Tableau de bord : formule de chaque compétition sur sa carte. */
body.site-organizer .event-formula { border: 1px solid #d5dde2; border-radius: 5px; color: #52798a; font-size: .78rem; font-weight: 700; padding: .25rem .5rem; }
body.site-organizer .event-formula.is-paid { background: #fff5ea; border-color: #ffc999; color: #b44a00; }
body.site-organizer .event-formula .bi { font-size: .7rem; }

/* Section Scores : les étapes de la progression servent d'onglets, les matchs sont rangés par date. */
body.site-organizer .score-progress-track { align-items: stretch; display: flex; flex-wrap: wrap; gap: .5rem; }
body.site-organizer .score-phase { background: #f5f9fb; border: 1px solid #dbe6ec; border-radius: 8px; color: #08283a; display: block; flex: 1 1 10rem; max-width: 16rem; padding: .6rem .75rem; text-decoration: none; transition: border-color .15s ease, background .15s ease; }
body.site-organizer .score-phase:hover { border-color: #008fb8; }
body.site-organizer .score-phase.is-active { background: #e4f8fc; border-color: #008fb8; box-shadow: inset 0 -3px 0 #008fb8; }
body.site-organizer .score-phase > div:first-child { align-items: baseline; display: flex; gap: .5rem; justify-content: space-between; }
body.site-organizer .score-phase strong { font-size: .88rem; }
body.site-organizer .score-phase span { color: #008fb8; font-size: .8rem; font-weight: 700; }
body.site-organizer .score-phase.is-done span { color: #12805f; }
body.site-organizer .score-phase .progress-line { margin-top: .45rem; }
body.site-organizer .score-progress-track .progress-arrow { align-self: center; color: #9db3bd; font-size: .8rem; }
body.site-organizer .score-day { align-items: baseline; border-bottom: 1px solid #dbe6ec; color: #08283a; display: flex; font-size: .95rem; font-weight: 700; justify-content: space-between; margin: 1.4rem 0 .6rem; padding-bottom: .35rem; }
body.site-organizer .score-day span { color: #6b8794; font-size: .78rem; font-weight: 600; }
@media (max-width: 575.98px) { body.site-organizer .score-progress-track .progress-arrow { display: none; } body.site-organizer .score-phase { max-width: none; } }
body.site-organizer .score-day-group > summary { cursor: pointer; list-style: none; }
body.site-organizer .score-day-group > summary::-webkit-details-marker { display: none; }
body.site-organizer .score-day-group > summary::before { color: #6b8794; content: "\F282"; font-family: "bootstrap-icons"; font-size: .75rem; margin-right: .5rem; transition: transform .15s ease; }
body.site-organizer .score-day-group:not([open]) > summary::before { transform: rotate(-90deg); }
body.site-organizer .score-day-group > summary { justify-content: flex-start; }
body.site-organizer .score-day-group > summary > span { margin-left: auto; }
body.site-organizer .score-day-group.is-done > summary { color: #52798a; }
body.site-organizer .score-day-group.is-done > summary > span { color: #12805f; }
/* Aperçu fidèle au site public : le bandeau garde l'habillage TournLive (ou l'image de fond), la
   couleur principale habille le menu, la couleur d'accent souligne l'onglet actif. */
.design-preview-band { background: #08283a var(--d-image, none) center / cover; color: #fff; }
.design-preview-tabs { background: var(--d-band); border-bottom: 0; }
.design-preview-tabs span { color: var(--d-band-text); opacity: .75; }
.design-preview-tabs .is-active { color: var(--d-band-text); opacity: 1; }

/* Éditeur de texte enrichi ([data-rich-text], assets/app.js). */
body.site-organizer .rich-text { margin-bottom: 1.5rem; }
body.site-organizer .rich-text-bar { background: #f5f9fb; border: 1px solid #ced8de; border-bottom: 0; border-radius: 6px 6px 0 0; display: flex; flex-wrap: wrap; gap: .15rem; padding: .25rem; }
body.site-organizer .rich-text-bar button { background: transparent; border: 0; border-radius: 4px; color: #08283a; font-size: .95rem; height: 2rem; width: 2.1rem; }
body.site-organizer .rich-text-bar button:hover, body.site-organizer .rich-text-bar button:focus-visible { background: #e4f8fc; color: #007a9e; }
body.site-organizer .rich-text-link { align-items: center; background: #f5f9fb; border: 1px solid #ced8de; border-bottom: 0; display: flex; gap: .4rem; padding: .35rem; }
body.site-organizer .rich-text-link[hidden] { display: none; }
body.site-organizer .rich-text-link input { flex: 1; }
body.site-organizer .rich-text-area { border-radius: 0 0 6px 6px; height: auto; line-height: 1.55; max-height: 28rem; overflow-y: auto; position: relative; }
body.site-organizer .rich-text-area:focus { border-color: #008fb8; box-shadow: 0 0 0 .2rem rgba(0, 143, 184, .15); outline: 0; }
body.site-organizer .rich-text-area.is-empty::before { color: #8aa1ab; content: attr(data-placeholder); pointer-events: none; position: absolute; }
body.site-organizer .rich-text-area p { margin: 0 0 .6rem; }
body.site-organizer .rich-text-area h3 { font-size: 1.15rem; font-weight: 700; margin: .4rem 0 .5rem; }
body.site-organizer .rich-text-area ul, body.site-organizer .rich-text-area ol { margin: 0 0 .6rem; padding-left: 1.4rem; }
body.site-organizer .rich-text-area a { color: #007a9e; text-decoration: underline; }
body.site-organizer #livePenaltiesModal .live-penalties-row { margin: .75rem 0 .25rem; }
body.site-organizer .presentation-grid .presentation-wide { grid-column: 1 / -1; }

/* Achat d'une formule en ligne (account/plan_checkout.html.twig) : formules et facturation à gauche, récapitulatif fixe à droite */
body.site-organizer .plan-checkout { max-width: 1120px; }
body.site-organizer .checkout-layout { align-items: start; display: grid; gap: 1.25rem; grid-template-columns: minmax(0, 1fr) 360px; }
body.site-organizer .checkout-main { display: grid; gap: 1.25rem; min-width: 0; }
body.site-organizer .checkout-card { background: #fff; border: 1px solid #d6e0e6; border-radius: 12px; padding: 1.25rem 1.35rem; }
body.site-organizer .checkout-title { align-items: center; color: #08283a; display: flex; font-size: 1.05rem; font-weight: 800; gap: .6rem; margin: 0 0 1rem; }
body.site-organizer .checkout-step { align-items: center; background: #08283a; border-radius: 999px; color: #fff; display: inline-flex; font-size: .78rem; height: 1.55rem; justify-content: center; width: 1.55rem; }
body.site-organizer .checkout-label { color: #52798a; display: block; font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
body.site-organizer .checkout-current { align-items: center; display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; justify-content: space-between; }
body.site-organizer .checkout-current strong { color: #08283a; font-size: 1.1rem; }
body.site-organizer .checkout-current p { color: #52798a; font-size: .9rem; }
body.site-organizer .checkout-hint { color: #52798a; font-size: .88rem; margin: -.6rem 0 1rem; }
body.site-organizer .checkout-card .form-label { color: #08283a; font-size: .84rem; font-weight: 600; margin-bottom: .3rem; }
body.site-organizer .checkout-card .form-text { font-size: .75rem; }
body.site-organizer .plan-offer-list { display: grid; gap: .7rem; }
body.site-organizer .plan-offer { align-items: start; background: #fff; border: 1px solid #d6e0e6; border-radius: 10px; cursor: pointer; display: grid; gap: .9rem; grid-template-columns: auto 1fr auto; padding: 1rem 1.1rem; transition: border-color .15s, box-shadow .15s, background .15s; }
body.site-organizer .plan-offer:hover { border-color: #9dd8e5; }
body.site-organizer .plan-offer:has(input:checked) { background: #f1fbff; border-color: #008fb8; box-shadow: 0 0 0 1px #008fb8; }
body.site-organizer .plan-offer input { accent-color: #008fb8; height: 1.15rem; margin-top: .15rem; width: 1.15rem; }
body.site-organizer .plan-offer-text { display: grid; gap: .45rem; }
body.site-organizer .plan-offer-head { align-items: center; display: flex; flex-wrap: wrap; gap: .5rem; }
body.site-organizer .plan-offer-head strong { color: #08283a; font-size: 1rem; }
body.site-organizer .plan-offer-badge { background: #fff5ea; border-radius: 999px; color: #b34a00; font-size: .7rem; font-weight: 800; padding: .12rem .55rem; text-transform: uppercase; letter-spacing: .03em; }
body.site-organizer .plan-offer-features { color: #52798a; display: flex; flex-wrap: wrap; font-size: .82rem; gap: .25rem 1rem; }
body.site-organizer .plan-offer-features i { color: #008fb8; margin-right: .3rem; }
body.site-organizer .plan-offer-end { color: #52798a; font-size: .82rem; }
body.site-organizer .plan-offer-price { display: grid; text-align: right; white-space: nowrap; }
body.site-organizer .plan-offer-price strong { color: #08283a; font-size: 1.2rem; }
body.site-organizer .plan-offer-price small { color: #52798a; font-size: .75rem; font-weight: 700; }
body.site-organizer .checkout-once { align-items: flex-start; background: #f3f6f8; border-radius: 8px; color: #52798a; display: flex; font-size: .85rem; gap: .6rem; margin: 1rem 0 0; padding: .7rem .85rem; }
body.site-organizer .checkout-once i { color: #008fb8; margin-top: .1rem; }
body.site-organizer .checkout-summary { position: sticky; top: 5rem; }
body.site-organizer .summary-line-label { color: #08283a; font-weight: 700; margin: 0 0 .2rem; }
body.site-organizer .summary-end { color: #52798a; font-size: .85rem; margin: 0 0 1rem; }
body.site-organizer .summary-amounts { border-top: 1px solid #e3eaee; margin: 0 0 1rem; }
body.site-organizer .summary-amounts > div { display: flex; justify-content: space-between; padding: .55rem 0; border-bottom: 1px solid #e3eaee; }
body.site-organizer .summary-amounts dt { color: #52798a; font-weight: 500; }
body.site-organizer .summary-amounts dd { color: #08283a; font-variant-numeric: tabular-nums; margin: 0; }
body.site-organizer .summary-amounts .summary-total dt, body.site-organizer .summary-amounts .summary-total dd { color: #08283a; font-size: 1.1rem; font-weight: 800; }
body.site-organizer .checkout-terms { font-size: .88rem; margin-bottom: 1rem; }
body.site-organizer .checkout-terms a { color: #007a9e; text-decoration: underline; }
body.site-organizer .checkout-pay { align-items: center; display: flex; font-size: 1rem; font-weight: 700; gap: .5rem; justify-content: center; padding: .7rem 1rem; width: 100%; }
body.site-organizer .checkout-secure { color: #52798a; display: flex; font-size: .78rem; gap: .45rem; margin: .8rem 0 .6rem; }
body.site-organizer .checkout-secure i { color: #17603a; }
body.site-organizer .checkout-reassure { border-top: 1px solid #e3eaee; color: #52798a; display: grid; font-size: .8rem; gap: .35rem; list-style: none; margin: 0; padding: .7rem 0 0; }
body.site-organizer .checkout-reassure i { color: #008fb8; margin-right: .4rem; }
body.site-organizer .checkout-test { background: #fff5ea; border-radius: 6px; color: #8a3a00; font-size: .8rem; margin: .8rem 0 0; padding: .45rem .6rem; }
body.site-organizer [data-plan-checkout].is-individual [data-billing-pro] { display: none; }
@media (max-width: 991px) {
    body.site-organizer .checkout-layout { grid-template-columns: 1fr; }
    body.site-organizer .checkout-summary { position: static; }
}
@media (max-width: 600px) {
    body.site-organizer .plan-offer { grid-template-columns: auto 1fr; }
    body.site-organizer .plan-offer-price { grid-column: 2; grid-row: 2; text-align: left; display: flex; gap: .35rem; align-items: baseline; }
}
body.site-organizer #billing-plans .workspace-data-table { min-width: 620px; }
body.site-organizer #billing-details label { color: #08283a; font-size: .84rem; font-weight: 600; margin-bottom: .3rem; }
body.site-organizer #billing-details [id$="_help"] { color: #7f9aa6; font-size: .75rem; margin-top: .25rem; }
body.site-organizer #billing-details .invalid-feedback, body.site-organizer #billing-details ul { font-size: .8rem; }
/* Tableau de bord : liseré aux couleurs du site public du tournoi (formules payantes, couleurs choisies). */
body.site-organizer .organizer-event.has-colors { overflow: hidden; position: relative; }
body.site-organizer .organizer-event.has-colors::after { background: linear-gradient(90deg, var(--event-color-1) 0 55%, var(--event-color-2) 55% 100%); bottom: 0; content: ""; height: 5px; left: 0; position: absolute; right: 0; }

/* « Formules et factures » revue le 2026-10-19 : en-tête, chiffres clés, onglets, une carte par compétition. */
body.site-organizer .billing-hero { align-items: flex-end; display: flex; gap: 1rem; justify-content: space-between; margin-bottom: 1.25rem; }
body.site-organizer .billing-hero h1 { margin: .1rem 0 .35rem; }
body.site-organizer .billing-hero p { color: #52798a; margin: 0; max-width: 40rem; }
body.site-organizer .billing-kpis { display: grid; gap: .8rem; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 1.25rem; }
body.site-organizer .billing-kpis > div { align-items: center; background: #fff; border: 1px solid #d6e0e6; border-radius: 12px; display: flex; gap: .8rem; padding: .9rem 1rem; }
body.site-organizer .billing-kpis strong { color: #08283a; display: block; font-size: 1.25rem; font-variant-numeric: tabular-nums; font-weight: 800; line-height: 1.2; }
body.site-organizer .billing-kpis small { color: #52798a; font-size: .8rem; }
body.site-organizer .billing-kpi-icon { align-items: center; background: #e4f8fc; border-radius: 10px; color: #008fb8; display: inline-flex; flex: none; font-size: 1.1rem; height: 2.5rem; justify-content: center; width: 2.5rem; }
body.site-organizer .billing-kpi-icon.is-paid { background: #fff5ea; color: #e65f00; }
body.site-organizer .billing-tabs { border-bottom: 1px solid #d6e0e6; display: flex; gap: .25rem; margin-bottom: 1.25rem; overflow-x: auto; }
body.site-organizer .billing-tabs a { align-items: center; border-bottom: 3px solid transparent; color: #52798a; display: inline-flex; font-weight: 700; gap: .45rem; margin-bottom: -1px; padding: .7rem 1rem; text-decoration: none; white-space: nowrap; }
body.site-organizer .billing-tabs a:hover { color: #08283a; }
body.site-organizer .billing-tabs a.active { border-bottom-color: #008fb8; color: #08283a; }
body.site-organizer .billing-tab-count { background: #e4f8fc; border-radius: 999px; color: #007a9e; font-size: .72rem; padding: .05rem .5rem; }
body.site-organizer .billing-notice { align-items: center; background: #f1fbff; border: 1px solid #9dd8e5; border-left: 4px solid #008fb8; border-radius: 10px; display: flex; gap: .9rem; margin-bottom: 1rem; padding: .85rem 1rem; }
body.site-organizer .billing-notice > i { color: #008fb8; font-size: 1.2rem; }
body.site-organizer .billing-notice > div { flex: 1; }
body.site-organizer .billing-notice strong { color: #08283a; display: block; }
body.site-organizer .billing-notice span { color: #52798a; font-size: .88rem; }
body.site-organizer .billing-empty { background: #fff; border: 1px dashed #9dd8e5; border-radius: 12px; padding: 2.5rem 1rem; text-align: center; }
body.site-organizer .billing-empty > i { color: #008fb8; font-size: 2rem; }
body.site-organizer .plan-rows { display: grid; gap: .75rem; }
body.site-organizer .plan-row { align-items: center; background: #fff; border: 1px solid #d6e0e6; border-left: 4px solid #c9d6dc; border-radius: 12px; display: grid; gap: 1.25rem; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1fr) auto; padding: 1rem 1.2rem; transition: border-color .2s, box-shadow .2s; }
body.site-organizer .plan-row.is-paid { border-left-color: #ff6a00; }
body.site-organizer .plan-row:hover { box-shadow: 0 6px 18px rgba(8,40,58,.07); }
body.site-organizer .plan-row-identity { align-items: center; display: flex; gap: .85rem; min-width: 0; }
body.site-organizer .plan-row-identity > div { display: grid; gap: .3rem; justify-items: start; min-width: 0; }
body.site-organizer .plan-row-logo { border: 1px solid #d6e0e6; border-radius: 10px; flex: none; height: 46px; object-fit: contain; padding: 4px; width: 46px; }
body.site-organizer .plan-row-logo.is-empty { align-items: center; background: #08283a; border: 0; color: #00c7df; display: inline-flex; font-size: 1.2rem; justify-content: center; }
body.site-organizer .plan-row-name { color: #08283a; font-size: 1.05rem; font-weight: 800; overflow: hidden; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }
body.site-organizer .plan-row-name:hover { color: #007a9e; text-decoration: underline; }
body.site-organizer .plan-pill.is-paid { background: #fff5ea; color: #b34a00; }
body.site-organizer .plan-pill i { font-size: .7rem; }
body.site-organizer .plan-row-meter { display: grid; gap: .3rem; }
body.site-organizer .plan-row-meter-label { color: #52798a; font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
body.site-organizer .plan-row-meter small { color: #52798a; font-size: .8rem; }
body.site-organizer .plan-row-meter small strong { color: #08283a; }
body.site-organizer .plan-meter { background: #e8eef1; border-radius: 999px; height: 6px; overflow: hidden; }
body.site-organizer .plan-meter > span { background: linear-gradient(90deg, #008fb8, #00c7df); border-radius: inherit; display: block; height: 100%; }
body.site-organizer .plan-meter.is-ending > span { background: #ff6a00; }
body.site-organizer .plan-meter.is-free > span { background: #c9d6dc; }
body.site-organizer .plan-row-action { text-align: right; }
body.site-organizer .plan-row-action .btn { white-space: nowrap; }
@media (max-width: 991.98px) {
    body.site-organizer .billing-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body.site-organizer .plan-row { grid-template-columns: 1fr 1fr; }
    body.site-organizer .plan-row-identity, body.site-organizer .plan-row-action { grid-column: 1 / -1; }
    body.site-organizer .plan-row-action { text-align: left; }
}
@media (max-width: 575.98px) {
    body.site-organizer .billing-hero { align-items: flex-start; flex-direction: column; }
    body.site-organizer .plan-row { grid-template-columns: 1fr; }
    body.site-organizer .plan-row-action .btn { width: 100%; }
    body.site-organizer .billing-notice { align-items: flex-start; flex-wrap: wrap; }
}
body.site-organizer .billing-kpis small { display: block; line-height: 1.3; }
body.site-organizer .billing-kpis > div > div { min-width: 0; }
@media (max-width: 575.98px) {
    body.site-organizer .billing-kpis > div { gap: .6rem; padding: .75rem; }
    body.site-organizer .billing-kpis strong { font-size: 1.05rem; }
    body.site-organizer .billing-kpi-icon { height: 2.1rem; width: 2.1rem; font-size: .95rem; }
    body.site-organizer .billing-tabs a { padding: .65rem .7rem; }
}

/* ===== Espace du tournoi, refonte du 2026-10-21 =====
   Barre blanche avec fil d'Ariane, menu large (texte à côté des icônes) rangé par étape, page
   d'accueil du tournoi. Ces règles passent après les anciennes (colonne de 110 px). */
body.site-organizer { --side-w: 236px; }
body.site-organizer .tournament-topbar { background: #fff; border-bottom: 1px solid #d6e0e6; box-shadow: 0 1px 0 rgba(8,40,58,.03); color: #08283a; gap: .9rem; }
body.site-organizer .tournament-topbar a { color: inherit; margin-left: 0; }
body.site-organizer .tl-topbar-brand { display: inline-flex; flex: none; }
body.site-organizer .tl-topbar-brand img { border-radius: 7px; height: 32px; width: 32px; }
body.site-organizer .tl-crumb { align-items: center; display: flex; gap: .5rem; min-width: 0; }
body.site-organizer .tl-crumb a { color: #52798a !important; font-size: .9rem; font-weight: 600; white-space: nowrap; }
body.site-organizer .tl-crumb a:hover { color: #008fb8 !important; }
body.site-organizer .tl-crumb > i { color: #9db4bf; font-size: .75rem; }
body.site-organizer .tl-crumb strong { font-size: 1rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.site-organizer .tl-plan-chip { background: #eef3f6; border-radius: 999px; color: #52798a; flex: none; font-size: .72rem; font-weight: 700; padding: .15rem .6rem; }
body.site-organizer .tl-plan-chip.is-paid { background: #fff5ea; color: #c25000; }
body.site-organizer .tournament-topbar .topbar-button { background: #fff; border-color: #d6e0e6; color: #08283a; }
body.site-organizer .tournament-topbar .topbar-button:hover { background: #f1fbff; border-color: #9dd8e5; }

body.site-organizer .tournament-sidebar .tl-side-event { align-items: center; border-bottom: 1px solid #e3ecf0; display: flex; gap: .7rem; margin: 0 .25rem .5rem; padding: .35rem .35rem .9rem; }
body.site-organizer .tl-side-logo { align-items: center; background: linear-gradient(135deg, #008fb8, #00c7df); border-radius: 9px; color: #fff; display: flex; flex: none; font-size: 1.15rem; height: 40px; justify-content: center; overflow: hidden; position: relative; width: 40px; }
body.site-organizer .tl-side-logo.has-logo { background: #fff; border: 1px solid #d6e0e6; }
body.site-organizer .tl-side-logo img { height: 100%; object-fit: contain; width: 100%; }
body.site-organizer .tl-side-event b { display: block; font-size: .95rem; line-height: 1.2; overflow-wrap: anywhere; }
body.site-organizer .tl-side-event small { color: #6b8794; display: block; font-size: .75rem; }
body.site-organizer .tl-side-group { color: #8aa3af; display: block; font-size: .66rem; font-weight: 800; letter-spacing: .09em; margin: .85rem .75rem .2rem; text-transform: uppercase; }
body.site-organizer .tournament-sidebar a { align-items: center; border-radius: 7px; color: #08283a; flex-direction: row; font-size: .87rem; font-weight: 600; gap: .65rem; margin: 1px .25rem; padding: .5rem .7rem; }
body.site-organizer .tournament-sidebar a i { color: #52798a; font-size: 1.02rem; text-align: center; width: 18px; }
body.site-organizer .tournament-sidebar a:hover { background: #f1fbff; color: #08283a; }
body.site-organizer .tournament-sidebar a.active { background: #e4f8fc; box-shadow: inset 3px 0 0 #008fb8; color: #007a9e; }
body.site-organizer .tournament-sidebar a.active i { color: #008fb8; }
body.site-organizer .tournament-sidebar a em { color: #6b8794; font-size: .74rem; font-style: normal; font-weight: 700; margin-left: auto; white-space: nowrap; }
body.site-organizer .tournament-sidebar a em.tl-side-live { background: #c23b2e; border-radius: 999px; color: #fff; padding: 0 .45rem; }
body.site-organizer .tl-side-foot { border-top: 1px solid #e3ecf0; margin-top: auto; padding-top: .4rem; }

@media (min-width: 992px) {
    body.site-organizer .tournament-workspace { grid-template-columns: var(--side-w) minmax(0, 1fr); background: linear-gradient(to right, #fff calc(var(--side-w) - 1px), #d6e0e6 calc(var(--side-w) - 1px), #d6e0e6 var(--side-w), transparent var(--side-w)); }
    body.site-organizer .tournament-sidebar { padding: .8rem .5rem; width: var(--side-w); }
}
/* Tablette : le menu se resserre sur les icônes, le nom en dessous. */
@media (min-width: 768px) and (max-width: 991.98px) {
    body.site-organizer .tournament-sidebar .tl-side-event, body.site-organizer .tl-side-group { display: none; }
    body.site-organizer .tournament-sidebar a { flex-direction: column; font-size: .7rem; gap: .2rem; margin: 1px .3rem; padding: .55rem .2rem; text-align: center; }
    body.site-organizer .tournament-sidebar a em { margin-left: 0; }
    body.site-organizer .tournament-sidebar a em:not(.tl-side-live) { display: none; }
    body.site-organizer .tournament-sidebar a.active { box-shadow: inset 0 -3px 0 #008fb8; }
}
@media (min-width: 768px) and (max-height: 640px) {
    body.site-organizer .tournament-sidebar .tl-side-event { display: none; }
    body.site-organizer .tl-side-group { margin-top: .4rem; }
    body.site-organizer .tournament-sidebar a { padding-bottom: .35rem; padding-top: .35rem; }
}
/* Téléphone : barre de sections qui défile, sans la carte du tournoi ni les groupes. */
@media (max-width: 767.98px) {
    body.site-organizer .tournament-sidebar .tl-side-event, body.site-organizer .tl-side-group { display: none; }
    body.site-organizer .tl-side-foot { border-top: 0; display: contents; }
    body.site-organizer .tournament-sidebar a { border-radius: 0; flex-direction: column; font-size: .68rem; gap: 2px; margin: 0; padding: 8px 8px 7px; }
    body.site-organizer .tournament-sidebar a em { display: none; }
    body.site-organizer .tournament-sidebar a em.tl-side-live { display: block; font-size: .6rem; position: absolute; right: 6px; top: 4px; }
    body.site-organizer .tournament-sidebar a.active { background: transparent; box-shadow: none; }
    body.site-organizer .tl-crumb > a, body.site-organizer .tl-crumb > i { display: none; }
    body.site-organizer .tl-plan-chip { display: none; }
}

/* Accueil du tournoi */
body.site-organizer .home-steps { background: #fff; border: 1px solid #d6e0e6; border-radius: 12px; display: grid; grid-template-columns: repeat(5, 1fr); list-style: none; margin: 0 0 1rem; overflow: hidden; padding: 0; }
body.site-organizer .home-steps li { align-items: center; color: #8aa3af; display: flex; gap: .6rem; padding: .7rem .85rem; }
body.site-organizer .home-steps li + li { border-left: 1px solid #e3ecf0; }
body.site-organizer .home-steps strong { display: block; font-size: .85rem; }
body.site-organizer .home-steps small { color: #6b8794; display: block; font-size: .74rem; }
body.site-organizer .home-step-num { align-items: center; border: 2px solid currentColor; border-radius: 50%; display: flex; flex: none; font-size: .72rem; font-weight: 800; height: 24px; justify-content: center; width: 24px; }
body.site-organizer .home-steps .is-done { color: #1e8e5a; }
body.site-organizer .home-steps .is-done .home-step-num { background: #1e8e5a; border-color: #1e8e5a; color: #fff; }
body.site-organizer .home-steps .is-now { background: #e4f8fc; color: #007a9e; }
body.site-organizer .home-steps .is-now .home-step-num { background: #008fb8; border-color: #008fb8; color: #fff; }
body.site-organizer .home-figures { display: grid; gap: .75rem; grid-template-columns: repeat(4, 1fr); margin-bottom: 1rem; }
body.site-organizer .home-figure { background: #fff; border: 1px solid #d6e0e6; border-radius: 12px; padding: .75rem .9rem; }
body.site-organizer .home-figure > span { color: #52798a; display: flex; font-size: .78rem; font-weight: 600; gap: .35rem; }
body.site-organizer .home-figure strong { display: block; font-size: 1.45rem; font-weight: 800; margin-top: .15rem; }
body.site-organizer .home-figure strong small { color: #6b8794; font-size: .8rem; font-weight: 600; }
body.site-organizer .home-bar { background: #e7eef2; border-radius: 3px; height: 5px; margin-top: .5rem; overflow: hidden; }
body.site-organizer .home-bar i { background: #008fb8; display: block; height: 100%; }
body.site-organizer .home-bar.is-warm i { background: #ff6a00; }
body.site-organizer .home-columns { align-items: start; display: grid; gap: 1rem; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); }
body.site-organizer .home-side { display: grid; gap: 1rem; }
body.site-organizer .home-card { background: #fff; border: 1px solid #d6e0e6; border-radius: 12px; overflow: hidden; }
body.site-organizer .home-card h2 { align-items: center; border-bottom: 1px solid #e3ecf0; display: flex; font-size: .92rem; font-weight: 800; gap: .45rem; margin: 0; padding: .75rem 1rem; }
body.site-organizer .home-card h2 > span, body.site-organizer .home-card h2 > a { color: #007a9e; font-size: .78rem; font-weight: 600; margin-left: auto; }
body.site-organizer .home-todo { align-items: center; border-bottom: 1px solid #eef4f7; display: flex; gap: .75rem; padding: .65rem 1rem; }
body.site-organizer .home-todo:last-child { border-bottom: 0; }
body.site-organizer .home-todo strong { display: block; font-size: .87rem; }
body.site-organizer .home-todo small { color: #6b8794; display: block; font-size: .76rem; }
body.site-organizer .home-todo .btn { flex: none; margin-left: auto; }
body.site-organizer .home-todo.is-done strong { color: #8aa3af; font-weight: 600; }
body.site-organizer .home-todo-icon { align-items: center; border-radius: 8px; display: flex; flex: none; font-size: .95rem; height: 30px; justify-content: center; width: 30px; }
body.site-organizer .home-todo-icon.is-warn { background: #fff5ea; color: #e05d00; }
body.site-organizer .home-todo-icon.is-info { background: #e4f8fc; color: #007a9e; }
body.site-organizer .home-todo-icon.is-ok { background: #e6f5ee; color: #1e8e5a; }
body.site-organizer .home-match { align-items: center; border-bottom: 1px solid #eef4f7; display: grid; gap: .7rem; grid-template-columns: 74px minmax(0, 1fr) auto; padding: .6rem 1rem; }
body.site-organizer .home-match:last-child { border-bottom: 0; }
body.site-organizer .home-match-time { color: #007a9e; font-size: .85rem; font-weight: 800; }
body.site-organizer .home-match.is-live .home-match-time { color: #c23b2e; }
body.site-organizer .home-match strong { display: block; font-size: .87rem; }
body.site-organizer .home-match small { color: #6b8794; display: block; font-size: .75rem; }
body.site-organizer .home-public { align-items: center; display: flex; flex-wrap: wrap; gap: .5rem; padding: .75rem 1rem; }
body.site-organizer .home-public code { background: #f1fbff; border: 1px solid #d6e0e6; border-radius: 6px; color: #08283a; font-size: .8rem; padding: .25rem .5rem; }
body.site-organizer .home-chip { background: #eef3f6; border-radius: 999px; color: #52798a; font-size: .72rem; font-weight: 700; margin-left: auto; padding: .1rem .55rem; }
body.site-organizer .home-chip.is-ok { background: #e6f5ee; color: #1e8e5a; }
body.site-organizer .home-empty { color: #6b8794; font-size: .85rem; margin: 0; padding: .8rem 1rem; }
@media (max-width: 1199.98px) {
    body.site-organizer .home-steps { grid-template-columns: repeat(3, 1fr); }
    body.site-organizer .home-steps li:nth-child(4) { border-left: 0; }
    body.site-organizer .home-steps li:nth-child(n+4) { border-top: 1px solid #e3ecf0; }
    body.site-organizer .home-columns { grid-template-columns: 1fr; }
}
@media (max-width: 767.98px) {
    body.site-organizer .home-steps { grid-template-columns: 1fr; }
    body.site-organizer .home-steps li + li { border-left: 0; border-top: 1px solid #e3ecf0; }
    body.site-organizer .home-steps li:not(.is-now) small { display: none; }
    body.site-organizer .home-figures { grid-template-columns: repeat(2, 1fr); }
    body.site-organizer .home-todo { flex-wrap: wrap; }
    body.site-organizer .home-todo .btn { margin-left: 42px; }
}

/* Programme : les terrains prennent toute la largeur disponible ; un nom ne se coupe jamais au milieu d un mot. */
body.site-organizer .workspace-content:has(.planning) { max-width: 1480px; }
body.site-organizer .planning-field { flex-basis: 300px; }
body.site-organizer .planning-match strong { hyphens: manual; overflow-wrap: break-word; word-break: normal; }

/* Matchs et direct (étape B de la refonte) : bande des matchs en cours, onglets de phase, filtre d'état. */
body.site-organizer .score-live-strip { align-items: center; background: #08283a; border-radius: 12px; color: #fff; display: flex; flex-wrap: wrap; gap: .5rem 1rem; margin-bottom: .75rem; padding: .7rem 1rem; }
body.site-organizer .score-live-dot { animation: score-live-pulse 1.6s ease-in-out infinite; background: #ff4d3d; border-radius: 50%; box-shadow: 0 0 0 4px rgba(255,77,61,.25); flex: none; height: 9px; width: 9px; }
@keyframes score-live-pulse { 50% { box-shadow: 0 0 0 7px rgba(255,77,61,.08); } }
@media (prefers-reduced-motion: reduce) { body.site-organizer .score-live-dot { animation: none; } }
body.site-organizer .score-live-label { font-size: .85rem; }
body.site-organizer .score-live-team { font-weight: 600; }
body.site-organizer .score-live-score { font-size: 1.3rem; font-variant-numeric: tabular-nums; letter-spacing: .03em; }
body.site-organizer .score-live-strip .match-clock { color: #00c7df; font-weight: 700; }
body.site-organizer .score-live-field { color: #9dd8e5; font-size: .85rem; }
body.site-organizer .score-live-open { background: #ff6a00; border-color: #ff6a00; color: #fff; margin-left: auto; }
body.site-organizer .score-live-open:hover { background: #e05d00; border-color: #e05d00; color: #fff; }
body.site-organizer .score-phase-tabs { border-bottom: 1px solid #d6e0e6; display: flex; gap: .25rem; margin: .5rem 0 .9rem; overflow-x: auto; scrollbar-width: none; }
body.site-organizer .score-phase-tabs a { border-bottom: 3px solid transparent; color: #52798a; font-size: .9rem; font-weight: 700; padding: .55rem .9rem; text-decoration: none; white-space: nowrap; }
body.site-organizer .score-phase-tabs a small { color: #8aa3af; font-size: .74rem; font-weight: 600; margin-left: .4rem; }
body.site-organizer .score-phase-tabs a:hover { color: #08283a; }
body.site-organizer .score-phase-tabs a.is-active { border-color: #ff6a00; color: #08283a; }
body.site-organizer .score-phase-tabs a.is-done small { color: #1e8e5a; }
body.site-organizer .score-filters { align-items: center; display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: .9rem; }
body.site-organizer .score-filters a { background: #fff; border: 1px solid #d6e0e6; border-radius: 999px; color: #52798a; font-size: .8rem; font-weight: 600; padding: .25rem .8rem; text-decoration: none; }
body.site-organizer .score-filters a:hover { border-color: #9dd8e5; color: #08283a; }
body.site-organizer .score-filters a.is-active { background: #08283a; border-color: #08283a; color: #fff; }
body.site-organizer .score-filters-count { color: #6b8794; font-size: .8rem; font-weight: 600; margin-left: auto; }
body.site-organizer .score-day-plan { margin-left: .75rem; padding: .1rem .55rem; }
body.site-organizer .score-filter-empty { align-items: center; display: flex; gap: 1rem; justify-content: space-between; }
body.site-organizer .score-filter-empty p { margin: 0; }
@media (max-width: 575.98px) {
    body.site-organizer .score-live-open { margin-left: 0; width: 100%; }
    body.site-organizer .score-filters-count { margin-left: 0; width: 100%; }
}

/* Mes compétitions (étape C de la refonte) : cartes en grille, état en clair, nouvelle édition. */
body.site-organizer .comp-head { align-items: flex-end; display: flex; flex-wrap: wrap; gap: 1rem 1.25rem; margin-bottom: 1.25rem; }
body.site-organizer .comp-head h1 { font-size: 1.65rem; font-weight: 800; margin: 0; }
body.site-organizer .comp-head p { color: #52798a; margin: .15rem 0 0; }
body.site-organizer .comp-live-count { color: #c23b2e; }
body.site-organizer .comp-views { background: #fff; border: 1px solid #d6e0e6; border-radius: 8px; display: flex; overflow: hidden; }
body.site-organizer .comp-views a { color: #52798a; font-size: .84rem; font-weight: 600; padding: .4rem .8rem; text-decoration: none; white-space: nowrap; }
body.site-organizer .comp-views a + a { border-left: 1px solid #d6e0e6; }
body.site-organizer .comp-views a span { color: #8aa3af; font-size: .74rem; margin-left: .2rem; }
body.site-organizer .comp-views a.is-active { background: #08283a; color: #fff; }
body.site-organizer .comp-views a.is-active span { color: #9dd8e5; }
body.site-organizer .comp-search { align-items: center; background: #fff; border: 1px solid #d6e0e6; border-radius: 8px; display: flex; gap: .4rem; margin: 0 0 0 auto; padding: 0 .6rem; }
body.site-organizer .comp-search input { border: 0; font-size: .88rem; min-width: 0; outline: 0; padding: .4rem 0; width: 11rem; }
body.site-organizer .comp-search:focus-within { border-color: #008fb8; box-shadow: 0 0 0 3px rgba(0,143,184,.15); }
body.site-organizer .comp-create { background: #ff6a00; border-color: #ff6a00; color: #fff; font-weight: 700; }
body.site-organizer .comp-create:hover { background: #e05d00; border-color: #e05d00; color: #fff; }
body.site-organizer .comp-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); }
body.site-organizer .comp-card { background: #fff; border: 1px solid #d6e0e6; border-radius: 12px; display: flex; flex-direction: column; overflow: hidden; position: relative; transition: box-shadow .15s ease, border-color .15s ease; }
body.site-organizer .comp-card[hidden] { display: none; }
@media (hover: hover) { body.site-organizer .comp-card:hover { border-color: #9dd8e5; box-shadow: 0 8px 22px rgba(8,40,58,.08); } }
body.site-organizer .comp-band { background: linear-gradient(120deg, #08283a 0 58%, #008fb8 58% 100%); height: 58px; position: relative; }
body.site-organizer .comp-band.has-colors { background: linear-gradient(120deg, var(--comp-1) 0 58%, var(--comp-2) 58% 100%); }
body.site-organizer .comp-state { background: #fff; border-radius: 999px; color: #52798a; font-size: .72rem; font-weight: 700; padding: .12rem .55rem; position: absolute; right: .7rem; top: .65rem; }
body.site-organizer .comp-state.is-live { background: #fdecea; color: #c23b2e; }
body.site-organizer .comp-state.is-done { background: #e6f5ee; color: #1e8e5a; }
body.site-organizer .comp-state.is-signup, body.site-organizer .comp-state.is-now { background: #e4f8fc; color: #007a9e; }
body.site-organizer .comp-state.is-soon { background: #fff5ea; color: #c25000; }
body.site-organizer .comp-logo { align-items: center; background: #fff; border: 3px solid #fff; border-radius: 12px; box-shadow: 0 2px 8px rgba(8,40,58,.18); color: #008fb8; display: flex; font-size: 1.35rem; height: 52px; justify-content: center; left: 1rem; overflow: hidden; position: absolute; top: 32px; width: 52px; }
body.site-organizer .comp-logo img { height: 100%; object-fit: contain; width: 100%; }
body.site-organizer .comp-body { flex: 1; padding: 1.85rem 1rem .8rem; }
body.site-organizer .comp-body h2 { font-size: 1.02rem; font-weight: 800; margin: 0; }
body.site-organizer .comp-link { color: #08283a; text-decoration: none; }
body.site-organizer .comp-link:hover { color: #007a9e; }
body.site-organizer .comp-meta { color: #6b8794; font-size: .8rem; margin: .1rem 0 0; }
body.site-organizer .comp-figures { display: flex; gap: 1.1rem; margin: .75rem 0 .5rem; }
body.site-organizer .comp-figures div { display: flex; flex-direction: column-reverse; }
body.site-organizer .comp-figures dt { color: #6b8794; font-size: .72rem; font-weight: 500; }
body.site-organizer .comp-figures dd { font-size: 1rem; font-weight: 800; margin: 0; }
body.site-organizer .comp-figures dd small { color: #8aa3af; font-size: .75rem; font-weight: 600; }
body.site-organizer .comp-figures dd.event-formula { border: 0; font-size: .85rem; padding: 0; }
body.site-organizer .comp-figures dd.event-formula.is-paid { background: none; color: #c25000; }
body.site-organizer .comp-bar { background: #e7eef2; border-radius: 3px; height: 5px; overflow: hidden; }
body.site-organizer .comp-bar i { background: #008fb8; display: block; height: 100%; }
body.site-organizer .comp-bar.is-done i { background: #1e8e5a; }
body.site-organizer .comp-actions { align-items: center; border-top: 1px solid #eef4f7; display: flex; gap: .4rem; padding: .6rem 1rem; }
body.site-organizer .comp-new { align-items: center; border: 2px dashed #b7d3dd; border-radius: 12px; color: #52798a; display: flex; flex-direction: column; justify-content: center; min-height: 230px; padding: 1rem; text-align: center; text-decoration: none; }
body.site-organizer .comp-new i { color: #ff6a00; font-size: 1.8rem; margin-bottom: .35rem; }
body.site-organizer .comp-new strong { color: #08283a; }
body.site-organizer .comp-new small { font-size: .78rem; }
body.site-organizer .comp-new:hover { background: #fff; border-color: #ff6a00; }
body.site-organizer .comp-empty { align-items: center; background: #fff; border: 1px solid #d6e0e6; border-radius: 12px; color: #52798a; display: flex; flex-direction: column; justify-content: center; min-height: 230px; padding: 1rem; text-align: center; }
body.site-organizer .comp-search-empty { color: #52798a; margin-top: 1rem; }
body.site-organizer .dup-note { background: #f1fbff; border: 1px solid #d6e0e6; border-radius: 8px; color: #52798a; font-size: .8rem; margin: 1rem 0 0; padding: .6rem .75rem; }
@media (max-width: 767.98px) {
    body.site-organizer .comp-search { margin-left: 0; flex: 1 1 100%; }
    body.site-organizer .comp-search input { width: 100%; }
    body.site-organizer .comp-views { flex: 1 1 100%; }
    body.site-organizer .comp-views a { flex: 1; text-align: center; }
    body.site-organizer .comp-create { flex: 1 1 100%; }
    body.site-organizer .comp-new { min-height: 120px; }
}
body.site-organizer .organizer-container:has(.comp-grid) { max-width: 1180px; }

/* Site public › Documents et motif de l'en-tête (étape B de la refonte du site public). */
body.site-organizer .doc-row { align-items: center; border-top: 1px solid #eef4f7; display: grid; gap: .75rem; grid-template-columns: auto 2.4rem minmax(0, 1fr) auto; padding: .65rem 0; }
body.site-organizer .doc-row:first-of-type { border-top: 0; }
body.site-organizer .doc-row.is-hidden { opacity: .6; }
body.site-organizer .doc-order { display: flex; flex-direction: column; }
body.site-organizer .doc-order form { line-height: 1; }
body.site-organizer .doc-icon { align-items: center; border-radius: 9px; display: flex; font-size: 1.1rem; height: 2.4rem; justify-content: center; width: 2.4rem; }
body.site-organizer .doc-icon.is-pdf { background: #fdecea; color: #c23b2e; }
body.site-organizer .doc-icon.is-word { background: #e6eefb; color: #2b5bb8; }
body.site-organizer .doc-icon.is-excel { background: #e6f5ee; color: #1e8e5a; }
body.site-organizer .doc-icon.is-image, body.site-organizer .doc-icon.is-file { background: #e4f8fc; color: #007a9e; }
body.site-organizer .doc-edit { align-items: center; display: grid; gap: .75rem; grid-template-columns: minmax(0, 1fr) auto auto; }
body.site-organizer .doc-edit small a { color: #6b8794; font-size: .75rem; }
body.site-organizer .doc-add { align-items: end; border: 2px dashed #b7d3dd; border-radius: 12px; display: grid; gap: .75rem; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; margin-top: 1rem; padding: 1rem; }
@media (max-width: 767.98px) { body.site-organizer .doc-edit, body.site-organizer .doc-add { grid-template-columns: 1fr; } }
body.site-organizer .pattern-choices { display: grid; gap: .5rem; grid-template-columns: repeat(auto-fill, minmax(88px, 1fr)); }
body.site-organizer .pattern-choice { border: 2px solid #d6e0e6; border-radius: 10px; cursor: pointer; font-size: .78rem; font-weight: 700; overflow: hidden; text-align: center; }
body.site-organizer .pattern-choice input { opacity: 0; position: absolute; }
body.site-organizer .pattern-choice:has(input:checked) { border-color: #008fb8; box-shadow: 0 0 0 3px rgba(0,143,184,.18); }
body.site-organizer .pattern-choice:has(input:focus-visible) { outline: 2px solid #008fb8; outline-offset: 2px; }
body.site-organizer .pattern-swatch { background-color: var(--d-band, #08283a); display: block; height: 46px; }
body.site-organizer .pattern-choice > span:last-child { display: block; padding: .3rem; }

/* Écran direct : but d une équipe sans nommer le buteur (effectif non saisi, ou buteur inconnu). */
body.site-organizer .live-team-goal { align-items: center; background: #e6f5ee; border: 1px dashed #1e8e5a; border-radius: 10px; color: #12603e; display: flex; flex-wrap: wrap; font-weight: 700; gap: .45rem; justify-content: center; margin-top: .75rem; padding: .6rem; width: 100%; }
body.site-organizer .live-team-goal:hover { background: #d4efe1; }
body.site-organizer .live-team-goal small { color: #3f7d61; font-weight: 500; width: 100%; }
