
/* ==========================================================================
   ONZE MANAGER — DIRECTION ARTISTIQUE « FLOODLIGHT »
   --------------------------------------------------------------------------
   Concept : le tunnel d'un stade la nuit. Béton, chasubles haute visibilité,
   projecteurs, marquages au sol. Rien n'est arrondi : tout est coupé en biais,
   comme une plaque d'acier découpée. La couleur ne sert jamais à décorer,
   seulement à signaler.
   --------------------------------------------------------------------------
   Display : Anton            — titres, scores, gros chiffres
   Texte   : Space Grotesk    — interface
   Données : JetBrains Mono   — argent, notes, tableaux, minutages
   ========================================================================== */

/* --- 1. Jetons ---------------------------------------------------------- */

:root{
  /* Signaux — identiques dans les deux ambiances */
  --hv:#C8FF2E;              /* haute visibilité : action principale */
  --hv-deep:#9BCC00;
  --hv-soft:rgba(200,255,46,.12);
  --sig:#FF5A1F;             /* orange signal : urgence, mercato */
  --sig-soft:rgba(255,90,31,.13);
  --ice:#45E0FF;             /* cyan : information neutre */
  --ice-soft:rgba(69,224,255,.12);
  --gold:#FFC43D;            /* or : trophées, notes élevées */
  --gold-soft:rgba(255,196,61,.13);
  --blood:#FF3B4E;           /* rouge : négatif, blessure */
  --blood-soft:rgba(255,59,78,.13);
  --grass:#3DE08A;           /* vert : positif, forme */
  --grass-soft:rgba(61,224,138,.12);

  /* Alias de compatibilité avec l'ancienne charte */
  --spot:var(--hv);
  --spot-deep:var(--hv-deep);
  --spot-soft:var(--hv-soft);
  --foil:var(--gold);
  --foil-soft:var(--gold-soft);
  --turf:var(--grass);
  --turf-soft:var(--grass-soft);
  --flag:var(--ice);
  --flag-soft:var(--ice-soft);
  --alert:var(--blood);
  --alert-soft:var(--blood-soft);
  --accent:var(--hv);

  /* Géométrie — la signature : des angles coupés, jamais de rayon */
  --notch:11px;
  --notch-sm:7px;
  --radius:0px;
  --radius-lg:0px;
  --cut:polygon(0 0,calc(100% - var(--notch)) 0,100% var(--notch),100% 100%,var(--notch) 100%,0 calc(100% - var(--notch)));
  --cut-sm:polygon(0 0,calc(100% - var(--notch-sm)) 0,100% var(--notch-sm),100% 100%,var(--notch-sm) 100%,0 calc(100% - var(--notch-sm)));
  --cut-tr:polygon(0 0,calc(100% - var(--notch)) 0,100% var(--notch),100% 100%,0 100%);

  --sidebar:238px;
  --topbar:62px;
  --ticker:28px;

  --font-display:"Anton","Haettenschweiler","Arial Narrow",Impact,sans-serif;
  --font-body:"Space Grotesk",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;

  /* Rayures de chantier — motif récurrent sur les bords chauds */
  --hazard:repeating-linear-gradient(-45deg,var(--hv) 0 7px,transparent 7px 14px);
  --hazard-sig:repeating-linear-gradient(-45deg,var(--sig) 0 7px,transparent 7px 14px);
}

/* Ambiance NUIT — le stade sous les projecteurs */
html[data-theme="ink"]{
  --bg:#0A0E0C;
  --bg-2:#060907;
  --panel:#111815;
  --panel-2:#18211D;
  --panel-3:#212D28;
  --text:#EDF0E9;
  --text-dim:#BFC6BC;
  --muted:#7C8880;
  --line:rgba(237,240,233,.10);
  --line-strong:rgba(237,240,233,.22);
  --dash:rgba(237,240,233,.18);
  --on-spot:#0A0E0C;
  --on-foil:#150F00;
  --shadow:0 22px 55px rgba(0,0,0,.62);
  --glow:0 0 0 1px rgba(200,255,46,.25),0 0 28px rgba(200,255,46,.13);
  --grain:.028;
}

/* Ambiance JOUR — le tableau du vestiaire, craie sur béton clair */
html[data-theme="paper"]{
  --bg:#E9E7DF;
  --bg-2:#DDDAD0;
  --panel:#F7F6F1;
  --panel-2:#EFEDE5;
  --panel-3:#E2DFD4;
  --text:#0D110F;
  --text-dim:#272D2A;
  --muted:#5A635E;
  --line:rgba(13,17,15,.14);
  --line-strong:rgba(13,17,15,.30);
  --dash:rgba(13,17,15,.24);
  --on-spot:#0D110F;
  --on-foil:#150F00;
  --shadow:0 16px 34px rgba(40,44,36,.16);
  --glow:0 0 0 1px rgba(13,17,15,.18);
  --grain:.04;
  /* En plein jour, le vert fluo perd sa lisibilité : on le densifie. */
  --hv:#7FB000;
  --hv-deep:#5E8300;
  --hv-soft:rgba(127,176,0,.14);
  --sig:#DB3F00;
  --ice:#0090BC;
  --gold:#B27E00;
  --blood:#D42233;
  --grass:#12A05C;
  --on-spot:#FFFFFF;
}

/* --- 2. Base ------------------------------------------------------------ */

*{box-sizing:border-box}

html{
  background:var(--bg);
  scroll-behavior:smooth;
  -webkit-text-size-adjust:100%;
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}

body{
  margin:0;
  font-family:var(--font-body);
  font-size:15px;
  line-height:1.5;
  color:var(--text);
  background:var(--bg);
  -webkit-tap-highlight-color:transparent;
  overflow-x:hidden;
}

/* Grain de béton — une texture, pas un dégradé */
body::after{
  content:"";
  position:fixed;inset:0;
  pointer-events:none;
  z-index:9999;
  opacity:var(--grain);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E");
}

h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:400;
  text-transform:uppercase;
  letter-spacing:.005em;
  line-height:.94;
  margin:0 0 .35rem;
}
h1{font-size:clamp(2.2rem,5vw,3.4rem)}
h2{font-size:clamp(1.55rem,3.4vw,2.15rem)}
h3{font-size:1.12rem}
h4{font-size:.95rem}
p{margin:0 0 .6rem}
a{color:var(--hv);text-decoration:none}
a:hover{text-decoration:underline}

/* --- 3. Utilitaires ----------------------------------------------------- */

.hidden{display:none!important}
.muted{color:var(--muted)}
.text-dim{color:var(--text-dim)}
.positive{color:var(--grass)}
.negative{color:var(--blood)}
.warning{color:var(--gold)}
.accent{color:var(--hv)}
.gold{color:var(--gold)}
.quiet{opacity:.6}

/* Le sur-titre : toujours en mono, toujours espacé, jamais décoratif */
.eyebrow{
  font-family:var(--font-mono);
  font-size:.6rem;
  font-weight:700;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--hv);
  margin-bottom:.3rem;
  display:flex;
  align-items:center;
  gap:.45rem;
}
.eyebrow::before{
  content:"";
  width:14px;height:2px;
  background:currentColor;
  flex:0 0 auto;
}

.micro{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.05em;color:var(--muted)}
.subtext{font-size:.74rem;color:var(--muted)}
.doc-ref{
  font-family:var(--font-mono);
  font-size:.56rem;
  letter-spacing:.18em;
  color:var(--muted);
  text-transform:uppercase;
}

