/* Réflexe Calculs — module jeu-calculs (plugin ljd-modules). GÉNÉRÉ depuis produits/jeu-calculs/maquettes/jeu-calculs-v0.1.html
   par produits/jeu-dci/construire-module.py — ne pas éditer à la main : modifier la maquette puis reconstruire.
   Tokens : variables du thème (--wp--preset--color--*) avec replis charte v1.2. */
  @font-face{font-family:'Montserrat';font-style:normal;font-weight:400 600;font-display:swap;src:url('../../../theme/juste-dose/assets/fonts/montserrat-variable-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
  @font-face{font-family:'Montserrat';font-style:normal;font-weight:400 600;font-display:swap;src:url('../../../theme/juste-dose/assets/fonts/montserrat-variable-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
  @font-face{font-family:'Playfair Display';font-style:italic;font-weight:500 600;font-display:swap;src:url('../../../theme/juste-dose/assets/fonts/playfair-display-italic-variable-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
  @font-face{font-family:'Playfair Display';font-style:italic;font-weight:500 600;font-display:swap;src:url('../../../theme/juste-dose/assets/fonts/playfair-display-italic-variable-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

  .jcalc{
    --vert:var(--wp--preset--color--vert,#1F4D3A); --dore:var(--wp--preset--color--dore,#C9942B); --dore-texte:var(--wp--preset--color--dore-texte,#876114);
    --creme:var(--wp--preset--color--creme,#F7F0E3); --blanc-casse:var(--wp--preset--color--blanc-casse,#FCFAF3); --blanc:var(--wp--preset--color--blanc,#FFFFFF);
    --encre:var(--wp--preset--color--encre,#22281F); --sable:var(--wp--preset--color--sable,#F0E6D0);
    --vert-hover:var(--wp--preset--color--vert-hover,#173B2C); --gris-texte:var(--wp--preset--color--gris-texte,#565B52);
    --bordure:var(--wp--preset--color--bordure,#E3DCCB); --bordure-sable:var(--wp--preset--color--bordure-sable,#E8DFC9);
    --alerte:var(--wp--preset--color--alerte,#9A3324); --alerte-fond:var(--wp--preset--color--alerte-fond,#F8EFEF); --alerte-bord:var(--wp--preset--color--alerte-bord,#E5CFCF);
    --r-carte:16px; --r-encart:12px;
    --t-rapide:160ms ease-out; --t-douce:340ms cubic-bezier(.22,.61,.36,1);
    --ombre-carte:0 1px 2px rgba(34,40,31,.05);
    --ombre-elev:0 22px 46px -22px rgba(31,77,58,.32);
  }
  .jcalc *{margin:0;padding:0;box-sizing:border-box}
  .jcalc{font-family:'Montserrat','Helvetica Neue',Arial,sans-serif;font-size:16px;line-height:1.6;color:var(--encre);background:var(--creme);-webkit-font-smoothing:antialiased}
  .jcalc svg{display:block}
  .jcalc button{font:inherit;color:inherit}
  .jcalc a{color:var(--vert)}
  .jcalc a:focus-visible, .jcalc button:focus-visible, .jcalc input:focus-visible, .jcalc [tabindex]:focus-visible{outline:3px solid var(--vert);outline-offset:3px;border-radius:6px}
  .jcalc h1, .jcalc h2{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-weight:500;color:var(--vert);line-height:1.15;text-wrap:balance}
  .jcalc .visu-cache{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

    .jcalc .conteneur{max-width:720px;margin-inline:auto;padding:clamp(18px,4vw,36px) clamp(16px,4vw,28px) 56px}

  .jcalc .entete-jeu{display:flex;align-items:center;gap:14px;margin-bottom:6px}
  .jcalc .entete-jeu .mono{width:40px;height:40px;color:var(--vert);flex:0 0 auto}
  /* Icône « trait continu » de l'en-tête : image fixe (icône terminée) + vidéo qui la
     dessine, servies par le thème (assets/icones/) et résolues au boot depuis data-icones.
     L'image fixe est le repli : JS coupé, prefers-reduced-motion ou lecture refusée, on
     voit l'icône complète et rien ne bouge. Le fond des médias (~252,249,235) est plus
     clair que le crème de la page (247,240,227) : mix-blend-mode:darken laisse donc la
     page gagner partout sur le fond et ne garde que le trait vert — fond invisible, sans
     canal alpha. 56px : le dessin occupe ~73 % du cadre, il pèse donc comme les 40px du
     monogramme qu'il remplace. */
  .jcalc .entete-jeu .ic-entete{width:56px;height:56px;flex:0 0 auto;display:block;line-height:0}
  .jcalc .entete-jeu .ic-entete .ic-fixe, .jcalc .entete-jeu .ic-entete .ic-anim{width:56px;height:56px;display:block;mix-blend-mode:darken}
  .jcalc .entete-jeu .ic-entete .ic-anim{display:none}
  @media (prefers-reduced-motion: no-preference){
    .jcalc .entete-jeu .ic-entete .ic-fixe{display:none}
    .jcalc .entete-jeu .ic-entete .ic-anim{display:block}
  }

  .jcalc .eyebrow{font-size:12px;letter-spacing:3px;text-transform:uppercase;font-weight:600;color:var(--dore-texte)}
  .jcalc h1{font-size:clamp(32px,7vw,44px)}
  .jcalc .tagline{color:var(--gris-texte);margin-top:6px;font-size:16px}

  /* disclaimer : reste dans le markup (présent même dans le module déployé) */
  .jcalc .jc-avert{display:flex;gap:11px;align-items:flex-start;background:var(--alerte-fond);border:1px solid var(--alerte-bord);border-radius:var(--r-encart);padding:13px 16px;margin:20px 0;font-size:13.5px;color:var(--encre)}
  .jcalc .jc-avert svg{flex:0 0 auto;color:var(--alerte);margin-top:2px}
  .jcalc .jc-avert b{color:var(--alerte)}

  .jcalc .btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-size:15px;font-weight:600;letter-spacing:.3px;text-decoration:none;border-radius:999px;padding:15px 28px;cursor:pointer;border:0;transition:transform var(--t-rapide),background-color var(--t-rapide),box-shadow var(--t-rapide)}
  .jcalc .btn:active{transform:scale(.96)}
  .jcalc .btn-plein{background:var(--vert);color:var(--creme);box-shadow:0 10px 22px -12px rgba(31,77,58,.6)}
  .jcalc .btn-plein:hover{background:var(--vert-hover);transform:translateY(-2px)}
  .jcalc .btn-ligne{background:transparent;color:var(--vert);border:1.5px solid var(--vert);padding:13px 24px}
  .jcalc .btn-ligne:hover{background:rgba(31,77,58,.07);transform:translateY(-2px)}
  .jcalc .btn[disabled]{opacity:.45;cursor:not-allowed;box-shadow:none}
  .jcalc .btn-petit{padding:9px 16px;font-size:13px}

  .jcalc .ecran[hidden]{display:none}
  .jcalc .carte{background:var(--blanc);border:1px solid var(--bordure);border-radius:var(--r-carte);box-shadow:var(--ombre-carte)}

  /* mascotte / avatar Aisha */
  .jcalc .bulle{display:flex;gap:14px;align-items:center;margin:24px 0}
  .jcalc .avatar-ini{width:60px;height:60px;border-radius:999px;background:var(--vert);color:var(--creme);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:18px;text-align:center;line-height:1.1;flex:0 0 auto;padding:4px;font-family:'Playfair Display',Georgia,serif;font-style:italic}
  /* têtes de personnages (visages sur fond clair Officine, cadrés sur le visage) */
  .jcalc .bulle img{width:60px;height:60px;border-radius:999px;object-fit:cover;object-position:top;background:var(--vert);flex:0 0 auto;outline:1px solid rgba(0,0,0,.1);outline-offset:-1px}
  .jcalc .bulle img.petite{width:44px;height:44px}
  .jcalc .avatar-ini.petite{width:44px;height:44px;font-size:14px}
  .jcalc .bulle .txt{background:var(--blanc);border:1px solid var(--bordure);border-radius:4px 14px 14px 14px;padding:12px 16px;font-size:14.5px}
  .jcalc .bulle .qui{display:block;font-size:11px;letter-spacing:2px;text-transform:uppercase;font-weight:600;color:var(--dore-texte);margin-bottom:3px}

  /* accueil : modes */
  .jcalc .modes{display:grid;gap:14px;margin:22px 0 34px}
  .jcalc .mode-cta{display:flex;flex-direction:row;gap:16px;align-items:center;justify-content:flex-start;text-align:left;border-radius:var(--r-carte);padding:20px 22px;width:100%}
  .jcalc .mode-cta .ic-mode{flex:0 0 auto;width:48px;height:48px;border-radius:999px;background:var(--creme);color:var(--vert);display:flex;align-items:center;justify-content:center}
  .jcalc .mode-cta .txt-cta{display:flex;flex-direction:column;gap:3px;min-width:0}
  .jcalc .mode-cta b{font-size:21px;line-height:1.2}
  .jcalc .mode-cta small{font-weight:500;font-size:14px}

  /* réglages : familles de calcul */
  .jcalc .bloc-reglage{margin:30px 0}
  .jcalc .bloc-reglage > .legende{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}
  .jcalc .bloc-reglage h2{font-size:22px}
  .jcalc .compteur-pool{font-size:13px;color:var(--gris-texte);font-variant-numeric:tabular-nums}
  .jcalc .chips{display:flex;flex-wrap:wrap;gap:8px}
  .jcalc .chip-fam{border:1.5px solid var(--bordure);background:var(--blanc);border-radius:999px;padding:9px 16px;font-size:13.5px;font-weight:600;color:var(--gris-texte);cursor:pointer;transition:background-color var(--t-rapide),color var(--t-rapide),border-color var(--t-rapide)}
  .jcalc .chip-fam[aria-pressed="true"]{background:var(--vert);border-color:var(--vert);color:var(--creme)}
  .jcalc .chips-outils{display:flex;gap:16px;margin-top:12px}
  .jcalc .lien-outil{background:none;border:0;font-size:13px;font-weight:600;color:var(--vert);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
  .jcalc .lien-outil:hover{color:var(--vert-hover)}

  /* partie */
  .jcalc .hud{display:flex;align-items:center;gap:16px;justify-content:space-between;margin-bottom:8px}
  .jcalc .hud .stat{font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}
  .jcalc .hud .stat small{display:block;font-size:10.5px;letter-spacing:1.5px;text-transform:uppercase;color:var(--gris-texte);font-weight:600}
  .jcalc .btn-quitter{background:none;border:0;font-size:13px;font-weight:600;color:var(--gris-texte);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
  .jcalc .chrono{position:relative;height:10px;border-radius:99px;background:var(--blanc);border:1px solid var(--bordure);overflow:hidden;margin-bottom:18px}
  .jcalc .chrono-fill{position:absolute;inset:1px;border-radius:99px;background:var(--vert);transform-origin:left center}
  .jcalc .chrono[hidden]{display:none}

  /* carte énoncé (équivalent « ordonnance ») */
  .jcalc .enonce{padding:clamp(18px,4vw,28px);text-align:center;margin-bottom:16px}
  .jcalc .enonce .fam{font-size:11.5px;letter-spacing:2.5px;text-transform:uppercase;font-weight:600;color:var(--dore-texte)}
  .jcalc .enonce .texte{font-size:clamp(17px,3.4vw,20px);font-weight:500;margin:12px 0 2px;line-height:1.45;overflow-wrap:anywhere}
  .jcalc .enonce .texte b{font-weight:600;color:var(--vert)}
  .jcalc .enonce .consigne{font-size:14px;color:var(--gris-texte)}

  .jcalc .reponses{display:grid;gap:12px}
  .jcalc .reponses[hidden]{display:none} /* l'author display:grid écrase [hidden] : à neutraliser */
  .jcalc .rep{display:flex;align-items:center;gap:14px;width:100%;min-height:56px;text-align:left;background:var(--blanc);border:1.5px solid var(--bordure);border-radius:var(--r-encart);padding:12px 16px;font-size:17px;font-weight:600;font-variant-numeric:tabular-nums;cursor:pointer;transition:border-color var(--t-rapide),background-color var(--t-rapide),transform var(--t-rapide)}
  .jcalc .rep:hover{border-color:var(--vert);background:var(--blanc-casse)}
  .jcalc .rep:active{transform:scale(.99)}
  .jcalc .rep .num{flex:0 0 auto;width:26px;height:26px;border-radius:8px;background:var(--creme);color:var(--vert);font-size:13px;font-weight:600;display:flex;align-items:center;justify-content:center}
  .jcalc .rep .marq{margin-left:auto;font-size:13px;font-weight:600}
  .jcalc .rep.juste{border-color:var(--vert);background:var(--blanc-casse);box-shadow:inset 0 0 0 1.5px var(--vert)}
  .jcalc .rep.juste .marq{color:var(--vert)}
  .jcalc .rep.faux{border-color:var(--alerte-bord);background:var(--alerte-fond)}
  .jcalc .rep.faux .marq{color:var(--alerte)}
  .jcalc .rep[disabled]{cursor:default}

  /* correction */
  .jcalc .correction{margin-top:24px;border:1px solid var(--alerte-bord);background:var(--alerte-fond);border-radius:var(--r-carte);padding:22px 24px;cursor:pointer;box-shadow:var(--ombre-carte)}
  .jcalc .correction[hidden]{display:none}
  .jcalc .correction.est-juste{border-color:var(--bordure);background:var(--blanc-casse)}
  .jcalc .correction .verdict{font-size:13px;letter-spacing:2px;text-transform:uppercase;font-weight:600;color:var(--alerte)}
  .jcalc .correction.est-juste .verdict{color:var(--vert)}
  .jcalc .correction .equiv{font-size:19px;font-weight:600;margin:10px 0 2px}
  .jcalc .correction .equiv .ok{color:var(--vert)}
  .jcalc .correction .ines{display:flex;gap:11px;align-items:center;margin-top:14px;padding-top:14px;border-top:1px solid var(--alerte-bord)}
  .jcalc .correction .ines img{width:44px;height:44px;border-radius:999px;object-fit:cover;object-position:top;background:var(--vert);flex:0 0 auto;outline:1px solid rgba(0,0,0,.1);outline-offset:-1px}
  .jcalc .correction.est-juste .ines{border-top-color:var(--bordure)}
  .jcalc .correction .ines p{font-size:14.5px;line-height:1.5}
  .jcalc .correction .ines .qui{display:block;font-size:10.5px;letter-spacing:1.5px;text-transform:uppercase;font-weight:600;color:var(--dore-texte);margin-bottom:2px}
  .jcalc .calc{font-weight:600;color:var(--vert);font-variant-numeric:tabular-nums;white-space:nowrap}
  .jcalc .correction .cor-pied{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:16px;padding-top:14px;border-top:1px solid var(--alerte-bord)}
  .jcalc .correction.est-juste .cor-pied{border-top-color:var(--bordure)}
  .jcalc .cor-pied .astuce{margin-left:auto;font-size:12px;color:var(--gris-texte);white-space:nowrap}

  /* fin */
  .jcalc .fin-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:24px 0}
  @media (max-width:560px){.jcalc .fin-stats{grid-template-columns:repeat(2,1fr)}}
  .jcalc .fin-stat{padding:18px 12px;text-align:center}
  .jcalc .fin-stat b{display:block;font-size:23px;margin-bottom:2px;font-variant-numeric:tabular-nums}
  .jcalc .fin-stat small{font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--gris-texte);font-weight:600}
  .jcalc .record-note{font-size:13.5px;font-weight:600;color:var(--dore-texte);margin:-10px 0 18px}
  .jcalc .record-note[hidden]{display:none}
  .jcalc .juste-dose{background:var(--blanc);border:1px solid var(--bordure);border-left:3px solid var(--vert);border-radius:var(--r-encart);padding:18px 22px;margin:24px 0;display:flex;gap:14px;align-items:center;box-shadow:var(--ombre-carte)}
  .jcalc .juste-dose .label{display:block;font-size:11px;letter-spacing:2px;text-transform:uppercase;font-weight:600;color:var(--vert);margin-bottom:5px}
  .jcalc .juste-dose p{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:19px;color:var(--encre);line-height:1.45}
  .jcalc .appris{margin:30px 0}
  .jcalc .appris h2{font-size:22px;margin-bottom:12px}
  .jcalc .appris ul{list-style:none;display:grid;gap:8px}
  .jcalc .appris li{background:var(--blanc);border:1px solid var(--bordure);border-radius:var(--r-encart);padding:12px 16px;font-size:14.5px;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}
  .jcalc .appris li .paire{font-weight:600}
  .jcalc .appris li .meta{font-size:12px;color:var(--gris-texte)}
  .jcalc .appris .vide{color:var(--gris-texte);font-size:14.5px;background:none;border:0;padding:0}
  .jcalc .fin-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px}

  .jcalc .pied-jeu{border-top:1px solid var(--bordure);margin:0 auto;max-width:720px;padding:18px clamp(16px,4vw,28px) 40px;font-size:12.5px;color:var(--gris-texte);display:grid;gap:8px}

  .jcalc #titre-jeu:focus, .jcalc #titre-partie:focus, .jcalc #titre-fin:focus{outline:none}

  @media (prefers-reduced-motion: no-preference){
    .jcalc .ecran:not([hidden]){animation:apparait .32s cubic-bezier(.22,.61,.36,1)}
    @keyframes apparait{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
    .jcalc .chrono-fill{transition:transform .25s linear}
    .jcalc .rep.juste{animation:repPop .34s cubic-bezier(.22,.61,.36,1)}
    .jcalc .rep.faux{animation:repShake .32s}
    @keyframes repPop{0%{transform:scale(1)}40%{transform:scale(1.02)}100%{transform:scale(1)}}
    @keyframes repShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}
  }
/* coquille du module (avant le démarrage du JS) */
.jcalc .jcalc-coquille{min-height:320px}
.jcalc .jcalc-attente{font-size:15px;color:var(--gris-texte);padding:48px 0;text-align:center}
