body{background:#f7f9fc}.card{border:0;box-shadow:0 6px 20px rgba(0,0,0,.06);border-radius:1rem}.table{background:white}.hero{background:linear-gradient(135deg,#0d6efd,#6610f2);color:#fff;border-radius:1.25rem;padding:3rem}.badge-status{font-size:.85rem}

/* Page classements */
.ranking-tabs{display:flex;flex-wrap:wrap;gap:.5rem}.ranking-title{font-size:1.55rem;font-weight:800;color:#22295c;border-bottom:2px solid #cfd3dc;padding-bottom:1rem;margin:1.5rem 0 2rem}.ranking-title:before{content:"";display:inline-block;width:.75rem;height:1.65rem;background:#22295c;margin-right:1rem;vertical-align:-.25rem}.ranking-title a{color:inherit;text-decoration:none}.ranking-title span{font-size:1rem;color:#667085;font-weight:600;margin-left:.75rem}.ranking-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:2rem}.ranking-card{background:#f8f8f8;border-radius:1rem;box-shadow:0 8px 25px rgba(0,0,0,.06);transition:.2s transform,.2s box-shadow;min-height:285px}.ranking-card:hover{transform:translateY(-4px);box-shadow:0 14px 32px rgba(0,0,0,.12)}.ranking-card-link{display:flex;flex-direction:column;align-items:center;text-align:center;height:100%;padding:1.25rem;color:#22295c;text-decoration:none}.ranking-card h3{font-size:1.05rem;font-weight:800;min-height:2.2rem}.ranking-ball{font-size:4.25rem;line-height:1;margin:1rem 0}.ranking-podium{width:100%;text-align:left;margin:0 auto 1rem;max-width:260px}.ranking-podium li{display:flex;align-items:center;gap:.45rem;margin:.4rem 0;font-size:.92rem}.ranking-podium strong{flex:1}.ranking-podium small{font-weight:700}.medal{display:inline-flex;align-items:center;justify-content:center;width:1.55rem;height:1.55rem;border-radius:50%;font-size:.75rem;font-weight:800;color:#fff}.medal-1{background:#dc3545}.medal-2{background:#0d6efd}.medal-3{background:#198754}
.match-card{border-radius:1.25rem}.score-header{background:linear-gradient(135deg,#eef6ff,#f8fbff);border:1px solid #d9e8ff}.set-row{background:#fff;transition:.2s}.set-row.set-valid{background:#eefaf1;border-color:#95d5a6!important}.set-row.set-invalid{background:#fff2f2;border-color:#f1a6a6!important}.set-row.set-disabled{opacity:.55;background:#f2f2f2}.score-input{font-weight:700;font-size:1.15rem}.navbar.bg-primary{background:#24315f!important}.btn-primary{background:#0f8fa8;border-color:#0f8fa8}.btn-primary:hover{background:#0b788d;border-color:#0b788d}.card{border-radius:1rem}
.team-logo-sm{width:34px;height:34px;object-fit:contain;border-radius:8px;background:#fff;border:1px solid #e5e7eb;padding:2px}.team-logo-xs{width:22px;height:22px;object-fit:contain;border-radius:5px;background:#fff}.poule-logo-card{width:96px;height:96px;object-fit:contain;display:block;margin:14px auto}
.match-preview-item{border-bottom:1px solid rgba(34,41,92,.12);padding:.45rem 0}.match-preview-item:last-child{border-bottom:0}.calendar-card .poule-logo-card,.result-card .poule-logo-card{width:76px;height:76px}.calendar-card .ranking-ball,.result-card .ranking-ball{font-size:3.4rem}


.team-logo-card{width:64px;height:64px;object-fit:contain;border-radius:12px;background:#fff;border:1px solid #e5e7eb;padding:6px;}
.team-logo-placeholder{width:64px;height:64px;border-radius:12px;background:#f1f5f9;border:1px dashed #cbd5e1;display:flex;align-items:center;justify-content:center;font-size:28px;}
.team-card{transition:transform .15s ease, box-shadow .15s ease;}
.team-card:hover{transform:translateY(-2px);box-shadow:0 .5rem 1rem rgba(15,23,42,.08);}

.club-card-link{display:block;height:100%;text-decoration:none;color:inherit;}
.club-card-link:hover{color:inherit;}
.club-logo-placeholder{font-size:20px;font-weight:800;color:#24315f;background:#eef2ff;border-style:solid;}
.club-card .badge{font-size:.85rem;}
.team-ranking-link { color: inherit; text-decoration: none; }
.team-ranking-link:hover { color: var(--bs-primary); text-decoration: underline; }
.team-logo-lg { width: 72px; height: 72px; object-fit: contain; border-radius: 12px; background: #fff; border: 1px solid rgba(0,0,0,.08); padding: 6px; }

.club-logo-thumb{width:44px;height:44px;object-fit:contain;border-radius:10px;background:#fff;border:1px solid #e5e7eb;padding:4px;}
.club-logo-detail{width:84px;height:84px;object-fit:contain;border-radius:16px;background:#fff;border:1px solid #e5e7eb;padding:8px;}

/* V32 - Thème inspiré FSGT 31 */
:root{
  --fsgt-blue:#284d7e;
  --fsgt-blue-dark:#203d66;
  --fsgt-green:#79b3a5;
  --fsgt-green-dark:#5f9e91;
  --fsgt-light:#f3f7f8;
  --fsgt-text:#1d2b3a;
}
body{font-family:'Open Sans',Arial,sans-serif;background:var(--fsgt-light);color:var(--fsgt-text)}
h1,h2,h3,h4,h5,h6,.navbar,.btn,.ranking-title{font-family:'Montserrat',Arial,sans-serif}.top-line{height:8px;background:linear-gradient(90deg,var(--fsgt-blue),var(--fsgt-green))}.site-header{background:#fff;box-shadow:0 8px 25px rgba(32,61,102,.08);position:relative;z-index:10}.fsgt-navbar{background:#fff;padding:.8rem 0}.brand-logo{height:58px;width:auto}.brand-title{font-weight:800;color:var(--fsgt-blue);letter-spacing:.02em;text-transform:uppercase;font-size:.95rem}.fsgt-menu .nav-link{color:var(--fsgt-blue)!important;font-weight:800;text-transform:uppercase;font-size:.84rem;letter-spacing:.055em;padding:.75rem .85rem;border-radius:999px;transition:.18s ease}.fsgt-menu .nav-link:hover,.fsgt-menu .nav-link:focus{background:rgba(121,179,165,.18);color:var(--fsgt-blue-dark)!important}.btn-fsgt-account{background:var(--fsgt-blue);color:#fff;border-radius:999px;font-weight:800;text-transform:uppercase;font-size:.82rem;letter-spacing:.045em;padding:.65rem 1rem}.btn-fsgt-account:hover{background:var(--fsgt-green-dark);color:#fff}.navbar.bg-primary{background:var(--fsgt-blue)!important}.btn-primary{background:var(--fsgt-green-dark);border-color:var(--fsgt-green-dark)}.btn-primary:hover{background:var(--fsgt-blue);border-color:var(--fsgt-blue)}.btn-outline-primary{border-color:var(--fsgt-blue);color:var(--fsgt-blue)}.btn-outline-primary:hover{background:var(--fsgt-blue);border-color:var(--fsgt-blue);color:#fff}.hero{background:linear-gradient(105deg,rgba(40,77,126,.95),rgba(121,179,165,.88)),url('https://fsgt31.fr/images/2024/Fond-banniere-accueil.png') center/cover;color:#fff;border-radius:1.4rem;padding:3.3rem;position:relative;overflow:hidden}.hero:after{content:"";position:absolute;right:-70px;top:-90px;width:260px;height:260px;background:rgba(255,255,255,.12);border-radius:45%}.hero h1{font-weight:800;text-transform:uppercase;letter-spacing:.02em}.card{border:0;border-radius:1.1rem;box-shadow:0 10px 28px rgba(32,61,102,.08)}.ranking-title{color:var(--fsgt-blue)}.ranking-title:before{background:var(--fsgt-blue)}.ranking-card h3{color:var(--fsgt-blue)}.medal-1{background:#d93a31}.medal-2{background:var(--fsgt-blue)}.medal-3{background:var(--fsgt-green-dark)}
@media (max-width:991.98px){.fsgt-menu .nav-link{border-radius:.6rem}.brand-logo{height:48px}.fsgt-account{margin-top:.8rem}.btn-fsgt-account{display:inline-block}.hero{padding:2rem}}


/* V33 */
.back-to-top{position:fixed;right:1.25rem;bottom:1.25rem;width:46px;height:46px;border:0;border-radius:999px;background:var(--fsgt-blue,#284d7e);color:#fff;font-weight:800;font-size:1.25rem;box-shadow:0 10px 25px rgba(32,61,102,.22);opacity:0;pointer-events:none;transform:translateY(10px);transition:.2s ease;z-index:1030}.back-to-top.show{opacity:1;pointer-events:auto;transform:translateY(0)}.back-to-top:hover{background:var(--fsgt-green-dark,#5f9e91)}
.report-history-box{max-height:260px;overflow:auto}.report-history-item{border-left:4px solid var(--fsgt-blue,#284d7e);padding:.55rem .75rem;margin-bottom:.65rem;background:#f8fafc;border-radius:.5rem}.report-history-item small{color:#64748b}

/* V34 */
.btn-page-previous{background:#003b73;border-color:#003b73;color:#fff;font-weight:700}.btn-page-previous:hover,.btn-page-previous:focus{background:#002b55;border-color:#002b55;color:#fff}.btn-action-edit{background:#198754;border-color:#198754;color:#fff}.btn-action-edit:hover{background:#146c43;border-color:#146c43;color:#fff}.btn-action-delete{background:#dc3545;border-color:#dc3545;color:#fff}.btn-action-delete:hover{background:#b02a37;border-color:#b02a37;color:#fff}.role-section{transition:.2s ease}

/* V35 */
.btn-action-edit{background:#198754!important;border-color:#198754!important;color:#fff!important}.btn-action-delete{background:#dc3545!important;border-color:#dc3545!important;color:#fff!important}.btn-action-edit:hover{background:#146c43!important}.btn-action-delete:hover{background:#b02a37!important}.admin-responsive-table{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.admin-responsive-table table{min-width:900px}@media(max-width:767px){.admin-responsive-table .btn{width:100%;margin-bottom:.25rem}.admin-responsive-table td,.admin-responsive-table th{white-space:nowrap}.notification-action-card{font-size:.95rem}}

/* V36 */
.score-table .form-select{min-width:76px;font-weight:700}.score-table td,.score-table th{vertical-align:middle}.score-table .set-message{max-width:210px}.player-form .dropdown-menu{max-height:280px;overflow:auto}

/* V36.1 - Messagerie */
.recipient-box{max-height:320px;overflow:auto;border:1px solid #dee2e6;border-radius:.5rem;padding:1rem;background:#fff}.message-unread-badge{background:#dc3545;color:#fff}.team-name-sheet{white-space:normal;overflow-wrap:anywhere}

/* V36.2 - Responsive renforcé */
.table-responsive{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.card,.alert,.modal-content{max-width:100%}
img,iframe,video{max-width:100%}
@media (max-width: 991.98px){
  .fsgt-account{gap:.5rem;margin-top:1rem}.fsgt-account .btn,.fsgt-account .nav-link{width:100%;text-align:center}
  .score-header .display-6{font-size:2rem}.match-card .card-body{padding:1rem!important}
}
@media (max-width: 767.98px){
  h1{font-size:1.7rem}.btn-lg{font-size:1rem;padding:.65rem .9rem}
  .score-table{min-width:560px}.score-table .form-select{min-width:72px}
  .referee-external-fields>.col-md-4{width:100%}
  .table td,.table th{white-space:normal;vertical-align:middle}
  .admin-actions,.text-nowrap{white-space:normal!important}
}
/* V37.1 - Gestion des matchs compacte et responsive */
.match-details > summary { list-style: none; }
.match-details > summary::-webkit-details-marker { display: none; }
.match-details > summary::after { content: 'Ouvrir'; font-size: .8rem; color: #0d6efd; margin-left: auto; }
.match-details[open] > summary::after { content: 'Refermer'; }
@media (max-width: 767.98px) {
  .match-details .card-body { padding: 1rem !important; }
  .score-table select { min-width: 72px; }
  .validation-row td { min-width: 130px; }
}

/* V38 - Modern UI */
:root{
  --v38-navy:#153b68;--v38-blue:#1769e0;--v38-cyan:#18a4b8;--v38-green:#2ca66f;
  --v38-orange:#f59e0b;--v38-red:#e5484d;--v38-purple:#7557d3;--v38-bg:#f2f6fb;
  --v38-card:#fff;--v38-border:#dfe8f2;--v38-shadow:0 12px 35px rgba(21,59,104,.09);
}
html{scroll-behavior:smooth}body.v38-ui{background:radial-gradient(circle at 5% 0,rgba(23,105,224,.07),transparent 28rem),var(--v38-bg);min-height:100vh}.site-header{position:sticky;top:0;z-index:1040;box-shadow:0 8px 30px rgba(21,59,104,.09)}.top-line{height:5px;background:linear-gradient(90deg,var(--v38-blue),var(--v38-cyan),var(--v38-green),var(--v38-orange))}.fsgt-navbar{padding:.65rem 0}.brand-logo{height:52px}.brand-copy{line-height:1.05;color:var(--v38-navy);border-left:1px solid var(--v38-border);padding-left:1rem}.brand-copy strong,.brand-copy small{display:block}.brand-copy strong{font-size:.86rem;text-transform:uppercase;letter-spacing:.04em}.brand-copy small{font-size:.72rem;color:#728197;margin-top:.25rem}.fsgt-menu{gap:.15rem}.fsgt-menu .nav-link{display:flex;align-items:center;gap:.42rem;font-size:.76rem;padding:.68rem .72rem}.fsgt-menu .nav-link i{font-size:1rem}.fsgt-menu .nav-link.active{background:linear-gradient(135deg,var(--v38-blue),var(--v38-cyan));color:#fff!important;box-shadow:0 7px 18px rgba(23,105,224,.2)}.fsgt-account .btn{border-radius:.75rem;font-size:.78rem}.theme-toggle{width:40px;height:40px;border-radius:50%;border:1px solid var(--v38-border);background:#fff;color:var(--v38-navy);display:inline-grid;place-items:center;transition:.2s}.theme-toggle:hover{transform:translateY(-2px);box-shadow:0 7px 16px rgba(21,59,104,.14)}main.container{max-width:1320px}.page-heading{background:linear-gradient(135deg,rgba(23,105,224,.08),rgba(24,164,184,.08));padding:1.4rem 1.5rem;border:1px solid rgba(23,105,224,.1);border-radius:1.25rem}.eyebrow{display:block;color:var(--v38-blue);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.12em;margin-bottom:.35rem}.card{background:var(--v38-card);border:1px solid rgba(223,232,242,.85);box-shadow:var(--v38-shadow);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.card:hover{border-color:rgba(23,105,224,.24)}.module-card:hover,.stat-card:hover,.home-stat:hover,.news-card:hover{transform:translateY(-5px);box-shadow:0 20px 45px rgba(21,59,104,.14)}.module-card{overflow:hidden;position:relative}.module-card:after{content:"";position:absolute;width:100px;height:100px;border-radius:50%;background:rgba(23,105,224,.06);right:-35px;bottom:-35px}.module-icon,.stat-icon,.home-stat-icon{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(135deg,var(--v38-blue),var(--v38-cyan));color:#fff;font-size:1.35rem;margin-bottom:1rem;box-shadow:0 8px 20px rgba(23,105,224,.2)}.stat-card{position:relative;overflow:hidden;color:inherit}.stat-card .display-5{color:var(--v38-navy)}.stat-card-blue{border-top:4px solid var(--v38-blue)}.stat-card-orange{border-top:4px solid var(--v38-orange)}.stat-card-orange .stat-icon{background:linear-gradient(135deg,var(--v38-orange),#fb7185)}.hero{min-height:390px;display:flex;align-items:center;padding:4rem;background:linear-gradient(115deg,rgba(14,53,103,.97),rgba(23,105,224,.9) 55%,rgba(24,164,184,.84)),url('https://fsgt31.fr/images/2024/Fond-banniere-accueil.png') center/cover;border-radius:1.75rem;box-shadow:0 22px 55px rgba(21,59,104,.2)}.hero-content{max-width:760px;position:relative;z-index:2}.hero h1{font-size:clamp(2.2rem,5vw,4.2rem);line-height:1.02}.hero-kicker{display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .8rem;border-radius:999px;background:rgba(255,255,255,.14);backdrop-filter:blur(8px);font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;margin-bottom:1.2rem}.hero-ball{position:absolute;right:5%;font-size:clamp(7rem,14vw,13rem);opacity:.18;transform:rotate(-15deg);filter:drop-shadow(0 20px 20px rgba(0,0,0,.15))}.home-stat{position:relative;overflow:hidden}.home-stat-icon{width:42px;height:42px;font-size:1.1rem;position:absolute;right:1.2rem;top:1.2rem;background:linear-gradient(135deg,var(--v38-purple),var(--v38-blue))}.news-card .small{color:var(--v38-blue)!important;font-weight:700}.news-card h3{color:var(--v38-navy)}.btn{border-radius:.72rem;font-weight:700;transition:.18s}.btn:hover{transform:translateY(-1px)}.btn-primary{background:linear-gradient(135deg,var(--v38-blue),var(--v38-cyan));border:0}.btn-success{background:linear-gradient(135deg,#238f5c,var(--v38-green));border:0}.btn-warning{background:linear-gradient(135deg,#f59e0b,#fbbf24);border:0;color:#3d2a00}.btn-danger{background:linear-gradient(135deg,#d9363e,var(--v38-red));border:0}.form-control,.form-select{border-radius:.72rem;border-color:#ccd9e7;padding:.65rem .8rem}.form-control:focus,.form-select:focus{border-color:var(--v38-blue);box-shadow:0 0 0 .22rem rgba(23,105,224,.12)}.table{--bs-table-bg:transparent;border-collapse:separate;border-spacing:0}.table thead th{background:#eaf1f9;color:var(--v38-navy);font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;border-bottom:0;padding:.8rem}.table tbody td{padding:.8rem;border-color:#edf2f7}.table-hover tbody tr:hover{background:rgba(23,105,224,.045)}.badge{border-radius:999px;padding:.45em .7em}.alert{border:0;border-left:4px solid currentColor;border-radius:.85rem;box-shadow:0 7px 20px rgba(21,59,104,.06)}.site-footer{background:linear-gradient(135deg,#12345e,#1769e0);color:#fff}.back-to-top{background:linear-gradient(135deg,var(--v38-blue),var(--v38-cyan))}
[data-bs-theme="dark"]{--v38-bg:#0e1726;--v38-card:#172235;--v38-border:#29384d;--v38-shadow:0 12px 35px rgba(0,0,0,.24)}[data-bs-theme="dark"] body.v38-ui{background:radial-gradient(circle at 5% 0,rgba(23,105,224,.15),transparent 28rem),var(--v38-bg);color:#e7eef8}[data-bs-theme="dark"] .site-header,[data-bs-theme="dark"] .fsgt-navbar{background:#121d2e}[data-bs-theme="dark"] .brand-copy{color:#fff}[data-bs-theme="dark"] .fsgt-menu .nav-link{color:#c7d4e6!important}[data-bs-theme="dark"] .theme-toggle{background:#1d2a3e;color:#fff;border-color:#33445c}[data-bs-theme="dark"] .card,[data-bs-theme="dark"] .table{color:#e7eef8}[data-bs-theme="dark"] .text-muted{color:#9fb0c6!important}[data-bs-theme="dark"] .table thead th{background:#233149;color:#e7eef8}[data-bs-theme="dark"] .table tbody td{border-color:#2b3a50}[data-bs-theme="dark"] .form-control,[data-bs-theme="dark"] .form-select{background:#121d2e;border-color:#35475f;color:#eef4fb}[data-bs-theme="dark"] .stat-card .display-5,[data-bs-theme="dark"] .news-card h3{color:#fff}[data-bs-theme="dark"] .page-heading{background:linear-gradient(135deg,rgba(23,105,224,.16),rgba(24,164,184,.1));border-color:#2b3b53}
@media(max-width:1199.98px){.fsgt-menu .nav-link span{display:none}.fsgt-menu .nav-link{font-size:1.05rem;padding:.65rem}.hero{min-height:340px}}
@media(max-width:991.98px){.site-header{position:relative}.fsgt-menu .nav-link span{display:inline}.fsgt-menu .nav-link{font-size:.82rem}.theme-toggle{margin-top:1rem;width:100%;border-radius:.75rem}.hero{padding:2.5rem}.hero-ball{display:none}}
@media(max-width:575.98px){main.container{padding-left:.9rem;padding-right:.9rem}.hero{padding:2rem 1.35rem;min-height:320px;border-radius:1.25rem}.hero .btn{width:100%;margin:.3rem 0}.page-heading{padding:1.1rem}.card{border-radius:.95rem}.table-responsive{border-radius:.85rem}.brand-logo{height:44px}}


/* V38.0.1 - Bandeau connecte compact et couleurs renforcees */
body.v38-ui::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(circle at 92% 12%,rgba(245,158,11,.10),transparent 22rem),radial-gradient(circle at 8% 78%,rgba(44,166,111,.08),transparent 25rem)}
.fsgt-navbar{background:linear-gradient(90deg,rgba(255,255,255,.98),rgba(246,251,255,.98))}
.navbar-brand{min-width:auto}.navbar-brand .brand-logo{filter:drop-shadow(0 6px 10px rgba(21,59,104,.12))}
.fsgt-menu .nav-link{border-bottom:3px solid transparent}.fsgt-menu .nav-item:nth-child(1) .nav-link:hover{color:var(--v38-blue);border-bottom-color:var(--v38-blue)}.fsgt-menu .nav-item:nth-child(2) .nav-link:hover{color:var(--v38-purple);border-bottom-color:var(--v38-purple)}.fsgt-menu .nav-item:nth-child(3) .nav-link:hover{color:var(--v38-orange);border-bottom-color:var(--v38-orange)}.fsgt-menu .nav-item:nth-child(4) .nav-link:hover{color:var(--v38-green);border-bottom-color:var(--v38-green)}.fsgt-menu .nav-item:nth-child(5) .nav-link:hover{color:var(--v38-cyan);border-bottom-color:var(--v38-cyan)}.fsgt-menu .nav-item:nth-child(6) .nav-link:hover{color:var(--v38-red);border-bottom-color:var(--v38-red)}
.fsgt-account .btn-outline-warning{background:rgba(245,158,11,.10);border-color:rgba(245,158,11,.45);color:#9a6100}.fsgt-account .btn-outline-warning:hover{background:linear-gradient(135deg,var(--v38-orange),#fbbf24);color:#3d2a00}.fsgt-account .btn-outline-primary{background:rgba(23,105,224,.08);border-color:rgba(23,105,224,.35)}.fsgt-account .btn-outline-dark{background:rgba(117,87,211,.08);border-color:rgba(117,87,211,.35);color:var(--v38-purple)}.fsgt-account .btn-outline-dark:hover{background:linear-gradient(135deg,var(--v38-purple),var(--v38-blue));color:#fff;border-color:transparent}.btn-fsgt-account{background:linear-gradient(135deg,var(--v38-green),var(--v38-cyan));border:0;color:#fff;box-shadow:0 8px 20px rgba(44,166,111,.18)}.btn-fsgt-account:hover{color:#fff;box-shadow:0 11px 25px rgba(44,166,111,.28)}
.page-heading{position:relative;overflow:hidden;border-left:6px solid var(--v38-blue)}.page-heading::after{content:"";position:absolute;width:120px;height:120px;border-radius:50%;right:-45px;top:-55px;background:linear-gradient(135deg,rgba(245,158,11,.18),rgba(229,72,77,.10))}

.table thead th:nth-child(4n+1){box-shadow:inset 0 3px 0 var(--v38-blue)}.table thead th:nth-child(4n+2){box-shadow:inset 0 3px 0 var(--v38-green)}.table thead th:nth-child(4n+3){box-shadow:inset 0 3px 0 var(--v38-orange)}.table thead th:nth-child(4n+4){box-shadow:inset 0 3px 0 var(--v38-purple)}
.badge.bg-secondary{background:linear-gradient(135deg,#64748b,#475569)!important}.badge.bg-info{background:linear-gradient(135deg,var(--v38-cyan),var(--v38-blue))!important;color:#fff!important}.badge.bg-success{background:linear-gradient(135deg,#238f5c,var(--v38-green))!important}.badge.bg-warning{background:linear-gradient(135deg,var(--v38-orange),#fbbf24)!important;color:#3d2a00!important}.badge.bg-danger{background:linear-gradient(135deg,#d9363e,var(--v38-red))!important}
.alert-success{background:linear-gradient(135deg,rgba(44,166,111,.15),rgba(24,164,184,.08));color:#176a48}.alert-warning{background:linear-gradient(135deg,rgba(245,158,11,.17),rgba(251,191,36,.08));color:#825000}.alert-danger{background:linear-gradient(135deg,rgba(229,72,77,.14),rgba(245,158,11,.06));color:#9f2930}.alert-info{background:linear-gradient(135deg,rgba(24,164,184,.14),rgba(23,105,224,.07));color:#0c6370}
.site-footer{background:linear-gradient(120deg,#12345e 0%,#1769e0 48%,#18a4b8 72%,#2ca66f 100%)}
[data-bs-theme="dark"] .fsgt-navbar{background:linear-gradient(90deg,#121d2e,#17263c)}[data-bs-theme="dark"] .fsgt-account .btn-outline-warning{color:#ffd77a}[data-bs-theme="dark"] .fsgt-account .btn-outline-dark{color:#c4b5fd}[data-bs-theme="dark"] .alert-success{color:#a7f3d0}[data-bs-theme="dark"] .alert-warning{color:#fde68a}[data-bs-theme="dark"] .alert-danger{color:#fecaca}[data-bs-theme="dark"] .alert-info{color:#a5f3fc}
@media(min-width:992px){body.v38-ui .navbar-brand{margin-right:.75rem}body.v38-ui .fsgt-navbar{padding:.5rem 0}body.v38-ui .brand-logo{height:46px}}

/* V38.1 - Navigation pastel et interface plus coloree */
:root{
  --v381-pastel-blue:#eaf3ff;
  --v381-pastel-green:#e9f8f0;
  --v381-pastel-orange:#fff4df;
  --v381-pastel-purple:#f2edff;
  --v381-pastel-pink:#ffecef;
  --v381-pastel-cyan:#e7f8fb;
  --v381-pastel-yellow:#fff9d9;
}
body.v38-ui main.container{position:relative}
body.v38-ui main.container::before{content:"";position:absolute;inset:.5rem -1rem auto;height:180px;z-index:-1;border-radius:2rem;background:linear-gradient(120deg,rgba(234,243,255,.9),rgba(233,248,240,.72),rgba(255,244,223,.75),rgba(242,237,255,.72));filter:blur(.2px)}
.fsgt-menu .nav-item:nth-child(1) .nav-link{background:var(--v381-pastel-blue)}
.fsgt-menu .nav-item:nth-child(2) .nav-link{background:var(--v381-pastel-purple)}
.fsgt-menu .nav-item:nth-child(3) .nav-link{background:var(--v381-pastel-orange)}
.fsgt-menu .nav-item:nth-child(4) .nav-link{background:var(--v381-pastel-green)}
.fsgt-menu .nav-item:nth-child(5) .nav-link{background:var(--v381-pastel-cyan)}
.fsgt-menu .nav-item:nth-child(6) .nav-link{background:var(--v381-pastel-pink)}
.fsgt-menu .nav-link{margin:.12rem .14rem;box-shadow:inset 0 0 0 1px rgba(21,59,104,.05)}
.fsgt-menu .nav-link.active{color:#fff!important;background:linear-gradient(135deg,var(--v38-blue),var(--v38-purple))!important;box-shadow:0 8px 18px rgba(23,105,224,.2);border-bottom-color:transparent}
.card{overflow:hidden}

.card-header{border-bottom:0;font-weight:800;background:linear-gradient(120deg,rgba(255,255,255,.72),rgba(234,243,255,.82))}
.card-header.bg-primary,.card-header.text-bg-primary{background:linear-gradient(135deg,var(--v38-blue),var(--v38-cyan))!important;color:#fff!important}
.card-header.bg-success,.card-header.text-bg-success{background:linear-gradient(135deg,#238f5c,var(--v38-green))!important;color:#fff!important}
.card-header.bg-warning,.card-header.text-bg-warning{background:linear-gradient(135deg,var(--v38-orange),#fbbf24)!important;color:#3d2a00!important}
.card-header.bg-danger,.card-header.text-bg-danger{background:linear-gradient(135deg,#d9363e,var(--v38-red))!important;color:#fff!important}
.card-header.bg-info,.card-header.text-bg-info{background:linear-gradient(135deg,var(--v38-cyan),var(--v38-blue))!important;color:#fff!important}

.match-card{background:linear-gradient(145deg,#fff,var(--v381-pastel-blue));border-left:5px solid var(--v38-blue)}
.team-card{background:linear-gradient(145deg,#fff,var(--v381-pastel-green));border-left:5px solid var(--v38-green)}
.club-card{background:linear-gradient(145deg,#fff,var(--v381-pastel-purple));border-left:5px solid var(--v38-purple)}
.notification-action-card{background:linear-gradient(145deg,#fff,var(--v381-pastel-orange));border-left:5px solid var(--v38-orange)}
.recipient-box,.report-history-item{background:linear-gradient(145deg,#fff,var(--v381-pastel-cyan))}
.table-responsive{border-radius:1rem;box-shadow:0 10px 26px rgba(21,59,104,.07);background:rgba(255,255,255,.82);padding:.25rem}
.table tbody tr:nth-child(4n+1){background:rgba(234,243,255,.55)}
.table tbody tr:nth-child(4n+2){background:rgba(233,248,240,.5)}
.table tbody tr:nth-child(4n+3){background:rgba(255,244,223,.5)}
.table tbody tr:nth-child(4n+4){background:rgba(242,237,255,.48)}
.form-control,.form-select,.form-check-input{background-color:rgba(255,255,255,.92)}
fieldset,.role-section{border-radius:1rem;background:linear-gradient(145deg,rgba(255,255,255,.96),var(--v381-pastel-blue));padding:1rem}
.site-footer{position:relative;overflow:hidden}.site-footer::after{content:"";position:absolute;inset:auto -8% -75px;height:145px;background:radial-gradient(circle,rgba(255,255,255,.18),transparent 66%);pointer-events:none}
[data-bs-theme="dark"] .fsgt-menu .nav-link{background:#1b2a3f!important;color:#dce8f7!important}
[data-bs-theme="dark"] .fsgt-menu .nav-link.active{background:linear-gradient(135deg,var(--v38-blue),var(--v38-purple))!important;color:#fff!important}
[data-bs-theme="dark"] .card,[data-bs-theme="dark"] .ranking-card,[data-bs-theme="dark"] .match-card,[data-bs-theme="dark"] .team-card,[data-bs-theme="dark"] .club-card,[data-bs-theme="dark"] .notification-action-card{background:linear-gradient(145deg,#172235,#1b2b41)}
[data-bs-theme="dark"] .table-responsive{background:#172235}
[data-bs-theme="dark"] .table tbody tr:nth-child(n){background:transparent}



/* V38.1.1 - bandeau connecte et cartes de resultats neutres */
body.is-authenticated .brand-copy{display:none!important}
body.is-authenticated .navbar-brand{gap:0!important}
.ranking-card{background:#f8f8f8}
body.v38-ui .ranking-grid .ranking-card,body.v38-ui .results-grid .card,body.v38-ui .classement-grid .card{background:var(--v38-card);border-top-color:rgba(223,232,242,.85)}
[data-bs-theme="dark"] body.v38-ui .ranking-grid .ranking-card,[data-bs-theme="dark"] body.v38-ui .results-grid .card,[data-bs-theme="dark"] body.v38-ui .classement-grid .card{background:var(--v38-card)}
@media(max-width:991.98px){.fsgt-menu .nav-link{margin:.2rem 0;padding:.75rem 1rem}}


/* V38.3 - Administration illustrée, pied de page et contenus légaux */
.admin-tile{display:flex;align-items:center;gap:1rem;min-height:142px;padding:1.35rem;border-radius:1.2rem;text-decoration:none;color:var(--v38-navy);border:1px solid rgba(21,59,104,.08);box-shadow:var(--v38-shadow);position:relative;overflow:hidden;transition:.2s}.admin-tile:hover{transform:translateY(-5px);box-shadow:0 20px 45px rgba(21,59,104,.15);color:var(--v38-navy)}.admin-tile-icon{width:62px;height:62px;border-radius:20px;display:grid;place-items:center;font-size:1.8rem;flex:0 0 auto;color:#fff;box-shadow:0 10px 22px rgba(21,59,104,.18)}.admin-tile-copy{display:flex;flex-direction:column;gap:.35rem}.admin-tile-copy strong{font-size:1.05rem}.admin-tile-copy small{color:#607087;line-height:1.45}.admin-tile-arrow{margin-left:auto;font-size:1.3rem;opacity:.5}.admin-tile-blue{background:linear-gradient(145deg,#fff,var(--v381-pastel-blue))}.admin-tile-green{background:linear-gradient(145deg,#fff,var(--v381-pastel-green))}.admin-tile-orange{background:linear-gradient(145deg,#fff,var(--v381-pastel-orange))}.admin-tile-purple{background:linear-gradient(145deg,#fff,var(--v381-pastel-purple))}.admin-tile-pink{background:linear-gradient(145deg,#fff,var(--v381-pastel-pink))}.admin-tile-cyan{background:linear-gradient(145deg,#fff,var(--v381-pastel-cyan))}.admin-tile-blue .admin-tile-icon{background:linear-gradient(135deg,var(--v38-blue),#60a5fa)}.admin-tile-green .admin-tile-icon{background:linear-gradient(135deg,#238f5c,var(--v38-green))}.admin-tile-orange .admin-tile-icon{background:linear-gradient(135deg,var(--v38-orange),#fbbf24)}.admin-tile-purple .admin-tile-icon{background:linear-gradient(135deg,var(--v38-purple),#9f7aea)}.admin-tile-pink .admin-tile-icon{background:linear-gradient(135deg,var(--v38-red),#fb7185)}.admin-tile-cyan .admin-tile-icon{background:linear-gradient(135deg,var(--v38-cyan),var(--v38-blue))}
.site-footer{padding-top:.5rem}.footer-brand{font-size:1.15rem}.footer-title{font-size:.82rem;text-transform:uppercase;letter-spacing:.1em;font-weight:800;margin-bottom:.8rem}.footer-links{display:flex;flex-direction:column;gap:.55rem}.footer-links a{color:#fff;text-decoration:none;opacity:.85;display:flex;align-items:center;gap:.55rem}.footer-links a:hover{opacity:1;transform:translateX(3px)}.footer-separator{border-color:rgba(255,255,255,.25);margin:1.5rem 0 1rem}
.legal-page{max-width:1050px;margin:auto}.legal-page section{scroll-margin-top:110px;padding:1.3rem 1.4rem;margin:1rem 0;border-radius:1rem;background:linear-gradient(145deg,#fff,#f5f9ff);border-left:5px solid var(--v38-blue)}.legal-page section:nth-of-type(3n+2){border-left-color:var(--v38-green)}.legal-page section:nth-of-type(3n){border-left-color:var(--v38-orange)}.legal-page h2{font-size:1.25rem;color:var(--v38-navy);margin-bottom:.9rem}.legal-page h2 i{color:var(--v38-blue);margin-right:.4rem}.legal-page li{margin-bottom:.4rem}.legal-intro{padding:1.25rem;border-radius:1rem;background:linear-gradient(135deg,var(--v381-pastel-blue),var(--v381-pastel-cyan));margin-bottom:1.5rem}.legal-update{display:inline-block;padding:.45rem .8rem;border-radius:999px;background:#fff;margin:0}.legal-summary{padding:1.3rem;border:1px solid var(--v38-border);border-radius:1rem;margin-bottom:1.5rem}.legal-summary ol{columns:2;gap:2rem;margin-bottom:0}.legal-summary a{text-decoration:none}.legal-callout{background:var(--v381-pastel-yellow);border-left:5px solid var(--v38-orange);padding:1rem 1.2rem;border-radius:.8rem;margin-bottom:1rem}.sitemap-card h2{color:var(--v38-navy)}.sitemap-card li+li{border-top:1px solid var(--v38-border)}.sitemap-card a{display:flex;align-items:center;gap:.7rem;padding:.75rem .2rem;text-decoration:none;color:inherit}.sitemap-card a:hover{color:var(--v38-blue)}.legal-editor-toolbar{display:flex;flex-wrap:wrap;gap:.35rem;padding:.55rem;background:#edf3fa;border:1px solid #ccd9e7;border-bottom:0;border-radius:.72rem .72rem 0 0}.legal-editor-toolbar button{border:1px solid #c4d2e2;background:#fff;border-radius:.45rem;padding:.35rem .6rem}.legal-visual-editor{min-height:520px;border:1px solid #ccd9e7;border-radius:0 0 .72rem .72rem;padding:1rem;background:#fff;overflow:auto}.legal-source-editor{border-radius:0 0 .72rem .72rem;font-family:monospace}.legal-admin-nav{position:sticky;top:105px}
[data-bs-theme="dark"] .admin-tile,[data-bs-theme="dark"] .legal-page section,[data-bs-theme="dark"] .legal-intro,[data-bs-theme="dark"] .legal-visual-editor{background:linear-gradient(145deg,#172235,#1b2b41);color:#e7eef8}[data-bs-theme="dark"] .admin-tile:hover,[data-bs-theme="dark"] .admin-tile-copy strong,[data-bs-theme="dark"] .legal-page h2,[data-bs-theme="dark"] .sitemap-card h2{color:#fff}[data-bs-theme="dark"] .admin-tile-copy small{color:#a9b8ca}[data-bs-theme="dark"] .legal-editor-toolbar{background:#1b2a3f;border-color:#35475f}[data-bs-theme="dark"] .legal-editor-toolbar button{background:#26364d;color:#fff;border-color:#425570}[data-bs-theme="dark"] .legal-visual-editor{border-color:#35475f}
@media(max-width:767.98px){.legal-summary ol{columns:1}.admin-tile{min-height:122px}.legal-page{padding:1rem!important}.legal-page section{padding:1rem}}

/* V38.4.3 - Correctifs responsive globaux */
html,body{max-width:100%;overflow-x:hidden}
*,*::before,*::after{min-width:0}
.container,.container-fluid,.row,[class*="col-"]{min-width:0}
.table-responsive{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}
.table-responsive>table{margin-bottom:0}
.btn,.badge,.form-control,.form-select{max-width:100%}
.badge{white-space:normal;overflow-wrap:anywhere;line-height:1.25;text-align:center}
.input-group{max-width:100%}
.input-group>.form-control,.input-group>.form-select{min-width:0}
.card-body,.card-header,.card-footer{overflow-wrap:anywhere}

/* Tableau de validation : empêche la colonne d'actions de sortir du cadre */
.validation-table{width:100%;table-layout:auto}
.validation-table th,.validation-table td{vertical-align:middle;overflow-wrap:anywhere}
.validation-table .validation-actions{width:clamp(260px,32vw,460px);min-width:260px;max-width:460px}
.validation-actions .btn{white-space:normal}
.validation-actions form,.validation-actions .input-group{width:100%}
.validation-actions .input-group>.form-control{flex:1 1 180px;width:1%;min-width:120px}
.validation-actions .input-group>.btn{flex:0 1 auto}
.validation-return-form .input-group{gap:.35rem}
.validation-return-form .input-group>.form-control,.validation-return-form .input-group>.btn{border-radius:.375rem!important}

@media (max-width:1199.98px){
  main.container{max-width:100%;padding-left:1rem;padding-right:1rem}
  .validation-table{min-width:1120px}
  .validation-table .validation-actions{width:360px;min-width:360px}
}

@media (max-width:991.98px){
  .navbar-brand{max-width:calc(100% - 64px)}
  .brand-logo{max-width:100%;height:46px}
  .hero{padding:1.75rem}
  .ranking-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}
  .modal-dialog{margin:.75rem}
  .validation-table-wrap{border:1px solid rgba(0,0,0,.08);border-radius:.75rem}
}

@media (max-width:767.98px){
  body{font-size:.95rem}
  main.container{padding-left:.75rem;padding-right:.75rem}
  h1{overflow-wrap:anywhere}
  .hero{padding:1.25rem;border-radius:1rem}
  .ranking-grid{grid-template-columns:1fr}
  .ranking-title{font-size:1.3rem}
  .card{border-radius:.85rem}
  .card.p-4,.card.p-3{padding:1rem!important}
  .btn:not(.navbar-toggler):not(.theme-toggle){white-space:normal}
  .input-group{display:flex;flex-wrap:wrap;gap:.35rem}
  .input-group>.form-control,.input-group>.form-select,.input-group>.btn{width:100%;flex:1 0 100%;border-radius:.375rem!important}
  .validation-table{min-width:1020px;font-size:.9rem}
  .validation-table .validation-actions{width:300px;min-width:300px}
  .back-to-top{right:.75rem;bottom:.75rem}
}

@media (max-width:575.98px){
  .brand-logo{height:40px}
  .navbar-toggler{padding:.35rem .55rem}
  .hero h1{font-size:1.55rem}
  .badge-status{font-size:.78rem}
  .table-responsive{margin-left:0;margin-right:0}
  .score-table{min-width:520px}
  .legal-page section{padding:.85rem}
}


/* V38.5 - ergonomie mobile, verification adverse et formulaires administration */
.opponent-review-page{max-width:920px}.opponent-review-card{border-top:5px solid var(--v38-blue)}
.sheet-preview-link{background:linear-gradient(135deg,var(--v381-pastel-blue),#fff);color:var(--v38-navy);transition:.18s ease}.sheet-preview-link:hover{transform:translateY(-2px);box-shadow:0 10px 25px rgba(21,59,104,.12)}.sheet-preview-icon{width:48px;height:48px;display:grid;place-items:center;flex:0 0 auto;border-radius:14px;background:var(--v38-blue);color:#fff;font-size:1.35rem}
.review-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.review-choice{display:flex;align-items:center;gap:.75rem;padding:1rem;border:2px solid var(--v38-border);border-radius:1rem;cursor:pointer;background:#fff;min-height:82px}.review-choice:has(input:checked){box-shadow:0 0 0 3px rgba(21,104,210,.12)}.review-choice-yes:has(input:checked){border-color:#249a61;background:#effbf5}.review-choice-no:has(input:checked){border-color:#dc3545;background:#fff3f4}.review-choice span{display:flex;align-items:center;gap:.6rem}.review-choice i{font-size:1.35rem}.review-choice-yes i{color:#249a61}.review-choice-no i{color:#dc3545}
.opponent-validation-summary{padding:.65rem;border-radius:.7rem;background:rgba(255,255,255,.65);border:1px solid rgba(21,59,104,.08)}
.admin-responsive-table td,.admin-responsive-table th{overflow-wrap:anywhere}
@media(max-width:991.98px){
  .admin-responsive-table table{min-width:860px}
  main.container{padding-bottom:5rem}
  .card .row.g-3>[class*="col-md-"]{min-width:0}
}
@media(max-width:767.98px){
  :root{--v38-shadow:0 8px 22px rgba(21,59,104,.10)}
  body{background:linear-gradient(180deg,#f5f9ff 0,#fff 45%,#f7fbff 100%)}
  h1{font-size:1.55rem;line-height:1.2}.h4,h2.h4{font-size:1.18rem}
  .card{box-shadow:var(--v38-shadow);border-color:rgba(21,59,104,.09)}
  .review-choice-grid{grid-template-columns:1fr}.review-choice{min-height:68px;padding:.85rem}
  .sheet-preview-link{align-items:flex-start!important}.sheet-preview-link .bi-box-arrow-up-right{display:none}
  .opponent-review-card{padding:1rem!important}
  .btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
  .btn-sm{min-height:38px}
  .form-control,.form-select{min-height:44px}
  textarea.form-control{min-height:110px}
  .table-responsive{border-radius:.85rem;box-shadow:0 5px 16px rgba(21,59,104,.08)}
  .validation-table th,.validation-table td{padding:.65rem .55rem}
  .validation-actions{background:rgba(255,255,255,.42)}
  .alert{border-radius:.85rem}
}
@media(max-width:575.98px){
  main.container{padding-left:.6rem;padding-right:.6rem}
  .card.p-4,.card.p-3{padding:.85rem!important}
  .d-flex.justify-content-between.align-items-center{align-items:flex-start!important;gap:.75rem;flex-wrap:wrap}
  .opponent-review-page h1{font-size:1.4rem}
  .sheet-preview-icon{width:42px;height:42px;border-radius:12px}
  .review-choice span{font-size:.94rem}
}
[data-bs-theme="dark"] .review-choice,[data-bs-theme="dark"] .sheet-preview-link,[data-bs-theme="dark"] .opponent-validation-summary{background:#1b2b41;color:#e7eef8;border-color:#35475f}


/* V39 - utilitaires applicatifs mutualisés */
.match-date-column { min-width: 125px; }
.match-score-grid { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: .75rem; }
.table-actions-wide { min-width: 440px; }
.table-actions-medium { min-width: 310px; }
.content-narrow { max-width: 760px; }
.user-agent-cell { max-width: 320px; }
.entity-logo-sm { width: 48px; height: 48px; object-fit: contain; }
.entity-logo-md { width: 56px; height: 56px; object-fit: contain; }
.map-frame { width: 100%; height: 300px; border: 0; border-radius: 12px; }
.clickable-summary { cursor: pointer; }
.sheet-preview-image { max-height: 260px; object-fit: contain; }
.sheet-preview-frame { height: 260px; border: 0; pointer-events: none; }
@media (max-width: 575.98px) {
  .match-date-column { min-width: 0; }
  .match-score-grid { grid-template-columns: 1fr; text-align: center; }
}

/* V40.3 - installation Web App / PWA */
.footer-install-button {
  appearance: none;
  border: 0;
  background: transparent;
  color: inherit;
  padding: 0;
  text-align: left;
  font: inherit;
  cursor: pointer;
}
.footer-install-button:hover,
.footer-install-button:focus-visible {
  text-decoration: underline;
}
.footer-install-button i { margin-right: .45rem; }
.pwa-update-toast {
  position: fixed;
  right: 1rem;
  bottom: 1rem;
  z-index: 1080;
  max-width: 340px;
  padding: 1rem;
  border-radius: .9rem;
  background: var(--bs-body-bg, #fff);
  color: var(--bs-body-color, #212529);
  box-shadow: 0 12px 35px rgba(0,0,0,.2);
  border: 1px solid rgba(127,127,127,.25);
}
.pwa-update-toast button { margin-top: .75rem; }
@media (display-mode: standalone) {
  .footer-install-button { display: none !important; }
}


/* V40.6 - saisie des scores compacte et lisible */
.score-wizard .score-header{padding:1rem!important;background:linear-gradient(135deg,#eef7ff,#f8fbff);box-shadow:inset 0 0 0 1px rgba(15,143,168,.08)}
.score-wizard .score-table{border-collapse:separate;border-spacing:0 .45rem}
.score-wizard .score-table thead th{border:0;color:#64748b;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}
.score-wizard .score-table tbody tr{box-shadow:0 4px 14px rgba(36,49,95,.06)}
.score-wizard .score-table tbody td{background:var(--bs-body-bg);border-top:1px solid var(--bs-border-color);border-bottom:1px solid var(--bs-border-color);padding:.65rem}
.score-wizard .score-table tbody td:first-child{border-left:1px solid var(--bs-border-color);border-radius:.75rem 0 0 .75rem}
.score-wizard .score-table tbody td:last-child{border-right:1px solid var(--bs-border-color);border-radius:0 .75rem .75rem 0}
.score-document-panel{padding:1rem;border:1px solid var(--bs-border-color);border-radius:1rem;background:rgba(248,250,252,.75)}
.match-help-box{padding:1rem;border:1px solid rgba(245,158,11,.45);border-radius:1rem;background:rgba(255,247,237,.8)}
[data-bs-theme="dark"] .score-document-panel{background:rgba(30,41,59,.65)}
[data-bs-theme="dark"] .match-help-box{background:rgba(69,48,19,.45)}
@media (max-width:767.98px){.score-wizard .score-table{min-width:520px}.score-document-panel{padding:.8rem}.match-help-box .btn{width:100%}}

/* ========================================================================== */
/* V41.0 - Theme application moderne avec navigation laterale                 */
/* ========================================================================== */
:root{
  --v41-navy:#071a3d;
  --v41-navy-2:#0b285a;
  --v41-blue:#1467e8;
  --v41-blue-soft:#eaf2ff;
  --v41-yellow:#f5c400;
  --v41-bg:#f3f6fb;
  --v41-card:#ffffff;
  --v41-text:#172033;
  --v41-muted:#6c7890;
  --v41-border:#dfe6f1;
  --v41-success:#198754;
  --v41-warning:#f08c00;
  --v41-danger:#dc3545;
  --v41-sidebar:252px;
  --v41-topbar:68px;
  --v41-shadow:0 10px 30px rgba(20,39,78,.08);
}
[data-theme="dark"]{
  --v41-bg:#0d1526;
  --v41-card:#131f35;
  --v41-text:#edf3ff;
  --v41-muted:#a9b6cc;
  --v41-border:#2a3955;
  --v41-blue-soft:#162d52;
  --v41-shadow:0 12px 34px rgba(0,0,0,.28);
}
body.v41-ui{background:var(--v41-bg);color:var(--v41-text);min-height:100vh;overflow-x:hidden}
body.v41-ui a{transition:color .18s ease,background-color .18s ease,border-color .18s ease,transform .18s ease}
.app-shell{min-height:100vh}
.app-sidebar{position:fixed;inset:0 auto 0 0;width:var(--v41-sidebar);background:linear-gradient(180deg,var(--v41-navy) 0%,#06142f 100%);color:#fff;display:flex;flex-direction:column;z-index:1045;box-shadow:8px 0 30px rgba(4,18,48,.16)}
.sidebar-brand{height:86px;display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid rgba(255,255,255,.1)}
.sidebar-brand>a{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;min-width:0}
.sidebar-brand img{width:48px;height:48px;object-fit:contain;filter:drop-shadow(0 4px 10px rgba(0,0,0,.2))}
.sidebar-brand span{display:flex;flex-direction:column;line-height:1}
.sidebar-brand strong{font-family:Montserrat,sans-serif;font-size:1.15rem;letter-spacing:.03em}
.sidebar-brand small{font-weight:800;color:var(--v41-yellow);font-size:.78rem;letter-spacing:.08em;margin-top:4px}
.sidebar-close{border:0;background:rgba(255,255,255,.1);color:#fff;border-radius:10px;width:36px;height:36px}
.sidebar-nav{padding:14px 12px 18px;overflow-y:auto;overscroll-behavior:contain;flex:1;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.22) transparent}
.sidebar-section-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.45);font-weight:800;padding:14px 12px 7px}
.sidebar-link{display:flex;align-items:center;gap:12px;min-height:43px;padding:10px 12px;border-radius:11px;color:rgba(255,255,255,.82);text-decoration:none;font-weight:600;font-size:.91rem;margin:2px 0;position:relative}
.sidebar-link i{font-size:1.05rem;width:22px;text-align:center;color:#b8cff8}
.sidebar-link:hover{color:#fff;background:rgba(255,255,255,.08);transform:translateX(2px)}
.sidebar-link.active{background:linear-gradient(135deg,#1467e8,#0d54c6);color:#fff;box-shadow:0 8px 18px rgba(20,103,232,.28)}
.sidebar-link.active i{color:#fff}
.sidebar-badge{margin-left:auto;background:#ef4444;color:#fff;border-radius:999px;min-width:22px;height:22px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:800}
.sidebar-footer{padding:14px;border-top:1px solid rgba(255,255,255,.1)}
.sidebar-user{display:flex;align-items:center;gap:10px;padding:9px 7px 13px;color:#fff}
.user-avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.13);flex:0 0 auto}
.sidebar-user>span:last-child{display:flex;flex-direction:column;min-width:0}
.sidebar-user strong{font-size:.84rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar-user small{font-size:.67rem;color:rgba(255,255,255,.52);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar-logout,.sidebar-login,.sidebar-theme{width:100%;display:flex;align-items:center;justify-content:flex-start;gap:10px;padding:10px 12px;border-radius:10px;color:#fff;text-decoration:none;background:transparent;border:0;font-weight:600;font-size:.88rem}
.sidebar-logout:hover,.sidebar-login:hover,.sidebar-theme:hover{background:rgba(255,255,255,.09);color:#fff}
.sidebar-login{background:var(--v41-blue);justify-content:center}
.sidebar-theme{color:rgba(255,255,255,.76)}
.app-content{margin-left:var(--v41-sidebar);min-height:100vh;display:flex;flex-direction:column}
.app-topbar{height:var(--v41-topbar);position:sticky;top:0;z-index:1020;background:color-mix(in srgb,var(--v41-card) 94%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--v41-border);display:flex;align-items:center;justify-content:space-between;padding:0 28px}
.topbar-title{display:flex;flex-direction:column;line-height:1.15}
.topbar-title strong{font-family:Montserrat,sans-serif;font-size:1rem}
.topbar-title small{font-size:.72rem;color:var(--v41-muted);margin-top:4px}
.topbar-actions{display:flex;align-items:center;gap:9px}
.topbar-icon,.topbar-help{position:relative;height:40px;min-width:40px;border:1px solid var(--v41-border);background:var(--v41-card);color:var(--v41-text);border-radius:11px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;gap:7px;padding:0 11px}
.topbar-icon:hover,.topbar-help:hover{border-color:var(--v41-blue);color:var(--v41-blue);transform:translateY(-1px)}
.topbar-icon>span{position:absolute;right:-5px;top:-6px;background:#ef4444;color:#fff;border-radius:99px;font-size:.65rem;min-width:18px;height:18px;display:grid;place-items:center;font-weight:800;border:2px solid var(--v41-card)}
.mobile-menu-button{width:42px;height:42px;border:0;border-radius:11px;background:var(--v41-blue-soft);color:var(--v41-blue);font-size:1.35rem}
.app-main{flex:1;padding:25px 28px 10px}
.content-container{width:100%;max-width:1500px;margin:0 auto}
.page-back-row{margin-bottom:16px}
.btn-page-previous{background:var(--v41-card)!important;border:1px solid var(--v41-border)!important;color:var(--v41-text)!important;border-radius:10px!important;padding:.48rem .8rem!important}
.btn-page-previous:hover{border-color:var(--v41-blue)!important;color:var(--v41-blue)!important}
.app-alert{border:0;border-radius:13px;box-shadow:var(--v41-shadow)}
.sidebar-overlay{display:none}
.app-footer{margin-top:36px!important;background:var(--v41-navy)!important;color:#fff}

/* Harmonisation globale des anciennes pages */
.v41-ui .card,.v41-ui .modal-content,.v41-ui .list-group-item,.v41-ui .accordion-item{background:var(--v41-card);color:var(--v41-text);border-color:var(--v41-border)}
.v41-ui .card{border-radius:16px;border:1px solid var(--v41-border);box-shadow:var(--v41-shadow);overflow:hidden}
.v41-ui .card-header{background:color-mix(in srgb,var(--v41-card) 92%,var(--v41-blue-soft));border-bottom:1px solid var(--v41-border);padding:1rem 1.15rem;font-weight:700}
.v41-ui .card-body{padding:1.15rem}
.v41-ui .module-card,.v41-ui .stat-card{transition:transform .18s ease,box-shadow .18s ease}
.v41-ui .module-card:hover,.v41-ui .stat-card:hover{transform:translateY(-3px);box-shadow:0 16px 38px rgba(18,55,110,.14)}
.v41-ui h1,.v41-ui h2,.v41-ui h3,.v41-ui h4{font-family:Montserrat,sans-serif;color:var(--v41-text)}
.v41-ui h1{font-weight:800;letter-spacing:-.03em}
.v41-ui .text-muted{color:var(--v41-muted)!important}
.v41-ui .table{--bs-table-bg:transparent;--bs-table-color:var(--v41-text);--bs-table-border-color:var(--v41-border);margin-bottom:0}
.v41-ui .table thead th{background:color-mix(in srgb,var(--v41-blue-soft) 65%,var(--v41-card));color:var(--v41-text);font-size:.77rem;text-transform:uppercase;letter-spacing:.04em;border-bottom-width:1px;white-space:nowrap}
.v41-ui .table tbody tr:hover{background:color-mix(in srgb,var(--v41-blue-soft) 42%,transparent)}
.v41-ui .table-responsive{border:1px solid var(--v41-border);border-radius:14px;background:var(--v41-card)}
.v41-ui .form-control,.v41-ui .form-select{background:var(--v41-card);color:var(--v41-text);border-color:var(--v41-border);border-radius:10px;min-height:42px}
.v41-ui .form-control:focus,.v41-ui .form-select:focus{background:var(--v41-card);color:var(--v41-text);border-color:var(--v41-blue);box-shadow:0 0 0 .22rem rgba(20,103,232,.13)}
.v41-ui .form-label{font-weight:700;font-size:.86rem;color:var(--v41-text)}
.v41-ui .btn{border-radius:10px;font-weight:700}
.v41-ui .btn-primary{background:linear-gradient(135deg,#176ee8,#0e55c8);border-color:#1467e8;box-shadow:0 7px 16px rgba(20,103,232,.2)}
.v41-ui .btn-warning{color:#172033;background:var(--v41-yellow);border-color:var(--v41-yellow)}
.v41-ui .badge{font-weight:700;padding:.48em .68em}
.v41-ui .nav-tabs{border-bottom-color:var(--v41-border);gap:5px}
.v41-ui .nav-tabs .nav-link{border:0;border-radius:10px 10px 0 0;color:var(--v41-muted);font-weight:700}
.v41-ui .nav-tabs .nav-link.active{background:var(--v41-blue-soft);color:var(--v41-blue)}
.v41-ui .alert{border-radius:13px}
.v41-ui .dropdown-menu{background:var(--v41-card);border-color:var(--v41-border);box-shadow:var(--v41-shadow)}
.v41-ui .dropdown-item{color:var(--v41-text)}
.v41-ui .dropdown-item:hover{background:var(--v41-blue-soft);color:var(--v41-blue)}
.v41-ui .pagination .page-link{background:var(--v41-card);border-color:var(--v41-border);color:var(--v41-text)}
.v41-ui .pagination .active .page-link{background:var(--v41-blue);border-color:var(--v41-blue);color:#fff}
.v41-ui .page-heading{background:linear-gradient(135deg,var(--v41-card),color-mix(in srgb,var(--v41-blue-soft) 55%,var(--v41-card)));border:1px solid var(--v41-border);border-radius:17px;padding:20px 22px;box-shadow:var(--v41-shadow)}
.v41-ui .eyebrow{color:var(--v41-blue);font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem}

/* Mise en valeur des pages de score et des deux modes */
.v41-ui .score-entry-card,.v41-ui .match-entry-card,.v41-ui .score-panel{border-radius:17px!important}
.v41-ui input[type="number"]{font-weight:800;text-align:center}
.v41-ui .match-status,.v41-ui .status-pill{border-radius:999px;font-weight:800}
.v41-ui .signature-card{border:1px solid var(--v41-border);border-radius:14px;background:var(--v41-card)}
.v41-ui .mode-full-electronic{--mode-accent:#1467e8}
.v41-ui .mode-electronic-only{--mode-accent:#198754}

@media (max-width:1199.98px){
  :root{--v41-sidebar:230px}
  .app-main{padding-left:20px;padding-right:20px}
  .app-topbar{padding:0 20px}
  .sidebar-link{font-size:.86rem}
}
@media (max-width:991.98px){
  .app-sidebar{transform:translateX(-105%);transition:transform .25s ease;width:min(86vw,300px)}
  body.sidebar-open .app-sidebar{transform:translateX(0)}
  .app-content{margin-left:0}
  .sidebar-overlay{position:fixed;inset:0;background:rgba(2,10,30,.58);z-index:1040;backdrop-filter:blur(2px)}
  body.sidebar-open .sidebar-overlay{display:block}
  body.sidebar-open{overflow:hidden}
  .app-main{padding:18px 15px 8px}
  .app-topbar{height:62px;padding:0 14px}
  .topbar-title small{display:none}
}
@media (max-width:575.98px){
  .app-main{padding:13px 10px 5px}
  .content-container{max-width:100%}
  .topbar-title strong{font-size:.88rem}
  .topbar-help{padding:0 9px}
  .v41-ui .card{border-radius:13px}
  .v41-ui .card-body{padding:.9rem}
  .v41-ui .page-heading{padding:15px}
  .v41-ui h1{font-size:1.45rem}
  .v41-ui .table-responsive{border-radius:11px}
  .v41-ui .btn{min-height:40px}
  .v41-ui form .row>[class*="col-"]{margin-bottom:.25rem}
}
@media print{
  .app-sidebar,.app-topbar,.app-footer,.page-back-row,.back-to-top{display:none!important}
  .app-content{margin-left:0!important}
  .app-main{padding:0!important}
  body.v41-ui{background:#fff!important;color:#000!important}
  .v41-ui .card{box-shadow:none!important;border-color:#bbb!important}
}

/* V41.1 - Sélection de match et fiche de saisie dédiée */
.match-picker-card{display:block;height:100%;padding:18px;background:var(--v41-card);border:1px solid var(--v41-border);border-radius:17px;color:var(--v41-text);box-shadow:var(--v41-shadow);transition:.18s ease}
.match-picker-card:hover{transform:translateY(-3px);border-color:var(--v41-blue);box-shadow:0 18px 38px rgba(18,55,110,.16);color:var(--v41-text)}
.match-picker-top,.match-picker-meta,.match-picker-versus{display:flex;align-items:center;justify-content:space-between;gap:12px}
.match-picker-versus{padding:20px 0 16px}.match-picker-versus>div{display:flex;align-items:center;gap:10px;min-width:0}.match-picker-versus strong{font-size:1.02rem}
.team-avatar{display:inline-grid;place-items:center;flex:0 0 auto;width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,#0d3b82,#1467e8);color:#fff;font-weight:900;text-transform:uppercase;box-shadow:0 7px 16px rgba(20,103,232,.22)}
.team-avatar-lg{width:58px;height:58px;border-radius:17px;font-size:1.05rem}
.versus-chip{display:inline-grid;place-items:center;min-width:42px;height:42px;padding:0 10px;border:1px solid var(--v41-border);border-radius:50%;background:var(--v41-card);font-weight:900;color:var(--v41-muted)}
.match-picker-meta{padding-top:12px;border-top:1px solid var(--v41-border);font-size:.82rem;color:var(--v41-muted);flex-wrap:wrap}.match-picker-meta span{display:flex;gap:6px;align-items:center}
.match-picker-action{margin-top:15px;color:var(--v41-blue);font-weight:800;text-align:right}
.score-detail-page .match-details>summary{display:none}.score-detail-page .match-card{overflow:visible}
.score-match-hero{display:grid;grid-template-columns:1fr minmax(220px,.8fr) 1fr 210px;align-items:center;gap:20px;padding:20px 22px;background:var(--v41-card);border:1px solid var(--v41-border);border-radius:18px;box-shadow:var(--v41-shadow)}
.score-team{display:flex;align-items:center;gap:13px;min-width:0}.score-team-away{justify-content:flex-end;text-align:right}.score-team strong{display:block;font-size:1.08rem}.score-team small{display:block;color:var(--v41-muted)}
.score-match-center{text-align:center;display:grid;justify-items:center;gap:5px}.score-match-center .versus-chip{margin:4px 0}.score-match-center small{color:var(--v41-muted)}
.score-status-box{align-self:stretch;padding:14px;border-left:1px solid var(--v41-border);display:flex;flex-direction:column;justify-content:center}
.score-progress{display:grid;grid-template-columns:repeat(5,1fr);background:var(--v41-card);border:1px solid var(--v41-border);border-radius:16px;padding:12px;box-shadow:var(--v41-shadow)}
.score-progress-step{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;color:var(--v41-muted);padding:7px}.score-progress-step:not(:last-child):after{content:"";position:absolute;right:-5%;width:10%;height:2px;background:var(--v41-border)}
.score-progress-step span{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;border:2px solid var(--v41-border);font-weight:900;background:var(--v41-card)}.score-progress-step strong{font-size:.83rem}
.score-progress-step.is-done{color:#198754}.score-progress-step.is-done span{background:#198754;border-color:#198754;color:#fff}
.score-detail-page .score-selected-wrapper>.match-card>.match-details>.card-body{padding:18px}
.score-detail-page .score-selected-wrapper .card-body>.row{display:grid;grid-template-columns:minmax(250px,.8fr) minmax(240px,.65fr) minmax(430px,1.55fr);gap:16px}
.score-detail-page .score-selected-wrapper .card-body>.row>[class*="col-"]{width:auto;max-width:none;padding:0}
.score-detail-page .score-header{background:linear-gradient(135deg,var(--v41-blue-soft),var(--v41-card));border:1px solid var(--v41-border)}
@media(max-width:1199.98px){.score-match-hero{grid-template-columns:1fr 180px 1fr}.score-status-box{grid-column:1/-1;border-left:0;border-top:1px solid var(--v41-border);padding:12px 0 0}.score-detail-page .score-selected-wrapper .card-body>.row{grid-template-columns:1fr 1fr}.score-detail-page .score-selected-wrapper .card-body>.row>[class*="col-"]:last-child{grid-column:1/-1}}
@media(max-width:767.98px){.score-match-hero{grid-template-columns:1fr 60px 1fr;padding:16px 12px;gap:8px}.score-match-center .fw-bold,.score-match-center small{grid-column:1/-1}.score-match-center{display:flex;flex-direction:column}.team-avatar-lg{width:45px;height:45px;border-radius:13px}.score-team{flex-direction:column;text-align:center}.score-team-away{flex-direction:column-reverse;text-align:center}.score-team strong{font-size:.9rem}.score-team small{font-size:.72rem}.score-progress{overflow-x:auto;grid-template-columns:repeat(5,minmax(105px,1fr));justify-content:start}.score-detail-page .score-selected-wrapper .card-body>.row{display:block}.score-detail-page .score-selected-wrapper .card-body>.row>[class*="col-"]{margin-bottom:16px}.match-picker-meta{display:grid;grid-template-columns:1fr}.match-picker-versus strong{font-size:.9rem}}

/* V41.2 - Page de saisie conforme à la maquette */
.score-page-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:18px}.score-page-heading h1{margin:0;font-size:clamp(1.55rem,2vw,2.15rem);font-weight:800}.score-page-heading p{margin:.3rem 0 0;color:var(--v41-muted)}
.match-picker-grid{align-items:stretch}.match-card-wrapper{display:flex}.match-picker-card{width:100%;position:relative;overflow:hidden}.match-picker-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:transparent}.match-picker-card:hover:before{background:var(--v41-blue)}
.team-logo-card{width:48px;height:48px;object-fit:contain;flex:0 0 auto;padding:3px;background:#fff;border:1px solid var(--v41-border);border-radius:14px}.team-logo-hero{width:68px;height:68px;object-fit:contain;flex:0 0 auto;padding:5px;background:#fff;border:1px solid var(--v41-border);border-radius:18px;box-shadow:0 8px 20px rgba(18,55,110,.11)}
.score-detail-page{max-width:1500px;margin-inline:auto}.score-detail-page>.alert-info{border-left:4px solid var(--v41-blue);background:var(--v41-blue-soft);color:var(--v41-text)}
.score-match-hero{grid-template-columns:minmax(240px,1fr) minmax(220px,.75fr) minmax(240px,1fr) 190px;background:linear-gradient(135deg,var(--v41-card),color-mix(in srgb,var(--v41-blue-soft) 32%,var(--v41-card)))}
.score-team strong{font-size:1.12rem;line-height:1.25;overflow-wrap:anywhere}.score-team-away strong{overflow-wrap:anywhere}.score-match-center .fw-bold{font-size:.95rem}.score-status-box{background:color-mix(in srgb,var(--v41-blue-soft) 45%,var(--v41-card));border-radius:13px;border-left:0!important}
.score-progress{padding:14px 18px}.score-progress-step{min-height:52px}.score-progress-step strong{font-size:.88rem}.score-progress-step:not(:last-child):after{right:-12%;width:24%}
.score-selected-wrapper>.match-card{background:transparent!important;border:0!important;box-shadow:none!important}.score-selected-wrapper .match-details>.card-body{background:transparent;padding:0!important}
.score-detail-page .score-selected-wrapper .card-body>.row{grid-template-columns:minmax(230px,.72fr) minmax(220px,.62fr) minmax(520px,1.65fr);align-items:start}
.score-info-panel,.score-date-panel,.score-entry-panel{background:var(--v41-card);border:1px solid var(--v41-border);border-radius:17px;padding:18px!important;box-shadow:var(--v41-shadow)}
.score-section-title{display:flex;align-items:center;gap:8px;margin:-2px 0 16px;font-size:.79rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:var(--v41-text)}.score-section-title i{color:var(--v41-blue);font-size:1rem}
.score-info-panel h2{font-size:1.12rem!important;line-height:1.35}.score-info-panel h2 .d-block{padding:4px 0;overflow-wrap:anywhere}.score-date-panel .form-control{min-height:44px}.score-date-panel .btn{width:100%}
.score-entry-panel{padding:18px!important}.score-entry-panel .score-header{padding:13px!important;margin-bottom:12px!important}.score-entry-panel .display-6{font-size:1.75rem;font-weight:800}.score-entry-panel .table-responsive{border:1px solid var(--v41-border);border-radius:14px;overflow:hidden}.score-entry-panel .score-table{margin:0!important}.score-entry-panel .score-table thead th{background:var(--v41-blue-soft);font-size:.74rem;text-transform:uppercase;letter-spacing:.02em;padding:10px}.score-entry-panel .score-table tbody td{padding:8px 9px}.score-entry-panel .score-table .form-select{min-width:86px;height:42px;border-radius:10px;font-weight:800}.score-entry-panel .set-status{white-space:nowrap}
.score-document-panel{background:color-mix(in srgb,var(--v41-blue-soft) 30%,var(--v41-card));border:1px solid var(--v41-border);border-radius:14px;padding:15px}.score-entry-panel .final-submit{border-radius:12px;min-height:50px;font-weight:800}.match-help-box{background:var(--v41-card);border:1px solid #f3b5b5;border-radius:14px;padding:15px}
@media (max-width:1199.98px){.score-match-hero{grid-template-columns:1fr 180px 1fr}.score-detail-page .score-selected-wrapper .card-body>.row{grid-template-columns:1fr 1fr}.score-entry-panel{grid-column:1/-1}.score-status-box{grid-column:1/-1}.team-logo-hero{width:58px;height:58px}}
@media (max-width:767.98px){.score-page-heading{display:block}.score-match-hero{grid-template-columns:1fr 55px 1fr}.team-logo-hero{width:48px;height:48px;border-radius:13px}.score-match-center{min-width:0}.score-match-center small{font-size:.72rem}.score-team strong{font-size:.86rem}.score-progress{display:flex;overflow:auto;gap:8px}.score-progress-step{flex:0 0 118px;border:1px solid var(--v41-border);border-radius:12px}.score-progress-step:after{display:none}.score-detail-page .score-selected-wrapper .card-body>.row{display:grid;grid-template-columns:1fr}.score-info-panel,.score-date-panel,.score-entry-panel{grid-column:auto}.score-entry-panel .score-table .form-select{min-width:68px}.match-picker-versus{display:grid;grid-template-columns:1fr auto 1fr}.match-picker-versus>div:last-child{justify-content:flex-end}.team-logo-card{width:42px;height:42px}}

/* V41.3 - Planification en vignettes et saisie mobile compacte */
.planning-match-card{height:100%;background:var(--v41-card);border:1px solid var(--v41-border);border-radius:18px;padding:18px;box-shadow:var(--v41-shadow)}
.planning-card-head,.planning-versus,.planning-status-row,.planning-actions{display:flex;align-items:center;gap:12px}.planning-card-head{justify-content:space-between}.planning-versus{justify-content:space-between;padding:20px 0}.planning-team{display:flex;align-items:center;gap:11px;min-width:0;flex:1}.planning-team-away{justify-content:flex-end;text-align:right}.planning-team img{width:52px;height:52px;object-fit:contain;background:#fff;border:1px solid var(--v41-border);border-radius:14px;padding:4px}.planning-team strong{display:block;overflow-wrap:anywhere}.planning-team small{display:block;color:var(--v41-muted)}
.planning-status-row{flex-wrap:wrap;padding:12px 0;border-top:1px solid var(--v41-border);border-bottom:1px solid var(--v41-border)}.planning-status-row span{padding:7px 10px;border-radius:10px;background:var(--v41-blue-soft);font-size:.82rem}.planning-status-row .is-ready{background:#e8f7ee;color:#157347}
.planning-date-form{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:10px;padding:15px 0}.planning-date-form label{display:block;font-size:.76rem;font-weight:800;margin-bottom:4px;color:var(--v41-muted)}.planning-actions{flex-wrap:wrap}.planning-actions .btn{flex:1 1 auto}
.print-sheet-page{background:#fff;color:#111;padding:24px;border-radius:12px}.print-sheet-header{text-align:center;border-bottom:2px solid #111;padding-bottom:14px}.print-sheet-header h1{margin:0}.print-lineups{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px}.print-lineups section{border:1px solid #bbb;padding:18px}.print-signatures{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:28px}.print-signatures div{height:110px;border:1px solid #999;padding:10px}
@media(max-width:767.98px){.planning-versus{display:grid;grid-template-columns:1fr auto 1fr}.planning-team{flex-direction:column;text-align:center}.planning-team-away{flex-direction:column-reverse;text-align:center}.planning-date-form{grid-template-columns:1fr}.planning-actions{display:grid;grid-template-columns:1fr}.score-entry-panel .table-responsive{overflow-x:hidden!important}.score-entry-panel .score-table{table-layout:fixed;width:100%;min-width:0!important}.score-entry-panel .score-table th:first-child,.score-entry-panel .score-table td:first-child{width:38px}.score-entry-panel .score-table th:last-child,.score-entry-panel .score-table td:last-child{width:62px}.score-entry-panel .score-table .form-select{width:100%;min-width:0!important;height:38px;padding:.25rem .35rem;background-position:right .25rem center;background-size:10px 8px}.score-entry-panel .score-table thead th{font-size:.6rem;padding:7px 3px;overflow:hidden;text-overflow:ellipsis}.score-entry-panel .score-table tbody td{padding:6px 3px}.score-entry-panel .set-status{font-size:.62rem;padding:4px}.set-message{display:none}.print-lineups{grid-template-columns:1fr}.print-signatures{grid-template-columns:1fr}}
@media print{.print-sheet-page{padding:0}.print-sheet-page .d-print-none{display:none!important}}

/* V41.4 - Logo du menu latéral plus lisible */
.sidebar-brand{height:104px;padding:14px 16px}
.sidebar-brand img{width:66px;height:66px}
.sidebar-brand strong{font-size:1.24rem}
.sidebar-brand small{font-size:.84rem}
@media(max-width:991.98px){.sidebar-brand{height:92px}.sidebar-brand img{width:58px;height:58px}}

/* V41.5.4 - Logo principal renforcé et progression 4 étapes */
.sidebar-brand{height:132px;padding:16px 14px}
.sidebar-brand img{width:92px;height:92px;max-width:92px;object-fit:contain}
.sidebar-brand strong{font-size:1.32rem}
.sidebar-brand small{font-size:.86rem}
.score-progress.score-progress-four{grid-template-columns:repeat(4,1fr)}
@media(max-width:991.98px){.sidebar-brand{height:108px}.sidebar-brand img{width:74px;height:74px;max-width:74px}}
@media(max-width:767.98px){.score-progress.score-progress-four .score-progress-step{flex-basis:132px}}

/* V41.5.7 - Poules favorites Calendrier / Classements */
.ranking-card { position: relative; }
.favorite-star-form { position: absolute; top: .75rem; right: .75rem; z-index: 4; }
.favorite-star-form .btn { width: 2.25rem; height: 2.25rem; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; }
.favorite-poule-section { padding: 1rem; border: 2px solid rgba(255,193,7,.55); border-radius: 1rem; background: rgba(255,193,7,.06); }
.favorite-poule-card { box-shadow: 0 10px 28px rgba(255,193,7,.16); }
[data-bs-theme="dark"] .favorite-poule-section { background: rgba(255,193,7,.08); }


/* V41.7.0 - Lisibilite complete du mode sombre */
[data-theme="dark"],[data-bs-theme="dark"]{
  color-scheme:dark;
  --bs-body-bg:#0d1526;--bs-body-color:#edf3ff;--bs-border-color:#34445f;
  --bs-secondary-color:#b7c3d8;--bs-tertiary-bg:#17243a;--bs-secondary-bg:#152137;
}
[data-theme="dark"] body.v41-ui,[data-bs-theme="dark"] body.v41-ui{background:#0d1526!important;color:#edf3ff!important}
[data-theme="dark"] .v41-ui .card,[data-bs-theme="dark"] .v41-ui .card,
[data-theme="dark"] .v41-ui .modal-content,[data-bs-theme="dark"] .v41-ui .modal-content,
[data-theme="dark"] .v41-ui .dropdown-menu,[data-bs-theme="dark"] .v41-ui .dropdown-menu,
[data-theme="dark"] .v41-ui .list-group-item,[data-bs-theme="dark"] .v41-ui .list-group-item,
[data-theme="dark"] .v41-ui .accordion-item,[data-bs-theme="dark"] .v41-ui .accordion-item{background:#131f35!important;color:#edf3ff!important;border-color:#34445f!important}
[data-theme="dark"] .v41-ui .card-header,[data-bs-theme="dark"] .v41-ui .card-header,
[data-theme="dark"] .v41-ui .accordion-button,[data-bs-theme="dark"] .v41-ui .accordion-button{background:#192943!important;color:#fff!important;border-color:#34445f!important}
[data-theme="dark"] .v41-ui .accordion-button:not(.collapsed),[data-bs-theme="dark"] .v41-ui .accordion-button:not(.collapsed){background:#1b3765!important;color:#fff!important}
[data-theme="dark"] .v41-ui .form-control,[data-theme="dark"] .v41-ui .form-select,[data-theme="dark"] .v41-ui .form-check-input,
[data-bs-theme="dark"] .v41-ui .form-control,[data-bs-theme="dark"] .v41-ui .form-select,[data-bs-theme="dark"] .v41-ui .form-check-input{background-color:#0f1b2f!important;color:#edf3ff!important;border-color:#40516d!important}
[data-theme="dark"] .v41-ui .form-control::placeholder,[data-bs-theme="dark"] .v41-ui .form-control::placeholder{color:#8fa0ba!important;opacity:1}
[data-theme="dark"] .v41-ui .form-control:disabled,[data-theme="dark"] .v41-ui .form-select:disabled,
[data-bs-theme="dark"] .v41-ui .form-control:disabled,[data-bs-theme="dark"] .v41-ui .form-select:disabled{background:#26344a!important;color:#c1ccdc!important;opacity:1}
[data-theme="dark"] .v41-ui .table,[data-bs-theme="dark"] .v41-ui .table{--bs-table-color:#edf3ff;--bs-table-bg:#131f35;--bs-table-striped-bg:#18263d;--bs-table-striped-color:#edf3ff;--bs-table-hover-bg:#203454;--bs-table-hover-color:#fff;--bs-table-border-color:#34445f}
[data-theme="dark"] .v41-ui .table thead th,[data-bs-theme="dark"] .v41-ui .table thead th{background:#1b3152!important;color:#fff!important}
[data-theme="dark"] .v41-ui .table-responsive,[data-bs-theme="dark"] .v41-ui .table-responsive{background:#131f35!important;border-color:#34445f!important}
[data-theme="dark"] .v41-ui .text-dark,[data-bs-theme="dark"] .v41-ui .text-dark{color:#edf3ff!important}
[data-theme="dark"] .v41-ui .bg-white,[data-bs-theme="dark"] .v41-ui .bg-white,
[data-theme="dark"] .v41-ui .bg-light,[data-bs-theme="dark"] .v41-ui .bg-light{background:#18263d!important;color:#edf3ff!important}
[data-theme="dark"] .v41-ui .border,[data-bs-theme="dark"] .v41-ui .border,
[data-theme="dark"] .v41-ui .border-bottom,[data-bs-theme="dark"] .v41-ui .border-bottom,
[data-theme="dark"] .v41-ui .border-top,[data-bs-theme="dark"] .v41-ui .border-top{border-color:#34445f!important}
[data-theme="dark"] .v41-ui .alert-info,[data-bs-theme="dark"] .v41-ui .alert-info{background:#173b5c!important;color:#d9efff!important;border-color:#2a6593!important}
[data-theme="dark"] .v41-ui .alert-warning,[data-bs-theme="dark"] .v41-ui .alert-warning{background:#4b3512!important;color:#fff0bf!important;border-color:#82611f!important}
[data-theme="dark"] .v41-ui .alert-success,[data-bs-theme="dark"] .v41-ui .alert-success{background:#143d2b!important;color:#d7ffe9!important;border-color:#287653!important}
[data-theme="dark"] .v41-ui .alert-danger,[data-bs-theme="dark"] .v41-ui .alert-danger{background:#4b2028!important;color:#ffe1e5!important;border-color:#8b3948!important}
[data-theme="dark"] .v41-ui .btn-outline-secondary,[data-bs-theme="dark"] .v41-ui .btn-outline-secondary{color:#dbe5f5;border-color:#71809a}
[data-theme="dark"] .v41-ui .btn-outline-secondary:hover,[data-bs-theme="dark"] .v41-ui .btn-outline-secondary:hover{background:#71809a;color:#081120}
[data-theme="dark"] .v41-ui a:not(.btn):not(.sidebar-link):not(.topbar-icon),[data-bs-theme="dark"] .v41-ui a:not(.btn):not(.sidebar-link):not(.topbar-icon){color:#7eb3ff}
[data-theme="dark"] .v41-ui .dropdown-item,[data-bs-theme="dark"] .v41-ui .dropdown-item{color:#edf3ff}
[data-theme="dark"] .v41-ui .dropdown-item:hover,[data-bs-theme="dark"] .v41-ui .dropdown-item:hover{background:#203454;color:#fff}
[data-theme="dark"] .v41-ui .modal-header,[data-theme="dark"] .v41-ui .modal-footer,[data-bs-theme="dark"] .v41-ui .modal-header,[data-bs-theme="dark"] .v41-ui .modal-footer{border-color:#34445f}

/* ========================================================================== */
/* V41.7.4 Dynamic Sport UI - refonte globale                                */
/* ========================================================================== */
:root{
  --sport-bg:#f5f7fc;
  --sport-surface:#ffffff;
  --sport-surface-2:#f8faff;
  --sport-text:#10182a;
  --sport-muted:#68748b;
  --sport-border:#e2e8f2;
  --sport-primary:#246bfe;
  --sport-primary-2:#6747ff;
  --sport-pink:#ee2c78;
  --sport-cyan:#18b7e8;
  --sport-green:#16a36a;
  --sport-orange:#ff8a24;
  --sport-sidebar:#071327;
  --sport-sidebar-2:#0a1c39;
  --sport-shadow:0 14px 42px rgba(28,43,77,.09);
  --sport-shadow-hover:0 22px 54px rgba(28,43,77,.16);
}
[data-bs-theme="dark"]{
  --sport-bg:#060d1c;
  --sport-surface:#0d182b;
  --sport-surface-2:#111f35;
  --sport-text:#f4f7ff;
  --sport-muted:#aab7cb;
  --sport-border:#223450;
  --sport-primary:#4384ff;
  --sport-primary-2:#795fff;
  --sport-pink:#ff3d86;
  --sport-cyan:#27c5f1;
  --sport-green:#20c982;
  --sport-orange:#ff9f43;
  --sport-sidebar:#030817;
  --sport-sidebar-2:#071327;
  --sport-shadow:0 16px 42px rgba(0,0,0,.34);
  --sport-shadow-hover:0 24px 60px rgba(0,0,0,.48);
  color-scheme:dark;
}
html[data-bs-theme="dark"] body.v41-ui,body.v41-ui{background:var(--sport-bg)!important;color:var(--sport-text)!important}
body.v41-ui{font-size:.96rem;background-image:radial-gradient(circle at 84% 5%,rgba(103,71,255,.06),transparent 25%),radial-gradient(circle at 22% 95%,rgba(36,107,254,.05),transparent 28%)}
.app-sidebar{background:linear-gradient(180deg,var(--sport-sidebar) 0%,var(--sport-sidebar-2) 55%,#040b19 100%)!important;border-right:1px solid rgba(123,151,203,.12);box-shadow:10px 0 34px rgba(0,0,0,.22)}
.sidebar-brand{height:138px!important;padding:18px 17px!important;background:radial-gradient(circle at 30% 20%,rgba(67,132,255,.14),transparent 48%)}
.sidebar-brand>a{gap:13px}.sidebar-brand img{width:96px!important;height:96px!important;max-width:96px!important;filter:drop-shadow(0 10px 20px rgba(0,0,0,.28))}.sidebar-brand strong{font-size:1.35rem!important}.sidebar-brand small{font-size:.88rem!important;color:#ffd21c!important}
.sidebar-section-label{color:#677b9e!important;font-size:.65rem!important}.sidebar-link{min-height:45px;border:1px solid transparent;color:#c0cee3!important}.sidebar-link i{color:#8da8cf!important}.sidebar-link:hover{background:linear-gradient(90deg,rgba(48,104,255,.16),rgba(118,67,255,.08))!important;border-color:rgba(78,130,255,.18);transform:translateX(3px)}.sidebar-link.active{background:linear-gradient(100deg,#216cff,#6548ff)!important;box-shadow:0 10px 26px rgba(40,92,255,.28)!important;border-color:rgba(255,255,255,.12)!important}.sidebar-link.active i{color:#fff!important}
.sidebar-footer{background:rgba(0,0,0,.08)}
.app-topbar{background:color-mix(in srgb,var(--sport-surface) 88%,transparent)!important;border-bottom-color:var(--sport-border)!important;box-shadow:0 6px 30px rgba(0,0,0,.03)}
.topbar-icon,.topbar-help{background:var(--sport-surface)!important;color:var(--sport-text)!important;border-color:var(--sport-border)!important}.topbar-icon:hover,.topbar-help:hover{background:var(--sport-surface-2)!important;border-color:var(--sport-primary)!important;color:var(--sport-primary)!important}
.topbar-title strong{color:var(--sport-text)}.topbar-title small{color:var(--sport-muted)!important}
.app-main{padding-top:22px}.content-container{max-width:1540px}

/* Composants globaux */
.v41-ui .card,.v41-ui .modal-content,.v41-ui .accordion-item,.v41-ui .list-group-item,.v41-ui .dropdown-menu,.v41-ui .offcanvas{background:var(--sport-surface)!important;color:var(--sport-text)!important;border-color:var(--sport-border)!important}
.v41-ui .card,.v41-ui .modal-content{box-shadow:var(--sport-shadow);border-radius:18px!important}
.v41-ui .card-header,.v41-ui .modal-header,.v41-ui .modal-footer,.v41-ui .accordion-button{background:var(--sport-surface-2)!important;color:var(--sport-text)!important;border-color:var(--sport-border)!important}
.v41-ui .accordion-button:not(.collapsed){background:linear-gradient(90deg,color-mix(in srgb,var(--sport-primary) 12%,var(--sport-surface)),var(--sport-surface-2))!important;color:var(--sport-primary)!important;box-shadow:none}
.v41-ui .text-muted,.v41-ui .form-text,.v41-ui small.text-secondary{color:var(--sport-muted)!important}
.v41-ui h1,.v41-ui h2,.v41-ui h3,.v41-ui h4,.v41-ui h5,.v41-ui h6,.v41-ui strong{color:inherit}
.v41-ui h1{font-weight:800;letter-spacing:-.035em}.v41-ui .eyebrow{color:var(--sport-primary)!important}
.v41-ui .form-control,.v41-ui .form-select,.v41-ui .form-check-input,.v41-ui .input-group-text{background-color:var(--sport-surface-2)!important;color:var(--sport-text)!important;border-color:var(--sport-border)!important}
.v41-ui .form-control::placeholder{color:color-mix(in srgb,var(--sport-muted) 76%,transparent)}.v41-ui .form-control:disabled,.v41-ui .form-select:disabled{opacity:.75;background:color-mix(in srgb,var(--sport-surface-2) 76%,var(--sport-border))!important;color:var(--sport-muted)!important}
.v41-ui .table-responsive{background:var(--sport-surface)!important;border-color:var(--sport-border)!important;box-shadow:var(--sport-shadow)!important;padding:0!important}.v41-ui .table{--bs-table-bg:transparent!important;--bs-table-color:var(--sport-text)!important;--bs-table-striped-bg:color-mix(in srgb,var(--sport-surface-2) 70%,transparent)!important;--bs-table-striped-color:var(--sport-text)!important;--bs-table-hover-bg:color-mix(in srgb,var(--sport-primary) 8%,var(--sport-surface))!important;--bs-table-hover-color:var(--sport-text)!important;--bs-table-border-color:var(--sport-border)!important}.v41-ui .table thead th{background:var(--sport-surface-2)!important;color:var(--sport-muted)!important}
.v41-ui .bg-light,.v41-ui .bg-white{background-color:var(--sport-surface-2)!important}.v41-ui .text-dark{color:var(--sport-text)!important}.v41-ui .border,.v41-ui .border-top,.v41-ui .border-bottom,.v41-ui .border-start,.v41-ui .border-end{border-color:var(--sport-border)!important}
.v41-ui .btn{border-radius:11px;font-weight:750;letter-spacing:-.01em}.v41-ui .btn-primary{background:linear-gradient(110deg,var(--sport-primary),var(--sport-primary-2))!important;border:0!important;box-shadow:0 8px 20px rgba(49,99,255,.22)}.v41-ui .btn-primary:hover{filter:brightness(1.08);transform:translateY(-1px)}.v41-ui .btn-outline-primary{border-color:color-mix(in srgb,var(--sport-primary) 72%,var(--sport-border))!important;color:var(--sport-primary)!important}.v41-ui .btn-outline-primary:hover{background:var(--sport-primary)!important;color:#fff!important}.v41-ui .btn-outline-secondary{color:var(--sport-muted)!important;border-color:var(--sport-border)!important}.v41-ui .btn-outline-secondary:hover{color:var(--sport-text)!important;background:var(--sport-surface-2)!important}
.v41-ui .alert{border:1px solid transparent!important;box-shadow:none}.v41-ui .alert-info{background:color-mix(in srgb,var(--sport-cyan) 11%,var(--sport-surface))!important;color:var(--sport-text)!important;border-color:color-mix(in srgb,var(--sport-cyan) 26%,var(--sport-border))!important}.v41-ui .alert-warning{background:color-mix(in srgb,var(--sport-orange) 12%,var(--sport-surface))!important;color:var(--sport-text)!important;border-color:color-mix(in srgb,var(--sport-orange) 28%,var(--sport-border))!important}.v41-ui .alert-success{background:color-mix(in srgb,var(--sport-green) 10%,var(--sport-surface))!important;color:var(--sport-text)!important;border-color:color-mix(in srgb,var(--sport-green) 28%,var(--sport-border))!important}.v41-ui .alert-danger{background:color-mix(in srgb,#ef476f 11%,var(--sport-surface))!important;color:var(--sport-text)!important;border-color:color-mix(in srgb,#ef476f 30%,var(--sport-border))!important}

/* Vignettes unifiées sur tous les espaces */
.v41-ui :is(.ranking-card,.team-card,.club-card,.match-picker-card,.admin-tile,.notification-action-card,.signature-card,.dynamic-card){background:var(--sport-surface)!important;color:var(--sport-text)!important;border:1px solid var(--sport-border)!important;box-shadow:var(--sport-shadow)!important;border-radius:18px!important;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.v41-ui :is(.ranking-card,.team-card,.club-card,.match-picker-card,.admin-tile):hover{transform:translateY(-4px)!important;box-shadow:var(--sport-shadow-hover)!important;border-color:color-mix(in srgb,var(--sport-primary) 48%,var(--sport-border))!important}
.v41-ui .ranking-card-link,.v41-ui .club-card-link,.v41-ui .team-ranking-link{color:var(--sport-text)!important}.v41-ui .ranking-title{color:var(--sport-text)!important;border-color:var(--sport-border)!important}.v41-ui .ranking-title:before{background:linear-gradient(var(--sport-primary),var(--sport-primary-2))!important;border-radius:99px}
.v41-ui .match-preview-item{border-color:var(--sport-border)!important}.v41-ui .team-logo-card,.v41-ui .team-logo-sm,.v41-ui .team-logo-lg,.v41-ui .club-logo-thumb,.v41-ui .club-logo-detail,.v41-ui .poule-logo-card{background:#fff!important;border-color:rgba(255,255,255,.16)!important;box-shadow:0 7px 18px rgba(0,0,0,.08)}
.v41-ui .admin-tile-icon{box-shadow:0 12px 28px rgba(0,0,0,.18)}.v41-ui .admin-tile-copy small{color:var(--sport-muted)!important}

/* Hero accueil */
.sport-hero{position:relative;min-height:390px;border-radius:24px;padding:42px 42px 112px;overflow:hidden;background:linear-gradient(115deg,#081c43 0%,#0c2556 40%,#221250 74%,#511047 100%);color:#fff;box-shadow:0 24px 70px rgba(10,24,62,.28)}
.sport-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,10,29,.7),rgba(3,10,29,.14) 66%,rgba(3,10,29,.1));pointer-events:none}.sport-hero-glow{position:absolute;border-radius:50%;filter:blur(2px);opacity:.55}.sport-hero-glow-a{width:420px;height:420px;right:9%;top:-180px;background:radial-gradient(circle,#244dff 0%,rgba(36,77,255,0) 70%)}.sport-hero-glow-b{width:380px;height:380px;right:-110px;bottom:-180px;background:radial-gradient(circle,#f12686 0%,rgba(241,38,134,0) 70%)}.sport-hero-copy{position:relative;z-index:2;max-width:710px}.sport-kicker{display:inline-flex;align-items:center;gap:7px;color:#8bbcff;text-transform:uppercase;font-weight:800;letter-spacing:.1em;font-size:.75rem}.sport-hero h1{font-size:clamp(2.25rem,5vw,4.7rem);line-height:.94;margin:.72rem 0 1.2rem;color:#fff!important;max-width:820px}.sport-hero h1 span{color:#ff3f89}.sport-hero p{max-width:720px;color:#ced9ec;font-size:1.04rem;line-height:1.7}.btn-glass{border:1px solid rgba(255,255,255,.24)!important;background:rgba(255,255,255,.08)!important;color:#fff!important;backdrop-filter:blur(10px)}.btn-glass:hover{background:rgba(255,255,255,.16)!important;color:#fff!important}
.sport-hero-art{position:absolute;right:3%;top:11%;width:340px;height:280px;z-index:1}.volley-orbit{position:absolute;width:260px;height:260px;border:1px solid rgba(255,255,255,.14);border-radius:50%;right:10px;top:6px;box-shadow:0 0 70px rgba(108,65,255,.18) inset}.volley-ball{position:absolute;right:93px;top:62px;font-size:6.8rem;filter:drop-shadow(0 24px 22px rgba(0,0,0,.34));transform:rotate(-16deg)}.hero-lines{position:absolute;inset:0;background:repeating-linear-gradient(105deg,transparent 0 38px,rgba(255,255,255,.028) 39px 40px);mask-image:linear-gradient(to left,#000,transparent 90%)}
.sport-stats{position:absolute;left:28px;right:28px;bottom:24px;z-index:3;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.sport-stats>div{display:grid;grid-template-columns:48px auto;grid-template-rows:auto auto;column-gap:12px;align-items:center;padding:13px 16px;border:1px solid rgba(255,255,255,.12);border-radius:15px;background:rgba(8,19,46,.62);backdrop-filter:blur(12px)}.stat-icon{grid-row:1/3;width:46px;height:46px;border-radius:12px;display:grid;place-items:center;font-size:1.2rem;color:#fff}.stat-blue{background:linear-gradient(135deg,#1c75ff,#3d9cff)}.stat-purple{background:linear-gradient(135deg,#6f3dff,#a440ff)}.stat-green{background:linear-gradient(135deg,#0f9f65,#26c77d)}.stat-orange{background:linear-gradient(135deg,#f4771c,#ffad2f)}.sport-stats strong{font-size:1.35rem;color:#fff!important;line-height:1}.sport-stats small{color:#9eabc1;text-transform:uppercase;font-size:.66rem;letter-spacing:.06em;font-weight:700;margin-top:4px}

/* Accueil dynamique */
.home-live-grid{display:grid;grid-template-columns:1.2fr 1.2fr .9fr;gap:16px}.live-panel,.dynamic-card{background:var(--sport-surface);border:1px solid var(--sport-border);border-radius:19px;box-shadow:var(--sport-shadow);overflow:hidden}.live-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 17px;border-bottom:1px solid var(--sport-border)}.live-panel-head>div{display:flex;align-items:center;gap:10px}.live-panel-head strong{font-family:Montserrat,sans-serif;font-size:.9rem;text-transform:uppercase;letter-spacing:.025em}.live-panel-head a{font-size:.77rem;font-weight:700;text-decoration:none;color:var(--sport-muted)}.live-panel-head a:hover{color:var(--sport-primary)}.panel-icon{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;color:#fff}.panel-blue{background:linear-gradient(135deg,#2274ff,#33a3ff)}.panel-purple{background:linear-gradient(135deg,#7645ff,#aa43f3)}.panel-orange{background:linear-gradient(135deg,#f46f20,#ffb02d)}.panel-pink{background:linear-gradient(135deg,#e92f72,#ff4d9c)}.panel-green{background:linear-gradient(135deg,#149c65,#28c982)}.live-filter{display:flex;align-items:center;gap:9px;padding:10px 16px;background:var(--sport-surface-2);border-bottom:1px solid var(--sport-border)}.live-filter label{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;font-weight:800;color:var(--sport-muted);margin:0}.live-filter .form-select{margin-left:auto;max-width:260px;min-height:34px!important;font-size:.78rem;padding-top:.25rem;padding-bottom:.25rem}.live-panel-body{min-height:300px}.live-match{display:grid;grid-template-columns:58px 1fr 58px;gap:10px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--sport-border);transition:.18s ease}.live-match:last-child{border-bottom:0}.live-match:hover{background:var(--sport-surface-2)}.live-date{text-align:center}.live-date strong{display:block;color:var(--sport-text);font-size:.75rem;text-transform:uppercase}.live-date small{display:block;color:var(--sport-muted);font-size:.68rem;margin-top:3px}.live-teams{display:grid;gap:8px}.live-team{display:grid;grid-template-columns:30px 1fr auto;gap:8px;align-items:center}.live-team img,.live-team-placeholder{width:30px;height:30px;object-fit:contain;border-radius:7px;background:#fff;padding:2px}.live-team-placeholder{display:grid;place-items:center;font-size:.66rem;font-weight:900;color:#10234a}.live-team span{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-score{font-family:Montserrat,sans-serif;font-weight:800;font-size:1rem}.live-meta{text-align:right;color:var(--sport-muted);font-size:.68rem;white-space:nowrap}.live-ranking-row{display:grid;grid-template-columns:28px 1fr 40px 34px;align-items:center;gap:8px;padding:11px 16px;border-bottom:1px solid var(--sport-border)}.live-ranking-row:first-child{background:linear-gradient(90deg,color-mix(in srgb,var(--sport-orange) 10%,transparent),transparent)}.live-ranking-row:last-child{border-bottom:0}.live-ranking-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.84rem}.live-rank{width:24px;height:24px;border-radius:7px;background:var(--sport-surface-2);display:grid;place-items:center;color:var(--sport-muted);font-size:.72rem;font-weight:900}.live-ranking-row:first-child .live-rank{background:var(--sport-orange);color:#fff}.live-points{text-align:right;font-weight:900}.live-played{text-align:right;font-size:.68rem;color:var(--sport-muted)}.empty-live{padding:44px 20px;text-align:center;color:var(--sport-muted)}
.home-secondary-grid{display:grid;grid-template-columns:1.45fr .75fr;gap:16px}.news-modern-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:10px;padding:14px}.news-modern-card{display:flex;flex-direction:column;min-height:126px;padding:15px;border-radius:14px;background:var(--sport-surface-2);border:1px solid var(--sport-border);color:var(--sport-text);text-decoration:none}.news-modern-card:hover{border-color:color-mix(in srgb,var(--sport-primary) 45%,var(--sport-border));transform:translateY(-2px)}.news-modern-card.news-featured{grid-row:span 2;background:linear-gradient(145deg,color-mix(in srgb,var(--sport-primary) 10%,var(--sport-surface)),color-mix(in srgb,var(--sport-primary-2) 8%,var(--sport-surface)))}.news-date{color:var(--sport-pink);font-size:.68rem;font-weight:800;text-transform:uppercase}.news-modern-card strong{font-size:.98rem;margin:.35rem 0}.news-modern-card p{font-size:.8rem;color:var(--sport-muted);margin-bottom:.5rem}.news-modern-card>span:last-child{margin-top:auto;color:var(--sport-primary);font-size:.75rem;font-weight:800}.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:14px}.quick-grid a{min-height:92px;padding:13px;border-radius:14px;background:var(--sport-surface-2);border:1px solid var(--sport-border);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;text-decoration:none;color:var(--sport-text);font-weight:750;font-size:.78rem;text-align:center}.quick-grid a i{font-size:1.45rem;color:var(--sport-primary)}.quick-grid a:nth-child(2n) i{color:var(--sport-primary-2)}.quick-grid a:nth-child(3n) i{color:var(--sport-green)}.quick-grid a:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--sport-primary) 42%,var(--sport-border));box-shadow:var(--sport-shadow)}
.modern-seo-block{padding:24px 28px;border-radius:18px;background:linear-gradient(115deg,var(--sport-surface),color-mix(in srgb,var(--sport-primary) 7%,var(--sport-surface)));border:1px solid var(--sport-border);box-shadow:var(--sport-shadow)}.modern-seo-block h2{font-size:1.35rem;margin:.4rem 0}.modern-seo-block p{color:var(--sport-muted);margin:0;max-width:1050px}

/* Lisibilité du mode sombre : écrase les héritages historiques trop clairs */
[data-bs-theme="dark"] .v41-ui :is(.score-header,.set-row,.review-choice,.sheet-preview-link,.opponent-validation-summary,.report-history-item,.legal-page section,.legal-intro,.admin-tile,.recipient-box,fieldset,.role-section,.page-heading){background:var(--sport-surface)!important;color:var(--sport-text)!important;border-color:var(--sport-border)!important}
[data-bs-theme="dark"] .v41-ui :is(.score-header,.set-row.set-valid,.set-row.set-invalid,.set-row.set-disabled){color:var(--sport-text)!important}
[data-bs-theme="dark"] .v41-ui .set-row.set-valid{background:color-mix(in srgb,var(--sport-green) 10%,var(--sport-surface))!important}[data-bs-theme="dark"] .v41-ui .set-row.set-invalid{background:color-mix(in srgb,#ef476f 10%,var(--sport-surface))!important}[data-bs-theme="dark"] .v41-ui .set-row.set-disabled{background:var(--sport-surface-2)!important;opacity:.7}
[data-bs-theme="dark"] .v41-ui :is(.badge.text-bg-light,.badge.bg-light){background:var(--sport-surface-2)!important;color:var(--sport-text)!important;border:1px solid var(--sport-border)!important}
[data-bs-theme="dark"] .v41-ui .btn-light{background:var(--sport-surface-2)!important;color:var(--sport-text)!important;border-color:var(--sport-border)!important}
[data-bs-theme="dark"] .v41-ui a:not(.btn):not(.sidebar-link):not(.club-card-link):not(.ranking-card-link){color:#72a4ff}.site-footer{background:#040b19!important}

@media(max-width:1250px){.home-live-grid{grid-template-columns:1fr 1fr}.live-panel-ranking{grid-column:1/-1}.live-panel-ranking .live-panel-body{display:grid;grid-template-columns:repeat(2,1fr)}.live-panel-ranking .live-ranking-row:nth-child(odd){border-right:1px solid var(--sport-border)}}
@media(max-width:991.98px){.sidebar-brand{height:112px!important}.sidebar-brand img{width:78px!important;height:78px!important}.sport-hero{padding:34px 28px 118px}.sport-hero-art{opacity:.55;right:-90px}.home-secondary-grid{grid-template-columns:1fr}.sport-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:767.98px){.home-live-grid{grid-template-columns:1fr}.live-panel-ranking{grid-column:auto}.live-panel-ranking .live-panel-body{display:block}.live-panel-ranking .live-ranking-row:nth-child(odd){border-right:0}.sport-hero{min-height:480px;padding:28px 20px 220px}.sport-hero h1{font-size:2.55rem}.sport-hero-art{right:-85px;top:95px;opacity:.42;transform:scale(.8)}.sport-stats{left:14px;right:14px;bottom:14px}.sport-stats>div{padding:10px}.stat-icon{width:38px;height:38px}.sport-stats strong{font-size:1.08rem}.news-modern-grid{grid-template-columns:1fr}.news-modern-card.news-featured{grid-row:auto}.live-match{grid-template-columns:52px 1fr 48px;padding:12px}.live-filter{align-items:flex-start;flex-direction:column}.live-filter .form-select{max-width:none;width:100%}}
@media(max-width:480px){.sport-hero{min-height:525px}.sport-stats{grid-template-columns:1fr 1fr}.sport-stats>div{grid-template-columns:34px auto;column-gap:8px}.stat-icon{width:32px;height:32px;border-radius:9px}.sport-stats small{font-size:.58rem}.quick-grid{grid-template-columns:1fr 1fr}.live-match{grid-template-columns:46px 1fr}.live-meta{display:none}.live-team{grid-template-columns:27px 1fr auto}.live-team img,.live-team-placeholder{width:27px;height:27px}}

/* V41.7.6 - filtres Catégorie > Poule */
.home-cascade-filter{display:grid!important;grid-template-columns:1fr 1fr;gap:.6rem;align-items:end}.home-cascade-filter>div{min-width:0}.home-cascade-filter label{display:block;margin-bottom:.25rem}@media(max-width:575.98px){.home-cascade-filter{grid-template-columns:1fr}}

/* V41.7.7 - accueil hero responsive + gestion joueurs mobile */
.sport-hero-home{position:relative;overflow:hidden;isolation:isolate}
.sport-hero-home:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(7,19,51,.96) 0%,rgba(10,29,76,.88) 50%,rgba(27,40,94,.64) 100%),url('../icons/icon-512.png') right 7% center/390px auto no-repeat;opacity:.95}
.sport-hero-home:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(120deg,transparent 35%,rgba(96,76,255,.12),rgba(0,174,255,.08));pointer-events:none}
.sport-hero-lead{max-width:720px!important}.sport-hero-subcopy{max-width:650px!important;margin-top:-.35rem!important;font-size:.9rem!important;color:rgba(235,242,255,.74)!important}
.sport-hero-copy .d-flex{position:relative;z-index:3;max-width:100%}.sport-hero-copy .btn{white-space:normal;max-width:100%}

.player-manager-card{overflow:visible!important}.player-add-card{padding:18px;border:1px solid var(--sport-border);border-radius:16px;background:var(--sport-surface-2)}
.player-add-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px;align-items:end}.player-add-grid>div{grid-column:span 2;min-width:0}.player-add-grid .player-position-field{grid-column:span 3}.player-add-grid .player-add-action{grid-column:span 3}
.player-add-grid .form-label,.player-edit-card .form-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.045em;font-weight:800;color:var(--sport-muted);margin-bottom:.35rem}.player-add-grid .dropdown-menu{max-height:280px;overflow:auto}
.player-cards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.player-edit-card{min-width:0;padding:16px;border-radius:17px;border:1px solid var(--sport-border);background:var(--sport-surface-2);box-shadow:0 8px 25px rgba(0,0,0,.05)}
.player-card-head{display:grid;grid-template-columns:44px minmax(0,1fr);gap:10px;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--sport-border)}.player-avatar{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(135deg,var(--sport-primary),var(--sport-primary-2));color:#fff;font-size:1.25rem}.player-card-head strong,.player-card-head small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-card-head small{font-size:.7rem;color:var(--sport-muted);margin-top:2px}
.player-card-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.player-card-fields>div{min-width:0}.player-license-field{grid-column:1/-1}.player-position-options{display:grid;grid-template-columns:1fr 1fr;gap:6px 10px}.player-position-options .form-check{margin:0;min-width:0}.player-position-options .form-check-label{font-size:.78rem;overflow-wrap:anywhere}.player-positions-box{margin-top:12px;padding:11px;border-radius:12px;background:color-mix(in srgb,var(--sport-surface) 75%,transparent);border:1px solid var(--sport-border)}.player-empty{grid-column:1/-1;border:1px dashed var(--sport-border);border-radius:16px}

@media(max-width:1199.98px){.player-cards-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.player-add-grid>div{grid-column:span 4}.player-add-grid .player-position-field{grid-column:span 6}.player-add-grid .player-add-action{grid-column:span 6}}
@media(max-width:767.98px){
  .sport-hero-home{min-height:auto!important;padding:26px 18px 18px!important;margin-bottom:16px!important}.sport-hero-home:before{background:linear-gradient(180deg,rgba(7,19,51,.96),rgba(10,29,76,.91)),url('../icons/icon-512.png') right -70px top 70px/260px auto no-repeat}.sport-hero-home .sport-hero-art{display:none!important}.sport-hero-home .sport-stats{position:relative!important;left:auto!important;right:auto!important;bottom:auto!important;margin-top:20px!important;z-index:2}.sport-hero-home .sport-hero-copy{max-width:100%!important}.sport-hero-home .sport-hero-copy .d-flex{display:grid!important;grid-template-columns:1fr 1fr;width:100%;gap:8px!important}.sport-hero-home .sport-hero-copy .btn{width:100%;padding:.7rem .55rem;font-size:.86rem}.sport-hero-home h1{font-size:2.15rem!important;line-height:1.03}.sport-hero-subcopy{display:none}
  .player-manager-card{padding:16px!important}.player-add-card{padding:14px}.player-add-grid{grid-template-columns:1fr 1fr;gap:10px}.player-add-grid>div,.player-add-grid .player-position-field,.player-add-grid .player-add-action{grid-column:auto}.player-add-grid .player-position-field,.player-add-grid .player-add-action{grid-column:1/-1}.player-cards-grid{grid-template-columns:1fr}.player-edit-card{padding:14px}.player-card-fields{grid-template-columns:1fr 1fr}.player-position-options{grid-template-columns:1fr 1fr}.player-add-grid .form-control,.player-edit-card .form-control,.player-add-grid .btn,.player-edit-card .btn{min-height:44px;font-size:16px}.player-position-options .form-check-label{font-size:.82rem}
}
@media(max-width:420px){.sport-hero-home .sport-hero-copy .d-flex{grid-template-columns:1fr}.player-add-grid,.player-card-fields{grid-template-columns:1fr}.player-add-grid>div,.player-add-grid .player-position-field,.player-add-grid .player-add-action,.player-license-field{grid-column:1}.player-position-options{grid-template-columns:1fr}.player-card-head{grid-template-columns:40px minmax(0,1fr)}.player-avatar{width:40px;height:40px}.player-manager-card h3{font-size:1.2rem}}
/* Correctif empilement du fond hero V41.7.7 */
.sport-hero-home:before,.sport-hero-home:after{z-index:0!important}.sport-hero-home>.sport-hero-copy,.sport-hero-home>.sport-hero-art,.sport-hero-home>.sport-stats,.sport-hero-home>.sport-hero-glow{position:relative;z-index:2}.sport-hero-home>.sport-hero-art,.sport-hero-home>.sport-hero-glow{position:absolute}

/* V41.7.8 - correctif graphique uniquement du bandeau d'accueil
   Restaure le visuel historique de l'encart avec le nouveau theme Dynamic Sport UI. */
.sport-hero-home{
  background:
    linear-gradient(90deg,rgba(4,15,39,.93) 0%,rgba(5,22,53,.82) 43%,rgba(5,18,44,.42) 68%,rgba(5,15,37,.24) 100%),
    url('../img/hero-volley-generated.png') right center/auto 100% no-repeat!important;
  min-height:390px;
  padding:42px 42px 112px;
}
.sport-hero-home:before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0!important;
  background:linear-gradient(90deg,rgba(2,10,27,.42),rgba(2,10,27,.08) 68%,rgba(2,10,27,.02))!important;
  opacity:1!important;
  pointer-events:none;
}
.sport-hero-home:after{
  content:"";
  position:absolute;
  inset:0;
  z-index:0!important;
  background:linear-gradient(180deg,rgba(6,20,48,.02) 55%,rgba(6,18,43,.42) 100%)!important;
  pointer-events:none;
}
.sport-hero-home .sport-hero-art,
.sport-hero-home .sport-hero-glow{display:none!important}
.sport-hero-home>.sport-hero-copy,
.sport-hero-home>.sport-stats{position:relative;z-index:2}
.sport-hero-home>.sport-stats{position:absolute}

@media(max-width:767.98px){
  .sport-hero-home{
    min-height:auto!important;
    padding:26px 18px 18px!important;
    background:
      linear-gradient(180deg,rgba(4,15,39,.90) 0%,rgba(5,20,48,.76) 62%,rgba(5,17,41,.88) 100%),
      url('../img/hero-volley-generated.png') right center/auto 100% no-repeat!important;
  }
  .sport-hero-home>.sport-stats{
    position:relative!important;
    left:auto!important;right:auto!important;bottom:auto!important;
    margin-top:20px!important;
  }
}


/* V41.7.9 - Correctif visuel hero uniquement : image issue de la maquette approuvee + texte historique. */
.sport-hero-home{background-color:#071a3c!important}
.sport-hero-home>.sport-hero-copy{max-width:690px!important}
.sport-hero-home h1{max-width:660px!important}
@media(max-width:767.98px){
  .sport-hero-home{
    background:
      linear-gradient(180deg,rgba(4,15,39,.88) 0%,rgba(5,20,48,.72) 55%,rgba(5,17,41,.93) 100%),
      url('../img/hero-volley-generated.png') center top/auto 58% no-repeat!important;
  }
  .sport-hero-home>.sport-hero-copy{max-width:100%!important;padding-top:125px}
}

/* V41.7.10 - correctif CSS chevauchement boutons / statistiques du hero accueil */
.sport-hero-home{
  height:auto!important;
  min-height:0!important;
  padding-bottom:42px!important;
  overflow:hidden;
}
.sport-hero-home>.sport-hero-copy{
  position:relative!important;
  z-index:3!important;
}
.sport-hero-home .sport-hero-copy .d-flex{
  position:relative!important;
  z-index:4!important;
  margin-bottom:0!important;
}
.sport-hero-home>.sport-stats{
  position:relative!important;
  left:auto!important;
  right:auto!important;
  bottom:auto!important;
  top:auto!important;
  transform:none!important;
  width:100%!important;
  margin-top:28px!important;
  z-index:2!important;
}
@media(max-width:991.98px){
  .sport-hero-home{padding-bottom:28px!important}
  .sport-hero-home>.sport-stats{margin-top:24px!important}
}
@media(max-width:767.98px){
  .sport-hero-home{padding:26px 18px 22px!important}
  .sport-hero-home>.sport-stats{margin-top:20px!important}
}

/* V41.7.12 - postes joueurs + aperçu logos */
.v41-ui .player-position-options .form-check,.v41-ui .player-position-dropdown .form-check{display:flex;align-items:center;gap:.55rem;padding:.5rem .55rem;border:1px solid transparent;border-radius:10px;cursor:pointer;transition:.16s ease}
.v41-ui .player-position-options .form-check:hover,.v41-ui .player-position-dropdown .form-check:hover{background:color-mix(in srgb,var(--sport-primary) 8%,var(--sport-surface-2))}
.v41-ui .player-position-options .form-check-input,.v41-ui .player-position-dropdown .form-check-input{flex:0 0 auto;width:1.2rem;height:1.2rem;margin:0!important;appearance:auto!important;-webkit-appearance:checkbox!important;accent-color:#2563eb!important;background-color:var(--sport-surface)!important;border:1px solid var(--sport-border)!important;box-shadow:none!important}
.v41-ui .player-position-options .form-check-input:checked,.v41-ui .player-position-dropdown .form-check-input:checked{background-color:#2563eb!important;border-color:#2563eb!important;outline:2px solid color-mix(in srgb,#2563eb 25%,transparent);outline-offset:1px}
.v41-ui .player-position-options .form-check:has(.form-check-input:checked),.v41-ui .player-position-dropdown .form-check:has(.form-check-input:checked){background:color-mix(in srgb,#2563eb 12%,var(--sport-surface-2));border-color:color-mix(in srgb,#2563eb 55%,var(--sport-border))}
.v41-ui .player-position-options .form-check:has(.form-check-input:checked) .form-check-label,.v41-ui .player-position-dropdown .form-check:has(.form-check-input:checked) .form-check-label{color:var(--sport-text)!important;font-weight:800}
.v41-ui .player-position-summary{color:var(--sport-muted)}.v41-ui .player-position-dropdown.has-selection+.player-position-summary{color:var(--sport-primary);font-weight:700}
.v41-ui .player-position-dropdown.has-selection .player-position-toggle{border-color:var(--sport-primary)!important;box-shadow:0 0 0 2px color-mix(in srgb,var(--sport-primary) 18%,transparent)!important}
.v41-ui .current-logo-preview{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--sport-border);border-radius:14px;background:var(--sport-surface-2);min-height:82px}
.v41-ui .current-logo-preview img{width:64px;height:64px;object-fit:contain;flex:0 0 64px;border-radius:12px;padding:5px;background:#fff;border:1px solid rgba(15,23,42,.12)}
.v41-ui .current-logo-preview strong,.v41-ui .current-logo-preview small{display:block}.v41-ui .current-logo-preview small{margin-top:3px;color:var(--sport-muted);font-size:.76rem;line-height:1.25}
@media(max-width:575.98px){.v41-ui .current-logo-preview img{width:56px;height:56px;flex-basis:56px}.v41-ui .player-position-options .form-check,.v41-ui .player-position-dropdown .form-check{padding:.6rem}}

/* V41.7.16 - checkboxes globales fiables PC / tablette / mobile */
.v41-ui .form-check-input[type="checkbox"]:not([role="switch"]),
.v41-ui input[type="checkbox"].form-check-input:not(.form-switch .form-check-input) {
  -webkit-appearance: none !important;
  appearance: none !important;
  width: 1.25rem !important;
  height: 1.25rem !important;
  min-width: 1.25rem !important;
  min-height: 1.25rem !important;
  flex: 0 0 1.25rem !important;
  margin-top: .125rem !important;
  border: 2px solid #64748b !important;
  border-radius: .32rem !important;
  background-color: var(--sport-surface, #fff) !important;
  background-image: none !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: .82rem .82rem !important;
  box-shadow: none !important;
  cursor: pointer;
  vertical-align: middle;
}
.v41-ui .form-check-input[type="checkbox"]:not([role="switch"]):checked,
.v41-ui input[type="checkbox"].form-check-input:not(.form-switch .form-check-input):checked {
  background-color: #2563eb !important;
  border-color: #2563eb !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2.4' d='M3.2 8.2l2.8 2.8 6.8-7'/%3E%3C/svg%3E") !important;
}
.v41-ui .form-check-input[type="checkbox"]:not([role="switch"]):focus-visible,
.v41-ui input[type="checkbox"].form-check-input:not(.form-switch .form-check-input):focus-visible {
  outline: 3px solid color-mix(in srgb, #2563eb 35%, transparent) !important;
  outline-offset: 2px !important;
}
.v41-ui .form-check-input[type="checkbox"]:not([role="switch"]):disabled,
.v41-ui input[type="checkbox"].form-check-input:not(.form-switch .form-check-input):disabled {
  opacity: .58 !important;
  cursor: not-allowed;
}
.v41-ui .form-check-input[type="checkbox"]:not([role="switch"]):disabled:checked,
.v41-ui input[type="checkbox"].form-check-input:not(.form-switch .form-check-input):disabled:checked {
  background-color: #64748b !important;
  border-color: #64748b !important;
}

/* Bootstrap switches: on preserve le curseur, avec contraste force dans les deux themes. */
.v41-ui .form-switch .form-check-input[type="checkbox"] {
  -webkit-appearance: none !important;
  appearance: none !important;
  width: 2.5rem !important;
  height: 1.35rem !important;
  min-width: 2.5rem !important;
  border: 1px solid #64748b !important;
  border-radius: 999px !important;
  background-color: #cbd5e1 !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: left center !important;
  background-size: contain !important;
  cursor: pointer;
  transition: background-position .14s ease, background-color .14s ease;
}
.v41-ui .form-switch .form-check-input[type="checkbox"]:checked {
  background-color: #2563eb !important;
  border-color: #2563eb !important;
  background-position: right center !important;
}
.v41-ui .form-switch .form-check-input[type="checkbox"]:focus-visible {
  outline: 3px solid color-mix(in srgb, #2563eb 35%, transparent) !important;
  outline-offset: 2px !important;
}

/* Lisibilite de la ligne choisie dans les listes de destinataires et formulaires. */
.v41-ui .recipient-box .form-check,
.v41-ui .form-check.border,
.v41-ui .form-check.rounded {
  transition: background-color .14s ease, border-color .14s ease;
}
.v41-ui .recipient-box .form-check:has(.form-check-input:checked),
.v41-ui .form-check.border:has(.form-check-input:checked),
.v41-ui .form-check.rounded:has(.form-check-input:checked) {
  background: color-mix(in srgb, #2563eb 12%, var(--sport-surface-2, #fff)) !important;
  border-color: color-mix(in srgb, #2563eb 62%, var(--sport-border, #cbd5e1)) !important;
}

[data-theme="dark"] .v41-ui .form-check-input[type="checkbox"]:not([role="switch"]):not(:checked),
[data-bs-theme="dark"] .v41-ui .form-check-input[type="checkbox"]:not([role="switch"]):not(:checked) {
  background-color: #0f1b2f !important;
  border-color: #8aa0bf !important;
}
[data-theme="dark"] .v41-ui .form-switch .form-check-input[type="checkbox"]:not(:checked),
[data-bs-theme="dark"] .v41-ui .form-switch .form-check-input[type="checkbox"]:not(:checked) {
  background-color: #334155 !important;
  border-color: #8aa0bf !important;
}

@media (max-width: 991.98px) {
  .v41-ui .form-check { min-height: 2.25rem; }
  .v41-ui .recipient-box .form-check { padding-top: .55rem; padding-bottom: .55rem; }
  .v41-ui .form-check-label { line-height: 1.35; }
}
@media (max-width: 575.98px) {
  .v41-ui .form-check-input[type="checkbox"]:not([role="switch"]),
  .v41-ui input[type="checkbox"].form-check-input:not(.form-switch .form-check-input) {
    width: 1.4rem !important;
    height: 1.4rem !important;
    min-width: 1.4rem !important;
    min-height: 1.4rem !important;
    flex-basis: 1.4rem !important;
    background-size: .92rem .92rem !important;
  }
  .v41-ui .recipient-box .form-check { gap: .55rem; align-items: flex-start; }
}

/* V41.7.23 - Validation poule en vignettes responsive */
.validation-list-heading{margin-top:.25rem}
.validation-card-grid{display:grid;grid-template-columns:1fr;gap:1rem}
.validation-match-card{border:1px solid rgba(21,59,104,.12);border-radius:1.15rem;background:var(--v38-card,#fff);box-shadow:0 10px 28px rgba(15,40,75,.08);overflow:hidden;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.validation-match-card:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(15,40,75,.12);border-color:rgba(21,104,210,.24)}
.validation-match-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;border-bottom:1px solid rgba(21,59,104,.09);background:linear-gradient(135deg,rgba(31,104,210,.06),rgba(124,58,237,.04))}
.validation-match-title{flex:1 1 auto}.validation-team-line{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem;font-size:1.05rem;font-weight:800;color:var(--v38-navy,#153b68)}
.validation-versus{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:#7b8797;background:rgba(21,59,104,.07);border-radius:999px;padding:.18rem .45rem}
.validation-meta-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.55rem}.validation-meta-chips span{display:inline-flex;align-items:center;gap:.35rem;padding:.28rem .55rem;border-radius:999px;background:rgba(21,59,104,.06);font-size:.78rem;color:#617187}.validation-meta-chips i{color:var(--v38-blue,#1568d2)}
.validation-match-summary{text-align:right;flex:0 0 auto}.validation-score{font-size:1.55rem;font-weight:900;line-height:1;color:var(--v38-navy,#153b68);margin-bottom:.45rem;white-space:nowrap}.validation-status .badge{font-size:.78rem}
.validation-match-body{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr) minmax(280px,.9fr);gap:0;border-top:0}
.validation-panel{padding:1rem 1.1rem;min-width:0}.validation-panel+.validation-panel{border-left:1px solid rgba(21,59,104,.09)}
.validation-panel-title{display:flex;align-items:center;gap:.45rem;font-weight:800;font-size:.88rem;text-transform:uppercase;letter-spacing:.04em;color:#516176;margin-bottom:.8rem}.validation-panel-title i{font-size:1rem;color:var(--v38-blue,#1568d2)}
.validation-document-actions{display:flex;flex-wrap:wrap;gap:.45rem}.validation-document-actions .btn{flex:1 1 150px}.validation-empty-state{display:flex;align-items:center;gap:.45rem;color:#7c8797;background:rgba(21,59,104,.04);border-radius:.7rem;padding:.65rem .75rem;width:100%}
.validation-deadline{display:flex;align-items:center;gap:.4rem;margin-top:.7rem;padding:.55rem .65rem;border-radius:.7rem;background:#eef7ff;color:#225d92;font-size:.82rem}.validation-deadline.is-late{background:#fff0f1;color:#a6212b}.validation-late-alert{display:flex;align-items:center;gap:.4rem;margin-top:.5rem;color:#b4232f;font-weight:700;font-size:.82rem}
.validation-check-row{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.38rem 0;border-bottom:1px dashed rgba(21,59,104,.09);font-size:.88rem}.validation-check-row:last-of-type{border-bottom:0}.validation-comment{margin-top:.65rem;font-size:.85rem}.validation-comment summary{cursor:pointer;font-weight:700}.validation-comment>div{margin-top:.4rem;padding:.65rem;border-radius:.65rem;background:rgba(21,59,104,.04)}
.validation-action-stack{display:flex;flex-direction:column;gap:.65rem}.validation-action-stack>.btn,.validation-action-stack>form>.btn{min-height:40px}.validation-return-form,.validation-intervention-form{padding-top:.65rem;border-top:1px solid rgba(21,59,104,.09)}.validation-action-note{border-radius:.65rem;padding:.55rem .65rem;font-size:.8rem}.validation-action-note.is-danger{background:#fff0f1;color:#a6212b}.validation-action-note.is-success{background:#ecfaf2;color:#207a4a}.validation-penalty-box{padding:.7rem;border-radius:.75rem;background:#fff4f4;border:1px solid rgba(220,53,69,.18);color:#90232d}.validation-existing-penalty{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .6rem;border-radius:.65rem;background:#fff4f4;color:#a6212b;font-size:.82rem}
[data-bs-theme="dark"] .validation-match-card{background:#172235;border-color:#35475f;box-shadow:0 12px 30px rgba(0,0,0,.22)}
[data-bs-theme="dark"] .validation-match-header{background:linear-gradient(135deg,rgba(37,99,235,.14),rgba(124,58,237,.10));border-bottom-color:#35475f}
[data-bs-theme="dark"] .validation-team-line,[data-bs-theme="dark"] .validation-score{color:#f4f8ff}[data-bs-theme="dark"] .validation-meta-chips span{background:#22324a;color:#c8d5e5}[data-bs-theme="dark"] .validation-panel+.validation-panel,[data-bs-theme="dark"] .validation-return-form,[data-bs-theme="dark"] .validation-intervention-form{border-color:#35475f}[data-bs-theme="dark"] .validation-panel-title{color:#afbdd0}[data-bs-theme="dark"] .validation-check-row{border-color:#35475f}[data-bs-theme="dark"] .validation-empty-state,[data-bs-theme="dark"] .validation-comment>div{background:#1f2f46;color:#c8d5e5}[data-bs-theme="dark"] .validation-deadline{background:#203852;color:#bcdcff}[data-bs-theme="dark"] .validation-deadline.is-late,[data-bs-theme="dark"] .validation-penalty-box,[data-bs-theme="dark"] .validation-existing-penalty{background:#40242a;color:#ffd0d5;border-color:#67343c}
@media (max-width:1199.98px){.validation-match-body{grid-template-columns:1fr 1fr}.validation-panel-actions{grid-column:1/-1;border-left:0!important;border-top:1px solid rgba(21,59,104,.09)}[data-bs-theme="dark"] .validation-panel-actions{border-top-color:#35475f}}
@media (max-width:767.98px){.validation-match-header{flex-direction:column;padding:.9rem}.validation-match-summary{text-align:left;display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}.validation-score{font-size:1.35rem;margin:0}.validation-match-body{grid-template-columns:1fr}.validation-panel{padding:.9rem}.validation-panel+.validation-panel{border-left:0;border-top:1px solid rgba(21,59,104,.09)}[data-bs-theme="dark"] .validation-panel+.validation-panel{border-top-color:#35475f}.validation-document-actions{flex-direction:column}.validation-document-actions .btn{flex:0 0 auto;width:100%}.validation-action-stack .btn{width:100%}.validation-team-line{font-size:1rem}.validation-meta-chips span{font-size:.75rem}}
@media (max-width:479.98px){.validation-match-card{border-radius:.9rem}.validation-match-header,.validation-panel{padding:.8rem}.validation-meta-chips{gap:.3rem}.validation-meta-chips span{width:100%;border-radius:.55rem}.validation-check-row{align-items:flex-start}.validation-existing-penalty{align-items:flex-start;flex-direction:column}}

/* V41.7.24 - Planification : compatibilite complete mode sombre */
[data-bs-theme="dark"]{
  --v41-bg:#060d1c;
  --v41-card:#0d182b;
  --v41-text:#f4f7ff;
  --v41-muted:#aab7cb;
  --v41-border:#223450;
  --v41-blue-soft:#152a4d;
  --v41-shadow:0 16px 42px rgba(0,0,0,.34);
}
[data-bs-theme="dark"] .v41-ui .planning-match-card{
  background:var(--sport-surface)!important;
  color:var(--sport-text)!important;
  border-color:var(--sport-border)!important;
  box-shadow:var(--sport-shadow)!important;
}
[data-bs-theme="dark"] .v41-ui .planning-card-head,
[data-bs-theme="dark"] .v41-ui .planning-versus,
[data-bs-theme="dark"] .v41-ui .planning-date-form,
[data-bs-theme="dark"] .v41-ui .planning-actions{
  color:var(--sport-text)!important;
}
[data-bs-theme="dark"] .v41-ui .planning-team strong,
[data-bs-theme="dark"] .v41-ui .planning-date-form label{
  color:var(--sport-text)!important;
}
[data-bs-theme="dark"] .v41-ui .planning-team small,
[data-bs-theme="dark"] .v41-ui .planning-date-form .text-muted,
[data-bs-theme="dark"] .v41-ui .planning-match-card .text-muted{
  color:var(--sport-muted)!important;
}
[data-bs-theme="dark"] .v41-ui .planning-status-row{
  border-color:var(--sport-border)!important;
}
[data-bs-theme="dark"] .v41-ui .planning-status-row span{
  background:var(--sport-surface-2)!important;
  color:var(--sport-text)!important;
  border:1px solid var(--sport-border)!important;
}
[data-bs-theme="dark"] .v41-ui .planning-status-row .is-ready{
  background:rgba(32,201,130,.14)!important;
  color:#74e6b2!important;
  border-color:rgba(32,201,130,.32)!important;
}
[data-bs-theme="dark"] .v41-ui .planning-filters,
[data-bs-theme="dark"] .v41-ui .planning-filters .card-body,
[data-bs-theme="dark"] .v41-ui .planning-match-card .bg-body-tertiary{
  background:var(--sport-surface)!important;
  color:var(--sport-text)!important;
  border-color:var(--sport-border)!important;
}
[data-bs-theme="dark"] .v41-ui .planning-match-card .bg-body-tertiary{
  background:var(--sport-surface-2)!important;
}
[data-bs-theme="dark"] .v41-ui .planning-match-card .form-control:disabled{
  background:var(--sport-surface-2)!important;
  color:#d5deed!important;
  border-color:var(--sport-border)!important;
  opacity:1!important;
}
[data-bs-theme="dark"] .v41-ui .planning-match-card .btn-outline-primary{
  color:#8fb4ff!important;
  border-color:#4f7bd6!important;
}
[data-bs-theme="dark"] .v41-ui .planning-match-card .btn-outline-primary:hover{
  background:#2d66d7!important;
  border-color:#2d66d7!important;
  color:#fff!important;
}

/* V41.7.25 - Audit global mode sombre / compatibilite toutes pages */
[data-bs-theme="dark"] .v41-ui .alert-light{
  background:var(--sport-surface-2)!important;
  color:var(--sport-text)!important;
  border-color:var(--sport-border)!important;
}
[data-bs-theme="dark"] .v41-ui .btn-light{
  background:var(--sport-surface-2)!important;
  color:var(--sport-text)!important;
  border-color:var(--sport-border)!important;
}
[data-bs-theme="dark"] .v41-ui .btn-light:hover,
[data-bs-theme="dark"] .v41-ui .btn-light:focus{
  background:color-mix(in srgb,var(--sport-primary) 18%,var(--sport-surface-2))!important;
  color:#fff!important;
  border-color:var(--sport-primary)!important;
}
[data-bs-theme="dark"] .v41-ui .btn-outline-dark{
  color:#dbe7fb!important;
  border-color:#7184a1!important;
}
[data-bs-theme="dark"] .v41-ui .btn-outline-dark:hover,
[data-bs-theme="dark"] .v41-ui .btn-outline-dark:focus{
  background:#7184a1!important;
  color:#07111f!important;
}
[data-bs-theme="dark"] .v41-ui .text-primary-emphasis,
[data-bs-theme="dark"] .v41-ui .text-secondary-emphasis{
  color:#a9c8ff!important;
}
[data-bs-theme="dark"] .v41-ui .bg-body-tertiary,
[data-bs-theme="dark"] .v41-ui pre.bg-body-tertiary{
  background:var(--sport-surface-2)!important;
  color:var(--sport-text)!important;
  border-color:var(--sport-border)!important;
}
[data-bs-theme="dark"] .v41-ui .btn-close{
  filter:invert(1) grayscale(100%) brightness(200%);
  opacity:.85;
}
[data-bs-theme="dark"] .v41-ui .btn-close:hover{opacity:1}
[data-bs-theme="dark"] .v41-ui .list-group-item-action:hover,
[data-bs-theme="dark"] .v41-ui .list-group-item-action:focus{
  background:var(--sport-surface-2)!important;
  color:var(--sport-text)!important;
}
[data-bs-theme="dark"] .v41-ui .form-text{color:var(--sport-muted)!important}
[data-bs-theme="dark"] .v41-ui hr{border-color:var(--sport-border)!important;opacity:1}
[data-bs-theme="dark"] .v41-ui code,
[data-bs-theme="dark"] .v41-ui pre{color:#e8efff}
[data-bs-theme="dark"] .v41-ui .modal-backdrop{background:#020712}

/* Logos restent sur fond blanc pour respecter leurs couleurs d'origine. */
[data-bs-theme="dark"] .v41-ui :is(.team-logo-card,.team-logo-hero,.planning-team img,.current-logo-preview img){background:#fff!important}

/* Cibles Bootstrap encore utilisees dans plusieurs espaces. */
[data-bs-theme="dark"] .v41-ui .badge.text-bg-light,
[data-bs-theme="dark"] .v41-ui .badge.bg-light.text-dark{
  background:var(--sport-surface-2)!important;
  color:var(--sport-text)!important;
  border-color:var(--sport-border)!important;
}
[data-bs-theme="dark"] .v41-ui .border.bg-light,
[data-bs-theme="dark"] .v41-ui .border.bg-white{
  background:var(--sport-surface-2)!important;
  color:var(--sport-text)!important;
  border-color:var(--sport-border)!important;
}

/* Robustesse responsive commune aux formulaires et actions. */
@media (max-width:767.98px){
  .v41-ui .card .d-flex.gap-2:has(.btn){flex-wrap:wrap}
  .v41-ui .card .d-flex.gap-2:has(.btn)>.btn,
  .v41-ui .card .d-flex.gap-2:has(.btn)>form{max-width:100%}
  .v41-ui .modal-dialog{margin:.55rem}
  .v41-ui .modal-content{max-height:calc(100vh - 1.1rem)}
}
\n\n/* V41.7.30 - Audit global themes : mode clair par defaut + contraste sombre robuste */
[data-bs-theme="dark"] .v41-ui .table{
  --bs-table-bg:var(--sport-surface)!important;
  --bs-table-color:var(--sport-text)!important;
  --bs-table-striped-bg:var(--sport-surface-2)!important;
  --bs-table-striped-color:var(--sport-text)!important;
  --bs-table-hover-bg:#182b49!important;
  --bs-table-hover-color:#fff!important;
  --bs-table-border-color:var(--sport-border)!important;
  --bs-table-accent-bg:transparent!important;
}
[data-bs-theme="dark"] .v41-ui .table > :not(caption) > * > *{
  color:var(--sport-text)!important;
  background-color:var(--bs-table-bg)!important;
  border-color:var(--sport-border)!important;
  box-shadow:none!important;
}
[data-bs-theme="dark"] .v41-ui .table-striped > tbody > tr:nth-of-type(odd) > *{
  --bs-table-bg:var(--sport-surface-2)!important;
  background-color:var(--sport-surface-2)!important;
  color:var(--sport-text)!important;
}
[data-bs-theme="dark"] .v41-ui .table-striped > tbody > tr:nth-of-type(even) > *{
  --bs-table-bg:var(--sport-surface)!important;
  background-color:var(--sport-surface)!important;
  color:var(--sport-text)!important;
}
[data-bs-theme="dark"] .v41-ui .table-hover > tbody > tr:hover > *{
  --bs-table-bg:#182b49!important;
  background-color:#182b49!important;
  color:#fff!important;
}
[data-bs-theme="dark"] .v41-ui .table thead > tr > th{
  background:#172d4e!important;color:#f7f9ff!important;border-color:#2d4262!important;
}
[data-bs-theme="dark"] .v41-ui .table .text-muted{color:#b8c5d9!important}
[data-bs-theme="dark"] .v41-ui .table a:not(.btn){color:#8db9ff!important}
[data-bs-theme="dark"] .v41-ui .badge.bg-info.text-dark{color:#06111f!important}
[data-bs-theme="dark"] .v41-ui .badge.bg-warning.text-dark{color:#211600!important}
[data-bs-theme="dark"] .v41-ui .badge.bg-light,
[data-bs-theme="dark"] .v41-ui .text-bg-light{background:var(--sport-surface-2)!important;color:var(--sport-text)!important;border-color:var(--sport-border)!important}
[data-bs-theme="dark"] .v41-ui .input-group-text{background:var(--sport-surface-2)!important;color:var(--sport-text)!important;border-color:var(--sport-border)!important}
[data-bs-theme="dark"] .v41-ui .form-control-plaintext{color:var(--sport-text)!important}
[data-bs-theme="dark"] .v41-ui .pagination .page-link{background:var(--sport-surface)!important;color:#8db9ff!important;border-color:var(--sport-border)!important}
[data-bs-theme="dark"] .v41-ui .pagination .active>.page-link{background:var(--sport-primary)!important;color:#fff!important;border-color:var(--sport-primary)!important}
[data-bs-theme="dark"] .v41-ui .nav-tabs{border-color:var(--sport-border)!important}
[data-bs-theme="dark"] .v41-ui .nav-tabs .nav-link{color:#a9c8ff!important}
[data-bs-theme="dark"] .v41-ui .nav-tabs .nav-link.active{background:var(--sport-surface)!important;color:#fff!important;border-color:var(--sport-border) var(--sport-border) var(--sport-surface)!important}
[data-bs-theme="dark"] .v41-ui .popover,[data-bs-theme="dark"] .v41-ui .tooltip-inner{background:var(--sport-surface-2)!important;color:var(--sport-text)!important}
[data-bs-theme="dark"] .v41-ui .progress{background:#263650!important}
[data-bs-theme="dark"] .v41-ui .current-logo-preview,[data-bs-theme="dark"] .v41-ui .sheet-preview-link{border-color:var(--sport-border)!important}

/* V41.7.47 - Classements / Calendrier alignes sur les panneaux de l'accueil */
.competition-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.competition-panel{background:var(--sport-surface);border:1px solid var(--sport-border);border-radius:19px;box-shadow:var(--sport-shadow);overflow:hidden;min-width:0}
.competition-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 16px;border-bottom:1px solid var(--sport-border);background:var(--sport-surface)}
.competition-panel-title{display:flex;align-items:center;gap:11px;min-width:0}.competition-panel-title>div{min-width:0}.competition-panel-title strong{display:block;font-family:Montserrat,sans-serif;font-size:.92rem;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.competition-panel-title small{display:block;color:var(--sport-muted);font-size:.72rem;margin-top:2px}
.competition-poule-logo{width:42px;height:42px;object-fit:contain;background:#fff;border-radius:10px;padding:3px;box-shadow:0 4px 12px rgba(0,0,0,.08);flex:none}
.competition-panel-body{min-height:120px}.competition-panel-foot{padding:11px 16px;background:var(--sport-surface-2);border-top:1px solid var(--sport-border);text-align:right}.competition-panel-foot a{font-size:.78rem;font-weight:800;text-decoration:none;color:var(--sport-primary)}
.competition-ranking-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto 18px;gap:10px;align-items:center;padding:12px 15px;border-bottom:1px solid var(--sport-border);text-decoration:none!important;color:var(--sport-text)!important;transition:.18s ease}.competition-ranking-row:last-child{border-bottom:0}.competition-ranking-row:hover{background:var(--sport-surface-2)}
.competition-rank{font-weight:900;text-align:center;font-size:.88rem}.competition-team{display:flex;align-items:center;gap:8px;min-width:0}.competition-team strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.competition-team-stats{text-align:right;display:grid;gap:1px;white-space:nowrap}.competition-team-stats b{font-size:.84rem}.competition-team-stats small{font-size:.68rem;color:var(--sport-muted)}
.competition-match-row{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px 15px;border-bottom:1px solid var(--sport-border)}.competition-match-row:last-child{border-bottom:0}.competition-match-row:hover{background:var(--sport-surface-2)}
.competition-match-date{text-align:center}.competition-match-date strong{display:block;font-size:.78rem}.competition-match-date small{display:block;color:var(--sport-muted);font-size:.7rem;margin-top:2px}.competition-match-teams{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:6px;align-items:center;min-width:0}.competition-match-teams strong:first-child{text-align:right}.competition-match-teams strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.82rem}.competition-match-teams>span{color:var(--sport-muted);font-size:.68rem;font-weight:800}.competition-match-teams small{grid-column:1/-1;text-align:center;color:var(--sport-muted);font-size:.68rem}.competition-match-status{white-space:nowrap}
@media(max-width:1100px){.competition-grid{grid-template-columns:1fr}.competition-panel-body{min-height:0}}
@media(max-width:620px){.competition-panel-head{align-items:flex-start}.competition-panel-title strong{font-size:.82rem}.competition-ranking-row{grid-template-columns:30px minmax(0,1fr) 18px}.competition-team-stats{grid-column:2/3;text-align:left;display:flex;gap:8px}.competition-ranking-row>i{grid-column:3;grid-row:1/3}.competition-match-row{grid-template-columns:50px minmax(0,1fr)}.competition-match-status{grid-column:2}.competition-match-teams{grid-template-columns:1fr}.competition-match-teams strong:first-child{text-align:left}.competition-match-teams>span{display:none}.competition-match-teams small{text-align:left}.competition-panel-foot{text-align:left}}

/* V41.7.53 - reperes domicile / visiteur */
.match-venue-icon{display:inline-block;min-width:1.1em;margin-right:.22rem;vertical-align:-.08em;opacity:.82}
.competition-match-teams .match-venue-icon{font-size:.92em}

/* V41.7.54 - filtres sportifs Classement / Calendrier */
.sport-page-filter{display:grid;grid-template-columns:auto minmax(180px,1fr) minmax(240px,360px);align-items:center;gap:14px;padding:14px 16px;background:var(--sport-surface);border:1px solid var(--sport-border);border-radius:18px;box-shadow:var(--sport-shadow)}
.sport-page-filter-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;color:#fff;font-size:1.05rem;box-shadow:0 8px 20px rgba(34,116,255,.16)}
.sport-page-filter-copy{display:flex;flex-direction:column;min-width:0}
.sport-page-filter-copy strong{font-family:Montserrat,sans-serif;font-size:.88rem;text-transform:uppercase;letter-spacing:.035em;color:var(--sport-text)}
.sport-page-filter-copy span{font-size:.75rem;color:var(--sport-muted);margin-top:2px}
.sport-page-filter-form{display:flex;gap:8px;align-items:center;justify-content:flex-end}
.sport-page-filter .form-select{min-height:42px;border-radius:12px;border-color:var(--sport-border);background-color:var(--sport-surface-2);color:var(--sport-text);font-weight:700;box-shadow:none}
.sport-page-filter .form-select:focus{border-color:var(--sport-primary);box-shadow:0 0 0 .2rem color-mix(in srgb,var(--sport-primary) 18%,transparent)}
@media(max-width:767.98px){.sport-page-filter{grid-template-columns:auto 1fr}.sport-page-filter-form{grid-column:1/-1;width:100%}.sport-page-filter .form-select{width:100%}.sport-page-filter-copy strong{font-size:.82rem}}

/* V41.7.72 - menu lateral groupe par profil */
.sidebar-profile-label{display:flex;align-items:center;gap:.4rem;margin-top:1rem;color:#8ea8d1!important}
.sidebar-profile-label i{font-size:.8rem;color:#ffd21c}


/* V41.7.78 - reperes visuels sobres du menu lateral */
.sidebar-link .bi-house-door,.sidebar-link .bi-speedometer2,.sidebar-link .bi-grid{color:#91b9ef!important}
.sidebar-link .bi-newspaper,.sidebar-link .bi-chat-dots{color:#b5a5dc!important}
.sidebar-link .bi-calendar-event,.sidebar-link .bi-calendar2-range,.sidebar-link .bi-calendar2-week,.sidebar-link .bi-calendar3,.sidebar-link .bi-calendar-check{color:#78bfc0!important}
.sidebar-link .bi-trophy,.sidebar-link .bi-clipboard-check,.sidebar-link .bi-check-circle{color:#d6b46f!important}
.sidebar-link .bi-people,.sidebar-link .bi-people-fill,.sidebar-link .bi-person,.sidebar-link .bi-person-badge{color:#8fc49d!important}
.sidebar-link .bi-building,.sidebar-link .bi-buildings,.sidebar-link .bi-diagram-3{color:#a8b4d6!important}
.sidebar-link .bi-pencil-square,.sidebar-link .bi-file-earmark-check,.sidebar-link .bi-file-earmark-arrow-down,.sidebar-link .bi-file-earmark-zip{color:#d39d91!important}
.sidebar-link .bi-shield-check{color:#c5a0cb!important}
.sidebar-link.active i{color:#fff!important}
.competition-match-week{display:block;font-weight:800;color:var(--sport-muted);line-height:1;margin-bottom:.15rem}

/* V41.7.81 - securisation des nombres sur mobile */
.actualite-content{overflow-wrap:anywhere;word-break:normal}.actualite-content img,.actualite-content video{max-width:100%;height:auto}.player-edit-card,.player-card-fields,.player-license-field{min-width:0}.player-edit-card input{max-width:100%}
@media(max-width:576px){.actualite-content{font-size:.96rem}.actualite-content [style*="font-size"]{font-size:clamp(1rem,8vw,2.2rem)!important;line-height:1.08!important;max-width:100%}.actualite-content table{display:block;max-width:100%;overflow-x:auto}.actualite-content td,.actualite-content th{overflow-wrap:anywhere}.player-card-fields{grid-template-columns:1fr!important}.player-license-field input,.player-edit-card input[type=number],.player-edit-card input[name=number],.player-edit-card input[name=license_number]{font-size:1rem!important;min-width:0;width:100%}.display-1,.display-2,.display-3,.display-4,.display-5,.display-6{overflow-wrap:anywhere}}

/* V41.7.82 - numéros d’équipe : ne jamais casser les nombres à 2 chiffres */
.team-number-badge{display:inline-flex!important;align-items:center;justify-content:center;min-width:2rem;white-space:nowrap!important;overflow-wrap:normal!important;word-break:normal!important;line-height:1!important}

/* V41.7.82 - actions Administration > Matchs */
.admin-match-actions{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.admin-match-actions form{display:inline-flex}.admin-match-actions .btn{min-width:88px;justify-content:center}.table-actions-medium{min-width:390px}@media(max-width:767px){.admin-match-actions{min-width:260px}.admin-match-actions .btn{min-width:0;flex:1 1 auto}}

/* V41.7.93 — conteneur commun aux contenus éditoriaux riches. */
.fsgt-rich-content{min-width:0;max-width:100%;overflow-wrap:break-word;word-break:normal}
.fsgt-rich-content *{box-sizing:border-box;min-width:0;max-width:100%}
.fsgt-rich-content img,.fsgt-rich-content video{height:auto}
.fsgt-rich-content table{display:block;overflow-x:auto}
@media(max-width:767.98px){
 .actualite-content{padding:1rem!important}
 .fsgt-rich-content{font-size:1rem;line-height:1.55}
 .fsgt-rich-content p,.fsgt-rich-content li,.fsgt-rich-content span,.fsgt-rich-content small{font-size:1rem!important;line-height:1.5!important;letter-spacing:normal!important}
 .fsgt-rich-content h1{font-size:1.75rem!important}.fsgt-rich-content h2{font-size:1.5rem!important}.fsgt-rich-content h3,.fsgt-rich-content h4{font-size:1.25rem!important}
 .fsgt-rich-content [style*="grid-template-columns"],.fsgt-rich-content [style*="display: grid"],.fsgt-rich-content [style*="display:grid"]{grid-template-columns:minmax(0,1fr)!important;gap:1rem!important}
 .fsgt-rich-content .row>*{flex:0 0 100%!important;width:100%!important}
 .fsgt-rich-content [style*="display: flex"],.fsgt-rich-content [style*="display:flex"]{flex-wrap:wrap!important}
 .fsgt-rich-content [style*="display: flex"]>*,.fsgt-rich-content [style*="display:flex"]>*{flex:1 1 100%!important;width:100%!important}
 .fsgt-rich-content [style*="font-size"]{font-size:1.25rem!important;line-height:1.4!important}
 .fsgt-rich-content [style*="padding"]{padding:1rem!important}.fsgt-rich-content [style*="margin"]{margin:1rem 0!important}
 .fsgt-rich-content [style*="width"]{width:auto!important}.fsgt-rich-content [style*="height"]{height:auto!important}
 .fsgt-rich-content [style*="white-space"]{white-space:normal!important}
}

/* V41.7.104 — champs numériques sans menu déroulant, tous écrans. */
.score-detail-page .score-selected-wrapper .card-body>.row>[class*="col-"],.score-entry-panel{min-width:0}
.score-wizard .score-table-container{width:100%;overflow:visible}
.score-wizard .score-table{width:100%;min-width:0;table-layout:fixed}
.score-wizard .score-table th:first-child,.score-wizard .score-table td:first-child{width:42px}
.score-wizard .score-table th:last-child,.score-wizard .score-table td:last-child{width:100px}
.score-wizard .score-table th{white-space:normal;overflow-wrap:anywhere}
.score-wizard .score-input{width:100%;min-width:0;min-height:44px;height:auto;padding:8px 6px;font-size:16px;line-height:1.5;font-weight:700}
.score-wizard .set-message{white-space:normal;overflow-wrap:anywhere}
.score-wizard .final-submit{height:auto;min-height:48px;white-space:normal;overflow-wrap:anywhere;line-height:1.4;padding:12px 16px}
@media(max-width:575.98px){
 .score-wizard .score-table th:first-child,.score-wizard .score-table td:first-child{width:32px}
 .score-wizard .score-table th:last-child,.score-wizard .score-table td:last-child{width:76px}
 .score-wizard .score-table tbody td{padding:6px 3px}
 .score-wizard .score-table th{font-size:.65rem;padding:6px 3px;letter-spacing:0}
 .score-wizard .set-status{font-size:.65rem;white-space:normal}
 .score-wizard .set-message{font-size:.65rem}
 .score-wizard .score-header strong{overflow-wrap:anywhere;font-size:.85rem}
 .score-wizard .final-submit{font-size:1rem}
}
.pwa-notification-panel{position:fixed;z-index:1060;left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));max-width:440px;margin-left:auto;padding:16px;border:1px solid var(--bs-border-color);border-radius:16px;background:var(--bs-body-bg);color:var(--bs-body-color);box-shadow:0 8px 30px #0003}
.pwa-notification-panel p{margin:8px 0}.pwa-notification-panel .btn{white-space:normal;min-height:44px}
.pwa-status{display:block;font-size:.85rem;margin-top:8px}
/* Le menu latéral réduit la largeur utile sur les petits PC. */
@media(min-width:1400px){.score-detail-page .score-selected-wrapper .card-body>.row{grid-template-columns:minmax(180px,.72fr) minmax(180px,.62fr) minmax(0,1.65fr)}}
@media(min-width:768px) and (max-width:1399.98px){.score-detail-page .score-selected-wrapper .card-body>.row{grid-template-columns:repeat(2,minmax(0,1fr))}.score-entry-panel{grid-column:1/-1}}
.score-wizard .set-message{display:block}

/* V115 — Actualités sur toute la largeur de l’accueil. */
.home-secondary-grid.home-news-full{grid-template-columns:minmax(0,1fr)}
.home-news-full .news-zone{min-width:0;width:100%}
.news-tournament-date{color:var(--sport-primary);font-weight:700;margin-bottom:.4rem}

.home-news-full .news-modern-grid{min-width:0;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}
.home-news-full .news-modern-card{min-width:0;overflow-wrap:anywhere}
@media(max-width:767.98px){.home-news-full .news-modern-grid{grid-template-columns:minmax(0,1fr)}}

/* V122 : radios contrastés, indépendants du fond global des champs. */
.v41-ui input[type="radio"] {
 -webkit-appearance:none!important;appearance:none!important;
 width:1.35rem!important;height:1.35rem!important;min-width:1.35rem!important;min-height:1.35rem!important;
 flex:0 0 1.35rem;vertical-align:middle;cursor:pointer;
 border:2px solid #64748b!important;border-radius:50%!important;
 background-color:var(--sport-surface,#fff)!important;background-image:none!important;
 background-position:center!important;background-repeat:no-repeat!important;background-size:1rem 1rem!important;
 box-shadow:none!important;
}
.v41-ui input[type="radio"]:checked {
 border-color:#2563eb!important;background-color:#2563eb!important;
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='4' fill='%23fff'/%3E%3C/svg%3E")!important;
}
.v41-ui input[type="radio"]:focus-visible {
 outline:3px solid #60a5fa!important;outline-offset:3px!important;
}
.v41-ui input[type="radio"]:disabled {opacity:.6!important;cursor:not-allowed}
[data-bs-theme="dark"] .v41-ui input[type="radio"]:not(:checked),
[data-theme="dark"] .v41-ui input[type="radio"]:not(:checked) {border-color:#a4b7d0!important;background-color:#0f1b2f!important}
.v41-ui .fsgt-choice-card {cursor:pointer;transition:border-color .14s,background-color .14s}
.v41-ui .fsgt-choice-card:has(input:checked) {
 border-color:#2563eb!important;background-color:color-mix(in srgb,#2563eb 12%,var(--sport-surface,#fff))!important;
 box-shadow:inset 4px 0 #2563eb;
}
/* Les cases natives sans classe Bootstrap gardent aussi un accent visible. */
.v41-ui input[type="checkbox"]:not(.form-check-input) {accent-color:#2563eb;width:1.25rem;height:1.25rem;vertical-align:middle;cursor:pointer}
.v41-ui input[type="checkbox"]:not(.form-check-input):focus-visible {outline:3px solid #60a5fa;outline-offset:3px}
