/******* Do not edit this file *******
Woody Code Snippets CSS and JS
Saved: Sep 14 2026 | 13:50:37 */
/* GE — composants pédagogiques · genieelectrique.tn
   Feuille commune à tous les cours. */
:root{
  --ge-navy:#1F3A6B; --ge-navy2:#2A5594; --ge-amber:#E8A317; --ge-amber-l:#FFF3DC;
  --ge-red:#C00000; --ge-red-l:#FCECEC; --ge-green:#1E6B33; --ge-green-l:#E9F7EC;
  --ge-cream:#FFF6DF; --ge-line:#C9D4E4; --ge-grey:#6B7280; --ge-grey-l:#F4F6F9;
  --ge-ink:#1A2233; --ge-mono:"Consolas","SFMono-Regular",Menlo,monospace;
}
.ge{margin:1.7em 0;color:var(--ge-ink);line-height:1.6}
.ge *{box-sizing:border-box}
.ge-card{border:1px solid var(--ge-line);border-radius:10px;background:#fff;overflow:hidden;box-shadow:0 1px 3px rgba(31,58,107,.07)}
.ge-head{background:var(--ge-navy);color:#fff;padding:.7em 1em;display:flex;align-items:center;gap:.7em;flex-wrap:wrap}
.ge-head b{font-size:1.03em}
.ge-head .k{font-size:.68em;text-transform:uppercase;letter-spacing:.09em;color:#A8C0E0;font-weight:700}
.ge-body{padding:1.05em}
.ge-hint{font-size:.87em;color:var(--ge-grey);margin:.2em 0 .9em}
.ge-page{background:var(--ge-amber);color:#2A2000;border-radius:6px;padding:.18em .6em;font-size:.72em;font-weight:700;margin-left:auto;white-space:nowrap}
.ge-btn{border:0;border-radius:7px;padding:.55em 1.1em;font-size:.93em;font-weight:700;cursor:pointer;background:var(--ge-navy2);color:#fff;font-family:inherit}
.ge-btn:hover{filter:brightness(1.13)}
.ge-btn.ghost{background:#fff;color:var(--ge-navy2);border:1.5px solid var(--ge-navy2)}
.ge-row{display:flex;gap:.7em;flex-wrap:wrap;align-items:center}
.ge-reg{display:grid;grid-template-columns:repeat(8,1fr);gap:4px}
.ge-bit{border:1px solid var(--ge-line);border-radius:7px;overflow:hidden;text-align:center;cursor:pointer;background:#fff;transition:.15s;user-select:none}
.ge-bit:hover{border-color:var(--ge-navy2);transform:translateY(-2px)}
.ge-bit .n{background:var(--ge-navy);color:#fff;font-size:.62rem;padding:.26em 0;font-weight:700}
.ge-bit .nm{font-size:.73rem;font-weight:700;color:var(--ge-navy);padding:.36em 2px;background:#EEF3FA;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ge-bit .v{font-family:var(--ge-mono);font-size:1.45rem;font-weight:700;padding:.1em 0;color:#9AA3B2}
.ge-bit.on{border-color:var(--ge-green);box-shadow:inset 0 0 0 1px var(--ge-green)}
.ge-bit.on .n{background:var(--ge-green)}
.ge-bit.on .nm{background:var(--ge-green-l);color:var(--ge-green)}
.ge-bit.on .v{color:var(--ge-red)}
.ge-out{display:flex;gap:.6em;flex-wrap:wrap;margin-top:.9em}
.ge-chip{background:var(--ge-navy);color:#fff;border-radius:8px;padding:.45em .9em;font-family:var(--ge-mono);font-weight:700;font-size:1.05rem}
.ge-chip.a{background:var(--ge-amber);color:#2A2000}
.ge-chip.g{background:var(--ge-grey)}
.ge-chip small{display:block;font-family:inherit;font-size:.58rem;letter-spacing:.09em;text-transform:uppercase;opacity:.8}
.ge-why{margin-top:.9em;background:var(--ge-grey-l);border-left:4px solid var(--ge-amber);border-radius:0 8px 8px 0;padding:.7em .9em;font-size:.9em;min-height:2.6em}
.ge-why b{color:var(--ge-navy)}
.ge-pre{margin-top:.9em;display:flex;gap:.45em;flex-wrap:wrap;align-items:center}
.ge-pre .l{font-size:.8em;color:var(--ge-grey);font-weight:700}
.ge-pre button{font-size:.82em;padding:.34em .75em;border:1.5px solid var(--ge-line);background:#fff;border-radius:20px;cursor:pointer;font-weight:600;color:var(--ge-navy);font-family:inherit}
.ge-pre button:hover{border-color:var(--ge-navy2);background:#EEF3FA}
.ge-2col{display:grid;grid-template-columns:1fr 1fr;gap:1.1em}
@media(max-width:640px){.ge-2col{grid-template-columns:1fr}.ge-reg{grid-template-columns:repeat(4,1fr)}}
.ge-f{margin-bottom:.85em}
.ge-f label{display:block;font-size:.8em;font-weight:700;color:var(--ge-navy);margin-bottom:.3em;text-transform:uppercase;letter-spacing:.04em}
.ge-f input[type=number],.ge-f select{width:100%;padding:.5em .6em;border:1.5px solid var(--ge-line);border-radius:7px;font-size:1em;font-family:var(--ge-mono);background:#fff;color:var(--ge-ink)}
.ge-f input[type=range]{width:100%;accent-color:var(--ge-navy2)}
.ge-res{background:var(--ge-grey-l);border-radius:8px;padding:.85em}
.ge-res table{width:100%;border-collapse:collapse;font-size:.92em;margin:0}
.ge-res td{padding:.34em 0;border:0;border-bottom:1px dashed var(--ge-line)}
.ge-res tr:last-child td{border-bottom:0}
.ge-res td+td{text-align:right;font-family:var(--ge-mono);font-weight:700;color:var(--ge-navy)}
.ge-res tr.big td+td{font-size:1.3rem;color:var(--ge-red)}
.ge-formula{background:var(--ge-navy);color:#fff;border-radius:8px;padding:.6em;text-align:center;font-size:1.05rem;font-weight:700;margin-bottom:.85em;border-top:4px solid var(--ge-amber)}
.ge-q{font-weight:600;margin-bottom:.75em}
.ge-opts{display:flex;flex-direction:column;gap:.4em}
.ge-opt{border:1.5px solid var(--ge-line);border-radius:8px;padding:.55em .8em;cursor:pointer;display:flex;gap:.6em;align-items:flex-start;background:#fff;transition:.12s}
.ge-opt:hover{border-color:var(--ge-navy2);background:#F7FAFD}
.ge-opt .k{flex:0 0 1.55em;height:1.55em;border-radius:50%;background:var(--ge-navy2);color:#fff;font-size:.78em;font-weight:700;display:flex;align-items:center;justify-content:center}
.ge-opt.good{border-color:var(--ge-green);background:var(--ge-green-l)}
.ge-opt.good .k{background:var(--ge-green)}
.ge-opt.bad{border-color:var(--ge-red);background:var(--ge-red-l)}
.ge-opt.bad .k{background:var(--ge-red)}
.ge-fb{margin-top:.8em;padding:.7em .9em;border-radius:8px;font-size:.92em;display:none}
.ge-fb.show{display:block}
.ge-fb.ok{background:var(--ge-green-l);border-left:4px solid var(--ge-green)}
.ge-fb.ko{background:var(--ge-red-l);border-left:4px solid var(--ge-red)}
.ge-fill{line-height:2.6}
.ge-blank{display:inline-block;min-width:6.5em;border:0;border-bottom:2px dotted var(--ge-navy2);background:var(--ge-cream);font-family:var(--ge-mono);font-weight:700;text-align:center;padding:.15em .4em;border-radius:4px 4px 0 0;color:var(--ge-navy);font-size:.95em}
.ge-blank.good{background:var(--ge-green-l);border-bottom-color:var(--ge-green);color:var(--ge-green)}
.ge-blank.bad{background:var(--ge-red-l);border-bottom-color:var(--ge-red);color:var(--ge-red)}
.ge-score{font-weight:700;color:var(--ge-navy)}
.ge-code{background:#F7FAFD;border:1px solid var(--ge-line);border-left:5px solid var(--ge-navy2);border-radius:8px;padding:.9em 1em;font-family:var(--ge-mono);font-size:.87rem;line-height:1.65;overflow-x:auto;white-space:pre;color:var(--ge-ink);margin:0}
.ge-code .c{color:var(--ge-green)}
.ge-code .kw{color:#0F5FA6;font-weight:700}
.ge-code .hole{background:var(--ge-cream);border-bottom:2px dotted var(--ge-amber);padding:0 .5em;cursor:pointer;border-radius:3px;font-weight:700;color:#8A5B00}
.ge-code .hole.shown{background:var(--ge-red-l);border-bottom-color:var(--ge-red);color:var(--ge-red)}
.ge-note{border-radius:8px;padding:.85em 1em;margin:1.4em 0;font-size:.96em;border-left:5px solid}
.ge-note.info{background:#EAF0F8;border-color:var(--ge-navy2)}
.ge-note.warn{background:var(--ge-red-l);border-color:var(--ge-red)}
.ge-note.key{background:var(--ge-green-l);border-color:var(--ge-green)}
.ge-note.tp{background:var(--ge-amber-l);border-color:var(--ge-amber)}
.ge-note .t{display:block;font-weight:700;margin-bottom:.3em;color:var(--ge-navy)}
.ge-note ol,.ge-note ul{margin:.4em 0 0 1.1em}
.ge-obj{background:var(--ge-green-l);border:1px solid var(--ge-green);border-radius:10px;padding:.9em 1.1em;margin:1.4em 0}
.ge-obj .t{font-weight:700;color:var(--ge-green);margin-bottom:.4em;display:block}
.ge-obj ul{margin:0 0 0 1.1em}
.ge-fig{margin:1.5em 0;text-align:center}
.ge-fig img{max-width:100%;height:auto;border:1px solid var(--ge-line);border-radius:8px;background:#fff}
.ge-fig figcaption{font-size:.85em;color:var(--ge-grey);font-style:italic;margin-top:.5em}
.ge-dl{border:1px solid var(--ge-line);border-radius:10px;overflow:hidden;margin:1.7em 0}
.ge-dl .h{background:var(--ge-navy);color:#fff;padding:.75em 1em;font-weight:700}
.ge-dl .b{padding:1em;background:#fff}
.ge-dl .st{display:inline-block;border-radius:20px;padding:.25em .8em;font-size:.8em;font-weight:700;margin-bottom:.7em}
.ge-dl .st.wait{background:var(--ge-amber-l);color:#8A5B00}
.ge-dl .st.ok{background:var(--ge-green-l);color:var(--ge-green)}
.ge-dl .st.no{background:var(--ge-red-l);color:var(--ge-red)}
.ge-dl a.file{display:flex;align-items:center;gap:.7em;border:1.5px solid var(--ge-line);border-radius:8px;padding:.7em .9em;margin-bottom:.5em;text-decoration:none;color:var(--ge-navy);font-weight:600}
.ge-dl a.file:hover{border-color:var(--ge-navy2);background:#F7FAFD}
.ge-dl a.file .x{background:var(--ge-red);color:#fff;border-radius:5px;font-size:.68em;padding:.2em .45em;font-weight:700}
.ge-dl a.file small{display:block;font-weight:400;color:var(--ge-grey);font-size:.82em}