*{box-sizing:border-box}
html,body{margin:0;height:100%;background:#fff;color:var(--lab-ink)}
body.v04-lab{font:15px/1.5 var(--lab-font);height:100dvh;overflow:hidden}
button,input,select,textarea{font:inherit;color:inherit}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
button:disabled{cursor:wait;opacity:.6}
[hidden]{display:none!important}
.lab-layout{display:grid;grid-template-columns:minmax(0,1fr) var(--assistant-width);height:calc(100dvh - 52px);min-height:0}
.lab-main{padding:14px 20px 10px;display:grid;grid-template-rows:auto minmax(0,1fr) 208px 20px;gap:10px;min-width:0;min-height:0}
.lab-title-row{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:44px}
.lab-title-row h1{font:24px var(--lab-heading);font-weight:400;margin:0;white-space:nowrap}
.lab-title-copy{display:flex;align-items:baseline;gap:16px;min-width:0}
.lab-title-copy p{font-size:13px;color:var(--lab-muted);margin:0;white-space:nowrap}
.lab-actions{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}
.lab-btn{font:14px var(--lab-font);display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:32px;padding:5px 11px;border:1px solid var(--lab-control);border-radius:6px;text-decoration:none;color:var(--lab-ink);background:#fff;white-space:nowrap}
.lab-btn.primary{background:var(--lab-ink);border-color:var(--lab-ink);color:#fff}
.lab-btn.text{border-color:transparent;background:none;padding-inline:5px}
.lab-btn:hover{border-color:var(--lab-ink)}
.lab-btn:active{transform:translateY(1px)}
.v04-lab :focus-visible{outline:2px solid var(--lab-blue);outline-offset:3px}
.lab-taskbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:4px 0 8px;border-bottom:1px solid var(--lab-line)}
.lab-taskbar button{background:none;border:0;border-bottom:2px solid transparent;padding:6px 6px 8px;font-size:14px;white-space:nowrap}
.lab-taskbar button[aria-current=step]{border-color:var(--lab-ink)}
.lab-stage{border:1px solid var(--lab-line);border-radius:8px;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 280px;overflow:hidden;background:#fff}
.lab-stage.overview{grid-template-columns:minmax(0,1fr)}
.scene-panel{display:flex;flex-direction:column;min-height:0;min-width:0;position:relative;background:#fff}
.scene-topline{height:36px;min-height:36px;padding:6px 14px;display:flex;justify-content:space-between;align-items:center;gap:10px;color:var(--lab-muted);font-size:13px}
.scene-topline .part-switch{display:flex;gap:16px}
.scene-topline button{background:none;border:0;padding:0;color:var(--lab-muted);font-size:14px}
.scene-topline button[aria-pressed=true]{color:var(--lab-ink);text-decoration:underline;text-underline-offset:5px}
.scene-canvas{flex:1;position:relative;min-height:0;width:100%;overflow:hidden;display:grid;place-items:center}
.scene-canvas>img{display:block;width:100%;height:100%;object-fit:contain;min-height:0;pointer-events:none}
.scene-hotspot{position:absolute;background:rgba(255,255,255,.97);border:1px solid #8a9ba6;border-radius:5px;padding:5px 10px;font-size:14px;line-height:1.3;text-align:left;white-space:nowrap;transform:translate(-50%,-50%)}
.scene-hotspot strong{font-weight:400;display:block;color:var(--lab-ink)}
.scene-hotspot span{color:var(--lab-muted);font-size:12px}
.scene-hotspot:hover,.scene-hotspot:focus-visible{border-color:var(--lab-blue);color:var(--lab-blue);background:#fff}
.scene-hotspot::before{content:'';position:absolute;width:5px;height:5px;background:var(--lab-blue);border-radius:50%;top:-4px;left:50%}
.scene-bottomline{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:7px 14px;min-height:36px;border-top:1px solid var(--lab-line);font-size:13px;color:var(--lab-muted)}
.scene-live-values{display:flex;gap:18px;color:var(--lab-ink);font-variant-numeric:tabular-nums}
.scene-live-values em{font-style:normal;color:var(--lab-muted);margin-right:5px}
.scene-power-key{display:flex;align-items:center;gap:14px;font-size:12px;color:var(--lab-muted)}
.scene-power-key span{display:flex;align-items:center;gap:5px}
.scene-power-key i{display:inline-block;width:18px;border-top:2px solid #6b7072}
.scene-power-key .control-key{border-color:var(--lab-blue);border-width:1px}
.scene-power-key .feedback-key{border-color:var(--lab-blue);border-top-style:dashed;border-width:1px}
.fadec-panel{border-left:1px solid var(--lab-line);padding:12px 14px;display:flex;flex-direction:column;gap:10px;overflow:auto;min-height:0}
.fadec-heading{display:flex;justify-content:space-between;align-items:center;gap:8px}
.fadec-heading h2{font:18px var(--lab-heading);font-weight:400;margin:0}
.fadec-heading button{font-size:12px;background:none;border:0;padding:0;color:var(--lab-muted)}
.pi-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;border-bottom:1px solid var(--lab-line)}
.pi-tabs button{background:none;border:0;border-bottom:2px solid transparent;font-size:14px;padding:4px 2px 8px}
.pi-tabs button[aria-selected=true]{border-color:var(--lab-ink)}
.pi-equation{font-family:"Cambria Math","Times New Roman",serif;font-size:22px;margin:2px 0 0;text-align:center;line-height:1.6}
.pi-equation sub{font-size:13px}
.pi-purpose{text-align:center;font-size:13px;color:var(--lab-muted);margin:0}
.pi-field{display:grid;grid-template-columns:26px minmax(0,1fr) 71px;align-items:center;gap:8px}
.pi-field label{font:19px "Times New Roman",serif;font-style:italic}
.pi-field input[type=number]{width:100%;font-variant-numeric:tabular-nums;text-align:right;padding:4px 5px;border:1px solid var(--lab-control);border-radius:4px;font-size:15px}
.pi-field input[type=range]{width:100%;accent-color:var(--lab-ink);margin:0;min-width:0}
.pi-field.changed input[type=number]{border-color:var(--lab-blue)}
.pi-other{padding-top:9px;border-top:1px solid var(--lab-line);font-size:13px;color:var(--lab-muted);line-height:1.8}
.pi-other .other-title{display:flex;justify-content:space-between;color:var(--lab-ink)}
.pi-other p{margin:2px 0 0;font-variant-numeric:tabular-nums}
.conditions-row{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px;color:var(--lab-muted)}
.conditions-row select{font-size:14px;padding:3px 4px;border:1px solid var(--lab-control);border-radius:4px;background:white;max-width:130px}
.lab-plots{display:grid;grid-template-columns:1fr 1fr;gap:14px;min-height:0;min-width:0}
.plot-panel{border:1px solid var(--lab-line);border-radius:8px;display:grid;grid-template-rows:32px minmax(0,1fr) 32px;min-width:0;min-height:0;overflow:hidden}
.plot-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 12px 1px}
.plot-heading h2{font-size:16px;font-weight:400;margin:0;white-space:nowrap}
.plot-heading button{background:none;border:0;font-size:12px;color:var(--lab-muted);padding:0}
.plot-legend{display:flex;gap:12px;align-items:center;font-size:12px;color:var(--lab-muted)}
.plot-legend span{display:flex;align-items:center;gap:5px;white-space:nowrap}
.plot-legend i{width:19px;height:0;border-top:2px solid var(--lab-blue)}
.plot-legend .baseline{border-color:#929da5;border-top-style:dashed}
.plot-legend .reference{border-width:1px;border-color:#6d7982;border-top-style:dotted}
.plot-canvas{min-height:0;min-width:0;position:relative;padding:0 7px}
.plot-canvas svg{width:100%;height:100%;display:block;overflow:visible}
.plot-canvas text{font:12px "Times New Roman","SimSun",serif;fill:var(--lab-muted)}
.plot-summary{display:flex;justify-content:space-between;gap:8px;padding:4px 12px;border-top:1px solid var(--lab-line);font-size:13px;align-items:center;min-width:0;font-variant-numeric:tabular-nums}
.plot-summary span{white-space:nowrap}
.plot-summary strong{font-weight:400;color:var(--lab-ink)}
.lab-statusline{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;color:var(--lab-muted);min-width:0}
.lab-statusline button{background:none;border:0;padding:0;color:var(--lab-muted);font:inherit;text-decoration:underline;text-underline-offset:3px}
.lab-statusline .status-warning{color:var(--lab-bad)}
.model-details{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.model-details p{margin:4px 0}
.model-details .model-source{font-size:13px;overflow-wrap:anywhere}
.full-loop-svg{width:100%;height:auto;font-family:"Times New Roman","SimSun",serif}
.all-chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.all-chart-grid .plot-panel{height:240px;grid-template-rows:32px minmax(0,1fr)}
.lab-mobile-assistant{display:none}
.report-label{display:block;margin-top:18px;margin-bottom:6px}
.report-findings{padding:12px;background:var(--lab-ground);border-radius:6px;line-height:1.8;margin-top:12px}
.lab-chart-tooltip{position:absolute;top:12px;right:18px;font-size:12px;background:#fff;border:1px solid var(--lab-line);padding:4px 8px;pointer-events:none}
@media(min-width:1600px){.lab-main{padding:18px 26px 14px;gap:14px;grid-template-rows:auto minmax(0,1fr) 240px 20px}.lab-stage{grid-template-columns:minmax(0,1fr) 306px}.fadec-panel{padding:18px;gap:14px}.plot-panel{grid-template-rows:36px minmax(0,1fr) 36px}.plot-heading{padding-inline:16px}.plot-summary{padding-inline:16px;font-size:14px}.lab-title-row{min-height:48px}}
@media(max-height:740px) and (min-width:1001px){.lab-main{padding:10px 16px 8px;gap:8px;grid-template-rows:auto minmax(0,1fr) 190px 18px}.lab-title-row{min-height:38px}.lab-title-row h1{font-size:22px}.lab-title-copy p{font-size:12px}.fadec-panel{gap:8px;padding:10px 12px}.pi-equation{font-size:21px}.scene-topline{height:30px;min-height:30px}.scene-bottomline{min-height:30px;padding:5px 12px}.lab-taskbar{margin-bottom:4px}.lab-taskbar button{padding:3px 4px 6px;font-size:13px}.plot-panel{grid-template-rows:29px minmax(0,1fr) 29px}.plot-summary{font-size:12px}.lab-title-copy{gap:12px}}
@media(max-width:1100px){.lab-layout{grid-template-columns:minmax(0,1fr)}.v04-lab>.lab-layout>.lab-assistant{display:none;position:fixed;right:0;top:52px;bottom:0;width:320px;z-index:30;border-left:1px solid var(--lab-control)}.v04-lab.assistant-open>.lab-layout>.lab-assistant{display:flex}.lab-mobile-assistant{display:inline-flex}.lab-title-copy p{display:none}.lab-main{padding-inline:16px}.lab-stage{grid-template-columns:minmax(0,1fr) 266px}.scene-power-key{gap:8px}}
@media(max-width:700px){body.v04-lab{height:auto;overflow:auto}.lab-layout{height:auto;min-height:calc(100dvh - 52px)}.lab-main{grid-template-rows:auto auto auto auto;padding:12px;gap:12px}.lab-title-row{align-items:flex-start;gap:8px}.lab-title-row h1{font-size:21px}.lab-actions{gap:4px;flex-wrap:wrap;justify-content:flex-end}.lab-btn{font-size:13px;min-height:32px;padding:5px 8px}.lab-actions .less-urgent{display:none}.lab-stage{grid-template-columns:1fr;overflow:visible}.scene-panel{height:300px}.lab-stage.overview .scene-panel{height:330px}.fadec-panel{border-left:0;border-top:1px solid var(--lab-line);overflow:visible;display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;padding:14px}.fadec-heading,.pi-tabs,.pi-equation,.pi-purpose,.pi-other,.conditions-row{grid-column:1/-1}.pi-field{grid-column:1/-1}.pi-equation{margin:0}.pi-purpose{margin-top:-8px}.pi-other{padding-top:8px}.conditions-row{margin-top:0}.lab-plots{grid-template-columns:1fr;gap:12px}.plot-panel{height:230px}.plot-summary{font-size:13px}.plot-legend{gap:8px}.scene-topline{height:32px;min-height:32px;font-size:12px}.scene-live-values{gap:10px;font-size:12px}.scene-power-key{display:none}.scene-hotspot{font-size:12px;padding:4px 6px}.scene-hotspot span{font-size:11px}.lab-taskbar{gap:0;overflow:auto;justify-content:flex-start}.lab-taskbar button{padding-inline:8px;font-size:13px}.lab-statusline{align-items:flex-start;flex-wrap:wrap;line-height:1.5}.all-chart-grid,.model-details{grid-template-columns:1fr}.lab-global-nav{gap:14px}.lab-topbar{gap:10px}.lab-topbar .lab-return{display:none}.lab-brand{font-size:16px}.lab-global-nav a{font-size:13px}.lab-mobile-assistant{font-size:12px;padding:4px 6px;min-height:28px}.lab-title-row .lab-actions{max-width:55%}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}.lab-btn:active{transform:none}}
.scene-canvas>svg{display:block;width:100%;height:100%;min-height:0}.scene-canvas>svg [data-component]:focus-visible{outline:2px solid var(--lab-blue);outline-offset:3px}
