/* Thème du récap du client (design system « Cogitator »). Polices sous licence OFL : polices/OFL-*.txt */
@font-face{font-family:"Barlow";font-weight:400;font-display:swap;src:url(polices/barlow-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Barlow";font-weight:600;font-display:swap;src:url(polices/barlow-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Barlow Condensed";font-weight:600;font-display:swap;src:url(polices/barlow-condensed-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Barlow Condensed";font-weight:800;font-display:swap;src:url(polices/barlow-condensed-latin-800-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-weight:400;font-display:swap;src:url(polices/ibm-plex-mono-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-weight:500;font-display:swap;src:url(polices/ibm-plex-mono-latin-500-normal.woff2) format("woff2")}

:root{--bg0:#080b10;--bg1:#10141e;--bg2:#1a2235;--bg3:#232c42;--border:#2a3348;--border2:#354158;
  --t1:#dde3f0;--t2:#8e95a8;--t3:#8892ab;--coral:#ff6b47;--cyan:#38bdf8;--green:#34d399;--amber:#fbbf24;
  --a:#f87171;--b:#378add;
  --cond:"Barlow Condensed","Arial Narrow",sans-serif;--body:"Barlow","Segoe UI",system-ui,sans-serif;--mono:"IBM Plex Mono",Consolas,monospace}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg0);color:var(--t1);font:15px/1.5 var(--body)}
a{color:var(--cyan)}
h1,h2{font-family:var(--cond);font-weight:800;letter-spacing:.04em;margin:0}
.lab{font:500 10px var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--t3)}
.a{color:var(--a)}.b{color:var(--b)}.mute{color:var(--t2)}
button{font:600 12px var(--cond);letter-spacing:.08em;text-transform:uppercase;padding:6px 10px;border-radius:4px;cursor:pointer;
  border:1px solid var(--border2);background:var(--bg1);color:var(--t2);white-space:nowrap}
button:hover:not(:disabled){color:var(--t1);background:var(--bg2)}button:disabled{opacity:.3;cursor:default}
button:focus-visible,a:focus-visible{outline:2px solid var(--cyan);outline-offset:1px}
button.on{color:var(--cyan);border-color:var(--cyan);background:rgba(56,189,248,.08)}
button.go{background:var(--coral);border-color:var(--coral);color:var(--bg0)}
button.go:disabled{background:var(--bg1);border-color:var(--border2);color:var(--t2)}

/* bandeau */
.bandeau{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:8px 20px;padding:10px 16px;background:var(--bg1);
  border-bottom:1px solid var(--border);flex-wrap:wrap}
.marque{font:800 18px var(--cond);letter-spacing:.06em;color:var(--coral);text-decoration:none}
.bandeau h1{font-size:18px;color:var(--t1)}
.score{font:800 26px/1 var(--cond)}.score .tiret{color:var(--t3);margin:0 6px}
.etat{font:600 12px var(--cond);letter-spacing:.1em;text-transform:uppercase;padding:3px 8px;border-radius:3px;border:1px solid var(--border2);color:var(--t2)}
.etat.direct{color:var(--coral);border-color:var(--coral)}
.etat.direct::before,.pastille{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--coral);margin-right:6px;
  vertical-align:1px;animation:pouls 1.6s ease-in-out infinite}
.etat.attente{color:var(--amber);border-color:var(--amber)}.etat.attente::before{background:var(--amber);animation:none}
@keyframes pouls{50%{opacity:.25}}
@media (prefers-reduced-motion:reduce){.etat.direct::before,.pastille{animation:none}}

/* accueil */
.accueil{max-width:900px;margin:0 auto;padding:24px 16px 60px}
.accueil section{margin-bottom:32px}
.accueil h2{font-size:20px;margin-bottom:10px;color:var(--t1)}
.cartes{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.carte{display:grid;grid-template-columns:1fr auto;gap:2px 16px;padding:12px 14px;border:1px solid var(--border);border-radius:6px;
  background:var(--bg1);color:var(--t1);text-decoration:none}
.carte:hover{border-color:var(--border2);background:var(--bg2)}
.camps{font:600 17px var(--cond)}.contre{color:var(--t3);font-weight:600}
.points{font:800 22px/1 var(--cond);grid-row:span 2;align-self:center}
.detail{color:var(--t2);font-size:13px}
.vide{color:var(--t2)}.pied{color:var(--t3);font-size:13px;margin-top:40px}

/* partie */
.partie{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;padding:16px;max-width:1500px;margin:0 auto}
@media (max-width:900px){.partie{grid-template-columns:minmax(0,1fr)}}
.scene{min-width:0}
.instant{font:800 20px var(--cond);margin-bottom:6px}.instant .lab{margin-left:10px}
#plan{display:block;width:100%;aspect-ratio:60/44;max-height:calc(100vh - 220px);background:var(--bg1);border:1px solid var(--border);border-radius:8px}
#plan .nom{font-family:var(--body);font-weight:600;paint-order:stroke;stroke:#080b10;stroke-width:.18px}
#plan .fig{cursor:pointer}
.commandes{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:10px 0}
.lien{color:var(--t3);font-size:13px}
.frise{position:relative;display:flex;gap:10px;overflow-x:auto;padding:4px 0 10px}
.round{display:flex;flex-direction:column;gap:4px;flex:none}
.round .lab{padding-left:2px}
.round .tours{display:flex;gap:6px}
.tour{display:flex;gap:2px;padding:3px;border-radius:4px;border-top:2px solid var(--border2);background:var(--bg1)}
.tour.ta{border-top-color:var(--a)}.tour.tb{border-top-color:var(--b)}
.frise button{padding:4px 6px;font-size:11px;min-width:34px}
.frise button[aria-current="true"]{color:var(--bg0);background:var(--cyan);border-color:var(--cyan)}

.panneau{display:flex;flex-direction:column;gap:14px;min-width:0}
.bloc{border:1px solid var(--border);border-radius:6px;background:var(--bg1);padding:10px 12px}
.bloc h2{font-size:15px;margin-bottom:6px;color:var(--t2);letter-spacing:.1em;text-transform:uppercase}
table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}
th,td{padding:3px 6px;text-align:right;border-bottom:1px solid var(--border)}
th:first-child,td:first-child{text-align:left}
th{font:600 12px var(--cond);letter-spacing:.06em;color:var(--t3);text-transform:uppercase}
tfoot td{font-weight:600;border-bottom:0}
.evts{list-style:none;margin:0;padding:0;font-size:14px}.evts li{padding:2px 0}
.escs{list-style:none;margin:0;padding:0}
.escs button{display:flex;width:100%;justify-content:space-between;gap:8px;padding:3px 4px;border:0;background:none;color:var(--t1);
  font:400 14px var(--body);letter-spacing:0;text-transform:none;text-align:left;white-space:normal}
.escs button:hover,.escs li.sel button{background:var(--bg2)}
.escs li.mort button{color:var(--t3)}.escs li.mort span:first-child{text-decoration:line-through}
.escs .pv{font:400 12px var(--mono);color:var(--t2);white-space:nowrap}
.camp-titre{font:600 14px var(--cond);letter-spacing:.06em;margin:8px 0 2px}
