/* Scoped interactive illustrations. */
[data-nmr-book] .nmr-lab { margin:24px 0 34px; scroll-margin-top:88px; }
.nmr-lab-jump { display:inline-block; float:right; padding:6px 10px; border:1px solid var(--accent-line); border-radius:5px; font:14px/1.5 var(--sans); }
.nmr-lab > .fig-inner { padding:18px; border:1px solid var(--accent-line); border-radius:10px; background:#fff; overflow:visible; }
.nmr-lab .nmr-lab-heading { font:700 21px/1.5 var(--sans); color:var(--accent); margin:0 0 8px; }
.nmr-lab .nmr-lab-instruction { font:15px/1.8 var(--sans); margin:0 0 16px; text-align:left; }
.nmr-lab .nmr-lab-tag { font:600 12px/1.6 var(--sans); color:var(--accent); margin-bottom:6px; letter-spacing:.08em; }
.nmr-lab .nmr-lab-controls { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 18px; margin:16px 0; }
.nmr-lab .nmr-lab-control { display:flex; flex-direction:column; min-width:0; gap:4px; font:14px/1.7 var(--sans); }
.nmr-lab .nmr-lab-control label { color:var(--ink); }
.nmr-lab .nmr-lab-control .nmr-lab-value { font-weight:600; color:var(--accent); }
.nmr-lab input[type="range"] { width:100%; margin:4px 0; min-height:28px; accent-color:var(--accent); cursor:pointer; }
.nmr-lab select { width:100%; min-height:39px; border:1px solid var(--hairline); background:#fff; border-radius:5px; padding:6px; color:var(--ink); font:14px var(--sans); }
.nmr-lab select:disabled, .nmr-lab input:disabled { opacity:.55; }
.nmr-lab .nmr-lab-actions { display:flex; flex-wrap:wrap; gap:7px; margin:10px 0 18px; }
.nmr-lab button { min-height:38px; border:1px solid var(--accent-line); background:#fff; border-radius:5px; padding:7px 11px; font:14px/1.5 var(--sans); color:var(--accent); cursor:pointer; }
.nmr-lab button[data-lab-play] { background:var(--accent); color:#fff; }
.nmr-lab button:focus-visible,.nmr-lab select:focus-visible,.nmr-lab input:focus-visible,.nmr-lab [data-lab-node]:focus-visible { outline:3px solid var(--accent-line); outline-offset:3px; }
.nmr-lab .nmr-lab-visuals { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:15px; align-items:start; }
.nmr-lab .nmr-lab-visuals > * { min-width:0; }
[data-nmr-book] .nmr-lab svg { width:100%; min-width:0; height:auto; font-family:var(--sans); }
.nmr-lab .nmr-lab-scene { background:#f7faf9; border:1px solid #d7e1de; border-radius:7px; }
.nmr-lab .nmr-lab-plots { display:grid; gap:16px; }
.nmr-lab .nmr-lab-plot { min-width:0; border:1px solid var(--hairline-soft); border-radius:6px; background:#fff; padding:7px 5px 0; }
.nmr-lab .nmr-plot-title { font:600 14px/1.6 var(--sans); margin:1px 5px 5px; }
.nmr-lab .nmr-plot-legend { display:flex; gap:5px 12px; flex-wrap:wrap; font:12px/1.6 var(--sans); padding:0 5px; color:var(--ink-soft); }
.nmr-lab .nmr-plot-legend span { display:inline-flex; align-items:center; gap:4px; }
.nmr-lab .nmr-plot-legend i { display:inline-block; width:10px; height:3px; }
.nmr-lab canvas { display:block; width:100%; height:260px; max-width:100%; }
.nmr-lab[data-nmr-lab="correlation"] canvas { cursor:crosshair; }
.nmr-lab .nmr-lab-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:14px 0 8px; }
.nmr-lab[data-nmr-option="intro"] .nmr-lab-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
.nmr-lab .nmr-lab-metric { padding:10px; background:var(--accent-soft); border-radius:5px; font:13px/1.7 var(--sans); overflow-wrap:anywhere; }
.nmr-lab .nmr-lab-metric span { display:block; color:var(--ink-soft); }
.nmr-lab .nmr-lab-metric output { display:block; color:var(--ink); font-size:16px; margin-top:4px; }
.nmr-lab .nmr-lab-note { font:14px/1.8 var(--sans); color:var(--ink-soft); text-align:left; margin:12px 0 0; }
.nmr-lab [data-lab-node] { cursor:pointer; }
.nmr-lab .nmr-lab-live { display:none; }
.nmr-lab[data-ready="true"] .nmr-lab-live { display:block; }
.nmr-lab[data-ready="true"] .nmr-lab-fallback { display:none; }
.nmr-lab .nmr-lab-fallback .nmr-static-plots { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.nmr-lab .nmr-lab-fallback > svg { max-width:400px; display:block; margin:auto; }
.nmr-lab .nmr-lab-fallback .nmr-static-title { font:600 14px/1.6 var(--sans); }
.nmr-lab figcaption a { text-decoration:underline; }
@media(max-width:780px) {
  .nmr-lab .nmr-lab-visuals { grid-template-columns:1fr; }
  .nmr-lab .nmr-lab-scene { max-width:440px; margin:auto; }
}
@media(max-width:540px) {
  .nmr-lab-jump { float:none; display:block; width:max-content; margin:4px 0 12px; }
  .nmr-lab > .fig-inner { padding:12px 9px; }
  .nmr-lab .nmr-lab-controls { grid-template-columns:1fr; gap:10px; }
  .nmr-lab .nmr-lab-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .nmr-lab .nmr-lab-fallback .nmr-static-plots { grid-template-columns:1fr; }
  .nmr-lab .nmr-lab-heading { font-size:19px; }
}
@media print {
  .nmr-lab .nmr-lab-controls,.nmr-lab .nmr-lab-actions { display:none; }
  .nmr-lab .nmr-lab-visuals { grid-template-columns:1fr 1fr; }
  .nmr-lab .nmr-lab-plot { break-inside:avoid; }
}