.grid-2{display:grid;gap:.85rem;grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{display:grid;gap:.85rem;grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-4{display:grid;gap:.85rem;grid-template-columns:repeat(4,minmax(0,1fr))}
.grid-5{display:grid;gap:.7rem;grid-template-columns:repeat(5,minmax(0,1fr))}

.empty{
  padding:1.6rem 1rem;
  text-align:center;
  color:var(--muted);
  font-size:.85rem;
  border:1px dashed var(--dash);
}

/* --- 4. Contrôles ------------------------------------------------------- */

button,select,input,textarea{font:inherit}

button,.file-button{
  min-height:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.42rem;
  padding:.55rem .9rem;
  border:1px solid var(--line-strong);
  background:var(--panel-2);
  color:var(--text);
  font-family:var(--font-body);
  font-weight:600;
  font-size:.84rem;
  letter-spacing:.01em;
  cursor:pointer;
  clip-path:var(--cut-sm);
  transition:background .13s ease,color .13s ease,border-color .13s ease,transform .13s ease;
}
button:hover,.file-button:hover{
  background:var(--panel-3);
  border-color:var(--hv);
  color:var(--text);
}
button:active{transform:translateY(1px)}
button:focus-visible,.file-button:focus-within,
input:focus-visible,select:focus-visible,
[data-player]:focus-visible,[data-club]:focus-visible{
  outline:2px solid var(--hv);
  outline-offset:2px;
}
button:disabled{opacity:.32;cursor:not-allowed}
button:disabled:hover{background:var(--panel-2);border-color:var(--line-strong)}

/* L'action principale : haute visibilité, texte sombre, sans compromis */
.primary{
  background:var(--hv);
  border-color:var(--hv);
  color:var(--on-spot);
  font-weight:700;
  letter-spacing:.02em;
  text-transform:uppercase;
  font-size:.79rem;
}
.primary:hover{background:var(--hv-deep);border-color:var(--hv-deep);color:var(--on-spot)}

.danger{background:transparent;border-color:var(--blood);color:var(--blood)}
.danger:hover{background:var(--blood);border-color:var(--blood);color:#fff}

.ghost{background:transparent;border-color:var(--line)}
.ghost:hover{background:var(--panel-2);border-color:var(--line-strong)}

.icon-button{display:none;width:42px;padding:.4rem;font-size:1.1rem}

select,input[type="text"],input[type="number"],input:not([type]),textarea{
  width:100%;
  min-height:40px;
  padding:.5rem .7rem;
  background:var(--bg-2);
  border:1px solid var(--line-strong);
  color:var(--text);
  clip-path:var(--cut-sm);
  font-size:.86rem;
}
select{cursor:pointer;appearance:none;padding-right:1.9rem;
  background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);
  background-position:calc(100% - 15px) 52%,calc(100% - 10px) 52%;
  background-size:5px 5px,5px 5px;
  background-repeat:no-repeat;
}
input[type="checkbox"]{width:auto;min-height:auto;accent-color:var(--hv)}
input[type="range"]{accent-color:var(--hv);padding:0;min-height:auto;background:transparent;border:none;clip-path:none}

label{display:block;font-size:.78rem;color:var(--text-dim)}
label>select,label>input{margin-top:.3rem}

.file-button{position:relative;overflow:hidden}
.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}

.field{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.6rem}
.field label{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}

.toolbar{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.8rem}
.toolbar input,.toolbar select{flex:1 1 150px;min-width:0}

/* Sélecteur segmenté — un rail, pas des boutons flottants */
.segment{
  display:inline-flex;
  border:1px solid var(--line-strong);
  clip-path:var(--cut-sm);
  overflow:hidden;
  background:var(--bg-2);
}
.segment button{
  border:none;
  clip-path:none;
  background:transparent;
  border-right:1px solid var(--line);
  min-height:36px;
  padding:.4rem .85rem;
  font-size:.76rem;
  font-weight:600;
  color:var(--muted);
}
.segment button:last-child{border-right:none}
.segment button.active{background:var(--hv);color:var(--on-spot);font-weight:700}
.segment button:hover:not(.active){background:var(--panel-2);color:var(--text)}

.switch{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer}

/* --- 5. Chargement, notifications --------------------------------------- */

.loading-screen{
  position:fixed;inset:0;z-index:9000;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.9rem;
  background:var(--bg-2);
  transition:opacity .4s ease;
}
.loading-screen.fade{opacity:0;pointer-events:none}
.loading-screen strong{
  font-family:var(--font-display);
  font-size:1.7rem;
  text-transform:uppercase;
  letter-spacing:.02em;
}
.loading-screen span{
  font-family:var(--font-mono);font-size:.68rem;letter-spacing:.22em;
  color:var(--muted);text-transform:uppercase;
}
/* Barre de projecteur qui balaie l'écran de chargement */
.loading-screen::after{
  content:"";
  position:absolute;left:0;right:0;bottom:0;height:3px;
  background:var(--hv);
  animation:sweep 1.6s cubic-bezier(.65,0,.35,1) infinite;
  transform-origin:left;
}
@keyframes sweep{0%{transform:scaleX(0)}55%{transform:scaleX(1)}100%{transform:scaleX(1);opacity:0}}

.loading-logo,.brand-ball{
  display:grid;place-items:center;
  width:74px;height:74px;
  background:var(--hv);
  color:var(--on-spot);
  font-family:var(--font-display);
  font-size:2.2rem;
  clip-path:var(--cut);
  box-shadow:var(--glow);
}

.toast{
  position:fixed;left:50%;bottom:22px;
  transform:translate(-50%,140%);
  z-index:9500;
  padding:.7rem 1.1rem;
  background:var(--text);
  color:var(--bg);
  font-weight:700;font-size:.83rem;
  clip-path:var(--cut-sm);
  border-left:4px solid var(--hv);
  transition:transform .28s cubic-bezier(.2,.9,.25,1);
  max-width:min(92vw,460px);
}
.toast.show{transform:translate(-50%,0)}
.toast.error{border-left-color:var(--blood)}

/* --- 6. Écran d'accueil -------------------------------------------------- */

.start-screen{
  display:block;min-height:100svh;
  background:
    radial-gradient(ellipse 60% 40% at 50% -5%,rgba(200,255,46,.10),transparent 60%),
    var(--bg-2);
  padding:0;
}
.start-shell{
  max-width:1180px;margin:0 auto;
  padding:max(1rem,env(safe-area-inset-top)) 1.1rem max(1.4rem,env(safe-area-inset-bottom));
}
.start-brandbar{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:1rem 0 1.4rem;
  border-bottom:2px solid var(--line-strong);
  margin-bottom:1.6rem;
}
.brand-lockup{display:flex;align-items:center;gap:.85rem}
.brand-lockup h1{margin:0;font-size:clamp(1.8rem,4.6vw,2.6rem)}
.brand-lockup h1 span{color:var(--hv)}
.compact-brand .brand-ball{width:54px;height:54px;font-size:1.55rem}
.start-theme{width:44px;padding:0;font-size:1.1rem}

.start-layout{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:2.2rem;align-items:start;
}

.showcase-kicker{
  font-family:var(--font-mono);font-size:.66rem;font-weight:700;
  letter-spacing:.24em;color:var(--hv);margin-bottom:1.1rem;
}
.start-showcase h2{
  font-size:clamp(3rem,7.5vw,6rem);
  line-height:.84;
  margin-bottom:.9rem;
}
/* Le second vers en contour : la lumière ne touche que la première ligne */
.start-showcase h2 span{
  color:transparent;
  -webkit-text-stroke:1.5px var(--text);
  opacity:.5;
}
.hero-copy{color:var(--text-dim);font-size:.95rem;max-width:44ch}

/* Le terrain de l'accueil : marquages, pas de dégradé */
.showcase-pitch{
  position:relative;height:180px;margin:1.5rem 0 1.1rem;
  border:2px solid var(--line-strong);
  background:
    repeating-linear-gradient(90deg,rgba(200,255,46,.035) 0 46px,transparent 46px 92px),
    var(--bg);
  clip-path:var(--cut);
  overflow:hidden;
}
.showcase-pitch::before{
  content:"";position:absolute;inset:16px;border:1px solid var(--line-strong);
}
.showcase-pitch::after{
  content:"";position:absolute;left:50%;top:16px;bottom:16px;
  border-left:1px dashed var(--dash);
}
.pitch-orbit{
  position:absolute;border-radius:50%;border:1px solid var(--line-strong);
}
.orbit-one{width:96px;height:96px;left:50%;top:50%;transform:translate(-50%,-50%)}
.orbit-two{
  width:190px;height:190px;right:-60px;bottom:-70px;
  border-color:rgba(200,255,46,.18);
}
.showcase-score{
  position:absolute;z-index:2;left:clamp(1rem,4vw,2.4rem);top:50%;
  transform:translateY(-50%);display:flex;flex-direction:column;gap:.15rem;
}
.showcase-score small{font-family:var(--font-mono);font-size:.6rem;font-weight:700;letter-spacing:.2em;color:var(--hv)}
.showcase-score strong{font-family:var(--font-display);font-size:3.6rem;line-height:1}
.showcase-score span{color:var(--muted);font-size:.82rem}

.feature-strip{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.4rem}
.feature-strip span{
  font-family:var(--font-mono);font-size:.63rem;letter-spacing:.1em;
  padding:.3rem .6rem;
  border:1px solid var(--line-strong);
  color:var(--text-dim);
  clip-path:var(--cut-sm);
}

.hero-card,.setup-card{
  background:var(--panel);
  border:1px solid var(--line-strong);
  clip-path:var(--cut);
  padding:1.4rem;
  position:relative;
}
/* Bande haute visibilité en tête de la carte de création */
.setup-card::before{
  content:"";position:absolute;left:0;right:var(--notch);top:0;height:3px;
  background:var(--hazard);
}
.setup-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.setup-head h2{margin:0}
.setup-step{
  font-family:var(--font-mono);font-size:.6rem;letter-spacing:.18em;
  color:var(--hv);border:1px solid var(--hv);padding:.25rem .5rem;
  white-space:nowrap;
}
.start-form{display:grid;gap:.7rem;grid-template-columns:1fr 1fr;margin-bottom:.9rem}
.field-manager,.field-club{grid-column:1/-1}
.start-actions{display:flex;flex-direction:column;gap:.5rem;margin-top:.9rem}
.start-main-action{min-height:52px;font-size:.92rem}
.continue-action{border-color:var(--hv);color:var(--hv)}
.start-secondary{font-size:.78rem;min-height:38px}
.start-footnote{
  display:flex;justify-content:space-between;gap:.6rem;flex-wrap:wrap;
  margin-top:1rem;padding-top:.8rem;border-top:1px dashed var(--dash);
  font-family:var(--font-mono);font-size:.6rem;letter-spacing:.1em;color:var(--muted);
}

.resume-summary{
  display:flex;align-items:center;gap:.7rem;
  padding:.7rem .85rem;margin-bottom:.8rem;
  border:1px solid var(--hv);
  background:var(--hv-soft);
  clip-path:var(--cut-sm);
  font-size:.82rem;
}
.resume-icon{font-size:1.3rem}

.notice{
  padding:.75rem .9rem;margin-bottom:.85rem;
  border-left:4px solid var(--ice);
  background:var(--panel-2);
  font-size:.83rem;
  clip-path:var(--cut-sm);
}
.notice.demo{border-left-color:var(--gold)}
.notice strong{color:var(--text)}
.notice button{margin-top:.5rem}

.club-preview{
  display:flex;align-items:center;gap:.8rem;
  padding:.8rem;border:1px solid var(--line);
  background:var(--bg-2);
  clip-path:var(--cut-sm);
  margin-bottom:.4rem;
}

/* --- 7. Écussons --------------------------------------------------------- */

.club-badge,.mini-badge,.preview-badge{
  display:grid;place-items:center;
  font-family:var(--font-display);
  color:#fff;
  flex:0 0 auto;
  clip-path:var(--cut-sm);
  text-shadow:0 1px 3px rgba(0,0,0,.5);
}
.club-badge{width:38px;height:38px;font-size:.95rem}
.mini-badge{width:26px;height:26px;font-size:.62rem;--notch-sm:4px}
.preview-badge{width:52px;height:52px;font-size:1.2rem}

/* --- 8. Coque applicative ------------------------------------------------ */

.app{
  min-height:100vh;
  display:grid;
  grid-template-columns:var(--sidebar) minmax(0,1fr);
  grid-template-rows:var(--topbar) var(--ticker) 1fr;
  grid-template-areas:"top top" "tick tick" "side main";
}

.topbar{
  grid-area:top;position:sticky;top:0;z-index:80;
  display:flex;align-items:center;gap:.7rem;
  padding:0 1rem;
  background:var(--bg-2);
  border-bottom:1px solid var(--line-strong);
}
/* Le liseré haute visibilité qui court sous la barre */
.topbar::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;
  background:linear-gradient(90deg,var(--hv) 0 96px,transparent 96px);
}
.top-title{display:flex;flex-direction:column;min-width:0;gap:.05rem}
.top-title strong{
  font-family:var(--font-display);font-size:1.14rem;text-transform:uppercase;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.top-title span{
  font-family:var(--font-mono);font-size:.62rem;letter-spacing:.11em;color:var(--muted);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.top-budget{margin-left:auto;text-align:right;line-height:1.05}
.top-budget strong{font-family:var(--font-mono);font-size:.98rem;font-weight:700}
.top-budget span{font-family:var(--font-mono);font-size:.56rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.top-actions{display:flex;gap:.4rem;align-items:center}
.top-actions button{min-height:36px;padding:.4rem .75rem}

.save-state{
  display:flex;align-items:center;gap:.35rem;
  font-family:var(--font-mono);font-size:.58rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted);
}
.save-state i{width:7px;height:7px;background:var(--grass);display:block}
.save-state.saving i{background:var(--gold);animation:blink 1s steps(1,end) infinite}
.save-state.error i{background:var(--blood)}

.window-chip{
  display:inline-flex;align-items:center;gap:.3rem;
  padding:.26rem .5rem;
  border:1px solid var(--line-strong);
  font-family:var(--font-mono);font-size:.6rem;letter-spacing:.12em;
  text-transform:uppercase;white-space:nowrap;
}
.window-chip.open{border-color:var(--grass);color:var(--grass)}
.window-chip.deadline{border-color:var(--sig);background:var(--sig);color:#fff;animation:blink 1.1s steps(1,end) infinite}
.window-chip.closed{color:var(--muted)}
@keyframes blink{50%{opacity:.4}}

/* --- 9. Bandeau de résultats --------------------------------------------- */

.ticker{
  grid-area:tick;
  display:flex;align-items:center;
  background:var(--text);
  color:var(--bg);
  overflow:hidden;
  border-bottom:1px solid var(--line-strong);
}
.ticker-label{
  flex:0 0 auto;
  padding:0 .7rem;
  height:100%;
  display:grid;place-items:center;
  background:var(--sig);
  color:#fff;
  font-family:var(--font-mono);font-size:.6rem;font-weight:700;
  letter-spacing:.2em;text-transform:uppercase;
}
.ticker-window{flex:1;overflow:hidden;position:relative;height:100%}
.ticker-track{
  display:flex;align-items:center;gap:2.2rem;
  height:100%;white-space:nowrap;
  animation:scroll 46s linear infinite;
  padding-left:1rem;
}
.ticker-track:hover{animation-play-state:paused}
@keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.ticker-item{
  font-family:var(--font-mono);font-size:.66rem;letter-spacing:.05em;
  display:inline-flex;align-items:center;gap:.45rem;
}
.ticker-item i{
  font-style:normal;font-weight:700;font-size:.56rem;letter-spacing:.16em;
  padding:.1rem .35rem;background:var(--bg);color:var(--hv);
}
.ticker-item b{font-weight:700}
.ticker-item.gold i{color:var(--gold)}
.ticker-item.alert i{color:var(--sig)}

/* --- 10. Rail de navigation ---------------------------------------------- */

.sidebar{
  grid-area:side;
  position:sticky;top:calc(var(--topbar) + var(--ticker));
  align-self:start;
  height:calc(100vh - var(--topbar) - var(--ticker));
  overflow-y:auto;
  background:var(--bg-2);
  border-right:1px solid var(--line-strong);
  padding:.8rem .55rem 1.2rem;
  display:flex;flex-direction:column;gap:.1rem;
}
.sidebar-overlay{display:none}

.manager-card{
  display:flex;align-items:center;gap:.6rem;
  padding:.65rem;margin-bottom:.7rem;
  border:1px solid var(--line);
  background:var(--panel);
  clip-path:var(--cut-sm);
}
.manager-card strong{display:block;font-size:.85rem;line-height:1.2}
.manager-card span{font-family:var(--font-mono);font-size:.58rem;letter-spacing:.1em;color:var(--muted)}
.manager-avatar{
  width:36px;height:36px;display:grid;place-items:center;
  background:var(--hv);color:var(--on-spot);
  font-family:var(--font-display);font-size:.9rem;
  clip-path:var(--cut-sm);flex:0 0 auto;
}

.nav-section{
  font-family:var(--font-mono);font-size:.56rem;font-weight:700;
  letter-spacing:.22em;text-transform:uppercase;color:var(--muted);
  padding:.9rem .55rem .35rem;
}

.nav-btn{
  width:100%;justify-content:flex-start;gap:.6rem;
  min-height:38px;padding:.42rem .55rem;
  background:transparent;border:none;clip-path:none;
  border-left:3px solid transparent;
  color:var(--muted);
  font-size:.83rem;font-weight:600;
  text-align:left;
  position:relative;
}
.nav-btn i{font-style:normal;width:16px;text-align:center;font-size:.95rem;flex:0 0 auto}
.nav-btn span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav-btn:hover{background:var(--panel);color:var(--text);border-left-color:var(--line-strong)}
.nav-btn.active{
  background:var(--panel-2);
  color:var(--text);
  border-left-color:var(--hv);
  font-weight:700;
}
.nav-btn.active i{color:var(--hv)}

.unread{
  min-width:17px;height:17px;padding:0 4px;
  display:grid;place-items:center;
  background:var(--sig);color:#fff;
  font-family:var(--font-mono);font-size:.56rem;font-weight:700;
  flex:0 0 auto;
}
.unread.gold{background:var(--gold);color:var(--on-foil)}

.sidebar-spacer{flex:1;min-height:.8rem}

.data-chip{
  margin-top:.5rem;padding:.35rem .5rem;
  font-family:var(--font-mono);font-size:.55rem;letter-spacing:.13em;
  text-transform:uppercase;color:var(--muted);
  border:1px dashed var(--dash);text-align:center;
}
.data-chip.real{color:var(--grass);border-color:var(--grass)}

.bottom-nav{display:none}

/* --- 11. Contenu --------------------------------------------------------- */

.content{
  grid-area:main;
  min-width:0;
  padding:1.1rem 1.2rem 3rem;
  display:flex;flex-direction:column;gap:.85rem;
}

.page-head{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:1rem;flex-wrap:wrap;
  padding-bottom:.7rem;
  border-bottom:2px solid var(--line-strong);
  position:relative;
}
/* Le trait haute visibilité qui ancre chaque titre de page */
.page-head::after{
  content:"";position:absolute;left:0;bottom:-2px;width:64px;height:2px;background:var(--hv);
}
.page-head h2{margin:0}

.panel{
  background:var(--panel);
  border:1px solid var(--line);
  clip-path:var(--cut);
  padding:.95rem 1rem;
  position:relative;
}
.panel-head{
  display:flex;align-items:center;justify-content:space-between;
  gap:.7rem;flex-wrap:wrap;margin-bottom:.7rem;
}
.panel-head h3{margin:0}
.panel-head>div:first-child{min-width:0}

.tag{
  display:inline-flex;align-items:center;gap:.3rem;
  padding:.2rem .5rem;
  border:1px solid var(--line-strong);
  font-family:var(--font-mono);font-size:.6rem;letter-spacing:.11em;
  text-transform:uppercase;color:var(--text-dim);
  white-space:nowrap;
}

/* La carte de mesure : un chiffre énorme, tout le reste s'efface */
.stat-card{
  background:var(--panel-2);
  border:1px solid var(--line);
  border-top:2px solid var(--line-strong);
  padding:.75rem .85rem;
  clip-path:var(--cut-sm);
  display:flex;flex-direction:column;gap:.12rem;
  position:relative;
  min-width:0;
}
.stat-card .muted{
  font-family:var(--font-mono);font-size:.58rem;letter-spacing:.15em;
  text-transform:uppercase;
}
.stat-card .value{
  font-family:var(--font-display);
  font-size:1.9rem;line-height:1;
  letter-spacing:.01em;
}
.stat-card .value sup{font-size:.5em;vertical-align:super}
.stat-card .value.small-value{font-family:var(--font-body);font-size:1rem;font-weight:700;text-transform:none}
.stat-card .micro{margin-top:.1rem}
.metric-icon{
  position:absolute;right:.6rem;top:.55rem;
  font-size:1.05rem;opacity:.28;
}

.kpi-line{
  display:flex;align-items:center;justify-content:space-between;gap:.6rem;
  padding:.42rem 0;
  border-bottom:1px dashed var(--dash);
  font-size:.82rem;
}
.kpi-line:last-child{border-bottom:none}
.kpi-line strong{font-family:var(--font-mono);font-weight:700}

.club-card{
  display:flex;align-items:center;gap:.6rem;
  padding:.55rem .6rem;
  border-bottom:1px dashed var(--dash);
  cursor:pointer;
  transition:background .12s;
}
.club-card:last-child{border-bottom:none}
.club-card:hover{background:var(--panel-2)}
.club-cell{display:flex;align-items:center;gap:.45rem;min-width:0}
.player-cell{display:flex;align-items:center;gap:.5rem;min-width:0}
.player-name{font-weight:600;font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.choice-card{
  padding:.85rem;
  border:1px solid var(--line-strong);
  background:var(--panel-2);
  clip-path:var(--cut-sm);
  cursor:pointer;
  transition:border-color .13s,background .13s,transform .13s;
}
.choice-card:hover{border-color:var(--hv);transform:translateY(-2px)}
.choice-card.active{border-color:var(--hv);background:var(--hv-soft)}
.choice-card h4{margin:.2rem 0 .3rem}
.choice-stack{display:flex;flex-direction:column;gap:.45rem}
.choice-stack button{
  justify-content:flex-start;flex-direction:column;align-items:flex-start;
  gap:.1rem;padding:.6rem .75rem;height:auto;min-height:auto;text-align:left;
}
.choice-stack button b{font-size:.83rem}
.choice-stack button span{font-size:.72rem;color:var(--muted);font-weight:400}

/* Actions rapides — une rangée de plaques, pas des cartes */
.quick-actions{
  display:grid;gap:.55rem;
  grid-template-columns:repeat(auto-fit,minmax(158px,1fr));
}
.quick-action{
  flex-direction:column;align-items:flex-start;gap:.2rem;
  padding:.75rem .85rem;height:auto;
  background:var(--panel);
  border-left:3px solid var(--hv);
  clip-path:var(--cut-sm);
  text-align:left;
}
.quick-action b{font-size:1.25rem;font-weight:400;font-family:var(--font-display);color:var(--hv)}
.quick-action strong{font-size:.84rem}
.quick-action span{font-size:.7rem;color:var(--muted);font-weight:400}
.quick-action:hover{background:var(--panel-2);transform:translateY(-2px)}

/* --- 12. Étiquettes, notes, jauges --------------------------------------- */

.rating{
  display:grid;place-items:center;
  min-width:34px;height:34px;
  font-family:var(--font-mono);font-size:.9rem;font-weight:700;
  background:var(--panel-3);
  border:1px solid var(--line-strong);
  color:var(--text);
  flex:0 0 auto;
}
.rating.mid{border-color:var(--ice);color:var(--ice)}
.rating.high{background:var(--gold);border-color:var(--gold);color:var(--on-foil)}

.pill{
  display:inline-grid;place-items:center;
  min-width:34px;padding:.15rem .35rem;
  font-family:var(--font-mono);font-size:.62rem;font-weight:700;
  letter-spacing:.06em;
  border:1px solid currentColor;
}
.pos-GK{color:var(--gold)}
.pos-DEF{color:var(--ice)}
.pos-MID{color:var(--grass)}
.pos-ATT{color:var(--sig)}

.progress{
  height:4px;background:var(--bg-2);
  border:1px solid var(--line);
  overflow:hidden;
}
.progress span{display:block;height:100%;background:var(--hv)}

.form-row{display:flex;gap:2px}
.form-dot{
  width:18px;height:18px;display:grid;place-items:center;
  font-family:var(--font-mono);font-size:.58rem;font-weight:700;
}
.form-W{background:var(--grass);color:var(--bg-2)}
.form-D{background:var(--panel-3);color:var(--text)}
.form-L{background:var(--blood);color:#fff}

.sparkline{display:flex;gap:2px;align-items:flex-end;height:26px}
.spark-bar{width:5px;flex:0 0 auto;min-height:3px}
.spark-W{background:var(--grass)}
.spark-D{background:var(--muted)}
.spark-L{background:var(--blood)}

.value-trend{display:inline-flex;align-items:center;gap:.2rem;font-family:var(--font-mono);font-size:.7rem;font-weight:700}
.value-trend.up{color:var(--grass)}
.value-trend.down{color:var(--blood)}
.value-trend.flat{color:var(--muted)}

.streak-chip{
  display:inline-flex;align-items:center;gap:.3rem;
  padding:.22rem .5rem;background:var(--sig);color:#fff;
  font-family:var(--font-mono);font-size:.62rem;font-weight:700;letter-spacing:.1em;
}

.objective{margin-bottom:.7rem}
.objective-head{display:flex;justify-content:space-between;gap:.6rem;font-size:.82rem;margin-bottom:.28rem}

.message{
  padding:.6rem .7rem;
  border-left:3px solid var(--line-strong);
  background:var(--panel-2);
  margin-bottom:.4rem;
}
.message.unread-message{border-left-color:var(--hv)}
.message-head{display:flex;justify-content:space-between;gap:.6rem;align-items:baseline;margin-bottom:.2rem}
.message-head strong{font-size:.85rem}
.message-head span{font-family:var(--font-mono);font-size:.58rem;color:var(--muted);white-space:nowrap}
.message p{margin:.2rem 0 .3rem;font-size:.8rem;color:var(--text-dim)}

/* --- 13. Vignette joueur (élément signature) ----------------------------- */

.sticker{
  display:flex;align-items:center;gap:.6rem;
  padding:.6rem .7rem .6rem .5rem;
  background:var(--panel-2);
  border:1px solid var(--line-strong);
  clip-path:var(--cut-sm);
  position:relative;
  cursor:pointer;
  overflow:hidden;
  transition:border-color .13s,transform .13s;
}
/* La bande aux couleurs du club, à gauche, toujours */
.sticker::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:4px;
  background:var(--club-color,var(--hv));
}
.sticker:hover{border-color:var(--hv);transform:translateY(-2px)}
.sticker-main{display:flex;flex-direction:column;gap:.1rem;min-width:0;flex:1}
.sticker-main strong{font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sticker-meta{font-family:var(--font-mono);font-size:.62rem;color:var(--muted)}
.sticker-foil{
  position:absolute;right:.4rem;top:.35rem;
  color:var(--gold);font-size:.8rem;
}

.player-hero{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap;margin-bottom:.8rem}
.player-overall{
  font-family:var(--font-display);font-size:3.2rem;line-height:1;
  color:var(--hv);
}
.player-card-full{
  display:grid;grid-template-columns:auto 1fr;gap:1rem;
  padding:1rem;background:var(--panel-2);
  border:1px solid var(--line-strong);
  clip-path:var(--cut);
  position:relative;overflow:hidden;
}
.player-card-full::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:5px;
  background:var(--club-color,var(--hv));
}
.card-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:.35rem;margin-top:.55rem}
.card-stat{text-align:center;padding:.32rem .2rem;background:var(--bg-2);border:1px solid var(--line)}
.card-stat b{display:block;font-family:var(--font-mono);font-size:.95rem;font-weight:700}
.card-stat span{font-family:var(--font-mono);font-size:.54rem;letter-spacing:.1em;color:var(--muted)}

.player-face,.compact-face{flex:0 0 auto}
.player-face-empty{
  display:grid;place-items:center;background:var(--panel-3);
  color:var(--muted);font-family:var(--font-display);
}
.player-card-portrait{display:flex;gap:.8rem;align-items:center}

.attribute-grid{display:grid;gap:.5rem;grid-template-columns:repeat(2,1fr)}
.attribute-row{display:flex;flex-direction:column;gap:.2rem}
.attribute-row>div:first-child{display:flex;justify-content:space-between;font-size:.78rem}

.scout-radar-svg{color:var(--muted)}

.comparison-grid{display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(84px,1fr))}
.comparison-value{text-align:center;padding:.4rem;background:var(--bg-2);border:1px solid var(--line)}

.trait-grid{display:flex;flex-wrap:wrap;gap:.35rem}
.man-tag{
  padding:.2rem .5rem;border:1px solid var(--ice);color:var(--ice);
  font-family:var(--font-mono);font-size:.6rem;letter-spacing:.08em;
}

/* --- 14. Rencontres ------------------------------------------------------ */

.next-match{
  display:grid;grid-template-columns:1fr auto 1fr;
  align-items:center;gap:.8rem;
  padding:1rem .8rem;
  background:var(--bg-2);
  border:1px solid var(--line);
  clip-path:var(--cut-sm);
}
.team-block{display:flex;align-items:center;gap:.6rem;min-width:0}
.team-block.away{flex-direction:row-reverse;text-align:right}
.team-block strong{font-size:.9rem;overflow:hidden;text-overflow:ellipsis}
.versus{
  display:flex;flex-direction:column;align-items:center;gap:.2rem;
  font-family:var(--font-display);font-size:1.3rem;color:var(--muted);
}
.versus .tag{font-size:.55rem}

.fixture-stack{display:flex;flex-direction:column;gap:.3rem}
.fixture-teams{display:flex;align-items:center;gap:.4rem}
.cup-fixture,.cup-tie{
  display:grid;grid-template-columns:1fr auto 1fr;
  align-items:center;gap:.4rem;
  padding:.4rem .6rem;
  border:1px solid var(--line);
  font-size:.8rem;
}
.cup-fixture.selected,.cup-tie.user-match{border-color:var(--hv);background:var(--hv-soft)}
.cup-fixture strong,.cup-tie .score{font-family:var(--font-mono);font-weight:700;text-align:center;min-width:38px}
.cup-round{margin-bottom:.7rem}
.cup-round-label{font-family:var(--font-mono);font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:.3rem}
.cup-winner{display:flex;align-items:center;gap:.7rem;padding:.7rem;background:var(--gold-soft);border:1px solid var(--gold)}
.cup-panel.user-cup{border-color:var(--hv)}
.cup-countdown{font-family:var(--font-mono);font-size:.66rem;color:var(--gold)}

.score-big{
  font-family:var(--font-display);
  font-size:clamp(2.6rem,9vw,4rem);
  text-align:center;line-height:1;
  padding:.5rem 0;
  letter-spacing:.02em;
}
.score{font-family:var(--font-mono);font-weight:700}

.match-stat-row{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:.5rem;margin-bottom:.45rem;font-family:var(--font-mono);font-size:.72rem}
.match-stat-bar{height:5px;display:flex;background:var(--bg-2);border:1px solid var(--line)}
.match-stat-bar i{display:block;height:100%}
.match-stat-bar i:first-child{background:var(--hv)}
.match-stat-bar i:last-child{background:var(--sig)}

.timeline{display:flex;flex-direction:column;gap:.15rem;max-height:320px;overflow:auto;margin-top:.6rem}
.event{
  display:flex;gap:.6rem;padding:.35rem .5rem;
  font-size:.8rem;border-bottom:1px dashed var(--dash);
}
.event strong{font-family:var(--font-mono);color:var(--muted);flex:0 0 32px}
.event.goal{background:var(--hv-soft);border-left:3px solid var(--hv)}
.event.goal strong{color:var(--hv)}
.live-minute{font-family:var(--font-mono);font-weight:700;color:var(--hv)}
.live-pill{
  display:inline-flex;align-items:center;gap:.35rem;
  padding:.25rem .55rem;background:var(--sig);color:#fff;
  font-family:var(--font-mono);font-size:.6rem;font-weight:700;letter-spacing:.14em;
}
.live-pill i{width:6px;height:6px;background:#fff;display:block;animation:blink 1s steps(1,end) infinite}

/* --- 15. Tableaux -------------------------------------------------------- */

.table-wrap{overflow-x:auto;border:1px solid var(--line)}
table{width:100%;border-collapse:collapse;font-size:.8rem;min-width:520px}
th{
  position:sticky;top:0;z-index:1;
  background:var(--panel-3);
  font-family:var(--font-mono);font-size:.58rem;font-weight:700;
  letter-spacing:.13em;text-transform:uppercase;
  text-align:left;padding:.5rem .6rem;
  color:var(--text-dim);
  border-bottom:1px solid var(--line-strong);
  white-space:nowrap;
}
td{padding:.45rem .6rem;border-bottom:1px solid var(--line);vertical-align:middle}
td:not(:first-child){font-family:var(--font-mono)}
tbody tr:hover{background:var(--panel-2)}
tbody tr.selected{background:var(--hv-soft)}
tbody tr.selected td{border-bottom-color:var(--hv)}
tbody tr:last-child td{border-bottom:none}

.league-tabs{display:flex;gap:.3rem;overflow-x:auto;padding-bottom:.4rem;margin-bottom:.2rem}
.league-tabs button{
  white-space:nowrap;min-height:32px;padding:.3rem .7rem;font-size:.74rem;
  background:transparent;border-color:var(--line);
}
.league-tabs button.active{background:var(--hv);border-color:var(--hv);color:var(--on-spot);font-weight:700}

.mobile-cards{display:none}
.status-row{display:flex;gap:.35rem;flex-wrap:wrap;align-items:center}

/* --- 16. Mercato --------------------------------------------------------- */

.offer-head{display:flex;justify-content:space-between;gap:.6rem;align-items:flex-start;margin-bottom:.5rem}
.offer-buyer{display:flex;align-items:center;gap:.45rem;font-size:.82rem}
.offer-fee{font-family:var(--font-display);font-size:1.55rem;color:var(--gold);line-height:1}
.offer-terms{display:flex;flex-wrap:wrap;gap:.3rem;margin:.5rem 0}
.offer-clause{
  padding:.18rem .45rem;border:1px solid var(--line-strong);
  font-family:var(--font-mono);font-size:.58rem;letter-spacing:.08em;color:var(--text-dim);
}
.offer-actions{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.5rem}
.negotiate-btn{border-color:var(--gold);color:var(--gold)}
.negotiate-btn:hover{background:var(--gold);color:var(--on-foil)}

.rumor-card{
  display:flex;align-items:center;gap:.6rem;
  padding:.55rem .7rem;margin-bottom:.35rem;
  border:1px dashed var(--dash);
  background:var(--panel-2);
  font-size:.8rem;
}
.rumor-heat{display:flex;gap:2px;margin-left:auto;flex:0 0 auto}
.rumor-heat span{width:5px;height:13px;background:var(--line-strong)}
.rumor-heat span.hot{background:var(--sig)}

.sponsor-card{
  padding:.8rem;border:1px solid var(--line-strong);
  background:var(--panel-2);clip-path:var(--cut-sm);
}
.sponsor-card.select-sponsor{cursor:pointer}
.sponsor-card:hover{border-color:var(--gold)}

.facility-card{
  padding:.85rem;border:1px solid var(--line);
  background:var(--panel-2);clip-path:var(--cut-sm);
}

/* --- 17. Terrain --------------------------------------------------------- */

.pitch{
  position:relative;
  aspect-ratio:2/3;max-height:520px;width:100%;
  background:
    repeating-linear-gradient(180deg,rgba(255,255,255,.022) 0 8%,transparent 8% 16%),
    var(--bg-2);
  border:2px solid var(--line-strong);
  overflow:hidden;
}
.pitch-lines,.pitch::before{
  content:"";position:absolute;inset:10px;
  border:1px solid var(--line-strong);
}
.pitch::after{
  content:"";position:absolute;left:10px;right:10px;top:50%;
  border-top:1px dashed var(--dash);
}
.pitch-player{
  position:absolute;transform:translate(-50%,-50%);
  display:flex;flex-direction:column;align-items:center;gap:.1rem;
  padding:.25rem .4rem;
  background:var(--panel);
  border:1px solid var(--hv);
  clip-path:var(--cut-sm);
  --notch-sm:4px;
  min-width:54px;text-align:center;
  cursor:grab;
}
.pitch-player strong{font-size:.66rem;line-height:1.1;max-width:64px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pitch-player span{font-family:var(--font-mono);font-size:.52rem;color:var(--muted)}

.gameplan-panel{margin-top:.8rem}
.gameplan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem;margin-top:.5rem}
.gameplan-card{
  flex-direction:column;gap:.25rem;padding:.75rem .5rem;height:auto;
  background:var(--panel-2);border:1px solid var(--line-strong);
  text-align:center;
}
.gameplan-card i{font-style:normal;font-size:1.3rem;color:var(--muted)}
.gameplan-card strong{font-size:.8rem}
.gameplan-card span{font-family:var(--font-mono);font-size:.6rem;color:var(--muted);font-weight:400;line-height:1.3}
.gameplan-card.active{border-color:var(--hv);background:var(--hv-soft)}
.gameplan-card.active i{color:var(--hv)}

.ritual-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:.4rem}
.ritual-card{
  padding:.65rem .5rem;text-align:center;
  border:1px solid var(--line-strong);
  background:var(--panel-2);cursor:pointer;
  transition:border-color .13s,background .13s;
}
.ritual-card:hover{border-color:var(--gold)}
.ritual-card.selected{border-color:var(--gold);background:var(--gold-soft)}
.ritual-card i{display:block;font-style:normal;font-size:1.4rem;margin-bottom:.2rem}
.ritual-card strong{display:block;font-size:.75rem}
.ritual-card span{font-family:var(--font-mono);font-size:.58rem;color:var(--muted)}

.squad-heatmap{display:flex;flex-wrap:wrap;gap:3px;padding:.3rem 0}
.heat-dot{width:16px;height:16px;border:1px solid var(--line);cursor:help;transition:transform .12s}
.heat-dot:hover{transform:scale(1.35)}
.heat-dot.fit{background:var(--grass)}
.heat-dot.tired{background:var(--gold)}
.heat-dot.risk{background:var(--sig)}
.heat-dot.injured{background:var(--blood)}

.stats-strip{display:flex;border:1px solid var(--line);background:var(--panel-2);overflow:auto}
.stats-strip-item{flex:1;min-width:84px;padding:.5rem .6rem;text-align:center;border-right:1px solid var(--line)}
.stats-strip-item:last-child{border-right:none}
.stats-strip-item b{display:block;font-family:var(--font-mono);font-size:1.05rem;font-weight:700}
.stats-strip-item span{font-family:var(--font-mono);font-size:.55rem;letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}

/* --- 18. Matchday -------------------------------------------------------- */

/* Le hall d'entrée du stade : béton, projecteurs, numéro de journée géant */
.matchday-hero{
  position:relative;overflow:hidden;
  min-height:190px;padding:1.6rem 1.4rem;
  background:var(--bg-2);
  border:1px solid var(--line-strong);
  clip-path:var(--cut);
  display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;
}
.matchday-hero::before{
  content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--hazard);
}
.stadium-lights{
  position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(ellipse 40% 60% at 12% -10%,rgba(200,255,46,.14),transparent 70%),
    radial-gradient(ellipse 40% 60% at 88% -10%,rgba(69,224,255,.10),transparent 70%);
}
.matchday-hero>div{position:relative;z-index:1}
.matchday-hero h2{margin-bottom:.3rem}
.matchday-hero p{color:var(--text-dim);font-size:.87rem;max-width:46ch;margin:0}
/* Le numéro de journée, énorme, en filigrane */
.matchday-number{
  position:relative;z-index:1;
  font-family:var(--font-display);
  font-size:clamp(3.4rem,11vw,6.4rem);
  line-height:.8;
  color:transparent;
  -webkit-text-stroke:2px var(--hv);
  opacity:.75;
}
.matchday-stage{display:flex;flex-direction:column;gap:.7rem}
.matchday-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.9rem}
.cinematic{min-height:50px;font-size:.9rem;padding-left:1.4rem;padding-right:1.4rem}

