/* NexaMed Labs 2.0 — advanced interaction layer */
.advanced-lab .advanced-label{display:block;color:var(--labs-text);font-size:.78rem;font-weight:700;margin:0 0 14px}
.advanced-lab .advanced-label .lab-select{margin-top:7px}
.advanced-lab .lab-number-row{display:flex;align-items:center;gap:8px;margin-top:7px}
.advanced-lab .lab-number-row .lab-number{flex:1;min-width:0}
.lab-number-unit{color:var(--labs-muted);font-size:.72rem;font-weight:800;min-width:38px}
.advanced-lab .lab-stage{background:linear-gradient(180deg,rgba(0,201,106,.014),transparent 32%)}
.lab-stage-tools{display:flex;gap:7px;flex-wrap:wrap;margin:8px 0 0}
.lab-btn.compact{padding:8px 10px;font-size:.66rem}
.lab-btn.ghost{background:transparent}
.lab-btn[disabled]{opacity:.38;cursor:not-allowed;transform:none!important}
.lab-status{white-space:nowrap;font-size:.69rem;letter-spacing:.6px}
.lab-pill-row{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 0}
.lab-pill{border:1px solid var(--labs-border);background:rgba(255,255,255,.025);padding:6px 8px;border-radius:999px;color:var(--labs-muted);font-size:.64rem;font-weight:800}
.lab-pill.accent{color:var(--labs-accent);border-color:rgba(0,201,106,.32);background:rgba(0,201,106,.06)}
.lab-model-notice{display:flex;flex-direction:column;gap:3px;margin-top:10px;padding:10px 12px;border:1px solid var(--labs-border);border-radius:12px;background:rgba(255,255,255,.02);color:var(--labs-muted);font-size:.68rem;line-height:1.5}
.lab-model-notice strong{color:var(--labs-text);font-size:.66rem;text-transform:uppercase;letter-spacing:1px}
.lab-details{margin-top:10px;border:1px solid var(--labs-border);border-radius:12px;background:rgba(255,255,255,.018);overflow:hidden}
.lab-details summary{cursor:pointer;list-style:none;padding:11px 12px;color:var(--labs-text);font-size:.72rem;font-weight:800}
.lab-details summary::-webkit-details-marker{display:none}
.lab-details summary::after{content:'+';float:right;color:var(--labs-muted)}
.lab-details[open] summary::after{content:'−'}
.lab-details-body{padding:0 12px 12px;color:var(--labs-muted);font-size:.7rem;line-height:1.6}
.lab-details-body p{margin:0 0 9px}
.lab-details-body p:last-child{margin-bottom:0}
.lab-formula{display:block;margin:7px 0;padding:9px 10px;border:1px dashed var(--labs-border);border-radius:9px;background:#09110c;color:var(--labs-text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.7rem;overflow:auto}
.lab-challenge{margin-top:10px;border:1px solid rgba(244,197,66,.18);border-radius:14px;padding:12px;background:linear-gradient(180deg,rgba(244,197,66,.035),rgba(255,255,255,.012))}
.lab-challenge-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.lab-challenge-kicker{color:var(--labs-gold);font-size:.6rem;font-weight:900;text-transform:uppercase;letter-spacing:1.3px}
.lab-challenge-title{margin-top:2px;font-weight:800;font-size:.78rem}
.lab-challenge-prompt{margin:11px 0 10px;color:rgba(230,240,233,.76);font-size:.72rem;line-height:1.55}
.lab-challenge-inputs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.lab-challenge-inputs .advanced-label{margin:0}
.lab-challenge-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:10px}
.lab-challenge-result{color:var(--labs-muted);font-size:.67rem}
.lab-challenge-result[data-state="good"]{color:var(--labs-accent)}
.lab-challenge-result[data-state="bad"]{color:var(--labs-danger)}
.lab-chart-wrap{border:1px solid var(--labs-border);border-radius:12px;background:#08100b;min-height:210px;overflow:hidden}
.lab-chart-wrap canvas{display:block;width:100%;height:210px}
.lab-readout{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:8px}
.lab-readout-item{padding:8px;border:1px solid var(--labs-border);border-radius:10px;background:rgba(255,255,255,.018)}
.lab-readout-label{font-size:.58rem;text-transform:uppercase;letter-spacing:1px;color:var(--labs-muted);font-weight:800}
.lab-readout-value{margin-top:4px;font-size:.85rem;font-weight:800;color:var(--labs-text);font-variant-numeric:tabular-nums}
.lab-callout{padding:10px 11px;border-left:3px solid var(--labs-accent);background:rgba(0,201,106,.035);border-radius:0 9px 9px 0;color:rgba(230,240,233,.72);font-size:.69rem;line-height:1.55;margin-top:10px}
.lab-callout strong{color:var(--labs-text)}
.lab-stage .lab-inspector{min-height:42px}
.lab-legend{display:flex;gap:12px;flex-wrap:wrap;margin-top:7px;color:var(--labs-muted);font-size:.61rem;font-weight:700}
.lab-legend span{display:inline-flex;align-items:center;gap:5px}
.lab-legend i{display:inline-block;width:8px;height:8px;border-radius:50%;background:currentColor}
.lab-mini-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}
.lab-select option{background:#0b1410;color:var(--labs-text)}

/* Circuit diagrams */
.circuit-advanced-svg{width:100%;height:100%;min-height:460px;display:block;background:linear-gradient(180deg,rgba(0,201,106,.02),transparent 35%)}
.circuit-wire{fill:none;stroke:rgba(230,240,233,.34);stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
.circuit-wire.active{stroke:rgba(0,201,106,.78)}
.circuit-component{fill:#101c14;stroke:rgba(230,240,233,.26);stroke-width:2}
.circuit-component-hot{fill:rgba(0,201,106,.075);stroke:rgba(0,201,106,.6)}
.circuit-label{fill:rgba(230,240,233,.76);font:800 13px 'DM Sans',sans-serif}
.circuit-small{fill:rgba(230,240,233,.45);font:600 10px 'DM Sans',sans-serif}
.circuit-meter{fill:#0d1711;stroke:rgba(244,197,66,.55);stroke-width:2}
.circuit-meter-text{fill:rgba(244,197,66,.95);font:800 12px 'DM Sans',sans-serif}
.circuit-particle{fill:#00c96a}

/* Optics */
.optics-canvas{background:radial-gradient(circle at 52% 52%,rgba(0,201,106,.045),transparent 46%),#08100b}
.optics-legend{padding-top:3px}

/* Titration */
.titration-lab-wrap{width:100%;height:100%;min-height:460px;display:grid;grid-template-columns:minmax(250px,.84fr) minmax(280px,1.16fr);gap:10px;padding:10px}
.titration-visual,.titration-graph{border:1px solid var(--labs-border);border-radius:14px;background:#09110c;overflow:hidden;min-width:0}
.titration-svg{width:100%;height:100%;min-height:430px;display:block}
.titration-curve{width:100%;height:100%;min-height:430px;display:block}
.titration-label{fill:rgba(230,240,233,.73);font:700 12px 'DM Sans',sans-serif}
.titration-small{fill:rgba(230,240,233,.45);font:600 10px 'DM Sans',sans-serif}

/* Molecular */
.molecule-canvas{touch-action:none;cursor:grab}
.molecule-canvas:active{cursor:grabbing}

/* Nephron */
.nephron-stage{background:#08100b}
.nephron-svg{width:100%;height:100%;min-height:460px;display:block}
.nephron-bg-path{fill:none;stroke:rgba(230,240,233,.05);stroke-width:32;stroke-linecap:round}
.nephron-path{cursor:pointer;transition:stroke .15s ease,stroke-width .15s ease;filter:none}
.nephron-segment:hover .nephron-path{filter:url(#nephron-glow)}
.nephron-title{fill:rgba(230,240,233,.78);font:800 15px 'DM Sans',sans-serif;letter-spacing:1.2px}
.nephron-sub,.nephron-small{fill:rgba(230,240,233,.48);font:600 11px 'DM Sans',sans-serif}
.nephron-label{fill:rgba(230,240,233,.65);font:700 12px 'DM Sans',sans-serif}
.nephron-callout{fill:rgba(255,255,255,.025);stroke:rgba(230,240,233,.11)}
.nephron-bar-bg{fill:rgba(255,255,255,.04)}
.nephron-bar{fill:#00c96a}

/* DNA */
.dna-canvas{background:#08100b;touch-action:none}

@media (max-width:980px){
  .titration-lab-wrap{grid-template-columns:1fr}
  .lab-challenge-inputs{grid-template-columns:1fr}
}
@media (max-width:700px){
  .advanced-lab .lab-stage-top{align-items:flex-start}
  .advanced-lab .lab-status{white-space:nowrap}
  .nephron-svg{min-height:390px}
  .advanced-lab .lab-canvas-wrap{overflow:hidden}
  .lab-readout{grid-template-columns:1fr 1fr}
  .lab-mini-grid{grid-template-columns:1fr}
}

/* Shared advanced information cards */
.lab-info-card{margin-top:10px;display:flex;align-items:flex-start;gap:8px;padding:10px 11px;border:1px solid var(--labs-border);border-radius:12px;background:rgba(255,255,255,.018);color:var(--labs-muted);font-size:.68rem;line-height:1.5}
.lab-info-card strong{display:block;color:var(--labs-text);font-size:.66rem;text-transform:uppercase;letter-spacing:.8px;flex:0 0 auto}
.lab-info-card.warning{border-color:rgba(244,197,66,.2);background:rgba(244,197,66,.035)}
.lab-info-card.warning strong{color:var(--labs-gold)}
.lab-readout-inline{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.lab-readout-inline>*{padding:5px 7px;border:1px solid var(--labs-border);border-radius:8px;background:rgba(255,255,255,.018);color:var(--labs-muted);font-size:.62rem;font-weight:800}
@media (max-width:700px){
  .lab-info-card{font-size:.65rem}
  .dna-canvas{min-height:430px}
}
