/* All lesson visuals are data driven; styles remain local to their figure. */
.lesson-visual{--visual-ink:#242421;--visual-paper:#F7F6F2;--visual-line:#D7D5CC;--visual-yellow:#FFB71B;--visual-sky:#4EB3D4;box-sizing:border-box;min-width:0;max-width:100%;margin:30px 0;padding:24px;border:1px solid var(--visual-line);border-radius:10px;background:#fff;color:var(--visual-ink)}
.lesson-visual *{box-sizing:border-box}
.lesson-visual>figcaption{margin:0 0 18px;font-size:17px;font-weight:600;line-height:1.5;overflow-wrap:anywhere}
.lesson-visual-stage{min-width:0;max-width:100%}
.lesson-visual [hidden]{display:none!important}
.lesson-visual-hint,.lesson-visual-output-hint{margin:0 0 20px;font-size:14px;line-height:1.65;color:#5B5A54}
.lesson-visual-output-hint{margin:8px 0 0;font-size:13px}
.lesson-visual-fallback{font-size:14px;line-height:1.65;overflow-wrap:anywhere}
.lesson-visual-fallback pre{white-space:pre-wrap;overflow-wrap:anywhere}
.lesson-visual-button{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:42px;padding:9px 16px;border:1px solid var(--visual-line);border-radius:6px;background:#fff;color:var(--visual-ink);font:inherit;font-size:14px;font-weight:500;line-height:1.4;cursor:pointer;text-decoration:none;transition:background-color .15s,border-color .15s}
.lesson-visual-button:hover:not(:disabled){border-color:var(--visual-ink);background:var(--visual-paper)}
.lesson-visual-button:focus-visible,.lesson-visual input:focus-visible,.lesson-wave-scroll:focus-visible{outline:3px solid var(--visual-sky);outline-offset:3px}
.lesson-visual-button:disabled{cursor:default;opacity:.7}
.lesson-visual-primary{background:var(--visual-yellow);border-color:#D29512}
.lesson-visual-primary:hover:not(:disabled){background:#FFC441;border-color:#9E740C}
.lesson-visual-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.lesson-visual-metrics{display:grid;gap:1px;overflow:hidden;border:1px solid var(--visual-line);border-radius:6px;background:var(--visual-line)}
.lesson-visual-metric{min-width:0;padding:13px 16px;background:var(--visual-paper)}
.lesson-visual-metric-label{display:block;font-size:12px;line-height:1.45;overflow-wrap:anywhere;color:#5B5A54}
.lesson-visual-metric-value{display:block;margin-top:5px;font-size:21px;line-height:1.3;font-weight:550;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.lesson-visual-metric.is-valid{background:#E4F3F8}
.lesson-bits-controls{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px}
.lesson-bit{display:flex;flex-direction:column;padding:8px 2px;min-width:0;background:var(--visual-paper)}
.lesson-bit[aria-pressed=true]{background:var(--visual-yellow);border-color:#D29512}
.lesson-bit[aria-pressed=true]:hover:not(:disabled){background:#FFC441}
.lesson-bit-name{font-size:12px;font-weight:400;color:#4F4E48}
.lesson-bit-digit{font-size:27px;font-weight:550;line-height:1.15;font-variant-numeric:tabular-nums}
.lesson-bit-weight{font-size:12px;font-variant-numeric:tabular-nums}
.lesson-bits-drawing{width:100%;aspect-ratio:640/108;margin:6px 0 16px}
.lesson-bits-drawing>svg,.lesson-fifo-drawing>svg{display:block;width:100%;height:100%;overflow:visible}
.lesson-bits-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
.lesson-fifo-drawing{width:100%;aspect-ratio:640/200;margin:8px 0 18px}
.lesson-fifo-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}
.lesson-fifo-controls{display:flex;align-items:flex-end;flex-wrap:wrap;gap:18px 28px;margin-top:22px}
.lesson-fifo-input-label{display:flex;flex-direction:column;gap:8px;font-size:13px;line-height:1.4}
.lesson-fifo-input{display:block;width:140px;max-width:100%;min-height:42px;border:1px solid var(--visual-line);border-radius:6px;padding:8px 12px;background:#fff;color:var(--visual-ink);font:inherit;font-size:16px;font-variant-numeric:tabular-nums}
.lesson-fifo-input[aria-invalid=true]{border-color:#B24A3F}
.lesson-fifo-requests{display:flex;flex-direction:column;gap:12px;padding-bottom:3px}
.lesson-fifo-request{display:flex;align-items:center;gap:10px;font-size:14px;line-height:1.45;cursor:pointer}
.lesson-fifo-request>input{flex-shrink:0;appearance:auto;width:18px;height:18px;margin:0;accent-color:#9B7100}
.lesson-visual-status{min-height:1.65em;margin:16px 0 0;font-size:14px;line-height:1.65;overflow-wrap:anywhere}
.lesson-wave-scroll{max-width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;padding:8px 0 14px;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.lesson-wave-scroll>svg{display:block;max-width:none;height:auto;overflow:visible}
@media(max-width:600px){
  .lesson-visual{padding:18px 14px;margin:24px 0}
  .lesson-visual>figcaption{font-size:16px}
  .lesson-bits-controls{gap:4px}
  .lesson-bit{padding:7px 1px}
  .lesson-bit-digit{font-size:23px}
  .lesson-bit-name,.lesson-bit-weight{font-size:10px}
  .lesson-visual-metric{padding:11px 10px}
  .lesson-visual-metric-value{font-size:19px}
  .lesson-fifo-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lesson-fifo-controls{gap:18px}
}
@media(prefers-reduced-motion:reduce){.lesson-visual-button{transition:none}}

.lesson-fifo-drawing.is-narrow{aspect-ratio:320/390}
.lesson-circuit-controls{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}
.lesson-circuit-controls [aria-pressed=true]{background:var(--visual-yellow);border-color:#D29512}
.lesson-circuit-drawing{width:100%;max-width:500px;aspect-ratio:380/280;margin:0 auto}
.lesson-circuit-result{margin:12px 0 0;padding:12px 16px;border-radius:6px;background:var(--visual-paper);font-size:16px;text-align:center;font-variant-numeric:tabular-nums}
.lesson-circuit-drawing>svg,.lesson-flow-drawing>svg{display:block;width:100%;height:100%}
.lesson-flow-drawing{width:100%;max-width:100%;margin:0 auto}
