.lesson-article { min-width: 0; }
.lesson-prose { max-width: 84ch; margin-inline: auto; overflow-wrap: anywhere; }
.lesson-prose:has([data-diagram-id]) { max-width: none; }
.lesson-prose:has([data-diagram-id]) > :is(p,ul,ol,blockquote) { max-width: 84ch; }
.lesson-source { margin-top: 1.15rem; border-top: 1px solid var(--line); padding-top: .85rem; }
.lesson-toc summary, .lesson-source > summary, .visual-block summary { font-weight: 650; }
.lesson-toc ul { columns: 2; margin-bottom: 0; }
.lesson-toc li { break-inside: avoid; margin-bottom: .24rem; }
.visual-lesson { display: grid; grid-template-columns: minmax(0,1fr); gap: .7rem; max-width: 1060px; margin-inline: auto; }
.visual-lesson h2, .visual-lesson p, .visual-lesson .diagram-frame { margin: 0; }
.visual-lesson > p { max-width: 76ch; }
.visual-block { border: 1px solid var(--line); border-radius: .55rem; padding: .8rem; min-width: 0; }
.visual-block h3 { margin: 0 0 .5rem; }
.visual-block p { margin: .4rem 0; }
.visual-tables { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,180px),1fr)); gap: .8rem; }
.visual-tables h4 { margin: .35rem 0; }
.visual-table-wrap { overflow: auto; }
.visual-block table { width: 100%; }
.visual-block th { text-align: left; background: var(--soft); }
.visual-block li code { overflow-wrap: anywhere; }
.visual-source { font-size: .82rem; }
.simulation-tasks { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,104px),1fr)); gap: .45rem; }
.simulation-tasks > div { display: grid; gap: .18rem; border: 1px solid var(--line); border-radius: .4rem; padding: .55rem; background: var(--soft); }
.simulation-tasks > div span { font-size: .85rem; overflow-wrap: anywhere; }
.simulation-bar { display: grid; grid-template-columns: 1.8rem minmax(0,1fr) 2rem; align-items: center; gap: .5rem; margin-block: .3rem; }
.simulation-bar > div { height: 1.05rem; border-radius: .35rem; background: var(--line); overflow: hidden; }
.simulation-bar > div > span { display: block; height: 100%; background: var(--accent); }
.simulation-bar:first-child > div > span { background: var(--warn); }
.simulation-plan { display: flex; flex-wrap: wrap; list-style: none; gap: .6rem; padding: 0; }
.simulation-plan li { flex: 1 1 10rem; display: grid; gap: .25rem; padding: .6rem; border: 1px solid var(--line); border-radius: .45rem; background: var(--soft); }
.simulation-plan li span { font-size: .86rem; }
@media(max-width:680px) { .lesson-toc ul { columns: 1; } }
