.lab-shell{width:min(100%,1500px);height:calc(100vh - 58px);margin:0 auto;display:grid;grid-template-columns:92px minmax(640px,1fr) 320px;grid-template-rows:minmax(520px,1fr) 172px;grid-template-areas:"tools stage panel" "tools dock panel";border-left:1px solid var(--line);border-right:1px solid var(--line);background:#ffffff06}.lab-brief{display:none;width:min(100%,1540px);margin:14px auto 0;padding:0 18px;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.lab-brief>div{min-height:92px;display:grid;grid-template-columns:auto 1fr;gap:4px 10px;align-content:center;padding:14px;border:1px solid rgba(115,214,255,.16);border-radius:8px;background:linear-gradient(180deg,#141c26db,#0d1219b8);box-shadow:0 14px 34px #0000002e}.lab-brief span{grid-row:span 2;width:34px;height:34px;display:grid;place-items:center;border-radius:8px;color:#06111f;background:linear-gradient(135deg,var(--cyan),var(--green));font-size:12px;font-weight:950}.lab-brief strong{color:var(--text);font-size:14px}.lab-brief p{margin:0;color:var(--muted);font-size:12px;line-height:1.35}.tool-rail{grid-area:tools;display:flex;flex-direction:column;gap:10px;padding:46px 10px 12px;border-right:1px solid var(--line);background:linear-gradient(180deg,#121820f5,#0a0f15f5)}.tool-button{min-height:74px;padding:6px 3px;border:1px solid transparent;border-radius:7px;color:#e7effa;background:transparent;font-size:12px;line-height:1.2;overflow-wrap:anywhere}.tool-button.is-active,.tool-button:hover{border-color:#70a2ff40;background:linear-gradient(180deg,#3e7cf0e6,#2f5eb0db)}.tool-icon{display:block;margin-bottom:8px;font-size:20px}.lab-stage{position:relative;grid-area:stage;overflow:hidden;background:radial-gradient(circle at 50% 29%,rgba(255,255,255,.14),transparent 34%),linear-gradient(180deg,#929892,#7b827c 50%,#232b28 50%,#121817)}.lab-wall{position:absolute;top:0;right:0;bottom:38%;left:0;overflow:hidden;background:linear-gradient(90deg,rgba(0,0,0,.18),transparent 18%,transparent 82%,rgba(0,0,0,.22)),radial-gradient(circle at 50% 50%,rgba(255,255,255,.22),transparent 45%)}.lab-wall:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(0,0,0,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.045) 1px,transparent 1px);background-size:34px 34px;opacity:.32}.shelf{position:absolute;z-index:4}.shelf-left{left:24px;top:48px;width:260px}.shelf-right{right:28px;top:88px;width:260px;height:132px}.lab-stage .shelf-right,.lab-stage .lab-stand{display:none}.shelf-board{position:absolute;left:0;right:0;top:86px;height:10px;border-radius:4px;background:linear-gradient(180deg,#686d68,#404641);box-shadow:0 12px 16px #00000038}.shelf-board.lower{top:188px}.bottle-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px 12px;min-height:86px}.reagent-bottle,.reagent-card,.dock-item{user-select:none}.reagent-bottle{position:relative;width:48px;height:76px;justify-self:center;border:1px solid rgba(0,0,0,.55);border-radius:8px 8px 10px 10px;color:#111;background:linear-gradient(90deg,#8a6a37,#b88d49 48%,#6b512d);box-shadow:inset 7px 0 12px #ffffff2e,0 8px 12px #00000040;cursor:grab;transition:transform .16s ease,filter .16s ease}.reagent-bottle:hover,.reagent-bottle.is-dragging,.dock-item.is-dragging{transform:translateY(-3px);filter:brightness(1.08)}.reagent-bottle:before{content:"";position:absolute;left:13px;top:-9px;width:22px;height:13px;border-radius:4px 4px 2px 2px;background:#1a1d1c}.reagent-bottle span{position:absolute;left:6px;right:6px;top:26px;padding:7px 2px;border-radius:3px;background:#ffffffc7;font-size:11px;text-align:center}.tube-rack{position:absolute;top:292px;left:6px;right:6px;height:76px;display:flex;justify-content:space-around;align-items:flex-end;padding:8px 10px;border:3px solid rgba(235,241,246,.62);border-top:7px solid rgba(245,248,250,.86);background:#f0f5fa2e}.tube-rack span{width:18px;height:58px;border:1px solid rgba(255,255,255,.8);border-top:0;border-radius:0 0 8px 8px;background:linear-gradient(180deg,transparent 62%,rgba(85,136,226,.7) 62%)}.wall-periodic{position:absolute;z-index:1;left:66%;top:18px;width:390px;height:252px;transform:translate(-50%);padding:12px 14px 14px;border:1px solid rgba(0,0,0,.18);background:#ecefe8b8;box-shadow:0 16px 28px #00000029;pointer-events:none}.wall-periodic p{margin:0 0 8px;color:#222;font-size:12px;font-weight:800;text-align:center}.mini-table{display:grid;grid-template-columns:repeat(16,1fr);gap:2px}.mini-table span{height:15px;border:1px solid rgba(0,0,0,.18)}.wall-periodic .mini-table{grid-template-columns:repeat(18,1fr);grid-template-rows:repeat(9,1fr);gap:2px;height:206px}.mini-empty{opacity:0}.mini-el{display:grid;align-content:center;padding:1px;overflow:hidden;min-width:0;min-height:0;border-radius:1px;color:#111827;font-size:4.8px;line-height:1;text-align:center;box-shadow:inset 0 0 0 1px #00000029}.mini-el b{font-size:4.5px;font-weight:800;opacity:.72}.mini-el strong{font-size:8px;line-height:1}.mini-el em{display:block;overflow:hidden;white-space:nowrap;text-overflow:clip;font-style:normal}.mini-alkali{background:#d66d6d}.mini-alkaline{background:#d6a85f}.mini-transition{background:#cabc66}.mini-metal{background:#70a7a3}.mini-metalloid{background:#7eb87a}.mini-nonmetal{background:#79a9d7}.mini-halogen{background:#8b78bf}.mini-noble{background:#6e92c4}.mini-lanthanoid{background:#6ab8c9}.mini-actinoid{background:#a083c9}.mini-table .wide,.mini-table .wide2{grid-column:span 8}.violet{background:#8763a6}.yellow{background:#cfbf68}.green{background:#7ba36d}.blue{background:#6c93bf}.gray{background:#969b95}.outline-glass{position:absolute;bottom:24px;border:2px solid rgba(40,42,42,.45);background:linear-gradient(120deg,#ffffff38,#ffffff0a)}.flask-shape{left:20px;width:54px;height:76px;border-radius:9px 9px 28px 28px;clip-path:polygon(42% 0,58% 0,58% 45%,88% 100%,12% 100%,42% 45%)}.round-shape{left:96px;width:55px;height:68px;border-radius:50%}.tube-shape{left:176px;width:20px;height:78px;border-radius:0 0 10px 10px}.shelf-right .shelf-board{top:96px}.shelf-right .outline-glass{bottom:40px;z-index:3}.shelf-right .flask-shape{left:22px}.shelf-right .round-shape{left:96px}.shelf-right .tube-shape{left:178px}.bench-dropzone{position:absolute;inset:auto 0 0;height:56%;overflow:hidden}.drop-zone-mark{position:absolute;z-index:2;top:54px;height:210px;display:grid;place-items:start center;padding-top:10px;border:1px dashed rgba(158,190,235,.16);border-radius:10px;color:#dbe8ff47;font-size:12px;pointer-events:none}.drop-zone-tools{left:3%;width:27%}.drop-zone-reaction{left:34%;width:28%}.drop-zone-reagents{right:3%;width:27%}.bench-dropzone.is-over .drop-zone-mark{border-color:#61a2ff6b;color:#dbe8ff80}.bench-back{position:absolute;left:0;right:0;top:0;height:38px;background:linear-gradient(180deg,#9a9e976b,#464c48b8)}.bench-surface{position:absolute;top:38px;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 50% 18%,rgba(126,183,255,.12),transparent 30%),linear-gradient(180deg,#28312e,#121716)}.bench-dropzone.is-over .bench-surface{box-shadow:inset 0 0 0 2px #61a2ff94}.default-apparatus,.workspace-items{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none}.workspace-item{position:absolute;z-index:9;width:76px;min-height:86px;padding:8px 8px 7px;border:1px solid rgba(219,232,255,.16);border-radius:7px;color:#eef5ff;background:#10161ec2;box-shadow:0 14px 24px #00000047;text-align:center;font-size:12px;animation:itemLand .2s ease-out;transform:translate(-50%)}@keyframes itemLand{0%{transform:translate(-50%) translateY(-8px);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.workspace-item.reagent{color:#101417;background:linear-gradient(90deg,#a8844e,#d1b06a 50%,#806238)}.workspace-item.equipment{background:linear-gradient(180deg,#edf4fc47,#7485972e)}.workspace-item.is-shadowed-container{opacity:.34;filter:grayscale(.25);pointer-events:none}.workspace-item.is-heat-tool{opacity:.72}.workspace-item strong{display:block;font-size:11px;line-height:1.2}.mini-bottle,.placed-visual{position:relative;width:46px;height:52px;display:block;margin:0 auto 5px}.mini-bottle:before{content:"";position:absolute;left:12px;top:3px;width:22px;height:44px;border:1px solid rgba(0,0,0,.36);border-radius:7px 7px 10px 10px;background:linear-gradient(90deg,#8a6a37,#d1b06a 52%,#806238)}.mini-bottle:after{content:"";position:absolute;left:16px;top:-2px;width:14px;height:8px;border-radius:3px 3px 1px 1px;background:#151918}.placed-visual:before,.placed-visual:after{content:"";position:absolute}.placed-visual.tube:before{left:17px;top:4px;width:14px;height:42px;border:2px solid rgba(230,240,250,.78);border-top:0;border-radius:0 0 10px 10px;transform:rotate(-32deg);background:linear-gradient(180deg,transparent 58%,rgba(96,165,250,.42) 58%)}.placed-visual.flask:before{top:3px;right:5px;bottom:3px;left:5px;border:2px solid rgba(230,240,250,.78);background:linear-gradient(180deg,#ffffff29,#60a5fa33);clip-path:polygon(42% 0,58% 0,58% 40%,90% 100%,10% 100%,42% 40%)}.placed-visual.round:before{left:8px;top:10px;width:32px;height:32px;border:2px solid rgba(230,240,250,.78);border-radius:50%;background:#60a5fa29}.placed-visual.round:after{left:20px;top:2px;width:8px;height:18px;border:2px solid rgba(230,240,250,.78);border-bottom:0}.placed-visual.beaker:before{left:10px;top:8px;width:30px;height:38px;border:2px solid rgba(230,240,250,.78);border-top:0;border-radius:0 0 8px 8px;background:linear-gradient(180deg,transparent 52%,rgba(96,165,250,.32) 52%)}.placed-visual.cylinder:before{left:17px;top:3px;width:14px;height:44px;border:2px solid rgba(230,240,250,.78);border-radius:2px 2px 8px 8px;background:linear-gradient(180deg,transparent 50%,rgba(96,165,250,.3) 50%)}.placed-visual.funnel:before{top:5px;right:5px;bottom:2px;left:5px;background:#e6f0fab8;clip-path:polygon(0 0,100% 0,58% 46%,58% 100%,42% 100%,42% 46%)}.placed-visual.petri:before{left:6px;top:22px;width:36px;height:14px;border:2px solid rgba(230,240,250,.78);border-radius:50%;background:#ffffff1f}.placed-visual.gas-tube:before{left:7px;top:10px;width:31px;height:24px;border:4px solid rgba(230,240,250,.78);border-left:0;border-bottom:0;border-radius:0 16px 0 0}.placed-visual.burner:before{left:8px;right:8px;bottom:4px;height:14px;border-radius:50%;background:linear-gradient(180deg,#c9d3dc,#758392)}.placed-visual.burner:after{left:18px;top:4px;width:14px;height:30px;clip-path:polygon(50% 0,78% 34%,62% 100%,38% 100%,20% 34%);background:radial-gradient(circle at 50% 72%,#fff2a2,#ffb22e 45%,#f0682a 72%)}.placed-visual.spatula:before,.placed-visual.pipette-icon:before{left:5px;top:25px;width:40px;height:5px;border-radius:999px;background:#cfd6dd;transform:rotate(-18deg)}.placed-visual.mortar-icon:before{left:6px;top:20px;width:38px;height:22px;border:2px solid rgba(230,240,250,.78);border-radius:6px 6px 22px 22px;background:#ffffff2e}.tripod{position:absolute;z-index:6;left:50%;top:122px;width:130px;height:160px;transform:translate(-50%);opacity:0;transition:opacity .2s ease}.has-heater .tripod{opacity:1}.tripod-ring{position:absolute;left:12px;top:58px;width:106px;height:20px;border-radius:50%;border:5px solid rgba(14,18,21,.86);background:#0f172a14;box-shadow:0 5px 10px #00000059,inset 0 0 0 2px #ffffff14}.beaker-demo{position:absolute;left:33px;top:-10px;width:66px;height:80px;border:2px solid rgba(20,24,24,.74);border-top:0;border-radius:0 0 12px 12px;background:#e8f4ff14;overflow:hidden;display:none}.beaker-demo:before{content:"";position:absolute;left:-4px;right:-4px;top:0;height:10px;border:2px solid rgba(20,24,24,.74);border-bottom:0;border-radius:50%}.beaker-liquid{position:absolute;left:6px;right:6px;bottom:0;height:42%;background:#668eb794}.leg{position:absolute;top:76px;width:5px;height:92px;border-radius:4px;background:linear-gradient(180deg,#2b333a,#0a0e12)}.l1{left:22px;transform:rotate(13deg)}.l2{left:64px}.l3{right:22px;transform:rotate(-13deg)}.burner{position:absolute;z-index:7;left:50%;top:246px;width:56px;height:54px;border:0;background:transparent;pointer-events:auto;opacity:0;transform:translate(-50%);transition:opacity .2s ease,filter .2s ease}.is-heating .burner{opacity:1;filter:drop-shadow(0 0 18px rgba(255,146,46,.42))}.burner-base{position:absolute;left:4px;right:4px;bottom:0;height:18px;border:1px solid rgba(0,0,0,.45);border-radius:50%;background:linear-gradient(180deg,#c9d3dc,#758392)}.flame{position:absolute;left:17px;bottom:16px;width:22px;height:42px;transform:scaleY(0);transform-origin:bottom;opacity:0;clip-path:polygon(50% 0,78% 34%,62% 100%,38% 100%,20% 34%);background:radial-gradient(circle at 50% 70%,rgba(255,255,255,.98),rgba(255,242,162,.9) 24%,transparent 25%),radial-gradient(circle at 50% 72%,#fff2a2,#ffb22e 45%,#f0682a 72%);filter:drop-shadow(0 0 14px rgba(255,155,53,.78));transition:opacity .2s ease,transform .2s ease}.is-heating .flame{opacity:1;transform:scaleY(1);animation:flamePulse .18s alternate infinite}@keyframes flamePulse{0%{height:38px}to{height:46px}}.jar-demo,.wash-bottle,.mortar,.pipette{position:absolute;display:none;opacity:.95}.jar-demo{left:66%;top:178px;width:70px;height:78px;padding-top:34px;border:2px solid rgba(0,0,0,.35);border-radius:10px 10px 14px 14px;color:#333;background:linear-gradient(180deg,#d9dcd8bd,#f4f5efc7);text-align:center}.jar-demo:before{content:"";position:absolute;left:10px;top:-12px;width:48px;height:22px;border:1px solid rgba(0,0,0,.4);border-radius:50%;background:#ccd0cb}.wash-bottle{right:54px;top:184px;width:52px;height:84px;border:2px solid rgba(0,0,0,.35);border-radius:14px 14px 8px 8px;background:linear-gradient(180deg,#eff7ffa3,#86a6c68a)}.wash-bottle:before{content:"";position:absolute;left:18px;top:-40px;width:25px;height:45px;border:4px solid rgba(235,245,252,.88);border-left:0;border-bottom:0;border-radius:0 18px 0 0}.mortar{right:168px;top:260px;width:76px;height:38px;border:2px solid rgba(0,0,0,.38);border-radius:8px 8px 38px 38px;background:#d4d7d2}.pipette{right:168px;top:318px;width:120px;height:8px;border-radius:8px;background:#cfd6dd;transform:rotate(13deg)}.reaction-vessel{position:absolute;z-index:8;left:50%;top:118px;width:112px;height:142px;transform:translate(-50%);pointer-events:none;transition:filter .2s ease,transform .2s ease,opacity .2s ease;opacity:.58}.reaction-vessel.is-active-container{filter:drop-shadow(0 0 14px rgba(97,162,255,.42));opacity:1}.reaction-vessel.is-active-container .vessel-glass{box-shadow:0 0 0 2px #61a2ff61,0 0 22px #61a2ff3d}.reaction-particle-canvas{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;width:100vw;height:100vh;pointer-events:none}.reaction-vessel.pulse{animation:vesselPulse .38s ease-out}@keyframes vesselPulse{0%{transform:translate(-50%) scale(1)}45%{transform:translate(-50%) scale(1.05)}to{transform:translate(-50%) scale(1)}}.vessel-neck{position:absolute;left:41px;top:0;width:30px;height:48px;border:2px solid rgba(237,247,255,.68);border-bottom:0;background:linear-gradient(90deg,#ffffff3d,#ffffff0f);box-shadow:inset 8px 0 14px #ffffff14}.vessel-glass{--vessel-liquid-level: 42%;--vessel-liquid-inline-inset: 0px;--vessel-liquid-bottom: 0px;--vessel-liquid-transition: height .45s cubic-bezier(.4, 0, .2, 1);position:absolute;left:12px;right:12px;bottom:0;height:94px;overflow:hidden;border:2px solid rgba(237,247,255,.7);border-radius:20px 20px 34px 34px;background:linear-gradient(110deg,#ffffff42,#ffffff0f),radial-gradient(circle at 34% 24%,rgba(255,255,255,.18),transparent 34%);box-shadow:inset 10px 0 16px #ffffff14,0 18px 26px #0003}.vessel-glass:before,.vessel-glass:after{content:"";position:absolute;pointer-events:none;z-index:6}.vessel-glass:before{left:13px;top:10px;width:15px;height:62%;border-radius:999px;background:linear-gradient(180deg,#ffffff80,#ffffff0f);filter:blur(.2px)}.vessel-glass:after{right:12px;bottom:12px;width:34px;height:18px;border-radius:50%;background:radial-gradient(ellipse,rgba(255,255,255,.26),transparent 70%)}.reaction-vessel.vessel-tube{width:74px}.reaction-vessel.vessel-tube .vessel-neck{display:none}.reaction-vessel.vessel-tube .vessel-glass{--vessel-liquid-level: 34%;left:23px;right:23px;height:116px;border-radius:0 0 18px 18px}.reaction-vessel.vessel-tube:before{content:"";position:absolute;left:15px;bottom:-8px;width:45px;height:118px;border-left:4px solid rgba(12,15,17,.78);border-bottom:4px solid rgba(12,15,17,.78);border-radius:0 0 0 8px;transform:skew(-8deg);z-index:-1}.reaction-vessel.vessel-beaker .vessel-neck{display:none}.reaction-vessel.vessel-beaker .vessel-glass{--vessel-liquid-level: 48%;top:40px;height:88px;border-radius:2px 2px 14px 14px}.reaction-vessel.vessel-round .vessel-glass{--vessel-liquid-level: 38%;left:8px;right:8px;height:96px;border-radius:50%}.reaction-vessel.vessel-round{top:126px}.reaction-vessel.vessel-petri .vessel-neck{display:none}.reaction-vessel.vessel-petri .vessel-glass{--vessel-liquid-level: 44%;top:84px;height:34px;border-radius:50%}.reaction-liquid{position:absolute;left:var(--vessel-liquid-inline-inset);right:var(--vessel-liquid-inline-inset);bottom:var(--vessel-liquid-bottom);height:0;z-index:1;border-radius:0;background:linear-gradient(180deg,#cde8f43d,#97c7dd2e);transition:var(--vessel-liquid-transition),background .25s ease;pointer-events:none}.reaction-vessel.has-liquid .reaction-liquid{height:var(--vessel-liquid-level)}.reaction-vessel.color-changed .reaction-liquid,.reaction-vessel[data-liquid=neutral] .reaction-liquid{background:linear-gradient(180deg,#a9ded6bd,#4e939c94)}.reaction-vessel[data-liquid=cloudy] .reaction-liquid{background:linear-gradient(180deg,#eff6ffc7,#adbacc9e)}.reaction-vessel[data-liquid=cloudyBlue] .reaction-liquid{background:linear-gradient(180deg,#93c5fdc7,#2563eb8a)}.reaction-vessel[data-liquid=brownCloudy] .reaction-liquid{background:linear-gradient(180deg,#b5784cc7,#78350f94)}.reaction-vessel[data-liquid=yellow] .reaction-liquid{background:linear-gradient(180deg,#fef08adb,#ca8a0494)}.reaction-vessel[data-liquid=silverBlue] .reaction-liquid,.reaction-vessel[data-liquid=blue] .reaction-liquid{background:linear-gradient(180deg,#93c5fddb,#1d4ed894)}.reaction-vessel[data-liquid=green] .reaction-liquid{background:linear-gradient(180deg,#86efacc7,#16653485)}.reaction-vessel[data-liquid=clear] .reaction-liquid{background:linear-gradient(180deg,#d7eef747,#9dcadd33)}.reaction-color-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;opacity:0;pointer-events:none;transition-property:opacity;transition-timing-function:linear}.reaction-color-layer.is-visible{opacity:1}.reaction-vessel[data-liquid=purple] .reaction-liquid,.reaction-vessel[data-liquid=violet] .reaction-liquid{background:linear-gradient(180deg,#c4b5fddb,#6d28d99e)}.reaction-vessel[data-liquid=orange] .reaction-liquid{background:linear-gradient(180deg,#fdba74db,#c2410c94)}.reaction-vessel[data-liquid=red] .reaction-liquid{background:linear-gradient(180deg,#fca5a5d1,#b91c1c8f)}.reaction-vessel[data-liquid=brown] .reaction-liquid{background:linear-gradient(180deg,#b45309b8,#5c2d0f9e)}.reaction-vessel[data-liquid=greenBlue] .reaction-liquid{background:linear-gradient(180deg,#6ee7b7c2,#05966985)}.reaction-vessel[data-liquid=black] .reaction-liquid{background:linear-gradient(180deg,#374151d1,#111827b8)}.solid-layer{position:absolute;left:8px;right:8px;bottom:2px;height:28%;pointer-events:none;z-index:2}.solid-particle{position:absolute;width:5px;height:5px;border-radius:999px;background:#edf1f4e0;box-shadow:0 0 3px #ffffff73;animation:solidSettle .28s ease-out both}.solid-caco3{background:linear-gradient(180deg,#f4f6f7,#aeb7bd)}.solid-zn,.solid-mg{width:9px;height:5px;border-radius:3px;background:linear-gradient(180deg,#d5dde6,#6c7888)}@keyframes solidSettle{0%{transform:translateY(-12px);opacity:0}to{transform:translateY(0);opacity:1}}.reaction-vessel.heated .reaction-liquid{animation:liquidWarm .7s ease-in-out infinite alternate}body[data-heat-state=heater_on] .reaction-vessel .vessel-glass,body[data-heat-state=reaction_ready] .reaction-vessel .vessel-glass,body[data-heat-state=heating_not_required] .reaction-vessel .vessel-glass{box-shadow:0 0 0 2px #61a2ff61,0 18px 26px #0003,0 18px 32px #f9731647}@keyframes liquidWarm{0%{filter:brightness(1)}to{filter:brightness(1.18) saturate(1.15)}}.precipitate{position:absolute;left:0;right:0;bottom:0;height:0;background:radial-gradient(ellipse at 50% 30%,#ffffffeb,#cbd5e1b8);transition:height .35s ease}.reaction-vessel.has-precipitate .precipitate{height:22%}.product-visual{pointer-events:none}.condensation-drops{position:absolute;top:0;right:0;bottom:0;left:0;z-index:7}.condensation-drops span{position:absolute;width:5px;height:7px;border-radius:999px;background:linear-gradient(180deg,#eff9ffeb,#60a5fa75);box-shadow:inset -1px -1px 2px #1e40af2e,0 0 5px #bfdbfe6b;opacity:0;animation:productDropIn .46s ease-out forwards}.product-liquid-layer{position:absolute;left:18%;right:18%;bottom:7px;height:9px;z-index:6;border-radius:50%;opacity:0;animation:productLayerIn .42s ease-out forwards}.reaction-vessel .vessel-glass>.product-liquid-layer{left:var(--vessel-liquid-inline-inset);right:var(--vessel-liquid-inline-inset);bottom:var(--vessel-liquid-bottom);height:var(--vessel-liquid-level);border-radius:0;animation-name:vesselProductLiquidIn;transform-origin:center bottom}.reaction-vessel:not(.has-liquid) .vessel-glass>.product-liquid-layer{height:16%}@keyframes vesselProductLiquidIn{0%{transform:translateY(4px);opacity:0}to{transform:translateY(0);opacity:1}}.product-water{background:linear-gradient(180deg,#bae6fdcc,#38bdf86b);box-shadow:0 0 12px #7dd3fc42}.product-label{position:absolute;right:-22px;top:30%;z-index:12;min-width:48px;padding:5px 8px;border:1px solid rgba(125,211,252,.42);border-radius:999px;color:#e0faff;background:#080f1fc7;box-shadow:0 10px 24px #00000038;font-size:12px;font-weight:950;text-align:center;opacity:0;transform:translateY(6px);animation:productLabelIn .28s ease-out forwards}.product-label strong,.product-label span{display:block;line-height:1.15}.product-label strong{font:950 12px/1.15 ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace}.product-label span{margin-top:2px;color:#bdefff;font-size:10px;font-weight:750;text-transform:none}.product-label[data-anchor=gas-outlet],.product-label[data-anchor=tube-end]{top:-2px;right:-88px}.product-label[data-anchor=precipitate-zone]{top:auto;right:-34px;bottom:18%;border-color:#fbbf246b;color:#fff7ed;background:#201608d6}.product-label-precipitate,.product-label-salt{top:auto;bottom:22%}.product-label-gas{top:-4px;right:-78px;border-color:#7dd3fc80;color:#e0faff;background:#081422d1}.product-label-color{border-color:#2dd4bf7a;color:#ccfbf1;background:#041f1edb}.product-label-heat{border-color:#fbbf248a;color:#fff7ed;background:#261906e0}.product-label-steam,.product-label-smoke{border-color:#e2e8f075;color:#f8fafc;background:#0f172adb}.lab-stage>.product-label-stage,.bench-dropzone>.product-label-stage,.constructor-stage>.product-label-stage{position:absolute;right:auto;bottom:auto;z-index:80;display:grid;gap:2px;min-width:74px;max-width:168px;padding:7px 10px;border-width:1px;border-radius:9px;text-align:left;white-space:normal;pointer-events:none;opacity:1;transform:none;animation:none;box-shadow:0 16px 34px #00000057,0 0 0 1px #ffffff14}.lab-stage>.product-label-stage:after,.bench-dropzone>.product-label-stage:after,.constructor-stage>.product-label-stage:after{content:"";position:absolute;left:-10px;top:50%;width:10px;height:2px;border-radius:999px;background:currentColor;opacity:.72}.lab-stage>.product-label-stage[data-stage-anchor=gas-outlet]:after,.lab-stage>.product-label-stage[data-stage-anchor=tube-end]:after,.constructor-stage>.product-label-stage[data-stage-anchor=gas-outlet]:after,.constructor-stage>.product-label-stage[data-stage-anchor=tube-end]:after{left:auto;right:-12px;width:12px}.lab-stage>.product-label-stage strong,.bench-dropzone>.product-label-stage strong,.constructor-stage>.product-label-stage strong{font-size:13px}.lab-stage>.product-label-stage span,.bench-dropzone>.product-label-stage span,.constructor-stage>.product-label-stage span{font-size:10.5px}.product-label-solution{right:4px;top:auto;bottom:18%;min-width:72px;max-width:132px;border-color:#2dd4bf47;color:#ccfbf1;font-size:11px}.reaction-observation-label{position:absolute;z-index:28;display:grid;gap:2px;max-width:190px;padding:7px 10px;border:1px solid rgba(125,211,252,.42);border-radius:10px;color:#e0faff;background:#06111ee0;box-shadow:0 12px 28px #00000047,0 0 18px #22d3ee1f;pointer-events:none;opacity:0;transform:translateY(6px);animation:productLabelIn .28s ease-out forwards}.reaction-observation-label strong{font-size:12px;line-height:1.1;font-weight:950}.reaction-observation-label span{font-size:10px;line-height:1.2;color:#b9d7ea}.reaction-observation-gas{right:-122px;top:18px}.reaction-observation-flow{right:-248px;top:64px;max-width:210px}.reaction-observation-flow:before{content:"";position:absolute;left:-36px;top:16px;width:30px;height:2px;border-radius:999px;background:#7dd3fcc7;box-shadow:0 0 10px #22d3ee80}.reaction-observation-precipitate{left:-128px;bottom:14px;border-color:#fbbf246b;color:#fff7ed;background:#201608e0}.reaction-observation-color,.reaction-observation-heat{left:-132px;top:26px;border-color:#2dd4bf61;background:#06181ae0}.product-gas-column{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;overflow:hidden}.product-gas-column span{position:absolute;bottom:14%;width:6px;height:6px;border:1px solid rgba(255,255,255,.8);border-radius:50%;background:#ffffff3d;animation:productGasRise 1.1s ease-in infinite}.gas-bubble{position:absolute;bottom:12%;z-index:8;border:1px solid rgba(255,255,255,.82);border-radius:50%;background:#e0f2fe3d;box-shadow:inset -2px -2px 5px #93c5fd5c,0 0 8px #bae6fd57;animation:gasBubbleRise 1.3s ease-in infinite;pointer-events:none}.gas-flow{position:absolute;left:60%;top:16px;z-index:11;width:142px;height:56px;pointer-events:none}.gas-flow span{position:absolute;left:14px;top:32px;width:7px;height:7px;border:1px solid rgba(224,242,254,.74);border-radius:50%;background:#e0f2fe33;animation:gasFlowToTube 1.35s ease-in-out infinite}.gas-outlet-bubble{position:absolute;left:166px;top:50px;z-index:13;width:9px;height:9px;border:1px solid rgba(224,242,254,.72);border-radius:50%;background:#e0f2fe2e;animation:outletBubbleDrift 1.45s ease-out infinite;pointer-events:none}.product-crystals{position:absolute;left:16%;right:16%;bottom:8px;height:28px;z-index:6}.product-crystals span{position:absolute;bottom:0;width:8px;height:10px;border-radius:2px 5px 3px;background:linear-gradient(135deg,#fff,#cbd5e1);box-shadow:0 0 9px #ffffff3d;opacity:0;animation:productCrystalIn .38s ease-out forwards}@keyframes productDropIn{0%{transform:translateY(-5px);opacity:0}to{transform:translateY(0);opacity:.95}}@keyframes productLayerIn{0%{transform:scaleX(.35);opacity:0}to{transform:scaleX(1);opacity:1}}@keyframes productLabelIn{to{transform:translateY(0);opacity:1}}@keyframes productGasRise{to{transform:translateY(-96px) scale(1.25);opacity:0}}@keyframes gasBubbleRise{0%{transform:translateY(0) scale(.74);opacity:.82}to{transform:translateY(-106px) scale(1.18);opacity:0}}@keyframes gasFlowToTube{0%{transform:translateZ(0) scale(.72);opacity:0}20%{opacity:.72}to{transform:translate3d(94px,-22px,0) scale(1.08);opacity:0}}@keyframes outletBubbleDrift{0%{transform:translateZ(0) scale(.75);opacity:.7}to{transform:translate3d(28px,-18px,0) scale(1.35);opacity:0}}@keyframes productCrystalIn{0%{transform:translateY(-22px) rotate(16deg);opacity:0}to{opacity:1}}.reaction-vessel[data-liquid=cloudyBlue].has-precipitate .precipitate,.reaction-vessel[data-liquid=cloudyBlue] .precip-particles span{background:#60a5fad1}.reaction-vessel[data-liquid=brownCloudy].has-precipitate .precipitate,.reaction-vessel[data-liquid=brownCloudy] .precip-particles span{background:#92400ed1}.reaction-vessel[data-liquid=yellow].has-precipitate .precipitate,.reaction-vessel[data-liquid=yellow] .precip-particles span{background:#facc15e0}.reaction-vessel[data-liquid=silverBlue].has-precipitate .precipitate,.reaction-vessel[data-liquid=silverBlue] .precip-particles span{background:linear-gradient(90deg,#e5e7eb,#94a3b8)}.reaction-vessel.no-reaction .vessel-glass{box-shadow:0 0 0 2px #f8b84e38,inset 10px 0 16px #ffffff14}.reaction-vessel.metal-reaction .bubble{bottom:18%}.bubbles{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.bubble{position:absolute;bottom:8%;width:7px;height:7px;border-radius:50%;background:#eff7ffd1;box-shadow:inset -2px -2px 5px #93c5fd61,0 0 7px #ffffff61;animation:rise 1.1s linear infinite}@keyframes rise{to{transform:translateY(-82px);opacity:0}}.flash{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;background:#fff6b9eb;pointer-events:none}.gas-haze{position:absolute;left:20px;right:20px;top:-4px;height:48px;pointer-events:none}.gas-outlet{position:absolute;left:76px;top:26px;width:120px;height:72px;display:none;opacity:0;transform:translateY(4px);transition:opacity .2s ease,transform .2s ease;pointer-events:none}.gas-outlet.is-visible{display:block;opacity:1;transform:translateY(0)}.outlet-line{position:absolute;left:0;top:18px;width:92px;height:44px;border:5px solid rgba(228,241,251,.78);border-left:0;border-bottom:0;border-radius:0 30px 0 0;filter:drop-shadow(0 5px 8px rgba(0,0,0,.22))}.outlet-bubble{position:absolute;left:86px;top:47px;width:38px;height:30px;border:2px solid rgba(228,241,251,.62);border-radius:50%;background:#a8cce729}.gas-label{position:absolute;left:130px;top:0;min-width:52px;padding:5px 8px;border:1px solid rgba(215,230,245,.32);border-radius:999px;color:#ecf7ff;background:#151f2ac7;font-size:12px;font-weight:800;opacity:0;transform:translateY(8px);transition:opacity .2s ease,transform .2s ease;pointer-events:none}.gas-label.is-visible{opacity:1;transform:translateY(0)}.gas-haze span{position:absolute;bottom:0;width:18px;height:18px;border-radius:50%;background:#e1ebf53d;filter:blur(3px);animation:gasPuff 1.7s ease-out infinite}.reaction-vessel.has-flash .flash{animation:labFlash .7s ease-out forwards}.reaction-vessel.heat-glow .vessel-glass{box-shadow:0 0 0 2px #fb923c38,0 0 30px #fb923c57,inset 10px 0 16px #ffffff14}.reaction-vessel.has-flame:after{content:"";position:absolute;left:34px;bottom:-14px;width:44px;height:54px;z-index:14;pointer-events:none;clip-path:polygon(50% 0,78% 34%,62% 100%,38% 100%,20% 34%);background:radial-gradient(circle at 50% 72%,#fff2a2,#ffb22e 45%,#f0682a 72%);filter:drop-shadow(0 0 18px rgba(255,155,53,.85));animation:flamePulse .18s alternate infinite}.reaction-vessel.liquid-wave .reaction-liquid:before{animation:liquidWave 1.6s ease-out}.reaction-liquid:before{content:"";position:absolute;left:-12%;right:-12%;top:-10px;height:18px;border-radius:50%;background:#ffffff42;transform:translate(-8%)}@keyframes liquidWave{0%{transform:translate(-18%) scaleY(.85)}35%{transform:translate(12%) scaleY(1.1)}70%{transform:translate(-6%) scaleY(.92)}to{transform:translate(0) scaleY(1)}}@keyframes labFlash{0%{opacity:0}22%{opacity:.9}to{opacity:0}}.scene-shake{animation:safeExplosionShake .22s linear 2}@keyframes gasPuff{to{transform:translateY(-28px) scale(1.6);opacity:0}}.precip-particles{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.precip-particles span{position:absolute;top:8%;width:4px;height:4px;border-radius:50%;background:#ffffffd1;animation:particleFall 1.2s ease-in forwards}@keyframes particleFall{to{transform:translateY(72px);opacity:.35}}.reaction-vessel.heated:after{content:"";position:absolute;left:22px;right:22px;bottom:-10px;height:20px;border-radius:50%;background:#ff8e3457;filter:blur(8px)}.reaction-vessel.has-flash .flash{animation:flash .34s ease-out}@keyframes flash{0%{opacity:0}35%{opacity:1}to{opacity:0}}.experiment-panel{grid-area:panel;display:flex;flex-direction:column;min-width:0;padding:20px 24px;border-left:1px solid var(--line);background:linear-gradient(180deg,#0f151df5,#090d12fa)}.tabs,.dock-tabs{display:flex;gap:18px;border-bottom:1px solid var(--line)}.tab,.dock-tab{border:0;border-bottom:2px solid transparent;color:#cbd6e6;background:transparent;font-size:13px;padding:0 0 12px}.tab.is-active,.dock-tab.is-active{color:#fff;border-color:var(--blue-2)}.tab-panel{display:none;padding-top:24px;font-size:14px;line-height:1.55}.tab-panel.is-active{display:block}.tab-panel h1,.tab-panel h2{margin:0 0 16px;font-size:18px}.tab-panel p{margin:0 0 14px;color:#e2e9f5}.tab-panel ol{margin:18px 0 0;padding-left:20px;color:#d7e1ef}.tab-panel li{margin-bottom:10px}.equation{color:#fff;font-weight:700}.prep-list{display:grid;gap:8px;margin:14px 0 4px}.prep-list span{padding:8px 10px;border:1px solid rgba(97,162,255,.18);border-radius:var(--radius);color:#dce7f5;background:#ffffff0b;font-size:13px}.condition-row,.result-details{display:grid;gap:4px;padding:12px;border:1px solid rgba(255,255,255,.07);border-radius:8px;background:#ffffff09}.condition-row span,.result-details span{color:var(--muted);font-size:12px}.condition-row strong,.result-details strong{color:#fff;font-size:14px;line-height:1.45}.switch{margin-top:16px;display:flex;gap:10px;align-items:center;color:#e7eef8;font-weight:700}.switch input{width:18px;height:18px;accent-color:var(--blue-2)}.result-message{min-height:84px;padding:14px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(135deg,#ffffff12,#61a2ff0b);color:#eef6ff;line-height:1.55}.result-summary{display:grid;gap:10px}.result-summary div{display:grid;gap:3px}.result-summary span{color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase}.result-summary strong,.result-summary p{margin:0;color:#eef6ff;font-size:13px;line-height:1.45}.result-message.success{border-color:#58d68d7a;background:linear-gradient(135deg,#22c55e21,#ffffff0b)}.result-message.warning{border-color:#f8b84e8f;background:linear-gradient(135deg,#fbbf2421,#ffffff0a)}.result-message.error{border-color:#f8717194;background:#7f1d1d2e}.result-message.info{border-color:#61a2ff75}.primary-action:disabled{cursor:not-allowed;opacity:.48;filter:grayscale(.25)}.primary-action:not(:disabled){box-shadow:0 0 0 1px #61a2ff59,0 14px 28px #3d7af047;filter:none}.primary-action.is-ready{box-shadow:0 0 0 2px #58d68d2e,0 14px 28px #3d7af047}.primary-action.is-warning{background:linear-gradient(135deg,#f59e0b,#d97706)}#readinessText.ready{color:var(--green)}.composition-box{display:grid;gap:9px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.07)}.composition-box>span{color:var(--muted);font-size:12px}.composition-list{display:flex;flex-wrap:wrap;gap:8px}.composition-list span{padding:6px 9px;border:1px solid rgba(97,162,255,.28);border-radius:999px;color:#eef5ff;background:#61a2ff1c;font-size:12px;font-weight:700}.solid-particle.is-reacting{animation:reactantDissolve var(--reaction-dissolve-duration, 6s) linear var(--reaction-dissolve-delay, 0s) forwards}@keyframes reactantDissolve{0%,18%{opacity:1;transform:translateZ(0) scale(1)}72%{opacity:.5;transform:translate3d(0,2px,0) scale(.78)}to{opacity:0;transform:translate3d(0,3px,0) scale(.55)}}.lab-object-list-box{display:grid;gap:8px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.07)}.lab-object-list-box>span{color:var(--muted);font-size:12px}.lab-object-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.lab-object-list-item{display:grid;gap:2px;min-width:0;padding:8px 9px;border:1px solid rgba(97,162,255,.22);border-radius:8px;color:#eef5ff;background:#61a2ff12;text-align:left;cursor:pointer}.lab-object-list-item strong,.lab-object-list-item small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lab-object-list-item small{color:var(--muted)}.lab-object-list-item[aria-pressed=true]{border-color:#57c6d5;box-shadow:0 0 0 2px #57c6d524}.lab-object-list-item:focus-visible{outline:2px solid #6fe8e3;outline-offset:2px}.lab-object-list-empty{grid-column:1 / -1;margin:0;color:var(--muted);font-size:12px}body.theme-light .lab-object-list-box{border-color:#1e588024}body.theme-light .lab-object-list-item{color:var(--text);border-color:#1e588029;background:#ffffffc7}.effect-guide{display:grid;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.08)}.effect-guide>span{color:var(--muted);font-size:12px}.effect-guide div{display:flex;flex-wrap:wrap;gap:8px}.effect-guide button{border:1px solid rgba(97,162,255,.22);border-radius:999px;color:#eaf2ff;background:#61a2ff1a;padding:7px 9px;font-size:12px}.effect-guide button:hover{border-color:#61a2ff7a;background:#61a2ff2e}.panel-actions{margin-top:auto;display:grid;gap:10px;padding-top:20px}.equipment-dock{grid-area:dock;min-width:0;padding:18px 30px;border-top:1px solid var(--line);background:linear-gradient(180deg,#121820f5,#0c1117f5)}.dock-tabs{gap:32px;overflow-x:auto}.dock-items{display:grid;grid-template-columns:repeat(8,minmax(82px,1fr));gap:10px;padding-top:12px}.dock-item,.reagent-card{min-height:108px;display:grid;place-items:center;gap:8px;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius);color:#e9f1fc;background:#ffffff0e;text-align:center;cursor:grab}.dock-item:hover,.reagent-card:hover{border-color:var(--line-strong);background:#4e84e924}.item-icon{width:48px;height:48px;display:block;position:relative}.item-icon:before{content:"";position:absolute;top:6px;right:13px;bottom:5px;left:13px;border:2px solid rgba(230,240,250,.7);border-top-width:1px;border-radius:2px 2px 14px 14px;background:linear-gradient(180deg,#ffffff29,#ffffff0a)}.item-icon.flask:before{top:2px;right:7px;bottom:4px;left:7px;border-radius:8px 8px 20px 20px;clip-path:polygon(42% 0,58% 0,58% 40%,90% 100%,10% 100%,42% 40%)}.item-icon.round:before{top:4px;right:7px;bottom:4px;left:7px;border-radius:50%}.item-icon.cylinder:before{top:2px;right:16px;bottom:3px;left:16px;border-radius:2px 2px 8px 8px}.item-icon.funnel:before{top:5px;right:5px;bottom:2px;left:5px;clip-path:polygon(0 0,100% 0,56% 48%,56% 100%,44% 100%,44% 48%)}.item-icon.petri:before{top:18px;right:5px;bottom:12px;left:5px;border-radius:50%}.item-icon.tube:before{top:8px;right:8px;bottom:13px;left:8px;border-radius:10px 10px 4px 4px;transform:rotate(-45deg)}.item-icon.burner:before{top:27px;right:7px;bottom:7px;left:7px;border-radius:50%}.item-icon.burner:after{content:"";position:absolute;left:18px;top:5px;width:14px;height:28px;border-radius:50%;background:radial-gradient(circle at 50% 72%,#fff2a2,#ffb22e 45%,#f0682a 72%);clip-path:polygon(50% 0,78% 34%,62% 100%,38% 100%,20% 34%)}.item-icon.gas-tube:before{top:10px;right:9px;bottom:12px;left:9px;border:4px solid rgba(230,240,250,.7);border-left:0;border-bottom:0;border-radius:0 16px 0 0;background:transparent}.item-icon.spatula:before,.item-icon.pipette-icon:before{top:23px;right:4px;bottom:18px;left:4px;border:0;border-radius:999px;background:#cfd6dd;transform:rotate(-18deg)}.item-icon.mortar-icon:before{top:20px;right:5px;bottom:8px;left:5px;border-radius:6px 6px 22px 22px}.dock-item span:last-child{font-size:12px;line-height:1.25}@media(max-width:1180px){.lab-shell{grid-template-columns:82px minmax(520px,1fr) 300px}.dock-items{grid-template-columns:repeat(4,minmax(100px,1fr))}.wall-periodic{left:68%;width:330px}.shelf-right{display:none}}@media(max-width:1024px){.lab-brief{grid-template-columns:1fr}.lab-shell{grid-template-columns:92px 1fr;grid-template-rows:560px auto auto;grid-template-areas:"tools stage" "tools panel" "tools dock"}.experiment-panel{border-left:0;border-top:1px solid var(--line)}.panel-actions{margin-top:20px}}@media(max-width:760px){.lab-shell{display:block}.tool-rail{flex-direction:row;overflow-x:auto;padding:10px;border-right:0;border-bottom:1px solid var(--line)}.tool-button{min-width:96px;min-height:58px}.lab-stage{height:540px}.shelf-left{transform:scale(.82);transform-origin:top left}.wall-periodic{display:none}.dock-items{grid-template-columns:repeat(2,minmax(0,1fr))}}.equipment-guide{margin-top:14px;padding:12px;border:1px solid rgba(115,214,255,.18);border-radius:10px;background:#060d1657}.equipment-guide:empty{display:none}.equipment-guide-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.equipment-guide-head strong{color:#eef6ff;font-size:13px}.equipment-guide-head span{max-width:52%;color:#a9bdd6;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.equipment-guide-list{display:grid;gap:8px}.equipment-guide-item{width:100%;min-height:58px;display:grid;grid-template-columns:40px minmax(0,1fr);align-items:center;gap:10px;padding:8px;border:1px solid rgba(180,207,235,.12);border-radius:9px;color:#eaf4ff;background:#ffffff0b;text-align:left}.equipment-guide-item:hover,.equipment-guide-item.is-placed{border-color:#73d6ff66;background:#438ad11f}.equipment-guide-item strong,.equipment-guide-item small{display:block}.equipment-guide-item small{color:#a9bdd6;font-size:11px;line-height:1.25}.equipment-guide-item em,.dock-status,.dock-role{display:inline-flex;align-items:center;justify-content:center;min-height:20px;padding:2px 7px;border-radius:999px;border:1px solid rgba(115,214,255,.24);color:#bce8ff;background:#4099d624;font-size:10px;font-style:normal;font-weight:800}.equipment-guide-item em{grid-column:2;justify-self:start}.equipment-guide-item.is-placed em,.dock-item.is-placed .dock-status{color:#d8ffe9;border-color:#5fe19b61;background:#3abf7729}.dock-item{position:relative;align-content:start;justify-items:center;padding:10px 8px}.dock-item.is-required{border-color:#73d6ff70;background:linear-gradient(180deg,#3f91d82e,#ffffff0e)}.dock-item.is-required:after{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;border-radius:10px;border:1px solid rgba(115,214,255,.18);pointer-events:none}.dock-role{order:-1;max-width:100%}.dock-status{margin-top:auto}.tool-thumb{position:relative;width:54px;height:54px;display:block;margin:0 auto}.guide-thumb{width:38px;height:38px;margin:0}.workspace-thumb{width:70px;height:62px;margin:0 auto 6px}.tool-thumb i,.tool-thumb b,.tool-thumb em,.tool-thumb:before,.tool-thumb:after{content:"";position:absolute;display:block}.tool-thumb:before{top:7px;right:16px;bottom:6px;left:16px;border:2px solid rgba(230,244,255,.8);border-top-width:1px;border-radius:4px 4px 16px 16px;background:linear-gradient(180deg,#ffffff29,#60a5fa2e 62%,#60a5fa52 63%)}.tool-erlenmeyer:before,.tool-round-flask:before{top:4px;right:8px;bottom:5px;left:8px;border-radius:10px 10px 20px 20px;clip-path:polygon(41% 0,59% 0,59% 39%,91% 100%,9% 100%,41% 39%)}.tool-round-flask:before{border-radius:50%;clip-path:none}.tool-beaker:before{top:8px;right:12px;bottom:5px;left:12px;border-top:0;border-radius:0 0 9px 9px}.tool-cylinder:before{top:3px;right:20px;bottom:5px;left:20px;border-radius:3px 3px 10px 10px}.tool-funnel:before{top:7px;right:6px;bottom:4px;left:6px;border:0;background:#e1f0fcc7;clip-path:polygon(0 0,100% 0,58% 45%,58% 100%,42% 100%,42% 45%)}.tool-pipette-tool:before,.tool-glass-rod:before,.tool-spatula:before{top:24px;right:4px;bottom:22px;left:4px;border:0;border-radius:999px;background:linear-gradient(90deg,#dce8f4,#8fb4d1);transform:rotate(-23deg)}.tool-pipette-tool:after{right:3px;top:13px;width:13px;height:13px;border-radius:50%;background:#92c7ff}.tool-spatula:after{left:3px;top:18px;width:20px;height:12px;border-radius:50% 8px 8px 50%;background:#ccd8e3;transform:rotate(-23deg)}.tool-tube-rack:before{top:28px;right:5px;bottom:8px;left:5px;border:0;border-radius:6px;background:#a67d42}.tool-tube-rack i,.tool-tube-rack b,.tool-tube-rack em{top:7px;width:8px;height:32px;border:1px solid rgba(230,244,255,.75);border-radius:6px 6px 2px 2px;background:linear-gradient(180deg,transparent 50%,rgba(125,211,252,.32) 51%)}.tool-tube-rack i{left:12px}.tool-tube-rack b{left:23px}.tool-tube-rack em{left:34px}.tool-clamp:before,.tool-holder:before{left:24px;top:5px;width:4px;height:44px;border:0;border-radius:999px;background:#cbd5e1}.tool-clamp:after,.tool-holder:after{left:18px;top:17px;width:28px;height:12px;border:3px solid #cbd5e1;border-left:0;border-radius:0 12px 12px 0}.tool-gas-tube:before{top:12px;right:6px;bottom:14px;left:6px;border:4px solid rgba(224,242,254,.82);border-left:0;border-bottom:0;border-radius:0 18px 0 0;background:transparent}.tool-gas-tube i{right:3px;bottom:6px;width:16px;height:18px;border:2px solid rgba(125,211,252,.72);border-top:0;border-radius:0 0 6px 6px}.tool-thermometer:before{left:25px;top:5px;width:7px;height:35px;border-radius:999px;background:#e5eef8}.tool-thermometer:after{left:20px;bottom:6px;width:17px;height:17px;border-radius:50%;background:#ef4444}.tool-ph-meter:before,.tool-timer:before{top:10px;right:8px;bottom:8px;left:8px;border:2px solid rgba(203,213,225,.72);border-radius:10px;background:linear-gradient(180deg,#1e293b,#0f172a)}.tool-ph-meter:after{content:"pH";left:17px;top:21px;color:#7dd3fc;font-size:13px;font-weight:900}.tool-timer:after{top:16px;right:16px;bottom:16px;left:16px;border:2px solid #7dd3fc;border-radius:50%}.tool-mortar-tool:before{top:24px;right:7px;bottom:8px;left:7px;border-radius:6px 6px 20px 20px}.tool-petri:before{top:25px;right:7px;bottom:12px;left:7px;border-radius:50%}.workspace-item.is-visual-tool{width:132px;min-height:114px;padding:10px;border-color:#b4d2ed33;background:linear-gradient(180deg,#141f2bdb,#090e15c7)}.workspace-item.is-visual-tool small{display:block;margin-top:4px;color:#a9bdd6;font-size:10px;line-height:1.25}.workspace-item.is-gas-tube-tool{width:218px;min-height:132px}.gas-tube-apparatus{position:relative;width:186px;height:76px;margin:0 auto 8px}.gas-tube-apparatus span{position:absolute;display:block}.gas-source{left:2px;bottom:8px;width:42px;height:48px;border:2px solid rgba(224,242,254,.75);border-radius:8px 8px 18px 18px;background:linear-gradient(180deg,transparent 48%,rgba(125,211,252,.28) 49%)}.gas-neck{left:36px;top:20px;width:39px;height:9px;border-radius:999px;background:#e0f2fedb;transform:rotate(-10deg)}.gas-bend{left:66px;top:12px;width:75px;height:34px;border:5px solid rgba(224,242,254,.82);border-left:0;border-bottom:0;border-radius:0 28px 0 0}.gas-receiver{right:4px;bottom:8px;width:42px;height:48px;border:2px solid rgba(224,242,254,.75);border-top:0;border-radius:0 0 10px 10px;background:linear-gradient(180deg,transparent 48%,rgba(56,189,248,.28) 49%)}.gas-receiver i{position:absolute;left:9px;bottom:11px;width:6px;height:6px;border-radius:50%;background:#dff7ff;box-shadow:12px -7px #dff7ff,18px 5px #dff7ff}.gas-flow{width:7px;height:7px;border-radius:50%;background:#dff7ff;animation:gasBubbleMove 1.5s ease-in-out infinite}.gas-flow.one{left:83px;top:14px}.gas-flow.two{left:124px;top:31px;animation-delay:.45s}@keyframes gasBubbleMove{0%{transform:translate(-8px,8px) scale(.7);opacity:0}35%{opacity:.95}to{transform:translate(22px,-8px) scale(1);opacity:0}}@media(max-width:760px){.equipment-guide-head{display:block}.equipment-guide-head span{display:none}.workspace-item.is-gas-tube-tool{width:188px}.gas-tube-apparatus{width:158px;transform:scale(.88);transform-origin:center top}}body.theme-light .equipment-guide{border-color:#2563eb33;background:#f8fbffe6}body.theme-light .equipment-guide-head strong,body.theme-light .equipment-guide-item,body.theme-light .equipment-guide-item strong{color:#132034}body.theme-light .equipment-guide-head span,body.theme-light .equipment-guide-item small{color:#52647c}body.theme-light .equipment-guide-item{border-color:#2563eb24;background:#ffffffd1}body.theme-light .equipment-guide-item:hover,body.theme-light .equipment-guide-item.is-placed{border-color:#2563eb52;background:#e1efffeb}.app-sections{min-height:calc(100vh - 58px)}.app-section{display:none;scroll-margin-top:82px}.app-section.is-active{display:block}.study-layout{width:min(1480px,calc(100% - 32px));margin:22px auto 40px;padding:24px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(180deg,#121820eb,#0a0f15f5);box-shadow:0 24px 70px var(--shadow)}.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:18px}.section-head h1{margin:0 0 8px;font-size:clamp(28px,4vw,46px);line-height:1.05}.section-head p{max-width:720px;margin:0;color:var(--muted);line-height:1.55}.search-field{min-width:min(340px,100%);display:grid;gap:7px;color:var(--muted);font-size:12px;font-weight:800}.search-field input,.tool-section textarea{width:100%;border:1px solid var(--line);border-radius:8px;color:var(--text);background:#ffffff0f;padding:11px 12px;outline:none}.filter-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.filter-chip{border:1px solid rgba(97,162,255,.2);border-radius:999px;color:#dbe8fb;background:#61a2ff14;padding:8px 12px;font-size:13px;font-weight:800}.filter-chip.is-active,.filter-chip:hover{border-color:#73d6ff8c;background:#61a2ff38}.reagent-filter-row{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}.mini-filter-chip{min-height:26px;padding:5px 8px;border:1px solid rgba(115,214,255,.22);border-radius:999px;color:#dbe8fb;background:#0f172a5c;font-size:11px;font-weight:850}.mini-filter-chip.is-active,.mini-filter-chip:hover{border-color:#73d6ff8a;background:#61a2ff33}.reagent-empty{grid-column:1 / -1;padding:9px 10px;border:1px dashed rgba(148,163,184,.26);border-radius:8px;color:var(--muted);font-size:12px}.periodic-workspace{display:grid;grid-template-columns:minmax(720px,1fr) minmax(420px,460px);gap:18px}.periodic-grid{min-height:0;display:grid;grid-template-columns:repeat(18,minmax(36px,1fr));grid-template-rows:repeat(9,64px);gap:5px;padding:14px;overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:radial-gradient(circle at 50% 0%,rgba(97,162,255,.13),transparent 36%),#ffffff0b}.element-cell{min-width:52px;display:grid;align-content:center;gap:2px;border:1px solid rgba(255,255,255,.18);border-radius:6px;color:#09111c;padding:5px;text-align:left;box-shadow:inset 0 1px #ffffff47;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.element-cell:hover,.element-cell.is-active{transform:translateY(-2px);border-color:#73d6ffdb;box-shadow:0 0 0 2px #73d6ff2e,inset 0 1px #ffffff5c}.element-cell span{font-size:10px;font-weight:800;opacity:.75}.element-cell strong{font-size:20px;line-height:1}.element-cell em{font-style:normal;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-nonmetal{background:#9bd4ff}.el-noble{background:#b7c8ff}.el-alkali{background:#ffaaa5}.el-alkaline{background:#ffd08a}.el-transition{background:#ffe07a}.el-metal{background:#9ee3d7}.el-metalloid{background:#a8e6a1}.el-halogen{background:#d9b8ff}.el-lanthanoid{background:#82d8cb}.el-actinoid{background:#c7a7ff}.element-card,.reaction-card,.task-card,.handbook-card,.progress-card{border:1px solid var(--line);border-radius:10px;background:#ffffff0f;box-shadow:0 16px 34px #0003}.element-card{position:sticky;top:74px;max-height:calc(100vh - 92px);overflow:auto;padding:22px}.card-kicker,.reaction-card span,.handbook-card small{color:var(--cyan);font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.reaction-card-meta{display:flex;align-items:center;justify-content:space-between;gap:8px}.quality-badge{display:inline-flex;align-items:center;min-height:22px;padding:3px 8px;border:1px solid rgba(88,214,141,.34);border-radius:999px;color:#bbf7d0;background:#22c55e1f;font-size:10px;font-weight:950;line-height:1;letter-spacing:0;text-transform:none}.quality-badge[data-quality=generated]{border-color:#7dd3fc57;color:#bae6fd;background:#0e749024}.quality-badge[data-quality=needs-review]{border-color:#fbbf246b;color:#fde68a;background:#b4530929}.element-card h2,.reaction-card h2,.task-card h2,.handbook-card h2{margin:8px 0 10px;line-height:1.12}.element-card h2 b{color:var(--cyan)}.element-card h3{margin:18px 0 6px;font-size:14px}.element-card p,.reaction-card p,.task-card p,.handbook-card p{color:#d8e3f2;line-height:1.55}.reaction-card .reaction-evidence{margin-top:-2px;color:#9fb3c8;font-size:12px}.info-grid,.measure-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}.info-grid span,.measure-grid span{display:grid;gap:3px;padding:10px;border:1px solid rgba(255,255,255,.08);border-radius:8px;color:var(--muted);background:#00000029;font-size:12px}.info-grid strong,.measure-grid strong{color:#fff;font-size:18px}.element-expand-button{width:100%;min-height:42px;margin-top:16px;border:1px solid rgba(115,214,255,.45);border-radius:8px;color:#f8fbff;background:linear-gradient(180deg,#3d7af042,#0b121e38);font-size:13px;font-weight:900}.element-expand-button:hover,.element-expand-button[aria-expanded=true]{border-color:#73d6ffc7;background:#61a2ff38}.element-expanded-panel{display:grid;gap:14px;margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.1)}.element-visual-block{display:grid;grid-template-columns:minmax(180px,.9fr) minmax(0,1fr);gap:12px;align-items:stretch}.atom-diagram{position:relative;min-height:260px;border:1px solid rgba(115,214,255,.16);border-radius:10px;background:radial-gradient(circle at 50% 50%,rgba(115,214,255,.18),transparent 18%),#0000002e;overflow:hidden}.atom-ring,.atom-core,.atom-electron{position:absolute;left:50%;top:50%}.atom-ring{width:var(--ring-size);height:var(--ring-size);border:1px solid rgba(216,227,242,.28);border-radius:50%;transform:translate(-50%,-50%)}.atom-core{width:62px;height:62px;display:grid;place-items:center;border:1px solid rgba(115,214,255,.34);border-radius:50%;color:#fff;background:radial-gradient(circle at 36% 32%,rgba(255,224,122,.9),transparent 20%),radial-gradient(circle at 62% 58%,rgba(184,123,255,.9),transparent 24%),#233044;transform:translate(-50%,-50%);box-shadow:0 0 26px #73d6ff38}.atom-core strong{font-size:22px;line-height:1}.atom-core span{margin-top:-14px;color:#d8e3f2;font-size:10px;font-weight:900}.atom-electron{width:8px;height:8px;border-radius:50%;background:#fff;box-shadow:0 0 10px #ffffffb8;transform:translate(-50%,-50%) rotate(var(--electron-angle)) translate(var(--electron-radius)) rotate(calc(var(--electron-angle) * -1))}.element-detail-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.element-detail-summary span{display:grid;gap:3px;min-height:58px;padding:10px;border:1px solid rgba(115,214,255,.16);border-radius:8px;color:var(--muted);background:#61a2ff14;font-size:12px}.element-detail-summary strong{color:#fff;font-size:15px;overflow-wrap:anywhere}.electron-config-block{display:grid;gap:8px;padding:12px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#0000002e}.electron-config-block span,.element-detail-row span{color:var(--muted);font-size:12px;font-weight:800}.electron-config-block strong{color:#fff;overflow-wrap:anywhere}.electron-shells{display:flex;flex-wrap:wrap;gap:7px}.electron-shells span{display:inline-flex;align-items:center;gap:5px;min-height:28px;padding:0 8px;border:1px solid rgba(115,214,255,.24);border-radius:999px;color:#d8e3f2;background:#61a2ff1a}.electron-shells i{width:18px;height:18px;display:grid;place-items:center;border-radius:50%;color:#09111c;background:var(--cyan);font-style:normal;font-size:10px;font-weight:900}.element-detail-list{display:grid;border:1px solid rgba(255,255,255,.08);border-radius:8px;overflow:hidden}.element-detail-row{display:grid;grid-template-columns:minmax(118px,.75fr) minmax(0,1fr);gap:10px;padding:10px 12px;background:#00000021}.element-detail-row+.element-detail-row{border-top:1px solid rgba(255,255,255,.08)}.element-detail-row strong{color:#fff;font-size:13px;overflow-wrap:anywhere;text-align:right}.reaction-catalog,.task-list,.handbook-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.reaction-card,.task-card,.handbook-card{display:grid;align-content:start;gap:12px;padding:18px}.reaction-card dl{display:grid;grid-template-columns:90px 1fr;gap:8px 12px;margin:0;color:#e5edf8;font-size:13px}.reaction-card dt{color:var(--muted)}.reaction-card dd{margin:0}.task-top{display:flex;justify-content:space-between;gap:8px;color:var(--cyan);font-size:12px;font-weight:900;text-transform:uppercase}.task-card.is-done{border-color:#58d68d6b}.task-card details{color:#d8e3f2}.task-card summary{cursor:pointer;color:var(--cyan);font-weight:800}.progress-card{min-width:180px;padding:14px;display:grid;gap:4px}.progress-card strong{font-size:22px}.progress-card span{color:var(--muted);font-size:13px}.handbook-card>span{width:42px;height:42px;display:grid;place-items:center;border-radius:8px;color:#06111f;background:linear-gradient(135deg,var(--cyan),var(--green));font-weight:950}.lab-shell{width:min(100%,1540px);grid-template-columns:282px minmax(600px,1fr) 340px;grid-template-rows:minmax(560px,calc(100vh - 230px)) 190px}.tool-rail{padding:14px;gap:14px}.tool-menu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.tool-button{min-height:62px;padding:8px 6px;border-color:#ffffff0f;background:#ffffff09}.tool-drawer{min-height:0;overflow:auto;padding-right:3px}.tool-section{display:none;gap:12px}.tool-section.is-active{display:grid}.tool-section h2{margin:2px 0 0;font-size:19px}.tool-section p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}.tool-hints{display:grid;gap:8px}.tool-hints span,.reagent-info,.heat-control-card,.note-row{border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#ffffff0e;padding:10px}.reagent-info{color:#d8e3f2;font-size:13px;line-height:1.45}.reagent-info strong,.reagent-info span{display:block}.reagent-info span{margin:3px 0 8px;color:var(--cyan);font-size:12px}.heat-control-card{display:grid;gap:12px}.heat-control-card>div{display:flex;align-items:center;gap:8px}.heat-dot{width:13px;height:13px;border-radius:50%;background:#64748b;box-shadow:0 0 0 5px #64748b29}.heat-dot.is-on{background:#f97316;box-shadow:0 0 18px #f97316bf}.heat-control-card label{display:grid;gap:8px;color:var(--muted);font-size:12px;font-weight:800}.heat-control-card input{width:100%;accent-color:#f97316}.note-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.note-list{display:grid;gap:8px}.note-row{color:#dce7f5;font-size:12px;line-height:1.35}.lab-stage{background:radial-gradient(circle at 50% 25%,rgba(255,255,255,.16),transparent 32%),linear-gradient(180deg,#9ba39f,#747d79 49%,#293632 50%,#121a18)}.lab-wall{background:linear-gradient(90deg,rgba(0,0,0,.22),transparent 18%,transparent 82%,rgba(0,0,0,.24)),linear-gradient(180deg,#ffffff29,#ffffff0a),repeating-linear-gradient(90deg,rgba(255,255,255,.04) 0 1px,transparent 1px 52px)}.lab-stand{position:absolute;z-index:2;left:74%;top:74px;width:140px;height:230px;border-left:6px solid rgba(34,39,39,.55);border-bottom:8px solid rgba(34,39,39,.55)}.mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 12px}.mode-button{min-height:34px;border:1px solid rgba(97,162,255,.22);border-radius:8px;color:#dbeafe;background:#0f172a85;font-weight:900}.mode-button.is-active{color:#fff;background:linear-gradient(180deg,#3e7cf0f2,#2563ebd1)}.debug-status{display:grid;gap:4px;margin-bottom:12px;padding:10px;border:1px solid rgba(148,163,184,.18);border-radius:8px;color:var(--muted);background:#0f172a6b;font-size:11px;font-weight:800}.lab-stand span{position:absolute;left:-5px;width:110px;height:5px;border-radius:999px;background:#2227278c}.lab-stand span:nth-child(1){top:44px}.lab-stand span:nth-child(2){top:96px;width:84px}.lab-stand span:nth-child(3){top:148px;width:124px}.shelf-left{width:300px}.bottle-row{max-height:178px;grid-template-columns:repeat(5,1fr);gap:14px 8px;overflow:auto;padding:8px 2px 12px}.reagent-bottle{width:46px;height:72px;border-color:#0f172a8a;background:linear-gradient(90deg,#bfdbfedb,#ffffffeb 48%,#7dd3fcc2)}.reagent-bottle small{position:absolute;left:4px;right:4px;bottom:4px;color:#0f172abf;font-size:7px;text-align:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.reagent-acid{background:linear-gradient(90deg,#fecaca,#fff1f2 48%,#fda4af)}.reagent-base{background:linear-gradient(90deg,#bbf7d0,#f0fdf4 48%,#86efac)}.reagent-salt{background:linear-gradient(90deg,#bfdbfe,#f8fafc 48%,#93c5fd)}.reagent-metal{background:linear-gradient(90deg,#cbd5e1,#f8fafc 48%,#94a3b8)}.reagent-gas{background:linear-gradient(90deg,#cffafe,#ecfeff 48%,#67e8f9)}.reagent-carbonate,.reagent-water{background:linear-gradient(90deg,#e2e8f0,#fff 48%,#cbd5e1)}.drop-zone-mark{color:#dbe8ff5c;background:#ffffff06}.slot-label{position:absolute;z-index:3;border:1px solid rgba(115,214,255,.16);border-radius:999px;color:#e1efffa8;background:#070d146b;padding:6px 10px;font-size:11px;font-weight:800;pointer-events:none}.slot-vessel{left:43%;top:92px}.slot-heater{left:43%;top:286px}.slot-tool{left:8%;top:94px}.workspace-item{border-radius:8px}.workspace-item.is-heat-tool{opacity:1;border-color:#f973166b;box-shadow:0 0 22px #f9731638,0 14px 24px #00000047}.default-apparatus .burner,.default-apparatus .flame{display:none}.workspace-item.is-heat-tool{width:126px;min-height:106px;padding:0;border:0;background:transparent;box-shadow:none;transform:translate(-50%,-50%);overflow:visible}.workspace-item.is-heat-tool.is-burner{top:74%!important}.workspace-item.is-heat-tool.is-hotplate{top:70%!important}.workspace-item.is-heat-tool strong{position:absolute;left:50%;bottom:-16px;transform:translate(-50%);min-width:68px;padding:5px 9px;border:1px solid rgba(115,214,255,.2);border-radius:999px;color:#f8fbff;background:#080d13c7;font-size:11px;text-align:center}.has-heater .reaction-vessel.is-active-container{top:104px}.has-heater .reaction-vessel.vessel-round.is-active-container{top:112px}.has-heater .reaction-vessel.vessel-petri.is-active-container{top:122px}.scene-heater{position:absolute;top:0;right:0;bottom:0;left:0;display:block}.scene-heater.burner-device:before{content:"";position:absolute;left:32px;right:32px;bottom:8px;height:42px;border:1px solid rgba(210,220,230,.5);border-radius:10px 10px 18px 18px;background:radial-gradient(circle at 36% 20%,rgba(255,255,255,.35),transparent 18%),linear-gradient(90deg,#56616d,#d2a857 48%,#36414b);box-shadow:inset 10px 0 18px #ffffff29,0 14px 20px #00000057}.scene-heater.burner-device i{position:absolute;left:54px;bottom:48px;width:18px;height:15px;border-radius:5px 5px 2px 2px;background:#1c2329}.scene-heater.burner-device b{position:absolute;left:60px;bottom:58px;width:6px;height:22px;border-radius:999px;background:#26313a}.scene-heater.burner-device em{position:absolute;left:48px;bottom:72px;width:30px;height:56px;opacity:0;transform:scaleY(.15);transform-origin:bottom;clip-path:polygon(50% 0,78% 31%,66% 100%,34% 100%,18% 31%);background:radial-gradient(circle at 50% 72%,rgba(255,255,255,.96),rgba(255,242,162,.88) 24%,transparent 25%),radial-gradient(circle at 50% 72%,#fff2a2,#ffb22e 48%,#ef5f24 75%);filter:drop-shadow(0 0 16px rgba(255,142,42,.9));transition:opacity .2s ease,transform .2s ease}.workspace-item.is-heat-tool.is-enabled .scene-heater.burner-device em{opacity:1;transform:scaleY(1);animation:flamePulse .18s alternate infinite}.workspace-item.is-heat-tool.is-enabled .scene-heater.burner-device:after{content:"";position:absolute;left:22px;right:22px;bottom:44px;height:76px;border-radius:50%;background:#f973162e;filter:blur(14px)}.scene-heater.hotplate:before{content:"";position:absolute;left:18px;right:18px;bottom:12px;height:34px;border:1px solid rgba(210,220,230,.35);border-radius:10px;background:linear-gradient(180deg,#5b6572,#151d26);box-shadow:0 16px 24px #0000005c,inset 0 1px #ffffff29}.scene-heater.hotplate i{position:absolute;left:39px;right:39px;bottom:33px;height:22px;border:3px solid rgba(148,163,184,.72);border-radius:50%;background:#0f172a80;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.workspace-item.is-heat-tool.is-enabled .scene-heater.hotplate i{border-color:#fb923c;background:#f973162e;box-shadow:0 0 18px #f973169e,inset 0 0 16px #f9731652}.workspace-item.is-heat-tool.is-enabled[data-heat-level="3"] .scene-heater.hotplate i,.workspace-item.is-heat-tool.is-enabled[data-heat-level="3"] .scene-heater.burner-device em{filter:drop-shadow(0 0 24px rgba(255,106,0,1))}.active-experiment{display:grid;gap:4px;margin-bottom:14px;padding:12px;border:1px solid rgba(97,162,255,.22);border-radius:8px;background:#61a2ff17}.active-experiment span{color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase}.active-experiment strong{color:#fff}.backend-status{display:inline-flex;align-items:center;gap:8px;min-height:34px;padding:0 10px;border:1px solid rgba(148,163,184,.22);border-radius:999px;background:#0f172a9e;color:var(--muted);font-size:11px;font-weight:900;white-space:nowrap}.backend-status span{width:8px;height:8px;border-radius:50%;background:#94a3b8;box-shadow:0 0 0 4px #94a3b81f}.backend-status.is-connected{border-color:#2dd4bf52;color:#d8fffb}.backend-status.is-connected span{background:#2dd4bf;box-shadow:0 0 0 4px #2dd4bf24,0 0 14px #2dd4bf70}.backend-status.is-demo span{background:#fbbf24;box-shadow:0 0 0 4px #fbbf2424}.backend-status.is-error{border-color:#f8717152;color:#fee2e2}.backend-status.is-error span{background:#f87171;box-shadow:0 0 0 4px #f8717124}.progress-summary{display:grid;gap:4px;margin-bottom:14px;padding:12px;border:1px solid rgba(45,212,191,.2);border-radius:8px;background:linear-gradient(135deg,#2dd4bf17,#60a5fa14)}.progress-summary span,.progress-summary small{color:var(--muted);font-size:11px;font-weight:800}.progress-summary strong{color:#efffff;font-size:14px}.auth-widget{position:relative}.auth-panel{position:absolute;top:calc(100% + 12px);right:0;z-index:80;width:min(320px,calc(100vw - 24px));padding:14px;border:1px solid rgba(148,163,184,.22);border-radius:10px;background:#080f1ff5;box-shadow:0 22px 60px #00000057}.auth-panel form,.auth-state{display:grid;gap:10px}.auth-panel label{display:grid;gap:5px;color:var(--muted);font-size:12px;font-weight:800}.auth-panel input{width:100%;min-height:38px;border:1px solid rgba(148,163,184,.22);border-radius:8px;padding:0 10px;color:#eef6ff;background:#0f172abd}.auth-switch{margin-top:10px;border:0;color:#9bdcff;background:transparent;font-weight:800}.auth-message{min-height:18px;margin:10px 0 0;color:var(--muted);font-size:12px}.auth-message[data-tone=success]{color:#8ff5d2}.auth-message[data-tone=warning]{color:#facc15}.auth-message[data-tone=error]{color:#fecaca}.dock-items{grid-template-columns:repeat(9,minmax(90px,1fr))}.dock-item{min-height:126px;align-content:center;padding:10px}.dock-item small{min-height:30px;color:var(--muted);font-size:10px;line-height:1.25}.item-icon.rack:before,.placed-visual.rack:before{top:25px;right:3px;bottom:9px;left:3px;border-radius:4px;border-top-width:5px}.item-icon.rod:before,.placed-visual.rod:before{top:23px;right:3px;bottom:19px;left:3px;border:0;border-radius:999px;background:#e2e8f0;transform:rotate(22deg)}.item-icon.dish:before,.placed-visual.dish:before{top:24px;right:5px;bottom:10px;left:5px;border-radius:50%}.item-icon.clamp:before,.placed-visual.clamp:before{top:12px;right:8px;bottom:12px;left:8px;border-radius:16px 16px 6px 6px;border-left-width:5px;background:transparent}.item-icon.hotplate:before,.placed-visual.hotplate:before{top:28px;right:4px;bottom:8px;left:4px;border-radius:8px;background:linear-gradient(180deg,#475569,#111827)}.item-icon.hotplate:after,.placed-visual.hotplate:after{content:"";position:absolute;left:13px;right:13px;top:14px;height:18px;border-radius:50%;border:2px solid #fb923c;box-shadow:0 0 12px #fb923c9e}.item-icon.thermometer:before,.placed-visual.thermometer:before{top:2px;right:20px;bottom:8px;left:20px;border-radius:999px}.item-icon.ph:before,.placed-visual.ph:before{content:"pH";top:8px;right:8px;bottom:8px;left:8px;display:grid;place-items:center;border-radius:8px;color:#06111f;background:linear-gradient(135deg,#73d6ff,#58d68d);font-weight:950}.item-icon.timer:before,.placed-visual.timer:before{top:8px;right:8px;bottom:8px;left:8px;border-radius:50%}.item-icon.timer:after,.placed-visual.timer:after{content:"";position:absolute;left:24px;top:17px;width:2px;height:15px;background:#e2e8f0;transform-origin:bottom;transform:rotate(45deg)}.is-heating .burner{opacity:1}@media(max-width:1280px){.lab-shell{grid-template-columns:250px minmax(500px,1fr) 320px}.dock-items,.reaction-catalog,.task-list,.handbook-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.periodic-workspace{grid-template-columns:1fr}.element-card{position:static;max-height:none}}@media(max-width:1024px){.lab-shell{grid-template-columns:1fr;grid-template-rows:auto 560px auto auto;grid-template-areas:"tools" "stage" "panel" "dock"}.tool-rail{border-right:0;border-bottom:1px solid var(--line)}.tool-menu{grid-template-columns:repeat(5,minmax(92px,1fr));overflow-x:auto}.section-head{align-items:stretch;flex-direction:column}}@media(max-width:760px){.lab-brief{padding:0 9px}.lab-brief>div{min-height:0}.study-layout{width:min(100% - 18px,1480px);padding:14px}.periodic-grid{grid-template-columns:repeat(18,54px);grid-template-rows:repeat(9,64px)}.element-detail-row{grid-template-columns:1fr;gap:4px}.element-detail-summary,.element-visual-block{grid-template-columns:1fr}.element-detail-row strong{text-align:left}.reaction-catalog,.task-list,.handbook-grid,.dock-items{grid-template-columns:1fr}.tool-menu{grid-template-columns:repeat(5,104px)}.tool-rail{flex-direction:column}.lab-stage{height:560px}}.bench-dropzone:after{content:"";position:absolute;left:34%;right:34%;top:42px;height:252px;border:1px solid rgba(115,214,255,.14);border-radius:18px;background:radial-gradient(ellipse at 50% 46%,rgba(115,214,255,.09),transparent 64%);pointer-events:none;z-index:1}.slot-label.slot-vessel{left:45%;top:74px}.slot-label.slot-heater{left:44%;top:300px}.slot-label.slot-tool{left:8%;top:112px}.workspace-item.is-gas-tube-tool{width:118px;min-height:72px;background:#0f172a85;border-color:#d7e6f547}.equipment-dock{min-width:0}.dock-items{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(116px,142px);grid-template-columns:none;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin}.dock-item{min-width:0}.dock-item strong,.dock-item small{overflow-wrap:anywhere}.reagent-bottle{min-width:46px}.reagent-bottle span{font-weight:900}.reagent-pick,.dock-pick{position:relative}.reagent-pick.is-assignment-blocked,.dock-pick.is-assignment-blocked{opacity:.42}.reagent-pick.is-assignment-blocked [aria-disabled=true],.dock-pick.is-assignment-blocked button:disabled{cursor:not-allowed}.reagent-pick{display:grid;justify-items:center}.reagent-pick.is-created .reagent-bottle{outline:2px solid rgba(45,212,191,.28);outline-offset:2px}.quick-add{position:absolute;z-index:12;width:28px;height:28px;min-height:0;padding:0;display:grid;place-items:center;border:1px solid rgba(115,214,255,.42);border-radius:9px;color:#06111f;background:#5eead4 linear-gradient(135deg,var(--cyan),var(--green));font-size:18px;font-weight:950;line-height:1;box-shadow:0 10px 22px #0000003d}.reagent-pick .quick-add{right:0;top:-12px}.hide-reagent{position:absolute;z-index:13;left:0;top:-12px;width:24px;height:24px;min-height:0;display:grid;place-items:center;border:1px solid rgba(248,113,113,.42);border-radius:8px;color:#fecaca;background:#7f1d1db8;font-size:16px;font-weight:950;line-height:1}.hide-reagent:hover{transform:translateY(-2px);border-color:#f87171b8}.dock-add{right:8px;top:8px}.quick-add:hover{transform:translateY(-2px);filter:brightness(1.05)}body.theme-light .tool-rail,body.theme-light .equipment-dock,body.theme-light .experiment-panel,body.theme-light .tool-drawer,body.theme-light .active-experiment,body.theme-light .progress-card,body.theme-light .result-card,body.theme-light .auth-panel{background:#ffffffdb;border-color:#1e588029;box-shadow:0 16px 44px #1f4c6e1a}body.theme-light .tool-button,body.theme-light .dock-tab,body.theme-light .secondary-action,body.theme-light .auth-panel input,body.theme-light .reagent-info,body.theme-light .measure-grid span,body.theme-light .heat-control-card,body.theme-light .note-list,body.theme-light .manual-note,body.theme-light textarea{color:var(--text);background:#10344e0e;border-color:#1e588024}body.theme-light .tool-button.is-active,body.theme-light .tool-button:hover{color:#fff;background:linear-gradient(180deg,#3e7cf0eb,#2f5eb0e0);border-color:#2f5eb057}body.theme-light .dock-item,body.theme-light .reagent-card{color:var(--text);background:#ffffffb8;border-color:#1e588024}body.theme-light .equipment-dock{background:linear-gradient(180deg,#fffffff5,#f4f9fcf5);border-top-color:#1e58801f}body.theme-light .dock-tab.is-active{color:#0f72b7;background:#0f72b714}body.theme-light .dock-item strong{color:var(--text)}body.theme-light .dock-item small,body.theme-light .tool-section p,body.theme-light .experiment-panel p,body.theme-light .auth-panel label,body.theme-light .auth-state small{color:var(--muted)}body.theme-light .auth-panel input{color:var(--text)}body.theme-light .tab,body.theme-light .prep-list span,body.theme-light .condition-row,body.theme-light .result-details,body.theme-light .result-message,body.theme-light .composition-box,body.theme-light .composition-list span{color:var(--text);background:#ffffffb8;border-color:#1e588024}body.theme-light .tab.is-active{color:#0f72b7;border-color:#0f72b7;background:#0f72b714}body.theme-light .equation,body.theme-light .condition-row strong,body.theme-light .result-details strong,body.theme-light .result-summary strong,body.theme-light .result-summary p,body.theme-light .switch,body.theme-light .active-experiment strong,body.theme-light .progress-card strong,body.theme-light #instructionPanel h1,body.theme-light #instructionPanel strong{color:var(--text)}body.theme-light .condition-row span,body.theme-light .result-details span,body.theme-light .composition-box>span,body.theme-light .result-summary span,body.theme-light .active-experiment span,body.theme-light .progress-card span,body.theme-light #instructionPanel p,body.theme-light #instructionPanel li{color:var(--muted)}body.theme-light .study-layout{color:var(--text);background:linear-gradient(180deg,#ffffffeb,#f2f8fcf0);border-color:#1e588029;box-shadow:0 24px 70px #1f4c6e1f}body.theme-light .section-head h1,body.theme-light .element-card h2,body.theme-light .element-card h3,body.theme-light .reaction-card h2,body.theme-light .task-card h2,body.theme-light .handbook-card h2{color:var(--text)}body.theme-light .section-head p,body.theme-light .element-card p,body.theme-light .reaction-card p,body.theme-light .task-card p,body.theme-light .task-card details,body.theme-light .handbook-card p{color:var(--muted)}body.theme-light .search-field{color:var(--muted)}body.theme-light .search-field input,body.theme-light .tool-section textarea{color:var(--text);background:#ffffffc7;border-color:#1e588029}body.theme-light .filter-chip{color:#17344d;background:#ffffffb3;border-color:#1e58802e}body.theme-light .filter-chip.is-active,body.theme-light .filter-chip:hover{color:#fff;background:linear-gradient(180deg,#2563eb,#1e40af);border-color:#2f5eb057}body.theme-light .mini-filter-chip{color:#17344d;background:#ffffffb8;border-color:#1e588029}body.theme-light .mini-filter-chip.is-active,body.theme-light .mini-filter-chip:hover{color:#fff;background:#2f5eb0e6}body.theme-light .reagent-empty,body.theme-light .reaction-card .reaction-evidence{color:var(--muted)}body.theme-light .periodic-workspace,body.theme-light .reaction-catalog,body.theme-light .task-list,body.theme-light .handbook-grid{color:var(--text)}body.theme-light .periodic-grid{background:radial-gradient(circle at 50% 0%,rgba(97,162,255,.1),transparent 36%),#ffffffbd;border-color:#1e588029}body.theme-light .element-card,body.theme-light .reaction-card,body.theme-light .task-card,body.theme-light .handbook-card,body.theme-light .progress-card{color:var(--text);background:#ffffffc7;border-color:#1e588029;box-shadow:0 16px 34px #1f4c6e1a}body.theme-light .reaction-card dl{color:var(--text)}body.theme-light .reaction-card dt{color:var(--muted)}body.theme-light .reaction-card dd,body.theme-light .info-grid strong,body.theme-light .measure-grid strong{color:var(--text)}body.theme-light .quality-badge{color:#166534;background:#16a34a1f}body.theme-light .quality-badge[data-quality=generated]{color:#075985;background:#0ea5e91f}body.theme-light .quality-badge[data-quality=needs-review]{color:#92400e;background:#f59e0b29}body.theme-light .info-grid span,body.theme-light .measure-grid span{color:var(--muted);background:#10344e0e;border-color:#1e588024}body.theme-light .element-expand-button{color:#17344d;background:#ffffffb8;border-color:#2f5eb047}body.theme-light .element-expand-button:hover,body.theme-light .element-expand-button[aria-expanded=true]{color:#fff;background:linear-gradient(180deg,#3e7cf0eb,#2f5eb0e0)}body.theme-light .element-expanded-panel{border-color:#1e588024}body.theme-light .electron-config-block,body.theme-light .element-detail-list,body.theme-light .element-detail-row,body.theme-light .element-detail-summary span,body.theme-light .atom-diagram{background:#10344e0e;border-color:#1e588024}body.theme-light .atom-ring{border-color:#1e588038}body.theme-light .element-detail-row+.element-detail-row{border-color:#1e58801f}body.theme-light .electron-config-block strong,body.theme-light .element-detail-row strong,body.theme-light .element-detail-summary strong{color:var(--text)}body.theme-light .electron-shells span{color:var(--text);background:#61a2ff1f;border-color:#2f5eb033}.reagent-carbonate{background:linear-gradient(90deg,#e7e5e4,#fff7ed 48%,#fed7aa)}.reagent-water{background:linear-gradient(90deg,#bfdbfe,#eff6ff 48%,#7dd3fc)}@media(max-width:1024px){.experiment-panel{max-height:none}.dock-items{grid-auto-columns:minmax(124px,158px)}}@media(max-width:760px){.lab-shell{min-height:auto}.tool-rail{position:relative;z-index:12}.tool-menu{display:grid;grid-auto-flow:column;grid-auto-columns:104px;grid-template-columns:none;overflow-x:auto}.tool-drawer{max-height:220px}.lab-stage{height:500px}.lab-wall{top:0;right:0;bottom:46%;left:0}.shelf-left{width:246px;transform:scale(.72)}.drop-zone-mark{font-size:10px}.reaction-vessel{top:104px}.workspace-item.is-heat-tool{top:76%!important}.dock-tabs{overflow-x:auto}.dock-tab{white-space:nowrap}}.lab-stage{background:radial-gradient(circle at 52% 22%,rgba(255,255,255,.14),transparent 30%),linear-gradient(180deg,#7c837e,#656d68 43%,#222927 44%,#111817)}.lab-wall{top:0;right:0;bottom:43%;left:0;background:linear-gradient(90deg,rgba(0,0,0,.24),transparent 17%,transparent 83%,rgba(0,0,0,.26)),radial-gradient(circle at 52% 44%,rgba(255,255,255,.14),transparent 40%),repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 1px,transparent 1px 46px)}.bench-dropzone{height:61%}.bench-back{top:0;height:28px;background:linear-gradient(180deg,#343a37b8,#1a1f1deb);box-shadow:0 -10px 24px #0000003d}.bench-surface{top:28px;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 50% 12%,rgba(118,179,255,.08),transparent 34%),linear-gradient(180deg,#1d2724,#151d1b 54%,#101513)}.drop-zone-mark,.slot-label,.bench-dropzone:after{opacity:0}.bench-dropzone.is-over .drop-zone-mark,.bench-dropzone.is-over .slot-label,.bench-dropzone.is-over:after{opacity:1}.shelf-left{left:20px;top:34px;width:320px}.shelf-right{right:34px;top:118px;width:170px;opacity:.68}.wall-periodic{left:77%;top:22px;width:296px;height:205px;background:#ebebe2c7;box-shadow:0 18px 32px #00000038}.wall-periodic .mini-table{height:160px}.lab-stand{left:73%;top:94px;opacity:.8}.tube-rack{left:26px;top:206px;width:250px;height:74px;opacity:.9}.tube-rack span{height:64px}.jar-demo,.wash-bottle,.mortar,.pipette{display:block;opacity:.96;z-index:5}.jar-demo{left:64%;top:182px;width:72px;height:86px;padding-top:40px;border-color:#0f12106b;background:linear-gradient(180deg,#f2eee5,#d6d0c3);box-shadow:0 18px 24px #0000003d}.jar-demo:before{top:-15px;background:linear-gradient(180deg,#f8f5ed,#cfc8ba)}.wash-bottle{right:48px;top:194px;background:linear-gradient(180deg,#ebf5ffb3,#688faab8);box-shadow:0 18px 24px #0003}.mortar{right:174px;top:262px;display:block;background:linear-gradient(180deg,#ebe7df,#bab4a9);box-shadow:0 16px 20px #00000038}.pipette{right:246px;top:326px;width:128px;height:7px;background:linear-gradient(90deg,#b6b1a9,#ece7dc 48%,#9d978e);box-shadow:0 10px 18px #0003}.tripod{top:88px;height:190px}.has-heater .tripod,.heater-enabled .tripod,body[data-active-tool=heat] .tripod{opacity:1}body[data-active-tool=heat]:not(.has-heater) .tripod{opacity:.72}body[data-active-tool=heat]:not(.has-heater) .default-apparatus .burner{display:block;opacity:.74;filter:drop-shadow(0 0 16px rgba(255,146,46,.32))}body[data-active-tool=heat]:not(.heater-enabled) .default-apparatus .flame{display:block;opacity:.55;transform:scaleY(.72)}.tripod-ring{top:73px}.leg{top:92px;height:112px}.workspace-item.is-heat-tool.is-burner{top:76%!important}.workspace-item.is-heat-tool.is-hotplate{top:71%!important}.has-heater .reaction-vessel.is-active-container{top:58px}.has-heater .reaction-vessel.vessel-round.is-active-container{top:66px}.has-heater .reaction-vessel.vessel-petri.is-active-container{top:88px}.reaction-vessel{top:132px}.reaction-vessel.is-active-container{top:104px}.default-apparatus .jar-demo,.default-apparatus .wash-bottle,.default-apparatus .mortar,.default-apparatus .pipette,body.has-vessel-composition .workspace-item.reagent{display:none!important}.vessel-content-badge{position:absolute;right:calc(100% + 22px);top:38px;z-index:18;width:212px;padding:10px;border:1px solid rgba(94,234,212,.34);border-radius:8px;color:#eaffff;background:#071218d1;box-shadow:0 18px 34px #00000047;backdrop-filter:blur(10px)}.vessel-content-badge:after{content:"";position:absolute;left:100%;top:50%;width:26px;height:2px;background:linear-gradient(90deg,#5eead4bf,#5eead400)}.vessel-content-badge p{margin:0 0 7px;color:#99f6e4;font-size:10px;font-weight:950;text-transform:uppercase}.vessel-content-badge>div{display:grid;grid-template-columns:minmax(0,1fr) 14px minmax(0,1fr) auto;gap:6px;align-items:stretch}.vessel-content-chip{min-width:0;display:grid;gap:2px;padding:7px;border:1px dashed rgba(148,163,184,.24);border-radius:7px;background:#0f172a94}.vessel-content-chip.is-filled{border-style:solid;border-color:#2dd4bf6b;background:#14b8a624}.vessel-content-chip b{color:#67e8f9;font-size:10px;line-height:1}.vessel-content-chip strong{color:#f8fbff;font-size:16px;line-height:1.05;overflow:hidden;text-overflow:ellipsis}.vessel-content-chip small{color:var(--muted);font-size:9.5px;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vessel-content-badge i{align-self:center;color:#5eead4;font-style:normal;font-weight:950}.vessel-content-badge em{align-self:center;padding:4px 6px;border-radius:999px;color:#ccfbf1;background:#14b8a624;font-size:10px;font-style:normal;font-weight:950}.workspace-item.reagent{left:64%!important;top:53%!important;width:70px;min-height:90px;border:0;border-radius:8px;color:#121212;background:linear-gradient(90deg,#9a7a47,#d7bb76 50%,#836335);box-shadow:0 16px 26px #00000047}.workspace-item.reagent:nth-child(2n){left:74%!important;top:61%!important}.reaction-vessel[data-precipitate=white] .precipitate,.reaction-vessel[data-precipitate=white] .precip-particles span{background:linear-gradient(180deg,#fff,#cbd5e1)}.reaction-vessel[data-precipitate=blue] .precipitate,.reaction-vessel[data-precipitate=blue] .precip-particles span{background:linear-gradient(180deg,#93c5fd,#1d4ed8)}.reaction-vessel[data-precipitate=brown] .precipitate,.reaction-vessel[data-precipitate=brown] .precip-particles span{background:linear-gradient(180deg,#a16207,#63350f)}.reaction-vessel[data-precipitate=yellow] .precipitate,.reaction-vessel[data-precipitate=yellow] .precip-particles span{background:linear-gradient(180deg,#fde047,#d97706)}.reaction-vessel[data-precipitate=green] .precipitate,.reaction-vessel[data-precipitate=green] .precip-particles span{background:linear-gradient(180deg,#86efac,#166534)}.reaction-vessel[data-precipitate=black] .precipitate,.reaction-vessel[data-precipitate=black] .precip-particles span{background:linear-gradient(180deg,#374151,#111827)}.reaction-vessel[data-precipitate=red] .precipitate,.reaction-vessel[data-precipitate=red] .precip-particles span{background:linear-gradient(180deg,#fca5a5,#b91c1c)}.reaction-vessel[data-precipitate=pale-yellow] .precipitate,.reaction-vessel[data-precipitate=pale-yellow] .precip-particles span{background:linear-gradient(180deg,#fef9c3,#eab308)}.reaction-vessel.has-explosion:before{content:"";position:absolute;top:20%;right:20%;bottom:20%;left:20%;border:3px solid rgba(255,255,255,.9);border-radius:50%;pointer-events:none;z-index:12;animation:safeShockwave .72s ease-out forwards}.reaction-vessel.has-explosion{animation:safeExplosionShake .28s linear 2}.reaction-spark{position:absolute;left:50%;top:48%;width:5px;height:5px;border-radius:50%;pointer-events:none;z-index:13;background:#fbbf24;box-shadow:0 0 14px #fbbf24e6;animation:safeSpark .76s ease-out forwards}@keyframes safeShockwave{0%{transform:scale(.2);opacity:.9}to{transform:scale(2.6);opacity:0}}@keyframes safeSpark{0%{transform:translate(-50%,-50%) rotate(var(--spark-angle)) translate(0);opacity:1}to{transform:translate(-50%,-50%) rotate(var(--spark-angle)) translate(78px);opacity:0}}@keyframes safeExplosionShake{0%,to{transform:translate(0)}33%{transform:translate(-2px)}66%{transform:translate(2px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}.reaction-particle-canvas{display:none}}.lab-shell{width:min(100%,1760px);height:calc(100vh - 58px);min-height:660px;grid-template-columns:clamp(220px,16vw,280px) minmax(680px,1fr) clamp(320px,23vw,400px);grid-template-rows:minmax(0,1fr) minmax(150px,210px);gap:0;overflow:hidden}.tool-rail,.lab-stage,.experiment-panel,.equipment-dock{min-width:0;min-height:0}.tool-rail{padding:14px;overflow:hidden}.tool-menu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tool-button{min-height:64px}.tool-drawer{min-height:0;overflow:auto}.lab-stage{min-height:420px}.equipment-dock{max-height:210px;overflow:hidden}.experiment-panel{padding:0;overflow:hidden}.lab-sidebar-scroll{flex:1 1 auto;min-height:0;overflow:auto;display:grid;align-content:start;gap:12px;padding:16px 18px 14px;scrollbar-width:thin}.scenario-card,.progress-card,.mode-card,.result-card,.reaction-signs{border-radius:8px}.scenario-card{display:grid;gap:5px;padding:12px;border:1px solid rgba(148,163,184,.16);background:#ffffff0a}.scenario-card span,.progress-card span,.result-label,.result-summary span,.reaction-signs>span{color:var(--muted);font-size:11px;font-weight:900;letter-spacing:0;text-transform:uppercase}.scenario-card strong{color:#f8fbff;font-size:15px;line-height:1.25}.scenario-card em,.reaction-badge{width:fit-content;max-width:100%;padding:4px 8px;border:1px solid rgba(125,211,252,.24);border-radius:999px;color:#dff8ff;background:#0ea5e91f;font-size:11px;font-style:normal;font-weight:900;line-height:1.2}.scenario-checklist{display:grid;gap:8px;margin:10px 0;padding:10px;border:1px solid rgba(148,163,184,.16);border-radius:8px;background:#0f172a75}.scenario-checklist>div{display:grid;gap:5px}.scenario-checklist>div>span{color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase}.scenario-checklist ul{display:grid;gap:5px;margin:0;padding:0;list-style:none}.scenario-check{display:flex;align-items:center;gap:7px;min-height:28px;padding:5px 7px;border:1px solid rgba(148,163,184,.14);border-radius:8px;color:#dbeafe;background:#080f1f70}.scenario-check em{margin-left:auto;color:var(--muted);font-size:10px;font-style:normal;font-weight:950;text-transform:uppercase}.scenario-check span{display:grid;flex:0 0 18px;width:18px;height:18px;place-items:center;border-radius:50%;color:#94a3b8;background:#94a3b824;font-size:12px;font-weight:950}.scenario-check strong{min-width:0;color:inherit;font-size:13px;line-height:1.25;overflow-wrap:anywhere}.scenario-check.added{border-color:#2dd4bf4d;color:#ccfbf1;background:#14b8a61f}.scenario-check.added span{color:#052e2b;background:#5eead4}.scenario-check.added em{color:#99f6e4}.scenario-check.optional{border-color:#fbbf243d;color:#fde68a;background:#fbbf241a}.progress-card{margin:0;padding:12px}.tabs{gap:12px;overflow-x:auto}.tab{white-space:nowrap}.mode-card{margin:0}.tab-panel{padding-top:4px}.tab-panel h2{margin:0 0 10px;color:#f8fbff;font-size:15px}.result-message.result-card{min-height:0;margin:0;padding:13px;border-color:#94a3b82e;background:linear-gradient(180deg,#0f172ab8,#0f172a7a)}.result-summary{gap:9px}.result-summary div{gap:3px;padding:0;border:0;background:transparent}.result-summary strong,.result-summary p{color:#eef6ff;font-size:13px;line-height:1.4}.result-summary details{display:grid;gap:6px}.result-summary summary{cursor:pointer;color:#9bdcff;font-size:12px;font-weight:900}.result-report{display:grid;gap:10px}.result-report-head{display:grid;gap:4px;padding-bottom:8px;border-bottom:1px solid rgba(148,163,184,.16)}.result-report-head strong{color:#f8fbff;font-size:15px;line-height:1.25}.result-report-head span{color:var(--muted);font-size:12px}.status-pill{justify-self:start;padding:4px 8px;border:1px solid rgba(88,214,141,.38);border-radius:999px;color:#bbf7d0;background:#22c55e1f;font-size:11px;font-weight:950}.status-pill.neutral{border-color:#94a3b857;color:#dbeafe;background:#94a3b81f}.report-section{display:grid;gap:5px;padding-top:8px;border-top:1px solid rgba(148,163,184,.12)}.report-section:first-of-type{border-top:0;padding-top:0}.report-section>span{color:#9fb3c8;font-size:10px;font-weight:950;letter-spacing:.06em;text-transform:uppercase}.report-section p,.report-section em{margin:0;color:#eef6ff;font-size:12px;line-height:1.45}.report-section code,.formula-chip code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-size:12px}.report-section>code{display:block;color:#e0f2fe;white-space:normal;line-height:1.45}.formula-list,.sign-list{display:flex;flex-wrap:wrap;gap:6px}.formula-chip,.sign-list b{display:inline-flex;align-items:center;gap:3px;max-width:100%;padding:5px 7px;border:1px solid rgba(125,211,252,.18);border-radius:999px;color:#dff7ff;background:#0f172a70;font-size:11px;line-height:1.25}.formula-chip[data-kind=gas]{border-color:#7dd3fc5c;background:#0e74902e}.formula-chip[data-kind=precipitate]{border-color:#fbbf2447;background:#78350f2e}.save-notice{margin:0;padding:8px 9px;border:1px solid rgba(125,211,252,.18);border-radius:8px;color:#cfeeff;background:#0ea5e914;font-size:12px;line-height:1.35}.result-legacy{display:none!important}.reaction-signs{margin-top:12px;padding-top:12px}.reaction-signs div{gap:7px}.reaction-signs .sign-chip{padding:6px 8px;font-size:11px;line-height:1.2}.lab-actions{flex:0 0 auto;position:sticky;bottom:0;z-index:5;display:grid;grid-template-columns:1fr;gap:9px;margin-top:0;padding:12px 18px 16px;border-top:1px solid rgba(148,163,184,.16);background:linear-gradient(180deg,#0f151deb,#090d12fa);box-shadow:0 -16px 28px #0000002e}.lab-actions .primary-action,.lab-actions .secondary-action{width:100%;min-height:42px}.reaction-vessel.has-explosion{animation:none!important;transform:translate(-50%)}.reaction-vessel.has-explosion .vessel-glass,.micro-shake{animation:flaskMicroShake .42s ease-in-out both}.scene-shake{animation:none!important}@keyframes flaskMicroShake{0%{transform:translateZ(0)}20%{transform:translate3d(-2px,1px,0)}40%{transform:translate3d(2px,-1px,0)}60%{transform:translate3d(-1px,2px,0)}80%{transform:translate3d(1px,-1px,0)}to{transform:translateZ(0)}}body.theme-light .scenario-card,body.theme-light .result-message.result-card{color:var(--text);background:#ffffffc2;border-color:#1e588029}body.theme-light .scenario-card strong,body.theme-light .result-summary strong,body.theme-light .result-summary p,body.theme-light .result-report-head strong,body.theme-light .report-section p,body.theme-light .report-section code,body.theme-light .report-section em,body.theme-light .tab-panel h2{color:var(--text)}body.theme-light .result-report-head span,body.theme-light .report-section>span{color:#526b82}body.theme-light .formula-chip,body.theme-light .sign-list b,body.theme-light .save-notice{color:#16324a;background:#ffffffb8;border-color:#1e58802e}@media(max-width:760px){.vessel-content-badge{right:auto;left:50%;top:-76px;width:min(220px,82vw);transform:translate(-50%)}.vessel-content-badge:after{left:50%;top:100%;width:2px;height:22px;background:linear-gradient(180deg,#5eead4bf,#5eead400)}}body.theme-light .lab-actions{background:linear-gradient(180deg,#ffffffe6,#f4f9fcfa);border-color:#1e588024}body.theme-light .scenario-card em,body.theme-light .reaction-badge{color:#075985;background:#0ea5e91a;border-color:#0ea5e947}body.theme-light .scenario-checklist{background:#ebf6ffb3;border-color:#1e588024}body.theme-light .scenario-checklist>div>span{color:#3a6080}body.theme-light .scenario-check{color:var(--text);background:#ffffffd9;border-color:#1e588024}body.theme-light .scenario-check em{color:var(--muted)}body.theme-light .scenario-check span{color:#2e5f80;background:#1e58801f}body.theme-light .scenario-check.added{color:#065f46;background:#10b9811a;border-color:#10b98152}body.theme-light .scenario-check.added span{color:#064e3b;background:#6ee7b7}body.theme-light .scenario-check.added em{color:#059669}body.theme-light .scenario-check.optional{color:#78350f;background:#fbbf241a;border-color:#fbbf2447}body.theme-light .mode-button{color:var(--text);background:#ffffffb8;border-color:#1e58802e}.vessel-content-badge{width:min(308px,36vw);max-height:232px;overflow:hidden}.vessel-content-badge .vessel-content-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;align-items:stretch}.vessel-content-badge[data-density=large] .vessel-content-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.vessel-content-badge[data-density=list]{max-height:252px}.vessel-content-badge[data-density=list] .vessel-content-grid{grid-template-columns:minmax(0,1fr);max-height:204px;overflow-y:auto;padding-right:3px;scrollbar-width:thin}.vessel-content-badge .vessel-content-chip{min-height:72px;grid-template-columns:24px minmax(0,1fr);grid-template-rows:auto auto auto;align-content:start;gap:3px 7px;border-style:dashed}.vessel-content-badge .vessel-content-chip b{grid-row:1 / span 3;display:grid;width:24px;height:24px;place-items:center;border-radius:50%;color:#052e2b;background:#67e8f9;font-size:11px}.vessel-content-badge .vessel-content-chip strong,.vessel-content-badge .vessel-content-chip small{min-width:0;white-space:normal;overflow-wrap:anywhere}.vessel-content-badge .vessel-content-chip strong{font-size:14px}.vessel-content-badge .vessel-content-chip em{justify-self:start;align-self:start;max-width:100%;padding:2px 6px;border:1px solid rgba(125,211,252,.2);border-radius:999px;color:#bfdbfe;background:#0ea5e91a;font-size:9px;line-height:1.2;text-transform:lowercase}.vessel-content-badge .vessel-content-chip.is-empty{border-color:#94a3b857;background:#0f172a5c}.vessel-content-badge .vessel-content-chip.is-empty b{color:#94a3b8;background:#94a3b829}.vessel-content-badge .vessel-content-chip.is-empty strong{color:#dbeafe;font-size:12px}.vessel-content-badge .vessel-content-chip.is-empty small{color:#94a3b8}.vessel-content-badge>div>i,.vessel-content-badge>div>em{display:none}.reaction-vessel:has(.gas-outlet.is-visible){left:38%}.reaction-vessel:has(.gas-outlet.is-visible) .vessel-content-badge{right:auto;left:-12px;top:-118px;width:min(280px,34vw)}.workspace-item.is-gas-tube-tool{display:none!important}.reaction-vessel:has(.gas-outlet.is-visible) .vessel-neck:after{content:"";position:absolute;left:-6px;right:-6px;top:16px;height:14px;border-radius:4px;background:linear-gradient(180deg,#9a6b3d,#5b3720);box-shadow:inset 0 2px 2px #ffffff2e,0 3px 8px #0000003d}.gas-outlet{--gas-receiver-right: 14px;--gas-receiver-bottom: 8px;--gas-receiver-width: 64px;--gas-receiver-height: 98px;--gas-receiver-liquid-height: 46px;left:68px;top:13px;width:310px;height:176px;z-index:16}.gas-outlet:before{content:"";position:absolute;left:-10px;top:23px;width:32px;height:17px;border-radius:5px;background:linear-gradient(180deg,#9a6b3d,#5b3720);transform:rotate(-2deg);box-shadow:inset 0 2px 2px #ffffff2e,0 5px 10px #0000003d;z-index:4}.gas-outlet:after{content:"";position:absolute;right:var(--gas-receiver-right);bottom:var(--gas-receiver-bottom);width:var(--gas-receiver-width);height:var(--gas-receiver-height);z-index:2;border:2px solid rgba(224,242,254,.78);border-top:0;border-radius:0 0 12px 12px;background:linear-gradient(110deg,#fff3,#ffffff0a);box-shadow:inset 8px 0 12px #ffffff14,0 14px 22px #0003;pointer-events:none}.gas-receiver-liquid{position:absolute;right:calc(var(--gas-receiver-right) + 2px);bottom:calc(var(--gas-receiver-bottom) + 2px);width:var(--gas-receiver-width);height:var(--gas-receiver-liquid-height);z-index:1;border-radius:0 0 10px 10px;background:linear-gradient(180deg,#5bc9f633,#38bdf84d);box-shadow:inset 0 8px 14px #ffffff0d;pointer-events:none}.outlet-line{left:10px;top:17px;width:238px;height:104px;border-width:5px;border-color:#e4f1fbdb;border-radius:0 46px 0 0;z-index:5}.outlet-line:after{content:"";position:absolute;right:-10px;top:79px;width:45px;height:5px;border-radius:999px;background:#e4f1fbdb;transform:rotate(90deg);transform-origin:left center}.outlet-bubble{left:auto;right:33px;top:118px;width:9px;height:9px;border-color:#e0f2fec2;background:#e0f2fe47;box-shadow:10px -8px #e0f2fe52,18px 5px #e0f2fe3d;animation:receiverBubble 1.2s ease-in-out infinite;z-index:6}.reaction-vessel .gas-flow{left:72%;top:24px;width:224px;height:88px;border:0;border-radius:0;background:transparent;box-shadow:none;animation:none}.reaction-vessel .gas-flow:after{content:"→";position:absolute;right:18px;top:14px;color:#e0f2fed1;font-size:18px;font-weight:950}.reaction-vessel .gas-flow span{animation-name:labGasFlowThroughTube}.reaction-vessel .gas-outlet-bubble{left:332px;top:132px;z-index:18;animation-name:labReceiverGasBubble}.reaction-vessel .product-label-gas,.gas-label{left:206px;right:auto;top:2px;z-index:20;white-space:nowrap}.product-label-solution{left:50%;right:auto;top:calc(100% + 8px);bottom:auto;max-width:150px;transform:translate(-50%,6px);white-space:normal;line-height:1.2}@keyframes labGasFlowThroughTube{0%{transform:translateZ(0) scale(.72);opacity:0}18%{opacity:.82}58%{transform:translate3d(118px,-28px,0) scale(1);opacity:.9}to{transform:translate3d(178px,62px,0) scale(.9);opacity:0}}@keyframes labReceiverGasBubble{0%{transform:translateZ(0) scale(.7);opacity:.76}to{transform:translate3d(14px,-34px,0) scale(1.22);opacity:0}}@keyframes receiverBubble{0%,to{opacity:.34;transform:translateY(0)}50%{opacity:.9;transform:translateY(-7px)}}@media(max-width:1440px){.lab-shell{grid-template-columns:clamp(210px,17vw,250px) minmax(560px,1fr) clamp(310px,25vw,360px)}}@media(max-width:1024px){.lab-shell{height:auto;min-height:auto;grid-template-columns:1fr;grid-template-rows:auto minmax(500px,58vh) auto auto;overflow:visible}.tool-rail{padding:12px;overflow:visible}.tool-menu{grid-auto-flow:column;grid-auto-columns:minmax(104px,1fr);grid-template-columns:none;overflow-x:auto}.experiment-panel{max-height:none}.lab-sidebar-scroll{overflow:visible}.lab-actions{position:static;grid-template-columns:1fr 1fr}.equipment-dock{max-height:none}}@media(max-width:760px){.vessel-content-badge{width:min(300px,88vw);max-height:190px}.vessel-content-badge .vessel-content-grid,.vessel-content-badge[data-density=large] .vessel-content-grid,.vessel-content-badge[data-density=grid] .vessel-content-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.vessel-content-badge[data-density=list] .vessel-content-grid{grid-auto-flow:column;grid-auto-columns:minmax(132px,1fr);grid-template-columns:none;max-height:none;overflow-x:auto;overflow-y:hidden;padding:0 0 4px}.vessel-content-badge .vessel-content-chip{min-height:66px}.reaction-vessel:has(.gas-outlet.is-visible){left:30%}.reaction-vessel:has(.gas-outlet.is-visible) .vessel-content-badge{left:0;top:-108px;transform:none;width:min(288px,76vw)}.gas-outlet{left:56px;top:15px;width:224px;height:148px;transform:scale(.82);transform-origin:left top}.outlet-line{width:172px;height:86px}.outlet-line:after{top:63px}.reaction-vessel .gas-flow{left:62%;top:24px;width:154px;height:70px}.reaction-vessel .gas-outlet-bubble{left:224px;top:112px}.reaction-vessel .product-label-gas,.gas-label{left:142px;right:auto;top:0}.reaction-observation-label{max-width:152px;padding:6px 8px}.reaction-observation-gas{right:-16px;top:-58px}.reaction-observation-flow{left:calc(100% + 8px);right:auto;top:96px;max-width:104px}.reaction-observation-flow:before{display:none}.reaction-observation-precipitate,.reaction-observation-color,.reaction-observation-heat{left:-12px;top:auto;bottom:-66px}.product-label-solution{max-width:128px;font-size:10px}.lab-shell{display:grid;grid-template-rows:auto 500px auto auto}.tool-menu{grid-auto-columns:104px}.lab-sidebar-scroll{padding:14px}.lab-actions{grid-template-columns:1fr;padding:12px 14px 16px}.result-summary strong,.result-summary p{overflow-wrap:anywhere}}.bench-dropzone{--heating-center-x: 50%;--heating-vessel-top: 34px}body:has(.lab-shell){overflow-x:hidden}.vessel-content-badge.vessel-content-panel{left:16px;right:auto;top:16px;z-index:72;width:min(238px,calc(50% - 92px));min-width:218px;max-height:min(238px,calc(100% - 30px));overflow:auto;transform:none;border-color:#5eead470;background:#050f18eb;box-shadow:0 18px 38px #00000061,0 0 0 1px #ffffff0f;scrollbar-width:thin}.vessel-content-badge.vessel-content-panel:after{display:none}body.has-heater .reaction-vessel.is-active-container{left:var(--heating-center-x);top:var(--heating-vessel-top)}body.has-heater .reaction-vessel.vessel-round.is-active-container{top:calc(var(--heating-vessel-top) + 8px)}body.has-heater .reaction-vessel.vessel-petri.is-active-container{top:calc(var(--heating-vessel-top) + 18px)}body.has-heater .reaction-vessel:has(.gas-outlet.is-visible),body.heater-enabled .reaction-vessel:has(.gas-outlet.is-visible){left:var(--heating-center-x)}body.has-heater .tripod,body.heater-enabled .tripod{left:var(--heating-center-x);top:calc(var(--heating-vessel-top) + 64px);z-index:6}body.has-heater:has(.reaction-vessel.vessel-round.is-active-container) .tripod,body.heater-enabled:has(.reaction-vessel.vessel-round.is-active-container) .tripod{top:calc(var(--heating-vessel-top) + 92px)}body.has-heater .tripod-ring,body.heater-enabled .tripod-ring{opacity:.78}body.has-heater .workspace-item.is-heat-tool,body.heater-enabled .workspace-item.is-heat-tool{left:var(--heating-center-x)!important;transform:translate(-50%,-50%) scale(.84);transform-origin:center center}body.has-heater .workspace-item.is-heat-tool.is-burner,body.heater-enabled .workspace-item.is-heat-tool.is-burner{top:calc(var(--heating-vessel-top) + 197px)!important}body.has-heater .workspace-item.is-heat-tool.is-hotplate,body.heater-enabled .workspace-item.is-heat-tool.is-hotplate{top:calc(var(--heating-vessel-top) + 190px)!important}body.has-heater .workspace-item.is-heat-tool strong,body.heater-enabled .workspace-item.is-heat-tool strong{bottom:5px}body.has-heater .scene-heater.burner-device em,body.heater-enabled .scene-heater.burner-device em{height:46px;opacity:0;transform:none;animation:none;background:none;filter:none}body.has-heater .scene-heater.burner-device em:before,body.heater-enabled .scene-heater.burner-device em:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;clip-path:polygon(50% 0,78% 31%,66% 100%,34% 100%,18% 31%);background:radial-gradient(circle at 50% 72%,rgba(255,255,255,.96),rgba(255,242,162,.88) 24%,transparent 25%),radial-gradient(circle at 50% 72%,#fff2a2,#ffb22e 48%,#ef5f24 75%);filter:drop-shadow(0 0 16px rgba(255,142,42,.9))}body.has-heater .workspace-item.is-heat-tool.is-enabled .scene-heater.burner-device em,body.heater-enabled .workspace-item.is-heat-tool.is-enabled .scene-heater.burner-device em{opacity:1;transform:none;animation:none}body.has-heater .workspace-item.is-heat-tool.is-enabled .scene-heater.burner-device em:before,body.heater-enabled .workspace-item.is-heat-tool.is-enabled .scene-heater.burner-device em:before{animation:burnerFlameGlow .18s alternate infinite}@keyframes burnerFlameGlow{0%{opacity:.88;filter:drop-shadow(0 0 14px rgba(255,142,42,.82))}to{opacity:1;filter:drop-shadow(0 0 21px rgba(255,142,42,1))}}body.has-heater .default-apparatus .burner,body.has-heater .default-apparatus .flame,body.heater-enabled .default-apparatus .burner,body.heater-enabled .default-apparatus .flame{display:none!important}.reaction-observation-label,.product-label{opacity:1!important;transform:none;animation:none!important}.reaction-observation-label{border-color:#7dd3fc94;color:#f2fbff;background:#040d17f0;box-shadow:0 18px 36px #0000006b,0 0 0 1px #ffffff0f;backdrop-filter:blur(10px)}.reaction-observation-label span{color:#d3e7f5}.result-message.result-card{color:#f2f8ff;background:linear-gradient(180deg,#080f1be6,#080f1bc2);border-color:#94a3b847;backdrop-filter:blur(10px)}.substance-slot-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.substance-slot{min-width:0;display:grid;grid-template-columns:24px minmax(0,1fr);grid-template-rows:auto auto auto;gap:2px 7px;align-content:start;min-height:68px;padding:7px;border:1px solid rgba(148,163,184,.2);border-radius:8px;color:#eaf6ff;background:#0f172a6b}.substance-slot b{grid-row:1 / span 3;display:grid;width:24px;height:24px;place-items:center;border-radius:50%;color:#052e2b;background:#67e8f9;font-size:11px;font-weight:950}.substance-slot strong,.substance-slot small,.substance-slot em{min-width:0;overflow-wrap:anywhere}.substance-slot strong{color:#f8fbff;font-size:14px;line-height:1.15}.substance-slot small{color:#d8e7f4;font-size:11px;line-height:1.2}.substance-slot em{justify-self:start;max-width:100%;padding:2px 6px;border:1px solid rgba(125,211,252,.22);border-radius:999px;color:#bfdbfe;background:#0ea5e91f;font-size:9px;font-style:normal;line-height:1.2;text-transform:lowercase}.substance-slot.is-empty{border-style:dashed;color:#cbd5e1;background:#0f172a42}.substance-slot.is-empty b{color:#94a3b8;background:#94a3b829}body.theme-light .vessel-content-badge.vessel-content-panel,body.theme-light .reaction-observation-label,body.theme-light .result-message.result-card{color:#102033;background:#ffffffeb;border-color:#1e588033}body.theme-light .reaction-observation-label span,body.theme-light .substance-slot small{color:#435b72}body.theme-light .substance-slot{color:#16324a;background:#f5fafdc7;border-color:#1e588029}body.theme-light .substance-slot strong{color:#102033}@media(max-width:1024px){.vessel-content-badge.vessel-content-panel{width:min(280px,calc(50% - 76px));min-width:190px}}@media(max-width:760px){.bench-dropzone{--heating-vessel-top: 34px}body.has-vessel-composition:not(.has-heater) .bench-dropzone{--heating-vessel-top: 178px}.vessel-content-badge.vessel-content-panel{left:10px;right:10px;top:10px;width:auto;min-width:0;max-height:150px;padding:9px}body.has-vessel-composition.has-heater .vessel-content-badge.vessel-content-panel{display:none}body.has-vessel-composition .reaction-vessel.is-active-container{top:var(--heating-vessel-top)}body.has-vessel-composition .reaction-vessel.vessel-round.is-active-container{top:calc(var(--heating-vessel-top) + 8px)}body.has-vessel-composition .reaction-vessel.vessel-petri.is-active-container{top:calc(var(--heating-vessel-top) + 18px)}body.has-heater .reaction-vessel:has(.gas-outlet.is-visible),body.heater-enabled .reaction-vessel:has(.gas-outlet.is-visible){left:50%}body.has-heater .tripod,body.heater-enabled .tripod{top:calc(var(--heating-vessel-top) + 64px)}body.has-heater:has(.reaction-vessel.vessel-round.is-active-container) .tripod,body.heater-enabled:has(.reaction-vessel.vessel-round.is-active-container) .tripod{top:calc(var(--heating-vessel-top) + 92px)}body.has-heater .workspace-item.is-heat-tool.is-burner,body.heater-enabled .workspace-item.is-heat-tool.is-burner{top:calc(var(--heating-vessel-top) + 197px)!important}body.has-heater .workspace-item.is-heat-tool.is-hotplate,body.heater-enabled .workspace-item.is-heat-tool.is-hotplate{top:calc(var(--heating-vessel-top) + 190px)!important}.workspace-item.is-heat-tool strong{bottom:2px}.substance-slot-list{grid-template-columns:minmax(0,1fr)}.substance-slot{min-height:62px}}@keyframes bottleShimmer{0%{background-position:-200% center}to{background-position:200% center}}.reagent-bottle:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.22) 50%,transparent 60%);background-size:200% 100%;opacity:0;transition:opacity .2s ease;pointer-events:none}.reagent-bottle:hover:after{opacity:1;animation:bottleShimmer .7s ease forwards}.reaction-vessel.is-active-container{filter:drop-shadow(0 0 22px rgba(97,162,255,.6))!important}.reaction-vessel.is-active-container .vessel-glass{animation:vesselHaloBreath 2.4s ease-in-out infinite!important;box-shadow:0 0 0 2px #61a2ff85,0 0 36px #61a2ff57,inset 10px 0 16px #ffffff1c!important}@keyframes vesselHaloBreath{0%,to{filter:brightness(1)}50%{filter:brightness(1.06)}}.reaction-vessel.has-explosion:before{border:3px solid rgba(255,200,80,.94)!important;box-shadow:0 0 0 6px #ff78284d,0 0 32px #ffb43c99!important;animation:shockwaveV2 .88s cubic-bezier(.22,1,.36,1) forwards!important}.reaction-vessel.has-explosion .vessel-glass{box-shadow:0 0 0 3px #ffc85080,0 0 52px #ff8c288c,inset 10px 0 16px #ffffff14!important}@keyframes shockwaveV2{0%{transform:scale(.15);opacity:1}to{transform:scale(3.4);opacity:0}}.reaction-spark{background:radial-gradient(circle,#fff8a8,#fbbf24 50%,#f97316)!important;box-shadow:0 0 20px 5px #fbbf24e0,0 0 40px #f9731673!important;width:7px!important;height:7px!important}.reaction-vessel.heat-glow .vessel-glass{box-shadow:0 0 0 2px #fb923c5c,0 0 44px #fb641e8f,0 0 10px #ffc83252,inset 10px 0 16px #ffffff17!important;animation:heatBreathV2 1.1s ease-in-out infinite alternate!important}@keyframes heatBreathV2{0%{box-shadow:0 0 0 2px #fb923c47,0 0 28px #fb641e61,inset 10px 0 16px #ffffff17}to{box-shadow:0 0 0 3px #fbbe3c70,0 0 58px #fb641ead,0 0 14px #ffc8324d,inset 10px 0 16px #ffffff17}}.reaction-vessel.has-flash .flash{animation:flashV2 .88s ease-out forwards!important;background:radial-gradient(circle at 50% 42%,#fff8d6,#ffe580 28%,#ffc840 52%,transparent 68%)!important;filter:blur(.8px)!important}@keyframes flashV2{0%{opacity:0}7%{opacity:.97}20%{opacity:.74}42%{opacity:.22}to{opacity:0}}.reaction-vessel.has-flame:after{background:radial-gradient(ellipse at 50% 88%,rgba(255,255,255,.98) 0%,rgba(255,255,210,.9) 10%,transparent 24%),radial-gradient(circle at 50% 72%,#fff7b2,#ffcd40 30%,#ff8c20 58%,#e83b00 80%)!important;filter:drop-shadow(0 0 24px rgba(255,165,50,.92)) drop-shadow(0 -4px 16px rgba(255,220,60,.65))!important}.gas-bubble{box-shadow:0 0 7px #61dcff99,inset 0 0 4px #ffffff4d!important}.product-gas-column span{box-shadow:0 0 9px 3px #c8e6ff42!important;filter:blur(.4px)!important}.precip-particles span{box-shadow:0 0 6px #ffffff8c!important}@keyframes labelSlideIn{0%{opacity:0;transform:translateY(7px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.reaction-observation-label{animation:labelSlideIn .3s cubic-bezier(.34,1.56,.64,1) both!important;backdrop-filter:blur(12px)!important;box-shadow:0 8px 34px #00000057,0 0 0 1px #61a2ff2e!important}.reaction-observation-label.reaction-observation-gas{border-color:#61dcff85!important;background:linear-gradient(135deg,#0a1626eb,#061628e0)!important}.reaction-observation-label.reaction-observation-precipitate{border-color:#fac85085!important;background:linear-gradient(135deg,#1e1408eb,#120c04e0)!important}.reaction-observation-label.reaction-observation-heat{border-color:#fb783c85!important;background:linear-gradient(135deg,#200e08eb,#140804e0)!important}.reaction-observation-label.reaction-observation-color{border-color:#a0dc7885!important;background:linear-gradient(135deg,#0a1c12eb,#06120ae0)!important}.product-label{backdrop-filter:blur(14px)!important;box-shadow:0 12px 44px #00000061!important;animation:labelSlideIn .3s .05s cubic-bezier(.34,1.56,.64,1) both!important}@keyframes crystalGlitter{0%,to{opacity:.72;filter:brightness(1)}50%{opacity:1;filter:brightness(1.35) saturate(1.5)}}.product-crystals span{animation:crystalGlitter 1.4s ease-in-out infinite!important}@keyframes shakeV2{0%,to{transform:translate(-50%)}14%{transform:translate(calc(-50% - 3px)) rotate(-.4deg)}29%{transform:translate(calc(-50% + 3px)) rotate(.4deg)}43%{transform:translate(calc(-50% - 2px)) rotate(-.2deg)}57%{transform:translate(calc(-50% + 2px)) rotate(.2deg)}71%{transform:translate(calc(-50% - 1px))}86%{transform:translate(calc(-50% + 1px))}}.reaction-vessel.scene-shake{animation:shakeV2 .28s linear 2!important}.bench-dropzone.is-over .bench-surface{background:radial-gradient(ellipse at 50% 0%,rgba(97,162,255,.2),transparent 44%),linear-gradient(180deg,#2e3a36,#121716)!important;box-shadow:inset 0 0 0 2px #61a2ffb3!important}@keyframes toolPulse{0%,to{box-shadow:none}50%{box-shadow:0 0 0 2px #61a2ff61}}.tool-button.is-active{animation:toolPulse 2s ease-in-out infinite!important}.liquid-fill-indicator{position:absolute;left:var(--vessel-liquid-inline-inset);right:var(--vessel-liquid-inline-inset);bottom:var(--vessel-liquid-bottom);height:0;z-index:2;border-radius:0;background:linear-gradient(180deg,#ebf8fc1f,#aad7e614);opacity:0;transition:var(--vessel-liquid-transition),opacity .3s ease,background .6s ease;pointer-events:none}.liquid-fill-indicator.is-visible{height:var(--vessel-liquid-level);opacity:1}.reaction-vessel[data-indicator-active=true][data-ph="1"] .liquid-fill-indicator,.reaction-vessel[data-indicator-active=true][data-ph="2"] .liquid-fill-indicator{background:linear-gradient(180deg,#f871718c,#b91c1c9e)}.reaction-vessel[data-indicator-active=true][data-ph="3"] .liquid-fill-indicator,.reaction-vessel[data-indicator-active=true][data-ph="4"] .liquid-fill-indicator{background:linear-gradient(180deg,#fb923c8c,#c2410c99)}.reaction-vessel[data-indicator-active=true][data-ph="5"] .liquid-fill-indicator,.reaction-vessel[data-indicator-active=true][data-ph="6"] .liquid-fill-indicator{background:linear-gradient(180deg,#facc1580,#a1620799)}.reaction-vessel[data-indicator-active=true][data-ph="8"] .liquid-fill-indicator,.reaction-vessel[data-indicator-active=true][data-ph="9"] .liquid-fill-indicator{background:linear-gradient(180deg,#34d39985,#065f4699)}.reaction-vessel[data-indicator-active=true][data-ph="10"] .liquid-fill-indicator,.reaction-vessel[data-indicator-active=true][data-ph="11"] .liquid-fill-indicator,.reaction-vessel[data-indicator-active=true][data-ph="12"] .liquid-fill-indicator,.reaction-vessel[data-indicator-active=true][data-ph="13"] .liquid-fill-indicator{background:linear-gradient(180deg,#8b5cf685,#4c1d959e)}.reaction-vessel[data-reaction-intensity=steady] .gas-flow,.reaction-vessel[data-reaction-intensity=steady] .gas-bubble,.reaction-vessel[data-reaction-intensity=steady] .gas-outlet-bubble{filter:saturate(.8)}.reaction-vessel[data-reaction-intensity=decay] .gas-flow,.reaction-vessel[data-reaction-intensity=decay] .gas-bubble,.reaction-vessel[data-reaction-intensity=decay] .gas-outlet-bubble{filter:saturate(.55)}#phValue.ph-acid-strong{color:#fca5a5}#phValue.ph-acid{color:#fdba74}#phValue.ph-neutral{color:#86efac}#phValue.ph-base{color:#67e8f9}#phValue.ph-base-strong{color:#c4b5fd}.condition-extra-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-top:1px solid rgba(148,163,184,.12);flex-wrap:wrap}.condition-extra-row>span{min-width:90px;color:var(--muted, #94a3b8);font-size:12px;font-weight:900}.catalyst-picker,.concentration-picker{display:flex;gap:4px;flex-wrap:wrap}.catalyst-btn,.conc-btn{min-height:28px;padding:0 9px;border:1px solid rgba(148,163,184,.22);border-radius:6px;color:#dce7f5;background:#0f172a8f;font-size:12px;font-weight:900;cursor:pointer;transition:border-color .14s ease,background .14s ease,color .14s ease}.catalyst-btn:hover,.conc-btn:hover{border-color:#7dd3fc61;background:#0e749024}.catalyst-btn.is-active,.conc-btn.is-active{border-color:#2dd4bf80;background:#14b8a629;color:#ecfeff}.conc-btn[data-conc=concentrated].is-active{border-color:#fbbf2480;background:#b4530929;color:#fde68a}.conc-btn[data-conc=dilute].is-active{border-color:#7dd3fc66;background:#082f4938;color:#bae6fd}.vessel-content-chip{position:relative}.chip-remove{position:absolute;top:3px;right:3px;width:18px;height:18px;border:0;border-radius:50%;color:#94a3b8b3;background:#0f172a99;font-size:13px;line-height:1;cursor:pointer;display:grid;place-items:center;transition:color .12s ease,background .12s ease}.chip-remove:hover{color:#fca5a5;background:#7f1d1d7a}.bottle-button.is-compatible,[data-reagent-id].is-compatible{box-shadow:0 0 0 2px #2dd4bf7a!important;border-color:#2dd4bf80!important}.bottle-button.is-in-vessel,[data-reagent-id].is-in-vessel{opacity:.55;box-shadow:0 0 0 2px #94a3b847!important}.gas-profile-section .gas-profile-card{display:grid;gap:3px;padding:7px 9px;border:1px solid rgba(125,211,252,.22);border-radius:7px;background:#082f4938}.gas-profile-card strong{color:#e0faff;font-size:15px}.gas-profile-card p{margin:0;color:#cbd5e1;font-size:12px;line-height:1.35}.gas-profile-card em{color:#94a3b8b3;font-size:11px;font-style:normal}.lab-history-panel{padding:10px 12px 12px;border-top:1px solid rgba(148,163,184,.14);background:#080f1f61}.lab-history-panel[hidden]{display:none!important}.lab-history-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.lab-history-head strong{color:#f8fbff;font-size:13px}.lab-history-clear{border:0;background:none;color:var(--muted, #94a3b8);font-size:11px;cursor:pointer}.lab-history-clear:hover{color:#fca5a5}.lab-history-list{display:grid;gap:6px;max-height:220px;overflow:auto}.lab-history-item{padding:7px 9px;border:1px solid rgba(148,163,184,.13);border-radius:7px;background:#0f172a75}.lhi-head{display:flex;justify-content:space-between;align-items:flex-start;gap:6px;margin-bottom:2px}.lhi-head strong{color:#f8fbff;font-size:12px;line-height:1.3;word-break:break-all}.lhi-head small{color:var(--muted, #94a3b8);font-size:10px;white-space:nowrap}.lab-history-item>em{color:#fde68a;font-size:11px;font-style:normal;display:block}.lab-history-item>span{color:var(--muted, #94a3b8);font-size:11px}.lab-history-empty{color:var(--muted, #94a3b8);font-size:12px;margin:0}.ghost-action.toggle-history-btn,button#toggleLabHistory{margin-top:6px;width:100%;min-height:30px;border:1px dashed rgba(148,163,184,.22);border-radius:7px;color:var(--muted, #94a3b8);background:transparent;font-size:12px;font-weight:900;cursor:pointer;transition:color .14s ease,border-color .14s ease}button#toggleLabHistory:hover{color:#dce7f5;border-color:#94a3b861}button#showSolution{background:#14b8a61a;border-color:#2dd4bf4d;color:#a7f3d0}button#showSolution:hover{background:#14b8a633;border-color:#2dd4bf80}.quiz-toggle-row{display:grid;grid-template-columns:18px 1fr;grid-template-rows:auto auto;column-gap:8px;row-gap:1px;align-items:center;padding:8px 0 10px;border-bottom:1px solid rgba(148,163,184,.12);margin-bottom:10px;cursor:pointer}.quiz-toggle-row input{grid-row:span 2;margin:0;cursor:pointer}.quiz-toggle-row span{color:#dce7f5;font-size:13px;font-weight:900}.quiz-toggle-row em{color:var(--muted, #94a3b8);font-size:11px;font-style:normal}.quiz-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:grid;place-items:center;padding:16px}.quiz-overlay[hidden]{display:none!important}.quiz-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#020617b3;backdrop-filter:blur(6px)}.quiz-card{position:relative;width:min(480px,100%);border:1px solid rgba(45,212,191,.3);border-radius:12px;background:#080f1ff5;box-shadow:0 28px 70px #00000080;overflow:hidden;animation:quizEnter .22s ease-out}@keyframes quizEnter{0%{transform:scale(.94) translateY(10px);opacity:0}to{opacity:1}}.quiz-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:14px 16px 10px;border-bottom:1px solid rgba(148,163,184,.14)}.quiz-kicker{padding:2px 8px;border-radius:999px;background:#14b8a629;color:#a7f3d0;font-size:11px;font-weight:950;text-transform:uppercase}.quiz-head strong{font-size:14px;color:#f8fbff}.quiz-close{width:28px;height:28px;border:0;border-radius:6px;color:var(--muted, #94a3b8);background:#0f172a99;font-size:18px;cursor:pointer;display:grid;place-items:center}.quiz-close:hover{color:#fca5a5;background:#7f1d1d66}.quiz-progress{height:3px;background:#94a3b829}.quiz-progress span{display:block;height:100%;background:linear-gradient(90deg,#2dd4bf,#06b6d4);transition:width .4s ease;width:0%}.quiz-body{padding:16px}.quiz-question{margin:0 0 14px;color:#f8fbff;font-size:15px;font-weight:600;line-height:1.4}.quiz-options{display:grid;gap:8px}.quiz-option{text-align:left;padding:10px 14px;border:1px solid rgba(148,163,184,.22);border-radius:8px;color:#dce7f5;background:#0f172a8f;font-size:13px;cursor:pointer;transition:border-color .14s ease,background .14s ease}.quiz-option:hover:not(:disabled){border-color:#7dd3fc6b;background:#0e749029}.quiz-option.is-correct{border-color:#22c55e80;background:#16653433;color:#86efac}.quiz-option.is-wrong{border-color:#ef444470;background:#7f1d1d2e;color:#fca5a5}.quiz-feedback{min-height:18px;margin:10px 0 0;font-size:13px;font-weight:900;text-align:center}.quiz-feedback.is-correct{color:#86efac}.quiz-feedback.is-wrong{color:#fca5a5}.quiz-footer{padding:14px 16px;border-top:1px solid rgba(148,163,184,.14);display:grid;gap:10px}.quiz-footer[hidden]{display:none!important}.quiz-score-wrap strong{display:block;color:#f8fbff;font-size:20px;font-weight:950}.quiz-score-wrap p{margin:4px 0 0;color:var(--muted, #94a3b8);font-size:13px}.quiz-next-btn{justify-self:end;min-height:34px;padding:0 18px;border:1px solid rgba(45,212,191,.38);border-radius:8px;color:#ecfeff;background:#14b8a629;font-weight:900;cursor:pointer}.quiz-next-btn:hover{background:#14b8a647}.chain-next-banner{display:flex;align-items:center;gap:10px;padding:10px 12px;margin-top:8px;border:1px solid rgba(125,211,252,.28);border-radius:8px;background:#082f4952;animation:slideDown .25s ease-out}@keyframes slideDown{0%{transform:translateY(-8px);opacity:0}to{opacity:1}}.chain-chain-icon{font-size:18px}.chain-next-banner>div{flex:1}.chain-next-banner strong{display:block;color:#e0faff;font-size:12px}.chain-next-banner p{margin:2px 0 0;color:#93c5fd;font-size:12px}.chain-go-btn{min-height:28px;border:1px solid rgba(125,211,252,.4);border-radius:6px;padding:0 10px;color:#e0faff;background:#0e749033;font-size:12px;font-weight:900;cursor:pointer;white-space:nowrap}.chain-go-btn:hover{background:#0e74905c}.mobile-quick-add{display:none;padding:10px 12px 8px;border-top:1px solid rgba(148,163,184,.14);background:#080f1fb8}.mobile-quick-add strong{display:block;margin-bottom:6px;color:var(--muted, #94a3b8);font-size:11px;font-weight:950;text-transform:uppercase}.mobile-quick-row{display:flex;flex-wrap:wrap;gap:6px}.mobile-quick-btn{min-height:32px;padding:0 12px;border:1px solid rgba(45,212,191,.32);border-radius:999px;color:#a7f3d0;background:#14b8a61a;font-size:13px;font-weight:900;cursor:pointer}.mobile-quick-btn:active{background:#14b8a638}@media(max-width:768px){.mobile-quick-add{display:block}.mobile-quick-add[hidden]{display:none!important}}body[data-heat-level="1"][data-heat-state=heater_on] .reaction-vessel .vessel-glass,body[data-heat-level="1"][data-heat-state=reaction_ready] .reaction-vessel .vessel-glass{box-shadow:0 0 0 2px #fb923c52,0 18px 32px #f9731661}body[data-heat-level="2"][data-heat-state=heater_on] .reaction-vessel .vessel-glass,body[data-heat-level="2"][data-heat-state=reaction_ready] .reaction-vessel .vessel-glass{box-shadow:0 0 0 2px #fb923c85,0 18px 38px #f9731699}body[data-heat-level="3"][data-heat-state=heater_on] .reaction-vessel .vessel-glass,body[data-heat-level="3"][data-heat-state=reaction_ready] .reaction-vessel .vessel-glass{box-shadow:0 0 0 2px #fb923cc7,0 18px 46px #f97316d1,0 0 0 8px #f9731624;animation:vesselHeatPulse 1.5s ease-in-out infinite alternate}@keyframes vesselHeatPulse{0%{box-shadow:0 0 0 2px #fb923cc7,0 18px 46px #f97316d1}to{box-shadow:0 0 0 3px #fb923cf2,0 22px 56px #f97316f2,0 0 0 10px #f9731638}}body[data-heat-level="2"] .reaction-vessel.heated .reaction-liquid,body[data-heat-level="3"] .reaction-vessel.heated .reaction-liquid{animation:liquidHeatShimmer .85s ease-in-out infinite alternate!important}@keyframes liquidHeatShimmer{0%{filter:brightness(1) saturate(1)}to{filter:brightness(1.24) saturate(1.28)}}body[data-heat-state=heater_on] .reaction-vessel:after,body[data-heat-state=reaction_ready] .reaction-vessel:after{content:attr(data-temp-display);position:absolute;top:-20px;right:2px;padding:1px 6px;font-size:11px;font-weight:900;letter-spacing:.04em;color:#fb923c;background:#1c1008e0;border:1px solid rgba(249,115,22,.4);border-radius:4px;pointer-events:none;z-index:20}@media(max-width:480px){.lab-shell{font-size:13px}.tool-button{min-width:80px;min-height:52px;font-size:11px}.reagent-label{font-size:11px}.experiment-panel{padding:12px}.tabs,.dock-tabs{gap:10px}.tab,.dock-tab{font-size:12px}.reaction-catalog,.task-list,.dock-items{grid-template-columns:1fr}.dock-item{padding:8px}.bench-dropzone{height:clamp(380px,72vh,460px);font-size:12px}.active-experiment h3{font-size:14px}}.reaction-vessel[data-concentration=concentrated] .reaction-liquid{filter:brightness(.72) saturate(1.6)!important;transition:filter .4s ease}.reaction-vessel[data-concentration=dilute] .reaction-liquid{filter:brightness(1.38) saturate(.52) opacity(.72)!important;transition:filter .4s ease}.reaction-vessel[data-concentration=normal] .reaction-liquid,.reaction-vessel:not([data-concentration]) .reaction-liquid{filter:none;transition:filter .4s ease}.reaction-vessel[data-concentration=concentrated]:before,.reaction-vessel[data-concentration=dilute]:before{content:attr(data-concentration);position:absolute;top:-20px;left:2px;padding:1px 6px;font-size:11px;font-weight:900;letter-spacing:.04em;border-radius:4px;pointer-events:none;z-index:20;text-transform:uppercase}.reaction-vessel[data-concentration=concentrated]:before{content:"конц.";color:#f59e0b;background:#1c1204e0;border:1px solid rgba(245,158,11,.4)}.reaction-vessel[data-concentration=dilute]:before{content:"разб.";color:#73d6ff;background:#04121ce0;border:1px solid rgba(115,214,255,.4)}body:has(#lab.is-active){overflow:hidden}:root{--lab-ease-out: cubic-bezier(.23, 1, .32, 1);--lab-ease-drawer: cubic-bezier(.32, .72, 0, 1);--lab-observation: #67e8f9;--lab-explanation: #a5b4fc;--lab-warning: #fbbf24;--lab-equation: #86efac}.lab-3d-host{position:absolute;top:0;right:0;bottom:0;left:0;z-index:13;overflow:hidden;border-radius:inherit;background:#e7eef2;touch-action:none}.lab-3d-host[hidden]{display:none!important}.lab-3d-host:focus-visible{outline:2px solid #6fe8e3;outline-offset:-4px}.lab-3d-canvas{display:block;width:100%;height:100%}.lab-3d-host[aria-busy=true]:after{content:"";position:absolute;z-index:6;left:0;bottom:0;width:var(--lab-3d-progress, 0%);height:3px;background:#168ea2;transition:width .18s ease}.lab-3d-loading{position:absolute;z-index:5;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;justify-items:center;gap:12px;color:#183c49;background:#ebf2f5f0}.lab-3d-loading-spinner{width:30px;height:30px;border:3px solid rgba(22,142,162,.2);border-top-color:#168ea2;border-radius:50%;animation:lab-3d-spin .8s linear infinite}.lab-3d-tooltip{position:absolute;z-index:7;top:0;left:0;max-width:240px;padding:7px 9px;border:1px solid rgba(20,89,105,.2);border-radius:7px;color:#153a46;background:#fffffff0;box-shadow:0 8px 20px #26434d29;font-size:12px;font-weight:700;pointer-events:none}@keyframes lab-3d-spin{to{transform:rotate(360deg)}}.lab-3d-quality{display:inline-flex;align-items:center;min-height:32px}.lab-3d-quality select{min-height:32px;max-width:148px;border:1px solid rgba(148,218,226,.34);border-radius:7px;padding:0 8px;color:inherit;background:#091923e6;font:inherit;font-size:12px}.lab-camera-controls #lab3dToggle.is-active{color:#061a20;border-color:#79ebe6;background:#79ebe6}.lab-camera-controls .lab-3d-auth-cta{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;color:#dcfdf7;border-color:#5eead46b;background:#0d4246f0}.lab-camera-controls .lab-3d-auth-cta[hidden]{display:none!important}.lab-3d-auth-lock{position:relative;width:13px;height:11px;flex:0 0 13px;border:1.5px solid currentColor;border-radius:3px}.lab-3d-auth-lock:before{content:"";position:absolute;left:2px;bottom:8px;width:7px;height:7px;border:1.5px solid currentColor;border-bottom:0;border-radius:6px 6px 0 0}.lab-camera-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:12;transform:translateZ(0) scale(1);transform-origin:0 0;will-change:transform}.lab-connection-lines{position:absolute;z-index:7;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;pointer-events:none}.lab-connection-lines path{fill:none;stroke:#7dd3fcd1;stroke-width:3;stroke-linecap:round;stroke-dasharray:7 5;filter:drop-shadow(0 0 5px rgba(56,189,248,.45));vector-effect:non-scaling-stroke}body.theme-light .lab-connection-lines path{stroke:#0e7490c7}.lab-camera-controls{position:absolute;z-index:165;top:12px;right:12px;display:flex;align-items:center;gap:4px;padding:5px;border:1px solid rgba(148,163,184,.28);border-radius:12px;background:#07121fe0;box-shadow:0 10px 24px #00000038;backdrop-filter:blur(10px)}.lab-camera-controls button,.lab-action-toolbar button,.demo-step-controls button{min-height:34px;border:1px solid rgba(148,163,184,.2);border-radius:8px;color:#dbeafe;background:#0f2234f0;font:inherit;font-weight:750;cursor:pointer;transition:transform .14s var(--lab-ease-out),border-color .16s ease,background-color .16s ease}.lab-camera-controls button{padding:0 10px}.lab-camera-controls button:active,.lab-action-toolbar button:active,.demo-step-controls button:active{transform:scale(.97)}.lab-camera-controls button:focus-visible,.lab-action-toolbar button:focus-visible,.lab-callout:focus-visible,.mode-button:focus-visible,.annotation-mode-control select:focus-visible,.student-lab-report :is(input,textarea,button):focus-visible{outline:3px solid rgba(103,232,249,.82);outline-offset:2px}.lab-action-toolbar{position:absolute;z-index:170;left:50%;bottom:14px;display:flex;max-width:calc(100% - 28px);gap:5px;padding:6px;overflow-x:auto;border:1px solid rgba(148,163,184,.24);border-radius:13px;background:#06111de6;box-shadow:0 14px 32px #0000004d;transform:translate(-50%);scrollbar-width:thin;backdrop-filter:blur(12px)}.lab-action-toolbar button{flex:0 0 auto;padding:0 10px;white-space:nowrap}.lab-action-toolbar button.is-active{border-color:#2dd4bfb8;color:#ecfeff;background:#0d948842}.bench-dropzone[data-active-lab-tool=move] .workspace-item,.bench-dropzone[data-active-lab-tool=move] .reaction-vessel{cursor:grab}.bench-dropzone[data-active-lab-tool=connect] .workspace-item,.bench-dropzone[data-active-lab-tool=connect] .reaction-vessel{cursor:crosshair}.workspace-item[tabindex="0"],.reaction-vessel[tabindex="0"]{touch-action:none}.workspace-item.is-pointer-dragging,.reaction-vessel.is-pointer-dragging{cursor:grabbing;filter:drop-shadow(0 10px 18px rgba(0,0,0,.28))}.workspace-item.is-connect-source{outline:3px solid rgba(103,232,249,.86);outline-offset:4px}.workspace-item.is-snap-valid,.reaction-vessel.is-snap-valid{outline:3px solid rgba(52,211,153,.9);outline-offset:5px}.workspace-item.is-snap-warning,.reaction-vessel.is-snap-warning{outline:3px solid rgba(251,191,36,.9);outline-offset:5px}.lab-snap-message{position:absolute;z-index:175;left:50%;top:64px;min-height:30px;max-width:min(420px,calc(100% - 32px));padding:7px 12px;border-radius:999px;color:#dbeafe;background:#07121fe6;opacity:0;pointer-events:none;transform:translate(-50%,-6px);transition:opacity .16s ease,transform .18s var(--lab-ease-out)}.lab-snap-message.is-visible{opacity:1;transform:translate(-50%)}.lab-annotation-layer{position:absolute;z-index:150;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.lab-annotation-lines{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.lab-annotation-lines line{stroke:#a5f3fcb3;stroke-width:1.25;stroke-linecap:round;vector-effect:non-scaling-stroke}.lab-annotation-lines line[data-type=warning]{stroke:#fbbf24d1}.lab-annotation-lines line[data-type=equation]{stroke:#86efacc7}.lab-callout{position:absolute;display:flex;align-items:flex-start;gap:9px;width:208px;min-height:58px;padding:10px 12px;border:1px solid rgba(103,232,249,.42);border-radius:11px;color:#e6f7ff;text-align:left;background:#061423f5;box-shadow:0 12px 28px #0000004d;pointer-events:auto;cursor:pointer;transform-origin:var(--callout-origin, center);transition:transform .17s var(--lab-ease-out),opacity .15s ease,border-color .15s ease}.lab-callout:active{transform:scale(.98)}.lab-callout-warning{border-color:#fbbf24b8}.lab-callout-equation{border-color:#86efac94}.lab-callout-marker{display:grid;flex:0 0 24px;width:24px;height:24px;place-items:center;border-radius:999px;color:#07111f;background:var(--lab-observation);font-weight:950}.lab-callout-warning .lab-callout-marker{background:var(--lab-warning)}.lab-callout-equation .lab-callout-marker{background:var(--lab-equation)}.lab-callout-explanation .lab-callout-marker{background:var(--lab-explanation)}.lab-callout-copy{display:grid;min-width:0;gap:3px}.lab-callout-copy strong{font-size:12px;line-height:1.25}.lab-callout-copy small{color:#b8c9da;font-size:10px;line-height:1.35}.lab-callout.is-marker{width:34px;min-height:34px;height:34px;padding:5px;border-radius:999px}.lab-callout.is-marker .lab-callout-copy{display:none}.reagent-quantity{display:grid;grid-template-columns:minmax(90px,1fr) minmax(76px,.8fr);gap:8px;margin:12px 0}.reagent-quantity label{display:grid;gap:4px;color:#a9bfd1;font-size:11px}.reagent-quantity label:last-child{grid-column:1 / -1;grid-template-columns:1fr auto;align-items:center}.reagent-quantity label:last-child input{grid-column:1}.reagent-quantity label:last-child span{grid-column:2;grid-row:2}.reagent-quantity :is(input,select),.annotation-mode-control select,.student-lab-report :is(input,textarea){width:100%;border:1px solid rgba(148,163,184,.3);border-radius:8px;color:#e5f4ff;background:#0f1f2fdb;font:inherit}.reagent-quantity :is(input,select){min-height:34px;padding:6px 8px}.annotation-mode-control{display:grid;gap:5px;margin:10px 0;color:#a9bfd1;font-size:11px}.annotation-mode-control select{min-height:38px;padding:7px 9px}.mode-switch.mode-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.demo-step-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:10px 0}.demo-step-controls span{grid-column:1 / -1;color:#a9bfd1;text-align:center;font-size:11px}.lab-event-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.lab-event-panel-head span{color:#93c5fd;font-size:11px;text-align:right}.lab-event-journal{display:grid;gap:8px;margin-top:10px}.lab-event{display:grid;gap:3px;padding:10px 11px;border:1px solid rgba(148,163,184,.18);border-left:3px solid var(--lab-observation);border-radius:9px;background:#091928c2}.lab-event>span{color:var(--lab-observation);font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.lab-event strong{color:#e6f4ff;font-size:12px}.lab-event p{margin:0;color:#adbed0;font-size:10px;line-height:1.45}.lab-event-warning{border-left-color:var(--lab-warning)}.lab-event-warning>span{color:var(--lab-warning)}.lab-event-explanation{border-left-color:var(--lab-explanation)}.lab-event-explanation>span{color:var(--lab-explanation)}.lab-event-equation{border-left-color:var(--lab-equation)}.lab-event-equation>span{color:var(--lab-equation)}.lab-event-action{border-left-color:#94a3b8}.lab-event-action>span{color:#cbd5e1}.lab-event-empty{color:#94a3b8;font-size:12px}.student-lab-report{display:grid;gap:9px;margin-top:14px;padding-top:14px;border-top:1px solid rgba(148,163,184,.2)}.student-lab-report h3{margin:0;font-size:14px}.student-lab-report label{display:grid;gap:4px;color:#b6c6d5;font-size:11px}.student-lab-report :is(input,textarea){padding:8px 9px;resize:vertical}.student-lab-report small{min-height:16px;color:#86efac}.mobile-explanation-toggle,.lab-mobile-sheet{display:none}.workspace-item[data-id=stopper] .tool-thumb:before{content:"";position:absolute;left:50%;top:9px;width:28px;height:14px;border-radius:5px 5px 8px 8px;background:linear-gradient(180deg,#8b5e3c,#5c3824);transform:translate(-50%)}.workspace-item[data-id=gas-receiver] .tool-thumb:before{content:"";position:absolute;left:50%;top:4px;width:30px;height:38px;border:2px solid rgba(191,230,255,.82);border-top:0;border-radius:0 0 9px 9px;background:linear-gradient(0deg,#38bdf847 0 38%,#ffffff0f 39%);transform:translate(-50%)}body.theme-light .lab-camera-controls,body.theme-light .lab-action-toolbar,body.theme-light .lab-snap-message,body.theme-light .lab-callout{color:#0f2639;background:#f7fbfdf0}body.theme-light .lab-callout-copy small,body.theme-light .lab-event p{color:#4b6477}@media(hover:hover)and (pointer:fine){.lab-camera-controls button:hover,.lab-action-toolbar button:hover,.demo-step-controls button:hover{border-color:#67e8f994}.lab-callout:hover{border-color:#67e8f9d1}}@media(max-width:760px){.lab-camera-controls{top:8px;right:8px;max-width:calc(100% - 16px)}.lab-camera-controls button{min-width:38px;padding:0 8px}.lab-camera-controls #labFitView{display:none}.lab-camera-controls:has(.lab-3d-auth-cta:not([hidden])) :is(#labZoomOut,#labZoomReset,#labZoomIn){display:none}.lab-camera-controls .lab-3d-auth-cta{max-width:calc(100vw - 76px);font-size:11px}.lab-action-toolbar{position:fixed;z-index:410;bottom:max(8px,env(safe-area-inset-bottom));width:calc(100% - 16px);max-width:none}.lab-action-toolbar button{min-height:42px}.lab-annotation-layer{pointer-events:none}.lab-callout{display:none}.mobile-explanation-toggle{position:fixed;z-index:405;right:10px;bottom:calc(64px + env(safe-area-inset-bottom));display:block;min-height:42px;padding:0 14px;border:1px solid rgba(103,232,249,.45);border-radius:999px;color:#e6f7ff;background:#061423f0;font-weight:850;box-shadow:0 12px 28px #00000052}.lab-mobile-sheet{position:fixed;z-index:500;right:0;bottom:0;left:0;display:block;max-height:min(70vh,620px);padding:14px 14px calc(18px + env(safe-area-inset-bottom));overflow-y:auto;border:1px solid rgba(148,163,184,.28);border-radius:18px 18px 0 0;background:#05111dfa;box-shadow:0 -20px 48px #0000006b;transform:translateY(0);transition:transform .24s var(--lab-ease-drawer)}.lab-mobile-sheet[hidden]{display:none}.lab-mobile-sheet-head{display:flex;align-items:center;justify-content:space-between}.lab-mobile-sheet-head button{width:40px;height:40px;border:0;border-radius:999px;color:#e6f7ff;background:#94a3b824;font-size:22px}.reagent-quantity{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-item.is-visual-tool{width:88px;min-height:68px;padding:5px}.workspace-item.is-visual-tool strong{font-size:9px}.workspace-item.is-visual-tool small{display:none}.workspace-item.is-gas-tube-tool{width:106px;min-height:64px}.workspace-item.is-gas-tube-tool .gas-tube-apparatus{width:108px;height:38px;margin-bottom:1px;transform:scale(.55);transform-origin:left top}.workspace-item[data-id=stopper]{left:20%!important;top:38%!important}.workspace-item[data-id=gas-tube]{left:72%!important;top:8%!important}.workspace-item[data-id=gas-receiver]{left:84%!important;top:52%!important}}@media(prefers-reduced-motion:reduce){.lab-camera-layer,.lab-callout,.lab-action-toolbar button,.lab-camera-controls button,.lab-mobile-sheet,.lab-snap-message{transition-duration:.01ms!important}}.workspace-item,.reaction-vessel{pointer-events:auto}.workspace-item.is-gas-tube-tool{display:block!important}.workspace-items{z-index:10}.lab-camera-controls{z-index:20}.lab-snap-message{z-index:21}@media(max-width:760px){.lab-3d-quality select{max-width:118px}}.lab-shell{--lab-panel-bg: #111b24;--lab-panel-raised: #182631;--lab-panel-soft: #1d2d39;--lab-panel-text: #edf6fb;--lab-panel-muted: #a9bdca;--lab-panel-line: rgba(181, 209, 224, .16);--lab-panel-accent: #5eead4;--lab-panel-accent-strong: #2dd4bf;--lab-panel-focus: #67e8f9;--lab-control-disabled-bg: #2b3a46;--lab-control-disabled-text: #c1ced7;--lab-control-disabled-line: #526674;--lab-guide-chip-bg: #1d3244;--lab-guide-chip-text: #e2f1ff;--lab-guide-chip-line: #52708a;--lab-solution-bg: #123f3c;--lab-solution-text: #d7fff4;--lab-solution-line: #2f8c84;width:min(100%,1920px);height:calc(100dvh - 58px);min-height:680px;grid-template-columns:clamp(244px,17vw,292px) minmax(600px,1fr) clamp(318px,22vw,382px);grid-template-rows:minmax(0,1fr) clamp(176px,22vh,216px);border-color:var(--lab-panel-line);background:var(--lab-panel-bg)}body.theme-light .lab-shell{--lab-panel-bg: #eef3f6;--lab-panel-raised: #ffffff;--lab-panel-soft: #f3f7f9;--lab-panel-text: #132d3d;--lab-panel-muted: #526b7b;--lab-panel-line: #ccd9e1;--lab-panel-accent: #0f766e;--lab-panel-accent-strong: #0d9488;--lab-panel-focus: #0284c7;--lab-control-disabled-bg: #dde6ec;--lab-control-disabled-text: #455d6c;--lab-control-disabled-line: #9fb1bd;--lab-guide-chip-bg: #e4eff7;--lab-guide-chip-text: #24465c;--lab-guide-chip-line: #91aec2;--lab-solution-bg: #d7f0ed;--lab-solution-text: #0d5f58;--lab-solution-line: #5baaa3}.tool-rail,.experiment-panel,.equipment-dock{color:var(--lab-panel-text);border-color:var(--lab-panel-line);background:var(--lab-panel-bg)}.tool-rail{gap:10px;padding:12px}.tool-menu{flex:0 0 auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;overflow:visible}.tool-button{min-width:0;min-height:52px;padding:6px 3px;border-color:transparent;border-radius:10px;color:var(--lab-panel-muted);background:transparent;font-size:11px;font-weight:760;line-height:1.15;transition:color .16s ease,background-color .16s ease,border-color .16s ease,transform .14s var(--lab-ease-out)}.tool-icon{margin:0 0 4px;color:currentColor;font-size:17px}.tool-button.is-active{color:#ecfeff;border-color:#5eead45c;background:#0f766e;box-shadow:0 7px 18px #0d94882e}.tool-button:active{transform:scale(.97)}body.theme-light .tool-button{color:#476477;background:transparent;border-color:transparent}body.theme-light .tool-button.is-active{color:#fff;border-color:#0f766e;background:#0f766e;box-shadow:0 7px 18px #0f766e2e}.lab-action-toolbar{position:static;z-index:auto;left:auto;bottom:auto;display:grid;max-width:none;gap:9px;padding:11px;overflow:visible;border:1px solid var(--lab-panel-line);border-radius:13px;color:var(--lab-panel-text);background:var(--lab-panel-raised);box-shadow:0 10px 28px #020c141f;transform:none;backdrop-filter:none}.lab-action-toolbar-head{display:grid;gap:2px;padding-bottom:7px;border-bottom:1px solid var(--lab-panel-line)}.lab-action-toolbar-head span,.lab-action-group-label{color:var(--lab-panel-muted);font-size:10px;font-weight:850;letter-spacing:.055em;text-transform:uppercase}.lab-action-toolbar-head strong{color:var(--lab-panel-text);font-size:12px;line-height:1.3}.lab-action-cluster{display:grid;gap:5px}.lab-action-cluster-utility{padding-top:1px}.lab-action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.lab-action-toolbar button,body.theme-light .lab-action-toolbar button{min-width:0;min-height:43px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:5px 6px;overflow:hidden;border:1px solid var(--lab-panel-line);border-radius:9px;color:var(--lab-panel-text);text-align:center;background:var(--lab-panel-soft);font-size:11px;font-weight:780;line-height:1.1;white-space:normal;transition:transform .14s var(--lab-ease-out),border-color .16s ease,background-color .16s ease,color .16s ease}.lab-action-toolbar button.is-active,body.theme-light .lab-action-toolbar button.is-active{color:#ecfeff;border-color:#0f766e;background:#0f766e;box-shadow:none}.lab-action-toolbar button:active{transform:scale(.97)}.lab-action-toolbar button:focus-visible{outline-color:var(--lab-panel-focus)}.lab-action-icon{display:grid;width:18px;height:18px;place-items:center;color:var(--lab-panel-accent);font-size:15px;font-weight:900;line-height:1}.lab-action-toolbar button.is-active .lab-action-icon{color:#ccfbf1}[data-lab-tool=select] .lab-action-icon:before{content:"↖"}[data-lab-tool=move] .lab-action-icon:before{content:"✥"}[data-lab-tool=connect] .lab-action-icon:before{content:"⇄"}[data-lab-tool=pipette] .lab-action-icon:before{content:"╱"}[data-lab-tool=spatula] .lab-action-icon:before{content:"▰";font-size:11px}[data-lab-tool=tongs] .lab-action-icon:before{content:"⋔"}[data-lab-tool=measure] .lab-action-icon:before{content:"°"}[data-lab-tool=heat] .lab-action-icon:before{content:"♨"}[data-lab-tool=clean] .lab-action-icon:before{content:"✦"}[data-lab-tool=delete] .lab-action-icon:before{content:"×";font-size:19px}#labUndoAction .lab-action-icon:before{content:"↶"}.tool-drawer{flex:1 1 auto;min-height:110px;padding:11px 3px 4px;border:0;background:transparent;box-shadow:none}.tool-section.is-active{grid-template-columns:minmax(0,1fr)}.tool-section h2,.tab-panel h2,.scenario-card strong,.dock-item strong{color:var(--lab-panel-text)}.tool-section p,.tool-hints,.dock-item small,.scenario-card span,.condition-row span{color:var(--lab-panel-muted)}.experiment-panel{box-shadow:-10px 0 32px #04141e0f}.lab-sidebar-scroll{background:var(--lab-panel-bg)}.scenario-card,.progress-card,.mode-card,.condition-row,.composition-box,.result-message.result-card,.lab-object-list-box{color:var(--lab-panel-text);border-color:var(--lab-panel-line);background:var(--lab-panel-raised);box-shadow:none}.tabs{min-height:42px;padding:3px;gap:3px;align-items:stretch;flex-shrink:0;overflow-y:hidden;border:1px solid var(--lab-panel-line);border-radius:10px;background:var(--lab-panel-soft)}.tab,body.theme-light .tab{min-height:34px;padding:0 8px;border:0;border-radius:7px;color:var(--lab-panel-muted);background:transparent;font-size:11px;font-weight:780}.tab.is-active,body.theme-light .tab.is-active{color:var(--lab-panel-text);border:0;background:var(--lab-panel-raised);box-shadow:0 2px 8px #08203014}.mode-button,body.theme-light .mode-button{color:var(--lab-panel-text);border-color:var(--lab-panel-line);background:var(--lab-panel-soft)}.mode-button.is-active,body.theme-light .mode-button.is-active{color:#fff;border-color:#2563eb;background:#2563eb}.annotation-mode-control,.reagent-quantity label,.student-lab-report label{color:var(--lab-panel-muted)}.annotation-mode-control select,.reagent-quantity :is(input,select),.student-lab-report :is(input,textarea),body.theme-light .annotation-mode-control select,body.theme-light .reagent-quantity :is(input,select),body.theme-light .student-lab-report :is(input,textarea){color:var(--lab-panel-text);border-color:var(--lab-panel-line);background:var(--lab-panel-raised)}.equipment-dock{display:grid;grid-template-rows:auto minmax(0,1fr);gap:6px;max-height:none;padding:10px 18px 12px;overflow:hidden;border-top:1px solid var(--lab-panel-line);background:var(--lab-panel-bg)}.dock-tabs{min-height:30px;gap:18px;overflow-x:auto}.dock-items{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(118px,136px);grid-template-columns:none;gap:8px;min-height:0;padding:0 0 4px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;scrollbar-width:thin}.dock-pick{min-width:0;scroll-snap-align:start}.dock-tab,body.theme-light .dock-tab{color:var(--lab-panel-muted)}.dock-tab.is-active,body.theme-light .dock-tab.is-active{color:var(--lab-panel-accent);background:transparent}.dock-item,body.theme-light .dock-item{width:100%;min-height:104px;max-height:112px;align-content:center;gap:4px;padding:7px 6px;color:var(--lab-panel-text);border-color:var(--lab-panel-line);background:var(--lab-panel-raised);box-shadow:0 5px 16px #0c22300f}.dock-item .dock-role,.dock-item small{display:none}.dock-item strong{font-size:11px;line-height:1.2}.dock-item .dock-status{font-size:8px;line-height:1}.lab-actions,body.theme-light .lab-actions{border-color:var(--lab-panel-line);background:var(--lab-panel-bg);box-shadow:0 -12px 24px #04141e0f}.lab-actions .primary-action{color:#fff;border-color:#2563eb;background:#2563eb;opacity:1}.lab-actions .primary-action:disabled{opacity:.46}.lab-actions .secondary-action,.lab-actions .ghost-action{color:var(--lab-panel-text);border-color:var(--lab-panel-line);background:var(--lab-panel-raised)}.lab-shell .reaction-signs .sign-chip{color:var(--lab-guide-chip-text);border-color:var(--lab-guide-chip-line);background:var(--lab-guide-chip-bg);transition:transform .14s var(--lab-ease-out),border-color .16s ease,background-color .16s ease}.lab-shell .reaction-signs .sign-chip:active{transform:scale(.97)}button#showSolution{color:var(--lab-solution-text);border-color:var(--lab-solution-line);background:var(--lab-solution-bg)}.lab-shell button:disabled,.lab-shell .lab-actions .primary-action:disabled,.lab-shell .lab-actions .secondary-action:disabled,.lab-shell .lab-actions .ghost-action:disabled,button#showSolution:disabled{color:var(--lab-control-disabled-text);border-color:var(--lab-control-disabled-line);background:var(--lab-control-disabled-bg);box-shadow:none;filter:none;opacity:1;cursor:not-allowed}@media(hover:hover)and (pointer:fine){.lab-shell .reaction-signs .sign-chip:hover:not(:disabled){border-color:var(--lab-panel-accent-strong);background:color-mix(in srgb,var(--lab-guide-chip-bg) 84%,var(--lab-panel-accent) 16%)}button#showSolution:hover:not(:disabled){color:var(--lab-solution-text);border-color:var(--lab-panel-accent-strong);background:color-mix(in srgb,var(--lab-solution-bg) 86%,var(--lab-panel-accent) 14%)}}.lab-stage.is-3d-active .lab-wall,.lab-stage.is-3d-loading .lab-wall{visibility:hidden;opacity:0}.lab-stage.is-3d-active .bench-dropzone,.lab-stage.is-3d-loading .bench-dropzone{top:0;right:0;bottom:0;left:0;height:100%}.lab-stage.is-3d-active :is(.bench-back,.bench-surface,.drop-zone-mark,.slot-label,.lab-camera-layer),.lab-stage.is-3d-loading :is(.bench-back,.bench-surface,.drop-zone-mark,.slot-label,.lab-camera-layer),.lab-stage.is-3d-active .lab-annotation-layer,.lab-stage.is-3d-loading .lab-annotation-layer,.lab-stage.is-3d-active .bench-dropzone:after,.lab-stage.is-3d-loading .bench-dropzone:after{display:none}.lab-3d-host{background:radial-gradient(circle at 50% 38%,#71868a,#52666a 58%,#34494d)}.lab-3d-workflow{position:absolute;z-index:155;left:16px;bottom:16px;display:none;width:min(560px,calc(100% - 32px));color:#edfafa;border:1px solid rgba(133,219,216,.28);border-radius:14px;background:#0a1d21f5;box-shadow:0 18px 42px #0411154d}.lab-stage.is-3d-active .lab-3d-workflow{display:grid}.lab-3d-scenario-strip{display:grid;gap:4px;padding:7px;border-bottom:1px solid rgba(133,219,216,.14)}.lab-3d-scenario-strip>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.lab-3d-scenario-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.lab-3d-scenario-list button{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:7px;min-width:0;min-height:32px;border:1px solid rgba(145,194,198,.18);border-radius:8px;padding:4px 7px;color:#dcebed;background:#17343a;text-align:left;cursor:pointer;transition:transform .14s var(--lab-ease-out),border-color .16s ease,background-color .16s ease}.lab-3d-scenario-list button strong{color:#fff;font-size:12px;white-space:nowrap}.lab-3d-scenario-list button small{overflow:hidden;color:#9eb5ba;font-size:9px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.lab-3d-scenario-list button.is-active{border-color:#4ad2cb;background:#205053;box-shadow:inset 0 0 0 1px #4ad2cb2e}.lab-3d-scenario-list button:active:not(:disabled){transform:scale(.97)}.lab-3d-scenario-list button:disabled{cursor:progress;opacity:.84}body.lab-3d-active .lab-action-grid-scene{grid-template-columns:repeat(2,minmax(0,1fr))}body.lab-3d-active .lab-action-grid-scene [data-lab-tool=move]{display:none}.lab-3d-workflow-summary{display:grid;gap:2px;min-width:0;padding:8px 10px 9px}.lab-3d-workflow-summary>span,.lab-3d-substance-picker-head span{color:#70d8d3;font-size:10px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.lab-3d-workflow-summary>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.lab-3d-workflow-summary>strong{overflow:hidden;color:#fff;font-size:14px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.lab-3d-workflow-summary>small{overflow:hidden;color:#adc3c7;font-size:10px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.lab-3d-workflow-actions{position:absolute;display:flex;align-items:center;width:1px;height:1px;gap:8px;overflow:hidden;padding:0;clip:rect(0 0 0 0);white-space:nowrap}.lab-3d-workflow-actions:focus-within{position:static;width:auto;height:auto;margin:0 8px 8px;overflow:visible;padding:0;clip:auto;white-space:normal}.lab-3d-workflow-actions>span{display:none}.lab-3d-operation{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:9px;margin:7px 8px;overflow:hidden;border:1px solid rgba(91,220,211,.3);border-radius:10px;padding:8px 10px 11px;background:#153b3e}.lab-3d-operation[hidden]{display:none}.lab-3d-operation-icon{width:30px;height:30px;border:2px solid rgba(132,236,228,.28);border-top-color:#7ce7df;border-radius:50%;animation:lab-3d-spin .72s linear infinite}.lab-3d-operation-copy{display:grid;gap:2px;min-width:0}.lab-3d-operation-copy strong{color:#f5ffff;font-size:12px}.lab-3d-operation-copy small{overflow:hidden;color:#b6ced1;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.lab-3d-operation-track{position:absolute;right:0;bottom:0;left:0;height:3px;overflow:hidden;background:#74b1b226}.lab-3d-operation-track i{display:block;width:100%;height:100%;background:#63ded6;transform:scaleX(0);transform-origin:left center;animation:lab-3d-operation-progress var(--lab-operation-duration, 1.2s) linear forwards}.lab-3d-workflow.is-operating .lab-3d-scenario-strip{opacity:.82}.lab-3d-workflow.is-operating :is(.lab-3d-workflow-summary,.lab-3d-workflow-actions){display:none}.lab-operation-active .lab-3d-host canvas,.lab-operation-active :is(.workspace-item,.reaction-vessel){pointer-events:none}.lab-3d-reaction-story{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:0 8px 8px;border:1px solid rgba(133,219,216,.18);border-radius:10px;padding:8px;background:#102f34}.lab-3d-reaction-story[hidden]{display:none}.lab-3d-reaction-story div{display:grid;align-content:start;gap:3px;min-width:0}.lab-3d-reaction-story span{color:#70d8d3;font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.lab-3d-reaction-story strong{color:#eefbfb;font-size:10px;font-weight:650;line-height:1.35}.lab-3d-reaction-story code{grid-column:1 / -1;align-self:stretch;overflow-x:auto;border-radius:7px;padding:7px 8px;color:#bff8f2;background:#05161a94;font-size:11px;white-space:nowrap}body.theme-light .lab-3d-workflow{color:#17343d;border-color:#2c8a8f47;background:#f8fcfdf5;box-shadow:0 16px 38px #1d434d2e}body.theme-light .lab-3d-scenario-strip{border-bottom-color:#2c8a8f29}body.theme-light .lab-3d-scenario-strip>span,body.theme-light .lab-3d-workflow-summary>span,body.theme-light .lab-3d-substance-picker-head span,body.theme-light .lab-3d-reaction-story span{color:#087d7a}body.theme-light .lab-3d-scenario-list button,body.theme-light .lab-3d-substance-option{color:#26444d;border-color:#cbdde1;background:#fff}body.theme-light .lab-3d-scenario-list button strong,body.theme-light .lab-3d-workflow-summary>strong,body.theme-light .lab-3d-substance-picker-head strong,body.theme-light .lab-3d-substance-option strong{color:#102f38}body.theme-light .lab-3d-scenario-list button small,body.theme-light .lab-3d-workflow-summary>small,body.theme-light .lab-3d-workflow-actions>span,body.theme-light .lab-3d-substance-option small{color:#526d75}body.theme-light .lab-3d-scenario-list button.is-active{border-color:#159b95;background:#dff5f2;box-shadow:inset 0 0 0 1px #159b951f}body.theme-light .lab-3d-operation{border-color:#9fd5d1;background:#e8f7f5}body.theme-light .lab-3d-operation-copy strong{color:#123b42}body.theme-light .lab-3d-operation-copy small{color:#486a70}body.theme-light .lab-3d-reaction-story{border-color:#bddcde;background:#fff}body.theme-light .lab-3d-reaction-story strong{color:#24444c}body.theme-light .lab-3d-reaction-story code{color:#0e5d5d;background:#eaf5f4}body.theme-light .lab-3d-substance-picker{border-color:#b9d6da;background:#f8fcfd;box-shadow:0 20px 46px #1b424d33}body.theme-light .lab-3d-substance-picker-head button{color:#23424b;border-color:#c9dce0;background:#eef5f6}body.theme-light .lab-3d-substance-search input,body.theme-light .lab-3d-dose-row :is(input,select){color:#17343d;border-color:#b9d3d8;background:#fff}body.theme-light .lab-3d-dose-row label,body.theme-light .lab-3d-substance-empty{color:#526d75}body.theme-light .lab-3d-substance-option[data-recommended=true]{border-color:#79c9c3;background:#eaf8f6}@keyframes lab-3d-operation-progress{to{transform:scaleX(1)}}.lab-3d-substance-trigger{min-height:34px;border:1px solid #42cbc5;border-radius:9px;padding:0 12px;color:#062a2c;background:#72e0da;font:inherit;font-size:11px;font-weight:850;cursor:pointer;transition:transform .14s var(--lab-ease-out),background-color .16s ease,border-color .16s ease}.lab-3d-substance-trigger:active:not(:disabled){transform:scale(.97)}.lab-3d-substance-trigger:disabled{color:#8ea2a7;border-color:#94abb033;background:#4f626652;cursor:default}.lab-3d-substance-picker{position:absolute;left:0;bottom:calc(100% + 8px);width:min(430px,calc(100vw - 44px));max-height:min(480px,calc(100vh - 190px));overflow:hidden;border:1px solid rgba(125,216,212,.28);border-radius:14px;background:#102b30;box-shadow:0 22px 52px #030f1361;transform-origin:left bottom}.lab-3d-substance-picker[hidden]{display:none}.lab-3d-substance-picker-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 12px 8px}.lab-3d-substance-picker-head>div{display:grid;gap:2px}.lab-3d-substance-picker-head strong{color:#f4ffff;font-size:14px}.lab-3d-substance-picker-head button{width:30px;height:30px;border:1px solid rgba(163,201,204,.22);border-radius:8px;color:#d9ebed;background:#1c3a40;font:inherit;font-size:18px;cursor:pointer;transition:transform .14s var(--lab-ease-out),background-color .16s ease}.lab-3d-substance-picker-head button:active{transform:scale(.96)}.lab-3d-substance-search{display:block;padding:0 12px 8px}.lab-3d-substance-search input,.lab-3d-dose-row :is(input,select){width:100%;min-height:36px;border:1px solid rgba(144,197,201,.24);border-radius:9px;color:#f4ffff;background:#19383e;font:inherit;font-size:12px;outline:none}.lab-3d-substance-search input{padding:0 11px}.lab-3d-substance-search input:focus,.lab-3d-dose-row :is(input,select):focus{border-color:#5dd7d2;box-shadow:0 0 0 3px #5dd7d21f}.lab-3d-dose-row{display:grid;grid-template-columns:minmax(0,1fr) 90px;align-items:end;gap:8px;padding:0 12px 10px}.lab-3d-dose-row label{display:grid;gap:4px;color:#9bb4b8;font-size:10px}.lab-3d-dose-row input{padding:0 10px}.lab-3d-dose-row select{padding:0 8px}.lab-3d-substance-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:292px;overflow:auto;padding:0 8px 10px;scrollbar-width:thin;scrollbar-color:#54787d transparent}.lab-3d-substance-option{position:relative;display:grid;grid-template-columns:8px minmax(0,1fr);grid-template-areas:"dot formula" "dot name";column-gap:8px;min-height:54px;border:1px solid rgba(145,194,198,.16);border-radius:10px;padding:8px 9px;color:#eaf7f7;background:#17343a;text-align:left;cursor:pointer;transition:transform .14s var(--lab-ease-out),border-color .16s ease,background-color .16s ease}.lab-3d-substance-option:before{grid-area:dot;align-self:stretch;width:6px;border-radius:99px;background:var(--reagent-color, #6bd4cf);content:""}.lab-3d-substance-option strong{grid-area:formula;overflow:hidden;font-size:13px;text-overflow:ellipsis}.lab-3d-substance-option small{grid-area:name;overflow:hidden;color:#9fb7bb;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.lab-3d-substance-option[data-recommended=true]{border-color:#50d8cf6b;background:#183f42}.lab-3d-substance-option:active{transform:scale(.98)}.lab-3d-substance-empty{grid-column:1 / -1;margin:8px;color:#9fb7bb;font-size:12px;text-align:center}@media(hover:hover)and (pointer:fine){.lab-3d-substance-trigger:hover:not(:disabled){border-color:#8df0eb;background:#88ebe6}.lab-3d-substance-picker-head button:hover{background:#284a50}.lab-3d-substance-option:hover{border-color:#69dfd780;background:#204248}.lab-3d-scenario-list button:hover:not(.is-active):not(:disabled){border-color:#69dfd76b;background:#1d4045}body.theme-light .lab-3d-substance-picker-head button:hover{background:#e1eff1}body.theme-light .lab-3d-substance-option:hover,body.theme-light .lab-3d-scenario-list button:hover:not(.is-active):not(:disabled){color:#17343d;border-color:#78c7c2;background:#edf8f7}}@media(max-width:720px){.lab-3d-workflow{left:8px;bottom:8px;width:calc(100% - 16px)}.lab-3d-workflow-actions>span{display:none}.lab-3d-substance-trigger,.lab-3d-substance-picker{width:100%}.lab-3d-substance-list{grid-template-columns:1fr}.lab-3d-scenario-list button{grid-template-columns:1fr;gap:1px}.lab-3d-scenario-list button small{display:none}.lab-3d-reaction-story{grid-template-columns:1fr}.lab-3d-reaction-story code{grid-column:1}}@media(prefers-reduced-motion:reduce){.lab-3d-operation-icon{animation-duration:1.4s}.lab-3d-operation-track i{animation-duration:.16s}}.lab-stage.is-3d-loading .lab-3d-host:before{content:"";position:absolute;z-index:8;left:50%;top:50%;width:34px;height:34px;border:3px solid rgba(15,118,110,.18);border-top-color:#0f766e;border-radius:50%;transform:translate(-50%,-50%);animation:lab-3d-spin .8s linear infinite}.lab-stage.is-3d-active .lab-camera-controls,.lab-stage.is-3d-loading .lab-camera-controls{top:14px;right:14px;border-color:#59738038;color:#183748;background:#fafdfee6;box-shadow:0 8px 22px #15334221}.lab-stage:is(.is-3d-active,.is-3d-loading) :is(#labZoomOut,#labZoomReset,#labZoomIn){display:none}.lab-stage.is-3d-active .lab-camera-controls button,.lab-stage.is-3d-loading .lab-camera-controls button,.lab-stage.is-3d-active .lab-3d-quality select,.lab-stage.is-3d-loading .lab-3d-quality select{color:#183748;border-color:#415e6d2e;background:#fffffff0}.lab-stage.is-3d-active .lab-camera-controls #lab3dToggle.is-active{color:#fff;border-color:#0f766e;background:#0f766e}.lab-annotation-lines{display:none}.lab-callout{width:min(190px,calc(100% - 24px));min-height:50px;padding:8px 10px;border-color:#0f766e52;border-radius:10px;color:#153442;background:#fafdfef5;box-shadow:0 10px 26px #12314029}.lab-callout-copy strong{color:#153442}.lab-callout-copy small{color:#536c79}@media(hover:hover)and (pointer:fine){.tool-button:hover:not(.is-active){color:var(--lab-panel-text);border-color:var(--lab-panel-line);background:var(--lab-panel-soft)}.lab-action-toolbar button:hover:not(.is-active){border-color:#0d94886b;background:color-mix(in srgb,var(--lab-panel-soft) 82%,#0d9488 18%)}}@media(max-width:1180px)and (min-width:1025px){.lab-shell{grid-template-columns:218px minmax(520px,1fr) 300px}.lab-action-toolbar{padding:9px}.lab-action-toolbar button,body.theme-light .lab-action-toolbar button{padding:4px;font-size:10.5px}.lab-action-icon{width:16px}}@media(max-width:1024px){.lab-shell{height:auto;min-height:auto;grid-template-columns:1fr;grid-template-rows:auto minmax(520px,64vh) auto auto}.tool-menu{grid-auto-flow:initial;grid-auto-columns:initial;grid-template-columns:repeat(5,minmax(72px,1fr));overflow-x:auto}.lab-action-toolbar{grid-template-columns:minmax(120px,.8fr) minmax(0,1fr) minmax(0,1.6fr) minmax(0,1fr);align-items:end;overflow:visible}.lab-action-toolbar-head{align-self:stretch;align-content:center;padding:0 9px 0 0;border-right:1px solid var(--lab-panel-line);border-bottom:0}.lab-action-cluster{min-width:0}.lab-action-toolbar button,body.theme-light .lab-action-toolbar button{min-height:48px;font-size:11px}.tool-drawer{min-height:180px}body:has(#lab.is-active){overflow-x:hidden;overflow-y:auto}}@media(max-width:760px){.lab-shell{grid-template-rows:auto minmax(470px,70vh) auto auto}.tool-rail{padding:8px}.tool-menu{grid-template-columns:repeat(5,minmax(68px,1fr))}.tool-button{min-width:68px;min-height:52px}.lab-action-toolbar{position:static;width:100%;grid-template-columns:repeat(4,minmax(0,1fr));padding:8px;border-radius:11px}.lab-action-toolbar-head{display:none}.lab-action-cluster,.lab-action-grid{display:contents}.lab-action-group-label{display:none}.lab-action-toolbar button{min-height:44px}.lab-stage.is-3d-active .lab-camera-controls,.lab-stage.is-3d-loading .lab-camera-controls{top:8px;right:8px}}@media(prefers-reduced-motion:reduce){.lab-stage.is-3d-loading .lab-3d-host:before{animation-duration:1.6s}}