.match-settings-grid{display:grid;gap:.6rem;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.match-option{display:flex;align-items:center;gap:.6rem}
.match-option>span:first-child{font-size:1.2rem;color:var(--hv);flex:0 0 auto}
.match-option b{display:block;font-size:.82rem}
.match-option small{font-size:.68rem;color:var(--muted)}
.match-option select{margin-left:auto;max-width:140px}

.match-filmstrip{display:flex;gap:.35rem;overflow-x:auto;padding:.3rem 0}
.match-filmstrip>*{flex:0 0 auto}

/* Scène interactive : plein cadre, choix nets */
.live-scene,.live-scene-v13,.scene-card{
  padding:1.1rem;
  background:var(--panel-2);
  border:1px solid var(--hv);
  clip-path:var(--cut);
  position:relative;
}
.scene-speaker{
  font-family:var(--font-mono);font-size:.62rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--hv);margin-bottom:.4rem;
}
.scene-choices,.live-choice-grid{display:grid;gap:.45rem;margin-top:.9rem}
.live-choice,.talk-choice,.press-option,.dilemma-choice{
  flex-direction:column;align-items:flex-start;gap:.15rem;
  padding:.7rem .85rem;height:auto;text-align:left;
  border-left:3px solid var(--line-strong);
}
.live-choice:hover,.talk-choice:hover,.press-option:hover,.dilemma-choice:hover{border-left-color:var(--hv)}
.live-choice b,.talk-choice b{font-size:.84rem}
.live-choice span,.talk-choice span{font-size:.72rem;color:var(--muted);font-weight:400}

