/* V06: shared typography, interaction and course controls. */
:root{--academic-ui:"Microsoft YaHei UI","Microsoft YaHei","PingFang SC","Noto Sans CJK SC",sans-serif;--academic-blue:#155e9c;--academic-ink:#22374c;--academic-muted:#5a6d81;--academic-line:#d5dee9;--academic-ground:#f3f6fa}
html body{font-family:var(--academic-ui)!important;-webkit-font-smoothing:antialiased;color:var(--academic-ink);font-size:15px}
button,input,select,textarea{font-family:var(--academic-ui)!important}
h1,h2,h3,.lab-title-row h1,.plot-heading h2,.fadec-heading h2{font-family:var(--academic-ui)!important;font-weight:600!important;letter-spacing:0}
body p{line-height:1.7}
body .lab-topbar .lab-brand{display:flex!important;align-items:center;flex:0 0 auto;min-width:0;padding:0;line-height:1}
.npu-wordmark{display:block;width:178px;height:auto;max-height:36px;object-fit:contain}
.lab-topbar{gap:16px!important;padding-inline:18px!important;background:#fff}
.lab-global-nav{gap:28px}
.lab-global-nav a{font-family:var(--academic-ui)!important;font-size:14px!important;font-weight:500}
.lab-return{font-size:13px!important;white-space:nowrap}
body .site-nav a{font-family:var(--academic-ui)!important;font-size:14px!important}
button,[role="button"],a.lab-btn,a.btn{transition:scale .17s cubic-bezier(.2,.8,.2,1),translate .17s cubic-bezier(.2,.8,.2,1),background-color .17s,border-color .17s,color .17s;transform-origin:center;will-change:auto}
button:not(:disabled):hover,[role="button"]:not([aria-disabled=true]):hover,a.lab-btn:hover,a.btn:hover{scale:1.035;translate:0 -1px;border-color:#4c85b7}
button:not(:disabled):active,[role="button"]:active,a.lab-btn:active{scale:.975;translate:0 0}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #357bb5;outline-offset:3px}
button:disabled{cursor:default}
input[type=range]{height:22px!important;min-height:22px;accent-color:#1769aa;margin:2px 0!important;cursor:pointer}
input[type=range]::-webkit-slider-thumb{transition:scale .16s}
input[type=range]:hover::-webkit-slider-thumb{scale:1.13}
.katex{font-size:1.05em!important;line-height:1.2!important}
.katex-display{margin:0!important}
.katex .cjk_fallback,.katex .text .cjk_fallback{font-family:var(--academic-ui)!important;font-style:normal}
.academic-katex{font-style:normal;line-height:1.3}
.academic-math{display:inline-block;max-width:100%;vertical-align:middle}
.academic-math:has(>.katex-display){display:block}
.svg-latex{display:flex;align-items:center;justify-content:center;height:100%;font-size:15px}
.academic-katex .katex-mathml{font-size:1em}
.math-error{color:#a73535}
.fixed-caption{display:block;font:12px/1.5 var(--academic-ui);color:var(--academic-muted);margin-top:3px}
.tikz-fo{width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:visible;font-size:31px;color:#223a54}
.tikz-plant{flex-direction:column;gap:3px;font-size:30px}
.tikz-plant .loop-plant{font:20px/1.35 var(--academic-ui)}
.tikz-plant .loop-actuator{font:18px/1.3 var(--academic-ui);color:#526c86}
.tikz-plant .loop-plant-math{font-size:37px}
.tikz-live{font-size:21px;gap:6px;color:#1769aa;white-space:nowrap}
.tikz-live .academic-live-value{font-family:"KaTeX_Main",serif}
.tikz-variable-hit{fill:transparent;stroke:transparent;stroke-width:1.6;cursor:pointer;transition:fill .18s,stroke .18s}
.tikz-variable-hit:hover{fill:#1769aa09;stroke:#7aa5ca}
.tikz-variable-hit.variable-active{fill:#1769aa0d;stroke:#397db4}
.ak-var.variable-active{background:#e6f0fa;border-radius:3px;box-shadow:0 0 0 1px #bdd1e4}
body .lab-assistant h2{font-size:18px!important}
.assistant-message{font:14px/1.8 var(--academic-ui)!important}
.assistant-context{font-size:13px}
.assistant-compose textarea{font:14px/1.6 var(--academic-ui)!important}
body .source-toolbar h1,body .course-topbar h1,body .chapter-toolbar h1{font-family:var(--academic-ui)!important;font-size:21px;font-weight:600}
body .source-examples button,body .source-case-link{font-family:var(--academic-ui)!important;font-size:14px}
body .course-card h2,body .course-plot h2,body .design-panel h2{font-size:16px!important;font-weight:600!important}
body .course-topbar,.chapter-toolbar,.source-toolbar{gap:10px}
body .course-card,.course-plot,.source-frame-wrap,.lab-stage,.plot-panel{border-color:#d3dee9!important;box-shadow:none}
body .course-muted,body .course-card-title>span{font-family:var(--academic-ui);font-size:12px}
body .course-playbar,body .course-toolbar,body .model-live-values{font-size:14px}
body .model-equations{font-size:21px!important}
body .model-transform{font-size:23px!important}
body .model-closed-formula{font-size:19px}
body .signal-card strong,.rotor-reading strong{font-family:"KaTeX_Main","Times New Roman",serif!important;font-weight:400}
body .course-equations math,body .course-equations .academic-math{font-size:18px}
body .live-loop svg,body .model-physical svg{width:100%;height:100%}
body .model-physical .tikz-model{overflow:visible}
body .loop-card{padding-bottom:5px}
body[data-page="concepts"] .live-loop{min-height:0}
body[data-page="concepts"] .rotor-card{background:#fbfdff}
body[data-page="concepts"] .course-toolbar>label:first-child{display:grid;grid-template-columns:auto 125px 42px;gap:8px;align-items:center}
body .pi-equation{font-size:22px}
body .pi-purpose{font-size:13px}
body .scene-bottomline em{font-family:"KaTeX_Math",serif;font-style:italic}
body[data-start="overview"] .lab-stage.overview{grid-template-columns:minmax(0,1fr) 230px}
.overview-control-map{min-width:0;padding:13px 16px;background:#fbfdff;border-left:1px solid #d7e2ee;display:flex;flex-direction:column;gap:10px;overflow:hidden}
.overview-map-heading{display:flex;gap:7px;align-items:center}
.overview-map-heading h2{font-size:18px;margin:0}
.hardware-dot{width:7px;height:7px;background:#1769aa;border-radius:50%}
.map-link{margin-left:auto;border:0;background:none;padding:3px 0;font-size:12px;color:#4e6e8c}
.map-channel{border-top:1px solid #d9e4ee;padding-top:10px;display:grid;gap:7px}
.map-channel-head{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:#526d87}
.map-channel-head>.academic-katex{font-size:18px;color:#153e64}
.map-equation{font-size:20px;text-align:center;padding:3px 0}
.map-channel p{display:flex;gap:12px;justify-content:center;align-items:center;margin:0;font-size:16px}
.map-arrow{color:#7a91a8}
.map-design-button{display:flex;justify-content:space-between;align-items:center;border:1px solid #c3d5e6;background:#fff;border-radius:5px;padding:7px 9px;color:#155e9c;font-size:13px}
.map-design-button>span{transition:translate .17s}
.map-design-button:hover>span{translate:3px -1px}
.map-coupling{margin-top:auto;padding-top:8px;border-top:1px solid #d9e4ee;display:flex;flex-direction:column;gap:4px;color:#5a7187;font-size:12px}
.map-coupling>.academic-katex{font-size:15px}
body .scene-hotspot strong{font-family:var(--academic-ui)!important;font-size:14px}
body .scene-hotspot span{font-size:12px}
body .scene-hotspot{padding:5px 9px}
body[data-start="overview"] [data-hotspot="fadec"]{display:none}
body .plot-summary{font-family:var(--academic-ui)!important;font-size:12px}
body .plot-summary strong{font-family:"KaTeX_Main",serif;font-size:14px}
/* Same type and horizontal parameter rail in retained source experiments. */
html body[data-source-page],html body.source-page{font:15px/1.45 var(--academic-ui)!important}
body[data-source-page] h1,body[data-source-page] h2,body.source-page h1,body.source-page h2{font:600 16px/1.3 var(--academic-ui)!important}
body[data-source-page] button,body.source-page button{font:13px/1.35 var(--academic-ui)!important;min-height:28px;padding:4px 8px}
body[data-source-page] .label,body[data-source-page] .legend,body.source-page .legend,body.source-page .muted,body[data-source-page] small{font-family:var(--academic-ui)!important;font-size:12px}
body[data-source-page] .controlrow label,body.source-page .controls label{font:14px/1.4 var(--academic-ui)!important}
body[data-source-page] .metric,body[data-source-page] .stat,body.source-page .metric{font:12px/1.4 var(--academic-ui)!important}
body[data-source-page] .metric b,body[data-source-page] .stat>span,body.source-page .metric strong{font-size:16px!important}
body[data-source-page="time-v11"] .app{grid-template-columns:1fr 1fr;grid-template-rows:84px 64px minmax(0,1fr);gap:8px}
body[data-source-page="time-v11"] .topPanel,body[data-source-page="time-v11"] .summary{display:contents!important}
body[data-source-page="time-v11"] .formulaBlock,body[data-source-page="time-v11"] .poleBlock{grid-row:1;padding:9px 12px;background:#f8fbff;border:1px solid #d5e0ec;border-radius:5px;min-width:0}
body[data-source-page="time-v11"] .formulaBlock{grid-column:1}
body[data-source-page="time-v11"] .poleBlock{grid-column:2}
body[data-source-page="time-v11"] .controls{grid-row:2!important;grid-column:1/-1!important;display:grid!important;grid-template-columns:1fr 1fr!important;padding:6px 12px;border:1px solid #d5e0ec;border-radius:5px;background:#f8fbff;gap:24px}
body[data-source-page="time-v11"] .controlrow{display:grid;grid-template-columns:1fr 72px;grid-template-rows:22px 24px;gap:0}
body[data-source-page="time-v11"] .controlrow label{grid-column:1;grid-row:1}
body[data-source-page="time-v11"] .controlrow input{grid-column:1/-1;grid-row:2;width:100%}
body[data-source-page="time-v11"] .controlrow strong{grid-column:2;grid-row:1;font:17px/1.3 "KaTeX_Main",serif;text-align:right}
body[data-source-page="time-v11"] .polePanel{grid-column:1;grid-row:3}
body[data-source-page="time-v11"] .responsePanel{grid-column:2;grid-row:3}
body[data-source-page="time-v11"] .formula{font-size:21px}
body[data-source-page="time-v11"] .params{font-size:20px}
body[data-source-page="time-v11"] .hint{display:none!important}
body[data-source-page="root-basic"] main{grid-template-rows:124px 58px minmax(0,1fr) 66px;gap:8px}
body[data-source-page="root-basic"] .lead{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:8px;align-items:center;padding:3px 10px;border:1px solid #d5e0ec;border-radius:5px}
.academic-root-loop{min-width:0;height:114px}
.academic-root-loop>svg{width:100%;height:100%}
.academic-root-loop .tikz-plant .loop-plant{display:none}
.academic-root-loop .tikz-plant .loop-plant-math{font-size:34px}
.academic-root-model{font-size:23px;text-align:center}
body[data-source-page="root-basic"] .controls{grid-template-columns:1fr 130px;padding:6px 12px}
body[data-source-page="root-zero"] main{grid-template-rows:144px 60px minmax(0,1fr);gap:8px}
body[data-source-page="root-zero"] .top{grid-template-columns:1.2fr 1fr}
body[data-source-page="root-zero"] .block{height:110px}
body[data-source-page="root-zero"] .controls{padding:8px 10px}
body.source-frequency main{grid-template-rows:28px 144px 62px 52px minmax(0,1fr);gap:6px}
body.source-frequency .system{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);padding:4px 10px;gap:10px}
body.source-frequency .system>div:first-child{height:132px;display:flex;flex-direction:column}
body.source-frequency .system h2{font-size:13px!important;line-height:18px}
body.source-frequency .system svg{height:114px;width:100%;flex:1;min-height:0}
body.source-frequency .system .tikz-source-plant{font-size:34px!important;line-height:1.1}
body.source-frequency[data-source="frequency-v47"] .system>div:last-child{display:grid;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) 28px;height:128px;gap:4px}
body.source-frequency[data-source="frequency-v47"] #openFormula{grid-column:1;grid-row:1;font-size:23px!important;width:100%;text-align:center;justify-self:center}
body.source-frequency[data-source="frequency-v47"] #closedFormula{display:none}
body.source-frequency[data-source="frequency-v47"] #parameters{grid-row:2;grid-column:1;justify-content:center}
body.source-frequency .controls{grid-template-columns:82px minmax(0,1fr) 126px;padding:4px 10px;gap:2px 10px}
body.source-frequency .controls output{font-size:21px!important}
body.source-frequency .presets button{font-size:12px!important;min-height:24px;padding:2px 7px}
body.source-frequency .plots h2{font-size:14px!important}
body.source-frequency .plots .plot-head button{font-size:11px!important}
body.source-design main{grid-template-columns:1fr!important;grid-template-rows:76px 106px 60px minmax(0,1fr) 20px;grid-template-areas:"formulas" "controls" "metrics" "charts" "footer";gap:6px}
body.source-design .formulas>.formula{height:76px!important}
body.source-design .controls{padding:6px 10px;overflow:hidden}
body.source-design .slider-grid,body.source-design .controlgrid{display:grid;grid-template-columns:1fr 1fr!important;gap:3px 24px}
body.source-design .slider-grid>.controlrow,body.source-design .controlgrid>div{grid-template-columns:1fr minmax(100px,1.2fr)!important;grid-template-rows:23px 22px;gap:0 8px}
body.source-design .controls output{font-size:15px!important;white-space:nowrap}
body.source-design .controls input[type=range]{grid-row:2}
body.source-design .actions{margin-top:3px!important;gap:6px;flex-wrap:nowrap}
body.source-design .actions button{font-size:12px!important;min-height:26px}
body.source-design .metrics{grid-template-columns:repeat(4,minmax(0,1fr))!important;grid-template-rows:1fr!important}
body.source-design .metrics>.metric{padding:4px 8px;gap:2px}
body.source-design .metric strong.source-value-parts{flex-direction:row;align-items:center;gap:8px;font-size:15px!important;flex-wrap:wrap}
body.source-design .metric strong .katex{font-size:1em!important}
body.source-design .metric #target{font-size:13px!important}
body.source-design .charts{grid-template-columns:1.25fr 1fr;grid-template-rows:1fr}
body.source-design .charts>.panel{grid-template-rows:24px 21px minmax(0,1fr) auto auto;padding:5px 7px}
body.source-design .source-help-trigger{font-size:12px!important;min-height:22px}
body.source-design .formulas .math-render{font-size:21px!important}
body.source-design .charts>.panel .chart text{font-family:"KaTeX_Main","Times New Roman",var(--academic-ui)!important}
@media(max-height:740px) and (min-width:1101px){
.overview-control-map{padding:9px 12px;gap:6px}.map-channel{gap:4px;padding-top:7px}.map-equation{font-size:18px;padding:0}.map-design-button{padding:5px 7px}.map-coupling{font-size:11px;padding-top:5px}.overview-map-heading h2{font-size:17px}
body .lab-main{grid-template-rows:auto minmax(0,1fr) 190px 20px}
}
@media(max-width:1100px){body .lab-topbar .lab-brand{display:flex!important}.npu-wordmark{width:166px}.lab-global-nav{gap:18px!important}}
@media(max-width:760px){
body .lab-topbar{gap:10px!important;padding-inline:10px!important;justify-content:space-between}.npu-wordmark{width:151px;max-height:32px}.lab-global-nav{gap:12px!important;margin:0!important}.lab-global-nav a{font-size:12px!important}.lab-topbar .lab-return{display:none}.lab-mobile-assistant,.course-assistant-toggle{font-size:12px!important;padding:4px 6px!important;white-space:nowrap}
body .site-nav a{font-size:12px!important}body .site-nav{gap:10px!important}
body .source-toolbar h1,body .course-topbar h1,body .chapter-toolbar h1{font-size:19px!important}
body .source-examples button{font-size:12px!important}
body[data-start="overview"] .lab-stage.overview{grid-template-columns:1fr;grid-template-rows:1fr}
.overview-control-map{display:none}
body .source-case-link{font-size:12px!important}
body[data-source-page="time-v11"] .app{grid-template-columns:1fr;grid-template-rows:83px 65px minmax(0,1fr) minmax(0,1fr);gap:6px}
body[data-source-page="time-v11"] .formulaBlock,body[data-source-page="time-v11"] .poleBlock{grid-row:1;grid-column:1;padding:7px 9px;width:54%;height:83px}
body[data-source-page="time-v11"] .poleBlock{margin-left:54%;width:46%;border-left:0}
body[data-source-page="time-v11"] .formula{font-size:17px}
body[data-source-page="time-v11"] .params{font-size:16px}
body[data-source-page="time-v11"] .controls{grid-row:2!important;padding:5px 9px;gap:16px}
body[data-source-page="time-v11"] .controlrow{grid-template-columns:1fr 44px;grid-template-rows:22px 24px}
body[data-source-page="time-v11"] .controlrow label{font-size:12px!important}
body[data-source-page="time-v11"] .polePanel{grid-row:3;grid-column:1}
body[data-source-page="time-v11"] .responsePanel{grid-row:4;grid-column:1}
body[data-source-page="root-basic"] main{grid-template-rows:112px 54px minmax(0,1fr) 65px}
body[data-source-page="root-basic"] .lead{grid-template-columns:1.15fr 1fr;gap:4px}
.academic-root-loop{height:104px}.academic-root-model{font-size:19px}
body[data-source-page="root-basic"] .grid{grid-template-columns:1fr;grid-template-rows:1fr 1fr}
body.source-frequency main{grid-template-rows:28px 135px 62px 54px minmax(0,1fr);gap:5px;padding:5px}
body.source-frequency .system{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);padding:4px 5px;gap:6px}
body.source-frequency .system>div:first-child{height:124px}
body.source-frequency .system svg{height:105px}
body.source-frequency .system h2{font-size:12px!important}
body.source-frequency .system .tikz-source-plant{font-size:36px!important}
body.source-frequency[data-source="frequency-v47"] .system>div:last-child{height:123px;grid-template-rows:minmax(0,1fr) 42px}
body.source-frequency[data-source="frequency-v47"] #openFormula{font-size:16px!important}
body.source-frequency[data-source="frequency-v47"] #parameters{display:flex;flex-wrap:wrap;gap:3px;justify-content:center;align-content:center}
body.source-frequency .parameters input{width:34px;font-size:12px}
body.source-frequency .controls{grid-template-columns:72px minmax(0,1fr) 88px;padding:4px 6px;gap:2px 6px}
body.source-frequency .controls output{font-size:18px!important}
body.source-frequency .presets button{font-size:11px!important;padding:2px 5px}
body.source-frequency .metric{font-size:11px!important}
body.source-frequency .metric strong{font-size:15px!important}
body.source-design main{grid-template-columns:1fr!important;grid-template-rows:80px 140px 76px minmax(0,1fr) 22px;gap:5px}
body.source-design .formulas>.formula{height:80px!important}
body.source-design .controls{padding:4px 7px}
body.source-design .slider-grid,body.source-design .controlgrid{gap:4px 14px}
body.source-design .slider-grid>.controlrow,body.source-design .controlgrid>div{grid-template-columns:1fr!important;grid-template-rows:18px 19px 22px;gap:0}
body.source-design .controls label{grid-column:1;grid-row:1;font-size:12px!important;white-space:nowrap}
body.source-design .controls output{grid-column:1;grid-row:2;font-size:13px!important;text-align:left;white-space:nowrap}
body.source-design .controls input[type=range]{grid-column:1;grid-row:3}
body.source-design .actions button{font-size:11px!important;padding:3px 5px}
body.source-design .metrics>.metric{font-size:11px!important;padding:4px 5px}
body.source-design .metric strong.source-value-parts{font-size:13px!important;flex-direction:column;align-items:flex-start;gap:0}
body.source-design .metric #target{font-size:11px!important}
body.source-design .charts{grid-template-columns:1fr 1fr;grid-template-rows:1fr}
body.source-design .charts>.panel .legend{font-size:10px}
body.source-design .charts>.panel>h2{font-size:12px!important}
body .model-equations{font-size:19px!important}body .model-transform{font-size:19px!important}
body .model-closed-formula{font-size:17px}
body[data-page="concepts"] .course-toolbar>label:first-child{grid-template-columns:auto 100px 36px;font-size:12px}
body .lab-title-row h1{font-size:20px}
}
@media(max-width:430px){
.npu-wordmark{width:127px}.lab-global-nav{gap:8px!important}.lab-global-nav a{font-size:11px!important}.lab-mobile-assistant,.course-assistant-toggle{font-size:11px!important;padding:3px 5px!important}
body .source-toolbar h1{font-size:18px!important}
body .course-case-label select{width:88px!important}
body.source-frequency .system{grid-template-columns:1fr!important;grid-template-rows:83px 66px;gap:0}
body.source-frequency main{grid-template-rows:28px 158px 62px 59px minmax(0,1fr)}
body.source-frequency .system>div:first-child{height:83px}
body.source-frequency .system svg{height:73px}
body.source-frequency .system h2{display:none}
body.source-frequency[data-source="frequency-v47"] .system>div:last-child{height:66px;grid-template-columns:minmax(0,1fr);grid-template-rows:35px 28px}
body.source-frequency[data-source="frequency-v47"] #openFormula{font-size:15px!important}
body.source-frequency[data-source="frequency-v47"] #parameters{grid-row:2;flex-wrap:nowrap}
body.source-frequency .metric{font-size:10px!important}
body.source-design .charts{grid-template-columns:1fr;grid-template-rows:1fr 1fr}
body.source-design main{grid-template-rows:74px 144px 74px minmax(0,1fr) 22px}
body.source-design .formulas>.formula{height:74px!important}
body.source-design .formulas .math-render{font-size:15px!important}
body[data-source-page="time-v11"] .formula{font-size:15px}
body[data-source-page="time-v11"] .params{font-size:14px}
body[data-source-page="time-v11"] .label{font-size:11px!important}
body .course-topbar h1{font-size:18px!important}
}
@media(prefers-reduced-motion:reduce){button,[role="button"],a.lab-btn,a.btn,input[type=range]::-webkit-slider-thumb{transition:none!important;scale:1!important;translate:0 0!important}}


/* Keep TeX figure coordinates independent of legacy nested-SVG rules. */
.tikz-feedback>svg,.tikz-feedback .loop-return-visual>svg{width:900px!important;height:275px!important;max-height:none!important}
.tikz-model>svg{width:600px!important;height:210px!important;max-height:none!important}
.tikz-rotor>svg{width:300px!important;height:225px!important;max-height:none!important}
.tikz-rotor .rotor-blades>svg{width:160px!important;height:160px!important;max-height:none!important}
.model-physical svg rect.tikz-variable-hit.variable-active{fill:#1769aa08!important;stroke:#397db4!important;stroke-width:1.5;outline:none;background:none}
input[type=range]{appearance:none;-webkit-appearance:none;background:transparent;border:0;box-shadow:none;padding:0}
input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:#d5dfeb;border:0}
input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:16px;height:16px;border:2px solid #1769aa;border-radius:50%;background:#fff;margin-top:-6px;box-shadow:0 1px 3px #163d6017}
.map-channel p{line-height:1.1}
@media(max-height:740px) and (min-width:1101px){body[data-start="overview"] .lab-main{grid-template-rows:auto minmax(0,1fr) 175px 20px}.map-channel{gap:3px}.map-channel p{font-size:15px}.map-coupling{padding-top:4px}}
body.source-frequency .system h2{display:none!important}
body.source-frequency .system>div:first-child{height:132px;justify-content:center}
body.source-frequency .system>div:first-child>svg{height:132px!important;flex:0 0 132px}
/* Leave enough drawing height for the original Bode/step plotters' margins. */
body.source-design main{grid-template-rows:60px 84px 42px minmax(0,1fr) 20px}
body.source-design .formulas>.formula{height:60px!important;padding:3px 10px;gap:0}
body.source-design .formulas .math-render{font-size:20px!important}
body.source-design .controls{padding:4px 10px}
body.source-design .slider-grid>.controlrow,body.source-design .controlgrid>div{grid-template-rows:22px 21px}
body.source-design .controls output.source-value-parts{flex-direction:row;justify-content:flex-end;gap:8px;white-space:nowrap}
body.source-design .controls output.source-value-parts>.source-value-part{white-space:nowrap}
body.source-design .controls input[type=range]{min-height:21px;height:21px!important}
body.source-design .actions{margin-top:1px!important}
body.source-design .actions button{min-height:25px;padding:2px 7px}
body.source-design .metric strong.source-value-parts{flex-direction:row;white-space:nowrap;flex-wrap:nowrap;gap:6px;font-size:14px!important}
body.source-design .metrics>.metric{padding:2px 7px;gap:0;font-size:11px!important}
body.source-design[data-control-count="4"] main{grid-template-rows:60px 100px 42px minmax(0,1fr) 20px}
body.source-design[data-control-count="4"] .slider-grid,body.source-design[data-control-count="4"] .controlgrid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:3px 14px}
body.source-design[data-control-count="4"] .slider-grid>.controlrow,body.source-design[data-control-count="4"] .controlgrid>div{grid-template-columns:1fr!important;grid-template-rows:18px 21px 22px}
body.source-design[data-control-count="4"] .controls label{grid-row:1;grid-column:1;white-space:nowrap;font-size:12px!important}
body.source-design[data-control-count="4"] .controls output{grid-row:2;grid-column:1;text-align:left!important;justify-content:flex-start;font-size:13px!important}
body.source-design[data-control-count="4"] .controls input[type=range]{grid-row:3;grid-column:1}
@media(max-width:760px){
 body.source-frequency .system>div:first-child{height:124px}
 body.source-frequency .system>div:first-child>svg{height:124px!important;flex-basis:124px}
 body.source-design main{grid-template-rows:68px 84px 62px minmax(0,1fr) 22px}
 body.source-design .formulas>.formula{height:68px!important}
 body.source-design .formulas .math-render{font-size:16px!important}
 body.source-design .slider-grid>.controlrow,body.source-design .controlgrid>div{grid-template-columns:1fr!important;grid-template-rows:17px 19px 22px}
 body.source-design .controls label{grid-row:1;grid-column:1;font-size:12px!important}
 body.source-design .controls output{grid-row:2;grid-column:1;justify-content:flex-start!important;font-size:12px!important}
 body.source-design .controls input[type=range]{grid-row:3;grid-column:1}
 body.source-design .actions button{font-size:11px!important;min-height:23px;padding:2px 5px}
 body.source-design[data-control-count="4"] main{grid-template-rows:68px 141px 62px minmax(0,1fr) 22px}
 body.source-design[data-control-count="4"] .slider-grid,body.source-design[data-control-count="4"] .controlgrid{grid-template-columns:1fr 1fr!important}
 body.source-design .metric strong.source-value-parts{flex-direction:column;align-items:flex-start;gap:0;font-size:13px!important}
}
@media(max-width:430px){body.source-frequency .system>div:first-child{height:83px}body.source-frequency .system>div:first-child>svg{height:83px!important;flex-basis:83px}}
body.source-design .metric strong.source-value-parts{display:flex!important;flex-direction:row;align-items:center;gap:8px}
body.source-design main{grid-template-rows:76px 84px 42px minmax(0,1fr) 20px}
body.source-design[data-control-count="4"] main{grid-template-rows:76px 100px 42px minmax(0,1fr) 20px}
body.source-design .formulas>.formula{height:76px!important}
@media(max-width:760px){body.source-design main{grid-template-rows:76px 84px 62px minmax(0,1fr) 22px}body.source-design[data-control-count="4"] main{grid-template-rows:76px 141px 62px minmax(0,1fr) 22px}body.source-design .metric strong.source-value-parts{flex-direction:column;align-items:flex-start;gap:0}}body.source-frequency #block[hidden]{display:none!important}
.academic-margin-loop{height:132px;width:100%;display:flex;align-items:center}
.academic-margin-loop>.tikz-feedback{width:100%!important;height:132px!important;max-height:none!important}
.academic-margin-loop .loop-plant-math{font-size:23px!important;white-space:nowrap}
@media(max-width:760px){.academic-margin-loop,.academic-margin-loop>.tikz-feedback{height:124px!important}}
@media(min-width:1101px) and (max-height:800px){
 body .fadec-panel{gap:5px!important;padding:8px 12px!important}
 body .pi-tabs button{padding:3px 2px 5px!important;min-height:26px}
 body .pi-equation{font-size:20px;line-height:1.2;margin:0}
 body .pi-purpose{line-height:1.35;font-size:12px}
 body .pi-field input[type=number]{padding:3px 5px;min-height:29px}
 body .pi-other{padding-top:4px;line-height:1.4}
 body .pi-other p{margin:2px 0 0}
 body .pi-other .lab-btn{min-height:23px;padding:0 4px}
 body .fixed-caption{margin:0;line-height:1.35}
 body .conditions-row select{max-width:105px;min-height:27px}
 body .conditions-row .lab-btn{min-height:27px;padding:2px 3px}
}
:root{--lab-font:var(--academic-ui);--lab-heading:var(--academic-ui)}
.full-loop-svg text{font-family:var(--academic-ui)!important;font-style:normal}
.lab-dialog,.lab-dialog button,.lab-dialog input,.lab-dialog select,.lab-dialog textarea{font-family:var(--academic-ui)!important}
@media(max-width:760px){
 body[data-source-page="root-zero"] main{grid-template-rows:202px 68px minmax(0,1fr);gap:7px}
 body[data-source-page="root-zero"] .top{grid-template-columns:1fr;grid-template-rows:110px 85px}
 body[data-source-page="root-zero"] .block{height:100px}
 body[data-source-page="root-zero"] .controls{padding:5px 8px;grid-template-columns:minmax(0,1fr) 150px;grid-template-rows:27px 36px;gap:4px 10px}
 body[data-source-page="root-zero"] .control-head{min-width:0;justify-content:flex-start}
 body[data-source-page="root-zero"] .control-head .gain{margin-left:auto;font-size:18px}
 body[data-source-page="root-zero"] .control-head h2{white-space:nowrap;font-size:13px!important}
 body[data-source-page="root-zero"] .quick button{min-height:32px!important;font-size:11px!important;padding:3px}
 body[data-source-page="root-zero"] .stat>span{font-size:14px!important}
 body[data-source-page="root-zero"] .stat:last-child>span{font-size:12px!important}
 body[data-source-page="root-zero"] .charts{grid-template-columns:1fr;grid-template-rows:1fr 1fr}
 body[data-source-page="root-zero"] .chart{grid-template-rows:23px minmax(0,1fr) 17px;padding:5px}
 body[data-source-page="root-zero"] .legend{white-space:nowrap;font-size:10px!important;gap:7px}
}
@media(min-width:431px) and (max-width:760px){
 body[data-source-page="root-zero"] .charts{grid-template-columns:1fr 1fr;grid-template-rows:1fr}
 body[data-source-page="root-zero"] .chart{grid-template-rows:40px minmax(0,1fr) 35px}
 body[data-source-page="root-zero"] .legend{white-space:normal;font-size:11px!important;line-height:1.3}
}
body.source-design[data-control-count="1"] .slider-grid,body.source-design[data-control-count="1"] .controlgrid{grid-template-columns:1fr!important}
/* V07: one installed master image, with literal detail viewports and a location map. */
.scene-canvas>#engineering-scene[hidden]{display:none!important}
.scene-canvas>.scene-master-view{width:100%;height:100%;display:block;overflow:hidden;animation:scene-focus-in .24s ease-out}
.scene-part-label path{fill:none;stroke:#57718a;stroke-width:1;vector-effect:non-scaling-stroke}
.scene-part-label circle{fill:#1769aa;stroke:#fff;stroke-width:1.5;vector-effect:non-scaling-stroke}
.scene-part-label text{font-family:var(--academic-ui);font-weight:500;fill:#254967;paint-order:stroke;stroke:#fff;stroke-width:5px;stroke-linejoin:round}
.scene-locator{position:absolute;right:10px;bottom:9px;z-index:3;width:114px;padding:5px 6px;border:1px solid #c0d0e0;border-radius:5px;background:#ffffffed;display:flex;flex-direction:column;gap:2px;color:#355b7c;font-size:12px;box-shadow:0 2px 6px #163d6010}
.scene-locator>svg{width:100%;height:58px;display:block;max-height:none}
.scene-locator rect{fill:#1769aa15;stroke:#1769aa;stroke-width:2;vector-effect:non-scaling-stroke}
.scene-locator span{line-height:1.4}
@keyframes scene-focus-in{from{opacity:.6}to{opacity:1}}
@media(max-width:760px){.scene-master-view[data-scene-part="overview"] .scene-view-labels{display:none}.scene-locator{right:7px;bottom:7px;width:91px;padding:3px 4px;font-size:11px}.scene-locator>svg{height:43px}}
@media(prefers-reduced-motion:reduce){.scene-master-view{animation:none!important}}
.scene-locator polygon{fill:#1769aa15;stroke:#1769aa;stroke-width:2;vector-effect:non-scaling-stroke}
.scene-locator{text-decoration:none;transition:scale .17s,translate .17s,border-color .17s}
.scene-locator:hover{scale:1.035;translate:0 -1px;border-color:#4c85b7}
.scene-locator:active{scale:.975;translate:0 0}
@media(prefers-reduced-motion:reduce){.scene-locator{transition:none;scale:1!important;translate:0 0!important}}
/* V08: the next action and its evidence share the same working screen. */
body[data-start="engine"] .lab-title-row h1{font-size:20px}
body[data-start="engine"] .lab-title-copy{gap:10px;flex-wrap:wrap}
body[data-start="engine"] .lab-title-copy p{font-size:12px;line-height:1.4}
body[data-start="engine"] .lab-actions{gap:6px}
body[data-start="engine"] .lab-actions .lab-btn{font-size:13px;padding:5px 9px}
body.trial-pending #view-description{color:#8a5c15}
body.trial-pending .lab-plots .plot-canvas{opacity:.65}
#pin-trial:disabled,#review-trial:disabled{color:#8b969f;background:#f5f7f9;border-color:#dae1e7;opacity:1}
.lab-plots .plot-legend i.baseline{border-color:#8a949e}
.lab-plots .plot-summary{position:relative;gap:8px;padding-right:12px}
.trial-delta{font:12px/1.3 var(--academic-ui);color:#52677d;white-space:nowrap}
body[data-start="engine"] .lab-plots .plot-heading h2{font-size:15px}
body[data-start="engine"] .lab-plots .plot-heading{gap:6px}
body[data-start="engine"] .lab-plots .plot-heading button{font-size:11px;white-space:nowrap}
@media(min-width:1101px) and (max-height:800px){
 body[data-start="engine"] .lab-main{grid-template-rows:auto minmax(0,1fr) 220px 18px}
 body[data-start="engine"] .lab-title-copy{max-width:365px}
 body[data-start="engine"] .pi-other .other-title{display:none}
 body[data-start="engine"] .fixed-caption{display:inline;margin-left:6px}
 body[data-start="engine"] .pi-other{font-size:12px}
 body[data-start="engine"] .lab-plots .plot-summary{font-size:11px}
}
@media(max-width:1100px){.lab-plots .plot-summary{display:flex;flex-wrap:wrap}.trial-delta{width:100%;font-size:11px}.lab-plots .plot-heading .plot-legend{display:none}}
@media(max-width:700px){body[data-start="engine"] .lab-actions .less-urgent{display:none}body[data-start="engine"] .lab-title-row{flex-wrap:wrap}body[data-start="engine"] .lab-title-copy{width:100%}body[data-start="engine"] .lab-actions{width:100%;justify-content:flex-start}body[data-start="engine"] .lab-main{grid-template-rows:auto minmax(0,1fr) 200px 24px}.lab-plots .plot-panel{grid-template-rows:29px minmax(0,1fr) 56px}.trial-delta{line-height:1.1}}
@media(max-width:700px){body[data-start="engine"] .lab-title-copy p{display:block!important;font-size:11px;margin:0}body[data-start="engine"] .conditions-row label{white-space:nowrap}}
@media(max-width:430px){body[data-start="engine"] .pi-equation{font-size:14px!important;white-space:nowrap}body[data-start="engine"] .pi-purpose{font-size:11px!important}.trial-delta{font-size:11px}}
@media(max-width:700px){.lab-plots .plot-summary{row-gap:0;line-height:1.3}.lab-plots .plot-summary>span{line-height:1.3}.trial-delta{line-height:1.3}}
