/* Module SLT — Schémas de liaison à la terre (préfixe slt-). Site en Bootstrap 3 : em/px uniquement, jamais rem. */
.slt-shell{--g:#1b7a43;--g2:#2fa865;--y:#f2c230;--ink:#14263a;--muted:#5d7385;--line:#dbe6ee;--soft:#f3f8f5;--ok:#178a57;--bad:#c2412f;--warn:#d98a00;--blue:#1d5fd1;--ph:#8a5a2b;max-width:1240px;margin:0 auto;padding:18px;color:var(--ink);font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:16px;line-height:1.55}
.slt-shell *{box-sizing:border-box}
.slt-shell h1,.slt-shell h2,.slt-shell h3,.slt-shell h4{font-family:inherit;color:inherit;line-height:1.2}
.slt-shell h2{font-size:1.55em;font-weight:800;margin:0 0 6px}
.slt-shell h3{font-size:1.18em;font-weight:800;margin:18px 0 8px}
.slt-shell p{margin:0 0 10px}
.slt-loading{padding:60px;text-align:center;color:var(--muted);font-weight:700}
.slt-alert{background:#fff0ee;color:#8a2a1c;border-radius:12px;padding:14px 16px}
.slt-muted{color:var(--muted)}
.slt-small{font-size:.88em}

/* Hero */
.slt-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:1fr auto;gap:28px;align-items:center;padding:32px 38px;border-radius:26px;color:#fff;background:linear-gradient(125deg,#0c3b22 0%,#1b7a43 55%,#5fb84a 100%);box-shadow:0 18px 50px #1b7a4330}
.slt-hero:before{content:"";position:absolute;left:0;right:0;bottom:0;height:8px;background:repeating-linear-gradient(90deg,#f2c230 0 22px,#2fa865 22px 44px)}
.slt-hero h1{font-size:2.6em;margin:6px 0 10px;font-weight:850;color:#fff}
.slt-hero p{font-size:1.06em;max-width:760px;opacity:.95;margin:0}
.slt-kicker{font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:.8em;opacity:.95}
.slt-pills{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.slt-pills span{padding:6px 12px;border:1px solid #ffffff55;border-radius:999px;background:#ffffff1c;font-size:.9em;font-weight:700}
.slt-ring{position:relative;width:116px;height:116px;text-align:center}
.slt-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.slt-ring circle{fill:none;stroke-width:10}
.slt-ring .bg{stroke:#ffffff30}
.slt-ring .fg{stroke:#fff;stroke-linecap:round;stroke-dasharray:327;transition:stroke-dashoffset .6s ease}
.slt-ring b{position:absolute;left:0;right:0;top:40px;font-size:1.5em}
.slt-ring small{display:block;font-weight:700;opacity:.9;margin-top:4px}

/* Onglets */
.slt-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0 16px;position:sticky;top:0;z-index:5;background:#ffffffee;padding:8px 0;backdrop-filter:blur(4px)}
.slt-tab{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:#fff;border-radius:14px;padding:10px 14px;font-weight:750;font-size:.95em;color:var(--ink);cursor:pointer;transition:all .15s}
.slt-tab:hover{border-color:var(--g2)}
.slt-tab.on{background:var(--g);border-color:var(--g);color:#fff;box-shadow:0 8px 20px #1b7a4333}
.slt-tab .n{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#eef4f0;color:var(--g);font-size:.85em}
.slt-tab.on .n{background:#ffffff30;color:#fff}
.slt-tab.done .n{background:var(--ok);color:#fff}

/* Cartes / panneaux */
.slt-panel{background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px 24px;margin-bottom:16px;box-shadow:0 6px 22px #14263a0a}
.slt-grid{display:grid;gap:14px}
.slt-g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.slt-g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.slt-g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.slt-card{border:1px solid var(--line);border-radius:16px;padding:14px 16px;background:var(--soft)}
.slt-card h4{margin:0 0 6px;font-size:1.05em;font-weight:800}
.slt-card p{margin:0;font-size:.94em}
.slt-def b{color:var(--g)}
.slt-letters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.slt-letter{border-radius:16px;padding:16px;background:#fff8e1;border:1px solid #f2dd8a}
.slt-letter big{font-size:2.2em;font-weight:900;color:var(--g);margin-right:8px}
.slt-letter ul{margin:6px 0 0;padding-left:20px}

/* Sélecteur de schéma */
.slt-seg{display:inline-flex;flex-wrap:wrap;gap:6px;background:#eef4f0;border-radius:14px;padding:5px}
.slt-seg button{border:0;background:transparent;padding:8px 14px;border-radius:10px;font-weight:800;color:var(--ink);cursor:pointer;font-size:.95em}
.slt-seg button.on{background:#fff;color:var(--g);box-shadow:0 2px 8px #0001}
.slt-seg button .ok{color:var(--ok);margin-left:4px}

/* Schéma SVG */
.slt-svgwrap{background:#fbfdfb;border:1px solid var(--line);border-radius:16px;padding:8px;margin:12px 0;overflow:hidden}
.slt-svg{width:100%;height:auto;display:block}
.slt-svg text{font-family:Inter,system-ui,sans-serif}
.slt-svg .lbl{font-size:13px;font-weight:700;fill:#14263a}
.slt-svg .sub{font-size:11px;fill:#5d7385}
.slt-svg .wl{font-size:12px;font-weight:800}
.slt-svg .w{fill:none;stroke-width:3}
.slt-svg .L1{stroke:#8a5a2b}.slt-svg .L2{stroke:#222}.slt-svg .L3{stroke:#8a8f94}
.slt-svg .N{stroke:#1d5fd1}
.slt-svg .PE{stroke:#2fa865;stroke-dasharray:10 6}
.slt-svg .PEY{stroke:#f2c230;stroke-dasharray:10 6;stroke-dashoffset:10}
.slt-svg .PEN{stroke:#1d5fd1}
.slt-svg .PENY{stroke:#f2c230;stroke-dasharray:6 10;stroke-width:3;fill:none}
.slt-svg .earth{stroke:#5b4630;stroke-width:3;fill:none}
.slt-svg .ground{stroke:#a48a6a;stroke-width:2;stroke-dasharray:4 5;fill:none}
.slt-svg .box{fill:#fff;stroke:#14263a;stroke-width:2}
.slt-svg .tr{fill:#eef4f0;stroke:#14263a;stroke-width:2}
.slt-svg .masse{fill:#e7ecef;stroke:#5d7385;stroke-width:2.5}
.slt-svg .prot{fill:#fff8e1;stroke:#d98a00;stroke-width:2}
.slt-svg .prot.trip{fill:#e5f6ec;stroke:#178a57}
.slt-svg .cpi{fill:#e8f0ff;stroke:#1d5fd1;stroke-width:2}
.slt-svg .cpi.alarm{fill:#ffe9e4;stroke:#c2412f;animation:slt-blink 1s infinite}
.slt-svg .path{fill:none;stroke:#e5301f;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:14 12;opacity:.9;animation:slt-flow .8s linear infinite}
.slt-svg .path.weak{stroke-width:3;stroke-dasharray:4 10;opacity:.7}
.slt-svg .path.off{opacity:.18;animation:none}
.slt-svg .fault{font-size:22px}
.slt-svg .hsz{cursor:pointer}
.slt-svg .hsz:hover rect,.slt-svg .hsz:focus rect{stroke:#1b7a43;stroke-width:3}
@keyframes slt-flow{to{stroke-dashoffset:-26}}
@keyframes slt-blink{50%{opacity:.45}}

.slt-legend{display:flex;flex-wrap:wrap;gap:14px;font-size:.85em;color:var(--muted);margin-top:4px}
.slt-legend i{display:inline-block;width:22px;height:4px;border-radius:2px;margin-right:6px;vertical-align:middle}

/* Fiche schéma */
.slt-fiche{display:grid;grid-template-columns:1.1fr .9fr;gap:16px;align-items:start}
.slt-list{margin:0;padding-left:20px}
.slt-list li{margin:3px 0}
.slt-pro b{color:var(--ok)}.slt-con b{color:var(--bad)}
.slt-tag{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.8em;font-weight:800;background:#eef4f0;color:var(--g)}

/* Tableau comparatif */
.slt-table{width:100%;border-collapse:collapse;font-size:.93em}
.slt-table th,.slt-table td{border-bottom:1px solid var(--line);padding:9px 10px;text-align:left;vertical-align:top}
.slt-table th{background:#eef4f0;font-weight:800}
.slt-tablewrap{overflow-x:auto}

/* Formulaires */
.slt-ctrls{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.slt-field{display:flex;flex-direction:column;gap:4px;font-size:.92em}
.slt-field label{font-weight:750;margin:0}
.slt-field output{font-weight:800;color:var(--g)}
.slt-field input[type=range]{width:100%}
.slt-field select,.slt-input{border:1px solid #c6d4dd;border-radius:10px;padding:7px 10px;font-size:1em;background:#fff;color:var(--ink);height:auto}
.slt-input{width:120px}
.slt-check{display:flex;align-items:center;gap:8px;font-weight:700;font-size:.92em;margin:0}
.slt-btn{display:inline-flex;align-items:center;gap:6px;border:0;border-radius:12px;padding:9px 16px;font-weight:800;font-size:.95em;cursor:pointer;background:var(--g);color:#fff;transition:filter .15s}
.slt-btn:hover{filter:brightness(1.08)}
.slt-btn.alt{background:#eef4f0;color:var(--g)}
.slt-btn.red{background:var(--bad)}
.slt-btn.blue{background:var(--blue)}
.slt-btn[disabled]{opacity:.45;cursor:not-allowed}
.slt-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}

/* Simulateur */
.slt-simgrid{display:grid;grid-template-columns:1.45fr 1fr;gap:16px;align-items:start}
.slt-meters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.slt-meter{border-radius:14px;background:#14263a;color:#fff;padding:10px 12px}
.slt-meter small{display:block;opacity:.7;font-weight:700;font-size:.78em;text-transform:uppercase;letter-spacing:.05em}
.slt-meter b{font-family:"Consolas","Courier New",monospace;font-size:1.45em;color:#7dffb0}
.slt-meter.bad b{color:#ff8a78}
.slt-gauge{position:relative;height:16px;background:#e9eef1;border-radius:8px;margin:18px 0 6px;overflow:visible}
.slt-gauge .fill{height:100%;border-radius:8px;background:linear-gradient(90deg,#2fa865,#f2c230 40%,#e5301f);transition:width .3s}
.slt-gauge .ul{position:absolute;top:-6px;bottom:-6px;width:3px;background:#14263a}
.slt-gauge .ul span{position:absolute;top:-18px;left:-14px;font-size:.75em;font-weight:800;white-space:nowrap}
.slt-verdict{border-radius:14px;padding:12px 14px;margin-top:12px;font-weight:650;font-size:.95em}
.slt-verdict.ok{background:#e5f6ec;color:#0f5c3a}
.slt-verdict.bad{background:#ffe9e4;color:#8a2a1c}
.slt-verdict.warn{background:#fff4dc;color:#7a4b00}
.slt-verdict.info{background:#e8f0ff;color:#183f82}
.slt-formula{font-family:"Consolas","Courier New",monospace;background:#f4f6f8;border-radius:10px;padding:8px 10px;font-size:.88em;margin-top:8px;white-space:pre-wrap;line-height:1.5}
.slt-missions{list-style:none;margin:0;padding:0}
.slt-missions li{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-bottom:1px dashed var(--line);font-size:.93em}
.slt-missions li:last-child{border-bottom:0}
.slt-missions .st{flex:0 0 26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#eef1f3;color:var(--muted);font-weight:900;font-size:.85em}
.slt-missions li.done .st{background:var(--ok);color:#fff}

/* Essais */
.slt-lab{display:grid;grid-template-columns:1.3fr 1fr;gap:16px;align-items:start}
.slt-display{font-family:"Consolas","Courier New",monospace;background:#0f2a1c;color:#7dffb0;border-radius:12px;padding:12px 14px;font-size:1.5em;text-align:right;border:4px solid #2c3e50;min-height:62px}
.slt-display small{display:block;font-size:.5em;color:#a9d8bb;text-align:left}
.slt-instr{background:#f3c623;border-radius:18px;padding:14px;color:#14263a;box-shadow:inset 0 -6px 0 #d4a70f}
.slt-instr h4{margin:0 0 8px;font-weight:900;font-size:1em}
.slt-chart{width:100%;height:auto;background:#fff;border:1px solid var(--line);border-radius:12px}
.slt-feeders{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.slt-feeder{border:2px solid var(--line);border-radius:14px;padding:10px;text-align:center;background:#fff}
.slt-feeder.offd{background:#f2f2f2;opacity:.75}
.slt-feeder .ico{font-size:1.7em}
.slt-feeder h5{margin:6px 0;font-size:.85em;font-weight:800;min-height:2.4em}
.slt-switch{border:0;border-radius:999px;padding:5px 12px;font-weight:800;cursor:pointer;font-size:.82em}
.slt-switch.on{background:var(--ok);color:#fff}
.slt-switch.off{background:#c9d2d8;color:#14263a}
.slt-done-badge{display:inline-flex;align-items:center;gap:6px;background:#e5f6ec;color:#0f5c3a;border-radius:999px;padding:4px 12px;font-weight:800;font-size:.85em}

/* Exercices / quiz */
.slt-ex{border:1px solid var(--line);border-radius:16px;padding:14px 16px;margin-bottom:12px}
.slt-ex.ok{border-color:#9fd8b8;background:#f4fbf7}
.slt-ex.ko{border-color:#f0b4a8;background:#fff8f6}
.slt-ex h4{margin:0 0 6px;font-weight:800;font-size:1em}
.slt-ex .data{background:#f4f6f8;border-radius:10px;padding:8px 10px;font-size:.92em;margin:6px 0 10px}
.slt-ex .fb{margin-top:8px;font-size:.92em}
.slt-q{border:1px solid var(--line);border-radius:16px;padding:14px 16px;margin-bottom:12px}
.slt-q p{font-weight:750}
.slt-opt{display:block;width:100%;text-align:left;border:1px solid #cdd9e1;background:#fff;border-radius:10px;padding:8px 12px;margin:6px 0;cursor:pointer;font-size:.95em;color:var(--ink)}
.slt-opt:hover{border-color:var(--g2)}
.slt-opt.sel{border-color:var(--g);background:#eef7f1;font-weight:700}
.slt-opt.good{border-color:var(--ok);background:#e5f6ec}
.slt-opt.wrong{border-color:var(--bad);background:#ffe9e4}
.slt-score{font-size:2.4em;font-weight:900}

/* Exercice d'identification */
.slt-idgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.slt-idcard{border:1px solid var(--line);border-radius:14px;padding:12px;background:#fff}
.slt-idcard p{font-size:.92em;min-height:4.4em}
.slt-idcard .slt-seg{display:flex}
.slt-idcard.ok{border-color:#9fd8b8;background:#f4fbf7}
.slt-idcard.ko{border-color:#f0b4a8;background:#fff8f6}

/* Toasts */
.slt-toasts{position:fixed;right:18px;bottom:18px;z-index:9999;display:flex;flex-direction:column;gap:8px}
.slt-toast{background:#14263a;color:#fff;padding:10px 16px;border-radius:12px;font-weight:700;box-shadow:0 10px 30px #0003;font-size:15px;transition:opacity .4s,transform .4s}
.slt-toast.ok{background:#178a57}
.slt-toast.out{opacity:0;transform:translateY(8px)}

@media (max-width:980px){
  .slt-simgrid,.slt-lab,.slt-fiche{grid-template-columns:1fr}
  .slt-g4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .slt-idgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .slt-feeders{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:640px){
  .slt-shell{padding:10px}
  .slt-hero{grid-template-columns:1fr;padding:24px 20px}
  .slt-hero h1{font-size:1.9em}
  .slt-g2,.slt-g3,.slt-g4,.slt-letters,.slt-idgrid{grid-template-columns:1fr}
  .slt-feeders{grid-template-columns:repeat(2,minmax(0,1fr))}
  .slt-panel{padding:16px}
  .slt-tab{padding:8px 10px;font-size:.88em}
}
