@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap");

/* assets/style.css — thème clair minimal */
:root {
  --bg: #ffffff;
  --text: #111827;
  --muted: #6b7280;
  --card: #ffffff;
  --border: #e5e7eb;
  --accent: #2563eb;
  --accent-strong: #1d4ed8;
  --accent-soft: #eef2ff;
  --accent-soft-border: #c7d2fe;
  --accent-soft-alt: #eff6ff;
  --accent-soft-alt-border: #bfdbfe;
  --accent-subtle: #f0f9ff;
  --accent-subtle-border: #bae6fd;
  --accent-rgb: 37, 99, 235;

  /* Layout */
  --max-width: 1800px;
  --page-gutter: 16px;
}

* { box-sizing: border-box; }
body { margin: 0; background: var(--bg); color: var(--text); font-family: system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif; font-size: 16px; }

a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }

.muted { color: var(--muted); }
img.flag { vertical-align: middle; border: 1px solid var(--border); border-radius: 2px; display:block; }
.flag-wrap{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;flex:0 0 auto}
.flag-fallback{align-items:center;justify-content:center;border:1px solid var(--border);border-radius:4px;background:#f3f4f6;color:#374151;font-size:.62rem;font-weight:800;line-height:1}
.team { display:inline-flex; align-items:center; gap:.35rem; font-weight:600; }

.container { max-width: var(--max-width); margin: 1.5rem auto; padding: 0 1rem; }

/* Layout */
.site-main{max-width:var(--max-width);margin:0 auto;padding-top:1rem;padding-bottom:2.5rem}
.site-footer{max-width:var(--max-width);margin:0 auto}

/* Header (topbar) */
.topbar{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid var(--border);box-shadow:0 10px 24px rgba(17,24,39,.06)}
.topbar-inner{max-width:var(--max-width);margin:0 auto;position:relative;display:flex;align-items:center;gap:.85rem;justify-content:space-between;padding:.8rem var(--page-gutter)}
.brand{display:flex;align-items:center;color:var(--text);text-decoration:none;font-weight:900}
.brand-title{letter-spacing:-.01em;text-transform:lowercase;font-size:1.75rem;line-height:1}
.nav-toggle{display:none;border:1px solid var(--border);background:#fff;border-radius:14px;padding:0 .8rem;height:48px;cursor:pointer;align-items:center;justify-content:center;gap:.65rem}
.nav-toggle-label{font-size:.95rem;font-weight:800;color:#111827}
.burger{display:flex;flex-direction:column;gap:4px}
.burger span{display:block;width:22px;height:2.5px;background:#111827;border-radius:999px}
.nav-links{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.nav-link{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem .78rem;border-radius:999px;color:var(--text);font-weight:750;font-size:.95rem;border:1px solid transparent;text-decoration:none;white-space:nowrap}
.nav-link:hover{background:#f3f4f6;text-decoration:none}
.nav-link.active{background:var(--accent-soft);border-color:var(--accent-soft-border);color:var(--accent-strong)}
.nav-user{display:flex;align-items:center;gap:.45rem;margin-left:.2rem;padding-left:.2rem}
.nav-user-name{font-weight:700;color:#111827;padding:.3rem .55rem;border-radius:999px;background:#f9fafb;border:1px solid var(--border);white-space:nowrap}
.nav-link.logout{background:#f9fafb;border-color:var(--border)}

@media (max-width: 900px){
  .nav-toggle{display:inline-flex}
  .nav-links{display:none;position:absolute;left:0;right:0;top:calc(100% + .6rem);background:#fff;border:1px solid var(--border);border-radius:14px;padding:.6rem;box-shadow:0 18px 40px rgba(0,0,0,.14)}
  .nav-links.open{display:flex;flex-direction:column;align-items:stretch}
  .nav-user{width:100%;justify-content:space-between;margin-left:0;padding-left:0}
  .nav-link{width:100%;justify-content:space-between}
  .brand-title{font-size:1.45rem}
}

.inline { display: inline; }

.card { background: var(--card); border: 1px solid var(--border); border-radius: 10px; padding: 1rem; margin-bottom: 1rem; }
.card h2, .card h3 { margin-top: 0; }

@media (max-width: 600px){
  .card{padding:.85rem;border-radius:14px}
  .page-header{margin:.75rem 0}
}

/* En-tête + onglets (ex: page Privé) */
.page-header { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; margin: 1rem 0; }
.page-header h1 { margin: 0; font-size: 1.6rem; line-height: 1.15; }
.page-header p { margin: .35rem 0 0; }
.page-header-actions { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; justify-content:flex-end; }

.subnav { display:flex; flex-wrap:wrap; gap:.5rem; border-bottom: 1px solid var(--border); padding-bottom: .75rem; margin-bottom: 1rem; }
.subnav a[role="tab"] { display:inline-block; padding:.38rem .7rem; border-radius:999px; border: 1px solid var(--border); background:#f9fafb; color: var(--text); font-weight: 700; font-size: .9rem; text-decoration:none; }
.subnav a[role="tab"].active { background:var(--accent-soft); border-color:var(--accent-soft-border); color:var(--accent-strong); }
.subnav a[role="tab"]:hover { background:#f3f4f6; }

/* Sous-onglets (ex: Groupes -> Équipes / Résultats) */
.subsubnav { display:flex; flex-wrap:wrap; gap:.5rem; margin: 0 0 1rem; }
.subsubnav a { display:inline-block; padding:.34rem .65rem; border-radius:999px; border: 1px solid var(--border); background:#ffffff; color: var(--text); font-weight: 700; font-size: .85rem; text-decoration:none; }
.subsubnav a.active { background:var(--accent-subtle); border-color:var(--accent-subtle-border); color:var(--accent-strong); }
.subsubnav a:hover { background:#f9fafb; }


.section-split { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem; }
@media (max-width: 900px) { .section-split { grid-template-columns: 1fr; } }

.grid { display: grid; gap: 1rem; }
.grid-2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.grid-3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.grid-4 { grid-template-columns: repeat(4, minmax(0,1fr)); }
@media (max-width: 900px) {
  .grid-3, .grid-4 { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 600px) {
  .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; }
}

/* Phases finales (admin) : 1 colonne plus tôt pour le confort mobile */
@media (max-width: 900px){
  .ko-admin-split{grid-template-columns:1fr!important}
}

input[type="text"], input[type="number"], input[type="datetime-local"], select {
  width: 100%; padding: .55rem .6rem; border-radius: 8px; border: 1px solid var(--border); background: #fff; color: var(--text);
}

select:disabled,
input:disabled{
  background:#e5e7eb;
  color:#6b7280;
  cursor:not-allowed;
}
button, .btn {
  background: var(--accent);
  border: 1px solid var(--accent);
  padding: .55rem .8rem; border-radius: 8px; color: #fff; font-weight: 600; cursor: pointer;
}
button.secondary { background: #f3f4f6; color: var(--text); border-color: #d1d5db; }

.table { width: 100%; border-collapse: collapse; font-size: 14px; }
.table th, .table td { padding: .5rem .4rem; border-bottom: 1px solid var(--border); text-align: left; }
.table th { color: var(--muted); font-weight: 600; }

/* Tables compactes (Phases finales admin) */
.table.compact th, .table.compact td{padding:.38rem .35rem}
.table.compact input[type="text"],
.table.compact input[type="number"],
.table.compact input[type="datetime-local"],
.table.compact select{padding:.45rem .5rem;border-radius:10px}

.tag { display:inline-block; padding:.25rem .5rem; border-radius:999px; background:#f3f4f6; color:#111827; font-size:12px; border:1px solid var(--border); }
.notice { padding:.6rem .8rem; border-radius:8px; background:#f9fafb; border:1px solid var(--border); color:#374151; }

.right { text-align:right; }
.center { text-align:center; }

.linklike{background:none;border:none;padding:0;cursor:pointer}
.linklike.danger{color:#c0392b}
.linklike.danger:hover{color:#a93226;text-decoration:underline}
.linklike.small{font-size:.9rem}
.inline{display:inline-block}
.tiny-input{max-width:130px}

/* Boutons "Enregistrer" flottants (Privé) */
.has-floating{padding-bottom:110px}
.floating-actions{
  position:fixed;
  right:calc(24px + env(safe-area-inset-right));
  bottom:calc(24px + env(safe-area-inset-bottom));
  z-index:999;
  display:flex;
  flex-direction:column;
  gap:.55rem;
}
.floating-actions .hint{font-size:.78rem;color:var(--muted);text-align:right}
.floating-actions button{box-shadow:0 10px 30px rgba(0,0,0,.12)}
.floating-actions button.secondary{box-shadow:0 10px 30px rgba(0,0,0,.08)}

@media(max-width:720px){
  .floating-actions{right:calc(12px + env(safe-area-inset-right));bottom:calc(12px + env(safe-area-inset-bottom))}
}

/* Sur mobile : on évite que le bouton flotte sur les champs en bas */
@media(max-width:720px){
  .has-floating{padding-bottom:140px}
  .floating-actions button{padding:.7rem .9rem;border-radius:14px}
}

:root{--page-gutter:16px}
.site-header,.site-main,.site-footer{padding-left:var(--page-gutter);padding-right:var(--page-gutter)}
@media(min-width:1280px){:root{--page-gutter:24px}}
.hero h1{margin-bottom:.25rem}
.hero-points{margin:.5rem 0 1rem 1.25rem}
.hero-points li{margin:.15rem 0}
.team-grid{gap:1rem}
.team-card{background:#f8fafc;border:1px solid #e5e7eb;border-radius:12px;padding:.9rem 1rem}
.team-role{font-size:.9rem;color:#6b7280}
.team-card .team-name{font-weight:700;font-size:1.05rem}

/* Règles */
.card h3{margin-top:.75rem}
.card ul{margin:.25rem 0 .75rem 1.25rem}
.card ul li{margin:.1rem 0}

/* Bouton supprimer discret */
.btn-ghost{background:transparent;border:1px solid #d3d8e0;color:#3b5bfd;border-radius:8px;padding:.35rem .6rem}
.btn-ghost:hover{background:var(--accent-soft)}
.text-right{text-align:right}
.stack label{display:block;margin-bottom:.35rem}
.stack input, .stack select{width:100%}

/* lien style bouton dans nav */
.linklike{background:none;border:none;color:#3b5bfd;cursor:pointer;padding:0;font:inherit}
.linklike:hover{text-decoration:underline}

.text-right{text-align:right}


/* Admin (Privé) — grille groupes : 3 colonnes dès 1500px */
.admin-groups-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
@media(min-width:1500px){.admin-groups-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.admin-groups-grid{grid-template-columns:1fr}}
.admin-groups-grid .card{margin-bottom:0}
.admin-side{display:flex;flex-direction:column;gap:.35rem;align-items:flex-end}
.admin-side-top{display:flex;gap:.35rem;align-items:center;justify-content:flex-end;width:100%}
.admin-side .ord{width:4.2rem;text-align:center}
.admin-side .dt{width:100%;max-width:14.5rem}
.admin-side .score{display:flex;align-items:center;gap:.35rem}
.admin-side .score input{width:4rem;text-align:center}

/* Pills */
.pill{display:inline-flex;align-items:center;gap:.35rem;padding:.22rem .55rem;border-radius:999px;border:1px solid var(--border);background:#f9fafb;color:#374151;font-size:.82rem;white-space:nowrap}
.pill.locked{background:#f3f4f6}

/* Pills nav (scrollable on mobile) */
.tabs{display:flex;gap:.5rem;flex-wrap:nowrap;align-items:center;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}
.subnav, .subsubnav{overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}
.tabs::-webkit-scrollbar, .subnav::-webkit-scrollbar, .subsubnav::-webkit-scrollbar{display:none}

/* Pronostics / Match cards — 3 colonnes dès 1500px (sinon 2, puis 1 sur mobile) */
.matches-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
/* Desktop : 3 colonnes pour voir un max d'infos */
@media(min-width:1200px){.matches-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.matches-grid{grid-template-columns:1fr}}

.matchcard{padding:.55rem .6rem;border-radius:14px;border:1px solid var(--border);background:#fff}
.matchcard.locked{background:#f3f4f6;opacity:.95}
.matchcard.status-exact{background:#ecfdf5;border-color:#a7f3d0}
.matchcard.status-good{background:#f0fdf4;border-color:#bbf7d0}
.matchcard.status-bad{background:#fef2f2;border-color:#fecaca}

.matchline{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:.6rem;align-items:center}
.matchline .team{min-width:0}
.matchline .team:first-child{justify-content:flex-start}
.matchline .team:last-child{justify-content:flex-end;text-align:right}
/* Les noms ne doivent jamais être tronqués (pas d'ellipsis) */
.team-name{font-weight:700;font-size:.98rem;line-height:1.25;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:normal;word-break:normal;hyphens:none}

/* Pour garder une mise en page stable malgré les retours à la ligne */
.matchline .team{min-height:2.6em}

.scorebox{display:flex;align-items:center;gap:.35rem}
.scorebox input{width:3.1rem;text-align:center}
@media(max-width:720px){
  .scorebox input{width:2.6rem;padding:.5rem .4rem}
  .team-name{font-size:.92rem;line-height:1.18}
  .matchline{gap:.45rem}
  .matchline .team{min-height:2.2em}
}

@media(max-width:380px){
  .scorebox input{width:2.35rem;padding:.46rem .35rem}
  .team-name{font-size:.9rem}
}

.matchmeta{margin-top:.4rem;display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
.official-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.22rem .55rem;border-radius:999px;border:1px solid var(--border);background:#f9fafb;color:#374151;font-size:.82rem;white-space:nowrap}
.kickoff-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.22rem .55rem;border-radius:999px;border:1px solid var(--border);background:#f9fafb;color:#374151;font-size:.82rem;white-space:nowrap}
.kickoff-pill.locked{background:#f3f4f6}
.status-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.22rem .55rem;border-radius:999px;border:1px solid var(--border);background:#fff;font-size:.82rem;white-space:nowrap}

/* Inputs disabled look for scores */
.scorebox input:disabled{background:#e5e7eb;color:#6b7280;cursor:not-allowed;pointer-events:none}

.matches-stack{display:flex;flex-direction:column;gap:.6rem}

/* Finale + match pour la 3e place */
.final-matches-grid{align-items:start}
.final-match-card{overflow:hidden;padding:1rem;border-color:#dfe3ea;background:linear-gradient(180deg,#fff 0%,#fbfcfe 100%);box-shadow:0 16px 38px rgba(15,23,42,.07)}
.final-match-card.status-exact,.final-match-card.status-good,.final-match-card.status-bad{border-width:1px}
.final-match-description{display:flex;align-items:center;justify-content:space-between;gap:.8rem;flex-wrap:wrap;margin:-1rem -1rem 1rem;padding:.85rem 1rem;border-bottom:1px solid var(--accent-soft-border);background:linear-gradient(135deg,var(--accent-soft),#fff)}
.final-match-badge{display:inline-flex;align-items:center;gap:.45rem;font-weight:900;color:var(--accent-strong);font-size:1.02rem}
.final-match-badge:before{content:"";width:.58rem;height:.58rem;border-radius:50%;background:var(--accent);box-shadow:0 0 0 5px rgba(55,65,81,.09)}
.final-match-format{font-size:.78rem;font-weight:800;letter-spacing:.035em;text-transform:uppercase;color:var(--muted)}

.final-rules-panel{margin:.8rem 0 1.2rem;padding:1rem;border:1px solid var(--accent-soft-border);border-radius:18px;background:linear-gradient(135deg,var(--accent-soft),#fff 62%)}
.final-rules-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.85rem}
.final-rules-heading>div{display:grid;gap:.1rem}
.final-rules-heading strong{color:var(--accent-strong);font-size:1.12rem}
.eyebrow{font-size:.72rem;font-weight:900;letter-spacing:.09em;text-transform:uppercase;color:var(--accent-strong)}
.final-rule-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}
.final-rule-card{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"step strong" "step small" "em em";column-gap:.65rem;align-items:center;padding:.75rem;border:1px solid rgba(255,255,255,.8);border-radius:14px;background:rgba(255,255,255,.82);box-shadow:0 8px 20px rgba(15,23,42,.045)}
.final-rule-step{grid-area:step;display:inline-flex;align-items:center;justify-content:center;width:2.65rem;height:2.65rem;border-radius:12px;background:var(--accent-strong);color:#fff;font-size:.78rem;font-weight:900}
.final-rule-card strong{grid-area:strong;font-size:1.12rem;color:var(--text)}
.final-rule-card small{grid-area:small;color:var(--muted);line-height:1.2}
.final-rule-card em{grid-area:em;margin-top:.55rem;padding-top:.5rem;border-top:1px solid #edf0f4;color:var(--muted);font-size:.76rem;font-style:normal}

.final-stage{min-width:0;margin:0;padding:.85rem;border:1px solid #e3e7ed;border-radius:16px;background:#fff}
.final-stage--regulation{margin-bottom:.8rem;background:linear-gradient(180deg,#fff,#fafbfc)}
.final-stage-heading,.final-stage legend{display:flex;align-items:center;justify-content:space-between;gap:.7rem;width:100%;padding:0}
.final-stage-heading>div,.final-stage legend>span:nth-child(2){display:flex;align-items:center;gap:.6rem;min-width:0}
.final-stage-heading strong,.final-stage legend strong{display:block;font-size:.93rem}
.final-stage-heading small,.final-stage legend small{display:block;margin-top:.08rem;color:var(--muted);font-size:.72rem;font-weight:500}
.final-stage-number{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;width:1.8rem;height:1.8rem;border-radius:9px;background:var(--accent-strong);color:#fff;font-size:.78rem;font-weight:900}
.stage-points{flex:0 0 auto;padding:.3rem .5rem;border-radius:999px;background:var(--accent-soft);color:var(--accent-strong);font-size:.72rem;font-weight:900;white-space:nowrap}
.final-stage--regulation .matchline{margin-top:.85rem;padding:.2rem 0 0}
.scorebox--final input,.score--final input{width:3.45rem!important;height:3.45rem;padding:.25rem!important;border:2px solid #d8dde5!important;border-radius:13px!important;background:#fff!important;font-size:1.35rem!important;font-weight:900!important;box-shadow:inset 0 1px 2px rgba(15,23,42,.04)}
.scorebox--final input:focus,.score--final input:focus,.extra-score-square:focus{border-color:var(--accent)!important;box-shadow:0 0 0 4px var(--accent-soft)!important;outline:0}

.special-prediction-grid,.special-admin-grid{display:grid;grid-template-columns:1fr;gap:.8rem;margin-top:0}
.special-prediction-grid fieldset,.special-admin-grid fieldset{min-width:0}
.special-prediction-grid legend,.special-admin-grid legend{float:none;margin:0 0 .85rem}
.special-prediction-grid legend+*,.special-admin-grid legend+*{clear:both}
.extra-time-score{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:.75rem;align-items:end;max-width:27rem;margin:.2rem auto 0}
.extra-time-score>span{padding-bottom:1rem;font-size:1.25rem;font-weight:900;color:var(--muted)}
.extra-time-score label{display:grid;justify-items:center;gap:.42rem;margin:0;text-align:center;font-weight:800;font-size:.8rem;min-width:0}
.extra-time-score label>span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.extra-score-square{width:4rem!important;height:4rem!important;padding:.25rem!important;border:2px solid #d8dde5!important;border-radius:14px!important;text-align:center!important;font-size:1.5rem!important;font-weight:900!important;background:#fff!important}
.final-stage-note{margin:.75rem 0 0;text-align:center;color:var(--muted);font-size:.76rem}

.penalty-fieldset{display:grid;gap:.25rem}
.penalty-instruction{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;margin:-.25rem 0 .55rem;color:var(--muted);font-size:.75rem}
.penalty-instruction .legend-goal,.penalty-instruction .legend-miss{display:inline-flex;align-items:center;gap:.2rem;padding:.22rem .42rem;border-radius:999px;font-weight:900}
.penalty-instruction .legend-goal{background:#dcfce7;color:#166534}
.penalty-instruction .legend-miss{background:#fee2e2;color:#991b1b}
.penalty-team-row{display:grid;grid-template-columns:minmax(8rem,.85fr) minmax(0,1.5fr);gap:.8rem;align-items:center;padding:.65rem 0;border-top:1px solid #edf0f4}
.penalty-team-row:first-of-type{border-top:0}
.penalty-team-row>span{display:flex;align-items:center;gap:.4rem;min-width:0;font-weight:800;overflow-wrap:anywhere}
.penalty-kicks{display:grid;grid-template-columns:repeat(5,minmax(2.6rem,1fr));gap:.42rem}
.penalty-kick-wrap{min-width:0}
.penalty-kick{position:relative;display:flex;align-items:center;justify-content:center;width:100%;min-width:2.6rem;height:3.05rem;padding:.2rem;border:2px solid #d8dde5;border-radius:12px;background:#f8fafc;color:#64748b;cursor:pointer;transition:transform .12s ease,border-color .12s ease,background .12s ease,color .12s ease,box-shadow .12s ease}
.penalty-kick:hover:not(:disabled){transform:translateY(-1px);border-color:#aeb6c2;box-shadow:0 7px 14px rgba(15,23,42,.08)}
.penalty-kick.is-goal{border-color:#22c55e;background:#dcfce7;color:#166534;box-shadow:inset 0 0 0 1px rgba(34,197,94,.15)}
.penalty-kick.is-miss{border-color:#ef4444;background:#fee2e2;color:#991b1b;box-shadow:inset 0 0 0 1px rgba(239,68,68,.12)}
.penalty-kick:disabled{opacity:.65;cursor:not-allowed}
.penalty-kick-number{position:absolute;top:.2rem;left:.35rem;font-size:.58rem;font-weight:900;opacity:.72}
.penalty-kick-symbol{font-size:1.35rem;font-weight:1000;line-height:1}

.final-earned-pill{background:var(--accent-strong)!important;color:#fff!important;border-color:var(--accent-strong)!important}
.special-official-details{display:grid;gap:.5rem;margin-top:.8rem;padding:.8rem;border:1px dashed #cfd5dd;border-radius:15px;background:#f8fafc;font-size:.82rem}
.official-details-heading{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap;padding-bottom:.5rem;border-bottom:1px solid #e5e9ef}
.official-details-heading span{color:var(--muted);font-size:.75rem}
.official-detail-row,.official-penalty-row{display:grid;grid-template-columns:minmax(7rem,.8fr) minmax(0,1.4fr);gap:.6rem;align-items:center}
.official-detail-row strong{font-size:1rem}
.penalty-result-strip{display:grid;grid-template-columns:repeat(5,1.55rem);gap:.28rem}
.penalty-result-dot{display:inline-flex;align-items:center;justify-content:center;width:1.55rem;height:1.55rem;border-radius:7px;font-weight:900}
.penalty-result-dot.is-goal{background:#dcfce7;color:#166534}
.penalty-result-dot.is-miss{background:#fee2e2;color:#991b1b}
.penalty-result-dot.is-empty{background:#e5e7eb;color:#64748b}

.final-scoring-settings{margin:.65rem 0 1rem;padding:.9rem;border:1px solid var(--accent-soft-border);border-radius:16px;background:linear-gradient(135deg,var(--accent-soft),#fff)}
.final-scoring-settings-head{display:flex;align-items:flex-end;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.8rem}
.final-scoring-settings-head>div{display:grid;gap:.08rem}
.final-scoring-settings-head strong{color:var(--accent-strong);font-size:1.05rem}
.final-scoring-inputs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}
.final-scoring-inputs label{position:relative;display:grid;grid-template-columns:1fr auto;grid-template-areas:"label label" "input unit";gap:.25rem .4rem;margin:0;padding:.6rem;border:1px solid rgba(255,255,255,.9);border-radius:12px;background:rgba(255,255,255,.84)}
.final-scoring-inputs label>span{grid-area:label;color:var(--muted);font-size:.72rem;font-weight:800}
.final-scoring-inputs input{grid-area:input;width:100%;min-width:0;text-align:center;font-weight:900}
.final-scoring-inputs small{grid-area:unit;align-self:center;color:var(--muted);font-size:.68rem}
.admin-match-description{display:inline-block;margin-bottom:.4rem;padding:.25rem .5rem;border-radius:999px;background:var(--accent-soft);border:1px solid var(--accent-soft-border);color:var(--accent-strong);font-size:.78rem;font-weight:800}
.admin-score-label{display:block;margin:.35rem 0 .3rem;color:var(--muted);font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.special-admin-row>td{padding-top:0!important}
.special-admin-grid{margin:.25rem 0 .8rem}

@media(max-width:900px){
  .final-rule-grid{grid-template-columns:1fr}
  .final-scoring-inputs{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:720px){
  .final-match-description,.final-rules-heading,.final-stage-heading,.final-stage legend{align-items:flex-start;flex-direction:column}
  .final-stage legend{gap:.45rem}
  .stage-points{align-self:flex-start}
  .penalty-team-row{grid-template-columns:1fr}
  .penalty-kicks{gap:.35rem}
  .official-detail-row,.official-penalty-row{grid-template-columns:1fr}
  .final-scoring-inputs{grid-template-columns:1fr}
  .scorebox--final input,.score--final input{width:3.1rem!important;height:3.1rem!important}
  .extra-score-square{width:3.6rem!important;height:3.6rem!important}
}

/* Classement — podium */
.podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:1rem 0 1.25rem}
.podium-slot{border:1px solid var(--border);border-radius:16px;background:#fff;padding:.85rem .9rem;text-align:center}
.podium-slot.first{background:var(--accent-soft);border-color:var(--accent-soft-border);transform:translateY(-6px)}
.podium-slot.second{background:#f9fafb}
.podium-slot.third{background:#f9fafb}
.podium-rank{width:38px;height:38px;border-radius:12px;margin:0 auto .5rem;display:flex;align-items:center;justify-content:center;font-weight:900;border:1px solid var(--border);background:#fff}
.podium-slot.first .podium-rank{background:var(--accent-strong);color:#fff;border-color:var(--accent-strong)}
.podium-name{font-weight:800;font-size:1.05rem;line-height:1.2}
.podium-points{margin-top:.25rem;color:var(--muted);font-weight:700}
/* Podium mobile : compact en 3 colonnes */
@media(max-width:900px){
  .podium{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}
  .podium-slot{padding:.65rem .55rem;border-radius:14px}
  .podium-slot.first{transform:none}
  .podium-rank{width:34px;height:34px;border-radius:12px;margin:0 auto .35rem}
  .podium-name{font-size:.92rem}
  .podium-points{font-size:.82rem}
}

/* Phone : encore plus compact (moins "cartes") */
@media(max-width:600px){
  .podium-slot{padding:.55rem .45rem;border-radius:16px}
  .podium-rank{width:30px;height:30px;border-radius:12px}
  .podium-name{font-size:.85rem}
  .podium-points{font-size:.78rem}
}

/* Pronostics (groupes) — 3 colonnes sur desktop */
.groups-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
@media(min-width:1200px){.groups-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.groups-grid{grid-template-columns:1fr}}



.hero-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin:1rem 0 1.25rem}
.hero-actions .btn.secondary,
.hero-actions a.btn.secondary{background:#f3f4f6;color:var(--text);border-color:#d1d5db}
.hero-mini-board{margin:1rem 0 1.5rem}


input[type="password"]{width:100%;padding:.55rem .6rem;border-radius:8px;border:1px solid var(--border);background:#fff;color:var(--text)}

.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

.icon-link{
  width:46px;
  height:46px;
  justify-content:center;
  padding:0;
  border-radius:14px;
  border:1px solid transparent;
}
.nav-icon{font-size:1.2rem;line-height:1}
.nav-user{gap:.55rem}
.user-status{
  display:inline-flex;
  align-items:center;
  min-height:46px;
  padding:.35rem .8rem;
  border-radius:999px;
  border:1px solid var(--border);
  background:#f9fafb;
  color:#111827;
  font-size:.93rem;
  white-space:nowrap;
}
.user-status strong{font-weight:800}

@media (max-width: 900px){
  .icon-link{width:100%;height:auto;justify-content:space-between;padding:.65rem .8rem;border-radius:12px}
  .icon-link .sr-only{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto;white-space:normal}
  .icon-link .sr-only::before{content:""}
  .icon-link{font-size:.95rem}
  .icon-link .nav-icon{margin-right:.55rem}
  .nav-user{flex-direction:column;align-items:stretch}
  .user-status{white-space:normal;justify-content:flex-start}
}

.hero-home{padding:1.4rem}
.hero-split{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,.95fr);gap:1rem;align-items:start}
.hero-badge{display:inline-flex;align-items:center;gap:.45rem;padding:.35rem .75rem;border-radius:999px;background:var(--accent-soft-alt);border:1px solid var(--accent-soft-alt-border);color:var(--accent-strong);font-weight:700;font-size:.9rem;margin-bottom:.9rem}
.hero-side-card{background:linear-gradient(180deg,#ffffff 0%,#f8fafc 100%);border:1px solid var(--border);border-radius:18px;padding:1rem}
.hero-btn{display:inline-flex;align-items:center;gap:.45rem}
.team-card-highlight{box-shadow:0 12px 30px rgba(var(--accent-rgb),.06)}
.quick-links-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin-top:1rem}
.quick-links-grid-compact{margin-top:1rem}
.quick-link-card{display:flex;flex-direction:column;gap:.2rem;padding:1rem;border-radius:16px;border:1px solid var(--border);background:#fff;color:var(--text);text-decoration:none;box-shadow:0 10px 24px rgba(17,24,39,.04)}
.quick-link-card:hover{text-decoration:none;transform:translateY(-1px);box-shadow:0 14px 28px rgba(17,24,39,.08)}
.quick-link-icon{font-size:1.35rem}
.quick-link-title{font-weight:800}
.quick-link-text{color:var(--muted);font-size:.92rem;line-height:1.35}

.profile-hero{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(260px,.8fr);gap:1rem;align-items:stretch}
.profile-hero-main h1{margin:.2rem 0 .4rem;font-size:2rem}
.profile-hero-side{display:flex}
.profile-total-card{display:flex;flex-direction:column;justify-content:center;gap:.35rem;width:100%;padding:1.1rem;border-radius:20px;background:linear-gradient(135deg,var(--accent-strong),var(--accent));color:#fff;box-shadow:0 18px 36px rgba(var(--accent-rgb),.24)}
.profile-total-label{font-size:.95rem;opacity:.9}
.profile-total-value{font-size:2rem;line-height:1;font-weight:900}
.profile-total-card .muted{color:#dbeafe}
.profile-identity-row{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}
.profile-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .8rem;border-radius:999px;background:#f9fafb;border:1px solid var(--border)}

.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:1rem}
.stat-card{display:flex;flex-direction:column;gap:.15rem;min-height:140px;justify-content:center}
.stat-icon{font-size:1.4rem}
.stat-label{color:var(--muted);font-size:.95rem}
.stat-value{font-size:1.7rem;line-height:1.1}

.profile-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.profile-panel{height:100%}
.profile-summary-list{display:flex;flex-direction:column;gap:.7rem}
.profile-summary-row{display:flex;align-items:center;justify-content:space-between;padding:.8rem .9rem;border-radius:14px;background:#f8fafc;border:1px solid var(--border)}
.profile-summary-row.total{background:var(--accent-soft);border-color:var(--accent-soft-border)}
.favorite-team-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;border-radius:18px;background:#f8fafc;border:1px solid var(--border)}
.favorite-team-name{display:flex;align-items:center;gap:.55rem;font-size:1.1rem}
.favorite-team-points{font-weight:900;font-size:1.4rem;color:var(--accent-strong)}
.favorite-team-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:1rem}
.favorite-team-stats > div{padding:.8rem;border-radius:14px;background:#fff;border:1px solid var(--border);display:flex;flex-direction:column;gap:.15rem}
.favorite-team-stats span{color:var(--muted);font-size:.9rem}
.favorite-team-stats strong{font-size:1.15rem}

@media(max-width:1100px){
  .hero-split,.profile-hero,.profile-columns{grid-template-columns:1fr}
  .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:720px){
  .quick-links-grid,.stats-grid,.favorite-team-stats{grid-template-columns:1fr}
  .hero-home{padding:1rem}
  .profile-hero-main h1{font-size:1.65rem}
  .profile-total-value{font-size:1.7rem}
}

/* --- Refonte compacte et professionnelle --- */
:root{
  --bg:#f5f5f7;
  --card:#ffffff;
  --text:#111111;
  --muted:#666a73;
  --border:#d9dbe1;
  --accent:#111111;
  --max-width:1680px;
  --page-gutter:14px;
}

html{scroll-behavior:smooth}
body{
  background:var(--bg);
  color:var(--text);
  font-size:15px;
  line-height:1.45;
}

a{color:inherit}

h1,h2,h3{letter-spacing:-.03em}

.site-main{
  padding-top:.7rem;
  padding-bottom:1.2rem;
}
.site-footer{
  padding:0 var(--page-gutter) 1rem;
  color:var(--muted);
  font-size:.84rem;
}

.card{
  padding:.95rem 1rem;
  margin-bottom:.85rem;
  border-radius:16px;
  border:1px solid var(--border);
  box-shadow:0 1px 2px rgba(0,0,0,.02);
}

.topbar{
  background:rgba(255,255,255,.96);
  border-bottom:1px solid var(--border);
  box-shadow:0 8px 24px rgba(0,0,0,.04);
}
.topbar-inner{
  padding:.55rem var(--page-gutter);
  gap:.7rem;
}
.brand{
  gap:.65rem;
  font-size:1.05rem;
}
.brand-icon{
  width:38px;
  height:38px;
  border-radius:12px;
  background:#fff;
  border:1px solid var(--border);
  color:#111;
}
.brand-icon .ui-icon{width:18px;height:18px}
.brand-title{font-weight:800}

.nav-links{gap:.35rem}
.nav-link{
  min-height:40px;
  padding:.42rem .7rem;
  border-radius:12px;
  font-size:.92rem;
}
.nav-link:hover{
  background:#f3f4f6;
}
.nav-link.active{
  background:#111827;
  border-color:#111827;
  color:#fff;
}
.nav-link.logout,
.hero-actions .btn.secondary,
.hero-actions a.btn.secondary,
button.secondary,
.btn.secondary{
  background:#fff;
  color:#111;
  border-color:var(--border);
}
.icon-link{
  width:40px;
  height:40px;
  border-radius:12px;
}
.nav-icon,
.ui-icon{
  width:18px;
  height:18px;
  flex:0 0 auto;
}
.user-status{
  min-height:40px;
  padding:.22rem .78rem;
  border-radius:999px;
  background:#fff;
  font-size:.9rem;
}
.user-status strong{margin-left:.2rem}

button,.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  padding:.55rem .8rem;
  border-radius:12px;
  border:1px solid #111827;
  background:#111827;
  color:#fff;
  font-weight:700;
  font-size:.92rem;
}
button:hover,.btn:hover{text-decoration:none}
input[type="text"], input[type="number"], input[type="datetime-local"], input[type="password"], select{
  padding:.52rem .58rem;
  border-radius:10px;
  border:1px solid var(--border);
  font-size:.94rem;
}
.table{font-size:13px}
.table th,.table td{padding:.44rem .35rem}
.notice{padding:.55rem .75rem;border-radius:10px}

.hero-home{
  padding:1rem 1.05rem;
}
.hero-split{
  grid-template-columns:minmax(0,1.22fr) minmax(320px,.88fr);
  gap:.85rem;
}
.hero-badge{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  padding:.32rem .68rem;
  margin-bottom:.75rem;
  border-radius:999px;
  background:#fff;
  border:1px solid var(--border);
  color:#111;
  font-size:.82rem;
  font-weight:700;
}
.hero-badge .ui-icon,
.btn-icon,
.badge-icon,
.chip-icon{width:16px;height:16px}
.hero-home h1{
  margin:.1rem 0 .45rem;
  font-size:2.2rem;
  line-height:1.03;
}
.hero-home p{margin:.2rem 0 0;max-width:70ch}
.compact-list{margin:.45rem 0 .9rem 1.1rem;padding:0}
.compact-list li{margin:.08rem 0}
.hero-actions{
  gap:.55rem;
  margin:.95rem 0 0;
}
.hero-btn{min-height:42px}
.hero-side-card,
.compact-card{
  padding:.95rem;
  border-radius:16px;
  background:#fff;
}
.quick-links-grid{
  gap:.65rem;
  margin-top:.75rem;
}
.quick-link-card{
  padding:.85rem .9rem;
  border-radius:14px;
  box-shadow:none;
  min-height:106px;
}
.quick-link-card:hover{
  transform:none;
  box-shadow:none;
  border-color:#c3c7cf;
}
.quick-link-icon,
.stat-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  margin-bottom:.25rem;
  border-radius:10px;
  border:1px solid var(--border);
  background:#f8f8f9;
  color:#111;
}
.quick-link-icon .ui-icon,
.stat-icon .ui-icon{width:18px;height:18px}
.quick-link-title{font-size:.98rem;font-weight:800}
.quick-link-text{font-size:.87rem;line-height:1.35}

.section-heading-inline{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  margin:0 0 .65rem;
}
.section-heading-inline h2{
  margin:0;
  font-size:1.34rem;
}
.section-note{
  color:var(--muted);
  font-size:.8rem;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.compact-board{margin:1rem 0 1.15rem}
.compact-team-grid{gap:.8rem}
.compact-team-card{
  padding:.75rem .85rem;
  border-radius:14px;
}
.team-card-highlight{box-shadow:none}
.team-role{display:flex;align-items:center;gap:.45rem;font-size:.9rem}
.team-card .team-name{font-size:1.15rem}

.profile-hero{
  grid-template-columns:minmax(0,1.22fr) minmax(240px,.82fr);
  gap:.85rem;
  padding:1rem 1.05rem;
}
.profile-hero-main h1{
  margin:.15rem 0 .28rem;
  font-size:1.95rem;
}
.profile-identity-row{
  gap:.5rem;
  margin-top:.8rem;
}
.profile-chip{
  gap:.35rem;
  padding:.38rem .72rem;
  background:#fff;
  font-size:.88rem;
}
.profile-total-card{
  padding:1rem;
  border-radius:16px;
  background:#111827;
  box-shadow:none;
}
.profile-total-label{font-size:.9rem}
.profile-total-value{font-size:1.85rem}
.profile-total-card .muted{color:#e5e7eb}

.stats-grid{
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:.75rem;
  margin-bottom:.85rem;
}
.stat-card{
  min-height:108px;
  padding:.85rem;
  border-radius:14px;
}
.stat-label{font-size:.86rem}
.stat-value{font-size:1.35rem}

.profile-columns{gap:.85rem}
.profile-summary-list{gap:.55rem}
.profile-summary-row{
  padding:.72rem .8rem;
  border-radius:12px;
}
.profile-summary-row.total{
  background:#111827;
  border-color:#111827;
  color:#fff;
}
.favorite-team-banner{
  padding:.85rem .95rem;
  border-radius:16px;
  background:#fff;
}
.favorite-team-points{
  color:#111;
  font-size:1.35rem;
}
.favorite-team-stats{
  gap:.65rem;
  margin-top:.85rem;
}
.favorite-team-stats > div{
  padding:.7rem;
  border-radius:12px;
}
.page-shell{margin-bottom:.85rem}

@media (max-width: 1400px){
  .stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media (max-width: 1100px){
  body{font-size:14px}
  .hero-split,
  .profile-hero,
  .profile-columns{grid-template-columns:1fr}
  .hero-home h1{font-size:1.9rem}
  .stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media (max-width: 900px){
  .nav-links{top:calc(100% + .45rem)}
  .icon-link{width:100%;height:auto;justify-content:flex-start;padding:.6rem .75rem}
  .nav-user{gap:.45rem}
  .user-status{padding:.45rem .7rem}
  .section-heading-inline{flex-direction:column;align-items:flex-start;gap:.2rem}
}

@media (max-width: 720px){
  .quick-links-grid,
  .stats-grid,
  .favorite-team-stats,
  .grid-2,
  .grid-3,
  .grid-4{grid-template-columns:1fr}
  .hero-home,
  .profile-hero{padding:.9rem}
  .hero-home h1{font-size:1.7rem}
  .profile-hero-main h1{font-size:1.6rem}
  .profile-total-value{font-size:1.6rem}
}


/* --- Refonte accueil + chat --- */
:root{
  --max-width: 1680px;
}
body{
  background:#f5f5f7;
  font-size:15px;
  line-height:1.45;
}
.site-main{
  padding-top:.75rem;
}
.topbar{
  box-shadow:0 8px 18px rgba(17,24,39,.04);
}
.topbar-inner,
.site-footer{
  max-width:var(--max-width);
}
.card{
  border-radius:18px;
  padding:.95rem 1rem;
  box-shadow:0 1px 0 rgba(17,24,39,.03);
}
.page-shell{margin-bottom:.7rem}
.hero-home h1,
.profile-hero-main h1{letter-spacing:-.03em}
.user-status{font-size:.88rem;padding:.18rem .72rem}

.home-v2{
  display:grid;
  gap:.9rem;
}
.home-v2-grid{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(330px,.9fr);
  gap:.9rem;
}
.home-v2-hero{
  min-height:100%;
  background:linear-gradient(180deg,#ffffff 0%,#fafafa 100%);
  border-color:#e7e7ea;
}
.home-kicker{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  padding:.34rem .65rem;
  border-radius:999px;
  border:1px solid var(--border);
  background:#fff;
  color:#111;
  font-size:.82rem;
  font-weight:700;
}
.home-v2-hero h1{
  margin:.55rem 0 .35rem;
  font-size:clamp(2rem,3.4vw,3.3rem);
  line-height:.97;
  max-width:13ch;
}
.home-lead{
  margin:0;
  max-width:68ch;
  color:#4b5563;
  font-size:1rem;
}
.home-inline-stats{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.7rem;
  margin:1rem 0 .95rem;
}
.mini-stat{
  display:flex;
  align-items:center;
  gap:.72rem;
  padding:.8rem;
  border:1px solid var(--border);
  border-radius:16px;
  background:#fff;
}
.mini-stat-icon,
.mini-link span,
.presence-link,
.chat-send-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.mini-stat-icon{
  width:40px;
  height:40px;
  border-radius:12px;
  background:#111;
  color:#fff;
}
.mini-stat strong{display:block;font-size:1rem;line-height:1.1}
.mini-stat span:last-child{display:block;color:#6b7280;font-size:.84rem}
.home-actions-tight{margin-top:0;gap:.5rem}
.home-actions-tight .btn{min-height:40px}
.home-v2-side{
  display:grid;
  gap:.9rem;
}
.side-card{
  background:#fff;
}
.compact-heading{margin-bottom:.7rem}
.compact-heading h2{font-size:1.15rem}
.compact-text{margin:.1rem 0 .8rem}
.user-presence{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  padding:.8rem;
  border-radius:16px;
  background:#111827;
  color:#fff;
}
.user-presence p{
  margin:.12rem 0 0;
  color:#cfd4dc;
  font-size:.88rem;
}
.presence-link{
  width:40px;
  height:40px;
  border-radius:12px;
  background:#fff;
  color:#111827;
  flex:0 0 auto;
}
.presence-metrics{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.65rem;
  margin-top:.7rem;
}
.presence-metrics div,
.next-match-row,
.mini-link,
.leader-row,
.ranking-row,
.chat-message{
  border:1px solid var(--border);
  background:#fff;
}
.presence-metrics div{
  padding:.72rem .8rem;
  border-radius:14px;
}
.presence-metrics span,
.next-match-row span,
.leader-row small,
.ranking-row span,
.chat-meta span{
  display:block;
  color:#6b7280;
  font-size:.82rem;
}
.presence-metrics strong{display:block;margin-top:.15rem;font-size:1rem}
.quick-actions-mini{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.6rem;
  margin-top:.8rem;
}
.mini-link{
  display:flex;
  align-items:center;
  gap:.65rem;
  padding:.72rem .78rem;
  border-radius:14px;
  color:#111;
  text-decoration:none;
}
.mini-link:hover{text-decoration:none;background:#fafafa}
.mini-link span{
  width:34px;
  height:34px;
  border-radius:10px;
  background:#f5f5f7;
}
.next-match-list{display:grid;gap:.55rem}
.next-match-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.65rem;
  padding:.72rem .8rem;
  border-radius:14px;
}
.next-match-row strong,
.next-match-row span{display:block}
.next-match-row strong{color:#111;font-size:.92rem}
.next-match-row span{margin-top:.16rem}
.next-match-row small{color:#111;font-weight:700;white-space:nowrap}
.home-panels-grid{
  display:grid;
  grid-template-columns:minmax(260px,.9fr) minmax(260px,.9fr) minmax(340px,1.15fr);
  gap:.9rem;
}
.home-panel{background:#fff}
.leaders-stack,
.ranking-list{display:grid;gap:.6rem}
.leader-row,
.ranking-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.8rem;
  padding:.78rem .82rem;
  border-radius:15px;
}
.leader-row-main,
.ranking-main{min-width:0}
.leader-title,
.ranking-main strong{
  display:flex;
  align-items:center;
  gap:.5rem;
  font-size:.96rem;
}
.ranking-main span{margin-top:.18rem}
.leader-row-side,
.ranking-points{text-align:right;white-space:nowrap}
.leader-row-side strong,
.ranking-points{font-size:1rem}
.ranking-row.is-current{
  border-color:#111827;
  background:#f8fafc;
}
.ranking-rank{
  width:42px;
  height:42px;
  border-radius:12px;
  background:#111827;
  color:#fff !important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:800;
  flex:0 0 auto;
}
.chat-panel{padding-bottom:.85rem}
.chat-shell{display:grid;gap:.7rem}
.chat-messages{
  display:grid;
  gap:.55rem;
  min-height:330px;
  max-height:460px;
  overflow:auto;
  padding-right:.2rem;
}
.chat-message{
  padding:.72rem .8rem;
  border-radius:16px;
}
.chat-message.is-mine{
  border-color:#111827;
  background:#f9fafb;
}
.chat-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.8rem;
  margin-bottom:.28rem;
}
.chat-meta strong{font-size:.9rem}
.chat-message p{
  margin:0;
  white-space:pre-wrap;
  color:#111827;
  font-size:.92rem;
}
.chat-empty{
  min-height:220px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px dashed var(--border);
  border-radius:16px;
  color:#6b7280;
  font-size:.92rem;
  padding:1rem;
  text-align:center;
}
.chat-form{
  display:grid;
  grid-template-columns:minmax(0,1fr) 50px;
  gap:.55rem;
}
.chat-form input[type="text"]{
  min-height:46px;
  border-radius:14px;
  padding:.75rem .9rem;
}
.chat-send-btn{
  min-height:46px;
  width:50px;
  padding:0;
  border-radius:14px;
}
.chat-status{margin:.05rem 0 0;font-size:.84rem}
.chat-login-box{display:grid;gap:.6rem}
.full-btn{width:100%}

@media (max-width: 1350px){
  .home-v2-grid{grid-template-columns:1fr}
  .home-panels-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width: 1100px){
  .home-inline-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width: 860px){
  body{font-size:14px}
  .home-panels-grid,
  .quick-actions-mini,
  .presence-metrics,
  .home-inline-stats{grid-template-columns:1fr}
  .home-v2-hero h1{max-width:none}
  .leader-row,
  .ranking-row,
  .next-match-row{align-items:flex-start;flex-direction:column}
  .leader-row-side,
  .ranking-points{text-align:left}
}


/* --- Header labels + accueil focalisée + mobile amélioré --- */
.topbar-inner{
  align-items:center;
}
.nav-links{
  gap:.5rem;
}
.icon-link{
  width:auto;
  height:auto;
  min-height:42px;
  padding:.55rem .82rem;
  justify-content:flex-start;
}
.nav-label{
  display:inline;
  font-weight:700;
}
.nav-user{
  gap:.55rem;
  align-items:center;
}
.account-link{
  min-width:0;
}
.account-link .nav-label{
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:12rem;
}
.nav-link.active .nav-icon,
.nav-link.active .nav-label{
  color:inherit;
}

.home-focus{
  display:grid;
  gap:1rem;
}
.home-focus-grid{
  display:grid;
  grid-template-columns:minmax(0,1.32fr) minmax(360px,.88fr);
  gap:1rem;
  align-items:stretch;
}
.home-focus-hero,
.home-chat-panel,
.upcoming-panel{
  border-radius:24px;
  border-color:#e5e7eb;
  box-shadow:0 10px 30px rgba(15,23,42,.04);
}
.home-focus-hero{
  background:radial-gradient(circle at top left,#ffffff 0%,#fafafa 60%,#f7f7f8 100%);
  padding:1.2rem 1.2rem 1.1rem;
}
.home-focus-hero h1{
  max-width:13ch;
}
.home-chat-panel{
  display:flex;
  flex-direction:column;
  padding:1rem;
  background:linear-gradient(180deg,#ffffff 0%,#fbfbfb 100%);
}
.home-chat-panel .chat-shell{
  flex:1 1 auto;
}
.home-chat-panel .chat-messages{
  min-height:430px;
  max-height:430px;
  padding-right:.1rem;
}
.compact-heading > div p{
  margin:.18rem 0 0;
}
.chat-author{
  display:flex;
  align-items:center;
  gap:.7rem;
  min-width:0;
}
.chat-avatar{
  width:34px;
  height:34px;
  border-radius:11px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#111827;
  color:#fff;
  font-weight:800;
  flex:0 0 auto;
}
.chat-author strong,
.chat-author span{
  display:block;
}
.chat-author strong{
  font-size:.92rem;
  line-height:1.1;
}
.chat-author span{
  margin-top:.18rem;
  color:#6b7280;
  font-size:.8rem;
}
.chat-meta{
  margin-bottom:.45rem;
}
.chat-message{
  padding:.8rem .85rem;
  border-radius:18px;
}
.chat-message.is-mine{
  background:#f8fafc;
}
.chat-form{
  grid-template-columns:minmax(0,1fr) 52px;
  align-items:end;
}
.chat-form input[type="text"]{
  min-height:48px;
  border-radius:15px;
}
.chat-send-btn{
  min-height:48px;
  width:52px;
  border-radius:15px;
}
.upcoming-panel{
  padding:1rem;
  background:#fff;
}
.upcoming-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.85rem;
}
.upcoming-card{
  border:1px solid var(--border);
  border-radius:18px;
  padding:.85rem .9rem;
  background:linear-gradient(180deg,#ffffff 0%,#fafafa 100%);
}
.upcoming-card-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  margin-bottom:.8rem;
}
.upcoming-card-top strong{
  font-size:.9rem;
  white-space:nowrap;
}
.upcoming-badge{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:.22rem .55rem;
  border-radius:999px;
  background:#f3f4f6;
  color:#374151;
  font-size:.76rem;
  font-weight:700;
}
.upcoming-teams{
  display:grid;
  gap:.55rem;
}
.upcoming-team{
  display:flex;
  align-items:center;
  gap:.55rem;
  min-width:0;
}
.upcoming-team span{
  font-weight:700;
  line-height:1.2;
}
.upcoming-versus{
  color:#6b7280;
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  padding-left:.1rem;
}
.compact-empty{
  min-height:160px;
}


@media (max-width: 1280px){
  .nav-links{gap:.35rem}
  .nav-label{font-size:.88rem}
  .user-status{font-size:.84rem}
  .home-focus-grid{grid-template-columns:1fr;}
  .home-chat-panel .chat-messages{min-height:360px;max-height:360px}
  .upcoming-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}

@media (max-width: 980px){
  .topbar-inner{padding:.55rem var(--page-gutter)}
  .brand-title{font-size:1rem}
  .nav-links{
    position:absolute;
    left:0;
    right:0;
    top:calc(100% + .5rem);
    display:none;
    flex-direction:column;
    align-items:stretch;
    gap:.45rem;
    padding:.7rem;
    background:#fff;
    border:1px solid var(--border);
    border-radius:18px;
    box-shadow:0 22px 50px rgba(15,23,42,.14);
  }
  .nav-links.open{display:flex}
  .nav-link,
  .icon-link{
    width:100%;
    min-height:48px;
    border-radius:14px;
    padding:.72rem .85rem;
    justify-content:flex-start;
  }
  .nav-user{
    width:100%;
    flex-direction:column;
    align-items:stretch;
    padding-top:.1rem;
    margin-left:0;
  }
  .account-link .nav-label{
    max-width:none;
  }
  .nav-toggle{display:inline-flex}
}

@media (max-width: 720px){
  body{font-size:14px;line-height:1.38}
  .site-main{padding-top:.55rem;padding-bottom:1rem}
  .site-footer{padding:0 12px 1rem;font-size:.76rem}
  .topbar{position:sticky;top:0}
  .topbar-inner{padding:.5rem 12px;gap:.55rem}
  .brand{min-width:0;gap:.55rem}
  .brand-title{font-size:.98rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .brand-icon{width:36px;height:36px;border-radius:11px}
  .nav-toggle{width:42px;height:42px;border-radius:12px}
  .account-link .nav-label{font-size:.95rem}
  .home-focus-grid,
  .upcoming-grid,
  .home-inline-stats{grid-template-columns:1fr}
  .home-focus-hero,
  .home-chat-panel,
  .upcoming-panel{padding:.9rem;border-radius:18px}
  .home-focus-hero h1{font-size:1.9rem;line-height:1.02;max-width:none;margin:.55rem 0 .35rem}
  .home-lead{font-size:.95rem}
  .mini-stat{padding:.72rem;border-radius:14px}
  .mini-stat-icon{width:38px;height:38px}
  .hero-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:.55rem;
  }
  .hero-actions .btn{width:100%;min-height:44px;padding:.7rem .75rem}
  .home-chat-panel .chat-messages{min-height:290px;max-height:46vh}
  .chat-message{padding:.72rem .75rem;border-radius:16px}
  .chat-avatar{width:30px;height:30px;border-radius:10px;font-size:.86rem}
  .chat-form{grid-template-columns:minmax(0,1fr) 48px;gap:.5rem}
  .chat-form input[type="text"]{min-height:46px;padding:.72rem .85rem;font-size:16px}
  .chat-send-btn{min-height:46px;width:48px}
  .upcoming-card{padding:.75rem .78rem;border-radius:16px}
  .upcoming-card-top{margin-bottom:.7rem;align-items:flex-start;flex-direction:column}
  .upcoming-card-top strong{font-size:.88rem}
}

@media (max-width: 480px){
  .hero-actions{grid-template-columns:1fr}
  .home-focus-hero h1{font-size:1.72rem}
  .home-kicker{font-size:.78rem}
  .upcoming-team span{font-size:.92rem}
  .nav-links{left:12px;right:12px}
}


/* --- Ajustements page équipes + chat compact + prochains matchs optimisés --- */
.team-points-page{padding:1rem}
.team-points-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin-top:.9rem}
.team-points-card{border:1px solid var(--border);border-radius:18px;background:#fff;padding:.85rem .9rem;box-shadow:0 8px 22px rgba(15,23,42,.04)}
.team-points-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.7rem;margin-bottom:.8rem}
.team-points-rank{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:34px;padding:0 .6rem;border-radius:999px;background:#f3f4f6;font-weight:800;color:#111827}
.team-points-name{display:flex;align-items:center;gap:.55rem;min-width:0}
.team-points-name strong{line-height:1.15}
.team-points-total{font-weight:800;color:#111827;white-space:nowrap}
.team-points-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}
.team-points-stats div{border:1px solid var(--border);border-radius:14px;background:#fafafa;padding:.58rem .45rem;text-align:center}
.team-points-stats span{display:block;font-size:.74rem;color:#6b7280;text-transform:uppercase;letter-spacing:.06em}
.team-points-stats strong{display:block;margin-top:.15rem;font-size:1rem;color:#111827}

.home-chat-panel .chat-messages{height:clamp(180px,30vh,300px);min-height:0;max-height:none;padding-right:.1rem}
.chat-empty{min-height:120px}
.chat-message{padding:.58rem .7rem;border-radius:16px}
.chat-message-top{display:flex;align-items:center;gap:.48rem;margin-bottom:.3rem;min-width:0}
.chat-favorite-flag{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:26px;height:20px;border-radius:999px;background:#f3f4f6;overflow:hidden;border:1px solid #e5e7eb}
.chat-favorite-flag .flag{display:block;width:100%;height:100%;object-fit:cover}
.chat-message-top strong{font-size:.92rem;line-height:1.1;min-width:0}
.chat-time{margin-left:auto;font-size:.78rem;color:#6b7280;white-space:nowrap}
.chat-message p{font-size:.9rem;line-height:1.42;color:#111827;margin:0;padding-left:0}

.upcoming-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.upcoming-row-card{border:1px solid var(--border);border-radius:18px;background:linear-gradient(180deg,#fff 0%,#fafafa 100%);padding:.82rem .88rem;display:grid;gap:.7rem}
.upcoming-row-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}
.upcoming-row-head strong{font-size:.9rem;white-space:nowrap}
.upcoming-row-body{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:.6rem}
.upcoming-row-body .upcoming-team:first-child{justify-content:flex-start}
.upcoming-row-body .upcoming-team:last-child{justify-content:flex-end;text-align:right}
.upcoming-team{display:flex;align-items:center;gap:.5rem;min-width:0}
.upcoming-team span{font-weight:700;line-height:1.18;font-size:.98rem}
.upcoming-versus{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:28px;padding:0 .45rem;border-radius:999px;background:#f3f4f6;color:#6b7280;font-size:.72rem;letter-spacing:.08em}

@media (max-width: 980px){
  .upcoming-list{grid-template-columns:1fr}
  .team-points-grid{grid-template-columns:1fr}
}

@media (max-width: 720px){
  .team-points-page{padding:.9rem}
  .team-points-card{padding:.75rem .78rem;border-radius:16px}
  .team-points-head{grid-template-columns:auto minmax(0,1fr);gap:.6rem}
  .team-points-total{grid-column:1 / -1;justify-self:start}
  .team-points-stats{gap:.45rem}
  .team-points-stats div{padding:.52rem .35rem;border-radius:12px}
  .home-chat-panel .chat-messages{height:clamp(160px,26vh,230px)}
  .chat-message{padding:.52rem .62rem;border-radius:14px}
  .chat-message-top strong{font-size:.88rem}
  .chat-time{font-size:.74rem}
  .chat-message p{font-size:.88rem}
  .upcoming-panel{padding:.9rem}
  .upcoming-row-card{padding:.72rem .76rem;border-radius:16px;gap:.62rem}
  .upcoming-row-head strong{font-size:.84rem}
  .upcoming-row-body{gap:.45rem}
  .upcoming-team span{font-size:.92rem}
  .upcoming-versus{min-width:34px;height:24px;font-size:.68rem}
}

@media (max-width: 480px){
  .team-points-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}


/* Ajustements finaux */
.player-favorite{display:inline-flex;align-items:center;gap:.5rem;font-weight:600}
.danger-inline{display:inline-flex;align-items:center;justify-content:flex-end;gap:.5rem;flex-wrap:wrap}
.danger-inline input{width:138px}
.bar-note{margin-top:.1rem;margin-bottom:1rem}
.bar-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.bar-card{border:1px solid var(--border);border-radius:20px;background:#fafafa;padding:1rem}
.bar-card-head{margin-bottom:.9rem}
.bar-card-head h3{margin:0 0 .18rem;font-size:1.05rem}
.bar-card-head p{margin:0}
.bar-input-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem}
.bar-input-grid label{display:block;margin-bottom:.38rem;font-weight:700;color:#111827}
.bar-input-grid input{width:100%}
.upcoming-team .flag-wrap{width:26px !important;height:18px !important}
.upcoming-team .flag-fallback{font-size:.72rem}
.upcoming-team{gap:.62rem}
.upcoming-row-card{padding:.78rem .9rem}
.upcoming-row-head strong{font-size:.96rem}
.upcoming-row-body{gap:.8rem}
.upcoming-versus{min-width:42px}
.chat-favorite-flag .flag-fallback{font-size:.72rem}
.chat-message-top{gap:.52rem}
.chat-time{margin-left:auto}
@media (max-width: 900px){
  .bar-grid{grid-template-columns:1fr}
}
@media (max-width: 720px){
  .bar-card{padding:.85rem;border-radius:18px}
  .bar-input-grid{grid-template-columns:1fr;gap:.72rem}
  .danger-inline{justify-content:flex-start}
  .danger-inline input{width:126px}
  .upcoming-team .flag-wrap{width:24px !important;height:16px !important}
}


.flag-emoji{display:inline-flex;align-items:center;justify-content:center;line-height:1;flex:0 0 auto}
.brand{padding:.1rem 0}
.upcoming-team .flag-emoji,.player-favorite .flag-emoji,.team-points-name .flag-emoji,.team .flag-emoji,.chat-favorite-flag .flag-emoji{font-size:18px !important;width:auto !important;height:auto !important}
.chat-favorite-flag{width:auto;height:auto;padding:.08rem .18rem;border-radius:999px;background:#f3f4f6;min-width:30px}
.chat-favorite-flag .flag-emoji{font-size:16px !important}
.nav-toggle-label{display:none}
@media (max-width: 900px){
  .nav-toggle{padding:0 .95rem;height:50px;border-radius:16px}
  .nav-toggle-label{display:inline-block}
}
@media (max-width: 720px){
  .brand-title{font-size:1.28rem}
  .upcoming-row-head strong{font-size:.88rem}
  .upcoming-row-body{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}
  .upcoming-team{gap:.45rem}
  .upcoming-team span{font-size:.9rem}
  .upcoming-versus{min-width:32px}
}
.bar-input-grid--duo{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width: 720px){
  .bar-input-grid--duo{grid-template-columns:1fr}
}


/* --- Correctifs finaux header mobile + vrais drapeaux image --- */
.topbar-inner{align-items:center}
.brand{flex:1 1 auto;min-width:0}
.brand-title{display:block;max-width:100%;overflow:visible;text-overflow:clip}
.nav-toggle{flex:0 0 auto;white-space:nowrap;overflow:hidden}
.nav-toggle-label{font-weight:800;letter-spacing:-.01em}

/* Toujours privilégier une vraie image de drapeau quand disponible */
.flag-wrap,.flag-emoji{flex:0 0 auto}
.flag-wrap img.flag{width:100%;height:100%;object-fit:cover;border-radius:3px}
.team .flag-wrap,.player-favorite .flag-wrap,.team-points-name .flag-wrap,.chat-favorite-flag .flag-wrap,.upcoming-team .flag-wrap{overflow:hidden;border-radius:4px}
.chat-favorite-flag{padding:0;border:none;background:transparent;min-width:auto}
.chat-favorite-flag .flag-wrap{width:22px !important;height:16px !important}
.chat-favorite-flag .flag-fallback{font-size:.62rem}
.team .flag-wrap{width:24px !important;height:18px !important}
.upcoming-team .flag-wrap{width:28px !important;height:20px !important}
.player-favorite .flag-wrap{width:22px !important;height:16px !important}
.team-points-name .flag-wrap{width:24px !important;height:18px !important}

/* Mobile header plus propre */
@media (max-width: 900px){
  .topbar-inner{padding:.6rem 12px;gap:.65rem}
  .brand{padding:0;min-width:0}
  .brand-title{font-size:clamp(1rem,6vw,1.45rem);line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .nav-toggle{width:auto !important;min-width:112px;height:48px;padding:0 .9rem;border-radius:16px;justify-content:center;gap:.7rem}
  .nav-toggle-label{display:inline-flex !important;align-items:center;font-size:.96rem;line-height:1}
  .burger{flex:0 0 auto}
  .nav-links{top:calc(100% + .45rem)}
}

@media (max-width: 560px){
  .topbar-inner{padding:.55rem 10px;gap:.55rem}
  .brand-title{font-size:clamp(.92rem,6.2vw,1.22rem)}
  .nav-toggle{min-width:104px;height:46px;padding:0 .8rem;border-radius:15px}
  .nav-toggle-label{font-size:.92rem}
}

@media (max-width: 420px){
  .topbar-inner{gap:.45rem}
  .brand-title{font-size:clamp(.88rem,6vw,1.1rem)}
  .nav-toggle{min-width:98px;padding:0 .72rem}
}


/* === Fixes mobiles + pouvoir x3 === */
html, body { max-width: 100%; overflow-x: hidden; }
body { overflow-wrap: break-word; }
.site-main, .site-footer, .topbar, .topbar-inner { max-width: 100%; }
.card, .group-box, .matchcard, .upcoming-row-card { max-width: 100%; }
.table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.table-wrap .table{min-width:760px}

.topbar-inner{min-width:0}
.brand{flex:1 1 auto;min-width:0;overflow:hidden}
.brand-title{display:block;min-width:0;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav-toggle{flex:0 0 auto}

.power-picker{display:grid;gap:.38rem;min-width:min(100%,340px);padding:.72rem .78rem;border:1px solid var(--border);border-radius:18px;background:rgba(255,255,255,.96);box-shadow:0 10px 24px rgba(17,24,39,.08)}
.power-picker label{font-size:.84rem;font-weight:800;color:#111827;margin:0}
.power-picker-note{margin:0;font-size:.76rem;line-height:1.35;color:#6b7280;max-width:34ch}
.power-picker select{min-width:0}
.power-picker-locked{font-size:.76rem;color:var(--accent-strong);font-weight:700}
.power-pill{display:inline-flex;align-items:center;justify-content:center;padding:.24rem .55rem;border-radius:999px;background:var(--accent-soft);border:1px solid var(--accent-soft-border);color:var(--accent-strong);font-size:.78rem;font-weight:800}
.matchcard.boosted{border-color:var(--accent-soft-border);box-shadow:0 0 0 1px var(--accent-soft-border) inset;background:linear-gradient(180deg,#ffffff 0%,var(--accent-soft-alt) 100%)}
.floating-actions{flex-direction:row;align-items:flex-end;gap:.7rem}
.floating-actions button{white-space:nowrap;min-height:52px;padding:.78rem 1rem;border-radius:16px}

@media (max-width: 900px){
  .floating-actions{flex-direction:column;align-items:stretch;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));}
  .floating-actions button{width:100%}
  .power-picker{width:100%;min-width:0}
}

@media (max-width: 640px){
  .site-main{padding-top:.8rem}
  .topbar-inner{padding:.72rem 12px;gap:.65rem}
  .brand-title{font-size:1rem;line-height:1.05}
  .nav-toggle{height:46px;padding:0 .72rem;border-radius:16px;gap:.5rem}
  .nav-toggle-label{font-size:1rem;line-height:1}
  .burger span{width:20px}
  .table-wrap .table{min-width:680px}
}

@media (max-width: 420px){
  .brand-title{font-size:.94rem}
  .nav-toggle{padding:0 .66rem}
  .nav-toggle-label{font-size:.96rem}
  .matchline{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:.35rem}
  .team-name{font-size:.88rem;line-height:1.12}
  .scorebox{gap:.24rem}
  .scorebox input{width:2.2rem;padding:.44rem .28rem}
}

/* === Ajustements finaux mobile + pouvoir x3 + classement === */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
img,svg{max-width:100%}
main,section,article,div,form,.card,.group-box,.table-wrap,.matches-grid,.groups-grid{min-width:0}

.auth-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:start}
.auth-card{height:100%}
@media (max-width: 900px){
  .auth-grid{grid-template-columns:1fr}
}

.player-favorite{display:inline-flex;align-items:center;gap:.45rem;min-width:0}
.player-favorite span{min-width:0}
.leaderboard-table td strong{font-weight:800}

.floating-actions--power{display:flex;flex-direction:row;align-items:center;justify-content:flex-end;gap:.6rem;left:auto;right:calc(16px + env(safe-area-inset-right));bottom:calc(16px + env(safe-area-inset-bottom))}
.power-trigger{display:inline-flex;align-items:center;justify-content:center;flex:0 0 52px;width:52px;height:52px;padding:0;border-radius:999px;border:1px solid var(--border);background:#ffffff;color:#111827;box-shadow:0 10px 30px rgba(0,0,0,.08)}
.power-trigger:hover{border-color:#c4b5fd}
.power-trigger.has-selection{border-color:#7c3aed;color:#5b21b6;background:#f5f3ff}
.power-trigger.is-armed{background:#4c1d95;border-color:#4c1d95;color:#fff}
.power-trigger.is-locked{opacity:.8;cursor:not-allowed}
.power-trigger-icon{display:inline-flex;align-items:center;justify-content:center;font-size:.82rem;font-weight:900;letter-spacing:-.02em}
.save-main-btn{min-height:52px;border-radius:16px;padding:.78rem 1.08rem;white-space:nowrap}
.matchcard{transition:border-color .18s ease, box-shadow .18s ease, background .18s ease}
.matchcard.power-armed-target:not(.locked){cursor:pointer}
.matchcard.power-armed-target:not(.locked):hover{border-color:#a78bfa}
.matchcard.boosted{border-color:#4c1d95 !important;box-shadow:0 0 0 2px rgba(76,29,149,.14) inset;background:linear-gradient(180deg,#ffffff 0%,#f8f5ff 100%)}

.table-wrap{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.table-wrap .table{min-width:680px}

@media (max-width: 900px){
  body{font-size:13.4px;line-height:1.34}
  .site-main,.site-footer{padding-left:12px;padding-right:12px}
  .topbar{padding-left:0;padding-right:0}
  .topbar-inner{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:center;width:100%;padding:.72rem 12px;gap:.6rem}
  .brand{min-width:0;overflow:hidden}
  .brand-title{display:block;max-width:100%;font-size:clamp(1rem,5.2vw,1.2rem)!important;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .nav-toggle{min-width:auto!important;height:46px;padding:0 .9rem!important;gap:.55rem;border-radius:16px}
  .nav-toggle-label{display:inline-flex!important;align-items:center;font-size:.92rem!important;line-height:1}
  .page-header h1,.card h2{font-size:1.34rem;line-height:1.08}
  .card{padding:.85rem .8rem;border-radius:16px}
  .table{font-size:12px}
  .table th,.table td{padding:.42rem .3rem}
  input[type="text"],input[type="password"],input[type="number"],input[type="datetime-local"],select,button,.btn{font-size:.9rem;padding:.5rem .56rem}
  .subnav a[role="tab"],.subsubnav a,.pill{font-size:.82rem}
  .podium{gap:.55rem}
  .podium-slot{padding:.72rem .46rem}
  .podium-name{font-size:.88rem;line-height:1.12}
  .podium-points{font-size:.8rem}
  .leaderboard-table .player-favorite{min-width:116px}
  .table-wrap .table{min-width:620px}
}

@media (max-width: 640px){
  body{font-size:12.8px;line-height:1.32}
  .site-main,.site-footer{padding-left:10px;padding-right:10px}
  .site-footer{padding-bottom:.9rem;font-size:.72rem}
  .topbar-inner{padding:.68rem 10px;gap:.5rem}
  .brand-title{font-size:clamp(.98rem,5.4vw,1.12rem)!important}
  .nav-toggle{height:44px;padding:0 .82rem!important}
  .nav-toggle-label{font-size:.88rem!important}
  .burger span{width:19px}
  .page-header h1,.card h2{font-size:1.24rem}
  .card h3{font-size:1.02rem}
  .table{font-size:11.4px}
  .table th,.table td{padding:.38rem .24rem}
  .table-wrap .table{min-width:560px}
  .groups-grid,.matches-grid,.section-split,.grid-2,.grid-3,.grid-4{grid-template-columns:1fr!important}
  .matchcard,.group-box{border-radius:14px}
  .matchline{gap:.38rem}
  .team-name{font-size:.84rem;line-height:1.12}
  .scorebox{gap:.22rem}
  .scorebox input{width:2.26rem;padding:.42rem .26rem}
  .kickoff-pill,.official-pill,.status-pill{font-size:.74rem;padding:.2rem .48rem}
  .floating-actions--power{left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));gap:.55rem}
  .power-trigger{width:48px;height:48px;flex-basis:48px}
  .save-main-btn{flex:1 1 auto;min-width:0;min-height:48px;padding:.7rem .95rem}
}

@media (max-width: 420px){
  body{font-size:12.2px;line-height:1.3}
  .topbar-inner{padding:.62rem 8px;gap:.45rem}
  .site-main,.site-footer{padding-left:8px;padding-right:8px}
  .brand-title{font-size:clamp(.92rem,5.2vw,1.04rem)!important}
  .nav-toggle{height:42px;padding:0 .72rem!important;border-radius:15px}
  .nav-toggle-label{font-size:.84rem!important}
  .card{padding:.76rem .72rem}
  .page-header h1,.card h2{font-size:1.18rem}
  .table{font-size:11px}
  .table-wrap .table{min-width:520px}
}


/* === Correctif affichage classement === */
.leaderboard-mobile{display:none;gap:.7rem;margin-top:.9rem}
.leaderboard-mobile-card{border:1px solid var(--border);border-radius:16px;padding:.75rem .8rem;background:#fff}
.leaderboard-mobile-top{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.55rem;align-items:center}
.leaderboard-mobile-rank{display:inline-flex;align-items:center;justify-content:center;min-width:48px;height:34px;padding:0 .6rem;border:1px solid var(--border);border-radius:999px;background:#f9fafb;font-weight:800;color:#111827}
.leaderboard-mobile-name{font-weight:800;font-size:1rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.leaderboard-mobile-total{font-weight:900;white-space:nowrap}
.leaderboard-mobile-favorite{display:flex;align-items:center;justify-content:space-between;gap:.55rem;margin-top:.65rem;padding-top:.65rem;border-top:1px solid var(--border)}
.leaderboard-mobile-label{font-size:.78rem;color:var(--muted);font-weight:700}
.leaderboard-mobile-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin-top:.7rem}
.leaderboard-mobile-stats div{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.48rem .55rem;border:1px solid var(--border);border-radius:12px;background:#f9fafb}
.leaderboard-mobile-stats span{font-size:.74rem;color:var(--muted);font-weight:700}
.leaderboard-mobile-stats strong{font-size:.88rem}

@media (max-width: 760px){
  .leaderboard-mobile{display:grid}
  .leaderboard-desktop-wrap{display:none}
  .podium{grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem}
  .podium-slot{padding:.65rem .38rem}
  .podium-name{font-size:.82rem;white-space:normal;overflow:visible;text-overflow:clip}
  .podium-points{font-size:.75rem}
}

@media (max-width: 420px){
  .leaderboard-mobile-card{padding:.68rem .7rem}
  .leaderboard-mobile-top{grid-template-columns:auto minmax(0,1fr);grid-template-areas:'rank total' 'name name';row-gap:.42rem}
  .leaderboard-mobile-rank{grid-area:rank;min-width:42px;height:32px;padding:0 .55rem;font-size:.82rem}
  .leaderboard-mobile-total{grid-area:total;justify-self:end;font-size:.92rem}
  .leaderboard-mobile-name{grid-area:name;font-size:.94rem;white-space:normal}
  .leaderboard-mobile-favorite{align-items:flex-start;flex-direction:column}
  .leaderboard-mobile-stats{grid-template-columns:1fr}
}


.theme-form{display:grid;gap:1rem}
.theme-preview-card{display:flex;align-items:center;gap:1rem;padding:1rem;border:1px solid var(--border);border-radius:18px;background:linear-gradient(180deg,#fff 0%,var(--accent-soft) 100%)}
.theme-preview-swatch{width:56px;height:56px;border-radius:18px;border:2px solid #fff;box-shadow:0 0 0 1px rgba(17,24,39,.08);flex:0 0 auto}
.theme-presets-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.85rem}
.theme-choice{position:relative;display:block;cursor:pointer}
.theme-choice input{position:absolute;opacity:0;pointer-events:none}
.theme-choice-ui{display:flex;align-items:center;gap:.8rem;padding:.9rem;border:1px solid var(--border);border-radius:16px;background:#fff;transition:border-color .15s ease, background .15s ease, transform .15s ease}
.theme-choice input:checked + .theme-choice-ui{border-color:var(--accent-soft-border);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent-soft-border) inset}
.theme-choice:hover .theme-choice-ui{transform:translateY(-1px)}
.theme-choice-swatch{width:22px;height:22px;border-radius:999px;border:2px solid #fff;box-shadow:0 0 0 1px rgba(17,24,39,.08);flex:0 0 auto}
.theme-choice-text{display:flex;flex-direction:column;gap:.15rem;line-height:1.2}
.theme-choice-text small{color:var(--muted)}
@media (max-width: 600px){
  .theme-preview-card{padding:.85rem;gap:.8rem}
  .theme-preview-swatch{width:44px;height:44px;border-radius:14px}
  .theme-presets-grid{grid-template-columns:1fr 1fr}
}


/* === Thème admin : appliquer la couleur choisie aux encadrés foncés === */
:root{
  --accent-on:#ffffff;
}

button,
.btn,
.nav-link.active,
.profile-total-card,
.profile-summary-row.total,
.user-presence,
.mini-stat-icon,
.ranking-rank,
.chat-avatar,
.podium-slot.first .podium-rank{
  background:var(--accent) !important;
  border-color:var(--accent) !important;
  color:var(--accent-on) !important;
}

button.secondary,
.btn.secondary,
.nav-link.logout,
.hero-actions .btn.secondary,
.hero-actions a.btn.secondary{
  background:#ffffff !important;
  color:var(--text) !important;
  border-color:var(--border) !important;
}

.nav-link.active .nav-icon,
.nav-link.active .nav-label,
.profile-summary-row.total strong,
.profile-summary-row.total span,
.user-presence strong,
.user-presence p,
.profile-total-card .muted,
.profile-total-card .profile-total-label,
.profile-total-card .profile-total-value,
.ranking-rank,
.chat-avatar,
.podium-slot.first .podium-rank{
  color:var(--accent-on) !important;
}

.nav-link.active:hover,
button:hover,
.btn:hover,
.profile-total-card:hover,
.user-presence:hover,
.mini-stat-icon:hover,
.ranking-rank:hover,
.chat-avatar:hover,
.podium-slot.first .podium-rank:hover{
  background:var(--accent-strong) !important;
  border-color:var(--accent-strong) !important;
}

.presence-link,
.power-pill,
.theme-choice input:checked + .theme-choice-ui,
.theme-preview-card,
.ranking-row.is-current,
.matchcard.boosted{
  border-color:var(--accent-soft-border) !important;
}

.presence-link,
.power-pill,
.ranking-row.is-current{
  background:var(--accent-soft) !important;
  color:var(--accent-strong) !important;
}

.mini-link span,
.quick-link-icon,
.stat-icon{
  border-color:var(--accent-soft-border);
  background:var(--accent-soft);
  color:var(--accent-strong);
}

.theme-preview-swatch,
.theme-choice-swatch{
  background:var(--accent);
}


/* === Refonte visuelle simplifiée — texte plus petit, police Manrope, couleur unique === */
:root{
  --bg:#f7f7f4;
  --card:#ffffff;
  --text:#111827;
  --muted:#6b7280;
  --border:#deded8;
  --accent:#111827;
  --accent-strong:#111827;
  --accent-on:#ffffff;
  --accent-soft:#f2f2ee;
  --accent-soft-border:#deded8;
  --accent-soft-alt:#f2f2ee;
  --accent-soft-alt-border:#deded8;
  --accent-subtle:#f2f2ee;
  --accent-subtle-border:#deded8;
  --accent-rgb:17,24,39;
  --max-width:1640px;
  --page-gutter:clamp(14px,2vw,32px);
  --radius:14px;
}

html,body{max-width:100%;overflow-x:hidden}
body{
  margin:0;
  background:var(--bg)!important;
  color:var(--text)!important;
  font-family:"Manrope",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
  font-size:14px!important;
  line-height:1.55!important;
  letter-spacing:-.01em;
  overflow-wrap:break-word;
}
a{color:var(--accent)!important;text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px}
.muted,small,.section-note,.home-lead,.quick-link-text,.team-role,.notice,.pill,.kickoff-pill,.official-pill,.status-pill,.leader-row small,.ranking-row span,.chat-meta span,.chat-time,.leaderboard-mobile-label{color:var(--muted)!important}

.site-main{
  max-width:var(--max-width);
  margin:0 auto;
  padding:1.4rem var(--page-gutter) 2.4rem!important;
}
.site-footer{
  max-width:var(--max-width);
  margin:0 auto;
  padding:0 var(--page-gutter) 1.3rem!important;
  color:var(--muted);
  font-size:.78rem;
}
.container{max-width:var(--max-width);padding:0;margin:1.15rem auto}

.topbar{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(255,255,255,.94)!important;
  backdrop-filter:saturate(130%) blur(12px);
  border-bottom:1px solid var(--border)!important;
  box-shadow:none!important;
}
.topbar-inner{
  max-width:var(--max-width)!important;
  margin:0 auto;
  padding:.72rem var(--page-gutter)!important;
  gap:.7rem!important;
}
.brand-title{
  font-size:1.1rem!important;
  line-height:1!important;
  font-weight:800!important;
  letter-spacing:-.04em!important;
  text-transform:none!important;
}
.nav-links{gap:.35rem!important}
.nav-link,.icon-link{
  min-height:38px!important;
  height:auto!important;
  width:auto!important;
  padding:.48rem .72rem!important;
  border-radius:999px!important;
  font-size:.82rem!important;
  font-weight:700!important;
  color:var(--text)!important;
  background:transparent!important;
  border:1px solid transparent!important;
  box-shadow:none!important;
}
.nav-link:hover,.mini-link:hover,.quick-link-card:hover{
  background:var(--accent-soft)!important;
  border-color:var(--border)!important;
  transform:none!important;
  box-shadow:none!important;
  text-decoration:none!important;
}
.nav-link.active,.nav-link.active:hover{
  background:var(--accent)!important;
  border-color:var(--accent)!important;
  color:var(--accent-on)!important;
}
.nav-link.logout,.account-link,.user-status{
  background:#fff!important;
  border-color:var(--border)!important;
}
.nav-icon,.ui-icon{width:16px!important;height:16px!important;font-size:1rem!important}
.nav-toggle{
  height:42px!important;
  min-width:auto!important;
  border-radius:999px!important;
  border:1px solid var(--border)!important;
  background:#fff!important;
  box-shadow:none!important;
}
.burger span{background:var(--text)!important;height:2px!important}

.card,.home-focus-hero,.home-chat-panel,.upcoming-panel,.side-card,.home-panel,.hero-side-card,.team-card,.quick-link-card,.profile-total-card,.stat-card,.profile-panel,.bar-card,.team-points-card,.matchcard,.group-box,.podium-slot,.leader-row,.ranking-row,.leaderboard-mobile-card,.chat-message,.upcoming-card,.upcoming-row-card,.mini-stat,.profile-summary-row,.favorite-team-banner,.favorite-team-stats>div,.presence-metrics div,.next-match-row,.mini-link,.theme-preview-card,.theme-choice-ui,.power-picker{
  background:var(--card)!important;
  background-image:none!important;
  border:1px solid var(--border)!important;
  border-radius:var(--radius)!important;
  box-shadow:none!important;
  color:var(--text)!important;
}
.card{
  padding:1.15rem 1.25rem!important;
  margin-bottom:1.15rem!important;
}
.home-focus,.home-v2,.grid,.section-split,.profile-columns,.stats-grid,.groups-grid,.matches-grid,.home-focus-grid,.home-v2-grid,.home-panels-grid,.home-v2-side,.upcoming-grid,.upcoming-list,.team-points-grid,.bar-grid,.quick-links-grid,.presence-metrics,.favorite-team-stats,.leaderboard-mobile,.leaders-stack,.ranking-list,.chat-shell,.matches-stack{
  gap:1.05rem!important;
}
.page-header{
  align-items:flex-start!important;
  margin:.6rem 0 1rem!important;
  gap:1rem!important;
}
.page-header h1,.card h2,.section-heading-inline h2,.compact-heading h2{
  font-size:1.18rem!important;
  line-height:1.2!important;
  letter-spacing:-.025em!important;
  margin-top:0!important;
}
.card h3,.bar-card-head h3{
  font-size:.98rem!important;
  line-height:1.25!important;
}
.hero-home h1,.home-v2-hero h1,.home-focus-hero h1,.profile-hero-main h1{
  max-width:18ch!important;
  font-size:clamp(1.55rem,2.6vw,2.25rem)!important;
  line-height:1.08!important;
  letter-spacing:-.05em!important;
  margin:.45rem 0 .45rem!important;
}
.home-lead,.hero-home p,.profile-hero-main p{font-size:.9rem!important;max-width:70ch!important}

button,.btn,.save-main-btn,.chat-send-btn,.power-trigger,
.nav-link.active,.profile-total-card,.profile-summary-row.total,.user-presence,.mini-stat-icon,.ranking-rank,.chat-avatar,.podium-slot.first .podium-rank{
  background:var(--accent)!important;
  border-color:var(--accent)!important;
  color:var(--accent-on)!important;
  background-image:none!important;
  box-shadow:none!important;
}
button,.btn{
  min-height:38px;
  padding:.5rem .78rem!important;
  border-radius:999px!important;
  font-size:.82rem!important;
  font-weight:750!important;
}
button.secondary,.btn.secondary,.hero-actions .btn.secondary,.hero-actions a.btn.secondary,.nav-link.logout,.btn-ghost,.presence-link{
  background:#fff!important;
  color:var(--text)!important;
  border-color:var(--border)!important;
}
button:hover,.btn:hover,.power-trigger:hover{filter:none!important;text-decoration:none!important;opacity:.9}
.btn-ghost,.linklike{color:var(--accent)!important}
.linklike.danger,.danger-inline,.linklike.danger:hover{color:var(--accent)!important}

input[type="text"],input[type="number"],input[type="datetime-local"],input[type="password"],select,textarea{
  background:#fff!important;
  border:1px solid var(--border)!important;
  border-radius:12px!important;
  color:var(--text)!important;
  font-family:inherit!important;
  font-size:.86rem!important;
  padding:.54rem .68rem!important;
  box-shadow:none!important;
}
input:focus,select:focus,textarea:focus{
  outline:2px solid var(--accent)!important;
  outline-offset:2px!important;
}
input:disabled,select:disabled,.scorebox input:disabled,.matchcard.locked,.kickoff-pill.locked,.pill.locked{
  background:var(--accent-soft)!important;
  color:var(--muted)!important;
  opacity:1!important;
}

.table{font-size:.8rem!important;border-collapse:collapse!important}
.table th,.table td{padding:.48rem .42rem!important;border-bottom:1px solid var(--border)!important}
.table th{font-size:.72rem!important;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)!important;font-weight:800!important}
.table-wrap .table{min-width:640px}

.pill,.tag,.home-kicker,.hero-badge,.upcoming-badge,.kickoff-pill,.official-pill,.status-pill,.power-pill,.leaderboard-mobile-rank,.team-points-rank{
  background:var(--accent-soft)!important;
  border-color:var(--border)!important;
  color:var(--text)!important;
  border-radius:999px!important;
  font-size:.74rem!important;
  font-weight:750!important;
}
.subnav,.subsubnav,.tabs{gap:.45rem!important;border-color:var(--border)!important;padding-bottom:.65rem!important}
.subnav a[role="tab"],.subsubnav a{
  background:#fff!important;
  border-color:var(--border)!important;
  color:var(--text)!important;
  font-size:.78rem!important;
  padding:.36rem .64rem!important;
}
.subnav a[role="tab"].active,.subsubnav a.active{
  background:var(--accent)!important;
  border-color:var(--accent)!important;
  color:var(--accent-on)!important;
}

.matchcard.status-exact,.matchcard.status-good,.matchcard.status-bad,.matchcard.boosted,.ranking-row.is-current,.chat-message.is-mine,.podium-slot.first,.profile-summary-row.total{
  background:var(--accent-soft)!important;
  background-image:none!important;
  border-color:var(--accent)!important;
  box-shadow:none!important;
  color:var(--text)!important;
}
.profile-summary-row.total strong,.profile-summary-row.total span{color:var(--text)!important}
.podium-slot.first{transform:none!important}
.podium-rank,.ranking-rank{
  width:34px!important;
  height:34px!important;
  border-radius:999px!important;
  font-size:.85rem!important;
}
.podium-name,.team-name,.team-card .team-name,.leaderboard-mobile-name,.ranking-main strong,.leader-title,.upcoming-team span,.team-points-name strong{
  font-size:.88rem!important;
  line-height:1.25!important;
  font-weight:750!important;
}
.podium-points,.favorite-team-points,.ranking-points,.leader-row-side strong,.team-points-total,.stat-value,.profile-total-value{
  font-size:1rem!important;
  color:var(--text)!important;
  font-weight:800!important;
}
.profile-total-card .muted,.profile-total-card .profile-total-label,.profile-total-card .profile-total-value,.user-presence p,.user-presence strong{color:var(--accent-on)!important}
.stat-card{min-height:auto!important;padding:1rem!important}
.stat-icon,.quick-link-icon,.mini-stat-icon,.mini-link span{
  width:32px!important;
  height:32px!important;
  border-radius:10px!important;
  background:var(--accent-soft)!important;
  border:1px solid var(--border)!important;
  color:var(--text)!important;
}
.mini-stat-icon,.chat-avatar,.ranking-rank,.podium-slot.first .podium-rank{background:var(--accent)!important;color:var(--accent-on)!important;border-color:var(--accent)!important}
.quick-link-card{padding:.95rem!important;min-height:auto!important}
.quick-link-title{font-size:.9rem!important;font-weight:800!important}
.quick-link-text{font-size:.78rem!important;line-height:1.4!important}

.home-chat-panel .chat-messages,.chat-messages{
  gap:.65rem!important;
  min-height:0!important;
  height:clamp(190px,32vh,320px)!important;
  max-height:none!important;
}
.chat-message{padding:.68rem .75rem!important}
.chat-message p{font-size:.84rem!important;line-height:1.45!important;color:var(--text)!important}
.chat-author strong,.chat-message-top strong,.chat-meta strong{font-size:.82rem!important}
.chat-form input[type="text"]{min-height:42px!important;font-size:.88rem!important}
.chat-send-btn{min-height:42px!important;width:46px!important;border-radius:999px!important}

.hero-actions{gap:.6rem!important;margin:.9rem 0 .2rem!important}
.home-inline-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem!important;margin:.95rem 0!important}
.mini-stat{padding:.78rem!important}
.mini-stat strong{font-size:.9rem!important}
.mini-stat span:last-child{font-size:.76rem!important;color:var(--muted)!important}
.upcoming-row-card,.upcoming-card{padding:.85rem!important}
.upcoming-versus{background:var(--accent-soft)!important;color:var(--muted)!important;border-radius:999px!important}

.flag-fallback,.chat-favorite-flag{background:var(--accent-soft)!important;border-color:var(--border)!important;color:var(--text)!important}
img.flag{border-color:var(--border)!important}
.theme-preview-swatch,.theme-choice-swatch{background:var(--accent)!important}
.theme-choice input:checked + .theme-choice-ui{background:var(--accent-soft)!important;border-color:var(--accent)!important;box-shadow:none!important}
.theme-choice:hover .theme-choice-ui{transform:none!important}

.floating-actions{gap:.65rem!important}
.floating-actions button{min-height:44px!important;border-radius:999px!important}
.power-trigger.has-selection,.power-trigger.is-armed,.power-trigger.is-locked{background:var(--accent)!important;border-color:var(--accent)!important;color:var(--accent-on)!important}
.power-picker{background:#fff!important;box-shadow:none!important}

@media (min-width:1200px){
  .matches-grid,.groups-grid,.admin-groups-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media (max-width:1280px){
  .home-inline-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:980px){
  .topbar-inner{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important}
  .nav-links{
    left:var(--page-gutter)!important;
    right:var(--page-gutter)!important;
    top:calc(100% + .5rem)!important;
    padding:.55rem!important;
    border-radius:var(--radius)!important;
    box-shadow:none!important;
  }
  .nav-link,.icon-link{width:100%!important;justify-content:flex-start!important;min-height:42px!important;padding:.62rem .72rem!important}
  .brand-title{font-size:1rem!important}
  .nav-toggle-label{font-size:.86rem!important}
}
@media (max-width:720px){
  :root{--page-gutter:10px;--radius:12px}
  body{font-size:12.9px!important;line-height:1.45!important}
  .site-main{padding-top:.95rem!important;padding-bottom:1.4rem!important}
  .card{padding:.9rem!important;margin-bottom:.9rem!important}
  .page-header{display:block!important;margin:.4rem 0 .85rem!important}
  .page-header-actions{justify-content:flex-start!important;margin-top:.55rem}
  .page-header h1,.card h2,.section-heading-inline h2,.compact-heading h2{font-size:1.08rem!important}
  .card h3{font-size:.94rem!important}
  .hero-home h1,.home-v2-hero h1,.home-focus-hero h1,.profile-hero-main h1{font-size:1.45rem!important;line-height:1.12!important}
  .home-focus-hero,.home-chat-panel,.upcoming-panel{padding:.9rem!important}
  .home-inline-stats,.quick-links-grid,.stats-grid,.favorite-team-stats,.team-points-stats,.presence-metrics,.home-panels-grid,.home-v2-grid,.home-focus-grid,.profile-hero,.profile-columns,.bar-input-grid{grid-template-columns:1fr!important}
  .hero-actions{grid-template-columns:1fr!important}
  .hero-actions .btn{width:100%!important}
  .table{font-size:.74rem!important}
  input[type="text"],input[type="number"],input[type="datetime-local"],input[type="password"],select,textarea{font-size:16px!important;padding:.55rem .65rem!important}
  button,.btn{font-size:.8rem!important}
  .matchline{gap:.45rem!important}
  .team-name{font-size:.8rem!important}
  .scorebox input{width:2.3rem!important;padding:.42rem .25rem!important}
  .home-chat-panel .chat-messages,.chat-messages{height:clamp(170px,28vh,250px)!important}
}
@media (max-width:420px){
  body{font-size:12.4px!important}
  .site-main,.site-footer{padding-left:8px!important;padding-right:8px!important}
  .card{padding:.78rem!important}
  .brand-title{font-size:.92rem!important}
  .nav-toggle{height:40px!important;padding:0 .68rem!important}
}

/* === Classement minimal + correction bouton menu mobile actif === */
.leaderboard-card{
  overflow:hidden!important;
}
.leaderboard-header{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:1rem!important;
  margin-bottom:.85rem!important;
}
.leaderboard-header h2{
  margin:0 0 .18rem!important;
}
.leaderboard-header .muted{
  margin:0!important;
  font-size:.82rem!important;
}
.leaderboard-compact{
  display:grid!important;
  gap:.45rem!important;
  width:100%!important;
}
.leaderboard-compact-head,
.leaderboard-compact-row{
  display:grid!important;
  grid-template-columns:64px minmax(160px,1fr) minmax(150px,.7fr) 92px!important;
  align-items:center!important;
  gap:.7rem!important;
}
.leaderboard-compact-head{
  padding:0 .75rem .35rem!important;
  border-bottom:1px solid var(--border)!important;
  color:var(--muted)!important;
  font-size:.68rem!important;
  font-weight:800!important;
  letter-spacing:.08em!important;
  text-transform:uppercase!important;
}
.leaderboard-compact-head span:last-child{
  text-align:right!important;
}
.leaderboard-compact-row{
  min-height:54px!important;
  padding:.58rem .75rem!important;
  border:1px solid var(--border)!important;
  border-radius:14px!important;
  background:#fff!important;
  box-shadow:none!important;
}
.leaderboard-compact-row.is-top{
  background:var(--accent-soft)!important;
  border-color:var(--border)!important;
}
.leaderboard-compact-rank{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:42px!important;
  height:30px!important;
  border-radius:999px!important;
  background:#fff!important;
  border:1px solid var(--border)!important;
  color:var(--text)!important;
  font-size:.76rem!important;
  font-weight:850!important;
}
.leaderboard-compact-player{
  min-width:0!important;
}
.leaderboard-compact-player strong{
  display:block!important;
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  color:var(--text)!important;
  font-size:.88rem!important;
  line-height:1.2!important;
  font-weight:800!important;
}
.leaderboard-mobile-fav{
  display:none!important;
}
.leaderboard-compact-fav{
  display:inline-flex!important;
  align-items:center!important;
  gap:.4rem!important;
  min-width:0!important;
  color:var(--text)!important;
  font-size:.82rem!important;
  font-weight:650!important;
}
.leaderboard-compact-fav span{
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.leaderboard-compact-total{
  text-align:right!important;
  white-space:nowrap!important;
  color:var(--text)!important;
  font-size:.86rem!important;
  font-weight:750!important;
}
.leaderboard-compact-total strong{
  font-size:.95rem!important;
  font-weight:900!important;
}
.leaderboard-compact-total span{
  color:var(--muted)!important;
  font-size:.78rem!important;
  font-weight:750!important;
}

.nav-toggle{
  background:#fff!important;
  border-color:var(--border)!important;
  color:var(--text)!important;
}
.nav-toggle .nav-toggle-label{
  color:currentColor!important;
}
.nav-toggle .burger span{
  background:currentColor!important;
}
.nav-toggle[aria-expanded="true"]{
  background:var(--accent)!important;
  border-color:var(--accent)!important;
  color:var(--accent-on)!important;
}
.nav-toggle[aria-expanded="true"] .nav-toggle-label,
.nav-toggle[aria-expanded="true"] .burger span{
  color:var(--accent-on)!important;
  background:var(--accent-on)!important;
}

@media (max-width:720px){
  .leaderboard-card{
    padding:.8rem!important;
  }
  .leaderboard-header{
    margin-bottom:.65rem!important;
  }
  .leaderboard-header .muted{
    font-size:.76rem!important;
  }
  .leaderboard-compact-head{
    display:none!important;
  }
  .leaderboard-compact{
    gap:.42rem!important;
  }
  .leaderboard-compact-row{
    grid-template-columns:44px minmax(0,1fr) auto!important;
    grid-template-areas:"rank player total"!important;
    gap:.55rem!important;
    min-height:58px!important;
    padding:.56rem .62rem!important;
    border-radius:13px!important;
  }
  .leaderboard-compact-rank{
    grid-area:rank!important;
    width:38px!important;
    height:30px!important;
    font-size:.72rem!important;
  }
  .leaderboard-compact-player{
    grid-area:player!important;
  }
  .leaderboard-compact-player strong{
    font-size:.86rem!important;
  }
  .leaderboard-mobile-fav{
    display:flex!important;
    align-items:center!important;
    gap:.32rem!important;
    min-width:0!important;
    margin-top:.16rem!important;
    color:var(--muted)!important;
    font-size:.72rem!important;
    font-weight:650!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  .leaderboard-compact-fav{
    display:none!important;
  }
  .leaderboard-compact-total{
    grid-area:total!important;
    align-self:center!important;
    font-size:.78rem!important;
  }
  .leaderboard-compact-total strong{
    font-size:.92rem!important;
  }
  .leaderboard-compact-total span{
    font-size:.72rem!important;
  }
}

@media (max-width:420px){
  .leaderboard-compact-row{
    grid-template-columns:40px minmax(0,1fr) auto!important;
    padding:.52rem .56rem!important;
    gap:.45rem!important;
  }
  .leaderboard-compact-rank{
    width:34px!important;
    height:28px!important;
    font-size:.68rem!important;
  }
  .leaderboard-compact-player strong{
    font-size:.82rem!important;
  }
  .leaderboard-mobile-fav{
    font-size:.68rem!important;
  }
}

/* Correction fine : le libellé du bouton actif ne doit pas avoir de fond */
.nav-toggle[aria-expanded="true"] .nav-toggle-label{
  color:var(--accent-on)!important;
  background:transparent!important;
}
.nav-toggle[aria-expanded="true"] .burger span{
  background:var(--accent-on)!important;
}


/* === Modifications demandées : intro personnalisée + anthracite unique === */
:root{
  --accent:#374151;
  --accent-strong:#1f2937;
  --accent-soft:#f3f4f6;
  --accent-soft-border:#d1d5db;
  --accent-soft-alt:#f9fafb;
  --accent-soft-alt-border:#e5e7eb;
  --accent-subtle:#fafafa;
  --accent-subtle-border:#e5e7eb;
  --accent-rgb:55,65,81;
  --accent-on:#ffffff;
}
.home-intro-text{
  margin:.85rem 0 0;
  max-width:74ch;
  color:var(--text);
  font-size:.92rem;
  line-height:1.55;
}
.home-intro-text p{margin:.42rem 0}
.home-intro-text p:first-child{margin-top:0}
.home-intro-text p:last-child{margin-bottom:0;color:var(--text)}
.home-rules-preview{
  margin-top:.95rem;
  padding:.85rem .9rem;
  border:1px solid var(--border);
  border-radius:18px;
  background:#fff;
}
.home-rules-preview p{
  margin:0 0 .65rem;
  color:var(--text);
  font-size:.9rem;
}
.home-rules-list{
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
}
.home-rules-list li{
  padding:.45rem .6rem;
  border:1px solid var(--border);
  border-radius:999px;
  background:var(--accent-soft);
  color:var(--text);
  font-size:.82rem;
}
.home-rules-list strong{color:var(--accent)}
button,.btn,.save-main-btn,.chat-send-btn,.power-trigger.has-selection,.power-trigger.is-armed,.power-trigger.is-locked,.nav-link.active,.profile-total-card,.user-presence,.mini-stat-icon,.ranking-rank,.chat-avatar,.podium-slot.first .podium-rank{
  background:var(--accent)!important;
  border-color:var(--accent)!important;
  color:var(--accent-on)!important;
}
.matchcard.status-exact,.matchcard.status-good,.matchcard.status-bad,.matchcard.boosted,.ranking-row.is-current,.chat-message.is-mine,.podium-slot.first,.profile-summary-row.total,.leaderboard-compact-row.is-top{
  background:var(--accent-soft)!important;
  border-color:var(--accent-soft-border)!important;
  color:var(--text)!important;
  box-shadow:none!important;
}
.linklike,.btn-ghost,.favorite-team-points,.theme-choice input:checked + .theme-choice-ui{color:var(--accent)!important;border-color:var(--accent-soft-border)!important}
.linklike.danger,.linklike.danger:hover,.danger-inline{color:var(--accent)!important}
.power-trigger:hover,.matchcard.power-armed-target:not(.locked):hover{border-color:var(--accent)!important}
.power-trigger.has-selection{background:var(--accent-soft)!important;color:var(--accent)!important}
.theme-preview-swatch,.theme-choice-swatch{background:var(--accent)!important}

/* Les deux derniers matchs gardent une largeur confortable sur grand écran. */
.matches-grid.final-matches-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
@media(max-width:1100px){.matches-grid.final-matches-grid{grid-template-columns:1fr!important}}


/* V4 — Finale alignée sur la mise en page des autres matchs */
.final-match-card{
  overflow:visible;
  padding:.55rem .6rem;
  border:1px solid var(--border);
  border-radius:14px;
  background:#fff;
  box-shadow:none;
}
.final-match-description{
  margin:0 0 .65rem;
  padding:0 0 .55rem;
  border-bottom:1px solid var(--border);
  background:transparent;
}
.final-match-badge{font-size:.98rem;color:var(--text)}
.final-match-badge:before{width:.5rem;height:.5rem;box-shadow:none}
.final-match-format{font-size:.72rem}
.final-stage{
  margin:0;
  padding:.72rem 0;
  border:0;
  border-top:1px solid var(--border);
  border-radius:0;
  background:transparent;
}
.final-stage--regulation{
  margin:0;
  padding-top:0;
  border-top:0;
  background:transparent;
}
.final-stage-number{border-radius:8px}
.final-stage--regulation .matchline{margin-top:.7rem;padding:0}
.special-prediction-grid,.special-admin-grid{gap:0}
.special-prediction-grid .final-stage:first-child,
.special-admin-grid .final-stage:first-child{border-top:1px solid var(--border)}
.scorebox--final input,.score--final input,.extra-score-square{
  width:3.1rem!important;
  height:auto!important;
  padding:.55rem .6rem!important;
  border:1px solid var(--border)!important;
  border-radius:8px!important;
  background:#fff!important;
  text-align:center!important;
  font-size:1rem!important;
  font-weight:600!important;
  box-shadow:none!important;
}
.scorebox--final input:focus,.score--final input:focus,.extra-score-square:focus{
  border-color:var(--accent)!important;
  box-shadow:0 0 0 3px var(--accent-soft)!important;
}
.extra-time-score{max-width:22rem;align-items:end}
.extra-time-score>span{padding-bottom:.65rem}
.final-stage-note{margin:.6rem 0 0}
.penalty-team-row{padding:.6rem 0}
.penalty-kicks{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  flex-wrap:wrap;
  gap:.5rem;
}
.penalty-kick-wrap{display:flex;flex:0 0 auto}
.penalty-kick{
  display:inline-flex;
  flex:0 0 2.65rem;
  width:2.65rem;
  min-width:2.65rem;
  height:2.65rem;
  padding:0;
  border:2px solid #cbd5e1;
  border-radius:50%;
  background:#e5e7eb;
  color:#64748b;
  box-shadow:none;
}
.penalty-kick:hover:not(:disabled){transform:translateY(-1px);border-color:#94a3b8;box-shadow:0 5px 10px rgba(15,23,42,.1)}
.penalty-kick.is-goal{border-color:#16a34a;background:#22c55e;color:#fff;box-shadow:none}
.penalty-kick.is-miss{border-color:#dc2626;background:#ef4444;color:#fff;box-shadow:none}
.penalty-kick-number{display:none}
.penalty-kick-symbol{font-size:1.25rem;color:inherit}
.penalty-result-strip{display:flex;flex-wrap:wrap;gap:.3rem}
.penalty-result-dot{
  width:1.65rem;
  height:1.65rem;
  border-radius:50%;
  border:1px solid #cbd5e1;
}
.penalty-result-dot.is-goal{border-color:#16a34a;background:#22c55e;color:#fff}
.penalty-result-dot.is-miss{border-color:#dc2626;background:#ef4444;color:#fff}
.penalty-result-dot.is-empty{background:#e5e7eb;color:#64748b}
.admin-score-step{display:inline-flex!important;align-items:center;justify-content:flex-end;gap:.45rem}
.admin-score-step .final-stage-number{width:1.55rem;height:1.55rem;font-size:.7rem}

@media(max-width:720px){
  .final-match-description{align-items:flex-start}
  .penalty-kicks{justify-content:flex-start}
  .penalty-kick{flex-basis:2.5rem;width:2.5rem;min-width:2.5rem;height:2.5rem}
}

/* V5 — Étapes 1 et 2 identiques, points gagnés visibles, carte toujours blanche */
.final-match-card,
.final-match-card.locked,
.final-match-card.status-exact,
.final-match-card.status-good,
.final-match-card.status-bad,
.final-match-card.boosted{
  background:#fff!important;
  background-image:none!important;
  opacity:1!important;
}
.final-match-card.locked{border-color:var(--border)!important}
.final-match-card.boosted{border-color:var(--accent)!important;box-shadow:0 0 0 2px var(--accent-soft-border) inset!important}
.final-match-card .final-stage{
  background:#fff!important;
}
.final-stage-scoreline{
  margin-top:.7rem;
  padding:0;
}
.final-stage-scoreline .scorebox{
  align-self:center;
}
.stage-points-earned{
  background:#ecfdf5!important;
  border:1px solid #86efac;
  color:#166534!important;
}
@media(max-width:720px){
  .final-stage-scoreline{margin-top:.65rem}
}
.final-stage legend>.final-stage-heading-main{
  display:flex;
  align-items:center;
  gap:.6rem;
  min-width:0;
}
.final-stage legend>.final-stage-heading-main>span:last-child{
  display:block;
  min-width:0;
}
@media(max-width:900px){
  .final-stage legend>.final-stage-heading-main{width:100%}
}


/* V6 — Bonus limité aux 90′ et couleurs immédiates des tirs au but */
.penalty-kick,
button.penalty-kick{
  width:2.65rem!important;
  min-width:2.65rem!important;
  height:2.65rem!important;
  min-height:2.65rem!important;
  padding:0!important;
  border-radius:50%!important;
  border:2px solid #cbd5e1!important;
  background:#f1f5f9!important;
  background-image:none!important;
  color:#64748b!important;
  opacity:1!important;
  box-shadow:none!important;
}
.penalty-kick.is-goal,
button.penalty-kick.is-goal,
.penalty-kick.is-goal:disabled,
button.penalty-kick.is-goal:disabled{
  border-color:#15803d!important;
  background:#22c55e!important;
  background-image:none!important;
  color:#ffffff!important;
  opacity:1!important;
}
.penalty-kick.is-miss,
button.penalty-kick.is-miss,
.penalty-kick.is-miss:disabled,
button.penalty-kick.is-miss:disabled{
  border-color:#b91c1c!important;
  background:#ef4444!important;
  background-image:none!important;
  color:#ffffff!important;
  opacity:1!important;
}
.penalty-kick:not(.is-goal):not(.is-miss):disabled{
  border-color:#cbd5e1!important;
  background:#f1f5f9!important;
  color:#64748b!important;
  opacity:1!important;
}
.penalty-kick-symbol{color:inherit!important;pointer-events:none}
.final-stage-note,.penalty-instruction{line-height:1.45}