.replay-shell{background:var(--bg-2);border:1px solid var(--line-strong);overflow:hidden}
.replay-top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:.85rem;background:var(--panel)}
.replay-top>div:first-child,.replay-top>div:last-child{display:flex;align-items:center;gap:.5rem}
.replay-top>div:last-child{justify-content:flex-end}
.replay-score{text-align:center;display:flex;flex-direction:column}
.replay-score strong{font-family:var(--font-display);font-size:2rem;line-height:1}
.replay-score span,.replay-score small{font-family:var(--font-mono);font-size:.62rem;color:var(--hv)}
.replay-pitch{
  height:min(46vh,400px);position:relative;overflow:hidden;
  background:repeating-linear-gradient(90deg,rgba(200,255,46,.045) 0 12.5%,transparent 12.5% 25%),#0B120E;
}
.replay-pitch .pitch-lines{position:absolute;inset:7%;border:2px solid rgba(255,255,255,.32)}
.replay-ball{position:absolute;left:50%;top:50%;transition:left .8s cubic-bezier(.2,.8,.2,1),top .8s;color:#fff;text-shadow:0 2px 6px #000}
.replay-ball.pulse{animation:ballPulse .7s}
@keyframes ballPulse{50%{transform:scale(2.1);color:var(--hv)}}
.replay-caption{
  position:absolute;left:50%;bottom:1rem;transform:translateX(-50%);
  width:min(88%,640px);padding:.7rem .9rem;
  background:rgba(6,9,7,.9);border-left:3px solid var(--hv);
  text-align:center;font-weight:600;font-size:.85rem;color:#EDF0E9;
}
.replay-controls{display:flex;align-items:center;gap:.6rem;padding:.7rem;background:var(--panel)}
.replay-controls span{margin-left:auto;font-family:var(--font-mono);font-size:.7rem;color:var(--muted)}

/* --- 19. Récits, monde vivant -------------------------------------------- */

.story-hero,.supporter-hero{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  padding:1.3rem;background:var(--panel);
  border:1px solid var(--line-strong);
  border-left:5px solid var(--hv);
  clip-path:var(--cut);
}
.story-emblem,.trophy-mark{
  display:grid;place-items:center;width:56px;height:56px;
  background:var(--hv);color:var(--on-spot);
  font-family:var(--font-display);font-size:1.5rem;
  clip-path:var(--cut-sm);flex:0 0 auto;
}
.story-copy{flex:1;min-width:200px}
.story-shade{color:var(--muted);font-size:.85rem}
.story-progress{height:5px;background:var(--bg-2);border:1px solid var(--line);overflow:hidden;margin-top:.5rem}
.story-progress i{display:block;height:100%;background:var(--hv)}
.story-missions{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin-bottom:.9rem}
.story-missions article{
  display:flex;gap:.6rem;padding:.85rem;
  border:1px solid var(--line);background:var(--panel);
  clip-path:var(--cut-sm);
}
.story-missions article.done{opacity:.6;border-color:var(--grass)}
.story-missions i{font-style:normal;color:var(--hv);font-size:1.1rem}
.story-missions article div{flex:1;display:flex;flex-direction:column;gap:.3rem;min-width:0}
.story-missions span,.story-missions small{font-size:.72rem;color:var(--muted)}
.story-missions progress{width:100%;height:4px;accent-color:var(--hv)}

.campaign-banner{
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;
  padding:1rem 1.2rem;background:var(--panel-2);
  border:1px solid var(--line-strong);border-left:5px solid var(--gold);
  clip-path:var(--cut);
}
.campaign-banner>span{font-family:var(--font-display);font-size:2.6rem;color:var(--gold);line-height:1}
.campaign-banner h3{margin:.1rem 0}
.campaign-banner p{color:var(--muted);margin:0;font-size:.82rem}
.campaign-banner>strong{font-family:var(--font-display);font-size:2.1rem;text-align:center;line-height:1}
.campaign-banner>strong small{display:block;font-family:var(--font-mono);font-size:.56rem;color:var(--gold);letter-spacing:.14em}

.rival-card{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.9rem 1.1rem;background:var(--sig-soft);
  border:1px solid var(--sig);clip-path:var(--cut-sm);
}
.rival-card>div:last-child{text-align:center}
.rival-card>div:last-child b{font-family:var(--font-display);font-size:1.8rem;display:block;line-height:1}
.rival-card>div:last-child span{font-family:var(--font-mono);font-size:.6rem;color:var(--muted)}

.feed-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:.85rem;align-items:start}
.feed-stream{display:flex;flex-direction:column;gap:.5rem}
.feed-side{display:flex;flex-direction:column;gap:.7rem}
.feed-post{
  display:flex;gap:.7rem;padding:.8rem;
  background:var(--panel);border:1px solid var(--line);
  border-left:3px solid var(--line-strong);
}
.feed-post.player{border-left-color:var(--grass)}
.feed-post.media{border-left-color:var(--ice)}
.feed-post.club{border-left-color:var(--hv)}
.feed-post.fan{border-left-color:var(--sig)}
.feed-avatar{
  width:34px;height:34px;display:grid;place-items:center;flex:0 0 auto;
  background:var(--panel-3);font-size:1rem;
}
.feed-author{display:flex;gap:.4rem;align-items:baseline;flex-wrap:wrap}
.feed-author strong{font-size:.83rem}
.feed-author span{font-family:var(--font-mono);font-size:.6rem;color:var(--muted)}
.feed-post p{margin:.25rem 0 .4rem;font-size:.83rem}
.feed-actions{display:flex;gap:.3rem;flex-wrap:wrap}
.feed-actions button{min-height:28px;padding:.2rem .5rem;font-size:.68rem;background:transparent;border-color:var(--line)}

