
:root{
  --bg:#edf0f3; --surface:#ffffff; --ink:#14222e; --muted:#5a6a77; --line:#d6dde4; --line-strong:#a9b5c0;
  --band:#000000; --band-ink:#ffffff; --corner:#e3e8ed;
  --dom-bg:#fdf0f1; --dom-head:#b6000c; --dom-ink:#8c0009; --dom-line:#efc4c8;
  --ok-bg:#eef6ea; --ok-head:#d3e8c9; --ok-ink:#255216; --ok-line:#c3dbb6;
  --ext-bg:#fcefef; --ext-head:#f4cfcf; --ext-ink:#8a2626; --ext-line:#eabdbd;
  --u11:#b25e0c; --u13:#0e7c75; --u15:#3d5cc0; --u18:#9c3789; --sen:#1c2b3a; --sf:#b8225b;
  --tag-champ-bg:#dde7f2; --tag-champ-ink:#1b3a5b;
  --tag-coupe-bg:#fdeeb8; --tag-coupe-ink:#5f4300;
  --tag-warn-bg:#ffd8a6; --tag-warn-ink:#743800; --red:#c62828;
  --focus:#b6000c; --now-hl:#f0a830;
  --camp:#14222e; --camp-bg:#eceff2; --camp-line:#c9d1d9;
  --vac-bg:#fdeeb8; --vac-ink:#5f4300;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0e161e; --surface:#16212b; --ink:#e6edf3; --muted:#93a3b1; --line:#2a3846; --line-strong:#465768;
    --band:#000000; --band-ink:#e6edf3; --corner:#1d2a36;
    --dom-bg:#2a1214; --dom-head:#8e0a14; --dom-ink:#ff8a90; --dom-line:#4a2226;
    --ok-bg:#15271a; --ok-head:#1f3d27; --ok-ink:#a9dc98; --ok-line:#22402a;
    --ext-bg:#2a1719; --ext-head:#4a2427; --ext-ink:#f0aaaa; --ext-line:#472326;
    --u11:#c8721c; --u13:#17958d; --u15:#5a78dc; --u18:#b552a1; --sen:#3a4f65; --sf:#d23f7d;
    --tag-champ-bg:#1f3349; --tag-champ-ink:#b9d2ee;
    --tag-coupe-bg:#4a3b0a; --tag-coupe-ink:#f6dc85;
    --tag-warn-bg:#59320a; --tag-warn-ink:#ffcf94; --red:#ff7b72;
    --focus:#e5484d; --now-hl:#f0b84a;
    --camp:#8a5cc4; --camp-bg:#251a33; --camp-line:#46315f;
    --vac-bg:#4a3b0a; --vac-ink:#f6dc85;
  }
}
:root[data-theme="dark"]{
  --bg:#0e161e; --surface:#16212b; --ink:#e6edf3; --muted:#93a3b1; --line:#2a3846; --line-strong:#465768;
  --band:#000000; --band-ink:#e6edf3; --corner:#1d2a36;
  --dom-bg:#2a1214; --dom-head:#8e0a14; --dom-ink:#ff8a90; --dom-line:#4a2226;
    --ok-bg:#15271a; --ok-head:#1f3d27; --ok-ink:#a9dc98; --ok-line:#22402a;
  --ext-bg:#2a1719; --ext-head:#4a2427; --ext-ink:#f0aaaa; --ext-line:#472326;
  --u11:#c8721c; --u13:#17958d; --u15:#5a78dc; --u18:#b552a1; --sen:#3a4f65; --sf:#d23f7d;
  --tag-champ-bg:#1f3349; --tag-champ-ink:#b9d2ee;
  --tag-coupe-bg:#4a3b0a; --tag-coupe-ink:#f6dc85;
  --tag-warn-bg:#59320a; --tag-warn-ink:#ffcf94; --red:#ff7b72;
  --focus:#e5484d; --now-hl:#f0b84a;
  --camp:#8a5cc4; --camp-bg:#251a33; --camp-line:#46315f;
  --vac-bg:#4a3b0a; --vac-ink:#f6dc85;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{background:var(--bg)}
body{margin:0;padding-inline:16px;padding-block:20px 28px;color:var(--ink);font:14px/1.35 "Barlow","Segoe UI",system-ui,sans-serif;background:var(--bg)}
.wrap{max-width:none;margin-inline:auto}
/* -- en-tête plus fin (comme sur l'appli Licences) : logo et titre réduits, le nombre de rencontres et le
   bilan victoires/défaites (#sub / #bilan) ne sont plus empilés sous le titre mais affichés à côté, dans
   .hstats, pour tenir sur une seule ligne -- */
header.top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 24px;margin-bottom:14px}
.brand{display:flex;align-items:center;gap:14px}
.logo{display:block;height:56px;width:auto;flex:none;border-radius:9px}
.logo:focus-visible,.mlogo:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
:root[data-theme="dark"] .logo{background:#fff;padding:4px}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .logo{background:#fff;padding:4px}}
.eyebrow{font:600 11px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 4px}
h1{margin:0;font:700 26px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.01em;text-wrap:balance}
.hstats{display:flex;flex-wrap:wrap;align-items:center;gap:6px 20px}
.sub{margin:0;color:var(--muted)}
.sub b{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}
.controls{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center}
.controls label{font:600 12px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
select{font:500 14px "Barlow",sans-serif;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:6px;padding:7px 10px;min-width:190px}
select:focus-visible,.tabs button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.tabs button{font:600 15px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.04em;text-transform:uppercase;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:6px;padding:9px 13px;cursor:pointer}
.tabs button:hover{border-color:var(--ink)}
.tabs button[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.legend{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;margin-bottom:10px;color:var(--muted);font-size:12.5px}
.legend span{display:inline-flex;align-items:center;gap:6px}
.sw{width:14px;height:14px;border-radius:3px;border:1px solid var(--line-strong)}
.sw.d{background:var(--dom-head);border-color:var(--dom-line)}
.sw.e{background:var(--ext-head);border-color:var(--ext-line)}
.legend .tb{font-size:11px;padding:2px 6px}
.lgcats{display:inline-flex;flex-wrap:wrap;gap:4px;align-items:center}
.grid{overflow:auto;max-height:calc(100vh - 250px);min-height:380px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);overscroll-behavior:contain}
table{border-collapse:separate;border-spacing:0;table-layout:fixed}
th,td{padding:0;vertical-align:top}
/* sticky header rows */
thead th{position:sticky;z-index:3;background:var(--surface)}
.r2 th{top:0;height:56px}
.r3 th{top:56px;height:28px}
.corner{left:0;z-index:5!important;background:var(--corner)!important;border-right:2px solid var(--line-strong);border-bottom:1px solid var(--line-strong)}
.month{background:var(--band)!important;color:var(--band-ink);text-align:left;padding:0 10px;font:600 14px/28px "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.1em;text-transform:uppercase;border-left:2px solid var(--surface)}
.month span{position:sticky;left:12px;display:inline-block}
.day{border-bottom:1px solid var(--line);text-align:center;background:var(--surface)}
.day .in{display:flex;align-items:center;justify-content:center;gap:8px;height:55px;padding:4px 6px;flex-wrap:wrap;overflow:hidden}
.dn{font:700 26px/1 "Barlow Condensed","Arial Narrow",sans-serif;font-variant-numeric:tabular-nums}
.dw{font:600 13px/1.05 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:left}
.dw small{display:block;font:500 12px/1.1 "Barlow",sans-serif;letter-spacing:0;text-transform:none;color:var(--muted)}
.pill{font:600 11px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.08em;text-transform:uppercase;padding:3px 6px;border-radius:999px;background:var(--tag-warn-bg);color:var(--tag-warn-ink)}
.day.now{background:var(--tag-champ-bg);box-shadow:inset 0 3px 0 var(--now-hl)}
.sw.n{background:var(--tag-champ-bg);border-color:var(--now-hl)}
.pill.vac{background:var(--vac-bg);color:var(--vac-ink)}
.side{font:600 12px/28px "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.12em;text-transform:uppercase;text-align:center;border-bottom:1px solid var(--line-strong)}
.sw.c{background:var(--camp);border-color:var(--camp)}
.day.camp{background:var(--camp-bg)}
.side.camp{background:var(--camp);color:#fff;border-bottom-color:var(--camp)}
td.c.camp{background:var(--camp-bg)}
.m.camp{border-color:var(--camp-line);gap:5px}
.tb.kc{background:var(--camp)}
.pill.camp{background:var(--camp);color:#fff}
.ah.camp{background:var(--camp)}
.ac.camp{border-color:var(--camp-line);border-left-color:var(--camp);background:var(--camp-bg)}
.ic{width:14px;height:14px;vertical-align:-2px;margin-right:5px;flex:none}
.side i{font-style:normal;opacity:.75;font-variant-numeric:tabular-nums;margin-left:4px}
.side.d{background:var(--dom-head);color:var(--dom-ink)}
.side.e{background:var(--ext-head);color:var(--ext-ink)}
.wk{border-left:2px solid var(--line-strong)}
.dsep{border-left:1px solid var(--line)}
.wkmid{border-left:2px dashed var(--line-strong)}
/* time column */
.tm{position:sticky;left:0;z-index:2;background:var(--corner);border-right:2px solid var(--line-strong);border-bottom:1px solid var(--line);text-align:center;font:700 19px/1 "Barlow Condensed","Arial Narrow",sans-serif;font-variant-numeric:tabular-nums;padding-top:12px;color:var(--ink)}
.tm small{display:block;margin-top:3px;font:500 11px/1 "Barlow",sans-serif;color:var(--muted);letter-spacing:0}
.tm.allday{font-size:13px;letter-spacing:.06em;text-transform:uppercase;padding-top:14px}
td.c{padding:5px 5px 12px;height:1px}
td.c.d{background:var(--dom-bg)}
td.c.e{background:var(--ext-bg)}
tr.per td,tr.per th{border-top:2px solid var(--line-strong)}
.m{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:6px 7px 7px;display:flex;flex-direction:column;gap:4px}
.m + .m{margin-top:5px}
td.d .m{border-color:var(--dom-line)}
td.e .m{border-color:var(--ext-line)}
.mtop{display:flex;justify-content:space-between;align-items:flex-start;gap:6px}
.teams{display:flex;flex-wrap:wrap;gap:4px}
.hr{font:700 17px/1.05 "Barlow Condensed","Arial Narrow",sans-serif;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--ink);letter-spacing:.02em}
.tb{display:inline-block;color:#fff;font:700 13px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.04em;padding:3px 6px;border-radius:4px;white-space:nowrap}
.k9,.k11{background:var(--u11)} .k13{background:var(--u13)} .k15{background:var(--u15)} .k18{background:var(--u18)} .ksen{background:var(--sen)} .ksf{background:var(--sf)}
.opp{font:600 14px/1.1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.02em;text-transform:uppercase;overflow-wrap:break-word;hyphens:manual}
.opp.tbc{color:var(--tag-warn-ink);font-style:italic}
.tlogo{width:16px;height:16px;border-radius:4px;object-fit:contain;background:var(--corner);vertical-align:-3px;margin-right:4px;flex:none}
.span{font:500 11.5px/1.2 "Barlow",sans-serif;color:var(--muted);font-variant-numeric:tabular-nums}
.tg{align-self:flex-start;font:600 11px/1 "Barlow",sans-serif;padding:3px 6px;border-radius:4px;border:1px solid var(--line-strong);color:var(--muted)}
.tg.champ{background:var(--tag-champ-bg);color:var(--tag-champ-ink);border-color:transparent}
.tg.coupe{background:var(--tag-coupe-bg);color:var(--tag-coupe-ink);border-color:transparent}
.tg.warn{background:var(--tag-warn-bg);color:var(--tag-warn-ink);border-color:transparent}
.tg.derog{background:var(--tag-warn-bg);color:var(--red);border-color:transparent}
.m[data-i],.ac[data-i]{cursor:pointer}
.m[data-i]:hover{border-color:var(--ink)}
.m[data-i]:focus-visible,.ac[data-i]:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.ac[data-i]:hover{box-shadow:0 0 0 1px var(--ink)}

/* -- style « allégé » des tuiles de match (filet de couleur) -- */
.m.va{padding:6px 8px;gap:3px;border-left-width:3px}
td.d .m.va{border-left-color:var(--dom-ink)}
td.e .m.va{border-left-color:var(--ext-ink)}
.a-top{display:flex;justify-content:space-between;align-items:flex-start;gap:6px}
.a-teams{display:flex;flex-wrap:wrap;gap:4px}
.a-hr{font:700 15px/1 "Barlow Condensed","Arial Narrow",sans-serif;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.a-opp{font:600 13.5px/1.15 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.01em;text-transform:uppercase;overflow-wrap:break-word;hyphens:manual}
.a-opp.tbc{color:var(--tag-warn-ink);font-style:italic}
.a-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font:500 11px/1.3 "Barlow",sans-serif;color:var(--muted)}
.a-sep{opacity:.5}
.a-x3{font-weight:700;color:var(--ink)}
.a-derog{font-weight:700;color:var(--red)}
.a-dot{width:7px;height:7px;border-radius:50%;display:inline-block;margin-right:4px;flex:none}
.a-dot.ok{background:var(--ok-ink)} .a-dot.ko{background:var(--tag-warn-ink)}
.st-ok{color:var(--ok-ink)}
.a-ics{display:inline-flex;gap:4px;align-items:center}
.ov{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(10,16,23,.55)}
.dlg{position:relative;width:100%;max-width:440px;max-height:calc(100vh - 32px);overflow:auto;background:var(--surface);color:var(--ink);border:1px solid var(--line-strong);border-radius:12px;box-shadow:0 18px 50px rgba(0,0,0,.35);padding:18px 18px 16px}
.dlg .x{position:absolute;top:8px;right:8px;width:34px;height:34px;border:0;border-radius:8px;background:transparent;color:var(--muted);font:400 24px/1 "Barlow",sans-serif;cursor:pointer}
.dlg .x:hover{background:var(--corner);color:var(--ink)}
.dlg .x:focus-visible,.dlg .cp:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.dh{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;padding-right:34px}
.dd{margin:10px 0 0;font:700 24px/1.05 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.01em}
.dd small{font:600 15px "Barlow Condensed","Arial Narrow",sans-serif;color:var(--muted);letter-spacing:.06em;margin-left:6px}
.dv{margin:8px 0 0;display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px}
.side-pill{display:inline-flex;align-items:center;font:600 12px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.1em;text-transform:uppercase;padding:5px 8px;border-radius:999px}
.side-pill .ic{margin-right:4px}
.side-pill.d{background:var(--dom-head);color:var(--dom-ink)} .side-pill.e{background:var(--ext-head);color:var(--ext-ink)}
.dvs{font:700 20px/1.1 "Barlow Condensed","Arial Narrow",sans-serif;text-transform:uppercase}
.doff{margin:2px 0 0;color:var(--muted);font-size:12.5px}
.dl{margin:14px 0 0;display:grid;grid-template-columns:auto 1fr;gap:8px 14px;font-size:14px}
.dl dt{color:var(--muted);font:600 12px/1.7 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.1em;text-transform:uppercase}
.dl dd{margin:0;overflow-wrap:anywhere}
.dl dd small{display:block;color:var(--muted);font-size:12.5px}
.score{display:inline-flex;align-items:baseline;gap:8px;font:700 24px/1 "Barlow Condensed","Arial Narrow",sans-serif;font-variant-numeric:tabular-nums}
.score em{font:600 12px/1 "Barlow Condensed","Arial Narrow",sans-serif;font-style:normal;letter-spacing:.08em;text-transform:uppercase;padding:3px 7px;border-radius:999px;background:var(--tag-champ-bg);color:var(--tag-champ-ink)}
.score em.w{background:var(--ok-head);color:var(--ok-ink)} .score em.l{background:var(--ext-head);color:var(--ext-ink)}
.dn0{margin:14px 0 0;color:var(--muted);font-size:12.5px}
.empty{padding:40px 16px;text-align:center;color:var(--muted)}
.foot{margin:10px 2px 0;color:var(--muted);font-size:12.5px}
.leg summary{display:none}
.agenda{display:flex;flex-direction:column;gap:14px}
.ad{display:flex;flex-direction:column;gap:6px}
.ah{position:sticky;top:0;z-index:4;margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:9px 12px;background:var(--band);color:var(--band-ink);border-radius:8px;font:600 15px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.08em;text-transform:uppercase}
.ah .dn{font-size:26px;letter-spacing:0}
.ah .dw{color:var(--band-ink);opacity:.9;font-size:14px}
.ah .dw small{display:inline;font:500 13px/1 "Barlow",sans-serif;text-transform:none;letter-spacing:0;color:inherit;margin-left:4px}
.ad.now .ah{box-shadow:0 0 0 2px var(--now-hl)}
.pill.now{background:var(--now-hl);color:#fff}
.ac{display:grid;grid-template-columns:80px 1fr;gap:10px;padding:9px 11px 10px 9px;border-radius:8px;border:1px solid var(--line);border-left-width:5px;background:var(--surface)}
.ac.d{border-left-color:var(--dom-ink);background:var(--dom-bg);border-color:var(--dom-line);border-left-color:var(--dom-ink)}
.ac.e{border-left-color:var(--ext-ink);background:var(--ext-bg);border-color:var(--ext-line);border-left-color:var(--ext-ink)}
.at{font:700 20px/1 "Barlow Condensed","Arial Narrow",sans-serif;font-variant-numeric:tabular-nums}
.at small{display:block;margin-top:4px;font:600 10.5px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.1em;text-transform:uppercase}
.ac.d .at small{color:var(--dom-ink)} .ac.e .at small{color:var(--ext-ink)}
.at small .ic{width:12px;height:12px;margin-right:4px;vertical-align:-2px}
.ab{display:flex;flex-direction:column;gap:5px;min-width:0}
.ab .opp{font-size:16px}
.ab .span{font:700 15px/1.1 "Barlow Condensed","Arial Narrow",sans-serif;color:var(--ink)}
@media (max-width:720px){
  .tabs{flex-wrap:nowrap;overflow-x:auto;margin-inline:-16px;padding-inline:16px;padding-bottom:4px;scrollbar-width:none}
  .tabs::-webkit-scrollbar{display:none}
  .tabs button{flex:none}
  .leg summary{display:block;cursor:pointer;font:600 13px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:6px 0}
  .legend{gap:8px 12px}

  h1{font-size:22px}
  .logo{height:48px}
  .hstats{gap:4px 14px}
  .grid{max-height:calc(100vh - 300px)}
  .ov{align-items:flex-end;padding:0}
  .dlg{max-width:none;border-radius:14px 14px 0 0;max-height:85vh;padding-bottom:22px}
  select{min-width:0;width:100%}
  .controls{width:100%}
  .controls .f{flex:1 1 100%}
}
@media (prefers-reduced-motion:no-preference){.grid{scroll-behavior:smooth}}

/* ---- gestion (éditeurs uniquement) ---- */
/* color-scheme doit suivre le même thème clair/sombre que le reste de la page (variables --ink/--surface
   ci-dessus) : sinon les contrôles natifs (liste déroulante d'un <select>, entre autres) restent forcés en
   thème clair par le navigateur alors que notre propre texte passe en clair sur fond sombre — texte blanc sur
   liste déroulante blanche, illisible. */
:root{color-scheme:light}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){color-scheme:dark}}
:root[data-theme="dark"]{color-scheme:dark}
img{max-width:100%}
.tags{display:flex;flex-wrap:wrap;gap:4px;align-self:flex-start}
.tg.x3{background:var(--ink);color:var(--bg);border-color:transparent;letter-spacing:.04em}
.gbtn{display:inline-flex;align-items:center;font:600 14px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--bg);background:var(--ink);border:1px solid var(--ink);border-radius:6px;padding:9px 14px;cursor:pointer;align-self:flex-end;height:36px;box-sizing:border-box}
.gbtn .ic{margin-right:6px}
.gbtn:focus-visible,.bt:focus-visible,.mtabs button:focus-visible,.drop:focus-within,.dr:focus-within,.tmbtn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.pbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));background:var(--band);color:var(--band-ink);box-shadow:0 -6px 24px rgba(0,0,0,.25)}
.pbar b{font:700 17px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.03em}
.pbar small{display:block;margin-top:3px;opacity:.75;font-size:12px}
.pbar .row{display:flex;gap:8px;flex-wrap:wrap}
.bt{font:600 14px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.08em;text-transform:uppercase;border-radius:6px;padding:10px 14px;cursor:pointer;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink)}
.bt:hover{border-color:var(--ink)}
.bt.pri{background:var(--focus);border-color:var(--focus);color:#fff}
.bt.dng{color:var(--ext-ink);border-color:var(--ext-line);background:var(--ext-bg)}
.bt:disabled{opacity:.55;cursor:default}
.bt.sm{padding:7px 10px;font-size:13px}
.pbar .bt{border-color:transparent}
.pbar .bt.ghost{background:transparent;color:var(--band-ink);border-color:rgba(255,255,255,.35)}
body.hasbar{padding-bottom:90px}
.mg{position:fixed;inset:0;z-index:60;background:var(--bg);overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.mgin{max-width:none;margin-inline:auto;padding:16px 16px 40px}
/* les descriptions occupent toute la largeur du panneau, comme le reste de l'affichage (pas de colonne
   étroite isolée sous le titre) */
/* en-tête + double barre d'onglets, collés en haut pendant le défilement du contenu (reste toujours à portée de clic) --
   bandeau sombre repris du portail Licences CSEF, pour que les deux outils de gestion du club se ressemblent :
   seul ce bandeau (titre + onglets) change de couleur, le contenu des panneaux en dessous reste clair comme avant. */
.mgtop{position:sticky;top:0;z-index:5;background:var(--band);color:var(--band-ink);margin:-16px -16px 14px;padding:16px 16px 0;box-shadow:0 2px 12px rgba(0,0,0,.2)}
.mgh{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.mgh h2{margin:0;font:700 28px/1 "Barlow Condensed","Arial Narrow",sans-serif;color:var(--band-ink)}
.mgh .bt{background:transparent;border-color:rgba(255,255,255,.35);color:var(--band-ink)}
.mgh .bt:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.35)}
.mtabs{display:flex;flex-direction:column;gap:8px}
/* niveau 1 : thème (4 groupes, avec icône = repère visuel) */
.mgrp{display:flex;flex-wrap:wrap;gap:6px}
.mgrp button{flex:none;display:inline-flex;align-items:center;gap:7px;font:600 13.5px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.05em;text-transform:uppercase;color:var(--band-ink);opacity:.72;background:transparent;border:1px solid rgba(255,255,255,.3);border-radius:999px;padding:8px 13px 8px 10px;cursor:pointer}
.mgrp button:hover{opacity:1}
.mgrp button .ic{width:16px;height:16px;flex:none}
.mgrp button[aria-pressed="true"]{opacity:1;background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.55);color:var(--band-ink)}
/* niveau 2 : onglets du thème actif seulement (compact, pas les 14 d'un coup) — même logique d'onglet
   souligné que la barre de navigation de Licences */
