/* Chapter-local layout and diagrams; Electricity owns the design tokens. */
.bio-root .bio-body{max-width:1050px;width:100%;margin:auto;padding:20px 22px 48px;flex-shrink:0}
.bio-root h2,.bio-root h3{color:var(--ec-text);line-height:1.4}.bio-root h2{font-size:22px}.bio-root h3{font-size:18px}
.bio-root .bio-stage,.bio-root .bio-caption,.bio-root .bio-card{border:1px solid var(--ec-border);border-radius:12px;background:var(--ec-deep);padding:20px;margin:18px 0}
.bio-root .bio-caption>p:last-child{font-size:20px;line-height:1.6;margin:0}.bio-root .bio-answer p{line-height:1.7}
.bio-root .bio-stage svg,.bio-root .bio-answer svg{display:block;width:100%;max-height:470px;margin:auto}.bio-root svg{overflow:visible}
.bio-root .label{fill:var(--ec-light);font:600 24px Manrope,sans-serif}.bio-root .line,.bio-root .branch,.bio-root .arrow{fill:none;stroke:var(--ec-mint);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.bio-root .arrow{color:var(--ec-mint)}
.bio-root .faint{fill:none;stroke:var(--ec-muted);stroke-width:2}.bio-root .arrow.faint{opacity:.38}.bio-root .active{stroke:var(--ec-cream);color:var(--ec-cream);stroke-width:6}
.bio-root .tissue,.bio-root .body{fill:var(--ec-surface);stroke:var(--ec-secondary);stroke-width:2}.bio-root .body{fill:var(--ec-deep)}.bio-root .selected{stroke:var(--ec-cream);stroke-width:4;fill:var(--ec-hover)}
.bio-root .nucleus{fill:var(--ec-deep);stroke:var(--ec-mint);stroke-width:2}.bio-root .signal,.bio-root .leaf{fill:var(--ec-mint)}.bio-root .chemical,.bio-root .seed,.bio-root .sun{fill:var(--ec-cream)}
.bio-root .axon{fill:none;stroke:var(--ec-mint);stroke-width:7}.bio-root .sheath{fill:var(--ec-surface);stroke:var(--ec-secondary);stroke-width:2}.bio-root .organ{fill:var(--ec-hover);stroke:var(--ec-secondary);stroke-width:2}.bio-root .gland-shape{fill:none;stroke:var(--ec-cream);stroke-width:12}
.bio-root .muscle{fill:var(--ec-hover);stroke:var(--ec-mint);stroke-width:3}.bio-root .muscle-line{fill:none;stroke:var(--ec-cream);stroke-width:15;stroke-linecap:round}.bio-root .arm{fill:none;stroke:var(--ec-secondary);stroke-width:25;stroke-linecap:round}.bio-root .heat{fill:var(--ec-cream)}
.bio-root .protein{fill:none;stroke:var(--ec-cream);stroke-width:4}.bio-root .stem{fill:none;stroke:var(--ec-mint);stroke-width:9;stroke-linecap:round}.bio-root .root{fill:none;stroke:var(--ec-secondary);stroke-width:5;stroke-linecap:round}.bio-root .growth{fill:none;stroke:var(--ec-mint);stroke-width:5;stroke-linecap:round}.bio-root .support{fill:var(--ec-muted)}
.bio-root .glass,.bio-root .mesh{fill:none;stroke:var(--ec-secondary);stroke-width:2}.bio-root .box{fill:none;stroke:var(--ec-muted);stroke-width:5}.bio-root .water-fill{fill:var(--ec-mint);opacity:.13}.bio-root .water{fill:var(--ec-mint)}.bio-root .soil{fill:var(--ec-surface);stroke:var(--ec-muted);stroke-width:2}
.bio-root .skull{fill:none;stroke:var(--ec-cream);stroke-width:6}.bio-root .fluid{fill:none;stroke:var(--ec-mint);stroke-width:6}.bio-root .selected-line{fill:none;stroke:var(--ec-cream);stroke-width:2}
.bio-root .bio-legend,.bio-root .bio-note{font-size:14px;line-height:1.6;color:var(--ec-secondary)}.bio-root .bio-observe{border-left:2px solid var(--ec-mint);padding:12px 18px;line-height:1.6}
.bio-root .bio-controls{display:flex;flex-wrap:wrap;gap:12px}.bio-root .bio-control{display:flex;flex-direction:column;gap:7px;flex:1;min-width:0;font-size:14px;color:var(--ec-secondary);max-width:100%}.bio-root select{color:var(--ec-text);font:inherit;font-size:16px;background:var(--ec-surface);border:1px solid var(--ec-border);border-radius:10px;padding:12px;max-width:100%;width:100%;min-width:0}
.bio-root .bio-compare,.bio-root .bio-revision{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.bio-root .bio-revision{grid-template-columns:repeat(3,minmax(0,1fr))}.bio-root .bio-muted{opacity:.65}
.bio-root .bio-flow{list-style:none;padding:0;margin:10px 0;display:grid;gap:24px}.bio-root .bio-flow li{border:1px solid var(--ec-border);border-radius:10px;position:relative;padding:16px;font-size:18px;color:var(--ec-secondary);background:var(--ec-deep)}.bio-root .bio-flow li+li:before{content:'↓';position:absolute;top:-27px;left:50%;color:var(--ec-mint)}.bio-root .bio-flow li.lit{border-color:var(--ec-mint);color:var(--ec-text);background:var(--ec-surface)}.bio-root .bio-flow span{font-size:12px;color:var(--ec-mint);margin-right:12px}
.bio-root .bio-meter>div{height:24px;border:1px solid var(--ec-border);border-radius:12px;overflow:hidden;margin:12px 0}.bio-root .bio-meter i{display:block;height:100%;background:var(--ec-mint);transition:width .7s}.bio-root .bio-meter strong{display:block;text-align:right;font-weight:500}
.bio-root table{border-collapse:collapse;width:100%;table-layout:fixed}.bio-root th,.bio-root td{border:1px solid var(--ec-border);padding:12px;text-align:left;vertical-align:top;overflow-wrap:anywhere}.bio-root th:first-child{width:58px}.bio-root .bio-result,.bio-root .bio-explanation{font-size:14px;line-height:1.5;color:var(--ec-mint)}
.bio-root .bio-count{margin-left:auto;font-size:12px}.bio-root .ec-controls>[data-action=next]{margin-left:auto}.bio-root .ec-chapter-title{white-space:normal}.bio-root summary{font-weight:600;cursor:pointer;padding:6px 0}.bio-root .bio-map-links,.bio-root .bio-question-links{display:grid}.bio-root .bio-map-links a,.bio-root .bio-question-links a{padding:12px;border-bottom:1px solid var(--ec-border);color:var(--ec-light);text-decoration:none;line-height:1.5}.bio-root .bio-map-links small{float:right;color:var(--ec-secondary)}.bio-root dd{margin:0 0 12px;color:var(--ec-secondary)}.bio-root dt{font-weight:600}.bio-root .bio-answer{margin-top:24px}
.bio-root .pulse{animation:bio-pulse 1.5s ease-in-out infinite}@keyframes bio-pulse{50%{opacity:.45}}
@media(max-width:600px){.bio-root .bio-body{padding:16px 16px 40px}.bio-root .ec-heading{padding:20px 16px 0}.bio-root .bio-stage{padding:10px}.bio-root .bio-card,.bio-root .bio-caption{padding:16px}.bio-root .bio-caption>p:last-child{font-size:18px}.bio-root .bio-compare,.bio-root .bio-revision{grid-template-columns:1fr}.bio-root .ec-chapter-title{font-size:12px}.bio-root .ec-action{padding:10px 12px}.bio-root .bio-controls{display:grid}.bio-root table,.bio-root tbody,.bio-root tr,.bio-root td{display:block}.bio-root thead{display:none}.bio-root tr{margin:16px 0;border:1px solid var(--ec-border);border-radius:10px;overflow:hidden}.bio-root tr>th{display:block;width:100%;border:0;background:var(--ec-surface)}.bio-root tr>th:before{content:'Row '}.bio-root td{border:0;border-top:1px solid var(--ec-border)}.bio-root td:before{content:attr(data-label);display:block;color:var(--ec-mint);font-size:12px;margin-bottom:6px}.bio-root .bio-table{padding:12px}}
@media(min-width:1500px){.bio-root .bio-body{max-width:1280px}.bio-root .bio-stage svg{max-height:550px}.bio-root .bio-caption>p:last-child{font-size:23px}}
@media(prefers-reduced-motion:reduce){.bio-root *{animation:none!important;transition:none!important}}

.bio-root .old-stem{fill:none;stroke:var(--ec-secondary);stroke-width:8;stroke-linecap:round}

.bio-root .grow-trace{stroke-dasharray:1000;animation:bio-grow 1.2s ease-out}@keyframes bio-grow{from{stroke-dashoffset:1000}to{stroke-dashoffset:0}}.bio-root .bio-loop-return{color:var(--ec-mint);border-left:3px solid var(--ec-mint);border-bottom:3px solid var(--ec-mint);border-radius:0 0 0 16px;padding:15px}

@media(min-width:1000px){.bio-root .bio-teaching:has(>.bio-stage){display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,1fr);gap:20px;align-items:start}.bio-root .bio-teaching>.bio-stage{grid-column:1;grid-row:1/3}.bio-root .bio-teaching>.bio-caption{grid-column:2;margin-bottom:0}.bio-root .bio-teaching>.ec-actions{grid-column:2}.bio-root .bio-teaching .bio-stage svg{max-height:440px}.bio-root .bio-teaching .bio-caption>p:last-child{font-size:20px}.bio-root .bio-teaching>.bio-stage>.bio-revision{grid-template-columns:1fr}.bio-root .bio-teaching>.bio-stage>.bio-compare{grid-template-columns:1fr}}