.fan-gauge{display:flex;flex-direction:column;gap:.2rem;align-items:center;padding:.6rem}
.fan-gauge b{font-family:var(--font-display);font-size:2.4rem;line-height:1;color:var(--hv)}
.fan-gauge span{font-family:var(--font-mono);font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.crowd-score{text-align:center}
.crowd-score strong{font-family:var(--font-display);font-size:3rem;line-height:1;color:var(--hv);display:block}
.crowd-score span{font-family:var(--font-mono);font-size:.58rem;letter-spacing:.16em;color:var(--muted)}
.ultra-banner{
  margin-top:.6rem;padding:.5rem;text-align:center;
  background:var(--text);color:var(--bg);
  font-family:var(--font-display);font-size:1rem;letter-spacing:.06em;
}
blockquote{
  margin:0;padding:.6rem .9rem;
  border-left:3px solid var(--hv);
  background:var(--panel-2);font-style:italic;font-size:.86rem;
}

.world-grid,.world-feed-grid{display:grid;gap:.6rem;grid-template-columns:repeat(auto-fill,minmax(270px,1fr))}
.world-card,.world-headline{
  padding:.85rem;background:var(--panel);
  border:1px solid var(--line);border-left:3px solid var(--ice);
}
.world-card.gold-top,.world-card.positive,.world-headline.positive{border-left-color:var(--grass)}
.world-card.turf-top{border-left-color:var(--grass)}
.world-card.alert,.world-headline.breaking{border-left-color:var(--sig)}
.world-card>span,.headline-tag,.world-card-top{
  font-family:var(--font-mono);font-size:.56rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--muted);display:block;margin-bottom:.25rem;
}
.world-card h3{font-size:.98rem;margin-bottom:.25rem}
.world-card p{font-size:.8rem;color:var(--text-dim);margin:0 0 .3rem}
.world-card small{font-family:var(--font-mono);font-size:.58rem;color:var(--muted)}
.world-page-head{margin-bottom:.5rem}
.world-pulse{display:flex;gap:.5rem;flex-wrap:wrap}
.world-rumors,.world-pressure-panel{margin-top:.85rem}
.pressure-list{display:flex;flex-direction:column;gap:.5rem}
.pressure-list>div{display:grid;grid-template-columns:auto 1fr auto;gap:.5rem;align-items:center;font-size:.8rem}
.pressure{grid-column:1/-1;height:4px;background:var(--bg-2);border:1px solid var(--line)}
.pressure i{display:block;height:100%;background:var(--sig)}

