/* PERFECT BODY — COCKPIT ÉQUIPE (tablette au comptoir + téléphone de Cédric). Charte de la salle, lisible de loin. */
@font-face{font-family:'Anton';src:url(fonts/anton.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Manrope';src:url(fonts/manrope.woff2) format('woff2');font-weight:400 800;font-display:swap}
@font-face{font-family:'Cormorant Garamond';src:url(fonts/cormorant-italic.woff2) format('woff2');font-weight:400 700;font-style:italic;font-display:swap}
:root{--noir:#0b0a08;--noir2:#12100c;--noir3:#191612;--carte:#0e0c09;--or:#e8a33d;--or-vif:#f4b950;--or-sombre:#b97e24;
  --craie:#f5f0e6;--sable:#cfc7b6;--rose:#e0899f;--vert:#4ade80;--rouge:#e05b4d;
  --anton:'Anton',Impact,sans-serif;--manrope:'Manrope',system-ui,sans-serif;--serif:'Cormorant Garamond',Georgia,serif;--barre:80px}
*,*::before,*::after{box-sizing:border-box}
html{background:var(--noir);-webkit-text-size-adjust:100%;overscroll-behavior:none}
html,body{margin:0;padding:0}
body{background:var(--noir);color:var(--craie);font-family:var(--manrope);font-size:18px;line-height:1.5;-webkit-font-smoothing:antialiased;
  overflow-x:clip;min-height:100svh;font-variant-numeric:lining-nums tabular-nums}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit;color:inherit;cursor:pointer;font-size:inherit}
input,select,textarea{font-family:inherit;font-size:18px;color:var(--craie)}
::selection{background:var(--or);color:var(--noir)}
:focus-visible{outline:3px solid var(--or-vif);outline-offset:2px}
.grain{position:fixed;inset:-50%;width:200%;height:200%;pointer-events:none;z-index:300;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E")}
.cache{display:none !important}
h1,h2,h3{font-family:var(--anton);font-weight:400;text-transform:uppercase;margin:0;line-height:.95;letter-spacing:.01em}
.k{font-weight:800;font-size:14px;letter-spacing:.24em;text-transform:uppercase;color:var(--or);margin:0 0 12px;display:flex;align-items:center;gap:12px}
.k::before{content:"";width:34px;height:2px;background:var(--or);flex:0 0 auto}
.titre{font-size:clamp(34px,7vw,52px);margin:0 0 4px}
.sous{font-size:17px;color:var(--sable);font-weight:600;margin:0 0 22px;line-height:1.45}

/* ——— boutons (≥ 56 px, un geste) ——— */
.lingot,.creux,.rond{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:56px;border-radius:14px;
  font-weight:800;font-size:16px;letter-spacing:.05em;text-transform:uppercase;padding:14px 22px;transition:transform .18s,box-shadow .18s,filter .18s,background .2s,border-color .2s}
.lingot{width:100%;color:#1a1206;background:linear-gradient(180deg,var(--or-vif) 0%,var(--or) 55%,var(--or-sombre) 100%);border:1px solid #ffd98a;
  box-shadow:0 10px 28px rgba(232,163,61,.28),inset 0 1px 0 rgba(255,255,255,.5)}
.lingot:hover{transform:translateY(-2px)}
.lingot:active{transform:translateY(0)}
.lingot[disabled],.creux[disabled]{filter:grayscale(.7) brightness(.7);cursor:not-allowed;transform:none;box-shadow:none}
.creux{color:var(--craie);background:rgba(245,240,230,.05);border:1.5px solid rgba(232,163,61,.4)}
.creux:hover{border-color:var(--or);background:rgba(232,163,61,.12)}
.creux.vert{border-color:rgba(74,222,128,.5);color:var(--vert)}
.creux.rouge{border-color:rgba(224,91,77,.5);color:#ffb3aa}
.creux.on{background:linear-gradient(180deg,rgba(232,163,61,.95),rgba(185,126,36,.95));color:#1a1206;border-color:#ffd98a}
.creux svg,.lingot svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
.rangee{display:flex;gap:10px;flex-wrap:wrap}
.rangee>*{flex:1 1 140px}
.msg{margin:12px 0 0;font-size:16px;font-weight:600;min-height:24px}
.msg.ko{color:#ffb3aa}.msg.ok{color:var(--vert)}

/* ——— champs ——— */
.champ{margin-bottom:14px}
.champ label{display:block;font-weight:700;font-size:14px;letter-spacing:.12em;text-transform:uppercase;color:var(--or);margin-bottom:7px}
.champ input,.champ textarea,.champ select{width:100%;background:rgba(245,240,230,.06);border:1.5px solid rgba(245,240,230,.2);border-radius:12px;
  padding:15px 16px;min-height:56px;transition:border-color .2s,background .2s;-webkit-appearance:none;appearance:none}
.champ textarea{min-height:110px;resize:vertical;line-height:1.45}
.champ input:focus,.champ textarea:focus,.champ select:focus{outline:0;border-color:var(--or);background:rgba(232,163,61,.08)}
.deux{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.choix{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:14px}
.choix button{min-height:56px;border-radius:12px;border:1.5px solid rgba(232,163,61,.35);background:rgba(245,240,230,.05);font-weight:800;font-size:15px;
  letter-spacing:.04em;text-transform:uppercase;color:var(--craie);padding:10px 8px;transition:background .15s,color .15s}
.choix button[aria-pressed="true"]{background:linear-gradient(180deg,var(--or-vif),var(--or-sombre));color:#1a1206;border-color:#ffd98a}
.choix button small{display:block;font-weight:600;font-size:14px;letter-spacing:0;text-transform:none;opacity:.8}
@media (min-width:600px){.choix{grid-template-columns:repeat(4,1fr)}#typesContenu{grid-template-columns:repeat(5,1fr)}}

/* ——— lecteur RFID : champ invisible, toujours focalisé, jamais de clavier à l'écran ——— */
.rfid{position:fixed;left:-4000px;top:0;width:10px;height:10px;opacity:0;pointer-events:none}

/* ——— porte ——— */
.ecran{display:none}
.ecran.on{display:block}
#porte{min-height:100svh;align-items:center;justify-content:center;padding:28px 20px}
#porte.on{display:flex}   /* ⛔ un #id bat .ecran : sans cette ligne la porte reste affichée */
#porte .dedans{width:100%;max-width:560px}
@media (min-width:760px){#porte .dedans{max-width:900px;display:grid;grid-template-columns:1fr 1.1fr;gap:44px;align-items:center}}
.marque{font-family:var(--anton);font-size:clamp(44px,11vw,72px);line-height:.92;margin:0 0 8px}
.marque em{font-style:normal;display:block;color:transparent;-webkit-text-stroke:2px var(--or);margin-top:4px}
.saisie{font-family:var(--anton);font-size:clamp(34px,9vw,58px);letter-spacing:.18em;color:var(--or);min-height:76px;
  border-bottom:2px solid rgba(232,163,61,.4);display:flex;align-items:center;margin-bottom:16px;word-break:break-all}
.pave{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.pave.chiffres{grid-template-columns:repeat(3,1fr);max-width:360px}
.pave button{border:1.5px solid rgba(232,163,61,.32);background:rgba(245,240,230,.05);border-radius:12px;font-family:var(--anton);font-size:22px;
  color:var(--craie);min-height:56px;padding:0;transition:background .15s}
.pave.chiffres button{font-size:30px;min-height:68px}
.pave button:hover{background:rgba(232,163,61,.18)}
.pave button.act{font-family:var(--manrope);font-size:13px;font-weight:800;letter-spacing:.1em;color:var(--or)}

/* ——— structure ——— */
#app{display:none;min-height:100svh;padding-bottom:calc(var(--barre) + env(safe-area-inset-bottom))}
#app.on{display:block}
.entete{position:sticky;top:0;z-index:60;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 18px;min-height:60px;
  background:rgba(11,10,8,.88);backdrop-filter:blur(14px);border-bottom:1px solid rgba(232,163,61,.16)}
.entete .logo{font-family:var(--anton);font-size:20px;letter-spacing:.05em;display:flex;align-items:baseline;gap:7px}
.entete .logo em{font-style:normal;color:var(--or)}
.entete .heure{font-family:var(--anton);font-size:24px;color:var(--or);letter-spacing:.06em}
.mini{min-height:48px;border-radius:10px;border:1.5px solid rgba(232,163,61,.4);background:transparent;color:var(--or);font-weight:800;font-size:14px;
  letter-spacing:.1em;text-transform:uppercase;padding:8px 14px}
.vue{display:none;padding:22px 18px 40px;max-width:1180px;margin:0 auto;animation:monte .4s cubic-bezier(.2,.7,.2,1)}
.vue.on{display:block}
@keyframes monte{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.barre{position:fixed;left:0;right:0;bottom:0;z-index:80;display:flex;background:rgba(14,12,9,.97);backdrop-filter:blur(16px);
  border-top:1px solid rgba(232,163,61,.22);padding-bottom:env(safe-area-inset-bottom)}
.barre button{flex:1;border:0;background:transparent;padding:10px 2px 11px;display:flex;flex-direction:column;align-items:center;gap:5px;
  color:var(--sable);transition:color .2s;min-height:var(--barre);position:relative}
.barre button svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.barre button span{font-weight:800;font-size:13px;letter-spacing:.01em;white-space:nowrap}
.barre button[aria-selected="true"]{color:var(--or)}
.barre button[aria-selected="true"]::before{content:"";position:absolute;top:0;width:34px;height:2px;background:var(--or);border-radius:2px}
.barre .badge{position:absolute;top:4px;left:calc(50% + 6px);min-width:24px;height:24px;border-radius:12px;background:var(--rouge);color:#fff;
  font-size:14px;font-weight:800;display:flex;align-items:center;justify-content:center;padding:0 6px}
.barre .badge:empty{display:none}

/* ——— blocs & cartes ——— */
.bloc{background:var(--carte);border:1px solid rgba(232,163,61,.18);border-radius:18px;padding:20px;margin-bottom:16px}
.bloc h3{font-size:22px;margin-bottom:14px;color:var(--craie)}
.bloc.rose{border-color:rgba(224,137,159,.35)}
.bloc.rose h3{color:var(--rose)}
.vide{color:var(--sable);font-family:var(--serif);font-style:italic;font-size:20px;margin:6px 0}
.deux-col{display:grid;grid-template-columns:1fr;gap:16px}
.ligne{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid rgba(232,163,61,.2);border-radius:14px;
  background:rgba(245,240,230,.03);padding:14px 16px;margin-bottom:10px;flex-wrap:wrap}
.ligne .q{font-weight:800;font-size:19px;color:var(--craie)}
.ligne .r{font-size:16px;color:var(--sable);font-weight:600;line-height:1.4}
.ligne .r b{color:var(--or)}
.ligne .actions{display:flex;gap:8px;flex-wrap:wrap}
.ligne .actions .creux{min-width:56px;padding:10px 14px;font-size:14px}
.ligne.alerte{border-color:rgba(224,91,77,.45)}
.drapeau{display:inline-flex;align-items:center;gap:6px;background:rgba(224,91,77,.16);color:#ffb3aa;border:1px solid rgba(224,91,77,.45);
  border-radius:999px;padding:4px 12px;font-weight:800;font-size:12.5px;letter-spacing:.06em;text-transform:uppercase}
.drapeau.vert{background:rgba(74,222,128,.12);color:var(--vert);border-color:rgba(74,222,128,.4)}
.nombre{font-family:var(--anton);font-size:40px;color:var(--or);line-height:1}
.tuiles{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:16px}
.tuile{background:var(--carte);border:1px solid rgba(232,163,61,.18);border-radius:14px;padding:14px}
.tuile .t{font-size:14px;letter-spacing:.12em;text-transform:uppercase;color:var(--sable);font-weight:800;margin-top:4px}
.onglets{display:flex;flex-wrap:wrap;gap:6px;background:rgba(255,255,255,.05);border:1px solid rgba(232,163,61,.22);border-radius:14px;padding:5px;margin-bottom:18px;overflow-x:auto}
.onglets button{flex:1 1 auto;border:0;background:transparent;color:var(--sable);font-weight:800;font-size:16px;letter-spacing:.02em;
  padding:0 14px;min-height:50px;border-radius:10px;white-space:nowrap}
.onglets button[aria-selected="true"]{background:linear-gradient(180deg,rgba(232,163,61,.9),rgba(185,126,36,.9));color:#1a1206}
.sq{background:linear-gradient(90deg,rgba(245,240,230,.05),rgba(245,240,230,.12),rgba(245,240,230,.05));background-size:200% 100%;animation:sq 1.3s infinite;border-radius:12px;min-height:56px}
@keyframes sq{from{background-position:200% 0}to{background-position:-200% 0}}

/* ——— COMPTOIR ——— */
.attente{text-align:center;padding:34px 10px 26px}
.anneau{width:150px;height:150px;margin:0 auto 22px;border-radius:50%;border:3px solid rgba(232,163,61,.35);display:grid;place-items:center;position:relative}
.anneau::before{content:"";position:absolute;inset:-3px;border-radius:50%;border:3px solid transparent;border-top-color:var(--or);animation:tourne 2.4s linear infinite}
.anneau svg{width:64px;height:64px;stroke:var(--or);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
@keyframes tourne{to{transform:rotate(360deg)}}
.attente h2{font-size:clamp(34px,7vw,56px)}
.attente p{color:var(--sable);font-weight:600;font-size:17px;margin:8px 0 26px}
.carte-bonjour{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;padding:20px;
  background:radial-gradient(ellipse at center,rgba(20,70,40,.98),rgba(11,10,8,.98))}
.carte-bonjour.on{display:flex;animation:monte .35s}
.carte-bonjour.rouge{background:radial-gradient(ellipse at center,rgba(90,30,24,.98),rgba(11,10,8,.98))}
.carte-bonjour .dedans{text-align:center;max-width:720px;width:100%}
.carte-bonjour .salut{font-family:var(--anton);font-size:clamp(52px,12vw,120px);line-height:.92;color:var(--craie)}
.carte-bonjour .salut em{font-style:normal;color:var(--vert)}
.carte-bonjour.rouge .salut em{color:#ffb3aa}
.carte-bonjour .info{font-size:20px;font-weight:700;color:var(--sable);margin:18px 0 10px}
.carte-bonjour .chiffres{display:flex;justify-content:center;gap:28px;margin:18px 0}
.carte-bonjour .chiffres div{text-align:center}
.carte-bonjour .chiffres b{display:block;font-family:var(--anton);font-size:48px;color:var(--or);line-height:1}
.carte-bonjour .chiffres span{font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:800;color:var(--sable)}
.carte-bonjour .drapeaux{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:10px}
.feuille{position:fixed;inset:0;z-index:150;display:none;background:rgba(11,10,8,.92);backdrop-filter:blur(10px);overflow:auto;padding:16px}
.feuille.on{display:block}
.feuille .dedans{max-width:720px;margin:0 auto;background:var(--noir2);border:1px solid rgba(232,163,61,.28);border-radius:22px;padding:22px 20px 26px;animation:monte .3s}
.feuille .tete{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.feuille .tete h2{font-size:28px}
.qr-grand{background:#fff;border-radius:18px;padding:16px;width:min(300px,70vw);margin:10px auto 16px}
.qr-grand svg{width:100%;height:auto;display:block}
.lien{font-size:14px;color:var(--sable);word-break:break-all;background:rgba(245,240,230,.05);border-radius:10px;padding:10px 12px;margin:8px 0 14px}
.scanner{position:relative;border-radius:16px;overflow:hidden;background:#000;aspect-ratio:4/3;margin-bottom:14px}
.scanner video{width:100%;height:100%;object-fit:cover}
.scanner::after{content:"";position:absolute;inset:14%;border:2px solid var(--or);border-radius:14px;pointer-events:none}

/* ——— À APPELER ——— */
.liste-titre{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:22px 0 12px}
.liste-titre h3{font-size:24px}
.liste-titre .n{font-family:var(--anton);font-size:30px;color:var(--or)}

/* ——— programme ——— */
.jour{border:1px solid rgba(232,163,61,.22);border-radius:14px;padding:14px;margin-bottom:12px;background:rgba(245,240,230,.02)}
.jour .tete{display:flex;gap:8px;align-items:center;margin-bottom:10px;flex-wrap:wrap}
.jour .tete input{flex:1 1 120px;min-height:48px;background:rgba(245,240,230,.06);border:1.5px solid rgba(245,240,230,.2);border-radius:10px;padding:8px 12px;font-weight:800}
.exo{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr auto;gap:6px;margin-bottom:6px;align-items:center}
.exo input{min-width:0;min-height:48px;background:rgba(245,240,230,.06);border:1.5px solid rgba(245,240,230,.16);border-radius:10px;padding:6px 10px;font-size:16px}
.exo input.conseil{grid-column:1 / -2}
.exo .x{min-height:48px;min-width:48px;border-radius:10px;border:1.5px solid rgba(224,91,77,.4);background:transparent;color:#ffb3aa;font-weight:800}
.exo-tete{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr auto;gap:6px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--or);font-weight:800;margin-bottom:4px}
.exo-tete span:last-child{width:48px}
.photo-repas{border-radius:14px;overflow:hidden;background:#000;aspect-ratio:4/3;margin-bottom:10px}
.photo-repas img{width:100%;height:100%;object-fit:cover}
.grille-repas{display:grid;grid-template-columns:1fr;gap:14px}

/* ——— impression de l'étiquette 40 × 40 mm ——— */
#impression{display:none}
@media print{
  @page{size:40mm 40mm;margin:0}
  body{background:#fff;color:#000}
  body>*:not(#impression){display:none !important}
  #impression{display:block;width:40mm;height:40mm;padding:1.5mm;text-align:center;overflow:hidden}
  #impression svg{width:30mm;height:30mm;display:block;margin:0 auto}
  #impression .nom{font-family:Arial,sans-serif;font-weight:800;font-size:9pt;line-height:1;margin-top:1mm;color:#000}
}

/* ——— écran large (tablette paysage, ordinateur) ——— */
@media (min-width:900px){
  #app{padding-bottom:0}
  #app.on{display:grid;grid-template-columns:228px minmax(0,1fr);grid-template-rows:auto auto 1fr;align-items:start}
  .barre{grid-column:1;grid-row:1 / span 3;position:sticky;top:0;left:auto;right:auto;bottom:auto;height:100svh;flex-direction:column;justify-content:flex-start;
    gap:4px;padding:22px 12px;border-top:0;border-right:1px solid rgba(232,163,61,.2)}
  .barre button{flex:0 0 auto;flex-direction:row;justify-content:flex-start;gap:14px;padding:14px 16px;border-radius:12px;min-height:56px}
  .barre button span{font-size:13.5px}
  .barre button[aria-selected="true"]{background:rgba(232,163,61,.12)}
  .barre button[aria-selected="true"]::before{top:auto;left:0;width:3px;height:26px}
  .barre .badge{position:static;margin-left:auto}
  .entete{grid-column:2;grid-row:1;align-self:start}
  .demo-bandeau{grid-column:2;grid-row:2}
  .vue{grid-column:2;grid-row:3;padding:30px 36px 60px;margin:0;width:100%}
  .deux-col{grid-template-columns:1.1fr .9fr;gap:22px}
  .tuiles{grid-template-columns:repeat(4,1fr)}
  .grille-repas{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
  .attente{padding:50px 10px 30px}
}
@media (max-width:599px){
  .exo{grid-template-columns:1fr 1fr 1fr auto}
  .exo input.nom{grid-column:1 / -2}
  .exo input.charge{grid-column:1 / 3}
  .exo input.conseil{grid-column:1 / -2}
  .exo-tete{display:none}
}
@media (prefers-reduced-motion:reduce){*{animation:none !important;transition:none !important}}

/* ——— risque de décrochage (équipe E) ——— */
.risque .pastille{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:8px;vertical-align:2px;background:var(--or)}
.risque .pastille.rouge{background:var(--rouge);box-shadow:0 0 0 4px rgba(224,91,77,.18)}
.risque .pastille.orange{background:var(--or);box-shadow:0 0 0 4px rgba(232,163,61,.18)}
.risque .score{font-family:var(--anton);font-size:17px;color:var(--sable);margin-left:6px;letter-spacing:.04em}
.risque .ligne.risque-rouge{border-color:rgba(224,91,77,.45)}
.risque .ligne.risque-rouge .score{color:#ffb3aa}
.risque .tuile.rouge{border-color:rgba(224,91,77,.45)}
.risque .tuile.rouge .nombre{color:#ffb3aa}
.risque .tuile .nombre small{font-family:var(--manrope);font-size:14px;color:var(--sable);font-weight:700;margin-left:2px}
.risque .sq{margin-bottom:16px}

/* ——— MESSAGES + mesures (équipe G, classes co-*) ——— */
.co-fils .co-fil{width:100%;text-align:left;cursor:pointer;background:rgba(245,240,230,.03)}
.co-fil.co-nonlu{border-color:rgba(232,163,61,.55);background:rgba(232,163,61,.07)}
.co-fil.co-nonlu .q{color:var(--or)}
.co-fil .co-fil-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.co-fil .r{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.co-n{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;border-radius:12px;background:var(--rouge);color:#fff;font-size:14px;font-weight:800;font-style:normal;margin-left:8px;padding:0 6px;vertical-align:middle}
.co-h{font-size:14px;font-weight:700;color:var(--sable);white-space:nowrap}
.co-ini{width:46px;height:46px;border-radius:50%;border:1.5px solid var(--or);display:grid;place-items:center;font-family:var(--anton);font-size:20px;color:var(--or);flex:0 0 auto}
.co-conv{background:var(--carte);border:1px solid rgba(232,163,61,.18);border-radius:18px;padding:16px;display:flex;flex-direction:column;gap:12px}
.co-tete{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.co-tete-t{flex:1;min-width:160px}
.co-tete-t .q{font-weight:800;font-size:20px}.co-tete-t .r{font-size:14px;color:var(--sable);font-weight:600}
.co-liens{flex:0 0 auto}
.co-liens .creux{min-height:44px;padding:8px 14px;font-size:13px;flex:0 0 auto}
.co-pieces{border:1px solid rgba(232,163,61,.2);border-radius:14px;padding:12px}
.co-pieces-t{font-weight:800;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--or);margin-bottom:10px}
.co-pieces-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}
.co-pieces-g a{position:relative;border-radius:10px;overflow:hidden;aspect-ratio:3/4;background:#000;border:1px solid rgba(232,163,61,.2)}
.co-pieces-g img{width:100%;height:100%;object-fit:cover}
.co-pieces-g span{position:absolute;left:0;right:0;bottom:0;font-size:11px;font-weight:800;padding:4px 6px;background:rgba(11,10,8,.8);text-transform:capitalize}
.co-fil-msgs{display:flex;flex-direction:column;gap:8px;max-height:52vh;overflow-y:auto;padding:4px 2px}
.co-b{max-width:82%;border-radius:16px;padding:10px 14px 7px;font-size:16px;line-height:1.45}
.co-membre{align-self:flex-start;background:rgba(245,240,230,.06);border:1px solid rgba(245,240,230,.12);border-bottom-left-radius:5px}
.co-moi{align-self:flex-end;background:rgba(232,163,61,.16);border:1px solid rgba(232,163,61,.4);border-bottom-right-radius:5px}
.co-qui{font-weight:800;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--or);margin-bottom:3px}
.co-txt{white-space:pre-wrap;word-break:break-word;font-weight:500}
.co-quand{font-size:11.5px;font-weight:700;color:var(--sable);margin-top:4px;text-align:right;opacity:.8}
.co-piece{width:min(220px,100%);aspect-ratio:4/3;object-fit:cover;border-radius:10px;border:1px solid rgba(232,163,61,.25);margin:2px 0 8px;display:block}
.co-rep{border-top:1px solid rgba(232,163,61,.18);padding-top:12px}
.co-signe{grid-template-columns:repeat(2,1fr);max-width:320px}
.co-mesures{border:1px solid rgba(232,163,61,.22);border-radius:14px;padding:14px;margin-bottom:14px;background:rgba(245,240,230,.02)}
.co-mesures-t{font-weight:800;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--or);margin-bottom:10px}
.co-mesures-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.co-mes{background:var(--carte);border:1px solid rgba(232,163,61,.16);border-radius:12px;padding:10px 12px}
.co-mes .t{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--sable);font-weight:800}
.co-mes .v{font-family:var(--anton);font-size:30px;color:var(--or);line-height:1;margin-top:4px}
.co-mes .v small{font-family:var(--manrope);font-size:13px;color:var(--sable);font-weight:700;margin-left:3px}
.co-mes .d{font-size:12.5px;font-weight:700;color:var(--sable);margin-top:5px}
.co-mes .d.bien{color:var(--vert)}.co-mes .d.moins{color:#ffb3aa}
@media (min-width:900px){.co-fil-msgs{max-height:58vh}}

/* ═════════════════ ERGONOMIE (17/10) — Aujourd'hui, santé de la salle, membres, fiche ═════════════════ */
:root{--bien:#5ad48a;--attention:#ff9a52;--mal:#ff7a6b;--stable:#cfc7b6}
.plein{width:100%}
.nu{min-height:48px;border:0;background:transparent;color:var(--sable);font-weight:700;font-size:16px;padding:8px 12px;border-radius:12px;text-decoration:underline;text-underline-offset:4px;text-decoration-color:rgba(207,199,182,.4)}
.nu:hover{color:var(--craie)}
button.nom,.ligne button.q{background:none;border:0;padding:0;text-align:left;font:inherit;font-weight:800;color:var(--craie);cursor:pointer;
  text-decoration:underline;text-decoration-color:rgba(232,163,61,.45);text-underline-offset:5px;text-decoration-thickness:2px;min-height:44px}
.ligne button.q{font-size:19px}
.demo-bandeau{margin:0;padding:10px 18px;background:rgba(255,154,82,.12);border-bottom:1px solid rgba(255,154,82,.4);color:#ffd2ad;font-size:16px;font-weight:600;line-height:1.4}
.demo-bandeau b{color:#ffb98a}
.entete{min-height:64px}
.barre .badge.doux{background:rgba(245,240,230,.16);color:var(--craie)}
.pastille-n{font-style:normal;display:inline-flex;min-width:24px;height:24px;border-radius:12px;background:var(--rouge);color:#fff;font-size:14px;font-weight:800;align-items:center;justify-content:center;padding:0 7px;margin-left:8px}
.pastille-n:empty{display:none}
.onglets button[aria-selected="true"] .pastille-n{background:#1a1206;color:var(--or-vif)}
.nombre-titre{font-family:var(--anton);color:var(--or);margin-left:8px}
#toast{position:fixed;left:50%;bottom:calc(var(--barre) + 18px);transform:translate(-50%,20px);opacity:0;z-index:400;background:var(--craie);color:#1a1206;font-weight:700;font-size:16px;
  padding:12px 18px;border-radius:12px;max-width:min(92vw,520px);pointer-events:none;transition:opacity .2s,transform .2s}
#toast.on{opacity:1;transform:translate(-50%,0)}

/* — en-tête d'Aujourd'hui — */
.aj-synthese{font-size:clamp(20px,4.6vw,24px);line-height:1.4;font-weight:700;color:var(--craie);margin:6px 0 16px;max-width:760px}
.aj-progres{display:flex;align-items:center;gap:14px;margin:0 0 26px;font-size:16px;font-weight:700;color:var(--sable)}
.aj-barre{flex:1;max-width:340px;height:10px;border-radius:5px;background:rgba(245,240,230,.1);overflow:hidden}
.aj-barre i{display:block;height:100%;background:var(--bien);border-radius:5px;transition:width .5s}
.aj-h{font-family:var(--anton);font-weight:400;text-transform:uppercase;font-size:22px;color:var(--craie);margin:8px 0 12px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.aj-h small{font-family:var(--manrope);text-transform:none;font-size:15px;font-weight:600;color:var(--sable)}
.aj-grille{display:grid;grid-template-columns:minmax(0,1fr);gap:22px}
.aj-grille>div{min-width:0}
#ajPlus{margin:4px 0 12px}

/* — carte d'action : qui, pourquoi, quoi, le geste — */
.pastille{display:inline-block;width:14px;height:14px;border-radius:50%;flex:0 0 auto;background:var(--stable)}
.pastille.rouge{background:var(--mal);box-shadow:0 0 0 4px rgba(255,122,107,.18)}
.pastille.orange{background:var(--attention);box-shadow:0 0 0 4px rgba(255,154,82,.16)}
.pastille.vert{background:var(--bien)}
.pastille.calme{background:var(--stable)}
.action{background:var(--carte);border:1px solid rgba(245,240,230,.12);border-left:4px solid var(--stable);border-radius:16px;padding:16px 16px 10px;margin-bottom:12px;
  transition:opacity .25s,transform .25s}
.action.n-rouge{border-left-color:var(--mal)}
.action.n-orange{border-left-color:var(--attention)}
.action.partie{opacity:0;transform:translateX(30px)}
.action-tete{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.action-tete .nom{font-size:20px;line-height:1.2}
.action-verbe{margin-left:auto;font-size:14px;font-weight:800;color:var(--stable);border:1px solid rgba(245,240,230,.2);border-radius:999px;padding:4px 12px;white-space:nowrap}
.action-pourquoi{font-size:17px;line-height:1.45;color:var(--craie);margin:6px 0 4px;font-weight:600}
.action-aussi{font-size:16px;color:var(--sable);margin:0 0 4px}
.action-gestes{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 8px}
.action-gestes>*{flex:1 1 150px;width:auto}
.action-gestes .lingot,.action-gestes .creux,.fm-gestes .lingot,.fm-gestes .creux,.action-fin .fait{min-height:52px;font-size:16px;padding:10px 14px;text-transform:none;letter-spacing:.01em}
.action-fin{display:flex;gap:8px;align-items:center;justify-content:space-between}
.action-fin .fait{color:var(--bien);border-color:rgba(90,212,138,.45);padding:8px 20px}
.vide-utile{text-align:left}
.vide-utile .grand{font-size:20px;font-weight:800;margin:0 0 6px;color:var(--craie)}

/* — la santé de la salle — */
.sante{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px;margin:0 -18px;padding-left:18px;padding-right:18px;scrollbar-width:none}
.sante::-webkit-scrollbar{display:none}
.tuile-s{flex:0 0 82%;scroll-snap-align:start;background:var(--carte);border:1px solid rgba(232,163,61,.18);border-radius:16px;padding:14px 16px;cursor:pointer;
  display:flex;flex-direction:column;gap:6px;transition:border-color .2s}
.tuile-s:hover,.tuile-s:focus-visible{border-color:rgba(232,163,61,.55)}
.ts-haut{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}
.ts-titre{font-weight:800;font-size:16px;color:var(--craie)}
.ts-tend{font-size:15px;font-weight:800;white-space:nowrap;color:var(--stable)}
.q-bien .ts-tend{color:var(--bien)}.q-attention .ts-tend{color:var(--attention)}.q-mal .ts-tend{color:var(--mal)}
.ts-val{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.ts-val b,.ft-val b{font-family:var(--anton);font-weight:400;font-size:44px;line-height:1;color:var(--or)}
.ts-val small,.ft-val small{font-size:17px;font-weight:700;color:var(--sable)}
.courbe{width:100%;height:auto;display:block}
.courbe .trait{fill:none;stroke:var(--or);stroke-width:3;stroke-linejoin:round}
.courbe .aire{fill:rgba(232,163,61,.12)}
.courbe circle{fill:var(--or-vif)}
.q-mal .courbe .trait{stroke:var(--mal)}.q-mal .courbe .aire{fill:rgba(255,122,107,.12)}.q-mal .courbe circle{fill:var(--mal)}
.ts-phrase{font-size:16px;line-height:1.4;color:var(--sable);margin:0;font-weight:600}
.ts-faire{min-height:48px;font-size:14px;padding:8px 12px;margin-top:4px;text-transform:none;letter-spacing:.01em;font-size:15px}

/* — feuille du bas — */
.feuille.bas{padding:0;display:none;align-items:flex-end;justify-content:center}
.feuille.bas.on{display:flex}
.feuille.bas .dedans{width:100%;max-width:640px;max-height:88svh;overflow:auto;border-radius:22px 22px 0 0;padding:20px 20px calc(26px + env(safe-area-inset-bottom));animation:remonte .3s cubic-bezier(.2,.7,.2,1)}
@keyframes remonte{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
.feuille .tete h2{font-size:28px}
.ft-val{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.ft-val .ts-tend{margin-left:auto}
.ft-phrase,.ft-texte,.fm-texte{font-size:17px;line-height:1.5;color:var(--craie);margin:0 0 14px}
.ft-texte.bien{color:var(--bien);font-weight:700}
.ft-courbe{background:rgba(245,240,230,.03);border:1px solid rgba(245,240,230,.08);border-radius:14px;padding:12px;margin-bottom:16px}
.ft-courbe .courbe{max-width:600px;margin:0 auto}
.ft-axe{display:flex;justify-content:space-between;font-size:14px;font-weight:700;color:var(--sable);margin-top:4px}
.ft-chiffres{font-size:15px;color:var(--sable);margin:8px 0 0;font-weight:600}

/* — membres — */
.filtres{display:flex;gap:8px;overflow-x:auto;margin:0 -18px 12px;padding:0 18px 4px;scrollbar-width:none}
.filtres::-webkit-scrollbar{display:none}
.filtres button{flex:0 0 auto;min-height:48px;border-radius:999px;border:1.5px solid rgba(232,163,61,.35);background:rgba(245,240,230,.04);color:var(--craie);font-weight:700;font-size:16px;padding:0 16px;display:flex;align-items:center;gap:8px}
.filtres button i{font-style:normal;color:var(--sable);font-weight:800}
.filtres button[aria-selected="true"]{background:var(--craie);color:#1a1206;border-color:var(--craie)}
.filtres button[aria-selected="true"] i{color:#1a1206}
.membre-l{width:100%;text-align:left;cursor:pointer;flex-wrap:nowrap;font:inherit;color:inherit}
.membre-l:hover{border-color:rgba(232,163,61,.5)}
.membre-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.membre-t .q{font-size:19px}
.membre-l .chevron{font-size:28px;color:var(--or);flex:0 0 auto}
.dans{font-style:normal;font-size:14px;font-weight:800;color:var(--bien);margin-left:6px}

/* — fiche membre — */
.feuille .dedans.large{max-width:860px}
.fm-tete{display:flex;gap:16px;align-items:center;margin-bottom:10px}
.fm-ini{width:64px;height:64px;border-radius:50%;border:2px solid var(--or);display:grid;place-items:center;font-family:var(--anton);font-size:30px;color:var(--or);flex:0 0 auto}
.fm-tete h2{font-size:clamp(30px,7vw,40px);line-height:1}
.fm-sous{font-size:16px;color:var(--sable);font-weight:600;margin:6px 0 6px}
.fm-sous b{color:var(--or)}
.fm-puces{display:flex;gap:6px;flex-wrap:wrap;margin:0}
.puce{font-size:14px;font-weight:800;border-radius:999px;padding:3px 12px;border:1px solid rgba(245,240,230,.25);color:var(--sable)}
.puce.rouge{color:var(--mal);border-color:rgba(255,122,107,.5)}.puce.orange{color:var(--attention);border-color:rgba(255,154,82,.5)}.puce.vert{color:var(--bien);border-color:rgba(90,212,138,.5)}
.fm-bref{font-size:19px;line-height:1.45;font-weight:700;color:var(--craie);background:rgba(245,240,230,.04);border-radius:14px;padding:14px 16px;margin:12px 0 14px}
.fm-gestes{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:18px}
.fm-chiffres{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:18px}
.fm-chiffres div,.fm-mesures div{background:var(--carte);border:1px solid rgba(232,163,61,.16);border-radius:12px;padding:12px}
.fm-chiffres b,.fm-mesures b{display:block;font-family:var(--anton);font-weight:400;font-size:32px;color:var(--or);line-height:1}
.fm-chiffres b small,.fm-mesures b small{font-family:var(--manrope);font-size:15px;color:var(--sable);font-weight:700}
.fm-chiffres span,.fm-mesures span{display:block;font-size:15px;color:var(--sable);font-weight:600;margin-top:6px;line-height:1.3}
.fm-mesures{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-bottom:16px}
.barres{width:100%;max-width:520px;height:auto;display:block;margin-bottom:16px}
.barres rect.tenue{fill:var(--or)}.barres rect.faible{fill:rgba(232,163,61,.45)}.barres rect.zero{fill:rgba(245,240,230,.2)}
.barres .objectif{stroke:rgba(90,212,138,.6);stroke-dasharray:4 4;stroke-width:1.5}
.barres text{font-family:var(--manrope);font-weight:700;fill:var(--sable);font-size:14px}
.barres .obj-t{fill:var(--bien)}.barres .val{fill:var(--craie);font-size:15px}
.fm-raisons{margin:0 0 16px;padding-left:22px;font-size:17px;line-height:1.5}
.fm-msgs p{font-size:16px;line-height:1.45;margin:0 0 8px;padding:10px 12px;border-radius:12px;background:rgba(245,240,230,.05)}
.fm-msgs p.moi{background:rgba(232,163,61,.1)}
.fm-msgs b{color:var(--or);margin-right:6px}
.fm-msgs span{display:block;font-size:14px;color:var(--sable);margin-top:2px}
.fm-repas{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.fm-repas button{position:relative;padding:0;border:1px solid rgba(232,163,61,.25);border-radius:10px;overflow:hidden;aspect-ratio:1;background:#000;min-height:48px}
.fm-repas img{width:100%;height:100%;object-fit:cover}
.fm-repas span{position:absolute;left:0;right:0;bottom:0;font-size:13px;font-weight:800;padding:3px 4px;background:rgba(11,10,8,.82)}
.bloc.eclaire{border-color:var(--or);box-shadow:0 0 0 3px rgba(232,163,61,.25)}

@media (min-width:600px){
  .sante{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;margin:0;padding:0}
  .tuile-s{flex:none}
  .fm-gestes{grid-template-columns:repeat(4,1fr)}
  .fm-chiffres{grid-template-columns:repeat(4,1fr)}
  .feuille.bas .dedans{border-radius:22px;margin-bottom:24px}
}
@media (min-width:900px){
  .filtres{margin:0 0 12px;padding:0 0 4px;flex-wrap:wrap}
  #toast{bottom:28px}
}
@media (min-width:1200px){
  .aj-grille{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:start}
  .sante{grid-template-columns:minmax(0,1fr)}
}

.aj-synthese b{color:var(--or);font-weight:800}
.n-rouge .action-verbe{color:var(--mal);border-color:rgba(255,122,107,.45)}
.n-orange .action-verbe{color:var(--attention);border-color:rgba(255,154,82,.45)}
.action-gestes .creux span,.action-gestes .lingot span{white-space:nowrap}
@media (max-width:599px){
  .action-gestes .creux{flex:0 0 56px;padding:10px 0}          /* geste secondaire : l'icône seule sur téléphone */
  .action-gestes .creux span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
}
@media (min-width:600px){
  .action-bas{display:flex;gap:10px;align-items:center;margin-top:12px}
  .action-bas .action-gestes{flex:1;margin:0}
  .action-bas .action-fin{flex:0 0 auto}
}

/* ——— FICHE DE SUIVI + MORAL dans la fiche membre (fiches papier → appli, 17/10) ——— */
.fm-fiche{border-top:1px solid rgba(232,163,61,.16);padding-top:14px;margin-bottom:16px}
.fm-fs-tete{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.fm-fs-tete div{background:var(--carte);border:1px solid rgba(232,163,61,.16);border-radius:12px;padding:12px}
.fm-fs-tete div.large{grid-column:1/-1;border-color:rgba(232,163,61,.4)}
.fm-fs-tete span{display:block;font-size:16px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--or);margin-bottom:4px}
.fm-fs-tete b{display:block;font-size:18px;line-height:1.35;color:var(--craie);font-weight:700}
.fm-fs-tete i{font-style:normal;color:var(--sable);font-weight:600}
.fm-asavoir{border:1px solid rgba(255,122,107,.38);border-left:4px solid var(--mal);background:rgba(224,91,77,.07);border-radius:12px;padding:12px 14px;margin-bottom:12px}
.fm-asavoir-t{font-weight:800;font-size:16px;letter-spacing:.12em;text-transform:uppercase;color:var(--mal);margin:0 0 8px}
.fm-asavoir dl,.fm-theme dl{margin:0;display:grid;grid-template-columns:minmax(120px,34%) 1fr;gap:6px 12px;font-size:16px;line-height:1.45}
.fm-asavoir dt,.fm-theme dt{color:var(--sable);font-weight:700}
.fm-asavoir dd,.fm-theme dd{margin:0;color:var(--craie);font-weight:600;overflow-wrap:anywhere}
.fm-sans-accord{color:var(--sable)}
.fm-themes{display:grid;gap:6px}
.fm-theme{border:1px solid rgba(232,163,61,.16);border-radius:12px;background:var(--carte)}
.fm-theme summary{cursor:pointer;min-height:48px;display:flex;align-items:center;padding:0 14px;font-weight:800;font-size:16px;color:var(--craie);list-style:none}
.fm-theme summary::-webkit-details-marker{display:none}
.fm-theme summary::after{content:"›";margin-left:auto;color:var(--or);font-size:22px;transition:transform .2s}
.fm-theme[open] summary::after{transform:rotate(90deg)}
.fm-theme dl{padding:2px 14px 14px}
.fm-moral-alerte{font-size:17px;font-weight:700;line-height:1.45;color:var(--craie);border-left:4px solid var(--attention);background:rgba(255,154,82,.08);border-radius:12px;padding:12px 14px;margin:0 0 12px}
.fm-moral{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}
.fm-moral div{background:var(--carte);border:1px solid rgba(232,163,61,.16);border-radius:12px;padding:10px 10px 6px;min-width:0}
.fm-moral span{display:block;font-size:16px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--or)}
.fm-moral b{display:block;font-size:16px;color:var(--craie);margin:2px 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fm-mini{width:100%;height:58px;display:block}
.fm-mini line{stroke:rgba(245,240,230,.14);stroke-width:1}
.fm-mini path{fill:none;stroke:var(--or);stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}
.fm-mini circle{fill:var(--or)}
.fm-mini.q-mal circle:last-of-type{fill:var(--mal)}.fm-mini.q-attention circle:last-of-type{fill:var(--attention)}.fm-mini.q-bien circle:last-of-type{fill:var(--bien)}
@media (max-width:420px){.fm-asavoir dl,.fm-theme dl{grid-template-columns:1fr;gap:2px}.fm-asavoir dd,.fm-theme dd{margin-bottom:8px}.fm-moral b{font-size:16px}}
