/*! BIO-ORIGIN project=holiday-09-plant-experiments; version=1.0.0-draft-web.1; official=https://bio2077.cn/ */
:root{font-family:"Microsoft YaHei","PingFang SC",sans-serif;color:#eef7f5;background:#0c171c;--bg:#0c171c;--card:#13242b;--panel:#192d34;--line:#35505a;--muted:#b2c8cc;--accent:#a9ebba;--ink:#eef7f5;--bad:#ffb3a3;--gold:#f2ce80}*{box-sizing:border-box}body{margin:0;padding:18px 26px 10px}button,a,summary{touch-action:manipulation}button{font:inherit;font-size:18px;color:var(--ink);background:transparent;border:1px solid var(--line);border-radius:10px;padding:10px 14px;min-height:46px;cursor:pointer;transition:background .15s,border-color .15s}button:hover{background:var(--line)}button:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:3px}button.active,button[aria-pressed=true]{border-color:var(--accent);background:#21453e}button:disabled{opacity:.45;cursor:default}.primary{background:var(--accent);color:#123026;border:0;font-weight:700}.primary:hover{background:#c6f9d1}header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.brand{display:flex;gap:14px;align-items:center}.brand-icon{font-size:54px;color:var(--accent);line-height:1}h1{font-size:26px;margin:4px 0 0;letter-spacing:1px}h2{font-size:28px;margin:7px 0 0;font-weight:600}h3{font-size:23px;line-height:1.5;margin:12px 0}.eyebrow{color:var(--accent);font-size:15px;letter-spacing:2px}.utilities{display:flex;gap:8px}.utilities button{font-size:16px}nav{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}nav button{text-align:left;background:var(--card);padding:12px 18px;border-radius:13px;font-size:22px;display:flex;align-items:center;gap:16px}nav .number{font-size:28px;font-weight:300;color:var(--accent)}nav small{font-size:14px;color:var(--muted);display:block;margin-top:3px}nav .done{margin-left:auto;color:var(--accent)}main{display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:18px;max-width:1800px;margin:auto}.stage-card,aside{border:1px solid var(--line);border-radius:18px;background:var(--card);overflow:hidden}.stage-card{display:flex;flex-direction:column}.stage-heading{padding:22px 24px 0;display:flex;justify-content:space-between;align-items:start;gap:10px}.badge{white-space:nowrap;font-size:14px;background:#223e44;border-radius:20px;padding:6px 10px;color:var(--muted)}#scene{flex:1;min-height:265px;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 70%,#22413f66,transparent 70%)}#scene svg{width:100%;max-height:360px;display:block}.observation{margin:0 20px 12px;border-top:1px solid var(--line);padding-top:14px;display:flex;gap:18px;align-items:baseline}.observation>span{color:var(--accent);font-size:15px;white-space:nowrap}p{line-height:1.6}.observation p{font-size:21px;margin:0;min-height:66px}.stage-foot{display:flex;gap:8px;align-items:center;padding:0 18px 16px;flex-wrap:wrap}.stage-foot button{font-size:16px}.stage-foot details{margin-left:auto;font-size:14px;color:var(--muted)}details p{max-width:420px}.stage-foot summary{cursor:pointer}aside{padding:20px;display:flex;flex-direction:column;min-height:520px}.steps{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:16px;color:var(--muted);font-size:15px}.steps span{display:flex;align-items:center;gap:5px}.steps b{border:1px solid var(--line);border-radius:50%;width:26px;height:26px;display:grid;place-items:center;font-weight:400}.steps .current{color:var(--accent)}.steps .current b{background:var(--accent);color:#123026}#panel{flex:1}.choices{display:grid;gap:9px;margin:12px 0}.choices button{text-align:left;font-size:19px;line-height:1.4;padding:12px 14px}.hint{font-size:16px;color:var(--muted);margin:8px 0}.inline-note{padding:10px 12px;border-left:3px solid var(--gold);background:#ffffff05;font-size:16px}.next{width:100%;margin-top:12px}.operations{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.operations button{font-size:17px;min-height:61px;padding:8px;line-height:1.4}.operations .complete{color:var(--accent);border-color:#4d8275}.status-title{color:var(--accent);font-size:16px}.evidence{background:var(--panel);border-radius:12px;padding:12px;font-size:19px;line-height:1.6}.evidence strong{color:var(--accent)}#feedback{margin:12px 0 0;font-size:17px;min-height:27px;color:var(--gold)}#feedback.error{color:var(--bad)}#feedback.success{color:var(--accent)}footer{display:flex;justify-content:space-between;gap:10px;font-size:13px;color:var(--muted);margin-top:14px}dialog{background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:20px;padding:28px;max-width:790px;width:90%;max-height:85vh;font-size:18px}dialog::backdrop{background:#000a}dialog button{margin-top:12px}dialog h2{margin-top:0}dialog a{color:var(--accent)}dialog li{margin:12px 0}dialog .disclosure{font-size:14px;color:var(--muted)}.report-item{padding:12px 0;border-bottom:1px solid var(--line)}.report-item h3{margin:0 0 8px}.report-item p{font-size:16px;margin:5px 0}svg text{font-family:"Microsoft YaHei",sans-serif}svg .label{fill:var(--ink);font-size:23px}svg .sub{fill:var(--muted);font-size:18px}svg .accent{fill:var(--accent)}.bubble{animation:rise 2.5s linear infinite}@keyframes rise{from{transform:translateY(18px);opacity:.2}50%{opacity:1}to{transform:translateY(-45px);opacity:0}}@media(prefers-reduced-motion:reduce){.bubble{animation:none}}body.contrast{--bg:#000;--card:#071018;--panel:#142631;--line:#91aebd;--muted:#eff5fc;--accent:#d0ffc0;--ink:#fff;background:var(--bg)}body.contrast #scene{background:#000}body.contrast button.active{background:#193d23}body:fullscreen{overflow:auto;background:var(--bg)}@media(min-height:850px) and (min-width:1100px){main{min-height:calc(100vh - 230px)}#scene svg{max-height:500px}}@media(max-width:1100px){body{padding:14px}main{grid-template-columns:minmax(0,1fr) 330px;gap:12px}h1{font-size:23px}h2{font-size:24px}aside{padding:16px}.stage-heading{padding:18px 18px 0}.utilities{gap:5px}.utilities button{padding:8px;font-size:14px}nav button{font-size:19px;padding:10px}.brand-icon{display:none}#scene svg{max-height:340px}.observation p{font-size:19px}}@media(max-width:760px){body{padding:12px}header{align-items:start;flex-direction:column;gap:12px;margin-bottom:12px}.utilities{width:100%;justify-content:flex-end}h1{font-size:23px}.eyebrow{font-size:13px}nav{gap:6px}nav button{display:block;padding:10px 7px;text-align:center;font-size:17px}nav .number,nav small{display:none}nav .done{font-size:14px}main{display:flex;flex-direction:column}h2{font-size:23px}.stage-heading{padding:16px 16px 0}#scene{min-height:200px}#scene svg{max-height:320px}.observation{margin:0 14px 12px;gap:10px}.observation p{font-size:18px;min-height:54px}.stage-foot{padding:0 14px 14px}.stage-foot details{width:100%;margin:0}aside{min-height:0;padding:16px}.choices{grid-template-columns:1fr}.steps{padding-bottom:12px}footer{font-size:12px;flex-wrap:wrap}footer span:nth-child(2){display:none}}@media(min-width:761px) and (max-height:760px){body{padding-top:10px}header{margin-bottom:12px}nav{margin-bottom:12px}nav button{padding:8px 14px}main{gap:12px}aside{min-height:495px}.stage-heading{padding-top:16px}#scene svg{max-height:285px}.observation p{font-size:19px;min-height:58px}h3{margin:10px 0}.choices{gap:7px}.choices button{padding:10px 12px}.operations button{min-height:53px}footer{margin-top:9px}}

/* Let the classroom stage use available height without SVG intrinsic-size overflow. */
#scene{position:relative;min-height:240px}#scene svg{position:absolute;inset:0;width:100%;height:100%;max-height:none} .inline-note summary{cursor:pointer}.inline-note p{margin:8px 0 0}
@media(min-width:1100px){main{min-height:calc(100vh - 232px)}#scene{min-height:220px}}
@media(min-width:761px) and (max-height:800px){aside{min-height:495px}.stage-heading{padding-top:16px}h2{font-size:25px}.observation{padding-top:10px}.observation p{font-size:19px;min-height:58px}.stage-foot{padding-bottom:12px}}
@media(max-width:760px){#scene{height:240px;flex:none}#scene svg{max-height:none}.observation p{min-height:0}}

@media (min-width:761px) and (max-width:900px){main{display:flex;flex-direction:column}.stage-card #scene{height:330px;flex:none}aside{min-height:0}.choices{grid-template-columns:1fr}header{flex-wrap:wrap}}
@media(max-width:760px){#scene.paired{height:610px}}

@media (min-width:761px) and (max-width:900px){main{display:flex;flex-direction:column}.stage-card #scene{height:330px;flex:none}aside{min-height:0}.choices{grid-template-columns:1fr}header{flex-wrap:wrap}}
@media(max-width:760px){#scene.paired{height:610px}}
