@charset "UTF-8";
/* ---------- Théorie de la lumière : leçon (thème de la page) + labo (sombre fixe, comme du matériel) ---------- */
.th{padding-block:30px 34px;border-bottom:1px solid var(--line);scroll-margin-top:12px}
.th-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:20px;align-items:start}
.th-grid .lesson{min-width:0}
@media (min-width:1061px){.th-grid .lab{position:sticky;top:12px}}
.th-ret{margin:.9rem 0 .2rem}
.th-q{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:.5rem 0 0;background:var(--surface)}
.th-q legend{font-weight:700;padding:0 4px;font-size:.98rem}
.th-q label{display:flex;gap:10px;align-items:flex-start;padding:6px 8px;border-radius:7px;cursor:pointer;font-size:.95rem}
.th-q label:hover{background:var(--surface-2)}
.th-q input{margin-top:4px;accent-color:var(--accent)}
.th-q label.right{background:var(--ok-soft)}
.th-q label.wrong{background:var(--bad-soft)}
.th-q .fb{font-size:.92rem;margin:.4rem 0 0;padding:8px 10px;border-radius:7px;background:var(--surface-2)}
.th-q .fb b.y{color:var(--ok)} .th-q .fb b.n{color:var(--bad)}
.th-rose{margin:.6rem 0}
.th-rose td:first-child{font-weight:700}
.th-rose th,.th-rose td{padding:6px 10px;font-size:.88rem}

