/* Labo automate AcadÉlec (Atelier A1) : complète labo-virtuel.css */
.la-schema-svg{width:100%;max-width:640px;height:auto;display:block;margin:0 auto}
.la-sch-t{font:700 15px var(--titre);fill:var(--marine)}
.la-sch-n{font:700 13px var(--texte);fill:var(--encre)}
.la-sch-p{font:12px var(--texte);fill:var(--gris)}
.la-sch-a{font:700 14px var(--texte);fill:var(--elec)}
.la-vars input[type=text]{width:100%;min-width:90px}
.la-vars td,.la-anim td{vertical-align:middle}
.la-mini{padding:4px 9px;font-size:.85rem}

/* éditeur Ladder */
.la-outils{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.la-outil{display:flex;align-items:center;gap:7px;border:1.5px solid var(--trait);background:#fff;border-radius:8px;padding:7px 11px;cursor:pointer;font-size:.9rem;color:var(--marine)}
.la-outil .sym{font-family:ui-monospace,Consolas,monospace;font-weight:700;white-space:pre}
.la-outil:hover{border-color:var(--elec)}
.la-outil.actif{background:var(--elec);border-color:var(--elec);color:#fff}
.la-ladder-zone{overflow-x:auto;background:#fff;border:1px solid var(--trait);border-radius:8px;padding:6px}
.la-ladder{display:block;width:100%;min-width:560px;height:auto}
.la-rail{font:700 12px var(--texte);fill:var(--encre)}
.la-var{font:700 12px var(--texte);fill:var(--encre);text-anchor:middle}
.la-var.bob{fill:#c2410c}
.la-var.vide{fill:var(--danger)}
.la-vide{fill:none;stroke:#cbd5e1;stroke-dasharray:4 4}
.la-hit{fill:transparent;cursor:pointer}
.la-cell.edit:hover .la-vide{stroke:var(--elec)}
.la-cell.sel .la-hit{fill:rgba(0,102,255,.08);stroke:var(--elec);stroke-width:1.5}
.la-hit:focus{outline:none;stroke:var(--elec);stroke-width:2}
.la-lien{fill:transparent;stroke:#cbd5e1;stroke-dasharray:3 4;cursor:pointer;opacity:.7}
.la-lien:hover,.la-lien:focus{fill:rgba(0,102,255,.12);stroke:var(--elec);outline:none}
.la-lien.actif{stroke:transparent}
.la-insp{margin:10px 0 0;min-height:38px}
.la-aide{color:var(--gris);font-size:.9rem;margin:6px 0 0}

/* simulation */
.la-sim{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:16px;align-items:start}
@media(max-width:980px){.la-sim{grid-template-columns:minmax(0,1fr)}}
.la-col>.lv-bloc{margin-bottom:16px}
.la-plc-tete{display:flex;align-items:center;gap:10px;margin:0 0 10px;flex-wrap:wrap}
.la-plc-tete h3,.la-pupitre h3,.la-col h3{margin:0 0 10px;font-family:var(--titre);color:var(--marine);font-size:1.05rem}
.la-plc-tete h3{margin:0}
.la-etat{font-weight:700;font-size:.8rem;padding:3px 9px;border-radius:20px;letter-spacing:.05em}
.la-etat.run{background:#dcfce7;color:#166534}
.la-etat.stop{background:#fee2e2;color:#991b1b}
.la-plc-tete .lv-bouton{margin-left:auto}
.la-pup-rang{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:8px 0;border-bottom:1px dashed var(--trait)}
.la-bp{display:flex;align-items:center;gap:10px;border:0;background:none;cursor:pointer;padding:4px;touch-action:none;user-select:none;-webkit-user-select:none;text-align:left}
.la-bp .cap{width:46px;height:46px;border-radius:50%;box-shadow:inset 0 -5px 0 rgba(0,0,0,.25),0 3px 0 #555;border:3px solid #444;flex:none;transition:transform .05s}
.la-bp.vert .cap{background:#16a34a}.la-bp.rouge .cap{background:#dc2626}
.la-bp.aru .cap{background:radial-gradient(circle,#dc2626 55%,#facc15 57%);width:54px;height:54px}
.la-bp.enfonce .cap{transform:translateY(3px);box-shadow:inset 0 3px 6px rgba(0,0,0,.4),0 0 0 #555}
.la-bp .lib{font-weight:700;color:var(--marine);font-size:.92rem}
.la-cab{font-size:.85rem;color:var(--gris)}
.la-cab b{color:var(--elec)}
.la-fil{border:1.5px solid var(--trait);background:#fff;border-radius:7px;padding:5px 9px;font-size:.82rem;cursor:pointer;color:var(--encre)}
.la-fil.coupe{background:var(--danger-pale);border-color:#f3c3cb;color:#8c0b20;font-weight:600}
.la-moteur-zone{display:flex;align-items:center;gap:14px;padding:12px 0 2px}
.la-moteur{width:58px;height:58px;border-radius:50%;background:#e2e8f0;border:4px solid #475569;display:grid;place-items:center;flex:none}
.la-moteur .rotor{width:40px;height:8px;background:#475569;border-radius:4px;display:block}
.la-moteur.tourne{background:#dcfce7;border-color:#16a34a}
.la-moteur.tourne .rotor{background:#16a34a;animation:la-tourne .5s linear infinite}
@keyframes la-tourne{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.la-moteur.tourne .rotor{animation:none}}
.la-moteur-etat{font-weight:700;color:var(--marine);margin-top:2px}
.la-bit{display:inline-grid;place-items:center;min-width:28px;height:24px;border-radius:5px;font-weight:700;font-family:ui-monospace,Consolas,monospace}
.la-bit.un{background:#16a34a;color:#fff}.la-bit.zero{background:#e2e8f0;color:#334155}
.la-force{border:1px solid var(--trait);background:#fff;border-radius:6px;padding:3px 7px;font-size:.78rem;cursor:pointer;margin:0 3px 3px 0}
.la-force.actif{background:var(--ambre);border-color:var(--ambre);color:#fff}
.la-anim tr.force td:first-child{color:var(--ambre);font-weight:700}
.la-tests{margin:0;padding-left:20px}
.la-tests li{margin:0 0 10px}
.la-tests .la-ok{color:var(--ok);font-weight:600;font-size:.88rem}
.la-tests .la-attente{color:var(--gris);font-size:.85rem}
.la-test-txt{font-size:.88rem;color:var(--gris)}
.la-texte{width:100%;border:1.5px solid var(--trait);border-radius:8px;padding:8px 10px;font:inherit}
.la-rap-ladder svg{max-width:640px;min-width:0}
@media print{.la-noimp,#la-bandeau{display:none!important}.la-rap-ladder .la-ladder{min-width:0}}
@media(max-width:600px){.la-pup-rang{grid-template-columns:auto 1fr}.la-pup-rang .la-fil{grid-column:1/-1;justify-self:start}}
.la-figure{margin:4px 0 18px;max-width:900px}
.la-figure img{width:100%;height:auto;display:block;border-radius:10px;border:1px solid var(--trait);background:#fff}
.la-figure figcaption{font-size:.85rem;color:var(--gris);margin-top:6px;font-style:italic}
.la-schema-img{max-width:900px}
/* Étapes Analyser → Générer → Transférer → RUN : l'étape suivante est mise en avant */
.lv-bouton.la-suivant{box-shadow:0 0 0 3px rgba(0,102,255,.28);animation:la-pulse 1.6s ease-in-out infinite}
@keyframes la-pulse{50%{box-shadow:0 0 0 6px rgba(0,102,255,.12)}}
.lv-bouton:disabled{opacity:.5;cursor:not-allowed}
@media (prefers-reduced-motion:reduce){.lv-bouton.la-suivant{animation:none}}
