:root{
    --bg:#eef1f5; --card:#ffffff; --ink:#141b26; --muted:#5b6472;
    --bat:#d64545; --gps:#2f6fed; --pool:#8a8f99;
    --good:#1f9d55; --warn:#d98a00; --bad:#d64545;
    --line:#dde2e8; --accent:#2f6fed; --data:#1f9d55;
    --panel:#f8fafc; --shadow:0 1px 3px rgba(20,27,38,.06);
    --space-xs:4px; --space-sm:8px; --space-md:16px; --space-lg:24px;
    --space-xl:32px; --space-2xl:48px;
    --content-max:1180px; --section-gap:var(--space-xl);
    --page-pad:var(--space-lg); --panel-pad:var(--space-lg);
    --radius:12px; --radius-sm:8px;
    --bio-bg:#fbfcfe; --bio-accent:#2f6fed; --bio-label:#4f5866;
    --sim-grid:#e8ecf2; --sim-tissue:#e8f6ee; --sim-tumor:#fdeaea;
    --sim-alpha:#d64545; --sim-beta:#d98a00; --sim-gamma:#2f6fed;
    --surface-soft:#fbfcfe; --surface-accent:#eef3fe;
  }
  *{box-sizing:border-box}
  body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    background:var(--bg);color:var(--ink);line-height:1.55}
  .page-column,.page-inner{width:100%;max-width:var(--content-max);margin-left:auto;margin-right:auto;padding-left:var(--page-pad);padding-right:var(--page-pad)}
  header{padding:var(--space-md) 0 var(--space-sm);background:linear-gradient(180deg,#fff 0%,var(--bg) 100%)}
  header>.best-est-strip,header>.hdr-top,header>.hdr-tools-wrap,header>.hdr-nav-mobile,header>.tabnav{width:100%;max-width:var(--content-max);margin-left:auto;margin-right:auto;padding-left:var(--page-pad);padding-right:var(--page-pad)}
  .best-est-strip{display:flex;flex-wrap:nowrap;align-items:center;justify-content:flex-start;gap:var(--space-md);padding:6px var(--space-md);margin-bottom:var(--space-sm);background:var(--panel);border:1px solid var(--line);border-radius:6px;font-size:11px;line-height:1.35;color:var(--muted);overflow-x:auto;-webkit-overflow-scrolling:touch}
  .best-est-item{display:flex;align-items:baseline;gap:4px;flex:0 0 auto;white-space:nowrap}
  .best-est-item--scenario{flex:0 1 auto;margin-bottom:0;padding-right:var(--space-md);margin-right:var(--space-xs);border-right:1px solid var(--line)}
  .best-est-label{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
  .best-est-val{font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap}
  .best-est-val--scenario{font-size:12px}
  .best-est-sub{font-size:10px;font-weight:500;color:var(--muted);margin-left:2px}
  .best-est-val--loading{opacity:.45}
  .best-est-val--error{color:var(--muted)}
  .market-live .best-est-sub{max-width:22em;overflow:hidden;text-overflow:ellipsis}
  .best-est-sep{color:#c5cad2;font-weight:300;user-select:none;flex-shrink:0}
  @media(max-width:640px){
    .best-est-strip{flex-wrap:wrap;justify-content:flex-start;gap:var(--space-sm) var(--space-md)}
    .best-est-item--scenario{flex:1 1 100%;border-right:none;padding-right:0;margin-right:0;padding-bottom:var(--space-xs);border-bottom:1px solid var(--line)}
    .best-est-sep{display:none}
    .best-est-item:not(.best-est-item--scenario){flex:1 1 calc(50% - var(--space-sm));min-width:120px}
  }
  .hdr-top{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-md);flex-wrap:nowrap;margin-bottom:var(--space-xs)}
  .hdr-title-block{flex:1;min-width:0}
  h1{font-size:21px;margin:0 0 var(--space-xs);letter-spacing:-.01em;line-height:1.2}
  .readout-estimate{text-align:right;font-size:11px;line-height:1.35;color:var(--muted);flex-shrink:0;width:min(280px,42%);padding-top:2px}
  .readout-estimate .re-main{font-size:12.5px;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
  .readout-estimate .re-main b{font-weight:700;color:var(--accent)}
  .readout-estimate .re-ci{font-size:11px;margin-top:1px;white-space:nowrap}
  .readout-estimate .re-meta{font-size:10px;margin-top:2px;color:var(--muted);white-space:nowrap}
  .readout-estimate .re-meta .cite{margin-left:4px}
  .readout-estimate .re-pace{font-size:10px;margin-top:2px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
  .readout-estimate .tag.m{font-size:9px;padding:0 5px;vertical-align:1px}
  @media(max-width:640px){
    .hdr-top{flex-wrap:wrap}
    .readout-estimate{text-align:left;width:100%;padding-top:var(--space-sm);border-top:1px solid var(--line);margin-top:var(--space-xs)}
    .readout-estimate .re-main,.readout-estimate .re-ci,.readout-estimate .re-meta,.readout-estimate .re-pace{white-space:normal}
  }
  .sub{color:var(--muted);font-size:12px;max-width:72ch;line-height:1.45}
  .hdr-disclaimer{font-size:12px;line-height:1.4;margin:0;max-width:none}
  .hdr-hr-callout{font-size:12px;line-height:1.35;margin:4px 0 6px;color:var(--text);font-weight:500}
  .hdr-link{color:var(--accent);text-decoration:none;font-weight:600}
  .hdr-link:hover{text-decoration:underline}
  .wrap{display:grid;grid-template-columns:minmax(320px,380px) 1fr;gap:var(--section-gap);padding:var(--space-md) var(--page-pad) var(--space-sm);align-items:start;max-width:var(--content-max);margin:0 auto}
  @media (max-width:920px){.wrap{grid-template-columns:1fr}}
  .card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:var(--panel-pad);box-shadow:var(--shadow)}
  .card h2{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0 0 var(--space-sm);font-weight:700}
  .card h2+h2,.card h2:not(:first-child){margin-top:var(--section-gap)}
  .ctrl-group{margin:var(--space-md) 0;padding:var(--space-sm) var(--space-md) var(--space-xs);border:1px solid var(--line);border-radius:10px;background:var(--panel)}
  .ctrl-group>h3{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 var(--space-sm);font-weight:700}
  .ctrl-group .ctrl:last-child{margin-bottom:var(--space-sm)}
  .tab-intro-bar{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:var(--space-sm) var(--space-md);padding:var(--space-md) var(--page-pad) var(--space-sm);max-width:var(--content-max);margin:0 auto;width:100%}
  .tab-intro-bar:not(.expl-intro){max-width:calc(var(--content-max) - var(--page-pad) * 2);padding:var(--space-sm) var(--space-lg);margin-left:auto;margin-right:auto;border:1px solid var(--line);border-radius:var(--radius);background:#fbfcfe;font-size:12.5px;line-height:1.55}
  .tab-intro-bar:not(.expl-intro):has(.howworks-inline[open]){padding-bottom:var(--space-md)}
  .tab-inset{padding:0 var(--page-pad) var(--space-sm);max-width:var(--content-max);margin:0 auto;width:100%}
  .tabpage > .tab-intro-bar:first-child:not(.expl-intro){margin-top:var(--space-lg);padding-top:var(--space-sm)}
  .tabpage > .tab-intro-bar:first-child.expl-intro{padding-top:var(--section-gap)}
  .tabpage > .wrap,.tabpage > .facts,.tabpage > .regal-analysis{padding-top:var(--section-gap)}
  .tabpage > .tab-intro-bar:first-child + .wrap,.tabpage > .tab-intro-bar:first-child + .facts,.tabpage > .tab-intro-bar:first-child + .tab-lead,.tabpage > .tab-intro-bar:first-child + .methodpanel{padding-top:var(--space-md)}
  .tab-intro-bar .presets{margin-top:var(--space-md)}
  .tab-intro-sep{color:#c5cad2;font-size:12px;user-select:none;flex-shrink:0}
  .methodlink{border:none;background:none;color:var(--accent);font-size:13px;font-weight:600;cursor:pointer;padding:0;line-height:1.4;text-decoration:none;white-space:nowrap;flex-shrink:0}
  .methodlink:hover{text-decoration:underline}
  .tab-lead{padding:var(--space-sm) var(--page-pad) 0;max-width:var(--content-max);margin:0 auto}
  .tab-lead .sub{margin-bottom:var(--space-sm);max-width:none;font-size:12.5px}
  .howworks{margin:0 auto var(--space-md);max-width:calc(var(--content-max) - var(--page-pad) * 2);border:1px solid var(--line);border-radius:12px;background:#fbfcfe;overflow:hidden}
  .howworks-inline{flex:0 0 auto;min-width:0;margin:0;max-width:none;border:none;border-radius:0;background:transparent;overflow:visible}
  .howworks-inline>summary{padding:var(--space-xs) 0;cursor:pointer;font-size:14px;font-weight:700;color:var(--ink);list-style:none;display:flex;align-items:center;gap:var(--space-sm);white-space:nowrap}
  .howworks-inline>summary::-webkit-details-marker{display:none}
  .howworks-inline>summary::before{content:"▸";color:var(--accent);font-size:11px;transition:transform .15s;flex-shrink:0}
  .howworks-inline[open]>summary::before{transform:rotate(90deg)}
  .howworks-inline[open]{flex:1 1 100%;width:100%;border:none;border-radius:0;background:transparent;margin-top:0}
  .howworks-inline[open]>summary{padding:var(--space-xs) 0}
  .howworks-inline[open] .howworks-body{padding:var(--space-sm) 0 0}
  .howworks>summary{padding:var(--space-md);cursor:pointer;font-size:14px;font-weight:700;color:var(--ink);list-style:none;display:flex;align-items:center;gap:var(--space-sm)}
  .howworks>summary::-webkit-details-marker{display:none}
  .howworks>summary::before{content:"▸";color:var(--accent);font-size:11px;transition:transform .15s;flex-shrink:0}
  .howworks[open]>summary::before{transform:rotate(90deg)}
  .howworks-body{padding:0 var(--space-md) var(--space-md);font-size:13px;line-height:1.6;color:var(--ink)}
  .howworks-body p{margin:0 0 var(--space-md)}
  .howworks-body p:last-child{margin-bottom:0}
  .math-detail{margin-top:var(--space-sm);border:1px dashed var(--line);border-radius:8px;background:#fff}
  .math-detail>summary{padding:var(--space-sm) var(--space-md);cursor:pointer;font-size:12px;font-weight:700;color:var(--accent)}
  .math-detail-body{padding:0 var(--space-md) var(--space-md);font-size:12px;line-height:1.55;color:var(--muted)}
  .formula{margin:var(--space-sm) 0;padding:var(--space-sm) var(--space-md);border-radius:8px;background:#eef3fe;border-left:3px solid var(--accent);font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--ink)}
  .chart-sub{font-size:11px;color:var(--muted);margin:0 0 var(--space-sm);line-height:1.45}
  .source-line a{color:var(--accent);text-decoration:none}
  .source-line a:hover{text-decoration:underline}
  .cite{font-size:11px;font-weight:500;color:var(--muted);white-space:nowrap}
  .cite a{color:var(--accent);text-decoration:none}
  .cite a:hover{text-decoration:underline}
  .bandkey{font-size:11px;color:var(--muted);background:#f4f6f8;border-radius:8px;padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-md);line-height:1.5}
  .bandkey b{color:var(--ink)}
  .swatch{display:inline-block;width:10px;height:10px;border-radius:2px;vertical-align:middle;margin:0 var(--space-xs)}
  .ctrl{margin-bottom:var(--space-md)}
  .ctrl label{display:flex;justify-content:space-between;font-size:13px;font-weight:600;margin-bottom:var(--space-xs)}
  .ctrl label span{color:var(--accent);font-variant-numeric:tabular-nums}
  input[type=range]{width:100%;accent-color:var(--accent);margin:var(--space-xs) 0}
  .ctrl small{color:var(--muted);font-size:11px;line-height:1.45}
  .bands{position:relative;height:16px;margin-top:var(--space-xs)}
  .strip{position:absolute;left:0;right:0;height:6px;border-radius:3px;background:#eef0f3;overflow:hidden;cursor:help}
  .strip.sigma{top:0} .strip.data{top:9px;background:#edf1f5}
  .seg{position:absolute;top:0;bottom:0}
  .seg.imp{background:repeating-linear-gradient(45deg,rgba(214,69,69,.32),rgba(214,69,69,.32) 3px,rgba(214,69,69,.12) 3px,rgba(214,69,69,.12) 6px);border-left:1px solid var(--bad)}
  .marker{position:absolute;top:-1px;height:18px;width:2px;background:#111;opacity:.55}
  .disabled{opacity:.4;pointer-events:none}
  .presets{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:var(--space-sm);margin-bottom:var(--space-sm)}
  .pgrp{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:var(--space-sm) 0 var(--space-xs);font-weight:700}
  .pgrp-hint{font-size:11px;color:var(--muted);margin:0 0 var(--space-sm);line-height:1.5}
  button.p{border:1px solid var(--line);background:#fff;border-radius:8px;padding:var(--space-sm) var(--space-md);font-size:12px;cursor:pointer;text-align:left;line-height:1.4;min-height:44px}
  button.p:hover{border-color:var(--accent);color:var(--accent);box-shadow:var(--shadow)}
  button.p.p-def{border-color:var(--accent);background:#eef3fe;font-weight:700;box-shadow:inset 0 0 0 1px rgba(47,111,237,.15)}
  button.p.p-best{border-color:var(--accent);background:linear-gradient(180deg,#eef3fe 0%,#e4ecfd 100%);font-weight:700;box-shadow:0 2px 8px rgba(47,111,237,.18),inset 0 0 0 1px rgba(47,111,237,.2)}
  button.p.p-invalid{opacity:.55;border-style:dashed}
  button.p:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}
  button.p .p-sub{display:block;font-size:10px;font-weight:400;color:var(--muted);margin-top:var(--space-xs)}
  .preset-start{margin-bottom:var(--space-md);padding:var(--space-md);background:#f5f8fe;border:1px solid #c9daf8;border-radius:10px}
  .preset-start .pgrp{margin:0 0 var(--space-sm)}
  .preset-start .presets{margin-bottom:0}
  .ia-toggle{display:block;margin:var(--space-sm) 0 0;padding:var(--space-sm) var(--space-md);background:#fff;border:1px dashed #c9daf8;border-radius:8px;font-size:12px;line-height:1.45;cursor:pointer}
  .ia-toggle input{margin-right:6px;vertical-align:middle}
  .dilution-presets{margin-top:var(--space-sm)}
  .field-note{font-size:11px;color:var(--muted);margin:var(--space-xs) 0 var(--space-sm);line-height:1.45}
  .plausibility-warn{margin:0 0 var(--space-md);padding:var(--space-md);border-radius:10px;border:1px solid #f0d090;background:#fff4e0;color:#6b4e00;font-size:12.5px;font-weight:600;line-height:1.5}
  .plausibility-warn[hidden]{display:none!important}
  .regal-limitations{max-width:calc(var(--content-max) - var(--page-pad) * 2);margin:var(--space-md) auto 0;padding:var(--space-md) var(--space-lg);border-radius:var(--radius);border:1px solid var(--line);background:#fafbfc;font-size:12.5px;line-height:1.6;color:var(--ink)}
  .regal-limitations b:first-child{display:inline-block;margin-right:var(--space-xs)}
  .chart-wrap.chart-stale canvas{opacity:.35;filter:grayscale(.25)}
  .chart-stale-msg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:16px;text-align:center;font-size:13px;font-weight:600;color:var(--ink);background:rgba(238,241,245,.55);border-radius:8px;pointer-events:none;line-height:1.45}
  .chart-stale-msg[hidden]{display:none!important}
  .output-stale .stat,.output-stale .hr-metric .track,.output-stale .consist{opacity:.55}
  .chk{display:flex;align-items:center;gap:var(--space-sm);font-size:12.5px;font-weight:600;margin:var(--space-sm) 0 var(--space-md);padding:var(--space-sm) var(--space-md);background:#eef3fe;border-radius:8px}
  canvas{width:100%;height:auto;display:block}
  .grid2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md);margin-top:var(--section-gap)}
  @media (max-width:520px){.grid2{grid-template-columns:1fr}}
  .stat{background:#fafbfc;border:1px solid var(--line);border-radius:10px;padding:var(--space-md);min-height:72px;display:flex;flex-direction:column;justify-content:center}
  .stat .k{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;line-height:1.4;margin-bottom:var(--space-xs)}
  .stat .v{font-size:21px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.15}
  .stat .v small{font-size:12px;color:var(--muted);font-weight:500}
  .bat .v{color:var(--bat)} .gps .v{color:var(--gps)}
  /* HR gauge */
  .hr-metrics{display:flex;flex-direction:column;gap:var(--space-lg);margin-top:var(--section-gap)}
  .hr-metric{padding:var(--space-md);border:1px solid var(--line);border-radius:10px;background:#fafbfc}
  .hr-metric-interim{border-color:#f0d0d0;background:#fffafa}
  .hr-metric-final{border-color:#d0e8f0;background:#f8fcff}
  .hr-metric-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;margin-bottom:6px}
  .hr-metric-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
  .hr-metric-sub{font-size:11px;color:var(--muted)}
  .hr-metric-summary{font-size:15px;font-weight:600;line-height:1.4;margin-bottom:8px;font-variant-numeric:tabular-nums}
  .hr-metric-note{font-size:11px;color:var(--muted);margin:6px 0 0;line-height:1.5}
  .ia-pass{color:var(--good);font-weight:700}
  .ia-fail{color:var(--bad);font-weight:700}
  .ia-warn{color:var(--warn);font-weight:700}
  .gauge{margin-top:0}
  .gauge .track{position:relative;height:26px;border-radius:6px;overflow:hidden;background:#f0f2f4}
  .track-interim{background:linear-gradient(90deg,#e8f6ee 0%,#e8f6ee 54.7%,#f0f2f4 54.7%,#f0f2f4 100%)}
  .track-final{background:linear-gradient(90deg,#e8f6ee 0%,#e8f6ee 63.6%,#fdeaea 63.6%,#fdeaea 100%)}
  .gauge .thresh-interim{background:#2f8f4e}
  .gauge-compact .track{height:18px}
  .gauge-compact .hrmark{height:24px;top:-2px}
  .gauge .interim{position:absolute;top:0;bottom:0;background:rgba(214,69,69,.12);border-right:1px dashed var(--bad)}
  .gauge .thresh{position:absolute;top:0;bottom:0;width:2px;background:var(--bad)}
  .gauge .hrmark{position:absolute;top:-3px;height:32px;width:3px;background:#111;border-radius:2px}
  .gauge .hrmark-readout{background:var(--accent);width:3px;opacity:.85}
  .gauge .labels{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-top:3px}
  .badge{display:inline-block;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:700;color:#fff}
  .b-good{background:var(--good)} .b-warn{background:var(--warn)} .b-bad{background:var(--bad)}
  .consist{margin-top:var(--section-gap);padding:var(--space-md);border-radius:10px;border:1px solid var(--line);background:#fafbfc;font-size:13px;line-height:1.5}
  .consist .row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-xs) 0}
  .verdict{margin-top:var(--space-md);padding:var(--space-md);border-radius:10px;font-size:14px;font-weight:600;line-height:1.45}
  .v-win{background:#e8f6ee;color:#12692f;border:1px solid #bfe6cd}
  .v-lose{background:#fdeaea;color:#8f2020;border:1px solid #f4c7c7}
  .v-none{background:#fff4e0;color:#8a5a00;border:1px solid #f2dca6}
  .v-ridge{background:#fdeaea;color:#7a1a1a;border:1px solid #e8a0a0}
  .note{font-size:12px;color:var(--muted);margin-top:var(--section-gap);border-top:1px dashed var(--line);padding-top:var(--space-md);line-height:1.55}
  .ctrl-group details,.card details{margin-top:var(--space-sm)}
  .ctrl-group details>summary,.card details>summary{cursor:pointer;font-size:12px;font-weight:600;color:var(--muted);padding:var(--space-xs) 0}
  details>summary+.ctrl{margin-top:var(--space-sm)}
  .facts{padding:var(--space-md) var(--page-pad) var(--space-2xl);max-width:var(--content-max);margin:0 auto}
  .facts .card{max-width:100%}
  .fgrid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm) var(--space-lg);font-size:12.5px;line-height:1.5}
  @media (max-width:760px){.fgrid{grid-template-columns:1fr}}
  .fgrid div{padding:var(--space-sm) 0;border-bottom:1px solid #f0f2f4}
  .fgrid b{color:var(--ink)} .tag{font-size:10px;padding:1px 6px;border-radius:10px;background:#eef1f4;color:#55606e;margin-left:4px}
  .tag.v{background:#e8f6ee;color:#12692f} .tag.u{background:#fdeef0;color:#9a3b3b}
  .tabnav,.tabs{display:flex;gap:var(--space-sm);flex-wrap:wrap;justify-content:flex-start;align-items:stretch;margin-top:var(--space-sm);margin-bottom:0}
  .tabbtn{flex:0 0 auto;white-space:nowrap;border:1px solid var(--line);background:#fff;border-radius:10px 10px 0 0;padding:6px var(--space-md);font-size:13px;font-weight:700;cursor:pointer;color:var(--muted);border-bottom:2px solid transparent;line-height:1.3}
  .tabbtn.active{color:var(--accent);border-color:var(--line);border-bottom:2px solid var(--accent);background:#fbfcfe}
  .tabbtn:hover{color:var(--ink)}
  .tabpage[hidden]{display:none}
  .tabpage>.howworks{margin-left:var(--page-pad);margin-right:var(--page-pad)}
  /* constrain every direct tabpage child to the centered content column.
     layout blocks that already manage their own width/padding are excluded so the
     REGAL two-column grid and pattern-1 wrappers keep aligning. new tabs/sections
     (e.g. a future Biology tab) are covered automatically. */
  .tabpage>*:not(.wrap):not(.facts):not(.regal-analysis):not(.tab-lead):not(.tab-inset):not(.tab-intro-bar):not(.methodpanel):not(.howworks),
  .tabpage .full-bleed-fix{
    max-width:calc(var(--content-max) - var(--page-pad) * 2);
    margin-inline:auto}
  .methodbtn{border:1px solid var(--accent);background:#eef3fe;color:var(--accent);border-radius:8px;padding:var(--space-sm) var(--space-md);font-size:12.5px;font-weight:700;cursor:pointer;min-height:44px}
  .methodpanel{margin:var(--space-md) auto 0;padding:var(--space-md) var(--space-lg);max-width:calc(var(--content-max) - var(--page-pad) * 2);border:1px solid var(--line);border-radius:var(--radius);background:#fbfcfd;font-size:12.5px;line-height:1.6}
  .methodpanel[hidden]{display:none}
  .methodpanel code{background:#eef1f4;padding:1px 5px;border-radius:4px;font-size:12px}
  .methodpanel h4{margin:var(--space-md) 0 var(--space-xs);font-size:13px}
  .vrow{display:flex;justify-content:space-between;align-items:center;gap:var(--space-md);padding:var(--space-sm) 0;border-bottom:1px solid #f0f2f4;font-size:13px}
  .vrow input[type=range]{flex:1;max-width:200px;accent-color:var(--accent)}
  .vrow .vv{min-width:96px;text-align:right;font-weight:700;font-variant-numeric:tabular-nums}
  .bignum{font-size:30px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.15}
  .modenav{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm);margin-bottom:var(--space-md);padding:var(--space-xs);background:var(--panel);border:1px solid var(--line);border-radius:10px}
  .modebtn{border:2px solid var(--line);background:#fff;border-radius:8px;padding:var(--space-sm) var(--space-md);font-size:12.5px;font-weight:700;cursor:pointer;color:var(--muted);line-height:1.35;text-align:left}
  .modebtn.active{color:var(--accent);border-color:var(--accent);background:#eef3fe;box-shadow:var(--shadow)}
  .modebtn .m-sub{display:block;font-size:10px;font-weight:500;color:var(--muted);margin-top:var(--space-xs)}
  .mc-toolbar{display:flex;gap:var(--space-md);align-items:center;flex-wrap:wrap;margin-bottom:var(--space-md);padding:var(--space-md);background:var(--panel);border:1px solid var(--line);border-radius:10px}
  .mc-toolbar button.p{min-height:auto}
  .mc-toolbar label{font-size:12.5px;display:flex;gap:var(--space-sm);align-items:center;margin:0}
  .mc-toolbar input[type=range]{width:90px}
  .mc-toolbar .toolbar-range--sm{width:70px}
  .tag.f{background:#eef3fe;color:#1a4fb8} .tag.m{background:#f3f0ff;color:#5b3ea8} .tag.a{background:#fff4e0;color:#8a5a00} .tag.c{background:#fff0e8;color:#8a4500}
  .invbox{margin:0 0 var(--section-gap);padding:var(--space-md);border-radius:10px;border:1px solid #c9daf8;background:#eef3fe;font-size:12.5px;line-height:1.55}
  .invbox b{color:var(--ink)}
  .invout{margin:0 0 var(--section-gap);padding:var(--space-md);border-radius:10px;border:1px solid var(--line);background:#fafbfc;font-size:12.5px}
  .invout .ik{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
  .invout .iv{font-size:18px;font-weight:700;font-variant-numeric:tabular-nums}
  .invgrid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm) var(--space-md);margin-top:var(--space-sm)}
  .derived-tag{font-size:10px;padding:1px var(--space-sm);border-radius:8px;background:#e8f6ee;color:#12692f;margin-left:var(--space-xs);font-weight:600}
  [data-regal-mode][hidden]{display:none!important}
  .cw-panel{margin:0 0 var(--section-gap);padding:var(--space-md) var(--space-lg);border:1px solid #c9daf8;border-radius:var(--radius);background:#fbfcfe;font-size:12.5px;line-height:1.55}
  .cw-panel h3{font-size:13px;margin:var(--space-md) 0 var(--space-sm)}
  .cw-panel h3:first-child{margin-top:0}
  .cw-table{width:100%;border-collapse:collapse;font-size:11.5px;margin:var(--space-sm) 0 var(--space-md);font-variant-numeric:tabular-nums}
  .cw-table th,.cw-table td{border:1px solid var(--line);padding:var(--space-sm) var(--space-md);text-align:right}
  .cw-table th{text-align:left;background:#f4f6f8;font-weight:600}
  .cw-table td:first-child,.cw-table th:first-child{text-align:left}
  .cw-table .hl{background:#eef3fe}
  .cw-note{font-size:11.5px;color:var(--muted);margin:var(--space-sm) 0 var(--space-md);line-height:1.5}
  .val-ok{color:#12692f;font-weight:700;font-size:10px}
  .val-part{color:#8a5a00;font-weight:700;font-size:10px}
  .val-no{color:#9a3b3b;font-weight:700;font-size:10px}
  .val-model{color:#5b3ea8;font-weight:700;font-size:10px}
  .contrib{margin:var(--space-md) 0;padding:var(--space-md);border:1px solid var(--line);border-radius:10px;background:#fff}
  .contrib h4{margin:0 0 var(--space-sm);font-size:13px}
  .contrib ul{margin:var(--space-sm) 0 0;padding-left:var(--space-lg);font-size:12px;line-height:1.55}
  .contrib li{margin:var(--space-xs) 0}
  .valtbl{width:100%;border-collapse:collapse;font-size:11px;margin:var(--space-sm) 0 var(--space-xs)}
  .valtbl th,.valtbl td{border:1px solid var(--line);padding:var(--space-sm) var(--space-md);text-align:left;vertical-align:top}
  .valtbl th{background:#f4f6f8;font-weight:600}
  /* header toolbar + toast */
  .hdr-tools{display:inline-flex;width:fit-content;max-width:100%;gap:var(--space-sm);flex-wrap:wrap;align-items:center;justify-content:flex-start;margin:var(--space-sm) 0 0;padding:6px var(--space-md);background:var(--panel);border:1px solid var(--line);border-radius:8px}
  .hdr-tools button{border:1px solid var(--line);background:#fff;border-radius:6px;padding:5px 12px;font-size:12px;font-weight:600;cursor:pointer;color:var(--ink);min-height:auto;line-height:1.35}
  .hdr-tools button:hover{border-color:var(--accent);color:var(--accent)}
  .hdr-tools button.primary{border-color:var(--accent);background:#eef3fe;color:var(--accent)}
  .toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(80px);background:#141b26;color:#fff;padding:10px 18px;border-radius:10px;font-size:13px;font-weight:600;opacity:0;transition:transform .25s,opacity .25s;z-index:9999;pointer-events:none}
  .toast.show{transform:translateX(-50%) translateY(0);opacity:1}
  /* feature panels */
  .feat-panel{margin:0 0 var(--section-gap);padding:var(--space-md) var(--space-lg);border:1px solid var(--line);border-radius:var(--radius);background:#fbfcfe;font-size:12.5px;line-height:1.55}
  .feat-panel>summary{cursor:pointer;font-size:14px;font-weight:700;color:var(--ink);list-style:none;display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) 0}
  .feat-panel>summary::-webkit-details-marker{display:none}
  .feat-panel>summary::before{content:"▸";color:var(--accent);font-size:11px;transition:transform .15s}
  .feat-panel[open]>summary::before{transform:rotate(90deg)}
  .tornado-row{display:flex;align-items:center;gap:8px;margin:4px 0;font-size:11.5px}
  .tornado-lbl{min-width:110px;text-align:right;color:var(--muted);font-weight:600}
  .tornado-bar{flex:1;height:14px;background:#eef0f3;border-radius:3px;position:relative;overflow:hidden}
  .tornado-bar .neg{position:absolute;right:50%;height:100%;background:var(--bad);opacity:.65;border-radius:3px 0 0 3px}
  .tornado-bar .pos{position:absolute;left:50%;height:100%;background:var(--good);opacity:.65;border-radius:0 3px 3px 0}
  .tornado-val{min-width:52px;font-variant-numeric:tabular-nums;font-weight:700}
  .bf-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md);margin:var(--space-md) 0}
  @media(max-width:640px){.bf-grid{grid-template-columns:1fr}}
  .bf-box{padding:var(--space-md);border:1px solid var(--line);border-radius:10px;background:#fff}
  .bf-box h4{margin:0 0 var(--space-sm);font-size:12px}
  .irm-inp{width:56px;padding:3px 6px;border:1px solid var(--line);border-radius:6px;font-size:11.5px;text-align:right;font-variant-numeric:tabular-nums}
  .irm-delta{font-size:10px;color:var(--muted)}
  .irm-delta.pos{color:var(--good)}.irm-delta.neg{color:var(--bad)}
  .stat-sub{font-size:11px;color:var(--muted);margin-top:2px;line-height:1.35}
  .preset-cmp{width:100%;border-collapse:collapse;font-size:11px;margin:8px 0;font-variant-numeric:tabular-nums}
  .preset-cmp th,.preset-cmp td{border:1px solid var(--line);padding:var(--space-sm) var(--space-md);text-align:right}
  .preset-cmp th{text-align:left;background:#f4f6f8;font-weight:600;position:sticky;top:0}
  .preset-cmp td:first-child,.preset-cmp th:first-child{text-align:left}
  .preset-cmp .win{color:var(--good);font-weight:700}
  .preset-cmp .lose{color:var(--bad);font-weight:700}
  .milestone-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-md);margin:var(--space-md) 0}
  @media(max-width:720px){.milestone-cards{grid-template-columns:1fr}}
  .mcard{padding:var(--space-md);border:1px solid var(--line);border-radius:10px;background:#fff}
  .mcard .mt{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
  .mcard .mv{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;margin:var(--space-xs) 0}
  .t80-hist{display:flex;align-items:flex-end;gap:2px;height:100px;border-bottom:1px solid var(--line);margin:var(--space-sm) 0}
  .t80-hist div{flex:1;background:var(--accent);opacity:.7;border-radius:2px 2px 0 0;min-height:2px}
  /* sticky header mobile */
  @media(max-width:768px){
    html,body{overflow-x:hidden;max-width:100%}
    :root{--page-pad:var(--space-md);--section-gap:var(--space-md)}
    header{position:sticky;top:0;z-index:100;box-shadow:0 2px 8px rgba(20,27,38,.08);padding:var(--space-md) 0 var(--space-sm)}
    .wrap{padding:var(--space-md) var(--page-pad) var(--space-sm)}
    .howworks,.methodpanel,.feat-panel,.cw-panel,.regal-analysis,.regal-limitations,.tab-intro-bar:not(.expl-intro){margin-left:var(--page-pad);margin-right:var(--page-pad)}
    .tab-intro-bar,.tab-lead{padding-left:var(--page-pad);padding-right:var(--page-pad)}
    .facts{padding:var(--space-md) var(--page-pad) var(--space-2xl)}
    .tabnav{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;scrollbar-width:none;margin:var(--space-sm) calc(-1 * var(--page-pad)) 0;padding:0 var(--page-pad) var(--space-xs)}
    .tabnav::-webkit-scrollbar{display:none}
    .tabbtn{flex-shrink:0;font-size:12.5px;padding:8px var(--space-md);min-height:40px;scroll-snap-align:start}
    .hdr-tools{display:flex;width:100%;gap:var(--space-sm);justify-content:flex-start}
    .hdr-tools button{flex:1 1 auto;min-width:0}
    .modenav{grid-template-columns:1fr}
    .presets{grid-template-columns:1fr}
    input[type=range]{min-height:44px;padding:14px 0;touch-action:pan-y}
    .vrow input[type=range]{max-width:none}
    .vrow{flex-wrap:wrap}
    .vrow .vv{width:100%;text-align:left;margin-top:var(--space-xs)}
    .methodbtn,.modebtn{min-height:44px}
    .howworks>summary,.howworks-inline>summary,.feat-panel>summary,.cw-panel>summary{min-height:44px;padding:var(--space-md)}
    footer{padding:var(--space-md) var(--page-pad) var(--space-2xl)}
  }
  @media print{
    header,.tabnav,.hdr-tools-wrap,.hdr-nav-mobile,.mobile-nav-panel,.mobile-nav-backdrop,.card input,.card input[type=range],.presets,.modenav,.mc-toolbar,.pgrp,.pgrp-hint,.bandkey,.chk,.ctrl-group,.tabbtn:not(.active),footer button,.methodbtn,.methodlink,details>summary,.feat-panel>summary,.cw-panel>summary{display:none!important}
    body{background:#fff;font-size:11pt}
    .tabpage[hidden]{display:block!important}
    #tab-sls009,#tab-value,#tab-explain,#tab-biology{display:none!important}
    .wrap{grid-template-columns:1fr}
    .card{break-inside:avoid;box-shadow:none;border:1px solid #ccc}
    .howworks,.feat-panel,.cw-panel,details{border:none}
    .howworks-body,.feat-panel>div,.cw-panel>div{display:block!important}
    .print-only{display:block!important}
    .no-print{display:none!important}
    canvas{max-height:280px}
  }
  .print-only{display:none}
  .print-summary{margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:10px;background:#f8fafc;font-size:12px}
  /* loading overlay */
  .load-overlay{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:rgba(238,241,245,.72);backdrop-filter:blur(2px);opacity:0;visibility:hidden;transition:opacity .15s,visibility .15s;pointer-events:none}
  .load-overlay.visible{opacity:1;visibility:visible;pointer-events:auto}
  .load-card{display:flex;flex-direction:column;align-items:center;gap:14px;padding:24px 32px;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 32px rgba(20,27,38,.12)}
  .load-spinner{width:36px;height:36px;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:loadSpin .75s linear infinite}
  .load-msg{font-size:13px;font-weight:600;color:var(--muted)}
  @keyframes loadSpin{to{transform:rotate(360deg)}}
  /* chart containers */
  .chart-wrap{position:relative;min-height:200px;margin:var(--space-md) 0}
  .chart-wrap canvas{display:block;width:100%;height:auto}
  /* monte carlo histogram — block flow, no negative-margin bleed */
  .mc-section{padding:0}
  .mc-panel{margin-bottom:0}
  .mc-hist-host{clear:both;margin-bottom:var(--space-xs);min-height:170px;position:relative;z-index:1}
  .mc-hist-wrap{position:relative;margin:var(--section-gap) 0 0;min-height:130px}
  .mc-hist-bars{display:flex;align-items:flex-end;gap:2px;height:130px;border-bottom:1px solid var(--line);position:relative;z-index:1}
  .mc-hist-axis{display:flex;gap:2px;font-size:9px;color:var(--muted);margin-top:var(--space-xs)}
  .mc-hist-axis>div{flex:1;text-align:center}
  .mc-hist-caption{font-size:11px;color:var(--muted);margin:var(--space-sm) 0 var(--space-md);line-height:1.5}
  .mc-hist-markers{position:absolute;inset:0 0 auto 0;height:130px;pointer-events:none;z-index:2}
  .mc-hist-marker{position:absolute;top:0;width:2px;height:130px;background:#111}
  .mc-hist-marker.med{opacity:.7}
  .mc-hist-marker.lo,.mc-hist-marker.hi{opacity:.4}
  /* regal analysis block — MC + collapsible panels */
  .regal-analysis{margin:0 auto var(--space-xl);padding:0 var(--page-pad);max-width:var(--content-max);clear:both}
  .regal-panels{display:flex;flex-direction:column;gap:var(--space-md);margin-top:var(--space-xl);padding-top:var(--space-lg);border-top:1px solid var(--line)}
  .regal-panels .feat-panel,.regal-panels .cw-panel{margin:0}
  /* table horizontal scroll on narrow screens */
  .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:var(--space-sm) 0 var(--space-md);border-radius:8px}
  .table-wrap .cw-table,.table-wrap .valtbl,.table-wrap .preset-cmp{min-width:520px;margin:0}
  /* footer clearance */
  footer{margin-top:var(--space-xl);padding:var(--space-md) var(--page-pad) var(--space-2xl);font-size:11px;color:var(--muted);border-top:1px solid var(--line);clear:both;position:relative;max-width:100%}
  .footer-inner{max-width:var(--content-max);margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm) var(--space-lg);line-height:1.5}
  .footer-inner a{color:var(--accent);text-decoration:none}
  .footer-inner a:hover{text-decoration:underline}
  .footer-links{margin-left:auto}
  .footer-note{flex:1 1 100%;font-size:10.5px;color:var(--muted)}
  @media(max-width:640px){.footer-links{margin-left:0}}
  /* uniform collapsible panels */
  .cw-panel>summary{cursor:pointer;font-size:14px;font-weight:700;color:var(--ink);list-style:none;display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) 0}
  .cw-panel>summary::-webkit-details-marker{display:none}
  .cw-panel>summary::before{content:"▸";color:var(--accent);font-size:11px;transition:transform .15s;flex-shrink:0}
  .cw-panel[open]>summary::before{transform:rotate(90deg)}
  .feat-panel>div,.cw-panel>div{padding-top:var(--space-sm)}
  .feat-panel .cw-note:first-child,.cw-panel .cw-note:first-child{margin-top:0}
  /* shared utilities — replace ad-hoc inline styles, keep spacing on the token scale */
  .p-run{font-weight:700;padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-sm)}
  .run-status{font-size:12px;color:var(--muted);margin-left:var(--space-sm)}
  .panel-lead{font-size:12.5px;color:var(--muted);margin:0 0 var(--space-md);line-height:1.55}
  .panel-body{margin-top:0}
  .stats-line{font-size:14px;font-weight:600;margin:0 0 var(--space-sm)}
  .hist-hint{font-size:11px;color:var(--muted);margin:0 0 var(--space-xs);line-height:1.45}
  .result-box{margin-top:var(--space-md);padding:var(--space-md);border-radius:var(--radius-sm);background:#fafbfc;border:1px solid var(--line);font-size:12.5px;line-height:1.55}
  .result-box--warn{background:#fff4e0;border-color:#f0d090;color:#6b4e00}
  .callout-note{margin-top:var(--space-sm);color:var(--muted)}
  .field-note{font-size:12px;color:var(--muted);margin-top:var(--space-sm)}
  .panel-subhead{font-weight:700;margin:0 0 var(--space-xs)}
  .os-lock{font-size:13px;padding:var(--space-sm) var(--space-md);background:#f4f6f8;border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--muted)}
  .inline-check{display:flex;gap:var(--space-sm);align-items:center;font-weight:600}
  .toolbar-range{width:90px}
  .scmp-select{width:100%;padding:var(--space-sm);border:1px solid var(--line);border-radius:var(--radius-sm);font-size:12px;min-height:44px}
  .scmp-hash{width:100%;padding:var(--space-sm);border:1px solid var(--line);border-radius:6px;font-size:11px}
  .ev-result{margin-top:var(--space-md);padding:var(--space-md);border-radius:var(--radius);background:#eef3fe;border:1px solid #cfe0fb;text-align:center}
  .ev-result-label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
  .ev-result-sub{font-size:13px;margin-top:var(--space-xs)}
  .ref-list{font-size:12.5px;line-height:1.7;margin:0;padding-left:var(--space-lg)}
  .list-tight{font-size:12.5px;line-height:1.6;margin:var(--space-sm) 0;padding-left:var(--space-md)}
  .o-front{margin-top:var(--space-md);font-size:13px}
  .ref-list--spaced{margin-top:var(--space-sm)}
  .h2-sub{font-weight:400;text-transform:none;letter-spacing:0}
  .tag.d{background:#eef1f4;color:#55606e}
  .tag-xs{font-size:9px;font-weight:600}
  .mt-sm{margin-top:var(--space-sm)!important}
  .mt-md{margin-top:var(--space-md)!important}
  .mt-lg{margin-top:var(--space-lg)!important}
  .preset-desc{font-size:12px;color:var(--muted)}
  .prose-sm{font-size:12.5px;line-height:1.55}
  /* header toolbar alignment */
  .hdr-tools label{white-space:nowrap;flex-shrink:0;font-size:12px;display:flex;gap:var(--space-sm);align-items:center;margin:0}
  /* preset grid uniform heights */
  .presets{align-items:stretch}
  button.p{display:flex;flex-direction:column;justify-content:center}
  .grid2{align-items:stretch}
  /* explain tab */
  #tab-explain .tab-intro-bar.expl-intro{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-md);border-bottom:none;padding-bottom:var(--space-sm)}
  #tab-explain .expl-lead{margin:0;max-width:none;line-height:1.45}
  .expl-levels{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--space-sm);margin-top:0;width:100%;max-width:none}
  @media(max-width:900px){.expl-levels{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}}
  .expl-levels .lvlb{min-width:0;min-height:36px;padding:var(--space-sm) var(--space-md);border:1px solid var(--line);background:#fff;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;text-align:center;line-height:1.3;color:var(--ink)}
  .expl-levels .lvlb:hover{border-color:var(--accent);color:var(--accent)}
  .expl-levels .lvlb.active{border-color:var(--accent);background:#eef3fe;color:var(--accent);font-weight:700;box-shadow:inset 0 0 0 1px rgba(47,111,237,.15)}
  #tab-explain .facts.expl-content{padding-top:var(--section-gap);padding-bottom:var(--space-2xl)}
  #tab-explain .expl-content{padding-top:0!important;max-width:var(--content-max);width:100%}
  #tab-explain .expl-card{max-width:none;width:100%;margin:0;padding:var(--space-lg)}
  #tab-explain #explbody{font-size:14px;line-height:1.65;padding:0}
  #tab-explain #explbody h3{margin:0 0 var(--space-md);font-size:16px;line-height:1.3;color:var(--ink)}
  #tab-explain #explbody p{margin:0 0 var(--space-md)}
  #tab-explain #explbody p:last-child{margin-bottom:0}
  /* panel section spacing inside cards */
  .panel-section{margin-top:var(--space-md)}
  .card-spaced{margin-top:var(--section-gap)}
  /* fact as-of dates & stale */
  .as-of{font-size:11px;color:var(--muted);font-weight:500;margin-left:4px}
  .stale-badge{font-size:10px;padding:1px 6px;border-radius:10px;background:#fff4e0;color:#8a5a00;margin-left:4px;font-weight:600;white-space:nowrap}
  .stale-badge a{color:#8a5a00;text-decoration:underline}
  /* mobile hamburger nav */
  .hdr-nav-mobile{display:none;align-items:center;gap:var(--space-sm);padding:var(--space-xs) 0;margin-top:var(--space-xs)}
  .nav-toggle{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;cursor:pointer;flex-shrink:0}
  .nav-toggle:hover{border-color:var(--accent)}
  .nav-toggle-bars{display:flex;flex-direction:column;justify-content:center;gap:5px;width:18px;height:18px}
  .nav-toggle-bars span{display:block;height:2px;background:var(--ink);border-radius:1px;transition:transform .2s,opacity .2s}
  .nav-toggle[aria-expanded="true"] .nav-toggle-bars span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .nav-toggle[aria-expanded="true"] .nav-toggle-bars span:nth-child(2){opacity:0}
  .nav-toggle[aria-expanded="true"] .nav-toggle-bars span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .hdr-active-tab{flex:1;font-size:13px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}
  .mobile-nav-backdrop{display:none;position:fixed;inset:0;z-index:140;background:rgba(20,27,38,.32)}
  .mobile-nav-backdrop.is-open{display:block}
  .mobile-nav-panel{position:absolute;top:100%;left:0;right:0;z-index:150;width:100%;max-width:none;margin:0;padding:0;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 8px 24px rgba(20,27,38,.12);max-height:0;overflow:hidden;opacity:0;visibility:hidden;transition:max-height .25s ease,opacity .2s,visibility .2s}
  .mobile-nav-panel.is-open{max-height:min(80vh,320px);opacity:1;visibility:visible}
  .mobile-nav-panel nav{display:flex;flex-direction:column;padding:var(--space-sm) var(--page-pad) var(--space-md);gap:var(--space-xs)}
  .mobile-nav-item{display:flex;align-items:center;width:100%;min-height:48px;padding:var(--space-sm) var(--space-md);border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;font-size:14px;font-weight:600;color:var(--muted);cursor:pointer;text-align:left;line-height:1.35}
  .mobile-nav-item:hover{border-color:var(--accent);color:var(--accent)}
  .mobile-nav-item.active{color:var(--accent);border-color:var(--accent);background:#eef3fe;font-weight:700}
  body.nav-open{overflow:hidden}
  /* chart tooltip */
  .chart-tooltip{position:absolute;pointer-events:none;background:#141b26;color:#fff;padding:8px 12px;border-radius:8px;font-size:11.5px;line-height:1.5;z-index:50;opacity:0;transition:opacity .12s;max-width:240px;font-variant-numeric:tabular-nums}
  .chart-tooltip.show{opacity:1}
  .chart-tooltip.pinned{pointer-events:auto;box-shadow:0 4px 16px rgba(0,0,0,.25)}
  .chart-pin-panel{margin-top:8px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fafbfc;font-size:12px;display:none}
  .chart-pin-panel.show{display:block}
  /* cross-tab link */
  .link-val-btn{margin-top:var(--space-md);border:1px solid var(--accent);background:#eef3fe;color:var(--accent);border-radius:8px;padding:var(--space-sm) var(--space-md);font-size:12.5px;font-weight:700;cursor:pointer;width:100%;min-height:44px}
  .link-val-btn:hover{background:#dde8fd}
  .val-highlight{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px;animation:valPulse 1.2s ease 2}
  @keyframes valPulse{0%,100%{outline-color:var(--accent)}50%{outline-color:transparent}}
  /* scenario diff */
  .scmp-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md);margin:var(--space-md) 0}
  @media(max-width:640px){.scmp-grid{grid-template-columns:1fr}}
  .scmp-delta-pos{color:var(--good);font-weight:700}
  .scmp-delta-neg{color:var(--bad);font-weight:700}
  .scmp-grid label{font-size:12px;font-weight:600}
  .scmp-hash-wrap{margin:var(--space-sm) 0;font-size:11.5px;color:var(--muted)}
  .scmp-hash-wrap .scmp-hash{margin:var(--space-xs) 0}
  /* embed mode */
  body.embed-mode{background:#fff}
  body.embed-mode header{padding:var(--space-sm) var(--space-md) var(--space-xs);background:#fff;box-shadow:none;position:static}
  body.embed-mode header h1,.embed-mode .embed-hide,.embed-mode .howworks,.embed-mode footer,.embed-mode .hdr-tools-wrap,.embed-mode .tabnav,.embed-mode .hdr-nav-mobile,.embed-mode .mobile-nav-panel,.embed-mode .mobile-nav-backdrop,.embed-mode .methodbtn,.embed-mode .methodlink,.embed-mode .readout-estimate,.embed-mode .best-est-strip,.embed-mode .link-val-btn,.embed-mode .no-embed{display:none!important}
  body.embed-mode .wrap,.embed-mode .facts,.embed-mode .regal-analysis,.embed-mode .feat-panel,.embed-mode .cw-panel{padding-left:var(--space-sm);padding-right:var(--space-sm);margin-left:0;margin-right:0}
  body.embed-mode .tabbtn.active{display:inline-block!important}
  @media(max-width:768px){
    .hdr-nav-mobile{display:flex}
    header .tabnav{display:none}
  }
  @media print{.hdr-nav-mobile,.mobile-nav-panel,.mobile-nav-backdrop{display:none!important}}
  /* ===== The Biology tab ===== */
  .bio-content{padding:var(--space-md) var(--page-pad) var(--space-2xl);max-width:var(--content-max);margin:0 auto;width:100%}
  .bio-section{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:var(--panel-pad);box-shadow:var(--shadow);margin-bottom:var(--section-gap)}
  .bio-section h2{font-size:18px;margin:0 0 var(--space-xs);line-height:1.25;letter-spacing:-.01em;display:flex;align-items:baseline;gap:var(--space-sm);flex-wrap:wrap}
  .bio-section h2 .bio-kicker{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--bio-accent);background:var(--surface-accent);border-radius:6px;padding:2px 8px;line-height:1.4}
  .bio-section h3{font-size:14px;margin:var(--space-lg) 0 var(--space-xs)}
  .bio-section p{font-size:13.5px;line-height:1.65;margin:0 0 var(--space-md);max-width:80ch}
  .bio-section p:last-child{margin-bottom:0}
  .bio-section ul{font-size:13.5px;line-height:1.6;margin:0 0 var(--space-md);padding-left:var(--space-lg)}
  .bio-section li{margin:var(--space-xs) 0}
  .bio-lead{font-size:14.5px!important;line-height:1.6!important;color:var(--ink)}
  .bio-legend{display:flex;flex-wrap:wrap;gap:var(--space-sm) var(--space-md);align-items:center;font-size:11.5px;color:var(--muted);margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px dashed var(--line)}
  .bio-legend .tag{margin-left:0}
  .bio-modality-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md);margin:var(--space-md) 0 0}
  @media(max-width:640px){.bio-modality-grid{grid-template-columns:1fr}}
  .bio-modality{border:1px solid var(--line);border-radius:10px;padding:var(--space-md);background:var(--surface-soft)}
  .bio-modality h4{margin:0 0 var(--space-xs);font-size:13px;display:flex;align-items:center;gap:var(--space-sm)}
  .bio-modality.mod-gps{border-left:4px solid var(--gps)}
  .bio-modality.mod-sls{border-left:4px solid var(--good)}
  .bio-modality p{font-size:12.5px;margin:0}
  .bio-figure{margin:var(--space-md) 0;border:1px solid var(--line);border-radius:10px;background:var(--bio-bg);padding:var(--space-md);position:relative;overflow:hidden;min-width:0}
  .bio-figure svg{display:block;width:100%;height:auto;max-width:100%}
  .sim-caption{font-size:11px;font-weight:600;color:var(--bio-label);fill:var(--bio-label)}
  .sim-legend{display:flex;flex-wrap:wrap;gap:var(--space-sm) var(--space-md);align-items:center;font-size:11px;color:var(--muted);margin:var(--space-sm) 0 0;padding:var(--space-sm) 0 0;border-top:1px dashed var(--line)}
  .sim-legend-item{display:inline-flex;align-items:center;gap:5px}
  .sim-legend-swatch{width:12px;height:12px;border-radius:3px;flex-shrink:0;border:1px solid rgba(20,27,38,.08)}
  .scale-bar line,.bio-svg .scale-bar line{stroke:var(--ink);stroke-width:1.5}
  .scale-bar text,.bio-svg .scale-bar text{font:600 9px -apple-system,sans-serif;fill:var(--bio-label)}
  .bio-svg .sim-grid-line{stroke:var(--sim-grid);stroke-width:1}
  .bio-diagram-controls{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin:var(--space-sm) 0 0}
  .bio-diagram-controls .p{font-size:11px;min-height:32px;padding:4px 10px}
  .bio-tooltip{position:absolute;top:var(--space-sm);right:var(--space-sm);max-width:220px;padding:6px 10px;border-radius:8px;background:var(--ink);color:#fff;font-size:11px;line-height:1.4;z-index:2;pointer-events:none;box-shadow:var(--shadow)}
  .bio-svg [data-bio-node]{transition:opacity .15s,filter .15s}
  .bio-svg .bio-node-active{filter:drop-shadow(0 0 4px rgba(47,111,237,.35))}
  .bio-figcaption{font-size:11.5px;color:var(--muted);line-height:1.5;margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--line)}
  .bio-figcaption b{color:var(--ink)}
  .bio-svg .dg-box{fill:#fff;stroke:var(--line);stroke-width:1.5}
  .bio-svg .dg-box-gps{fill:#eef3fe;stroke:var(--gps);stroke-width:1.5}
  .bio-svg .dg-box-sls{fill:#e9f7ef;stroke:var(--good);stroke-width:1.5}
  .bio-svg .dg-box-bad{fill:#fdeaea;stroke:var(--bad);stroke-width:1.5}
  .bio-svg .dg-box-warn{fill:#fff4e0;stroke:var(--warn);stroke-width:1.5}
  .bio-svg .dg-box-ink{fill:#f4f6f8;stroke:var(--muted);stroke-width:1.5}
  .bio-svg .dg-t{font:600 12px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;fill:var(--ink)}
  .bio-svg .dg-t-sm{font:500 10.5px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;fill:var(--muted)}
  .bio-svg .dg-t-b{font:800 13px -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;fill:var(--ink)}
  .bio-svg .dg-t-w{fill:#fff}
  .bio-svg .dg-flow{stroke:var(--muted);stroke-width:2;fill:none}
  .bio-svg .dg-flow-gps{stroke:var(--gps);stroke-width:2.2;fill:none}
  .bio-svg .dg-flow-bad{stroke:var(--bad);stroke-width:2.2;fill:none}
  .bio-svg .dg-flow-good{stroke:var(--good);stroke-width:2.2;fill:none}
  .bio-svg .dg-flow-block{stroke:var(--bad);stroke-width:2.5;fill:none;stroke-linecap:round}
  .bio-sources{font-size:12px;line-height:1.6;margin:var(--space-sm) 0 0;padding-left:var(--space-lg)}
  .bio-sources li{margin:var(--space-xs) 0}
  .bio-sources a{color:var(--accent);text-decoration:none}
  .bio-sources a:hover{text-decoration:underline}
  .bio-honesty{margin-top:var(--space-md);padding:var(--space-md);border-radius:10px;border:1px solid #f0d090;background:#fff7ea;font-size:12.5px;line-height:1.55;color:#6b4e00}
  .bio-honesty b{color:#6b4e00}
  .bio-course-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-md);margin:var(--space-md) 0}
  @media(max-width:720px){.bio-course-grid{grid-template-columns:1fr}}
  @media(max-width:640px){
    .bio-figure{padding:var(--space-sm)}
    .bio-svg .dg-t{font-size:11px}
    .bio-svg .dg-t-b{font-size:12px}
    .bio-svg .dg-t-sm{font-size:9px}
    .bio-diagram-controls .p{font-size:10px;padding:4px 8px}
  }
