/* ===== Prends le relais ! : couleur cuivre (le cuivre des bobines et des contacts) + plateau (classes pr-…) =====
   Phase en rouge, neutre en bleu, fil sans potentiel en gris : les couleurs des schémas des cours de TecniPass. */
.jx{--amber:#ef8a4a;--amber-soft:#ef8a4a24;--ph:#ff5a3c;--ne:#3d9bff;--fl:#465062}
.jx-titre{text-shadow:0 0 16px #ef8a4a66}
@media (max-width:440px){.jx-titre{font-size:17px;letter-spacing:.03em}}
/* le message du bas : 3 lignes réservées, jamais plus (la scène ne change pas de taille à chaque message) */
.jx-statut{height:3.75em;overflow:hidden;font-size:15px;line-height:1.25;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}
.jx-carte{box-shadow:0 0 40px #ef8a4a33}
.jx-gagne{z-index:5}
/* global.css du site : TOUS les boutons ont marge, taille mini, fond blanc et filtre inversé au survol */
.pr-zone button{margin:0;min-width:0;min-height:0;padding:0;background:none;border:0;border-radius:0;font:inherit;color:inherit;filter:none}
.pr-zone button:hover,.jx .jx-btn:hover{filter:none}
.jx .jx-btn{margin:0;min-width:0;min-height:44px}
.jx .jx-btn.pr-tester{border-color:var(--amber);color:var(--amber)}
.jx .jx-btn.pr-tester.pr-pret{background:var(--amber);color:#2a1205;animation:prPret 1.8s ease-in-out infinite}
.jx .jx-btn.pr-tester:disabled{opacity:.45;animation:none}
@keyframes prPret{50%{box-shadow:0 0 18px #ef8a4a}}
.jx-lancer:hover{filter:none}

.pr-zone{width:100%;height:100%;display:flex;flex-direction:column;gap:6px;min-height:0;touch-action:none}
/* si rien ne tient (petit téléphone, grand schéma) : la zone défile, le bac reste collé en bas */
.pr-zone.pr-defile{overflow-y:auto;overflow-x:hidden;touch-action:pan-y;overscroll-behavior:contain}
.pr-defile .pr-bac{position:sticky;bottom:0;z-index:2}
/* --- chronogramme --- */
.pr-chrono{flex:none;background:#0a0d13;border:1px solid var(--line);border-radius:10px;overflow:hidden;line-height:0}
.pr-test .pr-chrono{cursor:pointer}
.pr-chrono svg{display:block}
.pr-ch-nom{font-size:12px;fill:#9aa5b8;font-weight:700}
.pr-ch-s{fill:var(--amber)}
.pr-ch-num{font-size:10px;fill:#5d6779;text-anchor:middle;font-weight:700}
.pr-ch-num.pr-cours{fill:#fff;font-size:12px}
.pr-ch-num.pr-ko{fill:var(--danger);font-size:12px}
.pr-ch-sep{stroke:#1a2029;stroke-width:1}
.pr-ch-ent{fill:none;stroke:#b9c2d0;stroke-width:1.6;stroke-linejoin:round}
.pr-ch-att{fill:none;stroke:var(--amber);stroke-width:7;stroke-opacity:.32;stroke-linejoin:round}
.pr-ch-att.pr-ch-fin{stroke-width:4}
.pr-ch-reel{fill:none;stroke:#5ee08f;stroke-width:2.2;stroke-linejoin:round}
.pr-ch-faux{fill:none;stroke:var(--danger);stroke-width:2.8;stroke-linejoin:round}
.pr-ch-seuil{stroke:#3a4352;stroke-width:1;stroke-dasharray:4 3}
.pr-ch-cur{stroke:#fff;stroke-width:1.2;stroke-dasharray:3 3}
.pr-ch-x{fill:#ff5a4755;stroke:var(--danger);stroke-width:2}
.pr-ch-xx{stroke:#fff;stroke-width:2;stroke-linecap:round}
/* --- schéma + pupitre (à côté, ou en bande au-dessus : .pr-bande) --- */
.pr-milieu{position:relative;display:flex;gap:10px;align-items:center;justify-content:center;min-height:0;flex:none}
.pr-bande .pr-milieu{flex-direction:column;gap:8px}
.pr-schema{position:relative;flex:none}
.pr-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.pr-w{fill:none;stroke:var(--fl);stroke-width:4.5;stroke-linecap:round;transition:stroke .1s}
.pr-w.pr-L{stroke:var(--ph)} .pr-w.pr-N{stroke:var(--ne)}
.pr-pt{fill:var(--fl);transition:fill .1s} .pr-pt.pr-L{fill:var(--ph)} .pr-pt.pr-N{fill:var(--ne)}
.pr-rail{fill:none;stroke-width:8;stroke-linecap:round}
.pr-rL,.pr-w.pr-fL{stroke:var(--ph)} .pr-rN,.pr-w.pr-fN{stroke:var(--ne)}
.pr-railt{font-size:var(--lab,21px);font-weight:700} .pr-tL{fill:var(--ph)} .pr-tN{fill:var(--ne)}
.pr-dj .pr-rail,.pr-dj .pr-w,.pr-dj .pr-w.pr-fL,.pr-dj .pr-w.pr-fN{stroke:var(--fl)}
.pr-dj .pr-railt,.pr-dj .pr-pt{fill:var(--fl)}
.pr-dj{animation:prDj .5s 2}
@keyframes prDj{50%{filter:drop-shadow(0 0 14px #ff5a3c)}}
.pr-lame{transform-box:fill-box;transform-origin:50% 100%;transition:transform .07s ease-out}
.pr-no .pr-lame{transform:rotate(-28deg)} .pr-no.pr-act .pr-lame{transform:rotate(0deg)}
.pr-nf .pr-lame{transform:rotate(18deg)} .pr-nf.pr-act .pr-lame{transform:rotate(42deg)}
/* jamais d'animation CSS « transform » sur un groupe qui a un attribut transform (il serait déplacé à l'origine) */
.pr-pous{transition:transform .07s ease-out}
.pr-act .pr-pous{transform:translateX(8px)}
.pr-tir{fill:none;stroke:#7d889b;stroke-width:2.2;stroke-dasharray:4 3}
.pr-tete{fill:none;stroke:#c9d2e0;stroke-width:3.2;stroke-linejoin:round}
.pr-para{fill:none;stroke:#8fd0ff;stroke-width:3.2;stroke-linecap:round}
.pr-para2{fill:none;stroke:#8fd0ff;stroke-width:1.6}
.pr-lab{font-size:var(--lab,17px);font-weight:700;fill:#c9d2e0}
.pr-corps{fill:#121821;stroke:#c9d2e0;stroke-width:3;transition:fill .12s,stroke .12s}
.pr-corps.pr-plein{fill:#c9d2e0}
.pr-trait{fill:none;stroke:#c9d2e0;stroke-width:2}
.pr-bobine.pr-on .pr-corps,.pr-vanne.pr-on .pr-corps{fill:#ef8a4a66;stroke:var(--amber);filter:drop-shadow(0 0 7px #ef8a4a)}
.pr-bobine.pr-on .pr-corps.pr-plein{fill:var(--amber)}
.pr-bobine.pr-on .pr-trait,.pr-vanne.pr-on .pr-trait{stroke:#ffd9bf}
.pr-lampe.pr-on .pr-corps{fill:#ffe066;stroke:#ffe066;filter:drop-shadow(0 0 10px #ffd84d)}
.pr-voyant.pr-on .pr-corps{fill:#ff7a3c;stroke:#ff9a6a;filter:drop-shadow(0 0 10px #ff5a3c)}
.pr-lampe.pr-on .pr-trait,.pr-voyant.pr-on .pr-trait{stroke:#7a3b00}
.pr-sonnerie.pr-on .pr-corps{fill:#ffd16655;stroke:#ffd166}
.pr-sonnerie.pr-on .pr-corps,.pr-sonnerie.pr-on .pr-trait{animation:prVibre .09s linear infinite}
@keyframes prVibre{50%{transform:translateX(1.5px)}}
.pr-trou rect{fill:#ffffff07;stroke:#5d6779;stroke-width:2.6;stroke-dasharray:7 6}
.pr-trou path{stroke:#5d6779;stroke-width:3;stroke-linecap:round}
.pr-choix .pr-trou rect{stroke:var(--amber);fill:#ef8a4a14;animation:prClign 1.1s ease-in-out infinite}
.pr-choix .pr-trou path{stroke:var(--amber)}
@keyframes prClign{50%{stroke-opacity:.35}}
.pr-gagne .pr-svg{filter:drop-shadow(0 0 8px #ef8a4a99)}
.pr-slot,.pr-fixe{position:absolute;border-radius:12px;border:2px solid transparent;cursor:pointer;touch-action:none}
.pr-fixe{cursor:help}
.pr-slot.pr-vise{border-color:var(--amber);background:#ef8a4a26}
.pr-zone .pr-slot:focus-visible,.pr-zone .pr-fixe:focus-visible,.pr-zone .pr-in:focus-visible,.pr-zone .pr-tuile:focus-visible{outline:2px solid var(--amber);outline-offset:2px}
.pr-parti.pr-slot{background:#ffffff10}
/* --- pupitre --- */
.pr-pupitre{width:var(--pup);flex:none;display:flex;flex-wrap:wrap;align-content:center;align-items:flex-start;justify-content:center;gap:7px 4px}
.pr-sep{flex-basis:100%;height:0;border-top:1px dashed var(--line);margin:1px 0}
.pr-bande .pr-pupitre{order:-1;width:100%;align-items:center;gap:6px 8px}
.pr-bande .pr-sep{flex-basis:auto;align-self:stretch;width:0;height:auto;border-top:0;border-left:1px dashed var(--line);margin:0 2px}
.pr-zone .pr-in{display:flex;flex-direction:column;align-items:center;gap:1px;cursor:pointer;touch-action:none;width:64px;padding:2px 0}
.pr-bp .pr-tete{display:block;width:44px;height:44px;border-radius:50%;border:3px solid #2b313d;box-shadow:0 5px 0 #05070a,inset 0 -6px 0 #0004;transition:transform .05s,box-shadow .05s;margin-bottom:3px}
.pr-c-vert .pr-tete{background:#2fbf5b}.pr-c-rouge .pr-tete{background:#e5352b}
.pr-c-noir .pr-tete{background:#2b2f37;border-color:#c9d2e0}.pr-c-gris .pr-tete{background:#9aa5b8}
.pr-bp.pr-on .pr-tete{transform:translateY(4px);box-shadow:0 1px 0 #05070a,inset 0 -2px 0 #0004}
.pr-bn{font-size:12.5px;font-weight:700;color:#d6dde8;line-height:1.1;text-align:center;max-width:66px}
.pr-bid{font-style:normal;font-weight:400;font-size:11px;color:var(--muted)}
.pr-in svg{width:46px;height:46px;overflow:visible}
.pr-v-frigo svg{width:42px;height:52px}
.pr-fr-int{fill:#1b2230;stroke:#9aa5b8;stroke-width:2;transition:fill .15s}
.pr-v-frigo.pr-lum .pr-fr-int{fill:#fff1a8}
.pr-fr-etag{stroke:#9aa5b8;stroke-width:2}
.pr-fr-porte path,.pr-fr-porte rect{fill:#dfe6ef;stroke:#9aa5b8;stroke-width:2}
.pr-fr-porte path:last-child{fill:none;stroke:#8b95a7;stroke-width:3.5;stroke-linecap:round}
.pr-fr-porte .pr-po-vitre{fill:#7fa7c9}
.pr-fr-porte{transform-box:fill-box;transform-origin:0 50%;transition:transform .25s ease-out}
.pr-v-frigo.pr-on .pr-fr-porte,.pr-v-portiere.pr-on .pr-fr-porte{transform:scaleX(.16)}
.pr-haut,.pr-bas{stroke:#2b313d;stroke-width:1.5;transition:fill .1s}
.pr-haut{fill:#c9d2e0}.pr-bas{fill:#3a4352}
.pr-v-inter.pr-on .pr-haut{fill:#3a4352}.pr-v-inter.pr-on .pr-bas{fill:var(--amber)}
.pr-gouttes{fill:#3d9bff;opacity:0}
.pr-v-robinet.pr-on .pr-gouttes{opacity:1;animation:prGoutte .5s linear infinite}
@keyframes prGoutte{from{transform:translateY(-4px)}to{transform:translateY(4px)}}
.pr-v-robinet.pr-on .pr-o-corps{stroke:#3d9bff}
.pr-o-x{fill:none;stroke:var(--danger);stroke-width:4;stroke-linecap:round;opacity:0}
.pr-v-bloque.pr-on .pr-o-x{opacity:1}
.pr-v-bloque.pr-on .pr-carton{fill:#ffa62b44;stroke:#ffa62b}
.pr-out{display:flex;flex-direction:column;align-items:center;gap:1px;width:64px}
.pr-out svg{width:46px;height:46px;overflow:visible}
.pr-etat{font-size:11px;color:var(--amber);line-height:1}
.pr-o-corps{fill:none;stroke:#8b95a7;stroke-width:3;stroke-linejoin:round;transition:fill .12s,stroke .12s}
.pr-o-fil,.pr-o-trait{fill:none;stroke:#8b95a7;stroke-width:3;stroke-linecap:round}
.pr-o-trait{opacity:0;stroke:#ffd166}
.pr-o-pale{fill:#8b95a7} .pr-o-axe{fill:#c9d2e0} .pr-o-piece{fill:#5d6779}
.pr-o-excl{fill:none;stroke:#c9d2e0;stroke-width:4;stroke-linecap:round}
.pr-out.pr-on .pr-o-trait{opacity:1}
.pr-o-sonnerie.pr-on .pr-o-corps{stroke:#ffd166;fill:#ffd16633}
.pr-o-sonnerie.pr-on svg{animation:prSonne .12s linear infinite}
@keyframes prSonne{25%{transform:rotate(-9deg)}75%{transform:rotate(9deg)}}
.pr-o-lampe.pr-on .pr-o-corps{fill:#ffe066;stroke:#ffe066;filter:drop-shadow(0 0 9px #ffd84d)}
.pr-o-voyant .pr-o-trait{stroke:#ff9a6a}
.pr-o-voyant.pr-on .pr-o-corps{fill:#ff7a3c;stroke:#ff9a6a;filter:drop-shadow(0 0 9px #ff5a3c)}
.pr-o-voyant.pr-on .pr-o-excl{stroke:#2a0c00}
.pr-o-moteur.pr-on .pr-o-corps{stroke:var(--amber)} .pr-o-moteur.pr-on .pr-o-pale{fill:var(--amber)}
.pr-helice{transform-origin:32px 32px}
.pr-o-moteur.pr-on .pr-helice{animation:prTourne var(--vit,.45s) linear infinite;animation-direction:var(--sens,normal)}
@keyframes prTourne{to{transform:rotate(360deg)}}
.pr-piston{transition:transform .35s ease-in}
.pr-o-presse.pr-on .pr-piston{transform:translateY(11px)}
.pr-o-presse.pr-on .pr-o-corps{stroke:var(--amber)}
.pr-temoin{font-size:12px;color:#c9d2e0;padding:3px 9px;border:1px solid var(--line);border-radius:999px;white-space:nowrap}
.pr-temoin b{color:#5ee08f}
.pr-temoin.pr-on{background:#5a1410;border-color:var(--danger)} .pr-temoin.pr-on b{color:#ffb4a8}
.pr-cuve{width:64px;display:flex;justify-content:center}
.pr-cuve svg{width:56px;height:77px;display:block}
.pr-cu-cadre{fill:#0d1218;stroke:#9aa5b8;stroke-width:2.5}
.pr-cu-eau{fill:#3d9bff99}
.pr-cu-seuil{stroke:#5d6779;stroke-width:1.5;stroke-dasharray:3 3}
.pr-cu-f{fill:#2a313d;stroke:#9aa5b8;stroke-width:1.5} .pr-cu-f.pr-on{fill:var(--amber);stroke:var(--amber)}
.pr-cu-t{font-size:10px;fill:#9aa5b8;font-weight:700}
.pr-cu-tuyau{fill:none;stroke:#5d6779;stroke-width:3}
/* --- indice --- */
.pr-bulle{position:absolute;left:2px;right:2px;bottom:2px;z-index:3;background:#1c140ef5;border:1px solid var(--amber);border-radius:12px;
  padding:8px 38px 8px 12px;font-size:14px;line-height:1.35;color:#ffe3cf;font-weight:400}
.pr-zone .pr-bulle-x{position:absolute;top:3px;right:3px;width:34px;height:34px;color:var(--amber);font-size:17px;cursor:pointer}
/* --- bac --- */
.pr-bac{flex:none;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;padding:6px;background:#0a0d13;
  border:1px solid var(--line);border-radius:12px;min-height:calc(var(--t,64px) + 22px)}
.pr-zone .pr-tuile{position:relative;width:var(--t,64px);height:calc(var(--t,64px) + 10px);display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:0;background:var(--panel);border:1px solid var(--line);border-radius:10px;cursor:grab;touch-action:none;padding:2px}
.pr-sym{width:28px;height:28px;flex:none}
.pr-s-fil{fill:none;stroke:#c9d2e0;stroke-width:3;stroke-linecap:round}
.pr-sym circle{fill:#c9d2e0}
.pr-s-lame{stroke:var(--amber);stroke-width:3.4;stroke-linecap:round}
.pr-s-para{fill:none;stroke:#8fd0ff;stroke-width:2}
.pr-tn{font-size:12px;font-weight:700;white-space:nowrap;line-height:1.15}
.pr-td{font-size:10px;letter-spacing:-.2px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;line-height:1.15}
.pr-td:empty{display:none}
.pr-nb{position:absolute;top:2px;right:4px;font-size:11px;color:var(--amber)}
.pr-zone .pr-tuile.pr-sel{border-color:var(--amber);box-shadow:inset 0 0 0 2px var(--amber);background:#ef8a4a1c}
.pr-zone .pr-tuile.pr-parti{opacity:.35}
.pr-vide{color:var(--muted);font-size:14px}
.pr-fantome{position:fixed;left:0;top:0;z-index:10;pointer-events:none;display:flex;flex-direction:column;align-items:center;gap:1px;
  padding:6px 12px;background:#161b24ee;border:2px solid var(--amber);border-radius:10px;color:var(--fg)}
.pr-fantome .pr-sym{width:34px;height:34px}
/* --- pendant le test --- */
.pr-test .pr-bac{opacity:.45}
.pr-test .pr-bac,.pr-test .pr-slot,.pr-test .pr-in{pointer-events:none}
@media (prefers-reduced-motion:reduce){
  .pr-sonnerie.pr-on .pr-corps,.pr-sonnerie.pr-on .pr-trait,.pr-o-sonnerie.pr-on svg,.pr-o-moteur.pr-on .pr-helice,.jx .jx-btn.pr-tester.pr-pret,
  .pr-choix .pr-trou rect,.pr-dj,.pr-v-robinet.pr-on .pr-gouttes{animation:none}
}