div.lab{background:#10161D;border:1px solid #26303B;border-radius:12px;padding:10px;color:#DCE3EA;display:grid;gap:10px;min-width:0;font-size:.95rem}
.lab-head{display:flex;gap:10px;align-items:baseline;font-family:var(--f-display);text-transform:uppercase;letter-spacing:.08em;font-size:.82rem;color:#8FA0B2;font-weight:600;padding:2px 2px 0}
.lab-head b{color:#F4F6F8;letter-spacing:.04em;font-size:.95rem}
.lab-body{display:grid;gap:10px;min-width:0}
.lab-task{order:-1}
.lab-task span{display:block;background:#05080C;border:1px solid #33404D;border-radius:7px;padding:7px 10px;font-size:.88rem;line-height:1.4}
.lab-task b{color:#F2A65A;font-family:var(--f-display);letter-spacing:.04em}
.lab-task span.ok{border-color:#63CF93} .lab-task span.ok b{color:#63CF93}
.lab .hl{outline:2px solid #F2A65A;outline-offset:2px;border-radius:6px;animation:hlp 1.4s ease-in-out infinite}
@media (prefers-reduced-motion: reduce){.lab .hl{animation:none}}
.th-viz{border-radius:9px}

.lab-ctl{display:grid;gap:8px;background:#0B1015;border:1px solid #26303B;border-radius:9px;padding:10px}
.lab-row{display:grid;grid-template-columns:minmax(0,10.5rem) minmax(0,1fr) minmax(5.5rem,auto);gap:10px;align-items:center;font-size:.9rem;padding:2px 4px;border-radius:6px}
.lab-row input[type=range]{width:100%;accent-color:#F2A65A;margin:0;min-width:0}
.lab-row.dis{opacity:.4}
.lab-l{color:#B8C3CF;font-size:.86rem;line-height:1.3}
.lab-v{font-family:var(--f-mono);font-size:.8rem;color:#F2C089;text-align:right;white-space:nowrap}
.lab-seg{display:grid;gap:5px}
.lab-btns{display:flex;flex-wrap:wrap;gap:5px}
.lab .sbt{font-size:.8rem;padding:5px 9px}
.lab .sbt.sm{font-size:.72rem;padding:3px 7px}
.lab .sbt.wide{justify-self:start;padding:7px 14px;font-size:.88rem}
.lab .sbt:disabled{opacity:.5;cursor:default}
.lab .sbt[style*="--sw"]::before{content:"";display:inline-block;width:.75em;height:.75em;border-radius:50%;background:var(--sw);margin-right:6px;vertical-align:-1px;box-shadow:0 0 0 1px rgba(255,255,255,.25)}
.lab-chk{display:flex;gap:10px;align-items:center;font-size:.9rem;cursor:pointer;padding:3px 4px;border-radius:6px}
.lab-chk input{width:18px;height:18px;accent-color:#F2A65A;margin:0}
.lab-note{margin:0;font-size:.85rem;color:#98A6B5;line-height:1.45}
.lab-note .bad,.lab-status .bad,.lab-rng.bad{color:#F28C84} .lab-note .ok,.lab-status .ok{color:#63CF93}
.lab-read{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:6px}
.lab-read div{background:#0B1015;border:1px solid #26303B;border-radius:8px;padding:7px 9px;min-width:0}
.lab-read span{display:block;font-size:.74rem;color:#8FA0B2;font-family:var(--f-display);text-transform:uppercase;letter-spacing:.06em}
.lab-read b{font-family:var(--f-display);font-size:1.25rem;color:#F4F6F8;letter-spacing:.02em}
.lab-cv,.lab-svg{display:block;width:100%;height:auto;border-radius:9px;background:#030406}
.lab-split{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:10px;align-items:center}
.lab-swatch{height:150px;border-radius:9px;border:1px solid #26303B;box-shadow:0 0 40px -6px currentColor}
.lab-swatch.off{background-image:repeating-linear-gradient(45deg,transparent 0 8px,rgba(255,255,255,.04) 8px 16px)}
.lab-info{display:grid;gap:4px;min-width:0}
.lab-info b{font-family:var(--f-display);font-size:1.7rem;line-height:1.05;color:#F4F6F8}
.lab-info span{font-family:var(--f-mono);color:#F2C089;font-size:.86rem}
.lab-info small{color:#98A6B5;font-size:.84rem;line-height:1.4}
.lab-chip{display:block;width:100%;height:46px;border-radius:7px;border:1px solid #33404D}
.lab-spec{position:relative;height:30px;border-radius:6px;border:1px solid #26303B}
.lab-mk{position:absolute;top:-5px;bottom:-5px;width:3px;margin-left:-1.5px;background:#F4F6F8;border-radius:2px;box-shadow:0 0 0 1px #05080C}
.lab-scale{display:flex;justify-content:space-between;gap:6px;font-family:var(--f-mono);font-size:.68rem;color:#8FA0B2;margin-top:-4px}
.lab-patches{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.lab-patch{display:grid;grid-template-rows:34px 34px auto;border-radius:7px;overflow:hidden;border:1px solid #26303B;background:#0B1015}
.lab-patch span{font-size:.7rem;color:#B8C3CF;padding:3px 4px;text-align:center;line-height:1.2}
.lab-wall{position:relative;height:180px;border-radius:9px;background:#080A0D;display:grid;grid-template-columns:1fr 1fr;place-items:center;overflow:hidden}
.lab-pool{width:82%;aspect-ratio:1/1;max-height:160px;border-radius:50%}
.lab-tag{position:absolute;left:10px;bottom:8px;font-family:var(--f-mono);font-size:.72rem;color:#B8C3CF}
.lab-tag.r{left:auto;right:10px}
.lab-btns.wrap .sbt{font-size:.74rem}
.lab-q{background:#05080C;border:1px solid #33404D;border-radius:8px;padding:9px 11px;display:grid;gap:3px}
.lab-q span{font-family:var(--f-display);text-transform:uppercase;letter-spacing:.08em;font-size:.76rem;color:#F2A65A}
.lab-q b{font-weight:400;color:#F4F6F8;line-height:1.4}
.lab-q small{font-size:.85rem;color:#F2C089}
.lab-q.ok{border-color:#63CF93} .lab-q.ok small{color:#63CF93}
.lab-q.no{border-color:#F28C84} .lab-q.no small{color:#F28C84}
.lab-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.lab-card{font:inherit;display:grid;gap:3px;justify-items:center;text-align:center;background:#0B1015;border:1px solid #33404D;border-radius:8px;padding:6px;color:#DCE3EA;cursor:pointer}
.lab-card svg{width:100%;height:auto;border-radius:5px}
.lab-card b{font-family:var(--f-display);font-size:1rem;letter-spacing:.04em}
.lab-card small{font-size:.72rem;color:#8FA0B2}
.lab-card:hover{border-color:#5CC8D1}
.lab-card.on{border-color:#F2A65A;background:#2A1D0F}
.lab-detail{font-size:.88rem;line-height:1.45;color:#C9D2DC;min-height:1em}
.lab-detail b{font-family:var(--f-display);font-size:1.1rem;color:#F4F6F8}
.lab-detail p{margin:.25rem 0}
.lab-detail span{color:#F2A65A;font-weight:700}
.lab-grid2{display:grid;gap:8px}
.lab-portrait{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:center}
.lab-portrait canvas{width:100%;max-width:300px;justify-self:center;aspect-ratio:220/264;border-radius:9px;background:#000}
.lab-cap{margin:0;font-size:.9rem;line-height:1.45;color:#DCE3EA}
.lab-par{height:170px;border-radius:9px;background:#05070A;display:grid;place-items:center;border:1px solid #26303B}
.lab-par i{width:150px;height:150px;border-radius:50%}
.lab-frame{display:grid;gap:6px;min-width:0}
.lab-slots{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;align-items:end;height:120px}
.lab-slots div{display:grid;grid-template-rows:1fr auto auto;height:100%;background:#0B1015;border:1px solid #26303B;border-radius:5px;padding:3px;text-align:center;min-width:0}
.lab-slots i{align-self:end;display:block;background:#F2A65A;border-radius:2px;min-height:1px}
.lab-slots b{font-family:var(--f-mono);font-size:.68rem;color:#F4F6F8}
.lab-slots small{font-family:var(--f-mono);font-size:.62rem;color:#8FA0B2}
.lab-slots .more b{align-self:center;color:#8FA0B2}
.lab-uni{display:grid;grid-template-columns:repeat(32,minmax(0,1fr));gap:1px;background:#05080C;border:1px solid #26303B;border-radius:6px;padding:3px}
.lab-uni i{aspect-ratio:1/1;background:#1A232D;border-radius:1px}
.lab-uni i.bad{outline:1px solid #F28C84}
.lab-list{display:grid;gap:6px}
.lab-fx{display:grid;grid-template-columns:auto auto auto minmax(0,1fr);gap:6px 10px;align-items:center;background:#0B1015;border:1px solid #26303B;border-left:4px solid var(--c);border-radius:7px;padding:6px 8px;font-size:.86rem}
.lab-fx b{font-family:var(--f-display);letter-spacing:.03em}
.lab-addr{display:inline-flex;gap:6px;align-items:center;font-size:.8rem;color:#8FA0B2}
.lab-addr input{width:4.6rem;font:inherit;font-family:var(--f-mono);font-size:.85rem;background:#05080C;color:#F4F6F8;border:1px solid #33404D;border-radius:5px;padding:3px 6px}
.lab-rng{font-family:var(--f-mono);font-size:.74rem;color:#8FA0B2}
.lab-status{background:#0B1015;border:1px solid #26303B;border-radius:8px;padding:8px 10px;font-size:.88rem}
.lab-status ul{margin:.3rem 0 0;padding-left:1.1rem}
.lab-status li{margin:.15rem 0;color:#F2C089}
.lab-unis{display:grid;gap:6px}
.lab-u{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 8px;align-items:center}
.lab-u span{font-family:var(--f-mono);font-size:.74rem;color:#B8C3CF;grid-column:1 / -1}
.lab-u div{position:relative;height:18px;background:#05080C;border:1px solid #26303B;border-radius:4px;overflow:hidden}
.lab-u i{position:absolute;top:2px;bottom:2px;border-right:1px solid #05080C}
.lab-u i.t-ly{background:#5CC8D1} .lab-u i.t-par{background:#F2A65A} .lab-u i.t-bar{background:#B48CF2}
.lab-u small{font-family:var(--f-mono);font-size:.7rem;color:#8FA0B2}
.lab-flow{display:flex;flex-wrap:wrap;gap:4px;align-items:stretch}
.lab-flow div{flex:1 1 90px;background:#0B1015;border:1px solid #26303B;border-radius:7px;padding:6px 8px;min-width:0}
.lab-flow div.on{border-color:#F2A65A;background:#2A1D0F}
.lab-flow b{display:block;font-family:var(--f-display);text-transform:uppercase;letter-spacing:.06em;font-size:.8rem}
.lab-flow span{font-size:.76rem;color:#98A6B5}
.lab-flow i{align-self:center;font-style:normal;color:#566270}
.lab-cues{overflow-x:auto;border:1px solid #26303B;border-radius:8px;background:#0B1015}
.lab-cues table{width:100%;border-collapse:collapse;font-family:var(--f-mono);font-size:.78rem}
.lab-cues th{text-align:left;padding:6px 8px;color:#8FA0B2;font-weight:600;border-bottom:1px solid #26303B;background:transparent;text-transform:none;letter-spacing:0;font-family:var(--f-mono);font-size:.74rem}
.lab-cues td{padding:6px 8px;border-top:1px solid #1A232D;color:#DCE3EA;vertical-align:top}
.lab-cues tr.cur td{background:#2A1D0F;color:#F2C089}
.lab-cues td.st{font-weight:600}
.lab-cues td.tr{color:#B48CF2;font-style:italic}
.lab-cues td.tr small{font-style:normal;color:#8FA0B2}
.lab-cues td.off{color:#566270}
.lab-cues .pr{color:#5CC8D1;border:1px solid #5CC8D1;border-radius:3px;padding:0 4px}
.lab-lamps{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.lab-lamps div{display:grid;justify-items:center;gap:4px;background:#05070A;border:1px solid #26303B;border-radius:8px;padding:10px}
.lab-lamps i{width:56px;height:56px;border-radius:50%;opacity:.08}
.lab-lamps div:first-child i{background:radial-gradient(circle,#FFB3A8,#F28C84 45%,transparent 70%)}
.lab-lamps div:last-child i{background:radial-gradient(circle,#C9F7DA,#63CF93 45%,transparent 70%)}
.lab-lamps span{font-size:.8rem;color:#B8C3CF}

@media (max-width:1060px){
  .th-grid{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:640px){
  .lab-row{grid-template-columns:minmax(0,1fr) auto;gap:2px 8px}
  .lab-row input[type=range]{grid-column:1 / -1;grid-row:2}
  .lab-split,.lab-portrait{grid-template-columns:minmax(0,1fr)}
  .lab-patches{grid-template-columns:repeat(3,minmax(0,1fr))}
  .lab-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lab-fx{grid-template-columns:minmax(0,1fr) auto}
  .lab-fx .lab-rng{grid-column:1 / -1}
  .lab-swatch{height:110px}
  .lab-portrait canvas{max-width:240px}
}

/* Électricité */
.lab-lines{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.lab-line{background:#05080C;border:1px solid #33404D;border-radius:9px;padding:9px 10px;display:grid;gap:6px;align-content:start;min-width:0}
.lab-line.off{border-color:#F28C84;background:#1A0C0C}
.ll-h{display:flex;justify-content:space-between;gap:8px;align-items:baseline;font-family:var(--f-display);text-transform:uppercase;letter-spacing:.06em}
.ll-h b{color:#F4F6F8} .ll-h span{font-size:.74rem;color:#8FA0B2}
.ll-gauge{position:relative;height:10px;border-radius:5px;background:#1E2630;overflow:hidden}
.ll-gauge i{display:block;height:100%;width:0;transition:width .25s}
.ll-gauge em{position:absolute;top:-2px;bottom:-2px;left:80%;width:2px;background:#F4F6F8;opacity:.7}
.ll-v{font-size:.84rem;color:#B8C3CF;line-height:1.4} .ll-v b{color:#F4F6F8} .ll-v .bad{color:#F28C84} .ll-v .warn{color:#F2C089}
.ll-lamps{display:flex;flex-wrap:wrap;gap:4px;min-height:14px} .ll-lamps i{width:12px;height:12px;border-radius:50%;background:var(--c);box-shadow:0 0 6px var(--c)}
.lab-line.off .ll-lamps i{background:#2A2F36;box-shadow:none}
.ll-lamps small{color:#566270;font-size:.78rem}
.lab-elec{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px 10px;align-items:center}
.lab-elec>span:nth-child(-n+3){font-family:var(--f-display);text-transform:uppercase;letter-spacing:.06em;font-size:.74rem;color:#8FA0B2;text-align:center}
.le-n b{display:block;font-weight:700;font-size:.88rem} .le-n small{color:#8FA0B2;font-size:.78rem}
.le-c{display:inline-flex;align-items:center;gap:5px} .le-c output{min-width:1.4em;text-align:center;font-family:var(--f-mono)}
/* Plan de feu */
.lab-plain{list-style:none;padding:0;margin:0;display:grid;gap:3px}
.lab-plain li{color:#B8C3CF;margin:0} .lab-plain b{color:#F4F6F8}
/* Fiche technique */
.lab-sheets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.lab-sheet{font:inherit;text-align:left;background:#0B1015;border:1px solid #33404D;border-radius:8px;padding:8px 9px;color:#DCE3EA;cursor:pointer;display:grid;gap:2px;min-width:0}
.lab-sheet:hover{border-color:#8FA0B2}
.lab-sheet>b{font-family:var(--f-display);letter-spacing:.04em;font-size:1rem}
.lab-sheet>small{color:#F2A65A;font-size:.78rem}
.lab-sheet dl{margin:4px 0 0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:1px 6px;font-size:.76rem}
.lab-sheet dt{color:#8FA0B2} .lab-sheet dd{margin:0;color:#F4F6F8;font-family:var(--f-mono);overflow-wrap:anywhere}
.lab-sheet.ok{border-color:#63CF93;box-shadow:0 0 0 1px #63CF93} .lab-sheet.no{border-color:#F28C84}
@media (max-width:640px){
  .lab-lines{grid-template-columns:minmax(0,1fr)}
  .lab-sheets{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.lab-ctl.lab-two{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}
@media (max-width:640px){ .lab-ctl.lab-two{grid-template-columns:minmax(0,1fr)} }
