.ladder-lab{margin:1.75rem 0;padding:1rem;border:1px solid color-mix(in srgb,var(--line-2) 45%,transparent);border-radius:var(--radius);background:var(--panel)}.ll-title{margin:0 0 .75rem;font-weight:700;font-size:1.05rem;color:var(--line)}.ll-grid{display:grid;gap:1rem}@media(min-width:900px){.ll-grid{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);align-items:start}}.ll-left{display:grid;gap:1rem;min-width:0}.ll-caption{margin:.9rem 0 0;color:var(--line-2);font-size:.95rem}.ll-noscript{color:var(--line-2);font-size:.9rem;margin:0}.ll-diagram{background:var(--frame);border-radius:6px;padding:.5rem;overflow-x:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}.ladder{display:block;width:100%;height:auto;max-width:760px;margin:0 auto;user-select:none;-webkit-user-select:none}.ladder .lw{stroke:var(--line-2);stroke-width:2.5;fill:none;stroke-linecap:round}.ladder .lw.live{stroke:var(--copper);stroke-width:3.5}.ladder .rail{stroke:var(--line-2);stroke-width:4}.ladder .rail.live{stroke:var(--copper)}.ladder .plate,.ladder .bar,.ladder .stem{stroke:var(--line);stroke-width:2.5;fill:none;stroke-linecap:round}.ladder .bridge{stroke:var(--line);stroke-width:3.5;stroke-linecap:round}.ladder .ct.live .bridge,.ladder .ct.live .bar{stroke:var(--copper)}.ladder .thin{stroke:var(--line);stroke-width:1.5;fill:none}.ladder .term{fill:var(--line)}.ladder .hit{fill:transparent}.ladder .ct.press{cursor:pointer}.ladder .ct.press:hover .hit{fill:color-mix(in srgb,var(--copper) 12%,transparent)}.ladder text{font-family:var(--font-ui);fill:var(--line)}.ladder .lbl{font-size:12.5px;font-weight:600}.ladder .rl{font-size:13px;font-weight:700}.ladder .rn{font-size:12px;fill:var(--line-2);font-weight:700}.ladder .tiny{font-size:10px;fill:var(--line-2)}.ladder .tiny.fault{fill:var(--wrong);font-weight:700}.ladder .ncref{text-decoration:underline}.ladder .cl{font-size:13px;font-weight:800}.ladder .coilc{fill:var(--frame);stroke:var(--line);stroke-width:2.5}.ladder .coilglow,.ladder .lampglow{fill:transparent}.ladder .out.on .coilc{stroke:var(--copper);fill:color-mix(in srgb,var(--copper) 30%,var(--frame))}.ladder .out.on .coilglow{fill:color-mix(in srgb,var(--copper) 22%,transparent)}.ladder .out.light.on .lampglow{fill:color-mix(in srgb,var(--lamp, #fde047) 40%,transparent)}.ladder .out.light.on .lampc,.ladder .out.horn.on .coilc{fill:var(--lamp, #fde047);stroke:var(--copper)}.ladder .out.horn.on .lampglow{fill:color-mix(in srgb,#fde047 35%,transparent)}.ladder .c-green{--lamp: #34d399}.ladder .c-red{--lamp: #f87171}.ladder .c-amber{--lamp: #fbbf24}.ladder .c-white{--lamp: #fef3c7}.ladder .c-blue{--lamp: #60a5fa}.ladder .mp{fill:color-mix(in srgb,var(--frame) 40%,transparent);stroke:var(--copper-ink);stroke-width:2;cursor:pointer;stroke-dasharray:3 2}.ladder .mp:hover,.ladder .mp:focus{fill:color-mix(in srgb,var(--copper) 35%,transparent);outline:none}.ladder .mp.sel{fill:var(--copper);stroke:var(--line);stroke-dasharray:none}.ll-live{display:grid;gap:1rem}@media(min-width:620px){.ll-live{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:start}}.ll-panel{display:grid;gap:1rem}.ll-station{display:flex;flex-wrap:wrap;gap:.9rem;align-items:flex-start}.ll-pb{display:grid;justify-items:center;gap:.35rem;min-width:5rem;min-height:var(--tap);padding:.4rem .5rem;background:none;border:0;color:var(--line);font:inherit;font-weight:700;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.ll-pb .cap{width:3.4rem;height:3.4rem;border-radius:50%;background:var(--pb, #334155);border:4px solid color-mix(in srgb,var(--pb, #334155) 60%,black);box-shadow:0 5px color-mix(in srgb,var(--pb, #334155) 45%,black),0 7px 12px #00000059;transition:transform .06s ease,box-shadow .06s ease}.ll-pb.down .cap{transform:translateY(4px);box-shadow:0 1px color-mix(in srgb,var(--pb, #334155) 45%,black)}.ll-pb:focus-visible{outline:3px solid var(--copper-ink);outline-offset:3px;border-radius:10px}.ll-pb.t-green{--pb: #15803d}.ll-pb.t-red{--pb: #b91c1c}.ll-pb.t-black{--pb: #1f2937}.ll-pb.t-yellow{--pb: #ca8a04}.ll-toggle,.ll-btn{min-height:var(--tap);padding:.45rem .9rem;border-radius:var(--radius);border:1px solid color-mix(in srgb,var(--line-2) 60%,transparent);background:color-mix(in srgb,var(--print) 60%,var(--panel));color:var(--line);font:inherit;font-weight:650;cursor:pointer}.ll-toggle{display:grid;gap:.1rem;text-align:left;min-width:8.5rem}.ll-toggle .val{font-weight:500;color:var(--line-2);font-size:.9rem}.ll-toggle[aria-pressed=true]{border-color:var(--copper);background:color-mix(in srgb,var(--copper) 18%,var(--panel))}.ll-toggle[aria-pressed=true] .val{color:var(--copper-ink)}.ll-sel{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.ll-sel .nm{font-weight:700;margin-right:.3rem}.ll-sel button{min-height:var(--tap);min-width:4.2rem;padding:.4rem .8rem;border-radius:var(--radius);border:1px solid color-mix(in srgb,var(--line-2) 60%,transparent);background:transparent;color:var(--line);font:inherit;font-weight:650;cursor:pointer}.ll-sel button[aria-checked=true]{background:var(--btn-bg);color:var(--btn-ink);border-color:transparent}.ll-extras{display:flex;flex-wrap:wrap;gap:.6rem}.ll-btn.warn{border-color:#d97706}.ll-btn.warn.tripped{background:#d97706;color:#1c1206}.ll-btn.danger{background:var(--wrong);color:#fff;border-color:transparent}.ll-btn.small{min-height:44px;font-size:.9rem}.ll-btn[aria-pressed=true]{border-color:var(--copper);background:color-mix(in srgb,var(--copper) 22%,var(--panel))}.ll-meter{margin:0;padding:.6rem .8rem;border-radius:var(--radius);background:#0b1220;color:#d1fae5;font-family:var(--font-ui)}.ll-meter:empty{display:none}.ll-meter .volts{font-size:1.35rem;font-variant-numeric:tabular-nums;margin-right:.4rem;color:#6ee7b7}.ll-status{margin:0;min-height:1.2em;color:var(--wrong);font-weight:650}.ll-status:empty{display:none}.ll-motors{display:grid;gap:.75rem}.ll-motor{display:flex;gap:.75rem;align-items:center;padding:.6rem .75rem;border-radius:var(--radius);background:color-mix(in srgb,var(--print) 60%,var(--panel))}.ll-motor svg{width:3.6rem;height:3.6rem;flex:0 0 auto}.ll-motor div{display:grid;gap:.1rem}.ll-motor span{color:var(--line-2)}.ll-motor.on span{color:var(--copper-ink);font-weight:650}.ll-motor .mhousing{fill:var(--frame);stroke:var(--line-2);stroke-width:3}.ll-motor.on .mhousing{stroke:var(--copper)}.ll-motor .fan path{fill:var(--line-2)}.ll-motor.on .fan path{fill:var(--copper)}.ll-motor .hub{fill:var(--line)}.ll-motor .fan{transform-origin:32px 32px;transform-box:view-box}.ll-motor .fan.spin{animation:ll-spin .6s linear infinite}.ll-motor .fan.spin.slow{animation-duration:1.6s}.ll-motor .fan.spin.rev{animation-direction:reverse}@keyframes ll-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.ll-motor .fan.spin{animation:none}}.ll-timer{display:grid;gap:.3rem;padding:.6rem .75rem;border-radius:var(--radius);background:color-mix(in srgb,var(--print) 60%,var(--panel))}.ll-timer span{color:var(--line-2);font-size:.95rem}.ll-timer .bar{display:block;height:8px;border-radius:4px;background:color-mix(in srgb,var(--line-2) 30%,transparent);overflow:hidden}.ll-timer .bar span{display:block;height:100%;background:var(--copper)}.ll-steps{display:grid;gap:.75rem;align-content:start}.ll-steps-h,.ll-whyh{margin:0;font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:.8rem;color:var(--copper-ink)}.ll-steplist{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.ll-steplist li{display:flex;gap:.6rem;align-items:flex-start;padding:.55rem .7rem;border-radius:var(--radius);border:1px solid transparent}.ll-steplist .tick{flex:0 0 1.6rem;height:1.6rem;border-radius:50%;display:grid;place-items:center;font-family:var(--font-ui);font-weight:800;font-size:.85rem;border:2px solid var(--line-2);color:var(--line-2)}.ll-steplist li.now{border-color:var(--copper);background:color-mix(in srgb,var(--copper) 12%,transparent)}.ll-steplist li.now .tick{border-color:var(--copper-ink);color:var(--copper-ink)}.ll-steplist li.done{color:var(--line-2)}.ll-steplist li.done .tick{background:var(--correct);border-color:var(--correct);color:#06251a}.ll-steplist li.later{opacity:.6}.ll-why{display:grid;gap:.4rem;padding:.75rem .85rem;border-left:3px solid var(--correct);background:color-mix(in srgb,var(--correct) 10%,transparent);border-radius:0 var(--radius) var(--radius) 0}.ll-why:empty{display:none}.ll-why p{margin:0}.ll-done{font-weight:700;color:var(--correct)}.fault-lab{margin:1.75rem 0;display:grid;gap:1rem}.fl-head{margin:0;color:var(--copper-ink);font-weight:700;font-size:.9rem}.fl-head:empty{display:none}.fl-symptom{margin:0;padding:1rem 1.2rem;border-radius:var(--radius);background:var(--panel);border-left:4px solid var(--copper);font-size:1.15rem;font-style:italic}.fl-symptom:empty{display:none}.fl-lab{margin:0}.fl-bar{display:flex;flex-wrap:wrap;gap:.6rem}.fl-bar .go{background:var(--btn-bg);color:var(--btn-ink);border-color:transparent}.fl-msg{display:grid;gap:.4rem}.fl-msg:empty{display:none}.fl-msg p{margin:0;max-width:var(--maxw)}.fl-msg.no{padding:.75rem .9rem;border-left:3px solid var(--wrong);background:color-mix(in srgb,var(--wrong) 10%,transparent);border-radius:0 var(--radius) var(--radius) 0}.fl-msg.yes,.fl-msg.shown{padding:.75rem .9rem;border-left:3px solid var(--correct);background:color-mix(in srgb,var(--correct) 10%,transparent);border-radius:0 var(--radius) var(--radius) 0}.fl-msg.shown{border-left-color:var(--copper);background:color-mix(in srgb,var(--copper) 10%,transparent)}.ll-diagram.picking .ladder [data-el]{cursor:crosshair}.ll-diagram.picking .ladder [data-el]:hover .hit,.ll-diagram.picking .ladder [data-el]:hover .coilglow,.ll-diagram.picking .ladder [data-el]:hover .lampglow{fill:color-mix(in srgb,var(--copper) 25%,transparent)}.ll-diagram.picking{outline:3px dashed var(--copper-ink);outline-offset:2px}.ladder .picked .hit,.ladder .picked .coilglow{fill:color-mix(in srgb,var(--wrong) 30%,transparent)}.ladder .picked .plate,.ladder .picked .bar,.ladder .picked .coilc{stroke:var(--wrong)}
