/* The Lab owns one viewport-sized frame; only its activity body scrolls. */
html:has(body.lab-route){scroll-behavior:auto;scrollbar-gutter:stable;overflow:hidden}
body.lab-route{overflow:hidden;overscroll-behavior:none}
.lab-route>.page-header,.lab-route>.site-footer{display:none}
.lab-route .app-layout{
  position:fixed;
  inset:8px var(--frame-margin);
  margin:0;
  min-height:0;
  grid-template-rows:minmax(0,1fr);
  overflow:hidden;
  overflow-anchor:none;
}
.lab-route .side-panel{min-height:0;overflow-y:auto;overscroll-behavior:contain}
.lab-route .content-stage{display:flex;flex-direction:column;min-height:0;overflow:hidden}
.research-lab{
  display:flex;
  flex-direction:column;
  flex:1 1 0;
  height:100%;
  min-height:0;
  overflow:hidden;
}
.research-lab[hidden]{display:none}
.research-lab>.rl-header,.research-lab>.rl-tabs-row,.research-lab>.rl-footer,.research-lab>.rl-mobile-back{flex-shrink:0}
.research-lab>.rl-header{margin-bottom:20px}
.research-lab>.rl-tabs-row{margin-bottom:16px}
#rlActivity{
  flex:1 1 0;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  scrollbar-gutter:stable;
  overscroll-behavior-y:contain;
  overflow-anchor:none;
  padding:2px 12px 8px 2px;
}
#rlActivity:focus-visible{outline:2px solid var(--wine-800);outline-offset:-2px}
.research-lab>.rl-footer{margin-top:12px;padding-top:10px;min-height:48px}
.research-lab>.rl-mobile-back{align-self:flex-start}
.research-lab .rl-engine{min-width:154px}
.research-lab .rl-progress{font-variant-numeric:tabular-nums}
.research-lab .rl-tabs button>span{position:relative}
.research-lab .rl-tabs button.is-complete>span:after{position:absolute;right:0;top:-9px;font-size:9px}
@media(max-width:1400px){
  .research-lab>.rl-tabs-row{display:block}
  .research-lab .rl-progress{text-align:right;margin-top:8px!important}
}
@media(max-width:980px){
  .lab-route .app-layout{grid-template-rows:auto minmax(0,1fr)}
  .lab-route .side-panel{padding:12px 16px}
  .lab-route .section-tabs{display:flex;flex-wrap:wrap;gap:4px}
  .lab-route .section-tabs .tab-button{width:auto;font-size:13px;padding:9px 10px;min-height:38px}
  .lab-route .side-title strong{font-size:13px}
  .lab-route .research-lab>.rl-mobile-back{display:none}
}
@media(max-width:680px){
  .lab-route .side-panel{grid-template-columns:1fr;gap:8px;padding:10px 14px}
  .lab-route .side-title{display:none}
  .research-lab>.rl-header{margin-bottom:14px}
  .research-lab>.rl-tabs-row{margin-bottom:10px}
  .research-lab>.rl-footer{margin-top:9px;min-height:58px}
  #rlActivity{padding-right:7px}
}
@media(max-width:680px) and (max-height:760px){
  .research-lab h1{font-size:25px;line-height:1.1;margin-bottom:6px}
  .research-lab>.rl-header{gap:8px;margin-bottom:10px}
  .research-lab .rl-subtitle{font-size:14px}
  .research-lab .rl-engine{gap:8px}
  .research-lab .rl-engine>span{font-size:10px}
  .research-lab .rl-engine .rl-button{min-height:32px;padding:6px 10px}
  .research-lab .rl-tabs button{font-size:13px;padding:7px 0}
  .research-lab .rl-progress{margin:6px 0!important}
  .research-lab>.rl-footer{min-height:0;margin-top:7px;padding-top:6px;gap:3px}
  .research-lab .rl-text-button{min-height:28px}
}
@media print{html:has(body.lab-route),body.lab-route{overflow:visible}.lab-route .app-layout{position:static;display:block}.research-lab{height:auto;overflow:visible}#rlActivity{overflow:visible}}