.msub{display:flex;flex-wrap:wrap;gap:2px;margin:0 -16px;padding:0 12px;border-top:1px solid rgba(255,255,255,.14)}
.msub button{flex:none;font:600 14px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.04em;text-transform:uppercase;color:var(--band-ink);opacity:.72;background:transparent;border:0;border-bottom:3px solid transparent;border-radius:0;padding:10px 12px 9px;cursor:pointer}
.msub button:hover{opacity:1}
.msub button[aria-pressed="true"]{opacity:1;color:#fff;border-bottom-color:var(--focus)}
/* onglets/thèmes non accordés à une personne déléguée (droits gérés dans « Accès délégués ») : grisés, non cliquables */
.mgrp button:disabled,.msub button:disabled{opacity:.32;cursor:not-allowed}
.mgrp button:disabled[aria-pressed="true"],.msub button:disabled[aria-pressed="true"]{background:transparent;color:var(--band-ink);opacity:.32;border-color:rgba(255,255,255,.3)}
.pn{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:16px;margin-bottom:14px}
.pn h3{margin:0 0 4px;font:700 20px/1.1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.02em}
.pn p{margin:4px 0 10px;color:var(--muted)}
.pn p.ok{color:var(--ok-ink)} .pn p.ko{color:var(--ext-ink)}
.drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;padding:26px 16px;border:2px dashed var(--line-strong);border-radius:10px;background:var(--bg);color:var(--muted);cursor:pointer}
.drop.over{border-color:var(--focus);background:var(--tag-champ-bg)}
.drop b{color:var(--ink);font:600 17px/1.1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.04em;text-transform:uppercase}
.drop input{position:absolute;opacity:0;width:1px;height:1px}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}
.chip{font:600 13px/1 "Barlow",sans-serif;padding:6px 10px;border-radius:999px;background:var(--corner);color:var(--ink)}
.chip.new{background:var(--ok-head);color:var(--ok-ink)} .chip.mod{background:var(--tag-warn-bg);color:var(--tag-warn-ink)} .chip.del{background:var(--ext-head);color:var(--ext-ink)} .chip.info{background:var(--tag-champ-bg);color:var(--tag-champ-ink)}
.grp{margin:14px 0 0;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.grp>header{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--corner);font:700 16px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.06em;text-transform:uppercase}
.grp>header label{display:flex;align-items:center;gap:10px;cursor:pointer;flex:1}
.dr{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-top:1px solid var(--line);cursor:pointer;background:var(--surface)}
.dr:hover{background:var(--bg)}
.dr input,.grp>header input{width:18px;height:18px;margin:1px 0 0;flex:none;accent-color:var(--focus)}
.mg input[type=checkbox],.mg input[type=radio]{accent-color:var(--focus)}
.dtx{display:flex;flex-direction:column;gap:3px;min-width:0}
.dtx b{font:600 15px/1.2 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.02em;text-transform:uppercase}
.dtx small{font:400 13px/1.35 "Barlow",sans-serif;color:var(--muted)}
.dtx small s{opacity:.7} .dtx small i{font-style:normal;color:var(--ink);font-weight:600}
.dr .tb{margin-top:1px;flex:none}
.act{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px}
/* -- liste à cocher des matchs à inclure dans un message WhatsApp (arbitres/OTM), avant le texte prêt à copier -- */
.wa-sel{display:flex;flex-direction:column;gap:2px;margin:8px 0;padding:8px 10px;background:var(--corner);border-radius:8px}
.wa-chk{display:flex;align-items:center;gap:7px;font:500 13px "Barlow",sans-serif;padding:3px 2px;cursor:pointer}
.wa-chk input{flex:none}
.ls{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.li{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px;border-top:1px solid var(--line);background:var(--surface)}
.li:first-child{border-top:0}
.li .dtx{flex:1}
.li .row{display:flex;gap:6px;flex:none}
.li-note{flex:1 1 100%}
.fm{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px}
.fm .fw{grid-column:1/-1}
.fm label,.lbl{display:flex;flex-direction:column;gap:5px;font:600 12px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.fm input[type=text],.fm input[type=date],.fm input[type=time],.fm select,.sel{font:500 14px "Barlow",sans-serif;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:6px;padding:8px 10px;min-width:0;width:100%}
.fm input:focus-visible,.fm select:focus-visible,.sel:focus-visible{outline:2px solid var(--focus);outline-offset:1px}
.seg{display:flex;flex-wrap:wrap;gap:6px 14px;font:500 14px "Barlow",sans-serif;text-transform:none;letter-spacing:0;color:var(--ink)}
.seg.col{flex-direction:column;gap:8px}
.seg.col label.sub{margin-left:26px;font-size:13px;color:var(--muted)}
.seg label{flex-direction:row;align-items:center;gap:6px;font:500 14px "Barlow",sans-serif;letter-spacing:0;text-transform:none;color:var(--ink)}
.tk{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:6px 10px}
.tk label{flex-direction:row;align-items:center;gap:6px;font:500 14px "Barlow",sans-serif;letter-spacing:0;text-transform:none;color:var(--ink)}

/* -- sélecteur d'équipes (multi-choix) -- */
.tmpick{position:relative;display:inline-block}
.tmbtn{font:500 14px "Barlow",sans-serif;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:6px;padding:7px 10px;min-width:190px;text-align:left;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px;height:36px;box-sizing:border-box}
.tmbtn::after{content:"";width:0;height:0;flex:none;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid var(--muted)}
.tmbtn[aria-expanded="true"]{border-color:var(--focus)}
.tmpanel{position:absolute;top:calc(100% + 4px);left:0;z-index:20;background:var(--surface);border:1px solid var(--line-strong);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.18);padding:10px;min-width:260px;max-height:min(60vh,420px);overflow:auto}
.tmpanel .tmall{display:flex;align-items:center;gap:8px;font:600 13px "Barlow",sans-serif;padding:4px 6px 8px;border-bottom:1px solid var(--line);margin-bottom:8px;cursor:pointer}
.tmpanel .tmgrp+.tmgrp{margin-top:8px}
.tmpanel .tmgh{font:600 11px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.tmpanel .tk label{padding:3px 4px;border-radius:5px;cursor:pointer}
.tmpanel .tk label:hover{background:var(--corner)}
@media (max-width:600px){.tmpanel{min-width:0;left:0;right:0}}
.dlg .ed{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:10px}
.dlg .ed .lbl{gap:6px}
.dlg .ed .seg label{cursor:pointer}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:84px;z-index:70;max-width:min(92vw,520px);padding:10px 14px;border-radius:8px;background:var(--ink);color:var(--bg);font-size:14px;box-shadow:0 8px 24px rgba(0,0,0,.3)}
.warnbox{padding:10px 12px;border-radius:8px;background:var(--tag-warn-bg);color:var(--tag-warn-ink);font-size:13.5px;margin:10px 0}
@media (max-width:720px){
  .fm{grid-template-columns:1fr}
  .gbtn{align-self:auto}
  .mgh h2{font-size:24px}
}

.bilan{margin:8px 0 0;display:flex;flex-wrap:wrap;align-items:center;gap:5px 7px}
.bl-l{font:600 11px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-right:2px}
.bl{display:inline-flex;align-items:baseline;gap:4px;padding:3px 8px;border-radius:999px;background:var(--corner);color:var(--ink);font:600 11px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.06em;text-transform:uppercase}
.bl b{font:700 15px/1 "Barlow Condensed","Arial Narrow",sans-serif;font-variant-numeric:tabular-nums;letter-spacing:0}
.bl.w{background:var(--ok-head);color:var(--ok-ink)} .bl.l{background:var(--ext-head);color:var(--ext-ink)}
.bl-n{color:var(--muted);font-size:11px}

.mbar{display:none}
@media (max-width:720px){
  .mbar{position:sticky;top:env(safe-area-inset-top,0px);z-index:6;display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:48px 42px;align-items:center;column-gap:10px;height:94px;margin:-20px -16px 12px;padding:0 16px;background:var(--band);color:var(--band-ink);box-shadow:0 2px 10px rgba(0,0,0,.18)}
  .mlogo{width:34px;height:34px;object-fit:contain;flex:none;background:#fff;border-radius:7px;padding:2px}
  .mbar .mt{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
  .mbar .mt b{font:700 19px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mbar .mt small{font:600 11px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.12em;text-transform:uppercase;opacity:.75}
  /* bouton (et non simple libellé) : au tap, ouvre le bilan complet de la saison — voir openBilanDialog() */
  .mbar .mb{flex:none;font:600 13px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.06em;text-transform:uppercase;padding:6px 9px;border-radius:999px;background:rgba(255,255,255,.14);border:none;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .mbar .mb:active{background:rgba(255,255,255,.26)}
  .mbar .mb::after{content:'›';margin-left:4px;opacity:.75;font-weight:700}
  .mbar .mb b{font:700 17px/1 "Barlow Condensed","Arial Narrow",sans-serif}
  .ah{top:calc(env(safe-area-inset-top,0px) + 94px)}
  .mbar .tmpick-m{grid-column:1/-1;margin-bottom:8px}
  .mbar .tmpick-m .tmbtn{width:100%;min-width:0;height:34px;padding:0 10px;font-size:14px}
  .mbar .tmpick-m .tmpanel{left:0;right:0;width:auto;min-width:0}
  .controls .f{display:none}
  .ad{scroll-margin-top:calc(env(safe-area-inset-top,0px) + 104px)}

  /* -- bouton « Gérer » : mini pied de page fixe, toujours visible même en scrollant -- */
  .gbtn:not([hidden]){
    position:fixed;left:0;right:0;bottom:0;z-index:45;
    display:flex;align-items:center;justify-content:center;
    width:100%;height:auto;margin:0;border-radius:0;
    padding:13px 16px calc(13px + env(safe-area-inset-bottom,0px));
    box-shadow:0 -4px 16px rgba(0,0,0,.2);
  }
  body.hasgbtn:not(.hasbar){padding-bottom:calc(58px + env(safe-area-inset-bottom,0px))}
  /* si la barre de publication (brouillon non publié) est aussi affichée, le bouton reste un pied de page
     fixe (toujours visible en scrollant, y compris pendant un brouillon non publié) mais se place juste
     au-dessus de cette barre au lieu de se superposer à elle ; avant ce correctif il redevenait statique
     dans l'en-tête et disparaissait donc dès qu'on scrollait la page — signalé par Mathieu. --pbar-h est la
     hauteur réelle de la barre, mesurée en JS (syncPbarHeight) car elle varie selon le texte et la largeur
     d'écran. */
  body.hasbar .gbtn:not([hidden]){bottom:var(--pbar-h,90px);padding:13px 16px;box-shadow:0 -2px 10px rgba(0,0,0,.15)}
  body.hasgbtn.hasbar{padding-bottom:calc(var(--pbar-h,90px) + 58px + env(safe-area-inset-bottom,0px))}
}

.stt{align-self:flex-start;font:600 11px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.06em;text-transform:uppercase;padding:3px 6px;border-radius:4px}
.stt.ok{background:var(--ok-head);color:var(--ok-ink)} .stt.ko{background:var(--tag-warn-bg);color:var(--tag-warn-ink)}
.dgh{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:8px 12px;background:var(--corner);font:700 14px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.08em;text-transform:uppercase;border-top:1px solid var(--line)}
.dgh:first-child{border-top:0}
.dgh-bts{display:flex;gap:8px;flex-wrap:wrap}
textarea.sel{resize:vertical;line-height:1.4}
a.bt{display:inline-flex;align-items:center}

.red,.dl dd .red,.dl dd small.red{color:var(--red)!important;font-weight:700}

.mbilan{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px}
.mbh{margin:0;font:600 12px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.mbrow{display:flex;flex-wrap:wrap;align-items:center;gap:6px 9px}
.mbn{color:var(--muted);font-size:12.5px}
.mhist-l{margin:0;padding-left:18px;font-size:13px;color:var(--ink)}
.mhist-l li{margin:0 0 5px}
.mhist-l li:last-child{margin-bottom:0}
.mhist-l b{font-variant-numeric:tabular-nums;font-weight:600;color:var(--muted);margin-right:4px}
.mhist-l s{opacity:.65;text-decoration:line-through}
.mhist-l i{font-style:normal;font-weight:600;color:var(--ink)}

.stw{overflow-x:auto;margin:0 -2px}
.stb{width:100%;border-collapse:collapse;font:500 14px "Barlow",sans-serif;font-variant-numeric:tabular-nums}
.stb th,.stb td{padding:7px 6px;text-align:center;border-bottom:1px solid var(--line,rgba(128,128,128,.25))}
.stb thead th{font:600 11px/1.1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.stb th:first-child,.stb td:first-child{text-align:left}
.stb tbody th{font-weight:600}
.stb tbody th small{display:block;font:500 11.5px "Barlow",sans-serif;color:var(--muted)}
.stb .tt{font-weight:700}
.lnk{background:none;border:0;padding:0;font:inherit;font-weight:600;color:inherit;cursor:pointer;text-align:left}
.lnk:hover{text-decoration:underline}
.stb tr.sr{cursor:pointer}.stb tr.sr:hover,.stb tr.sr.on{background:var(--ok-head)}
.stb .sd td{text-align:left;padding:4px 8px 10px;font-weight:400;font-size:13px}
.stb .sd ul{margin:0;padding-left:18px}
.sh{margin:16px 0 4px;font:600 12px "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.idl{margin:0 0 6px;font-size:13.5px;color:var(--muted)}

.wr{display:inline-flex;align-items:center;color:var(--tag-warn-ink);background:var(--tag-warn-bg);border-radius:4px;padding:2px 4px}
.wr .ic{width:13px;height:13px}
.dl .wdt{color:var(--tag-warn-ink);font-weight:700}
.dl .wdd b{color:var(--tag-warn-ink)}
.dl .wdd b+small{margin-bottom:6px}
.rslots{display:grid;gap:6px;margin-top:6px}
.rs{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px;font:500 14px "Barlow",sans-serif}
.rs .seg{min-width:110px}
.rs input[type=time]{font:500 14px "Barlow",sans-serif;padding:5px 6px;border:1px solid var(--line-strong);border-radius:6px;background:var(--surface);color:var(--ink)}

.inp{font:500 14px "Barlow",sans-serif;padding:8px 9px;border:1px solid var(--line-strong);border-radius:6px;background:var(--surface);color:var(--ink);width:100%;min-width:0;box-sizing:border-box}
.mrow,.mh{display:grid;grid-template-columns:1.1fr 1.2fr 1.4fr auto;gap:8px;align-items:center;margin:0 0 6px}
.mrow .sel{width:100%;min-width:0}
.mh{font:600 11px/1.1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:6px}
.mrow.add{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line-strong)}
.mrow.dv,.mh.dv{grid-template-columns:1fr 1.1fr 1.2fr .9fr auto auto}
.mrow.tym,.mh.tym{grid-template-columns:1fr 1fr}
.cc{display:flex;align-items:center;gap:8px}.cc input[type=color]{width:42px;height:32px;padding:0;border:1px solid var(--line-strong);border-radius:6px;background:none;cursor:pointer}
@media (max-width:720px){.mrow{grid-template-columns:1fr 1fr;padding-bottom:8px;border-bottom:1px solid var(--line)}.mh{display:none}.mrow.dv{grid-template-columns:1fr 1fr}}

/* -- en-tête « versus » de la fiche match -- */
.mv{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;margin:0 0 12px;padding-right:34px}
.mvhome,.mvopp{display:flex;align-items:center;gap:8px;min-width:0}
.mvopp{text-align:left}
.mvx{flex:none;font:700 12px/1 "Barlow Condensed","Arial Narrow",sans-serif;color:var(--muted);letter-spacing:.1em}
.mvlogo{width:38px;height:38px;border-radius:9px;object-fit:contain;background:var(--corner);flex:none}
:root[data-theme="dark"] .mvlogo.club{background:#fff;padding:3px}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .mvlogo.club{background:#fff;padding:3px}}
.mvlogo.ph{display:inline-flex;align-items:center;justify-content:center;font:700 15px/1 "Barlow Condensed","Arial Narrow",sans-serif;color:var(--muted)}
.mvteams{display:flex;flex-wrap:wrap;gap:4px;min-width:0}
.mvname{font:700 15px/1.2 "Barlow Condensed","Arial Narrow",sans-serif;overflow-wrap:anywhere;min-width:0}
.mvopp.tbc .mvname{color:var(--tag-warn-ink);font-style:italic}

/* -- adversaires : logo dans la liste -- */
.oplg{width:34px;height:34px;border-radius:8px;object-fit:contain;background:var(--corner);flex:none}
.oplg.ph{display:inline-flex;align-items:center;justify-content:center;font:700 14px/1 "Barlow Condensed","Arial Narrow",sans-serif;color:var(--muted)}
.flab{position:relative;overflow:hidden}
.flab input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}

/* -- conflits d'horaire -- */
.wr.cf{background:var(--ext-head);color:var(--ext-ink)}
.dl .wdt{color:var(--tag-warn-ink)}

/* -- aide : visite guidée -- */
:root{--gd-accent:#d9662c;--gd-accent-ink:#a44a1c;--gd-stage:#0e1b26;--gd-stage-line:#28394a}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--gd-accent:#e9803f;--gd-accent-ink:#ffb076;--gd-stage:#060c12;--gd-stage-line:#1b2733}}
:root[data-theme="dark"]{--gd-accent:#e9803f;--gd-accent-ink:#ffb076;--gd-stage:#060c12;--gd-stage-line:#1b2733}
#aidebtn{display:inline-flex;align-items:center;gap:6px;align-self:flex-end;height:36px;box-sizing:border-box}
#aidebtn .ic{width:16px;height:16px}
.gd{position:fixed;inset:0;z-index:70;background:var(--bg);overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.gdin{max-width:640px;margin-inline:auto;padding:16px 16px 32px;min-height:100%;display:flex;flex-direction:column;gap:14px}
.gdh{display:flex;align-items:center;justify-content:space-between;gap:12px}
.gdh b{font:700 20px/1 "Barlow Condensed","Arial Narrow",sans-serif}
.gdh .x{border:0;background:transparent;color:var(--muted);font:400 26px/1 "Barlow",sans-serif;cursor:pointer;border-radius:8px;width:36px;height:36px}
.gdh .x:hover{background:var(--corner);color:var(--ink)}
.gdh .x:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.gdcnt{font:600 12px "Barlow",sans-serif;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;margin-bottom:-6px}
.gdstage{background:var(--gd-stage);border:1px solid var(--gd-stage-line);border-radius:18px;box-shadow:0 14px 34px -16px rgba(0,0,0,.45);min-height:200px;height:min(48vh,440px);display:flex;align-items:center;justify-content:center;padding:20px}
.gdframe{position:relative;display:inline-block;line-height:0;max-width:100%;max-height:100%}
.gdframe img{display:block;max-width:100%;max-height:calc(min(48vh,440px) - 40px);width:auto;height:auto;border-radius:9px;box-shadow:0 6px 20px rgba(0,0,0,.35)}
.gdframe img.gdart{width:100px;height:auto;box-shadow:none;filter:drop-shadow(0 8px 20px rgba(0,0,0,.4))}
.gdhl{position:absolute;border:2.5px solid var(--gd-accent);border-radius:7px;box-shadow:0 0 0 3px rgba(217,102,44,.22);pointer-events:none;animation:gdpulse 2.2s ease-in-out infinite}
@media (prefers-reduced-motion: reduce){.gdhl{animation:none}}
@keyframes gdpulse{0%,100%{box-shadow:0 0 0 3px rgba(217,102,44,.22)}50%{box-shadow:0 0 0 7px rgba(217,102,44,.05)}}
.gdbd{position:absolute;width:21px;height:21px;margin:-10.5px 0 0 -10.5px;border-radius:50%;background:var(--gd-accent);color:#fff;font:700 11px "Barlow",sans-serif;display:flex;align-items:center;justify-content:center;pointer-events:none;box-shadow:0 0 0 2.5px var(--surface),0 3px 7px rgba(0,0,0,.4)}
.gdcap{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 18px}
.gdeye{font:600 11px "Barlow",sans-serif;letter-spacing:.09em;text-transform:uppercase;color:var(--gd-accent-ink);margin:0 0 5px}
.gdcap h3{font:700 20px/1.15 "Barlow Condensed","Arial Narrow",sans-serif;margin:0 0 8px;text-wrap:balance}
.gdcap p{margin:0;color:var(--ink)}
.gdleg{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.gdleg .li{display:flex;align-items:center;gap:5px;background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:3px 10px 3px 4px;font:600 11.5px "Barlow",sans-serif;color:var(--ink)}
.gdleg .li b{background:var(--gd-accent);color:#fff;border-radius:50%;width:15px;height:15px;display:inline-flex;align-items:center;justify-content:center;font-size:9px;flex:none}
.gdtag{display:inline-block;margin-top:11px;font:600 12px "Barlow",sans-serif;color:var(--muted);background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:4px 11px}
.gdctrl{display:flex;align-items:center;gap:8px;margin-top:auto}
.gdplay{width:40px;height:40px;border-radius:50%;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);cursor:pointer;flex:none;font-size:13px;padding:0}
.gdplay.on{background:var(--gd-accent);border-color:var(--gd-accent);color:#fff}
.gdplay:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.gddots{display:flex;gap:5px;flex:1;justify-content:center;flex-wrap:wrap}
.gddot{width:7px;height:7px;border-radius:50%;background:var(--line-strong);border:0;padding:0;cursor:pointer}
.gddot.on{background:var(--gd-accent);width:9px;height:9px}
@media (max-width:600px){
  .gdin{padding:12px 12px 24px}
  .gdstage{height:min(38vh,320px)}
  .gdframe img{max-height:calc(min(38vh,320px) - 40px)}
}

/* -- code e-Marque mis en avant, avec copie -- */
.emv{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px}
.emc{font:700 19px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.03em;font-variant-numeric:tabular-nums;padding:4px 10px;border-radius:6px;background:var(--tag-champ-bg);color:var(--tag-champ-ink)}

/* -- aperçus cliquables du style de tuile -- */
.tprevs{display:flex;flex-wrap:wrap;gap:12px;margin:2px 0 4px}
.tprevcard{flex:1 1 200px;min-width:180px;display:flex;flex-direction:column;gap:8px;align-items:center;padding:12px;border:2px solid var(--line);border-radius:10px;background:var(--surface);cursor:pointer;font:500 13px "Barlow",sans-serif;color:var(--ink)}
.tprevcard:hover{border-color:var(--line-strong)}
.tprevcard.on{border-color:var(--focus);background:var(--tag-champ-bg)}
.tprevcard:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.tprev{pointer-events:none;width:100%;max-width:210px}
.tprev .m,.tprev .m.va{cursor:default}
.tprevlabel b{color:var(--focus);font-weight:600}

/* -- accent du guide unifié sur le rouge utilisé partout ailleurs (bouton Publier, focus...) : l'orange
   d'origine ne correspondait à aucune autre couleur de l'appli -- */
:root{--gd-accent:var(--focus);--gd-accent-ink:var(--focus)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--gd-accent:var(--focus);--gd-accent-ink:var(--focus)}}
:root[data-theme="dark"]{--gd-accent:var(--focus);--gd-accent-ink:var(--focus)}

/* -- style visuel « Licences » (réglage Gérer > Affichage > Style visuel) : reprend l'habillage du portail
   Licences CSEF sur la version bureau (bandeau sombre collant + onglets soulignés). Sur mobile, la barre
   compacte #mbar est déjà dans ce style par défaut : rien à changer en dessous de 721px. -- */
@media (min-width:721px){
  [data-skin="licences"] header.top{
    display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px 20px;
    position:sticky; top:env(safe-area-inset-top,0px); z-index:30;
    background:var(--band); color:var(--band-ink);
    /* le corps de la page a 20px de marge intérieure en haut (padding-block du body) : la marge négative
       remonte le bandeau de cette même valeur pour qu'il parte pile du haut de la page (aucun trou de fond
       clair au-dessus), puis le padding (indépendant de cette marge) fixe la respiration interne autour du
       logo/titre -- réduit ici pour que la hauteur totale (bandeau + onglets) rejoigne celle de l'en-tête
       de l'artefact Licences CSEF. Ne dépend pas du thème clair/sombre du reste de la page : seul ce
       bandeau doit ressembler à Licences, le contenu en dessous garde son thème habituel. */
    margin:-20px -16px 0; padding:5px 16px 3px; box-shadow:0 2px 12px rgba(0,0,0,.2);
  }
  [data-skin="licences"] header.top .logo{height:44px; width:auto; background:#fff; border-radius:8px; padding:3px}
  [data-skin="licences"] header.top .eyebrow{color:var(--band-ink); opacity:.7}
  [data-skin="licences"] header.top h1{font:700 24px/1 "Barlow Condensed","Arial Narrow",sans-serif; letter-spacing:.02em; color:var(--band-ink); margin:2px 0 0}
  [data-skin="licences"] header.top .controls label{color:var(--band-ink); opacity:.75}
  /* "Bilan" / "sur N matchs joués..." : le bandeau Licences est toujours sombre (quel que soit le thème
     clair/sombre du reste de la page), donc ce texte doit toujours prendre la couleur du bandeau (blanche),
     pas le --muted prévu pour un fond clair */
  [data-skin="licences"] header.top .bl-l,[data-skin="licences"] header.top .bl-n{color:var(--band-ink)}
  [data-skin="licences"] header.top .tmbtn{background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.28); color:var(--band-ink)}
  /* le menu déroulant "Équipe" (.tmpanel) reste un panneau clair (fond --surface) même quand le bouton qui
     l'ouvre est sur le bandeau sombre : sans cette ligne il hérite du blanc de header.top et devient
     illisible (texte blanc sur fond blanc) */
  [data-skin="licences"] header.top .tmpanel{color:var(--ink)}
  [data-skin="licences"] header.top .controls .tmpanel label,[data-skin="licences"] header.top .controls .tmpanel .tmall{color:var(--ink); opacity:1}
  [data-skin="licences"] header.top #aidebtn,[data-skin="licences"] header.top .gbtn{background:transparent; border-color:rgba(255,255,255,.35); color:var(--band-ink)}
  [data-skin="licences"] header.top #aidebtn:hover,[data-skin="licences"] header.top .gbtn:hover{background:rgba(255,255,255,.12)}

  [data-skin="licences"] nav.tabs{
    display:flex; flex-wrap:nowrap; overflow-x:auto; gap:2px; margin:0 -16px 14px; padding:0 12px;
    background:var(--band); scrollbar-width:none;
  }
  [data-skin="licences"] nav.tabs::-webkit-scrollbar{display:none}
  [data-skin="licences"] nav.tabs button{
    flex:none; background:transparent; border:0; border-radius:0; border-bottom:3px solid transparent;
    color:var(--band-ink); opacity:.72; font:600 14px/1 "Barlow Condensed","Arial Narrow",sans-serif;
    letter-spacing:.06em; text-transform:uppercase; padding:11px 12px 10px; cursor:pointer;
  }
  [data-skin="licences"] nav.tabs button:hover{opacity:1}
  [data-skin="licences"] nav.tabs button[aria-pressed="true"]{opacity:1; color:#fff; border-bottom-color:var(--focus)}
}

/* -- puce de notification (rouge) à côté de l'onglet « Cette semaine » : nombre de rencontres du
   week-end en cours (samedi + dimanche) -- */
.tabnotif{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;margin-left:6px;padding:0 5px;border-radius:999px;background:var(--red);color:#fff;font:700 12px/18px "Barlow Condensed","Arial Narrow",sans-serif;font-variant-numeric:tabular-nums;vertical-align:2px}
[data-skin="licences"] nav.tabs button .tabnotif{vertical-align:1px}

/* -- score sur les tuiles, version mobile uniquement (option Affichage > Score sur mobile), affiché à
   droite de la tuile : vert si le club a gagné, rouge si perdu. La 3e colonne « auto » ne prend de la
   place que lorsque le score est effectivement affiché (une tuile sans score n'a que 2 enfants). -- */
.ac{grid-template-columns:80px 1fr auto}
.a-score{align-self:center;font:700 20px/1 "Barlow Condensed","Arial Narrow",sans-serif;font-variant-numeric:tabular-nums;color:var(--muted);padding-left:8px;white-space:nowrap}
/* le score ne reprend plus le vert/rouge domicile-extérieur (qui contredisait la couleur de la tuile) : il
   reste toujours neutre, et une pastille verte (victoire) ou rouge (défaite) porte l'information à sa place. */
.a-score.w,.a-score.l{color:var(--ink);position:relative;padding-right:14px}
.a-score.w::after,.a-score.l::after{content:'';position:absolute;right:0;top:50%;transform:translateY(-50%);width:7px;height:7px;border-radius:50%}
.a-score.w::after{background:var(--ok-ink)}
.a-score.l::after{background:var(--ext-ink)}
.a-score-sep{margin:0 1px;opacity:.6;font-weight:500}


/* ==== fiche détaillée d'un match : nouvelle présentation (toujours en palette claire) ==== */
.dlg.fx{max-width:620px;padding:0;color-scheme:light;
  --bg:#edf0f3; --surface:#ffffff; --ink:#14222e; --muted:#5a6a77; --line:#d6dde4; --line-strong:#a9b5c0;   --band:#000000; --band-ink:#ffffff; --corner:#e3e8ed;   --dom-bg:#eef6ea; --dom-head:#d3e8c9; --dom-ink:#255216; --dom-line:#c3dbb6;   --ext-bg:#fcefef; --ext-head:#f4cfcf; --ext-ink:#8a2626; --ext-line:#eabdbd;   --u11:#b25e0c; --u13:#0e7c75; --u15:#3d5cc0; --u18:#9c3789; --sen:#1c2b3a; --sf:#b8225b;   --tag-champ-bg:#dde7f2; --tag-champ-ink:#1b3a5b;   --tag-coupe-bg:#fdeeb8; --tag-coupe-ink:#5f4300;   --tag-warn-bg:#ffd8a6; --tag-warn-ink:#743800; --red:#c62828;   --focus:#b6000c; --now-hl:#2456b3;   --camp:#6f3fa8; --camp-bg:#f3ecfb; --camp-line:#d9c6ef;   --vac-bg:#fdeeb8; --vac-ink:#5f4300;
  background:var(--surface);color:var(--ink);border:0;border-radius:16px;overflow:auto}
.fx-hero{position:relative;background:linear-gradient(160deg,#1d3042,#14222e);color:#fff;padding:16px 26px 26px;border-bottom:4px solid #b6000c;overflow:hidden}
.fx-hero:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(115deg,rgba(255,255,255,.035) 0 2px,transparent 2px 22px);pointer-events:none}
.dlg.fx .x{top:14px;right:16px;z-index:2;width:34px;height:34px;border:1px solid rgba(255,255,255,.3);border-radius:50%;background:rgba(255,255,255,.08);color:#fff;font-size:22px;line-height:30px}
.dlg.fx .x:hover{background:rgba(255,255,255,.2);color:#fff}
.dlg.fx .x:focus-visible{outline:2px solid #fff;outline-offset:2px}
.fx-htop{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;padding-right:44px;margin-bottom:18px;min-height:34px}
.fx-htop .tb{font-size:15px;padding:5px 10px;border-radius:5px}
.fx-hero .tg{align-self:center;font:700 11px/1 "Barlow",sans-serif;letter-spacing:.08em;text-transform:uppercase;padding:5px 10px;border-radius:5px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.45);color:#fff}
.fx-hero .tg.champ{background:#dde7f2;color:#1b3a5b;border-color:transparent}
.fx-hero .tg.coupe{background:#fdeeb8;color:#5f4300;border-color:transparent}
.fx-hero .tg.warn{background:#ffd8a6;color:#743800;border-color:transparent}
.fx-hero .tg.derog{background:#ffd8a6;color:#c62828;border-color:transparent}
.fx-hero .tg.x3{background:#fff;color:#14222e;border-color:transparent}
.fx-vs{position:relative;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px}
.fx-side{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;min-width:0}
.fx-crest{width:84px;height:84px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(0,0,0,.35);overflow:hidden;flex:none}
.fx-crest img{width:66%;height:66%;object-fit:contain}
.fx-crest.ph{background:#e9eef3;color:#14222e;font:900 40px/1 "Barlow Condensed","Arial Narrow",sans-serif}
.fx-nm{font:700 25px/1.05 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.03em;text-transform:uppercase;overflow-wrap:break-word;text-wrap:balance;max-width:100%}
.fx-nm.long{font-size:20px}
.fx-side.tbc .fx-nm{color:#ffcf94;font-style:italic}
.fx-sub{font-size:11px;letter-spacing:.08em;color:rgba(255,255,255,.7);text-transform:uppercase;margin-top:-4px;overflow-wrap:anywhere}
.fx-mid{text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}
.fx-vsb{font:900 20px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.12em;color:rgba(255,255,255,.75);width:44px;height:44px;border-radius:50%;border:1.5px solid rgba(255,255,255,.35);display:flex;align-items:center;justify-content:center}
.fx-nosc{font-size:11px;color:rgba(255,255,255,.65);max-width:90px;line-height:1.2}
.fx-score{font:900 66px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.02em;white-space:nowrap;font-variant-numeric:tabular-nums}
.fx-score i{font-style:normal;font-weight:500;color:rgba(255,255,255,.45);padding:0 8px}
.fx-res{font:700 13px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.14em;text-transform:uppercase;padding:5px 12px;border-radius:999px;background:rgba(255,255,255,.18);color:#fff}
.fx-res.w{background:#2e9a47}.fx-res.l{background:#c62828}
.fx-ff{font:900 24px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.1em;text-transform:uppercase;border:2px solid rgba(255,255,255,.5);border-radius:6px;padding:8px 12px}
.fx-when{display:flex;align-items:center;gap:16px;padding:14px 26px;background:var(--bg);border-bottom:1px solid var(--line)}
.fx-dt{flex:1;min-width:0}
.fx-dow{font:700 11px/1.2 "Barlow",sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.fx-day{margin:0;font:700 30px/1.05 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.01em}
.fx-hr{font:900 44px/1 "Barlow Condensed","Arial Narrow",sans-serif;padding:0 16px;border-left:1px solid var(--line);border-right:1px solid var(--line);white-space:nowrap}
.fx-hr.sm{font-size:18px;font-weight:700;white-space:normal;max-width:150px;text-align:center}
.dlg.fx .side-pill{padding:7px 12px;font-size:13px;letter-spacing:.1em;flex:none}
.fx-body{padding:4px 26px 22px}
.fx-sec{padding:15px 0;border-bottom:1px solid var(--line)}
.fx-sh{display:flex;align-items:center;gap:8px;margin:0 0 10px;font:700 12px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.fx-sh svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.fx-big{font:700 16px/1.3 "Barlow",sans-serif}
.fx-mut{color:var(--muted);font-size:13px}
.fx-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.fx-t{display:flex;flex-direction:column;gap:2px;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:9px 14px;min-width:0}
.fx-t .r{font-size:11px;color:var(--muted);letter-spacing:.04em}
.fx-t .n{font-size:15px;font-weight:700;overflow-wrap:anywhere}
.fx-t.todo{background:var(--tag-warn-bg);border-color:transparent}
.fx-t.todo .r,.fx-t.todo .n{color:var(--tag-warn-ink)}
.fx-t.na{border-style:dashed;background:transparent}
.fx-t.na .n{color:var(--muted);font-weight:500;font-style:italic}
.fx-t.wide{grid-column:1/-1}
.fx-note{margin:10px 0 0;display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--red)}
.fx-note svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;flex:none}
.fx-kv{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px}
.fx-kv .n{overflow-wrap:anywhere}
.fx-kv .r{display:block;font-size:11px;color:var(--muted);letter-spacing:.04em}
.fx-kv .n{font-weight:700}
.dlg.fx .fx-alert{margin:14px 0 0;padding:12px 14px;background:var(--tag-warn-bg);border-radius:10px}
.dlg.fx .fx-sec .dl{margin:10px 0 0}
.dlg.fx .dn0{margin:14px 0 0}
.dlg.fx .ed{margin-top:0;padding:15px 0}
.dlg.fx .mbilan{margin:0;padding:15px 0;border-top:0;border-bottom:1px solid var(--line);gap:10px}
.dlg.fx .mbh{display:flex;align-items:center;font:700 12px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.14em}
.dlg.fx .fx-body > :last-child{border-bottom:0;padding-bottom:0}
@media (max-width:720px){
  .dlg.fx{max-width:none;border-radius:16px 16px 0 0;padding:0}
  .fx-hero{padding:14px 18px 20px}
  .fx-vs{gap:6px}
  .fx-crest{width:62px;height:62px}
  .fx-nm{font-size:20px}
  .fx-nm.long{font-size:17px}
  .fx-score{font-size:46px}
  .fx-score i{padding:0 4px}
  .fx-vsb{width:36px;height:36px;font-size:16px}
  .fx-when{padding:12px 18px;gap:10px;flex-wrap:wrap}
  .fx-day{font-size:25px}
  .fx-hr{font-size:34px;padding:0 12px}
  .fx-body{padding:2px 18px 20px}
}

/* -- événements du club (assemblée générale, fête du club…) : pas d'adversaire -- */
.tb.kev{background:var(--focus)}
.m.ev,.ac.ev{border-style:dashed}
.m.ev .opp,.ac.ev .opp,.m.ev .a-opp,.ac.ev .a-opp{font-weight:700}
.dlg.fx .fx-evt{position:relative;display:flex;flex-direction:column;gap:6px;padding:4px 0 2px}
.dlg.fx .fx-evk{font:700 11px/1 "Barlow",sans-serif;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.dlg.fx .fx-evn{font:700 34px/1.05 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.02em;text-transform:uppercase;overflow-wrap:break-word;text-wrap:balance}
@media (max-width:720px){.dlg.fx .fx-evn{font-size:27px}}

/* -- photo d'équipe en bas de la fiche (sous le bilan) -- */
.dlg.fx .fx-photos{display:grid;gap:14px}
.dlg.fx .fx-ph{margin:0}
.dlg.fx .fx-ph[hidden]{display:none}
.dlg.fx .fx-ph img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:10px;background:#e3e8ed}
.dlg.fx .fx-ph figcaption{margin-top:6px;font:700 12px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}

/* ==== nouveau design des tuiles (« v2 », Affichage > Design des tuiles) ==== */
:root{--v2-ok:#14222e;--v2-warn:#d98a1f;--v2-foot:#f8fafb;--v2-dom-rail:#b6000c;--v2-ext-rail:#8593a0;--v2-ink2:#34444f}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--v2-ok:#e6edf3;--v2-warn:#e0a23a;--v2-foot:#1b2733;--v2-dom-rail:#e5484d;--v2-ext-rail:#7d8b97;--v2-ink2:#c3cfd9}}
:root[data-theme="dark"]{--v2-ok:#e6edf3;--v2-warn:#e0a23a;--v2-foot:#1b2733;--v2-dom-rail:#e5484d;--v2-ext-rail:#7d8b97;--v2-ink2:#c3cfd9}
/* extérieur en gris (et non en rouge, pour ne pas évoquer une défaite) ; ignoré si une couleur « Extérieur » personnalisée est choisie */
:root[data-tiles="v2"]:not([data-extc]){--ext-bg:#f0f2f4;--ext-head:#dde2e7;--ext-ink:#4b5a67;--ext-line:#d2d8de}
@media (prefers-color-scheme: dark){:root[data-tiles="v2"]:not([data-extc]):not([data-theme="light"]){--ext-bg:#1b2128;--ext-head:#2e3842;--ext-ink:#b8c4cf;--ext-line:#323d48}}
:root[data-tiles="v2"][data-theme="dark"]:not([data-extc]){--ext-bg:#1b2128;--ext-head:#2e3842;--ext-ink:#b8c4cf;--ext-line:#323d48}
:root[data-tiles="v2"]:not([data-extc]) .dlg.fx{--ext-bg:#f0f2f4;--ext-head:#dde2e7;--ext-ink:#4b5a67;--ext-line:#d2d8de}

/* -- tuile bureau -- */
.m.v2{padding:8px 10px 0 10px;gap:7px;border-radius:10px;border-left-width:4px;overflow:hidden;box-shadow:0 1px 2px rgba(14,22,30,.07)}
.m.v2.d{border-color:var(--dom-line);border-left-color:var(--v2-dom-rail)}
.m.v2.e{border-color:var(--ext-line);border-left-color:var(--v2-ext-rail)}
.m.v2 + .m.v2{margin-top:7px}
.v2 .tb{font:800 15px/1 "Barlow Condensed","Arial Narrow",sans-serif;padding:5px 8px;border-radius:5px}
.v2-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;min-height:30px}
.v2-hr{font:800 24px/1 "Barlow Condensed","Arial Narrow",sans-serif;font-variant-numeric:tabular-nums;letter-spacing:.01em;color:var(--ink);text-align:right;white-space:nowrap}
.v2-hr small{display:block;font:700 11px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
.v2-hr.sp{font-size:16px;line-height:1.05}
.v2-res{display:inline-flex;align-items:center;gap:6px;justify-content:flex-end}
.v2-sc{font:800 24px/1 "Barlow Condensed","Arial Narrow",sans-serif;font-variant-numeric:tabular-nums;white-space:nowrap}
.v2-sc i{font-style:normal;font-weight:500;color:var(--muted);padding:0 2px}
.v2-vd{width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font:800 10px/1 "Barlow Condensed","Arial Narrow",sans-serif;color:#fff;flex:none}
.v2-vd.w{background:var(--v2-ok)} .v2-vd.l{background:var(--red)}
.v2-opp{display:flex;align-items:center;gap:9px;min-width:0;height:56px}
.v2-crest{width:32px;height:32px;border-radius:50%;background:#fff;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;overflow:hidden;flex:none}
.v2-crest img{width:78%;height:78%;object-fit:contain}
.v2-crest.ph{background:var(--corner);color:var(--ink);font:800 15px/1 "Barlow Condensed","Arial Narrow",sans-serif}
.v2-name{min-width:0;flex:1}
.v2-name b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font:700 16px/1.05 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.03em;text-transform:uppercase;overflow-wrap:anywhere}
.v2-name.tbc b{color:var(--tag-warn-ink);font-style:italic}
.v2-sub{display:flex;align-items:center;gap:4px;margin-top:3px;white-space:nowrap;overflow:hidden;min-width:0}
.v2-champ{font:400 12px/1.15 "Barlow",sans-serif;color:var(--v2-ink2);overflow:hidden;text-overflow:ellipsis}
.v2-tg{font:700 11px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.08em;text-transform:uppercase;padding:4px 7px;border-radius:999px;border-color:transparent;flex:none;align-self:center}
.v2-eyebrow{display:block;font:700 10px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.16em;text-transform:uppercase;opacity:.7;margin-bottom:4px}
.v2-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 -10px 0 -10px;padding:7px 10px;border-top:1px solid var(--line);background:var(--v2-foot);min-height:33px}
.v2-foot>*:first-child{min-width:0}
.v2-st{display:flex;align-items:center;gap:6px;font:500 12px/1 "Barlow",sans-serif;color:var(--muted);white-space:nowrap}
.v2-st b{font:700 12px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}
.v2-seg{display:inline-flex;flex-direction:row;gap:2px}.v2-seg i{display:block;width:7px;height:6px;border-radius:2px;background:var(--line)}
.v2-seg i.on{background:var(--v2-ok)} .v2-st.ko .v2-seg i.on{background:var(--v2-warn)}
.v2-st .okt{color:var(--ok-ink);font-weight:700}
.v2-st .dot{opacity:.4}
.v2-sl{display:flex;align-items:center;gap:5px;min-width:0;font:400 12px/1.1 "Barlow",sans-serif;color:var(--muted)}
.v2-sl .ic{width:12px;height:12px;margin:0;flex:none}
.v2-sl span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v2-ics{display:inline-flex;gap:4px;align-items:center;flex:none}
.v2-ics .wr{padding:2px 5px}
.v2-ics .wr.cf{background:color-mix(in srgb, var(--red) 16%, var(--surface));color:var(--red)}
.v2-ff{font:800 11px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.14em;text-transform:uppercase;border:1.5px solid var(--red);color:var(--red);border-radius:4px;padding:3px 6px}
/* événement du club */
.m.v2.ev,.ac.v2.ev{background:linear-gradient(160deg,#1d3042,#14222e);border-style:solid;border-color:#14222e;color:#fff}
.m.v2.ev{border-left-color:var(--focus)}
.m.v2.ev .v2-hr,.m.v2.ev .v2-name b,.ac.v2.ev .v2-name b{color:#fff}
.m.v2.ev .v2-hr small{color:rgba(255,255,255,.65)}
.m.v2.ev .tb.kev,.ac.v2.ev .tb.kev{background:var(--focus);color:#fff}
.m.v2.ev .v2-crest.ev,.ac.v2.ev .v2-crest.ev{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.35)}
.v2-crest.ev .ic{width:16px;height:16px;margin:0;stroke:#fff}
.m.v2.ev .v2-opp{height:auto;min-height:48px;padding-bottom:10px}
/* -- tuile mobile -- */
.ac.v2{grid-template-columns:76px 1fr;gap:0;padding:0;border-radius:10px;border-left-width:1px;overflow:hidden;background:var(--surface);box-shadow:0 1px 1px rgba(14,22,30,.05)}
.ac.v2.d{background:var(--surface);border-color:var(--dom-line)}
.ac.v2.e{background:var(--surface);border-color:var(--ext-line)}
.ac.v2 .at{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:8px 2px;text-align:center}
.ac.v2.d .at{background:var(--dom-head)} .ac.v2.e .at{background:var(--ext-head)}
.v2-bh{font:800 21px/1 "Barlow Condensed","Arial Narrow",sans-serif;font-variant-numeric:tabular-nums;color:var(--ink)}
.v2-bh.sm{font-size:13px;line-height:1.1}
.ac.v2 .at small{display:inline-flex;align-items:center;gap:4px;margin:0;font:700 9.5px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.12em;text-transform:uppercase}
.ac.v2.ev .at{background:rgba(255,255,255,.08);color:#fff} .ac.v2.ev .v2-bh{color:#fff}
.ac.v2 .ab{padding:8px 11px 0;gap:7px}
.ac.v2 .v2-r1{display:flex;align-items:center;gap:7px;flex-wrap:nowrap;min-width:0}
.ac.v2 .v2-r1 .a-teams{flex:none}
.ac.v2 .v2-champ{font-size:11.5px;color:var(--v2-ink2);white-space:nowrap}
.ac.v2.ev .v2-champ{color:rgba(255,255,255,.7)}
.ac.v2 .v2-opp{height:36px}
.ac.v2 .v2-crest{width:30px;height:30px}
.ac.v2 .v2-name b{font-size:16px}
.ac.v2 .v2-res{margin-left:auto;flex:none;gap:6px}
.ac.v2 .v2-sc{font-size:20px;font-weight:700}
.ac.v2 .v2-vd{width:16px;height:16px;font-size:9.5px}
.ac.v2 .v2-foot{margin:0 -11px;padding:6px 11px;min-height:26px}
.ac.v2 .v2-st,.ac.v2 .v2-st b{font-size:11px}
.ac.v2.ev .ab{padding-bottom:10px}
/* aperçu dans Affichage */
.tprev .m.v2,.tprev .ac.v2{cursor:default}
.tprevs.dim{opacity:.55}
/* la largeur des colonnes ne dépend pas du contenu des tuiles (qui s'adapte à la colonne) */
.m.v2{contain:inline-size;min-width:0}
.v2-st{min-width:0;overflow:hidden;gap:5px}
.v2-st b{font-size:11.5px;letter-spacing:.06em}
.v2-top{min-width:0}
.v2 .tb{padding:5px 7px}
.v2-sc{font-size:22px;letter-spacing:0}
.v2-res{gap:5px}
.v2-vd{width:16px;height:16px;font-size:9.5px}
.v2-st{gap:4px;font-size:11.5px}
.v2-st .dot{display:none}
.v2-st b{font-size:11px;margin-right:1px}
.v2-st .okt{white-space:nowrap}
.v2-st>span:last-child{margin-left:3px}
/* colonnes étroites : la jauge à carrés est masquée (le décompte x/y suffit) pour que « Arbitres » reste lisible */
.v2-foot{container-type:inline-size}
@container (max-width:250px){.v2-seg{display:none}.v2-st{gap:6px}}
.m.v2 .v2-top{height:37px;min-height:0}
.v2-opp{overflow:hidden}
.ac.v2 .v2-r1{height:26px;overflow:hidden}
.ac.v2 .v2-foot{height:28px;min-height:0}
/* ==== v2 bureau compact (tuile ~85 px, une ligne d'adversaire) ==== */
.m.v2.cp{padding:6px 10px 0 9px;gap:4px;border-radius:9px}
.m.v2.cp + .m.v2{margin-top:6px}
.m.v2.cp .v2-top{height:24px;min-height:0;align-items:center;gap:7px}
.m.v2.cp .tb{font-size:13px;padding:4px 6px;border-radius:4px}
.m.v2.cp .v2-top .a-teams{flex:none}
.m.v2.cp .v2-sub{flex:1;min-width:0;margin:0;gap:4px}
.m.v2.cp .v2-champ{font-size:11.5px}
.m.v2.cp .v2-tg{padding:3px 6px;font-size:10px}
.m.v2.cp .v2-hr{font-size:20px;flex:none;line-height:1}
.m.v2.cp .v2-hr small{display:none}
.m.v2.cp .v2-hr.sp{font-size:13px}
.m.v2.cp .v2-hr.sp small{display:inline;margin:0 4px 0 0;font-size:10px}
.m.v2.cp .v2-sc{font-size:19px}
.m.v2.cp .v2-vd{width:15px;height:15px;font-size:9px}
.m.v2.cp .v2-opp{height:26px;gap:8px;align-items:center}
.m.v2.cp .v2-crest{width:24px;height:24px}
.m.v2.cp .v2-crest.ph{font-size:12px}
.m.v2.cp .v2-name b{-webkit-line-clamp:1;font-size:15px;line-height:1.1;white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}
.m.v2.cp .v2-foot{min-height:0;height:25px;padding:0 10px 0 9px;margin:0 -10px 0 -9px}
.m.v2.cp{container-type:inline-size}
@container (max-width:225px){.m.v2.cp .v2-lg{display:none}}
.m.v2.cp .v2-top{height:23px}
.m.v2.cp .v2-opp{height:24px}
.m.v2.cp .v2-foot{height:24px}
.m.v2.cp.sc .v2-sub .v2-champ{display:none}
.m.v2.cp .v2-tg{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:9.5px;letter-spacing:.05em;padding:3px 5px}
/* sobriété bureau : mêmes graisses et tailles que le design actuel */
.m.v2.cp .tb{font-weight:700;font-size:13px;letter-spacing:.04em}
.m.v2.cp .v2-hr{font-size:15px;font-weight:700;letter-spacing:0}
.m.v2.cp .v2-hr.sp{font-size:13px}
.m.v2.cp .v2-sc{font-size:15px;font-weight:700}
.m.v2.cp .v2-sc i{font-weight:400}
.m.v2.cp .v2-vd{width:14px;height:14px;font-size:8.5px;font-weight:700}
.m.v2.cp .v2-name b{font-size:13.5px;font-weight:600;letter-spacing:.01em}
.m.v2.cp .v2-champ{font-size:11px;font-weight:500}
.m.v2.cp .v2-tg{font-weight:600;font-size:9.5px}
.m.v2.cp .v2-st{font-size:11px;font-weight:500}
.m.v2.cp .v2-st b{font-size:10.5px;font-weight:600;letter-spacing:.05em}
.m.v2.cp .v2-st .okt{font-weight:600}
.m.v2.cp .v2-sl{font-size:11px;font-weight:400}
.m.v2.cp .v2-ff{font-weight:700;font-size:9.5px}
.m.v2.cp .v2-crest{width:22px;height:22px}
.m.v2.cp .v2-top{height:22px}
.m.v2.cp .v2-opp{height:22px}
.m.v2.cp .v2-foot{height:23px}
.v2-crest.x3{background:#fff}.v2-crest.x3 img{width:100%;height:100%}
/* tuile « événement du club » sur mobile : le fond sombre était écrasé par .ac.v2.d / .ac.v2.e (texte blanc sur fond blanc) */
.ac.v2.ev.d,.ac.v2.ev.e{background:linear-gradient(160deg,#1d3042,#14222e);border-color:#14222e;color:#fff}
.ac.v2.ev.d .at,.ac.v2.ev.e .at{background:rgba(255,255,255,.08);color:#fff}
.ac.v2.ev .v2-foot{color:rgba(255,255,255,.85)}

/* -- mobile : bouton « Cette semaine » en pied de page, à la place de « Gérer » pour le public et juste
   au-dessus pour les éditeurs (le bouton Gérer reste calé sous lui, au-dessus de la barre de brouillon) -- */
.wkbtn{display:none}
@media (max-width:720px){
  .wkbtn{position:fixed;left:0;right:0;z-index:44;display:flex;align-items:center;justify-content:center;gap:8px;
    bottom:var(--pbar-h,0px);padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));
    font:600 14px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.08em;text-transform:uppercase;
    color:var(--ink);background:var(--surface);border:0;border-top:1px solid var(--line-strong);box-shadow:0 -4px 16px rgba(0,0,0,.15);cursor:pointer}
  .wkbtn .ic{margin:0;width:16px;height:16px}
  .wkbtn:focus-visible{outline:2px solid var(--focus);outline-offset:-3px}
  body.hasbar .wkbtn{padding-bottom:12px}
  body.hasgbtn .wkbtn{bottom:calc(var(--pbar-h,0px) + var(--gbtn-h,46px));padding-bottom:12px}
  body:not(.hasgbtn):not(.hasbar){padding-bottom:calc(52px + env(safe-area-inset-bottom,0px))}
  body.hasgbtn:not(.hasbar){padding-bottom:calc(var(--gbtn-h,46px) + 52px + env(safe-area-inset-bottom,0px))}
  body.hasbar:not(.hasgbtn){padding-bottom:calc(var(--pbar-h,90px) + 52px)}
  body.hasgbtn.hasbar{padding-bottom:calc(var(--pbar-h,90px) + var(--gbtn-h,46px) + 52px)}
}

/* -- classement FFBB -- */
.fx-ffbb{display:flex;flex-wrap:wrap;gap:8px}
.bt.ffbb{display:inline-flex;align-items:center;gap:8px;text-decoration:none}
.bt.ffbb img{width:22px;height:22px;object-fit:contain;border-radius:5px;flex:none}
.mrow.tmr,.mh.tmr{grid-template-columns:1.1fr .9fr 1.1fr 64px 1.6fr auto}
@media (max-width:720px){.mrow.tmr{grid-template-columns:1fr 1fr}}

/* -- choix direct d'un bénévole sur la fiche (éditeurs) -- */
.fx-t.pk{cursor:pointer;position:relative}
.fx-t.pk:hover{border-color:var(--ink)}
.fx-t.pk:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.fx-t.pk:not(.editing)::after{content:'';position:absolute;top:10px;right:11px;width:12px;height:12px;opacity:.45;background:currentColor;-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='M4 20h4L19 9l-4-4L4 16z'/></svg>") center/contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='M4 20h4L19 9l-4-4L4 16z'/></svg>") center/contain no-repeat}
.fx-t.pk.editing{cursor:default;grid-column:1/-1;border-color:var(--focus)}
.fx-pk{display:flex;flex-direction:column;gap:8px;margin:4px 0 0}
.fx-pk .inp{font-size:16px}
.fx-pkb{display:flex;flex-wrap:wrap;gap:6px}

/* -- plateau / tournoi : plusieurs équipes adverses -- */
.efo{display:flex;gap:6px;margin:0 0 6px}
.efo .inp{flex:1}
#ef-extra{margin-bottom:6px}
.fx-side.multi{gap:8px}
.fx-crests{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.fx-crest.sm{width:46px;height:46px}
.fx-crest.sm.ph{font-size:22px}
.fx-side.multi .fx-nm{display:flex;flex-direction:column;gap:2px;font-size:17px;text-transform:uppercase}
.v2-crest.multi{background:var(--corner)}
.v2-crest.multi .ic{width:60%;height:60%;margin:0}
.ac.v2.ev.d .at small,.ac.v2.ev.e .at small{color:rgba(255,255,255,.78)}

/* -- fiche : bouton Itinéraire sous l'adresse -- */
.fx-loc{display:flex;align-items:center;justify-content:space-between;gap:10px}
.fx-loct{min-width:0;flex:1}
.bt.fx-route{display:inline-flex;align-items:center;gap:6px;text-decoration:none;flex:none}
.bt.fx-route svg{width:15px;height:15px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* iOS zoome sur tout champ de saisie dont la police fait moins de 16px : dans la fiche match on force 16px pour que la page ne bouge pas à la saisie */
@media (max-width:720px){.dlg input[type=text],.dlg input[type=search],.dlg input:not([type]),.dlg select,.dlg textarea,.dlg .inp,.dlg .sel{font-size:16px}}

/* -- barre « N modifications non publiées » : reste visible (et cliquable) par-dessus le panneau Gérer, pour publier
   sans avoir à revenir sur le calendrier. Elle passe au-dessus de Gérer (z 60) mais sous la fenêtre « Avant de publier »
   (z 65) ; le contenu du panneau garde une marge basse pour ne jamais être masqué par la barre. -- */
.pbar{z-index:62}
#pubrev{z-index:65}
body.hasbar .mg .mgin{padding-bottom:calc(var(--pbar-h,90px) + 40px)}

/* -- mobile : « Gérer » rejoint la barre du haut (collante, toujours visible) à la place du pied de page fixe -- */
@media (max-width:720px){
  .gbtn{display:none!important}
  .mbar.hasg .tmpick-m{grid-column:1/3}
  .mbar .gm{grid-column:3;grid-row:2;align-self:start;height:34px;margin-top:0;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 12px;border:0;border-radius:6px;background:var(--band-ink);color:var(--band);font:700 14px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .mbar .gm .ic{width:15px;height:15px;margin:0;flex:none}
  .mbar .gm:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
}

/* iOS Safari zoome la page dès qu'on touche un champ dont la police fait moins de 16px : on force 16px sur tous
   les champs de saisie en mobile, y compris ceux du panneau Gérer (réglages) et de ses sous-écrans */
@media (max-width:720px){
  input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]),
  select, textarea,
  .mg .inp, .mg .sel, .mg .fm input, .mg .fm select, .mg textarea,
  .rs input[type=time], .tmbtn, .controls select{font-size:16px!important}
}

/* -- événement du club : plusieurs badges d'équipes qui passent à la ligne ne doivent plus déborder sur le
   titre (la zone du haut avait une hauteur fixe de 37px) ; logo d'événement facultatif -- */
.m.v2.ev .v2-top{height:auto;min-height:37px}
.m.v2.ev .v2-top .a-teams{flex-wrap:wrap;min-width:0}
.m.v2.ev .v2-opp{height:auto;min-height:48px;overflow:visible}
.v2-crest.evlogo{background:#fff;border-color:rgba(255,255,255,.55)}
.m.v2.ev .v2-crest.evlogo,.ac.v2.ev .v2-crest.evlogo{background:#fff;border-color:rgba(255,255,255,.6)}
.ac.v2.ev .v2-r1{flex-wrap:wrap}
.dlg.fx .fx-evt .fx-crest{align-self:flex-start;margin-bottom:6px}
.ac.v2.ev .v2-r1{height:auto;overflow:visible;flex-wrap:wrap;row-gap:4px}
.ac.v2.ev .v2-opp{height:auto;min-height:36px}

/* -- description d'un événement du club (fiche détaillée uniquement) : retours à la ligne conservés -- */
.dlg.fx .fx-desc{margin:10px 0 0;font-size:15px;line-height:1.45;white-space:pre-line;overflow-wrap:anywhere}

/* ---- application autonome (serveur du club) : fonctionnalités désactivées, connexion, menu du compte ---- */
body.nof-thisweek .wkbtn{display:none!important}
body.nof-stats #bilan,body.nof-stats #mbBil{display:none!important}
.sa-link{margin-left:8px;color:var(--muted);text-decoration:underline;text-underline-offset:2px;white-space:nowrap}
.sa-link:hover{color:var(--ink)}
.sa-acct{position:relative;align-self:flex-end}
.sa-chip{width:36px;height:36px;border-radius:50%;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font:700 14px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.04em;cursor:pointer;padding:0}
.sa-chip:focus-visible,.sa-menu a:focus-visible,.sa-menu button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.sa-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:80;min-width:220px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 28px rgba(0,0,0,.22);padding:6px;display:flex;flex-direction:column}
.sa-menu[hidden]{display:none}
.sa-who{padding:8px 10px 10px;border-bottom:1px solid var(--line);margin-bottom:4px;display:flex;flex-direction:column;gap:2px}
.sa-who small{color:var(--muted);overflow-wrap:anywhere}
.sa-menu a,.sa-menu button{display:block;text-align:left;padding:9px 10px;border:0;background:none;color:var(--ink);font:500 14px/1.2 "Barlow","Segoe UI",system-ui,sans-serif;border-radius:6px;cursor:pointer;text-decoration:none}
.sa-menu a:hover,.sa-menu button:hover{background:var(--corner)}
.sa-acct.sa-m{display:none}
@media (max-width:720px){
  .sa-acct.sa-d{display:none}
  .sa-acct.sa-m{display:block;grid-column:4;grid-row:1}
  .mbar.sa{grid-template-columns:auto 1fr auto auto;column-gap:8px}
  .mbar.sa .mt small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.06em}
  .mbar .sa-chip{width:30px;height:30px;background:rgba(255,255,255,.14);border:0;color:var(--band-ink)}
}
/* retour à l'accueil des applis */
.bt.hdhome{text-decoration:none;display:inline-flex;align-items:center;gap:6px;align-self:flex-end;height:36px;box-sizing:border-box;padding:0 14px;margin-left:2px}
.bt.hdhome .ic{width:16px;height:16px}
header.top .controls .bt.hdhome{background:transparent;border-color:rgba(255,255,255,.35);color:var(--band-ink)}
header.top .controls .bt.hdhome:hover{background:rgba(255,255,255,.12)}
.mbar .mrt{display:flex;gap:8px;align-items:center;justify-content:flex-end}
.mbar .mh{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:999px;background:rgba(255,255,255,.14);color:inherit;text-decoration:none}
.mbar .mh .ic{width:17px;height:17px}
@media (max-width:720px){.controls .bt.hdhome{display:none}}



/* ==== refonte de la page principale (octobre 2026) : couleurs du club (noir, rouge, ardoise, or) ====
   Bureau : jour en bandeau noir, colonnes Domicile (rouge) / Extérieur (ardoise) teintées, barre rouge sur les tuiles à domicile.
   Mobile : date du jour bien visible, grandes icônes maison / voiture, pastilles d'équipe sobres.
   Les fiches de match et le panneau « Gérer » gardent leur propre palette. */
/* en-tête des jours : gris clair, week-end en cours un cran plus soutenu avec un filet noir */
.day{background:#f4f6f8;color:var(--ink);border-bottom:1px solid var(--line)}
.day .dn{color:var(--ink)}
.day .dw,.day .dw small{color:var(--muted)}
.day.now{background:#e3e8ed;box-shadow:inset 0 4px 0 #14222e}
.day.camp{background:var(--camp-bg)}
.pill.now{background:#14222e;color:#fff}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .day{background:#1b2733}:root:not([data-theme="light"]) .day.now{background:#26364a;box-shadow:inset 0 4px 0 #e6edf3}}
:root[data-theme="dark"] .day{background:#1b2733}:root[data-theme="dark"] .day.now{background:#26364a;box-shadow:inset 0 4px 0 #e6edf3}
/* sous-colonnes */
.side{border-bottom:0;color:#fff}
.side.d{background:var(--dom-head);color:#fff}
.side.e{background:#5a6a77;color:#fff}
.side i{opacity:.9}
.sw.d{background:var(--dom-head);border-color:var(--dom-head)}
.sw.e{background:#5a6a77;border-color:#5a6a77}
.side.camp{background:#f0a830;color:#14222e}
.sw.c{background:#f0a830;border-color:#f0a830}
td.c.e{background:#f1f3f5}
/* bilan dans l'en-tête */
header.top .bl.w{background:#fff;color:#14222e}
header.top .bl.l{background:#b6000c;color:#fff}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) td.c.e{background:#1b2128}
  :root:not([data-theme="light"]) .side.e{background:#3b4b5a}
  :root:not([data-theme="light"]) .camp,:root:not([data-theme="light"]) .day.camp{--camp:#3b4b5a;--camp-bg:#1d2630;--camp-line:#33414f}
}
:root[data-theme="dark"] td.c.e{background:#1b2128}
:root[data-theme="dark"] .side.e{background:#3b4b5a}
:root[data-theme="dark"]{--camp:#3b4b5a;--camp-bg:#1d2630;--camp-line:#33414f}
/* mobile : date du jour */
.ah .dn{background:#b6000c;color:#fff;border-radius:8px;padding:3px 10px 2px;font-size:28px;line-height:1}
.ah .dw{opacity:1;font-size:17px;letter-spacing:.1em}
.ad.now .ah{box-shadow:0 0 0 2px var(--now-hl)}
.ah.camp .dn{background:#f0a830;color:#14222e}
/* mobile : icônes maison / voiture bien visibles */
.ac.v2 .at small{flex-direction:column;gap:4px;font-size:10px}
.ac.v2 .at small .ic{width:24px;height:24px;margin:0;stroke-width:1.8}
.ac.v2.d .at{background:var(--dom-head)}
.ac.v2.d .at .v2-bh,.ac.v2.d .at small{color:#fff}
.ac.v2.e .at small{color:var(--ext-ink)}
.ac.v2.ev .at small{color:#fff}
/* mobile : pastilles d'équipe sobres */
.ac .tb.k9,.ac .tb.k11,.ac .tb.k13,.ac .tb.k15,.ac .tb.k18,.ac .tb.ksen,.ac .tb.ksf{background:#14222e!important;color:#fff!important}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .ac .tb.k9,:root:not([data-theme="light"]) .ac .tb.k11,:root:not([data-theme="light"]) .ac .tb.k13,:root:not([data-theme="light"]) .ac .tb.k15,:root:not([data-theme="light"]) .ac .tb.k18,:root:not([data-theme="light"]) .ac .tb.ksen,:root:not([data-theme="light"]) .ac .tb.ksf{background:#3b4b5a!important}}
:root[data-theme="dark"] .ac .tb.k9,:root[data-theme="dark"] .ac .tb.k11,:root[data-theme="dark"] .ac .tb.k13,:root[data-theme="dark"] .ac .tb.k15,:root[data-theme="dark"] .ac .tb.k18,:root[data-theme="dark"] .ac .tb.ksen,:root[data-theme="dark"] .ac .tb.ksf{background:#3b4b5a!important}

/* onglet du mois affiché en rouge */
[data-skin="licences"] nav.tabs button[aria-pressed="true"]{color:#ff4d57;border-bottom-color:#ff4d57}
.ah .pill.now{background:#fff;color:#14222e}
.grid{max-height:calc(100vh - 215px)}

/* bilan cliquable (bureau) */
header.top #bilan{cursor:pointer;border-radius:8px;padding:2px 6px;margin:-2px -6px}
header.top #bilan:hover{background:rgba(255,255,255,.12)}
header.top #bilan:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
header.top #bilan::after{content:'›';margin-left:6px;opacity:.7;font-weight:700}

/* camps : logo, photo, lien d'inscription */
.m.camp .cpphoto{display:block;width:calc(100% + 14px);max-width:none;margin:-6px -7px 4px;height:84px;object-fit:cover;border-radius:5px 5px 0 0}
.m.camp .mtop{align-items:center}
.cplogo{width:26px;height:26px;border-radius:50%;object-fit:contain;background:#fff;border:1px solid var(--camp-line);flex:none}
.m.camp .mtop .cplogo{margin-right:6px}
.ac.camp .ab .cpphoto{display:block;width:100%;height:96px;object-fit:cover;border-radius:6px;margin:0 0 8px}
.ac.camp .opp{display:flex;align-items:center;gap:8px}
.cpphoto.prev{width:96px;height:56px;object-fit:cover;border-radius:6px;margin:0 8px 0 0}
a.cpl{align-self:flex-start;display:inline-flex;align-items:center;margin-top:6px;padding:6px 12px;border-radius:6px;background:#14222e;color:#fff;font:700 13px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.08em;text-transform:uppercase;text-decoration:none}
a.cpl:hover{background:#b6000c}
a.cpl:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) a.cpl{background:#f0a830;color:#14222e}:root:not([data-theme="light"]) a.cpl:hover{background:#ffc15a}}
:root[data-theme="dark"] a.cpl{background:#f0a830;color:#14222e}
/* mobile connecté : le sélecteur d'équipe partage la ligne avec « Gérer » et la puce de compte */
@media (max-width:720px){
  .mbar .tmpick-m .tmbtn{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mbar.sa .tmpick-m .tmbtn{font-size:12.5px!important;padding:0 8px;gap:4px;letter-spacing:0}
  .mbar.sa .gm{grid-column:3/5;justify-self:end}
}
