/* ===== Hors circuit : couleur outremer + plateau (classes hc-…) =====
   Sous tension en rouge, hors tension en gris, tension résiduelle en orange, à la terre en vert-jaune.
   Zone de travail hachurée de jaune, balisage rouge et blanc, cadenas jaune (le tien) ou rouge (celui du BC). */
.jx{--amber:#7584ff;--amber-soft:#7584ff26;--vif:#ff4d3d;--res:#ffa62b;--terre:#b6e34a;--fl:#4a5466;--ink:#c9d2e0}
.jx-titre{text-shadow:0 0 16px #5b6cff99}
@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 #5b6cff55}
.jx-gagne{z-index:6}
.jx .jx-btn.jx-go{color:#fff;background:#3f51f0;border-color:#3f51f0}
/* global.css du site : TOUS les boutons ont marge, taille mini, fond blanc et filtre inversé au survol */
.hc-zone .hc-cible,.hc-zone .hc-outil,.hc-zone .hc-signer,.hc-zone .hc-bx{margin:0;min-width:0;min-height:0;padding:0;background:none;border:0;border-radius:0;font:inherit;color:inherit;filter:none}
.hc-zone button:hover,.jx .jx-btn:hover{filter:none}
.jx .jx-btn{margin:0;min-width:0;min-height:44px}
.jx-lancer:hover{filter:none}

.hc-zone{position:relative;width:100%;height:100%;display:flex;flex-direction:column;gap:6px;min-height:0}
.hc-plan{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden}
.hc-plan.hc-defile{overflow:auto;align-items:flex-start;justify-content:flex-start;overscroll-behavior:contain}
.hc-schema{position:relative;flex:none;margin:auto}
.hc-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;--lab:20px}
/* --- fils et nœuds --- */
.hc-w{fill:none;stroke:var(--fl);stroke-width:6;stroke-linecap:round;stroke-linejoin:round;transition:stroke .12s}
.hc-pt{fill:var(--fl);transition:fill .12s}
.hc-w.hc-L,.hc-trc.hc-L{stroke:var(--vif)} .hc-pt.hc-L,.hc-bar.hc-L{fill:var(--vif)}
.hc-w.hc-P{stroke:var(--vif);stroke-dasharray:10 9}
.hc-w.hc-R,.hc-trc.hc-R{stroke:var(--res)} .hc-pt.hc-R,.hc-bar.hc-R{fill:var(--res)}
.hc-w.hc-T,.hc-trc.hc-T{stroke:var(--terre)} .hc-pt.hc-T,.hc-bar.hc-T{fill:var(--terre)}
.hc-w.hc-L{filter:drop-shadow(0 0 4px #ff4d3d88)}
.hc-flash{animation:hcFlash .45s ease-in-out 8}
@keyframes hcFlash{50%{stroke:#ffd23f;fill:#ffd23f;opacity:.55}}
/* --- textes --- */
.hc-id{font-size:var(--lab);font-weight:700;fill:var(--amber)}
.hc-nom{font-size:var(--lab);font-weight:700;fill:#d6dde8;paint-order:stroke;stroke:#0e1117;stroke-width:5px;stroke-linejoin:round}
.hc-tag rect{fill:#e9eef5;stroke:#0e1117;stroke-width:1.5}
.hc-tag text{font-size:var(--lab);font-weight:700;fill:#10141c;text-anchor:middle}
.hc-deco{font-size:var(--lab);font-weight:700;fill:#9aa5b8}
.hc-dfond{fill:#0e1117}
.hc-tranchee{fill:#ffffff06;stroke:#5d6779;stroke-width:3;stroke-dasharray:10 8}
/* --- organes de coupure --- */
.hc-mk{fill:none;stroke:var(--ink);stroke-width:4;stroke-linecap:round}
.hc-mkc{fill:#0e1117}
.hc-cel{fill:none;stroke:#7d889b;stroke-width:2.5;stroke-dasharray:6 4}
.hc-lame{transition:d .1s}
.hc-fic{fill:#d6dde8;stroke:#0e1117;stroke-width:2}
.hc-fi-off,.hc-ouvert .hc-fi-on{display:none} .hc-ouvert .hc-fi-off{display:inline}
.hc-cadA,.hc-cadM{display:none}
.hc-autre .hc-cadA,.hc-cad .hc-cadM{display:inline}
.hc-anse{fill:none;stroke:#d6dde8;stroke-width:3.5}
.hc-cadM .hc-corps{fill:#ffd23f;stroke:#6b5300;stroke-width:1.5} .hc-cadA .hc-corps{fill:#ff5a47;stroke:#6b100a;stroke-width:1.5}
.hc-trou{stroke:#0e1117;stroke-width:3;stroke-linecap:round}
.hc-cad .hc-cadM{animation:hcPose .3s ease-out}
@keyframes hcPose{from{opacity:0}to{opacity:1}}
.hc-collet{display:none;font-size:var(--lab);font-weight:700;fill:var(--vif)}
.hc-colle .hc-collet{display:inline}
/* --- objets --- */
.hc-ic{fill:#121821;stroke:var(--ink);stroke-width:3.5;transition:fill .15s,stroke .15s}
.hc-icl{fill:none;stroke:var(--ink);stroke-width:3;stroke-linecap:round}
.hc-ict{font-size:26px;font-weight:700;fill:var(--ink);text-anchor:middle}
.hc-rot{fill:none;stroke:transparent;stroke-width:3;stroke-dasharray:6 7}
.hc-on .hc-rot{stroke:var(--amber);animation:hcTourne 1.2s linear infinite;transform-box:fill-box;transform-origin:center}
@keyframes hcTourne{to{transform:rotate(360deg)}}
.hc-goutte{fill:#3d9bff;opacity:.5}
.hc-i-lampe.hc-on .hc-ic{fill:#ffe066;stroke:#ffe066;filter:drop-shadow(0 0 9px #ffd84d)}
.hc-i-lampe.hc-on .hc-icl{stroke:#7a5b00}
.hc-i-frigo.hc-on .hc-ic,.hc-i-machine.hc-on .hc-ic{stroke:#8fd0ff;fill:#13263a}
.hc-flo{fill:none;stroke:#8fd0ff;stroke-width:2.5;stroke-linecap:round;opacity:.35} .hc-on .hc-flo{opacity:1}
.hc-led{fill:#2a313d} .hc-on .hc-led{fill:#5ee08f;animation:hcLed 1.1s steps(2) infinite} .hc-on .hc-led2{animation-delay:.4s}
@keyframes hcLed{50%{fill:#1d6b3e}}
.hc-res{fill:none;stroke:#7d889b;stroke-width:3.5;stroke-linejoin:round} .hc-on .hc-res{stroke:#ff8a3c;filter:drop-shadow(0 0 5px #ff6a1c)}
.hc-i-tv.hc-on .hc-ic{fill:#2b4f7d;stroke:#8fd0ff}
.hc-i-radio.hc-on .hc-ic{stroke:#ffd166}
.hc-i-prise.hc-on .hc-ic{stroke:var(--vif)}
.hc-pla{fill:none;stroke:var(--ink);stroke-width:6;stroke-linecap:round}
.hc-charge .hc-pla{stroke:var(--res);filter:drop-shadow(0 0 7px #ffa62b)}
.hc-cv{font-size:var(--lab);font-weight:700;fill:var(--res);text-anchor:start;paint-order:stroke;stroke:#0e1117;stroke-width:5px;stroke-linejoin:round}
.hc-od{font-size:calc(var(--lab) * .85);font-weight:700;fill:#9aa5b8;text-anchor:middle}
.hc-batt .hc-od{fill:var(--res)}
.hc-asit{font-size:20px;font-weight:700;fill:var(--ink);text-anchor:middle}
.hc-bar{fill:var(--fl);transition:fill .12s}
.hc-coupe{fill:none;stroke:#ffd23f;stroke-width:3;stroke-linecap:round}
.hc-trc{fill:none;stroke:var(--fl);stroke-width:5}
.hc-invt{font-size:18px;font-weight:700;fill:#9aa5b8;text-anchor:middle}
.hc-pv{fill:#1b3358;stroke:#8fb4e8;stroke-width:3} .hc-pvl{stroke:#8fb4e8;stroke-width:1.5}
.hc-soleil circle{fill:#ffd23f} .hc-soleil path{stroke:#ffd23f;stroke-width:3;stroke-linecap:round}
.hc-bat{fill:none;stroke:var(--ink);stroke-width:5;stroke-linecap:round}
.hc-rotg{fill:none;stroke:transparent;stroke-width:4;stroke-dasharray:8 8}
.hc-marche .hc-rotg{stroke:var(--vif);animation:hcTourne .6s linear infinite;transform-box:fill-box;transform-origin:center}
.hc-marche .hc-ic{stroke:var(--vif)}
.hc-fumee circle{fill:#9aa5b8;opacity:0}
.hc-marche .hc-fumee circle{animation:hcFumee 1.6s ease-out infinite} .hc-marche .hc-fumee circle+circle{animation-delay:.8s}
@keyframes hcFumee{0%{opacity:.6;transform:translateY(8px)}100%{opacity:0;transform:translateY(-14px)}}
/* --- mur (câbles cachés) --- */
.hc-mur{stroke:#56413a;stroke-width:2}
.hc-murv{display:none;stroke-dasharray:8 7}
.hc-revele .hc-murv{display:inline}
.hc-murt{font-size:calc(var(--lab) * .9);font-weight:700;fill:#c9a99c;paint-order:stroke;stroke:#2a1d18;stroke-width:5px}
/* --- zone de travail --- */
.hc-hach{fill:url(#hcHach);opacity:.14;stroke:#ffd23f;stroke-opacity:.55;stroke-width:2.5;stroke-dasharray:8 6}
.hc-bal1,.hc-bal2{fill:none;stroke-width:7;display:none}
.hc-bal1{stroke:#fff} .hc-bal2{stroke:#ff3b30;stroke-dasharray:14 14}
.hc-balz.hc-pose .hc-bal1,.hc-balz.hc-pose .hc-bal2{display:inline}
.hc-ptz{fill:none;stroke:var(--terre);stroke-width:3;stroke-dasharray:5 5;display:none}
.hc-o5 .hc-ptz{display:inline}
.hc-mt{display:none} .hc-pose .hc-mt{display:inline} .hc-pose .hc-ptz{display:none}
.hc-mt path{fill:none;stroke:var(--terre);stroke-width:5;stroke-linecap:round} .hc-mt circle{fill:var(--terre);stroke:#2a3a10;stroke-width:2}
.hc-trav circle{fill:#ffb31a;stroke:#5a3c00;stroke-width:2}
.hc-tt{font-size:24px;text-anchor:middle} .hc-tn{font-size:var(--lab);font-weight:700;fill:#ffd166;text-anchor:middle}
.hc-trav.hc-parti{display:none}
.hc-fini .hc-svg{filter:drop-shadow(0 0 8px #5b6cff88)}
/* --- cibles (boutons invisibles posés sur le dessin) --- */
.hc-cibles{position:absolute;inset:0}
.hc-zone .hc-cible{position:absolute;border-radius:12px;cursor:pointer;touch-action:manipulation}
.hc-zone .hc-cible:hover{background:#7584ff1a}
.hc-zone .hc-cible:focus-visible{outline:2px solid var(--amber);outline-offset:-2px}
.hc-o1 .hc-t-org,.hc-o2 .hc-t-org,.hc-o3 .hc-t-zone,.hc-o4 .hc-t-zone,.hc-o5 .hc-t-zone{box-shadow:inset 0 0 0 2px #7584ff40}
.hc-t-pt{display:none;z-index:2} .hc-o5 .hc-t-pt{display:block}
.hc-o5 .hc-t-pt{box-shadow:none}
.hc-t-trav{z-index:3;border-radius:50%}
.hc-zone .hc-cible[hidden]{display:none}
/* --- la barre des opérations --- */
.hc-outils{flex:none;display:flex;gap:5px;justify-content:center}
.hc-zone .hc-outil,.hc-zone .hc-signer{position:relative;flex:1 1 0;max-width:96px;min-height:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;
  background:var(--panel);border:1px solid var(--line);border-radius:12px;cursor:pointer;color:var(--fg);padding:3px 2px}
.hc-outil b{position:absolute;top:3px;left:6px;font-size:12px;color:var(--muted)}
.hc-outil svg{width:30px;height:27px;fill:none;stroke:currentColor;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round}
.hc-outil span,.hc-signer span{font-size:12px;font-weight:700;line-height:1.05;white-space:nowrap}
.hc-ok{display:none;position:absolute;top:2px;right:5px;font-style:normal;font-size:13px;font-weight:700;color:#5ee08f}
.hc-outil.hc-fait .hc-ok{display:block}
.hc-zone .hc-outil[aria-pressed="true"]{border-color:var(--amber);background:#2a3170;color:#fff;box-shadow:0 0 0 1px var(--amber)}
.hc-outil[aria-pressed="true"] b{color:#c9cfff}
.hc-zone .hc-signer{background:#1b2150;border-color:#3f51f0}
.hc-signer em{font-style:normal;font-size:22px;line-height:1}
.hc-zone .hc-signer.hc-pret{background:#3f51f0;border-color:#9aa6ff;animation:hcPret 1.8s ease-in-out infinite}
@keyframes hcPret{50%{box-shadow:0 0 18px #5b6cff}}
.hc-signer[hidden]{display:none}
@media (max-width:380px){.hc-outil span,.hc-signer span{font-size:11px;letter-spacing:-.2px}}
/* --- bulle de la VAT --- */
.hc-bulle{position:absolute;left:2px;right:2px;bottom:2px;z-index:3;background:#10162cf5;border:1px solid var(--amber);border-radius:12px;
  padding:8px 40px 9px 12px;font-size:14px;line-height:1.35;color:#e3e7ff}
.hc-zone .hc-bx{position:absolute;top:2px;right:2px;width:38px;height:38px;color:var(--amber);font-size:17px;cursor:pointer}
.hc-vt{font-weight:700;margin-bottom:4px} .hc-vt span,.hc-vr span{font-weight:400;color:#9aa5b8}
.hc-vp{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin:3px 0} .hc-vp b{margin-right:4px;font-size:13px}
/* un contrôle par paire de conducteurs (3 en mono, 6 en tri, 10 en tri + neutre) : vert = absence, rouge = présence */
.hc-chip{display:inline-block;padding:2px 7px;border-radius:999px;background:#1d4d33;color:#a8f0c6;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}
.hc-chip.hc-chp{background:#5a1410;color:#ffb4a8}
.hc-vr{margin-top:4px;font-weight:700}
.hc-vok{color:#5ee08f} .hc-vko{color:#ff7a6b}
/* --- cartes : accident, attestation refusée --- */
.hc-voile{position:absolute;inset:0;z-index:4;display:flex;align-items:center;justify-content:center;background:#0e1117b3;padding:10px}
.hc-voile[hidden]{display:none}
.hc-carte{max-width:440px;background:#141a2a;border:2px solid var(--amber);border-radius:16px;padding:16px 18px;text-align:center;
  display:flex;flex-direction:column;gap:10px;align-items:center;animation:jxPop .3s ease-out}
.hc-v-acc .hc-carte{border-color:var(--vif);box-shadow:0 0 40px #ff4d3d55}
.hc-c-titre{font-size:22px;font-weight:700} .hc-v-acc .hc-c-titre{color:#ff7a6b} .hc-v-refus .hc-c-titre{color:#ffd166}
.hc-c-msg{margin:0;color:#d6dde8;font-size:15px;line-height:1.4}
.hc-boum .hc-plan{animation:hcBoum .5s ease-out}
@keyframes hcBoum{0%{background:#ff4d3d66}100%{background:transparent}}
@media (prefers-reduced-motion:reduce){
  .hc-on .hc-rot,.hc-marche .hc-rotg,.hc-on .hc-led,.hc-marche .hc-fumee circle,.hc-zone .hc-signer.hc-pret,.hc-flash,.hc-boum .hc-plan{animation:none}
}
