:root{font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif;color:#dae5eb;background:#080d12;color-scheme:dark;font-synthesis:none;font-weight:400}*{box-sizing:border-box}body{margin:0}button,select,input{font:inherit}button,select{color:#d7e4eb;border:1px solid #34424e;background:#14202a;border-radius:7px;min-height:36px;padding:7px 12px}button{cursor:pointer;transition:background .16s,border-color .16s,transform .16s}button:hover{background:#21333f;border-color:#647d8c}button:active{transform:scale(.97)}button[aria-pressed=true],button.selected{border-color:#8bbcaf;background:#243b3e;color:#e4fff6}button:disabled{opacity:.4;cursor:default}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid #a8dccd;outline-offset:3px}button input{cursor:pointer}.topbar{height:62px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;border-bottom:1px solid #22303a;background:#0c131b;gap:14px}h1{font-size:19px;font-weight:500;letter-spacing:.12em;margin:0;white-space:nowrap}.header-actions{display:flex;align-items:center;gap:10px}.header-actions button{border:0;background:transparent}.experiment-picker select{max-width:164px;background:#101b24;color:#b7cbd5;border-color:#2c3c48;font-size:13px}.lab-stage{position:relative;height:clamp(400px,calc(100svh - 186px),940px);min-height:400px;overflow:hidden;background:radial-gradient(ellipse at 50% 45%,#1c2c38,#080d12 70%)}#lab-viewport{position:absolute;inset:0;touch-action:none}canvas{display:block;max-width:100%}#lab-status{position:absolute;left:27px;top:20px;font-size:12px;letter-spacing:.03em;color:#d6e8ee;background:#081119c9;border:1px solid #5b74813d;padding:8px 11px;border-radius:6px;pointer-events:none;text-shadow:0 1px 3px #000}#lab-readout{position:absolute;bottom:18px;left:50%;transform:translate(-50%);font-size:12px;font-variant-numeric:tabular-nums;color:#c9dce5;background:#09121bdc;border:1px solid #2c404c;border-radius:7px;padding:9px 14px;max-width:calc(100% - 130px);text-align:center;line-height:1.7;pointer-events:none}.view-tools{position:absolute;right:22px;top:20px;display:flex;gap:5px}.view-tools button{width:35px;padding:4px;background:#0a131ce6}.control-strip{display:flex;align-items:center;gap:20px;padding:16px 28px;border-top:1px solid #283741;background:#0d161e;min-height:117px}#lab-controls{display:flex;align-items:center;justify-content:center;gap:20px;flex:1;flex-wrap:wrap}#lab-controls>label,#lab-controls .lab-control{display:flex;flex-direction:column;gap:9px;min-width:130px;font-size:12px;color:#b8cbd4}#lab-controls label:has(input[type=checkbox]){flex-direction:row;align-items:center;min-width:unset}#lab-controls label output,#lab-controls .lab-control output{color:#f0d4a6;font-variant-numeric:tabular-nums;margin-left:7px}#lab-controls input[type=range]{accent-color:#9fd0bd;width:100%;min-width:125px;height:17px}#lab-controls input[type=checkbox]{accent-color:#9fd0bd}#lab-controls .lab-buttons{display:flex;gap:7px;flex-wrap:wrap}#lab-controls button{font-size:12px}#lab-controls small{font-size:11px;color:#9bb1bf}#lab-reset{align-self:center;white-space:nowrap;background:transparent;color:#b7cbd5}.lab-control label{font-size:12px}#help-panel{position:fixed;right:22px;top:75px;width:min(400px,calc(100vw - 28px));max-height:calc(100svh - 100px);overflow:auto;z-index:50;background:#101c26f5;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 18px 80px #0009;border:1px solid #3e5361;border-radius:12px;padding:21px 23px;font-size:13px;line-height:1.9;color:#bdcdd7}.help-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.help-heading h2{font-size:16px;color:#edf3f5;font-weight:500;margin:0}.help-heading button{font-size:23px;min-height:28px;padding:0 7px;background:transparent;border:0}#help-panel a{color:#aad9d4}#help-panel p{margin:12px 0}.navigation-help{border-top:1px solid #31424d;padding-top:12px;color:#9fb6c3}#lab-fallback{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);width:min(480px,85%);text-align:center;padding:28px;border:1px solid #354b59;border-radius:12px;background:#101e29}#lab-fallback h2{font-size:21px;font-weight:500}#lab-fallback p{color:#a7c0cd;line-height:1.8;font-size:13px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}@media(max-width:700px){.topbar{padding:0 13px;height:58px;gap:7px}h1{font-size:16px;letter-spacing:.04em}.header-actions{gap:3px}.header-actions button{padding:6px;font-size:12px}.experiment-picker select{font-size:11px;max-width:116px;padding:5px;min-height:32px}.lab-stage{height:clamp(390px,calc(100svh - 260px),650px);min-height:390px}#lab-status{left:12px;top:13px;max-width:calc(100% - 125px);font-size:10px;padding:6px 8px}.view-tools{right:10px;top:12px;gap:3px}.view-tools button{width:28px;min-height:30px;font-size:13px}#lab-readout{bottom:12px;width:calc(100% - 24px);max-width:none;font-size:10px;padding:8px 9px}.control-strip{padding:13px 12px;gap:9px;align-items:flex-start;min-height:160px}#lab-controls{gap:13px 12px;justify-content:flex-start}#lab-controls>label,#lab-controls .lab-control{min-width:120px;flex:1;max-width:200px;font-size:11px}#lab-controls button{padding:6px 9px;font-size:11px;min-height:33px}#lab-reset{padding:6px;font-size:11px}#help-panel{top:66px;right:10px;padding:17px;max-height:calc(100svh - 80px)}}@media(prefers-reduced-motion:reduce){button{transition:none}}@media(min-width:701px){body{height:100svh;overflow:hidden}main{height:calc(100svh - 62px);display:flex;flex-direction:column}.lab-stage{flex:1;height:auto;min-height:340px}.control-strip{flex:none;padding-top:13px;padding-bottom:13px;max-height:38svh;overflow:auto}.pdl-controls .pdl-energy{width:230px;flex:1;min-width:180px}.pdl-controls .pdl-field{max-width:220px}}@media(min-width:1000px){main:has([data-wiring][open]){padding-right:338px}#lab-controls [data-wiring][open]{position:fixed;z-index:20;right:12px;top:74px;bottom:14px;width:314px;max-width:314px!important;padding:16px;background:#10202af5;border:1px solid #3b5360;border-radius:10px;box-shadow:0 15px 45px #0005;overflow:auto}#lab-controls [data-wiring][open]>summary{border-bottom:1px solid #354b57;padding-bottom:10px;margin-bottom:6px}#lab-controls [data-wiring][open]>summary:after{content:"收起 ×";margin-left:auto;color:#bbd2da;font-size:11px}#lab-controls [data-wiring][open] button{min-height:37px}}@media(max-width:999px){#lab-controls [data-wiring][open]{max-height:210px;overflow:auto;width:100%;padding:10px 12px;background:#10202a;border:1px solid #344d5a;border-radius:8px}#lab-controls [data-wiring][open]>summary{position:sticky;top:-10px;background:#10202a;z-index:1}}html,body{height:100%;overflow:hidden}body{height:100dvh}main#lab-scroll{height:calc(100dvh - 62px);overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;scrollbar-gutter:stable;outline-offset:-3px}#lab-scroll::-webkit-scrollbar{width:9px}#lab-scroll::-webkit-scrollbar-thumb{background:#415564;border:2px solid #0c151e;border-radius:8px}#lab-scroll::-webkit-scrollbar-track{background:#0c151e}@media(max-width:700px){main#lab-scroll{height:calc(100dvh - 58px)}}@media(max-height:540px){.topbar{height:54px;padding-top:0;padding-bottom:0}main#lab-scroll{height:calc(100dvh - 54px)}.lab-stage{height:220px;height:clamp(220px,calc(100svh - 170px),340px);min-height:220px;flex:0 0 auto}.control-strip{min-height:117px;max-height:none;overflow:visible;padding-top:12px;padding-bottom:12px}#lab-status{top:10px;padding:5px 8px}.view-tools{top:10px}#lab-readout{bottom:9px;padding:5px 10px;font-size:10px}#lab-controls{gap:10px 16px}#help-panel{top:62px;max-height:calc(100dvh - 75px)}}#lab-interaction{position:absolute;left:27px;top:62px;z-index:5;max-width:calc(100% - 40px);padding:7px 12px;border:1px solid #81cfc94a;border-radius:20px;background:#0b171de8;color:#d8eeec;font-size:12px;pointer-events:none;box-shadow:0 3px 15px #0003}#lab-interaction[hidden]{display:none}#lab-interaction[data-active=true]{border-color:#a1e4d985}@media(max-width:700px){#lab-interaction{left:12px;top:50px;font-size:11px;padding:6px 9px;max-width:calc(100% - 35px)}}@media(max-height:540px){#lab-interaction{top:42px;font-size:10px;padding:5px 8px}}.workbench-controls{display:flex;align-items:center;justify-content:center;gap:14px 18px;flex-wrap:wrap;width:100%}.workbench-controls .bench-field{display:flex;flex-direction:column;gap:8px;min-width:135px;max-width:220px;flex:1;font-size:12px;color:#b5cad5}.bench-field>span{display:flex;align-items:baseline;justify-content:space-between;gap:6px}.bench-field output{margin:0!important;color:#ecd4a8;font-variant-numeric:tabular-nums;font-size:11px}.bench-field:has(input[type=checkbox]){min-width:auto;flex:0;flex-direction:row;align-items:center}.bench-field select{width:100%;min-height:36px;font-size:12px}.workbench-controls>button{min-height:38px}.measurement-records{width:100%;border-top:1px solid #304450;padding-top:10px}.measurement-records>summary{font-size:12px;color:#a5cabe;cursor:pointer;width:max-content;padding:5px}.record-actions{display:flex;gap:8px;align-items:center;margin:10px 0;flex-wrap:wrap}.record-actions span{font-size:11px;color:#8fb3bc}.record-table{overflow-x:auto;max-height:240px;overflow-y:auto}.record-table table{width:100%;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.record-table td,.record-table th{border:1px solid #324651;padding:8px 12px;text-align:right}.record-table th{font-weight:500;color:#c9dedb;background:#172b34;position:sticky;top:0}.record-table tr:nth-child(2n){background:#14232b}.control-strip:has(.measurement-records[open]){max-height:none;overflow:visible}#lab-controls:has(.workbench-controls){min-width:0}.topbar h1{max-width:50vw;text-overflow:ellipsis;overflow:hidden}.chapter-context{font-size:10px;letter-spacing:.05em;color:#8faebd;display:block;margin-top:4px}.lab-stage:has(+.control-strip .workbench-controls){min-height:400px}#lab-status{max-width:calc(100% - 160px);line-height:1.6}#lab-controls .bench-field input[type=range]{height:24px}.record-actions button{touch-action:manipulation}@media(max-width:700px){.workbench-controls{gap:12px;justify-content:flex-start}.workbench-controls .bench-field{min-width:125px;max-width:none;font-size:11px;flex:1 1 42%}.bench-field output{font-size:10px}.topbar h1{max-width:42vw;font-size:14px}.header-actions{gap:2px}.experiment-picker select{max-width:94px}.directory-open{max-width:56px;white-space:normal!important;line-height:1.3}.control-strip{padding:14px 10px}.control-strip:has(.workbench-controls){align-items:flex-start}.lab-stage:has(+.control-strip .workbench-controls){min-height:375px}.record-table td,.record-table th{padding:7px 9px;font-size:11px}}@media(max-height:540px){.lab-stage:has(+.control-strip .workbench-controls){height:240px;min-height:240px;flex:0 0 auto}.workbench-controls .bench-field{min-width:140px;max-width:200px}.control-strip:has(.workbench-controls){max-height:none;overflow:visible}}@media(prefers-reduced-motion:reduce){.workbench-controls button{transition:none}}.bench-field:has(input[type=checkbox]){white-space:nowrap!important;gap:9px!important;flex:0 0 auto!important;min-width:max-content!important}.bench-field:has(input[type=checkbox])>span{white-space:nowrap;flex:none}.bench-field input[type=checkbox]{width:17px;height:17px;flex:none;cursor:pointer}@media(max-width:700px)and (min-height:541px){.lab-stage:has(+.control-strip .workbench-controls){height:clamp(340px,52svh,440px)!important;min-height:340px!important}}@media(max-width:700px){.header-actions .directory-open{font-size:0!important;min-width:42px;max-width:42px;padding:6px!important;min-height:34px;white-space:nowrap!important}.header-actions .directory-open:after{content:"目录";font-size:11px}#lab-pause{min-width:28px;white-space:nowrap;padding:6px!important}#lab-pause span{display:none}#lab-help{font-size:0!important;min-width:28px;padding:6px!important}#lab-help:after{content:"?";font-size:17px}.topbar h1{max-width:48vw}.header-actions{flex-shrink:0}}
