@font-face{font-family:Vazirmatn;font-style:normal;font-weight:400;font-display:swap;src:url(/lab/assets/Vazirmatn-Regular-CtGL0YI-.woff2) format("woff2")}@font-face{font-family:Vazirmatn;font-style:normal;font-weight:600;font-display:swap;src:url(/lab/assets/Vazirmatn-SemiBold-26ZP1ILp.woff2) format("woff2")}@font-face{font-family:Vazirmatn;font-style:normal;font-weight:700;font-display:swap;src:url(/lab/assets/Vazirmatn-Bold-_OhAJEdh.woff2) format("woff2")}@font-face{font-family:Vazirmatn;font-style:normal;font-weight:800;font-display:swap;src:url(/lab/assets/Vazirmatn-ExtraBold-DCjt2qDm.woff2) format("woff2")}:root{--bg: #0b0e14;--panel: #12161f;--panel-2: #1a2029;--border: #262e3a;--border-soft: #1d242e;--text: #e8eef5;--muted: #8a96a5;--accent: #3b82f6;--accent-soft: rgba(59, 130, 246, .14);--green: #2ea043;--red: #da3633;--yellow: #d4a017;--shadow: 0 6px 24px rgba(0, 0, 0, .45);--line: #262e3a;font-family:Vazirmatn,Segoe UI,Tahoma,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);overflow:hidden;font-size:14px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#2b3340;border-radius:6px;border:2px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:#3a4554}.app{display:flex;flex-direction:column;height:100vh;height:100dvh}.toolbar{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:6px 12px;background:linear-gradient(180deg,#161b25,#11151d);border-bottom:1px solid var(--border);flex:0 0 auto}.toolbar>*{flex:0 0 auto}.toolbar .spacer{flex:1 1 8px;min-width:0}.toolbar>.btn{white-space:nowrap;max-width:250px;overflow:hidden;text-overflow:ellipsis}.toolbar .tray{flex:1 1 140px;min-width:0}.toolbar .brand{font-weight:800;font-size:17px;direction:ltr;-webkit-user-select:none;user-select:none;margin-inline-end:6px}.toolbar .brand span{color:var(--accent)}.toolbar .spacer{flex:1}.btn{display:inline-flex;align-items:center;gap:6px;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:9px;padding:7px 14px;font-size:13.5px;cursor:pointer;font-family:inherit;transition:filter .12s,transform .06s}.btn:hover:not(:disabled){filter:brightness(1.18)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.small{padding:4px 10px;font-size:12.5px;border-radius:7px}.btn.wide{width:100%;justify-content:center}.btn.on{background:var(--accent-soft);border-color:var(--accent);color:#cfe4ff}.btn.run{background:linear-gradient(180deg,#2ea54e,#237e3b);border-color:#1d6c33;color:#fff;font-weight:700}.btn.stop{background:linear-gradient(180deg,#e04340,#b32a27);border-color:#962320;color:#fff;font-weight:700}.btn.danger{color:#ffb4b2;border-color:#5a2b2a}.btn.drip{background:linear-gradient(180deg,#2f6fd6,#2558ab);border-color:#1f4c94;color:#fff}.progress-pill{font-size:11.5px;background:var(--accent-soft);color:#bcd8ff;border:1px solid #2c4a75;border-radius:20px;padding:1px 8px;margin-inline-start:4px}.gear{display:inline-flex;gap:3px;background:var(--panel-2);border:1px solid var(--border);border-radius:9px;padding:4px 8px}.gear-i{font-size:15px;filter:grayscale(1);opacity:.35;transition:.15s}.gear-i.on{filter:none;opacity:1}.tray{display:flex;align-items:center;gap:5px;flex-wrap:nowrap;background:var(--panel-2);border:1px solid var(--border);border-radius:9px;padding:4px 8px;max-width:34vw;overflow-x:auto;scrollbar-width:none}.tray::-webkit-scrollbar{display:none}.tray-chip{flex:0 0 auto;white-space:nowrap}.tray-label{opacity:.8}.tray-empty{font-size:11.5px;color:var(--muted)}.tray-count-badge{font-size:11.5px;color:var(--muted);white-space:nowrap;background:#1d2635;border:1px solid var(--border);border-radius:20px;padding:3px 9px}.tray-count-badge.has{color:#bcd8ff;border-color:#2f4463;background:#1c2942}.tray-chip{font-family:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:6px;background:#223047;color:#cfe0f5;border:1px solid #2f4463;border-radius:20px;padding:3px 10px}.tray-chip b{font-size:11.5px;font-weight:600}.tray-chip span{font-size:10.5px;color:#8fb4dd;direction:ltr}.tray-chip i{font-style:normal;font-size:10px;opacity:.6}.tray-chip:hover{background:#2b3d59}.tray-chip:hover i{opacity:1;color:#ffb4a0}.tray-chip.needs{border-color:#6b551f;background:#2f2717}.tray-chip.needs span{color:#ffd98a}.undo-pair{display:inline-flex;gap:3px}.discovery-count{font-size:12px;color:var(--muted);white-space:nowrap;cursor:help;background:var(--panel-2);border:1px solid var(--border);border-radius:9px;padding:5px 10px}.discovery-count.has{color:#d7a8ff;border-color:#4a3560;background:#251b33}.carried{font-size:12px;color:#ffd9a0;background:#3a2d1c;border:1px solid #5a4527;border-radius:9px;padding:5px 10px}.safety-score{font-size:12px;color:#9fe0b4;background:#1c2b21;border:1px solid #2c4634;border-radius:9px;padding:5px 10px}.safety-score.warn{color:#ffcf9a;background:#302517;border-color:#5a4527}.main{flex:1;display:flex;min-height:0}.stage{flex:1;position:relative;min-width:0;min-height:0;display:flex}.side{width:350px;flex:0 0 auto;border-inline-end:1px solid var(--border);display:flex;flex-direction:column;gap:1px;background:var(--border-soft);min-height:0}.lab-scene{flex:1;position:relative;min-width:0;min-height:0;overflow:hidden}.lab-scene>svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.lab-scene-3d{background:#0b0e14}.gl-loading{flex:1;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:13px;background:#0b0e14}.gl-mount{position:absolute;top:0;right:0;bottom:0;left:0}.gl-mount canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}.gl-mount canvas:active{cursor:grabbing}.prompt-3d{position:absolute;left:50%;transform:translate(-50%);bottom:92px;z-index:4;font-size:13px;color:#cfe6ff;background:#0d1420e8;border:1px solid #7cc4ff;border-radius:20px;padding:6px 16px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);white-space:nowrap;box-shadow:0 0 18px #7cc4ff38;animation:promptIn .18s ease-out}.prompt-3d b{display:inline-block;background:#7cc4ff;color:#06101c;border-radius:5px;padding:0 7px;margin-inline-end:5px;font-weight:800}@keyframes promptIn{0%{opacity:0;transform:translate(-50%) translateY(6px)}}.reaction-view{position:absolute;inset-inline-end:12px;bottom:12px;z-index:9;width:196px;background:linear-gradient(180deg,#16202ef2,#0e1520f2);border:1px solid #33455f;border-radius:13px;overflow:hidden;box-shadow:0 10px 28px #00000080;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}@media (max-width: 1100px){.stage.has-panel .reaction-view{display:none}}.rv-head{display:flex;align-items:center;gap:6px;padding:7px 10px;font-size:12px;border-bottom:1px solid #263449;background:#131c28}.rv-name{font-size:10.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rv-x{margin-inline-start:auto;background:none;border:none;color:var(--muted);cursor:pointer;font-size:12px}.rv-x:hover{color:var(--text)}.rv-empty{padding:16px 12px;font-size:11.5px;color:var(--muted);line-height:1.8;text-align:center}.rv-stage{position:relative;height:168px;display:flex;align-items:flex-end;justify-content:center;padding-bottom:8px;background:radial-gradient(ellipse at 50% 95%,#24344a,#101822 70%)}.rv-vessel{position:relative;z-index:1}.rv-pour{position:absolute;top:4px;left:50%;transform:translate(-50%);z-index:2}.rv-bottle{display:block;transform-origin:50% 90%;animation:tipIn 1.4s ease-in-out}@keyframes tipIn{0%{transform:translateY(-14px) rotate(0);opacity:0}18%{transform:translateY(0) rotate(-52deg);opacity:1}75%{transform:translateY(0) rotate(-52deg);opacity:1}to{transform:translateY(-14px) rotate(0);opacity:0}}.rv-stream{position:absolute;top:46px;left:50%;width:4px;border-radius:2px;transform:translate(-50%);animation:streamOn 1.4s ease-in-out;box-shadow:0 0 6px currentColor}@keyframes streamOn{0%,15%{height:0;opacity:0}25%{height:62px;opacity:.95}70%{height:62px;opacity:.95}85%,to{height:0;opacity:0}}.rv-grains{position:absolute;top:46px;left:50%;transform:translate(-50%)}.rv-grains i{position:absolute;width:4px;height:4px;border-radius:1px;animation:grainFall .75s linear infinite;animation-delay:calc(var(--i) * .13s);left:calc(var(--i) * 3px - 6px)}@keyframes grainFall{0%{transform:translateY(0);opacity:0}20%{opacity:1}to{transform:translateY(58px);opacity:0}}.rv-readouts{display:flex;align-items:center;gap:9px;padding:7px 10px;border-top:1px solid #263449;font-size:10.5px;color:var(--muted)}.rv-readouts b{font-size:13px;color:#cfe0f2;font-family:Consolas,monospace;margin-inline-end:2px}.rv-swatch{margin-inline-start:auto;width:22px;height:22px;border-radius:6px;border:1px solid #ffffff26;box-shadow:inset 0 -3px 6px #00000040}.rv-event{padding:7px 10px;font-size:11px;line-height:1.75;border-top:1px solid #263449;animation:evIn .3s ease-out}@keyframes evIn{0%{opacity:0;transform:translateY(-4px)}}.rv-event.gas{color:#8fd6e8;background:#10222a}.rv-event.precipitate{color:#d8e2ec;background:#1a2027}.rv-event.color{color:#d7a8ff;background:#1e1830}.rv-event.heat{color:#ffbd8a;background:#251a12}.rv-event .swatch{width:12px;height:12px;border-radius:50%;margin-inline-end:6px}.notice{position:absolute;bottom:96px;left:50%;transform:translate(-50%);z-index:7;display:flex;align-items:center;gap:10px;max-width:min(620px,calc(100% - 28px));background:linear-gradient(180deg,#17212ff5,#0f1723f5);border:1px solid #33455f;border-radius:13px;padding:9px 12px;box-shadow:0 8px 24px #00000073;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:noticeIn .22s ease-out}@keyframes noticeIn{0%{opacity:0;transform:translate(-50%) translateY(10px)}}.notice.discovery{border-color:#6b4a9e;background:linear-gradient(180deg,#241b33f5,#16101ff5);box-shadow:0 8px 28px #783cc852}.nt-ico{font-size:18px;flex:0 0 auto}.notice.discovery .nt-ico{animation:pop .5s ease-out}@keyframes pop{0%{transform:scale(.4) rotate(-20deg)}60%{transform:scale(1.25)}}.nt-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.nt-body b{font-size:11.5px;color:#d7a8ff}.nt-body span{font-size:12.5px;line-height:1.7}.nt-undo{white-space:nowrap;background:#2b3d59;border-color:#3f5a80;color:#cfe0f5}.nt-undo:hover{filter:brightness(1.3)}.nt-x{background:none;border:none;color:var(--muted);cursor:pointer;font-size:12px;padding:0 2px}.nt-x:hover{color:var(--text)}.tray-strip{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin-bottom:14px;background:var(--panel-2);border:1px solid var(--border);border-radius:10px;padding:8px 11px}.tray-strip-item{display:inline-flex;align-items:baseline;gap:6px;background:#1c2942;border:1px solid #2f4463;border-radius:8px;padding:3px 9px}.tray-strip-item b{font-size:11.5px;color:#cfe0f5}.tray-strip-item em{font-size:10.5px;color:#8fb4dd;font-style:normal;direction:ltr}.tray-count.full{color:#ffd98a}.bottle.taken{border-color:#2f7a4f;background:#17251d}.bottle-taken{position:absolute;top:4px;inset-inline-start:5px;font-size:10px;font-weight:700;color:#6ee7a0;background:#123021;border:1px solid #2f7a4f;border-radius:10px;padding:0 5px}.step-hud{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:6;display:flex;align-items:center;gap:11px;max-width:min(720px,calc(100% - 28px));background:linear-gradient(180deg,#16202ef2,#0e1520f2);border:1px solid #2f4462;border-radius:14px;padding:9px 12px;box-shadow:0 8px 26px #00000080;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:hudIn .25s ease-out}@keyframes hudIn{0%{opacity:0;transform:translate(-50%) translateY(-10px)}}.step-hud.finished{border-color:#2c5c3c;background:linear-gradient(180deg,#16261cf2,#0e1a12f2)}.sh-badge{flex:0 0 auto;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:13px;background:var(--accent);color:#06101c}.step-hud.finished .sh-badge{background:#3ddc84}.sh-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.sh-body b{font-size:13px;line-height:1.6;font-weight:600}.sh-body>span{font-size:11.5px;color:var(--muted)}.sh-progress{position:relative;height:5px;background:#202a38;border-radius:4px;overflow:visible}.sh-progress i{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#3b82f6,#6fc7ff);border-radius:4px;transition:width .3s}.sh-progress em{position:absolute;inset-inline-end:0;top:-2px;font-size:10px;color:var(--muted);font-style:normal;background:#16202e;padding-inline-start:6px}.step-hud .btn.go{background:#3a2f14;border-color:#6b551f;color:#ffd98a;white-space:nowrap}.step-hud .btn.go:hover{filter:brightness(1.25)}.sh-x{background:none;border:none;color:var(--muted);cursor:pointer;font-size:13px;padding:0 2px}.sh-x:hover{color:var(--text)}.welcome-layer{z-index:12}.welcome{width:min(760px,100%)}.wc-lead{font-size:13.5px;line-height:2.1;margin:0 0 14px;color:#c7d4e2}.wc-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;margin-bottom:16px}.wc-controls>div{background:var(--panel-2);border:1px solid var(--border);border-radius:9px;padding:8px 11px;display:flex;flex-direction:column;gap:3px}.wc-controls b{font-size:12.5px;color:#bcd8ff}.wc-controls span{font-size:11.5px;color:var(--muted)}.wc-title{font-size:12.5px;color:var(--muted);margin-bottom:8px;border-bottom:1px dashed var(--border);padding-bottom:5px}.wc-zones{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px;margin-bottom:16px}.wc-zone{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:1px 9px;background:var(--panel-2);border:1px solid var(--border);border-radius:9px;padding:8px 10px}.wc-ico{grid-row:span 2;font-size:19px;align-self:center}.wc-zone b{font-size:12.5px}.wc-zone em{font-size:11px;color:var(--muted);font-style:normal;line-height:1.6}.wc-actions{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.zone rect{transition:stroke .15s}.zone:hover rect:first-child{filter:brightness(1.25)}.zone-pulse{animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{50%{opacity:.18}}.chemist-bob{animation:bob .35s ease-in-out infinite alternate}@keyframes bob{0%{transform:translateY(0)}to{transform:translateY(-1.5px)}}.dpad{position:absolute;inset-inline-start:18px;bottom:46px;display:grid;grid-template-columns:repeat(3,42px);grid-template-rows:repeat(3,42px);gap:5px;z-index:4;opacity:.92}.dpad-btn{font-family:inherit;font-size:15px;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:none;background:#1b2431cc;color:#cfe0f2;border:1px solid #33415a;border-radius:10px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.dpad-btn:hover:not(:disabled){background:#24334a}.dpad-btn:active{background:var(--accent);color:#fff}.dpad-btn:disabled{opacity:.35;cursor:not-allowed}.dpad-btn.up{grid-area:1 / 2}.dpad-btn.left{grid-area:2 / 1}.dpad-btn.mid{grid-area:2 / 2;font-weight:800;background:#1d3350cc;border-color:#3a5a86}.dpad-btn.right{grid-area:2 / 3}.dpad-btn.down{grid-area:3 / 2}.scene-hint{position:absolute;bottom:10px;inset-inline-end:14px;z-index:3;font-size:11.5px;color:var(--muted);background:#0d1420cc;border:1px solid var(--border);border-radius:8px;padding:5px 10px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.scene-hint b{color:#bcd8ff}.bubble{animation:rise 1.5s linear infinite}@keyframes rise{0%{transform:translateY(0);opacity:.85}to{transform:translateY(var(--rise, -30px));opacity:0}}.steam{animation:steam 2.6s ease-out infinite}@keyframes steam{0%{opacity:0;transform:translateY(4px)}35%{opacity:.5}to{opacity:0;transform:translateY(-10px)}}.panel-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:8;display:flex;align-items:center;justify-content:center;background:#06090eb8;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:22px}.panel{width:min(880px,100%);max-height:100%;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow)}.panel-head{display:flex;align-items:center;gap:10px;padding:11px 15px;border-bottom:1px solid var(--border);font-weight:600;font-size:15px;flex:0 0 auto}.panel-head .x{margin-inline-start:auto;background:transparent;border:none;color:var(--muted);font-size:16px;cursor:pointer;font-family:inherit;padding:0 4px}.panel-head .x:hover{color:var(--text)}.panel-search{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:5px 10px;font-family:inherit;font-size:13px;width:190px}.tray-count{font-size:12px;color:var(--muted)}.panel-body{overflow-y:auto;padding:14px 15px}.panel-note{background:#2a2418;border:1px solid #4a4022;color:#f0dcae;border-radius:8px;padding:8px 11px;font-size:12.5px;margin-bottom:10px}.empty{color:var(--muted);padding:18px;text-align:center;font-size:13px}.empty.small{padding:8px;font-size:12px}.hint{font-size:11.5px;color:var(--muted);line-height:1.7;margin-top:6px}.hint.inline{margin:0}.shelf-group{margin-bottom:16px}.shelf-title{font-size:12.5px;color:var(--muted);margin-bottom:8px;border-bottom:1px dashed var(--border);padding-bottom:5px}.shelf-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px}.bottle{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;background:var(--panel-2);border:1px solid var(--border);border-radius:11px;padding:8px 5px;cursor:pointer;font-family:inherit;color:var(--text);transition:.12s}.bottle:hover{border-color:var(--accent);background:#1e2937;transform:translateY(-2px)}.bottle.blocked{opacity:.5}.bottle.blocked:hover{border-color:var(--red)}.bottle-name{font-size:11.5px;text-align:center;line-height:1.35}.bottle-sub{font-size:10.5px;color:var(--muted);direction:ltr}.bottle-haz{position:absolute;top:4px;inset-inline-end:5px;font-size:11px}.bottle-hood{position:absolute;top:4px;inset-inline-start:5px;font-size:11px}.glass-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.glass-item{display:flex;flex-direction:column;align-items:center;gap:4px;background:var(--panel-2);border:1px solid var(--border);border-radius:11px;padding:10px 6px;cursor:pointer;font-family:inherit;color:var(--text);transition:.12s}.glass-item:hover:not(:disabled){border-color:var(--accent);background:#1e2937}.glass-item:disabled{opacity:.4;cursor:not-allowed}.glass-art{height:132px;display:flex;align-items:flex-end}.glass-name{font-size:12px;text-align:center}.glass-sub{font-size:10.5px;color:var(--muted)}.bench-panel{width:min(960px,100%)}.bench-body{display:flex;flex-direction:column;gap:12px}.bench-shelf{display:flex;gap:10px;overflow-x:auto;padding-bottom:6px;border-bottom:1px solid var(--border)}.vessel-card{flex:0 0 auto;width:118px;display:flex;flex-direction:column;align-items:center;gap:2px;background:var(--panel-2);border:1px solid var(--border);border-radius:11px;padding:8px 4px;cursor:pointer;font-family:inherit;color:var(--text);transition:.12s}.vessel-card:hover{border-color:#3d5170}.vessel-card.sel{border-color:var(--accent);background:var(--accent-soft)}.vessel-card.place{justify-content:center;border-style:dashed;color:var(--muted);min-height:120px}.place-plus{font-size:26px}.vc-name{font-size:11.5px;text-align:center}.vc-meta{font-size:10.5px;color:var(--muted);direction:ltr}.vc-temp{font-size:10.5px;color:#d8a26a;direction:ltr}.bench-detail{display:flex;flex-direction:column;gap:10px}.bd-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.bd-cap{font-size:11.5px;color:var(--muted)}.bd-head .btn{margin-inline-start:auto}.bd-head .btn+.btn{margin-inline-start:0}.readouts{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.ro{background:var(--panel-2);border:1px solid var(--border);border-radius:9px;padding:7px 10px;display:flex;flex-direction:column;gap:2px}.ro span{font-size:11px;color:var(--muted)}.ro b{font-size:15px;direction:ltr;font-family:Consolas,monospace}.ro.ph b{color:#7cc4ff}.ro.dim b{color:var(--muted)}.swatch{display:inline-block;width:34px;height:14px;border-radius:4px;border:1px solid #ffffff30;vertical-align:middle}.pour-src{border-top:1px dashed var(--border);padding-top:10px}.ps-title{font-size:12px;color:var(--muted);margin-bottom:6px}.ps-row{display:flex;gap:7px;flex-wrap:wrap}.ps-item{position:relative;display:flex;flex-direction:column;gap:2px;text-align:start;background:var(--panel-2);border:1px solid var(--border);border-radius:9px;padding:6px 11px;cursor:pointer;font-family:inherit;color:var(--text);font-size:12px}.ps-item:hover{border-color:#3d5170}.ps-item.sel{border-color:var(--accent);background:var(--accent-soft)}.ps-item span{font-size:10.5px;color:var(--muted);direction:ltr}.warn-dot{position:absolute;top:3px;inset-inline-end:4px;font-size:10px;font-style:normal}.pour-ctl{display:flex;flex-direction:column;gap:8px;background:var(--panel-2);border:1px solid var(--border);border-radius:10px;padding:10px 12px}.pour-ctl.transfer{background:transparent}.pour-ctl.gas-link{background:#16232c;border-color:#2b4552}.row{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.row label{font-size:12px;color:var(--muted);min-width:52px}.row input[type=range]{flex:1;min-width:120px;accent-color:var(--accent)}.row b{direction:ltr;font-family:Consolas,monospace;font-size:13px;min-width:56px}.row select{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:5px 9px;font-family:inherit;font-size:12.5px}.row.quick{gap:5px}.burette-ctl{display:flex;flex-direction:column;gap:9px;background:#16202c;border:1px solid #2b3d52;border-radius:10px;padding:11px 12px}.burette-read{font-size:12.5px;color:var(--muted)}.burette-read b{color:#7cc4ff;direction:ltr;font-family:Consolas,monospace}.obs-list{display:flex;flex-direction:column;gap:5px}.obs{font-size:12.5px;line-height:1.7;padding:6px 10px;border-radius:8px;background:var(--panel-2);border-inline-start:3px solid var(--border)}.obs.precipitate{border-inline-start-color:#9fb4c6}.obs.gas{border-inline-start-color:#59b3d8}.obs.color{border-inline-start-color:#b06bd8}.obs.heat{border-inline-start-color:#d8843f}.obs.ph{border-inline-start-color:var(--green)}.obs .swatch{margin-inline-end:7px;width:16px;height:16px;border-radius:50%}.ppe-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin-bottom:14px}.ppe-item{display:flex;flex-direction:column;gap:4px;text-align:center;align-items:center;background:var(--panel-2);border:1px solid var(--border);border-radius:12px;padding:14px 10px;cursor:pointer;font-family:inherit;color:var(--text)}.ppe-item:hover{border-color:#3d5170}.ppe-item.on{border-color:var(--green);background:#1a2a1f}.ppe-ico{font-size:30px;filter:grayscale(1);opacity:.45}.ppe-item.on .ppe-ico{filter:none;opacity:1}.ppe-item span{font-size:11.5px;color:var(--muted)}.ppe-item em{font-size:11px;color:#7f8c9c;font-style:normal;line-height:1.6}.rules,.violations{background:var(--panel-2);border:1px solid var(--border);border-radius:10px;padding:11px 14px;margin-bottom:10px}.rules-title{font-size:12.5px;color:var(--muted);margin-bottom:7px}.rules ul{margin:0;padding-inline-start:18px}.rules li{font-size:12.5px;line-height:1.9}.viol{font-size:12px;color:#ffb9a0;line-height:1.8}.look-picker{display:flex;flex-direction:column;gap:8px}.look-row{display:flex;align-items:center;gap:12px}.look-row>span{font-size:12px;color:var(--muted);min-width:52px}.swatches{display:flex;gap:6px}.swatch-btn{width:26px;height:26px;border-radius:50%;cursor:pointer;border:2px solid transparent;box-shadow:inset 0 -3px 6px #00000047;transition:transform .12s,border-color .12s}.swatch-btn:hover{transform:scale(1.14)}.swatch-btn.on{border-color:#fff;box-shadow:0 0 0 2px var(--accent),inset 0 -3px 6px #00000047}.balance-display{text-align:center;margin-bottom:14px}.bd-screen{display:inline-block;background:#0a1410;border:2px solid #23402f;border-radius:10px;color:#6ef2a0;font-family:Consolas,monospace;font-size:38px;padding:10px 34px;direction:ltr;text-shadow:0 0 12px #6ef2a055}.bd-sub{font-size:11.5px;color:var(--muted);margin-top:6px}.sink-body{display:flex;gap:18px;align-items:flex-start}.sink-vessel{flex:0 0 auto;text-align:center;display:flex;flex-direction:column;gap:5px}.sink-ctl{flex:1;display:flex;flex-direction:column;gap:10px}.exp-intro{font-size:13px;color:var(--muted);margin-bottom:12px;line-height:1.9}.exp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}.exp-card{display:flex;flex-direction:column;gap:4px;text-align:start;background:var(--panel-2);border:1px solid var(--border);border-radius:12px;padding:12px 13px;cursor:pointer;font-family:inherit;color:var(--text)}.exp-card:hover{border-color:var(--accent);background:#1e2937}.exp-ico{font-size:22px}.exp-meta{font-size:11px;color:var(--muted)}.exp-card em{font-size:11.5px;color:#93a1b2;font-style:normal;line-height:1.7}.exp-goal{font-size:13.5px;background:var(--accent-soft);border:1px solid #2c4a75;border-radius:9px;padding:9px 12px;margin-bottom:10px;line-height:1.8}.theory-toggle{background:none;border:none;color:var(--muted);font-family:inherit;font-size:12.5px;cursor:pointer;padding:4px 0}.theory-toggle:hover{color:var(--text)}.theory{background:#0f141c;border:1px solid var(--border);border-radius:9px;padding:11px 13px;font-family:inherit;font-size:12.5px;line-height:2;white-space:pre-wrap;margin:0 0 12px;color:#c3d0de;unicode-bidi:plaintext}.steps{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:5px}.steps li{display:flex;gap:9px;font-size:13px;line-height:1.8;padding:7px 11px;background:var(--panel-2);border:1px solid var(--border);border-radius:9px;color:#9daabb}.steps li.current{border-color:var(--accent);color:var(--text);background:var(--accent-soft)}.steps li.done{color:#7fbf94;border-color:#2b4433}.tick{flex:0 0 auto}.restart-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px;background:var(--panel-2);border:1px solid var(--border);border-radius:10px;padding:9px 12px}.restart-row>span{font-size:12.5px;color:var(--muted);margin-inline-end:auto}.progress-pill.attempt{background:#3a2f14;border-color:#6b551f;color:#ffd98a}.exp-finish{margin-top:14px;background:#16261c;border:1px solid #2c4634;border-radius:10px;padding:12px 14px;font-size:13px;line-height:1.9}.questions{margin:8px 0 0;padding-inline-start:18px}.questions li{font-size:12.5px;line-height:2;color:#b9c8d6}.side-panel{background:var(--panel);display:flex;flex-direction:column;min-height:0;flex:1}.side-head{display:flex;align-items:center;gap:8px;padding:9px 13px;font-size:13.5px;font-weight:600;border-bottom:1px solid var(--border);flex:0 0 auto}.side-head .x{margin-inline-start:auto;background:none;border:none;color:var(--muted);cursor:pointer;font-size:14px}.side-head .count{font-size:11px;color:var(--muted);background:var(--panel-2);border-radius:20px;padding:1px 7px}.meters{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border-soft)}.meter{background:var(--panel-2);padding:8px 10px;display:flex;flex-direction:column;gap:1px}.meter span{font-size:10.5px;color:var(--muted)}.meter .big{font-size:19px;direction:ltr;font-family:Consolas,monospace;color:#7cc4ff}.meter .big small{font-size:11px;color:var(--muted)}.tabs{display:flex;gap:1px;background:var(--border-soft);flex:0 0 auto}.tabs button{flex:1;background:var(--panel);color:var(--muted);border:none;font-family:inherit;font-size:12px;padding:8px 4px;cursor:pointer;border-bottom:2px solid transparent}.tabs button.on{color:var(--text);border-bottom-color:var(--accent);background:var(--panel-2)}.species{overflow-y:auto;padding:6px 10px 12px;flex:1}.sp-row{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:baseline;padding:4px 7px;border-radius:6px;font-size:12px}.sp-row:nth-child(odd){background:#ffffff05}.sp-label{direction:ltr;font-family:Consolas,monospace;color:#cfe0f2}.sp-fa{font-size:10.5px;color:var(--muted)}.sp-conc{direction:ltr;font-family:Consolas,monospace;color:#8fd6a8;font-size:11px}.sp-row.cation .sp-label{color:#ffb4a0}.sp-row.anion .sp-label{color:#9fd0ff}.sp-row.complex .sp-label{color:#d7a8ff}.sp-row.weak .sp-label{color:#ffd79a}.sp-solids{margin-top:10px;border-top:1px dashed var(--border);padding-top:8px}.sp-solids-title{font-size:11px;color:var(--muted);margin-bottom:4px}.ind-row{display:flex;flex-direction:column;gap:2px;padding:8px 7px;border-bottom:1px dashed var(--border)}.ind-row span{font-size:11.5px;color:#9fd0ff}.ind-row small{font-size:11px;color:var(--muted);line-height:1.7}.titr{padding:10px;overflow-y:auto}.chart-wrap{background:#0f141c;border:1px solid var(--border);border-radius:9px;padding:6px}.titr-chart{width:100%;height:auto;display:block}.chart-note{font-size:11.5px;color:var(--muted);padding:6px 4px 2px;line-height:1.8}.chart-note b{color:#ffd79a;direction:ltr}.titr-facts{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted);margin:9px 0}.titr-facts b{color:var(--text);direction:ltr;font-family:Consolas,monospace}.journal{border-top:1px solid var(--border);max-height:46%}.journal-body{overflow-y:auto;padding:6px 10px;flex:1}.jr{display:grid;grid-template-columns:auto auto 1fr;gap:7px;padding:4px 2px;font-size:12px;line-height:1.7;align-items:baseline}.jr-t{color:#5f6b7a;font-family:Consolas,monospace;font-size:10.5px;direction:ltr}.jr-i{opacity:.8;font-size:11px}.jr.observation .jr-x{color:#a8d8ff}.jr.precipitate .jr-x{color:#cfd8e2}.jr.gas .jr-x{color:#8fd6e8}.jr.color .jr-x{color:#d7a8ff}.jr.safety .jr-x{color:#ffb9a0}.jr.step .jr-x{color:#8fdca8}.jr.note .jr-x{color:#ffd79a}.journal-actions{display:flex;gap:6px;padding:7px 10px;border-top:1px solid var(--border);flex:0 0 auto}@media (max-width: 1240px){.toolbar .btn-label{display:none}.toolbar>.btn{padding-inline:10px}.discovery-count .dc-label,.safety-score .ss-label{display:none}}@media (max-width: 1080px){.side{width:300px}.dpad{grid-template-columns:repeat(3,38px);grid-template-rows:repeat(3,38px)}.scene-hint{display:none}.toolbar .brand{font-size:15px}.toolbar .carried{display:none}}@media (max-width: 820px){.toolbar{gap:5px;padding:5px 8px}.toolbar .gear{padding:3px 5px}.toolbar .tray{flex-basis:100%;order:10}}@media (max-width: 860px){.main{flex-direction:column}.side{width:auto;height:40%;min-height:0;border-inline-end:none;border-top:1px solid var(--border);flex-direction:row}.journal{max-height:none;border-top:none;border-inline-start:1px solid var(--border)}.readouts{grid-template-columns:repeat(2,1fr)}.panel-layer{padding:10px}.tray{max-width:100%}}.lib-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3000;background:#04060a99;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.lib-modal{width:min(560px,92vw);max-height:86vh;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}.lib-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);font-weight:700;font-size:15px}.lib-close{background:none;border:none;color:var(--muted);font-size:16px;cursor:pointer}.lib-close:hover{color:var(--text)}.lib-body{overflow-y:auto;padding:14px 16px}.auth-modal{max-width:380px}.auth-form{display:flex;flex-direction:column;gap:11px}.auth-form label{display:flex;flex-direction:column;gap:4px}.auth-form label span{font-size:12px;color:var(--muted)}.auth-form input{background:var(--panel-2);border:1px solid var(--line);border-radius:7px;color:var(--text);padding:8px 10px;font-size:13px;font-family:inherit}.auth-form input:focus{border-color:var(--accent);outline:none}.auth-hint{margin:0;font-size:11.5px;color:var(--muted)}.auth-err{margin:0;font-size:12.5px;color:#ff9a97;background:#e043401f;border:1px solid rgba(224,67,64,.35);border-radius:7px;padding:7px 10px}.auth-submit{background:linear-gradient(180deg,#2f6fd6,#2558ab);border-color:#1f4c94;color:#fff;font-weight:700;justify-content:center;margin-top:3px}.auth-switch{margin-top:14px;font-size:12.5px;color:var(--muted);text-align:center}.linkish{background:none;border:none;color:var(--accent);cursor:pointer;font:inherit;padding:0;text-decoration:underline}.auth-note{margin:12px 0 0;font-size:11.5px;color:var(--muted);line-height:1.75;border-top:1px solid var(--line);padding-top:10px}.auth-check{flex-direction:row!important;align-items:center;gap:8px;cursor:pointer}.auth-check input{width:15px;height:15px;accent-color:var(--accent)}.auth-check span{font-size:12.5px;color:var(--text)!important}.auth-student{display:flex;flex-direction:column;gap:11px;border-right:2px solid var(--accent);padding-right:11px;margin-right:2px}.auth-form select{background:var(--panel-2);border:1px solid var(--line);border-radius:7px;color:var(--text);padding:8px 10px;font-size:13px;font-family:inherit}.home-btn{text-decoration:none;color:var(--text);background:linear-gradient(180deg,#1d2a3d,#16202e);border-color:#2f4463}.home-btn:hover{filter:brightness(1.25)}