.dialogue-grid{display:grid;gap:.6rem;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.talk-player{display:flex;align-items:center;gap:.6rem;padding:.6rem;border:1px solid var(--line);background:var(--panel-2)}

.trophy-shelf{
  display:flex;gap:.45rem;flex-wrap:wrap;align-items:stretch;
  padding:.85rem;background:var(--gold-soft);
  border:1px solid var(--gold);clip-path:var(--cut);
}
.trophy-item{
  display:flex;flex-direction:column;align-items:center;gap:.15rem;
  padding:.5rem .65rem;min-width:58px;
  background:var(--panel);border:1px solid var(--gold);
}
.trophy-item i{font-style:normal;font-size:1.3rem}
.trophy-item span{font-family:var(--font-mono);font-size:.54rem;color:var(--muted);text-align:center;line-height:1.2}
.achievement-icon{
  width:34px;height:34px;display:grid;place-items:center;
  background:var(--panel-3);border:1px solid var(--line-strong);
  font-family:var(--font-mono);font-size:.72rem;font-weight:700;flex:0 0 auto;
}
.international-winner{display:flex;align-items:center;gap:.9rem;padding:.9rem;background:var(--gold-soft);border:1px solid var(--gold)}

.engagement-hub{
  padding:1rem;background:var(--panel);
  border:1px solid var(--line-strong);border-top:3px solid var(--hv);
  clip-path:var(--cut);
}
.engagement-title{display:flex;align-items:center;justify-content:space-between;gap:.7rem;margin-bottom:.7rem}
.engagement-grid{display:grid;gap:.55rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.decision-recap{display:flex;flex-direction:column;gap:.3rem;font-size:.8rem}

.assistant-briefing{
  padding:.95rem 1rem;background:var(--panel);
  border:1px solid var(--line-strong);border-left:5px solid var(--ice);
  clip-path:var(--cut);
}
.briefing-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;margin-bottom:.7rem}
.briefing-head>span{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.14em;color:var(--muted);white-space:nowrap}
.briefing-grid{display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.briefing-grid article{
  display:flex;gap:.55rem;align-items:center;
  padding:.6rem .7rem;background:var(--panel-2);border:1px solid var(--line);
}
.briefing-grid i{font-style:normal;font-size:1.1rem;flex:0 0 auto;color:var(--ice)}
.briefing-grid article>div{flex:1;min-width:0;display:flex;flex-direction:column}
.briefing-grid strong{font-size:.8rem}
.briefing-grid span{font-size:.7rem;color:var(--muted)}
.briefing-grid button{min-height:30px;padding:.25rem .55rem;font-size:.68rem;flex:0 0 auto}

.morale-event{
  display:flex;gap:.6rem;align-items:flex-start;
  padding:.7rem .85rem;background:var(--panel-2);
  border-left:3px solid var(--gold);
}
.morale-event.negative{border-left-color:var(--blood)}
.morale-event.positive{border-left-color:var(--grass)}
.morale-event i{font-style:normal;font-size:1.15rem;flex:0 0 auto}

.dilemma-notice{border-left-color:var(--sig);background:var(--sig-soft)}
.recovery-actions{display:flex;gap:.4rem;flex-wrap:wrap}
.save-health{font-family:var(--font-mono);font-size:.68rem;color:var(--muted)}
.settings-box{display:flex;flex-direction:column;gap:.5rem;align-items:flex-start}
.apply-job,.accept-job,.hire-agent,.sign-youth,.select-sponsor{white-space:nowrap}
.calendar-list{display:flex;flex-direction:column;gap:.3rem}

/* --- 20. Fenêtres modales ------------------------------------------------ */

.modal{
  position:fixed;inset:0;z-index:9000;
  display:grid;place-items:center;
  padding:1rem;
  background:rgba(4,7,5,.82);
  backdrop-filter:blur(3px);
}
.modal-card{
  position:relative;
  width:min(660px,100%);
  max-height:88vh;overflow-y:auto;
  padding:1.3rem;
  background:var(--panel);
  border:1px solid var(--line-strong);
  border-top:3px solid var(--hv);
  clip-path:var(--cut);
  box-shadow:var(--shadow);
}
.modal-close{
  position:absolute;right:.6rem;top:.6rem;
  width:32px;height:32px;min-height:32px;padding:0;
  font-size:1.2rem;background:transparent;border-color:var(--line);
}
.modal-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1rem}

.palette{
  position:fixed;inset:0;z-index:9200;
  display:grid;place-items:start center;padding:12vh 1rem 1rem;
  background:rgba(4,7,5,.82);
}
.palette-card{
  width:min(560px,100%);
  background:var(--panel);border:1px solid var(--hv);
  clip-path:var(--cut);padding:.8rem;
}
.palette-list{max-height:50vh;overflow:auto;margin-top:.6rem;display:flex;flex-direction:column;gap:.15rem}
.palette-list button{width:100%;justify-content:flex-start;background:transparent;border-color:transparent;clip-path:none}
.palette-list button:hover,.palette-list button.active{background:var(--hv-soft);border-color:var(--hv)}
.palette-hint{font-family:var(--font-mono);font-size:.6rem;color:var(--muted);margin-top:.5rem;letter-spacing:.1em}

.appearance-editor{display:grid;gap:.6rem;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}

/* --- 21. Barres de défilement -------------------------------------------- */

::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-track{background:var(--bg-2)}
::-webkit-scrollbar-thumb{background:var(--panel-3);border:2px solid var(--bg-2)}
::-webkit-scrollbar-thumb:hover{background:var(--hv)}

/* --- 22. NOUVEAUTÉS ÉDITION 15 -------------------------------------------- */

/* Confiance de la direction, décomposée en quatre piliers */
.board-pillars{display:grid;gap:.55rem;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
.pillar{
  padding:.6rem .7rem;background:var(--panel-2);
  border:1px solid var(--line);border-bottom:3px solid var(--line-strong);
}
.pillar.good{border-bottom-color:var(--grass)}
.pillar.ok{border-bottom-color:var(--gold)}
.pillar.bad{border-bottom-color:var(--blood)}
.pillar-label{font-family:var(--font-mono);font-size:.56rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}
.pillar-value{font-family:var(--font-display);font-size:1.5rem;line-height:1.05}
.pillar-note{font-size:.68rem;color:var(--muted);line-height:1.3}

/* Jauge de siège éjectable */
.hotseat{
  display:flex;align-items:center;gap:.8rem;
  padding:.8rem 1rem;background:var(--panel-2);
  border:1px solid var(--line-strong);clip-path:var(--cut-sm);
}
.hotseat-meter{flex:1;height:9px;background:var(--bg-2);border:1px solid var(--line);position:relative;overflow:hidden}
.hotseat-meter i{display:block;height:100%;background:linear-gradient(90deg,var(--grass),var(--gold) 55%,var(--blood));transition:width .5s}
.hotseat-label{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
.hotseat.danger{border-color:var(--blood);background:var(--blood-soft);animation:pulseDanger 2.4s ease-in-out infinite}
@keyframes pulseDanger{50%{border-color:var(--sig)}}

/* Rapport d'observation de l'adversaire */
.scout-dossier{
  padding:1rem;background:var(--panel);
  border:1px solid var(--ice);clip-path:var(--cut);
  position:relative;
}
.scout-dossier::before{
  content:"DOSSIER";
  position:absolute;right:1rem;top:.6rem;
  font-family:var(--font-mono);font-size:.54rem;letter-spacing:.3em;
  color:var(--ice);opacity:.5;
}
.dossier-grid{display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin-top:.6rem}
.dossier-item{padding:.55rem .65rem;background:var(--panel-2);border-left:3px solid var(--ice)}
.dossier-item.weak{border-left-color:var(--grass)}
.dossier-item.strong{border-left-color:var(--blood)}
.dossier-item b{display:block;font-family:var(--font-mono);font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:.15rem}
.dossier-item span{font-size:.8rem}
.dossier-verdict{
  margin-top:.7rem;padding:.6rem .8rem;
  background:var(--ice-soft);border-left:3px solid var(--ice);font-size:.83rem;
}

/* Coups de pied arrêtés */
.setpiece-grid{display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.setpiece-slot{
  padding:.7rem .8rem;background:var(--panel-2);
  border:1px solid var(--line-strong);
}
.setpiece-slot b{
  display:block;font-family:var(--font-mono);font-size:.56rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--hv);margin-bottom:.3rem;
}
.setpiece-slot select{margin-top:.2rem}
.setpiece-rating{font-family:var(--font-mono);font-size:.68rem;color:var(--muted);margin-top:.3rem;display:block}

/* Infirmerie */
.physio-row{
  display:grid;grid-template-columns:auto 1fr auto auto;
  align-items:center;gap:.6rem;
  padding:.55rem .6rem;border-bottom:1px dashed var(--dash);
}
.physio-row:last-child{border-bottom:none}
.physio-bar{height:5px;background:var(--bg-2);border:1px solid var(--line);min-width:60px}
.physio-bar i{display:block;height:100%;background:var(--blood)}
.physio-eta{font-family:var(--font-mono);font-size:.68rem;color:var(--blood);white-space:nowrap}
.physio-risk{font-family:var(--font-mono);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase}
.physio-risk.high{color:var(--blood)}
.physio-risk.med{color:var(--gold)}
.physio-risk.low{color:var(--grass)}

/* Hiérarchie du vestiaire */
.hierarchy-list{display:flex;flex-direction:column;gap:.35rem}
.hierarchy-row{
  display:flex;align-items:center;gap:.6rem;
  padding:.5rem .6rem;background:var(--panel-2);
  border-left:3px solid var(--line-strong);
}
.hierarchy-row.captain{border-left-color:var(--gold);background:var(--gold-soft)}
.hierarchy-row.vice{border-left-color:var(--ice)}
.hierarchy-rank{
  font-family:var(--font-mono);font-size:.56rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted);white-space:nowrap;
}
.armband{
  display:inline-grid;place-items:center;
  width:20px;height:20px;background:var(--gold);color:var(--on-foil);
  font-family:var(--font-mono);font-size:.55rem;font-weight:700;flex:0 0 auto;
}

/* Derby / rivalité */
.derby-banner{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  padding:1rem 1.2rem;
  background:var(--sig-soft);
  border:1px solid var(--sig);
  clip-path:var(--cut);
  position:relative;overflow:hidden;
}
.derby-banner::before{
  content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--hazard-sig);
}
.derby-banner h3{color:var(--sig);margin:0}
.derby-stakes{display:flex;gap:.4rem;flex-wrap:wrap}
.derby-stakes span{
  padding:.2rem .5rem;border:1px solid var(--sig);color:var(--sig);
  font-family:var(--font-mono);font-size:.58rem;letter-spacing:.1em;
}

/* Cérémonie de fin de saison */
.awards-stage{display:grid;gap:.6rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.award-card{
  padding:1rem;text-align:center;
  background:var(--panel-2);
  border:1px solid var(--gold);clip-path:var(--cut-sm);
}
.award-card .award-trophy{font-size:2rem;display:block;margin-bottom:.3rem}
.award-card .award-title{
  font-family:var(--font-mono);font-size:.56rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold);margin-bottom:.35rem;
}
.award-card strong{display:block;font-size:.95rem;margin-bottom:.15rem}
.award-card span{font-size:.72rem;color:var(--muted)}

/* Conseil de rotation */
.rotation-advice{
  display:flex;gap:.6rem;align-items:flex-start;
  padding:.7rem .85rem;background:var(--gold-soft);
  border-left:3px solid var(--gold);font-size:.82rem;
}

/* Chronomètre avant match */
.match-countdown{
  display:flex;align-items:center;gap:1rem;
  padding:1rem 1.1rem;background:var(--panel-2);
  border:1px solid var(--line);clip-path:var(--cut-sm);
}
.countdown-vs{font-family:var(--font-display);font-size:1.6rem;color:var(--muted)}
.countdown-team{display:flex;flex-direction:column;align-items:center;gap:.25rem;flex:1;min-width:0}
.countdown-team span{font-size:.74rem;color:var(--muted);text-align:center;overflow:hidden;text-overflow:ellipsis;max-width:100%}

/* Filtres à puces */
.market-filters-bar{display:flex;gap:.4rem;flex-wrap:wrap;padding:.55rem;background:var(--panel-2);border:1px solid var(--line);margin-bottom:.5rem}
.filter-chip{
  padding:.28rem .65rem;border:1px solid var(--line-strong);
  background:transparent;color:var(--text-dim);
  font-family:var(--font-mono);font-size:.66rem;letter-spacing:.06em;
  cursor:pointer;min-height:30px;clip-path:none;
}
.filter-chip.active{background:var(--hv);border-color:var(--hv);color:var(--on-spot);font-weight:700}
.filter-chip:hover:not(.active){border-color:var(--hv);color:var(--text)}

/* Chronologie de carrière */
.career-timeline{position:relative;padding-left:1.4rem}
.career-timeline::before{content:"";position:absolute;left:5px;top:0;bottom:0;width:1px;background:var(--line-strong)}
.timeline-entry{position:relative;margin-bottom:1rem}
.timeline-entry::before{
  content:"";position:absolute;left:-1.4rem;top:.35rem;
  width:11px;height:11px;background:var(--bg);border:2px solid var(--hv);
}
.timeline-entry.trophy::before{background:var(--gold);border-color:var(--gold)}
.timeline-entry.negative::before{background:var(--blood);border-color:var(--blood)}
.timeline-meta{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.12em;color:var(--hv);margin-bottom:.1rem}
.timeline-entry h4{margin:0 0 .15rem;font-family:var(--font-body);font-weight:700;font-size:.86rem;text-transform:none}
.timeline-entry p{font-size:.76rem;color:var(--muted);margin:0}

/* Indicateur d'élan pendant le match */
.momentum-bar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.6rem;padding:.7rem .9rem;background:var(--panel-2);border:1px solid var(--line)}
.momentum-track{height:7px;background:var(--bg-2);border:1px solid var(--line);position:relative;overflow:hidden}
.momentum-fill{position:absolute;height:100%;background:var(--hv);transition:width .6s cubic-bezier(.34,1.4,.64,1)}
.momentum-label{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.12em;color:var(--muted);text-align:center}

