/* All selectors are scoped to the component; no host-page resets or requests. */
.nk-lab { --nk-bg:#0b0a08; --nk-panel:#1b1812; --nk-raised:#14120e; --nk-line:#3a3224; --nk-strong:#5a4a2e; --nk-text:#e9e0c9; --nk-muted:#a89c80; --nk-gold:#c8952b; --nk-bright:#e2b453; --nk-lapis:#1f4e8c; --nk-turquoise:#2e8b84; --nk-carnelian:#a83a2c; --nk-stone:#d8cba8; box-sizing:border-box; width:100%; max-width:1440px; margin:0 auto; padding:clamp(16px,3vw,48px); color:var(--nk-text); background:var(--nk-bg); font:14px/1.65 Inter,system-ui,sans-serif; color-scheme:dark; }
.nk-lab *, .nk-lab *::before, .nk-lab *::after { box-sizing:border-box; }
.nk-lab [hidden] { display:none !important; }
.nk-lab h2, .nk-lab h3, .nk-lab p { margin:0; }
.nk-lab h2, .nk-lab h3 { font-family:Cinzel,Georgia,serif; font-weight:400; }
.nk-lab h2 { font-size:clamp(27px,3.6vw,46px); line-height:1.2; letter-spacing:-.025em; }
.nk-lab h3 { font-size:21px; line-height:1.35; }
.nk-lab p + p { margin-top:10px; }
.nk-lab a { color:var(--nk-bright); text-underline-offset:4px; }
.nk-lab a:hover { color:var(--nk-text); }
.nk-lab button, .nk-lab select, .nk-lab input { font:inherit; accent-color:var(--nk-gold); }
.nk-lab button, .nk-lab select, .nk-lab input[type="text"] { min-height:44px; border:1px solid var(--nk-strong); border-radius:5px; color:var(--nk-text); background:var(--nk-raised); }
.nk-lab button { padding:8px 14px; cursor:pointer; line-height:1.35; }
.nk-lab button:hover { background:#2d2518; border-color:var(--nk-gold); }
.nk-lab button[aria-pressed="true"] { background:#39301e; border-color:var(--nk-gold); color:var(--nk-bright); }
.nk-lab :focus-visible { outline:2px solid var(--nk-bright); outline-offset:4px; }
.nk-lab .nk-primary { background:var(--nk-gold); border-color:var(--nk-gold); color:#141009; font-weight:700; }
.nk-lab .nk-primary:hover { background:var(--nk-bright); color:#141009; }
.nk-lab select { width:100%; padding:9px 30px 9px 10px; }
.nk-lab input[type="range"] { display:block; width:100%; min-height:32px; margin:5px 0 0; cursor:pointer; }
.nk-lab input[type="checkbox"] { width:19px; height:19px; margin:0 9px 0 0; flex:0 0 auto; }
.nk-lab input[type="text"] { width:100%; padding:10px; }
.nk-lab .nk-heading { display:flex; justify-content:space-between; align-items:center; gap:24px; }
.nk-lab .nk-eyebrow { color:var(--nk-gold); font-size:10px; font-weight:700; letter-spacing:.17em; line-height:1.6; }
.nk-lab .nk-heading .nk-eyebrow { margin-bottom:15px; }
.nk-lab .nk-deck { color:var(--nk-stone); font:italic clamp(18px,2vw,24px)/1.5 Georgia,serif; margin-top:10px; }
.nk-lab .nk-seal { border:1px solid var(--nk-strong); padding:14px 20px; color:var(--nk-muted); font-size:10px; letter-spacing:.18em; text-align:center; line-height:1.8; }
.nk-lab .nk-intro { color:var(--nk-muted); max-width:760px; margin:22px 0 28px; }
.nk-lab .nk-workspace { display:grid; grid-template-columns:minmax(0,1.75fr) minmax(300px,1fr); gap:24px; align-items:start; }
.nk-lab .nk-visual { min-width:0; border:1px solid var(--nk-line); border-radius:8px; overflow:hidden; background:var(--nk-raised); scroll-margin-top:12px; }
.nk-lab .nk-viewbar { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 18px; border-bottom:1px solid var(--nk-line); }
.nk-lab .nk-viewbar > span { font-size:9px; letter-spacing:.1em; color:var(--nk-muted); }
.nk-lab .nk-viewbar > div { display:flex; gap:5px; }
.nk-lab .nk-viewbar button { font-size:11px; padding:7px 10px; }
.nk-lab .nk-dot { display:inline-block; width:3px; height:3px; background:var(--nk-gold); vertical-align:middle; margin:0 6px; }
.nk-lab .nk-scene { display:block; width:100%; aspect-ratio:7 / 5; }
.nk-lab .nk-scene-caption { display:flex; justify-content:space-between; gap:12px; padding:11px 18px; border-top:1px solid var(--nk-line); font-size:10px; color:var(--nk-muted); }
.nk-lab .nk-timeline { padding:20px; border-top:1px solid var(--nk-line); }
.nk-lab .nk-time { display:flex; justify-content:space-between; gap:10px; font-size:11px; letter-spacing:.06em; }
.nk-lab .nk-time > span { color:var(--nk-muted); }
.nk-lab progress { display:block; width:100%; height:5px; border:0; border-radius:5px; margin:12px 0 18px; overflow:hidden; background:var(--nk-line); }
.nk-lab progress::-webkit-progress-bar { background:var(--nk-line); }
.nk-lab progress::-webkit-progress-value { background:var(--nk-gold); }
.nk-lab progress::-moz-progress-bar { background:var(--nk-gold); }
.nk-lab .nk-playback { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.nk-lab .nk-playback label { display:flex; align-items:center; gap:8px; margin-left:auto; font-size:11px; color:var(--nk-muted); }
.nk-lab .nk-playback select { width:auto; font-size:11px; }
.nk-lab .nk-scrub { display:block; color:var(--nk-muted); font-size:11px; margin-top:16px; }
.nk-lab .nk-small { font-size:11px; line-height:1.6; color:var(--nk-muted); }
.nk-lab .nk-limiter { padding:20px; border-top:1px solid var(--nk-line); border-bottom:1px solid var(--nk-line); background:#292416; }
.nk-lab .nk-limiter strong { display:block; margin:5px 0; font-size:17px; font-weight:500; color:var(--nk-bright); }
.nk-lab .nk-limiter p { color:var(--nk-muted); font-size:11px; }
.nk-lab .nk-controls { background:var(--nk-panel); padding:22px; border:1px solid var(--nk-line); border-radius:8px; min-width:0; }
.nk-lab .nk-panel-title { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:20px; }
.nk-lab .nk-controls > label { display:block; font-size:12px; margin-top:20px; }
.nk-lab .nk-controls > label > select { display:block; margin-top:7px; font-size:12px; }
.nk-lab .nk-controls output { float:right; font-variant-numeric:tabular-nums; color:var(--nk-bright); }
.nk-lab .nk-badge { display:inline-block; color:var(--nk-stone); border:1px solid var(--nk-strong); border-radius:3px; font:9px/1.5 Inter,system-ui,sans-serif; padding:2px 6px; letter-spacing:.02em; vertical-align:middle; }
.nk-lab .nk-theory-note { margin-top:10px; }
.nk-lab .nk-theory-note p { color:var(--nk-muted); font-size:11px; margin-top:7px; }
.nk-lab .nk-toggles { margin-top:18px; border-block:1px solid var(--nk-line); padding:8px 0; }
.nk-lab .nk-toggles label { display:flex; align-items:center; flex-wrap:wrap; gap:5px; min-height:44px; font-size:12px; cursor:pointer; }
.nk-lab .nk-toggles .nk-badge { margin-left:auto; }
.nk-lab .nk-supply { border-left:3px solid var(--nk-carnelian); background:#43251c; color:#f2c8b3; padding:12px; margin-top:16px; font-size:12px; }
.nk-lab .nk-results { margin-top:22px; padding-top:22px; border-top:1px solid var(--nk-strong); }
.nk-lab .nk-years { color:var(--nk-bright); font:clamp(28px,3vw,40px)/1.2 Georgia,serif; margin-top:10px; }
.nk-lab .nk-status { color:var(--nk-stone); font-size:12px; }
.nk-lab dl { margin:18px 0; }
.nk-lab dl > div { display:flex; justify-content:space-between; gap:16px; padding:9px 0; border-bottom:1px solid var(--nk-line); font-size:11px; }
.nk-lab dt { color:var(--nk-muted); }
.nk-lab dd { margin:0; text-align:right; max-width:60%; font-variant-numeric:tabular-nums; }
.nk-lab .nk-wide { width:100%; margin-top:20px; }
.nk-lab .nk-milestones { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--nk-line); }
.nk-lab .nk-evidence { background:var(--nk-raised); padding:20px; border-top:2px solid transparent; }
.nk-lab .nk-evidence h3 { font-size:17px; margin:10px 0; }
.nk-lab .nk-evidence p:not(.nk-small) { font-size:12px; color:var(--nk-muted); }
.nk-lab .nk-evidence a { display:inline-block; margin-top:10px; font-size:11px; }
.nk-lab .nk-evidence .nk-small { margin-bottom:8px; }
.nk-lab .nk-reached { border-top-color:var(--nk-gold); background:#231f15; }
.nk-lab .nk-reached .nk-small { color:var(--nk-bright); }
.nk-lab .nk-model, .nk-lab .nk-compare, .nk-lab .nk-finish { border:1px solid var(--nk-line); border-radius:8px; padding:26px; margin-top:24px; background:var(--nk-raised); }
.nk-lab .nk-model > p, .nk-lab .nk-compare > p, .nk-lab .nk-finish p { color:var(--nk-muted); font-size:13px; }
.nk-lab .nk-model .nk-formula { color:var(--nk-stone); font:12px/1.8 ui-monospace,Consolas,monospace; background:#201c13; border-left:2px solid var(--nk-strong); padding:14px; margin-block:16px; overflow-wrap:anywhere; }
.nk-lab .nk-model .nk-model-live { color:var(--nk-bright); }
.nk-lab .nk-capacities { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:20px 0; }
.nk-lab .nk-capacities > div { border:1px solid var(--nk-line); padding:12px; border-radius:5px; }
.nk-lab .nk-capacities span, .nk-lab .nk-capacities small { display:block; color:var(--nk-muted); font-size:10px; }
.nk-lab .nk-capacities strong { display:block; font:26px/1.5 Georgia,serif; font-variant-numeric:tabular-nums; }
.nk-lab .nk-capacities .nk-binding { border-color:var(--nk-gold); background:#2b2417; }
.nk-lab details { border-top:1px solid var(--nk-line); padding:16px 0 0; margin-top:16px; }
.nk-lab summary { cursor:pointer; color:var(--nk-stone); min-height:32px; }
.nk-lab details p { font-size:12px; color:var(--nk-muted); margin-top:12px; }
.nk-lab details h3 { font-size:18px; margin-top:22px; }
.nk-lab .nk-model-grid { display:grid; grid-template-columns:1fr 1fr; gap:30px; }
.nk-lab .nk-table-wrap { overflow-x:auto; margin-top:24px; }
.nk-lab table { width:100%; border-collapse:collapse; font-size:12px; text-align:left; }
.nk-lab caption { text-align:left; color:var(--nk-stone); padding-bottom:12px; }
.nk-lab th, .nk-lab td { border-bottom:1px solid var(--nk-line); padding:10px; vertical-align:top; }
.nk-lab th { font-weight:500; color:var(--nk-stone); }
.nk-lab td { color:var(--nk-muted); }
.nk-lab .nk-chart-row { margin-top:22px; }
.nk-lab .nk-chart-row > div:first-child { display:flex; gap:10px; align-items:center; font-size:12px; }
.nk-lab .nk-chart-row strong { font-weight:500; }
.nk-lab .nk-chart-row span:last-child { margin-left:auto; color:var(--nk-bright); }
.nk-lab .nk-chart-track { position:relative; height:18px; background:#242015; margin-top:8px; overflow:visible; }
.nk-lab .nk-chart-track i { position:absolute; top:0; height:100%; }
.nk-lab .nk-chart-base { background:#74561f; }
.nk-lab .nk-chart-range { background:repeating-linear-gradient(135deg,#c8952b 0 4px,#67502a 4px 8px); border-right:2px solid var(--nk-bright); }
.nk-lab .nk-chart-track .nk-chart-target { height:26px; top:-4px; width:1px; background:var(--nk-stone); z-index:1; }
.nk-lab .nk-finish { display:grid; grid-template-columns:1fr 1fr; gap:28px; align-items:center; }
.nk-lab .nk-finish h3 { margin:10px 0 14px; }
.nk-lab .nk-actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:20px; }
.nk-lab .nk-card { width:100%; height:auto; display:block; border:1px solid var(--nk-strong); }
.nk-lab .nk-footer { display:flex; justify-content:space-between; flex-wrap:wrap; gap:18px; margin-top:28px; padding-top:20px; border-top:1px solid var(--nk-line); font-size:10px; letter-spacing:.05em; color:var(--nk-muted); }
.nk-lab .nk-footer-dot { color:var(--nk-gold); margin:0 8px; }
.nk-lab .nk-sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
@media (max-width:1000px) {
  .nk-lab .nk-workspace { grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr); gap:16px; }
  .nk-lab .nk-controls { padding:18px; }
  .nk-lab .nk-viewbar { flex-wrap:wrap; }
  .nk-lab .nk-scene-caption { flex-direction:column; gap:2px; }
  .nk-lab .nk-playback label { margin-left:0; }
}
@media (max-width:760px) {
  .nk-lab .nk-workspace { grid-template-columns:minmax(0,1fr); }
  .nk-lab .nk-seal { display:none; }
  .nk-lab .nk-model-grid, .nk-lab .nk-finish { grid-template-columns:minmax(0,1fr); }
  .nk-lab .nk-capacities { grid-template-columns:1fr 1fr; }
  .nk-lab .nk-model, .nk-lab .nk-compare, .nk-lab .nk-finish { padding:18px; }
  .nk-lab .nk-controls { padding:22px; }
  .nk-lab .nk-viewbar { padding:10px 14px; }
  .nk-lab .nk-timeline { padding:16px; }
}
@media (max-width:420px) {
  .nk-lab .nk-milestones { grid-template-columns:1fr; }
  .nk-lab .nk-evidence { padding:18px; }
  .nk-lab .nk-viewbar > span { font-size:8px; }
  .nk-lab .nk-viewbar button { font-size:10px; }
  .nk-lab .nk-toggles .nk-badge { margin-left:0; }
  .nk-lab .nk-chart-row > div:first-child { flex-wrap:wrap; gap:6px; }
  .nk-lab th, .nk-lab td { padding:7px 5px; font-size:10px; }
}
@media (prefers-reduced-motion:reduce) {
  .nk-lab *, .nk-lab *::before, .nk-lab *::after { scroll-behavior:auto; animation:none; transition:none; }
}
