/* One desktop workspace: toolbar, geometry, and scope share the viewport. */
.help-panel{width:min(920px,90vw);max-height:85dvh;overflow:auto;padding:24px;border:1px solid var(--line);border-radius:12px;background:#fff;color:#263b51}
.help-panel::backdrop{background:#030911b8;backdrop-filter:blur(4px)}
.help-panel-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.help-panel h2{font-size:22px;margin:0}.help-panel .lab-heading{display:block}.help-panel .lab-principle{display:block}.help-panel .lab-index{display:none}.help-panel .insight{min-height:0;margin-top:16px}.help-panel .channel-strip{margin:0}.help-panel .journey-frame{height:180px}.help-panel p{font-size:14px;line-height:1.6}
html[data-theme="dark"] .help-panel{background:#121a25;color:#dce7f1}
.lab-toolbar{margin:0 0 10px}.lab-toolbar:empty{display:none}.lab-toolbar>.tool-btn:last-child{margin-left:auto}
@media(min-width:1100px) and (min-height:680px){
 html,body{height:100%;overflow:hidden}.app-shell{height:100dvh;min-height:0}.workspace-shell{height:100dvh;display:flex;flex-direction:column;min-height:0}
 .workspace-bar{position:relative;height:54px;min-height:54px;padding:0 18px}.workspace{flex:1;min-height:0;width:100%;max-width:none;padding:10px 14px 14px;overflow:hidden}.workspace-shell>footer{display:none}
 :root{--sidebar:208px}.brand-block{height:64px;min-height:64px;padding:0 15px}.brand-name{font-size:18px}.brand-sub{font-size:12px}.brand-symbol{width:30px;height:30px}.side-section-label{padding:16px 18px 9px}.lab-nav{gap:3px;padding:0 9px}.lab-nav button{padding:10px 7px}.lab-nav button small{display:none}.lab-nav button span{font-size:14px}.global-telemetry{margin:0 12px 12px}.global-telemetry .metric{padding:8px;min-height:54px}.global-telemetry .metric strong{font-size:14px}.sidebar-foot{min-height:46px}.channel-label{margin-top:auto}
 .screen-lab.active{height:100%;display:grid;grid-template-columns:minmax(0,1fr) 288px;grid-template-rows:auto minmax(0,1.12fr) minmax(0,1fr);gap:10px 12px;animation:none}
 .screen-lab>.lab-toolbar{grid-column:1/-1;grid-row:1;display:flex;margin:0;padding:6px 12px;min-height:44px;border-radius:7px;gap:10px;align-items:center;background:#f5f8fb;border:1px solid var(--line)}
 html[data-theme="dark"] .screen-lab>.lab-toolbar{background:#182332}
 .lab-toolbar .scale-choice{flex-direction:row;align-items:center;gap:6px}.lab-toolbar>label:first-child{display:flex;align-items:center;gap:10px;flex:1}.lab-toolbar input{flex:1;width:80px;min-width:50px}.lab-toolbar output{min-width:80px}.lab-toolbar select{height:30px}.lab-toolbar .tool-btn{height:30px}
 .screen-lab>.experiment-grid{display:contents}.screen-lab .stage-instrument{grid-column:1;grid-row:2;display:flex;flex-direction:column;min-height:0}.screen-lab .control-dock{grid-column:2;grid-row:2/4;display:flex;flex-direction:column;min-height:0;overflow:auto;margin:0}
 .screen-lab .analysis-row,.screen-lab .analysis-row.two-col,.screen-lab .analysis-row.two-col.equal{grid-column:1;grid-row:3;display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin:0;min-height:0}
 .screen-lab .plot-card{display:flex;flex-direction:column;min-height:0}.screen-lab .plot-card canvas{width:100%;height:0;flex:1;min-height:0;object-fit:fill}
 .screen-lab .viewport{flex:1;height:0;min-height:0;overflow:hidden;margin:0}.screen-lab .viewport canvas{width:100%;height:100%;min-width:0;max-height:100%;object-fit:fill}
 .screen-lab .instrument-top{height:40px;min-height:40px;padding:8px 12px;flex-wrap:nowrap;flex-shrink:0}.screen-lab .instrument-top>div:first-child{display:block}.screen-lab .instrument-top strong{font-size:14px}.screen-lab .instrument-kicker{display:none}.screen-lab .legend{font-size:12px}.screen-lab .scope-tag{font-size:12px;white-space:nowrap}
 .screen-lab .compact-observation{display:none}.screen-lab .instrument-status{display:none}
 .screen-lab .dock-head{height:42px;min-height:42px;padding:9px 12px}.screen-lab .dock-head strong{font-size:14px}.screen-lab .control-row{padding:8px 12px;gap:3px 6px;flex-shrink:0}.screen-lab .control-row small{display:none}.screen-lab .control-row>span,.screen-lab .control-row output{font-size:14px}.screen-lab .control-row input{height:19px}
 .screen-lab .signal-generator{display:grid;grid-template-columns:1fr;padding:8px 12px;gap:5px;border-bottom:1px solid var(--line);flex-shrink:0}.screen-lab .wave-select{flex-direction:row;justify-content:space-between;align-items:center;padding:0;font-size:14px}.screen-lab .wave-select select{width:64%;height:30px}.screen-lab .signal-generator .control-row{padding:4px 0}.screen-lab .signal-generator .control-row span,.screen-lab .signal-generator .control-row output{font-size:14px}
 .screen-lab .metrics{margin:8px 12px;flex-shrink:0}.screen-lab .metric{min-height:52px;padding:7px 9px}.screen-lab .metric strong{font-size:16px;margin-top:2px}.screen-lab .metric span{font-size:12px}.screen-lab .formula-block{margin:4px 12px 8px;padding:8px}.screen-lab .formula-block span{font-size:12px}.screen-lab .formula-block code{font-size:12px}.screen-lab .formula-block.note{display:none}.screen-lab .control-group-label{padding:7px 12px}.screen-lab .segmented{margin:0 12px 6px;flex-shrink:0}.screen-lab .segmented button{height:30px;font-size:12px}
 .screen-lab .voltage-sum{padding:6px 12px;gap:2px;flex-shrink:0}.screen-lab .voltage-sum strong{font-size:16px;line-height:1.4}.screen-lab .voltage-sum>span{display:none}.screen-lab .voltage-sum small{font-size:12px;line-height:1.25}
 #guide.active{height:100%;overflow:auto}#guide .lab-heading{margin-bottom:14px}#guide .lab-heading p{display:none}#guide .review-grid{grid-template-columns:repeat(4,1fr)}#guide .review-card{padding:14px;min-height:0}#guide .workflow{margin-top:10px}
}
@media(min-width:1100px) and (min-height:680px) and (max-height:820px){
 .screen-lab .control-row{padding-top:5px;padding-bottom:5px}.screen-lab .signal-generator{padding-top:5px;padding-bottom:5px;gap:2px}.screen-lab .signal-generator .control-row{padding:2px 0}.screen-lab .metrics{margin-top:5px;margin-bottom:5px}.screen-lab .metric{min-height:44px;padding:5px 8px}.screen-lab .formula-block{display:none}.sidebar-foot{display:none}.global-telemetry .metric{min-height:46px}.screen-lab .dock-head{height:36px;min-height:36px}.screen-lab .voltage-sum small{display:none}
}
@media(max-width:1099px),(max-height:679px){
 .screen-lab .control-dock .signal-generator{display:block}.screen-lab .lab-toolbar{display:flex;flex-wrap:wrap}.help-panel .lab-heading h1{font-size:24px}
}

@media(min-width:1100px) and (min-height:680px){.screen-lab .analysis-row.two-col.equal{grid-template-columns:repeat(2,minmax(0,1fr))}}
.trace-controls{display:flex;align-items:center;flex-wrap:wrap;gap:6px 18px;margin:0;padding:8px 12px;border:0;border-bottom:1px solid var(--line);background:#f5f8fb;min-width:0;flex-shrink:0;color:#344f66}
.trace-controls legend{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.trace-controls label{display:flex;align-items:center;gap:6px;font-size:14px;line-height:1.4;cursor:pointer;white-space:nowrap}
.trace-controls input{width:15px;height:15px;margin:0;accent-color:#318bab;cursor:pointer}
.trace-controls input:focus-visible{outline:2px solid #63d5e8;outline-offset:3px}
.trace-swatch{width:17px;height:3px;display:inline-block}.trace-controls label:has(input:not(:checked)){opacity:.55}
html[data-theme="dark"] .trace-controls{background:#182332;color:#c7d6e5}
@media(min-width:1100px) and (min-height:680px){.trace-controls{padding:5px 12px;gap:5px 16px}.screen-lab .stage-instrument>.instrument-top .legend{display:none}}
.timing-readout{padding:5px 12px;font-size:12px;line-height:1.4;flex-shrink:0;color:#526f85;background:#f5f8fb;border-top:1px solid var(--line)}
html[data-theme="dark"] .timing-readout{color:#a9bdd0;background:#182332}
.probe-presets{display:flex;flex-wrap:wrap;gap:5px;margin:5px 12px;flex-shrink:0}.probe-presets button{font:12px system-ui;min-height:28px;border:1px solid var(--line);border-radius:4px;padding:3px 7px;color:#35647e;background:#edf4f8;cursor:pointer}.probe-presets button:focus-visible{outline:2px solid #63d5e8;outline-offset:2px}
html[data-theme="dark"] .probe-presets button{background:#213449;color:#b9dae9}
@media(min-width:1100px) and (min-height:680px){.trace-controls{column-gap:12px}.trace-controls label{font-size:12px}.trace-controls input{width:14px;height:14px}}
.model-scope{padding:5px 12px;font-size:12px;line-height:1.4;color:#526f85;background:#edf4f8;flex-shrink:0;border-bottom:1px solid var(--line)}
html[data-theme="dark"] .model-scope{background:#182332;color:#c1d0df}
.control-row select{font:14px system-ui;min-width:0;border:1px solid var(--line);border-radius:4px;background:transparent;color:inherit;padding:4px;grid-column:1/-1}

/* Per-lab teaching drawer; native details supports keyboard and screen readers. */
.lab-explanation{border:1px solid var(--line);border-radius:9px;background:#fff;color:#263b51;margin-top:12px;min-width:0;overflow:hidden}
.lab-explanation summary{cursor:pointer;padding:10px 14px;font-size:13px;font-weight:650;user-select:none}
.lab-explanation summary span{margin-left:18px;font-size:12px;font-weight:400;color:#61758a}
.lab-explanation summary:focus-visible,.lesson-body:focus-visible{outline:2px solid #3c94ba;outline-offset:-3px}
.lesson-body{border-top:1px solid var(--line);padding:12px 16px;display:grid;grid-template-columns:1fr 1fr;gap:16px 24px;max-height:320px;overflow:auto;overscroll-behavior:contain}
.lesson-body h3{font-size:13px;margin:0 0 6px;color:inherit}.lesson-body p,.lesson-body dd{font-size:13px;line-height:1.55;margin:0}
.lesson-controls{grid-column:1/-1}.lesson-controls dl{display:grid;grid-template-columns:180px 1fr;gap:8px 16px;margin:0}.lesson-controls dt{font-size:13px;font-weight:600}
html[data-theme="dark"] .lab-explanation{background:#121a25;color:#dce7f1}html[data-theme="dark"] .lab-explanation summary span{color:#9bafc3}
@media(min-width:1100px) and (min-height:680px){
 .screen-lab.active{grid-template-rows:auto minmax(0,1.12fr) minmax(0,1fr) auto}
 .screen-lab>.lab-explanation{grid-column:1/-1;grid-row:4;margin:0}
 .screen-lab .lesson-body{max-height:min(24dvh,200px)}
}
@media(max-width:700px){.lesson-body{grid-template-columns:1fr}.lesson-controls dl{grid-template-columns:1fr;gap:5px}.lesson-controls dd{margin-bottom:10px}.lab-explanation summary span{display:none}}