/* --- 23. Adaptation aux écrans ------------------------------------------- */

@media(max-width:1180px){
  .feed-layout{grid-template-columns:1fr}
  .grid-4{grid-template-columns:repeat(2,1fr)}
  .grid-5{grid-template-columns:repeat(3,1fr)}
}

@media(max-width:980px){
  .start-layout{grid-template-columns:1fr;gap:1.4rem}
  .start-showcase h2{font-size:clamp(2.8rem,10vw,5rem)}
  .showcase-pitch{height:140px}
  .setup-card{max-width:640px;margin:0 auto}
  .story-missions{grid-template-columns:1fr 1fr}
  .save-state span{display:none}
}

@media(max-width:860px){
  :root{--sidebar:0px}
  .app{
    grid-template-columns:minmax(0,1fr);
    grid-template-areas:"top" "tick" "main";
  }
  .icon-button{display:inline-flex}
  .desktop-only{display:none!important}
  .sidebar{
    position:fixed;left:0;top:0;bottom:0;
    width:266px;height:100vh;z-index:200;
    transform:translateX(-100%);
    transition:transform .24s cubic-bezier(.2,.9,.25,1);
    padding-top:max(.8rem,env(safe-area-inset-top));
  }
  .sidebar.open{transform:translateX(0)}
  .sidebar-overlay{display:block;position:fixed;inset:0;z-index:150;background:rgba(4,7,5,.7)}
  .sidebar-overlay.hidden{display:none}
  .content{padding:.9rem .8rem calc(76px + env(safe-area-inset-bottom))}
  .grid-2,.grid-3,.grid-4,.grid-5{grid-template-columns:1fr}
  .grid-4{grid-template-columns:repeat(2,1fr)}
  .story-missions{grid-template-columns:1fr}
  .gameplan-grid{grid-template-columns:1fr}
  .card-stats{grid-template-columns:repeat(3,1fr)}
  .top-budget{display:none}

  /* Barre de navigation basse — cinq destinations, pas une de plus */
  .bottom-nav{
    display:flex;
    position:fixed;left:0;right:0;bottom:0;z-index:120;
    background:var(--bg-2);
    border-top:1px solid var(--line-strong);
    padding-bottom:env(safe-area-inset-bottom);
  }
  .bottom-nav button{
    flex:1;flex-direction:column;gap:.1rem;
    min-height:60px;padding:.4rem .2rem;
    background:transparent;border:none;clip-path:none;
    color:var(--muted);position:relative;
  }
  .bottom-nav button i{font-style:normal;font-size:1.1rem}
  .bottom-nav button span{font-family:var(--font-mono);font-size:.54rem;letter-spacing:.06em}
  .bottom-nav button.active{color:var(--hv)}
  .bottom-nav button.active::before{
    content:"";position:absolute;left:22%;right:22%;top:0;height:2px;background:var(--hv);
  }
  .bottom-nav .unread{position:absolute;top:.35rem;right:22%}

  /* Les tableaux deviennent des fiches empilées */
  .desktop-table-mobile-hide{display:none}
  .mobile-cards{display:flex;flex-direction:column;gap:.4rem}

  .matchday-hero{flex-direction:column;align-items:flex-start;min-height:auto;padding:1.1rem}
  .next-match{grid-template-columns:1fr;text-align:center;gap:.5rem}
  .team-block,.team-block.away{flex-direction:row;justify-content:center;text-align:center}
  .modal-card{padding:1rem;max-height:92vh}
  .campaign-banner{grid-template-columns:1fr;text-align:center}
  .physio-row{grid-template-columns:1fr auto;gap:.4rem}
  .physio-bar{grid-column:1/-1}
}

