/*! BIO-ORIGIN project=turtle-epigenetics-3d-lab; version=1.2.0-web.1; original=覃晓琳 SCNU; revision=生物学2077; official=https://bio2077.cn/; third-party licenses unchanged */
.learning-path{margin:0 0 12px;padding:10px 14px;background:#e9efdf;border:1px solid #c7d4b9;border-radius:10px}.learning-path-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.learning-purpose{display:flex;align-items:center;gap:10px;min-width:0}.learning-purpose strong{font-size:1rem}.role-tag{font-size:.73rem;font-weight:700;padding:3px 7px;background:#d7e5c6;border-radius:4px;white-space:nowrap}.learning-modes{display:flex;gap:5px;flex-shrink:0}.learning-modes button{font-size:.8rem;min-height:38px;padding:4px 10px}.learning-steps{display:flex;gap:10px;list-style:none;margin:8px 0 0;padding:0}.learning-steps li{display:flex;gap:6px;align-items:center;font-size:.83rem;color:#6d7b6b;flex:1}.learning-steps li span{display:grid;place-items:center;width:24px;height:24px;flex-shrink:0;border-radius:50%;border:1px solid #aebda4;background:#f7f8ee;font-size:.75rem}.learning-steps li.current{font-weight:750;color:#17523b}.learning-steps li.current span{background:#17523b;color:white;border-color:#17523b}.learning-steps li.done span{background:#c2d5a7;border-color:#9fb982;color:#245336}.lesson-panel{display:none}.learner-guided .rail>:not(.lesson-panel){display:none!important}.learner-guided .lesson-panel{display:flex;flex-direction:column;gap:10px;height:100%;min-width:0}.lesson-step-label{font-size:.82rem;letter-spacing:.05em;color:#66804e;font-weight:700}.lesson-panel h2{font-size:1.3rem;line-height:1.35}.lesson-prompt{font-size:1.04rem;line-height:1.55}.lesson-buttons{display:grid;gap:8px}.lesson-buttons button{min-height:46px;font-size:1rem;text-align:left;padding:9px 12px;line-height:1.4}.lesson-buttons .primary{font-size:1.05rem;text-align:center}.lesson-choice::before{content:'○';margin-right:8px;color:#829774}.lesson-choice[aria-pressed=true]::before{content:'●';color:#fff}.lesson-tip{font-size:.88rem;line-height:1.5;background:#f1f3e7;border-left:3px solid #92b45d;padding:8px 10px}.operation-help{margin-top:auto;font-size:.84rem;color:#58715f}.operation-help summary{font-weight:650;cursor:pointer;padding:8px 0}.operation-help p{margin:7px 0;line-height:1.6}.learner-guided .evidence{display:none}.learning-results{display:none}.learner-guided .learning-results{display:block;border-top:1px solid #c7d4bb;margin-top:12px;padding:10px 0}.learning-results h2{font-size:1rem;margin-bottom:7px}.learning-results p{font-size:.94rem;line-height:1.55}.learning-results button{margin-top:9px;font-size:.9rem}.learning-results table{width:100%;border-collapse:collapse;font-size:.92rem;background:#fffdf3}.learning-results th,.learning-results td{text-align:left;padding:8px 10px;border-bottom:1px solid #d3ddca}.learning-results input,.learning-results textarea{width:100%;font-size:1rem;border:1px solid #b7c8ac;background:#fffdf5;border-radius:6px;padding:10px;min-height:80px;margin-top:8px}.lesson-note{font-size:.85rem;line-height:1.5;color:#5e7361}.term-list{display:grid;gap:7px}.term{display:grid;grid-template-columns:auto 1fr;gap:8px;border-bottom:1px solid #d6decd;padding:5px 0;font-size:.85rem;line-height:1.45}.term strong{color:#25553e}.lesson-target{outline:3px solid #a0bd60;outline-offset:3px}.lesson-observation{padding:9px 10px;background:#edf3e3;border-radius:7px;font-size:.97rem;line-height:1.5}.lesson-error{padding:9px 10px;background:#f7eddb;border-left:3px solid #b58542;font-size:.93rem;line-height:1.5}.model-callout{position:absolute;z-index:3;pointer-events:none;font-size:.83rem;font-weight:700;background:#fffef0f2;border:1px solid #9bb67a;color:#2b583d;border-radius:5px;padding:4px 8px;max-width:170px;transform:translate(-50%,-100%);box-shadow:0 2px 7px #29432418}.model-callout::after{content:'';position:absolute;bottom:-7px;left:50%;border:6px solid transparent;border-top-color:#91ac70;border-bottom:0}.learner-guided .stage-title{font-size:1rem}.learner-guided .stage-top{right:108px}.learner-guided .workspace{grid-template-columns:minmax(0,1fr) 355px}.learner-guided .stage{height:clamp(315px,calc(100dvh - 350px),560px)}.learner-guided .rail{padding:14px}.learner-guided .footer{font-size:.72rem}.learner-guided .camera-tools button{font-size:.73rem;min-width:77px}.learner-guided .modebar button{font-size:.91rem}.learner-guided .modebar{margin-bottom:10px}.lesson-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:7px 0}.lesson-toolbar button{font-size:.83rem;padding:5px 9px}.helper-caption{font-size:.78rem;line-height:1.45;color:#60765f}.trend-details{border:1px solid #cbd7c1;border-radius:8px;margin-top:12px;padding:8px 12px;background:#fafbf2}.trend-details>summary{font-size:.93rem;font-weight:650;cursor:pointer;padding:5px}.trend-details .eco-chart-panel{border:0;padding:10px 0!important}.comparison-board{background:#fffdf3;border-bottom:1px solid #cedac2;padding:10px 14px;display:grid;gap:7px}.comparison-title{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.86rem;font-weight:700}.comparison-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.species-comparison{min-width:0}.species-comparison h3{font-size:.93rem;margin-bottom:4px}.population-line{display:grid;grid-template-columns:74px 1fr 62px;align-items:center;gap:8px;font-size:.85rem;margin:4px 0}.population-line .track{height:10px;background:#e9eee0;border-radius:4px;overflow:hidden}.population-line .fill{height:100%;border-radius:4px;background:#8f6f4b;transition:width .3s}.wolf-comparison .fill{background:#547f80}.population-line strong{text-align:right}.population-change{font-size:.94rem;font-weight:700;color:#1d593d;margin-top:3px}.population-missing{font-size:.85rem;color:#8a6a3e}.population-key{font-size:.76rem;color:#61715d;line-height:1.5}.comparison-labels{position:absolute;inset:auto 10px 10px;display:grid;grid-template-columns:1fr 1fr;gap:20px;pointer-events:none}.comparison-labels span{justify-self:center;padding:3px 9px;border:1px solid #b9cba8;border-radius:5px;background:#fffef3eb;font-size:.83rem;font-weight:700}.comparison-labels.single{grid-template-columns:1fr}.comparison-labels.single span:last-child{display:none}.scene-empty{position:absolute;left:52%;right:3%;top:35%;font-size:1rem;text-align:center;font-weight:700;color:#746344;background:#fbf8e7dd;padding:12px;border:1px dashed #acaa8a;border-radius:7px}.eco .learner-counts{display:none}.learner-guided.eco .learner-counts{display:block}.eco .stage-card .comparison-board{display:block}.eco .stage-note{font-size:.72rem;bottom:42px;max-width:85%}.eco .comparison-board .comparison-grid{display:grid}.eco .workspace{grid-template-rows:auto}.eco .rail{grid-row:1}.eco .stage-card{grid-row:1}.learner-guided.eco .stage{height:clamp(270px,calc(100dvh - 390px),420px)}.learner-guided.eco .modebar{display:none}.learner-guided.turtle .modebar{display:none}.learner-guided.turtle .view-tabs [data-layer=turtle],.learner-guided.turtle .view-tabs [data-layer=incubator]{display:none}.turtle .molecule-key{position:absolute;left:12px;bottom:12px;display:flex;gap:5px;flex-wrap:wrap;max-width:86%;pointer-events:none}.molecule-key span{padding:3px 7px;background:#fffdf1eb;border:1px solid #c4d2b6;border-radius:4px;font-size:.73rem}.molecule-key .gold{border-left:4px solid #bc922a}.molecule-key .green{border-left:4px solid #6b9577}.molecule-key .dna{border-left:4px solid #8f9c88}.learner-guided.turtle .stage-note{display:none}.mineral .task-roi{position:absolute;inset:0;pointer-events:none}
@media(min-width:1250px) and (max-height:820px){.learner-guided .app{padding-top:8px}.learning-path{padding:7px 12px;margin-bottom:9px}.learning-steps{margin-top:5px}.learner-guided .stage{height:calc(100dvh - 340px);min-height:295px}.learner-guided.eco .stage{height:calc(100dvh - 440px);min-height:245px}.learner-guided .rail{padding:11px}.learner-guided .lesson-panel{gap:8px}.learner-guided .lesson-prompt{font-size:1rem}.lesson-panel h2{font-size:1.2rem}.lesson-buttons button{padding:7px 10px}.learning-results{margin-top:9px}.learning-results table{font-size:.85rem}}
@media(max-width:1050px){.learner-guided .workspace{grid-template-columns:minmax(0,1fr) 310px}.learning-purpose{display:block}.role-tag{display:none}.learning-purpose strong{font-size:.92rem}}
@media(max-width:780px){.learning-path{padding:9px 10px;position:relative}.learning-path-top{display:block}.learning-modes{margin-top:8px}.learning-modes button{flex:1;min-height:44px;font-size:.86rem}.learning-purpose strong{font-size:1rem}.learning-steps{display:grid;grid-template-columns:1fr 1fr;gap:7px}.learning-steps li{font-size:.78rem}.learner-guided .workspace{display:flex;flex-direction:column}.learner-guided .rail{order:-1;padding:12px}.learner-guided .lesson-panel{gap:9px}.lesson-panel h2{font-size:1.2rem}.lesson-prompt{font-size:1rem}.lesson-buttons{grid-template-columns:1fr 1fr;gap:6px}.lesson-buttons .primary,.lesson-buttons button:only-child{grid-column:1/-1}.lesson-buttons button{font-size:.91rem;padding:8px}.operation-help{font-size:.8rem}.operation-help summary{padding:4px 0}.learner-guided .stage{height:390px;flex:none}.learner-guided.mineral .stage{height:480px}.learner-guided.eco .stage{height:420px}.learner-guided .stage-title{font-size:.93rem}.learner-guided .stage-top{right:93px}.learning-results table{font-size:.79rem}.learning-results td,.learning-results th{padding:7px 5px}.learning-results{padding-top:9px}.comparison-grid{gap:10px}.comparison-board{padding:9px}.comparison-title{display:block;font-size:.81rem}.population-line{grid-template-columns:55px 1fr 48px;gap:4px;font-size:.78rem}.population-change{font-size:.82rem}.population-key{font-size:.71rem}.population-line .track{height:9px}.comparison-labels{inset:0;display:block}.comparison-labels span{position:absolute;left:50%;transform:translateX(-50%);white-space:nowrap}.comparison-labels span:first-child{bottom:calc(50% + 7px)}.comparison-labels span:last-child{bottom:7px}.comparison-labels.single span:first-child{bottom:7px}.scene-empty{left:5%;right:5%;top:60%}.model-callout{font-size:.72rem;max-width:140px}.turtle .molecule-key{max-width:78%;bottom:10px;left:9px}.term{font-size:.83rem;gap:7px}.term-list{gap:4px}.learner-guided .modebar button{font-size:.84rem}.learner-guided .footer{font-size:.65rem}}
@media(prefers-reduced-motion:reduce){.population-line .fill{transition:none}.lesson-target{animation:none}}

.lesson-return{display:none}.guided-readings{display:grid;gap:7px;background:#edf3e6;padding:10px;border-radius:7px}.guided-readings p{font-size:1rem;line-height:1.5}@media(max-width:780px){.learner-guided .view-tabs .lesson-return{display:block;flex-basis:100%;grid-column:1/-1;min-height:44px;font-weight:700;color:#285b3e;background:#edf4e3}.lesson-panel{scroll-margin-top:12px}}

.model-controls-note{padding:4px 12px 7px;font-size:.76rem;color:#5d745f;background:#f6f8ed;border-top:1px solid #d5deca}body:not(.learner-guided) .learning-steps{display:none}.scene-empty.single{left:5%;right:5%}.scene-empty.missing-a:not(.single){left:3%;right:52%}@media(max-width:780px){.model-controls-note{font-size:.72rem}.scene-empty.missing-a:not(.single){left:5%;right:5%;top:17%}}

.camera-dock:empty,.stage-heading-dock:empty{display:none}@media(max-width:780px){.stage-heading-dock{padding:9px 11px;border-bottom:1px solid #d1ddc6;background:#edf2e5}.stage-heading-dock .stage-top{position:static;max-width:100%;font-size:.82rem}.stage-heading-dock .stage-title{font-size:.95rem}.camera-dock{background:#eef3e5;padding:7px;border-top:1px solid #cbd7c1}.camera-dock .camera-tools{position:static;display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.camera-dock .camera-tools button{min-width:0;font-size:.76rem;padding:6px 4px;min-height:44px}.comparison-board .comparison-grid{grid-template-columns:1fr;gap:8px}.population-line{grid-template-columns:78px 1fr 56px;font-size:.83rem}.population-key{font-size:.74rem}.comparison-labels span{max-width:calc(100% - 16px);white-space:normal;text-align:center;font-size:.73rem}}

/* v1.2: one observation surface and one response rail. */
.learner-guided .workspace{align-items:start}.learner-guided .stage-card{align-self:start;position:sticky;top:10px}.learner-guided .lesson-panel{height:auto;gap:8px}.learner-guided .rail{gap:8px}.learner-guided .lesson-panel .learning-results{border:0;margin:0;padding:0}.learner-guided .learning-results h2{font-size:.92rem;margin:0 0 3px}.learner-guided .learning-results textarea{margin-top:5px;min-height:76px;resize:vertical}.learner-guided .learning-results label{font-size:.9rem;line-height:1.45}.learner-guided .learning-results button{width:100%;margin:6px 0 0;font-size:.95rem;min-height:44px}.lesson-answer-feedback{padding:9px 10px;border-left:3px solid #76974d;background:#edf3e3;line-height:1.5;font-size:.96rem}.lesson-answer-feedback.error{background:#f7eddb;border-color:#b58542}.lesson-panel .lesson-tip{font-size:.8rem;padding:6px 9px}.lesson-panel .operation-help{margin-top:0;font-size:.77rem}.authorship{font-size:.78rem;color:#526e5d;margin-top:10px;padding:7px 0;border-top:1px solid #ccd8c2;line-height:1.5}.reading-strip{background:#fffdf2;border-bottom:1px solid #c8d6bd;padding:9px 12px}.reading-strip .read-columns{display:grid;grid-template-columns:1fr 1fr;gap:10px}.reading-strip .reading-group{border-left:3px solid #87a263;padding-left:9px;font-size:.94rem;line-height:1.55}.reading-strip strong{display:block;font-size:1rem}.reading-strip .helper-caption{margin-top:4px}.learner-guided.turtle .stage{height:clamp(285px,calc(100dvh - 365px),510px)}.chart-in-main{background:#fffdf5;min-height:365px;padding:12px}.chart-in-main .eco-chart-panel{border:0;padding:0!important}.chart-in-main svg{max-height:none!important}.show-chart .camera-dock{display:none}.learner-guided .lesson-buttons button{min-height:44px}.learner-guided .lesson-buttons .secondary{font-size:.88rem}
@media(min-width:781px){.learner-guided .stage{flex:none}.learner-guided .stage-card{max-height:none}.learner-guided .lesson-panel .lesson-observation{font-size:.94rem;padding:7px 9px}.learner-guided .lesson-buttons button{padding:7px 10px}.learner-guided .learning-results p{font-size:.9rem}}
@media(max-width:780px){.learner-guided .stage-card{position:static}.reading-strip .read-columns{grid-template-columns:1fr;gap:7px}.reading-strip .reading-group{font-size:.88rem}.authorship{font-size:.74rem}.learner-guided.turtle .stage{height:340px}.chart-in-main{min-height:330px;padding:10px 4px}.lesson-panel .learning-results{grid-column:1/-1}.comparison-labels span{width:max-content}}
html.large-text .learner-guided .stage-card{position:static}