@media(max-width:520px){
  body{font-size:14px}
  .content{padding:.7rem .6rem calc(74px + env(safe-area-inset-bottom))}
  .grid-4{grid-template-columns:1fr}
  .page-head{flex-direction:column;align-items:flex-start;gap:.5rem}
  .page-head button{width:100%}
  .stat-card .value{font-size:1.6rem}
  .quick-actions{grid-template-columns:1fr 1fr}
  .start-form{grid-template-columns:1fr}
  .brand-lockup h1{font-size:1.6rem}
  .compact-brand .brand-ball{width:44px;height:44px;font-size:1.2rem}
  .toolbar{flex-direction:column}
  .toolbar input,.toolbar select{flex:1 1 auto;width:100%}
  .segment{width:100%}
  .segment button{flex:1}
  .awards-stage{grid-template-columns:1fr}
  .setpiece-grid,.dossier-grid,.board-pillars{grid-template-columns:1fr}
}

/* Impression — la feuille de match, en noir sur blanc */
@media print{
  .sidebar,.topbar,.ticker,.bottom-nav,.toast,.modal{display:none!important}
  .app{display:block}
  .content{padding:0}
  .panel{border:1px solid #000;clip-path:none;break-inside:avoid}
  body::after{display:none}
}

/* --- 24. Compléments ------------------------------------------------------ */

.achievement{
  display:flex;align-items:center;gap:.6rem;
  padding:.6rem .7rem;background:var(--panel-2);
  border:1px solid var(--line);border-left:3px solid var(--line-strong);
}
.achievement.unlocked{border-left-color:var(--gold);background:var(--gold-soft)}
.achievement.unlocked .achievement-icon{background:var(--gold);border-color:var(--gold);color:var(--on-foil)}
.achievement strong{display:block;font-size:.83rem}
.achievement span{font-size:.72rem;color:var(--muted)}

.competition-switch{margin-bottom:.3rem}

.offer-card{
  padding:.9rem;background:var(--panel);
  border:1px solid var(--line-strong);border-left:4px solid var(--gold);
  clip-path:var(--cut-sm);
}
.offer-card.urgent{border-left-color:var(--sig)}
.offer-deadline{
  font-family:var(--font-mono);font-size:.6rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--sig);
}

.fixture-row{
  display:grid;grid-template-columns:1fr auto 1fr;
  align-items:center;gap:.5rem;
  padding:.45rem .6rem;border-bottom:1px dashed var(--dash);
}
.fixture-row:last-child{border-bottom:none}
.fixture-row.selected{background:var(--hv-soft);border-left:3px solid var(--hv)}
.fixture-score{font-family:var(--font-mono);font-weight:700;text-align:center;min-width:44px}

.outcome{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase}
.outcome.win{color:var(--grass)}
.outcome.draw{color:var(--muted)}
.outcome.loss{color:var(--blood)}

.lineup-check{cursor:pointer}
.shortlist-action,.upgrade-facility{white-space:nowrap}

.has-logo{background-size:cover!important;background-position:center!important;color:transparent!important;text-shadow:none!important}

.palette-item{
  display:flex;align-items:center;gap:.5rem;width:100%;
  justify-content:flex-start;text-align:left;
}
.palette-item small{margin-left:auto;font-family:var(--font-mono);font-size:.58rem;color:var(--muted)}

.save-health-icon{font-size:1rem;flex:0 0 auto}

.squad-mobile-card{
  display:flex;align-items:center;gap:.6rem;
  padding:.6rem;background:var(--panel-2);
  border:1px solid var(--line);border-left:3px solid var(--hv);
}
.squad-mobile-card>div{flex:1;min-width:0}
.squad-mobile-card .micro{display:flex;gap:.6rem;flex-wrap:wrap}
