:root{
  --bg:#0d1117; --bg2:#111722; --bg3:#161d2a; --line:#232b3a; --line2:#2f394b;
  --fg:#c9d3e0; --dim:#7c879c; --dim2:#59637a;
  --code:#8ab4f8; --research:#c58af9; --money:#81c995; --compute:#fdd663;
  --ok:#81c995; --warn:#fdd663; --bad:#f28b82; --hint:#78d9ec;
}
*{box-sizing:border-box}
html,body{height:100%;margin:0}
body{
  background:var(--bg); color:var(--fg);
  font:12px/1.45 ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;
  overflow:hidden;
}
.hidden{display:none !important}
.muted{color:var(--dim)}
.pad{padding:10px}
.pad2{padding:4px 10px}
.good{color:var(--ok)} .bad{color:var(--bad)} .unsure{color:var(--warn)}

#app{display:flex;flex-direction:column;height:100vh}

#topbar{display:flex;align-items:center;gap:16px;padding:6px 12px;background:var(--bg2);
  border-bottom:1px solid var(--line);flex:0 0 auto}
.brand{font-weight:700;letter-spacing:.5px;color:var(--dim);font-size:11px}
.res{display:flex;gap:14px;flex-wrap:wrap;flex:1}
.r{display:flex;flex-direction:column;line-height:1.25;min-width:66px}
.r.wide{min-width:150px}
.rl{color:var(--dim2);font-size:10px;text-transform:uppercase;letter-spacing:.4px}
.rv{font-size:14px;font-weight:600}
#res-code{color:var(--code)} #res-research{color:var(--research)}
#res-money{color:var(--money)} #res-compute{color:var(--compute)}
#best-loss{color:var(--hint)}
.rate{font-size:10px;color:var(--dim2)}
.rate.good{color:var(--ok)} .rate.bad{color:var(--bad)}
#topbar .right{display:flex;align-items:center;gap:10px;color:var(--dim)}

#ticker{flex:0 0 auto;background:#0a0e14;border-bottom:1px solid var(--line);
  padding:4px 14px;overflow:hidden;white-space:nowrap;height:23px}
#ticker-line{color:#6f7b90;font-size:11px;font-style:italic;
  display:inline-block;animation:tkin .8s ease-out}
#ticker-line.ev{color:#8fb4d8;font-style:normal}
@keyframes tkin{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

#viewbar{display:flex;background:#0a0e14;border-bottom:1px solid var(--line);
  overflow-x:auto;flex:0 0 auto}
#viewbar .tab{border-right:1px solid var(--line);font-weight:600}
#viewbar .tab.active{background:#132a3f;color:#dbe7fb;box-shadow:inset 0 -2px 0 var(--code)}
#tabbar{min-height:0}
#tabbar:empty{display:none}

#main{flex:1;display:flex;min-height:0}
#left{width:310px;flex:0 0 auto;border-right:1px solid var(--line);display:flex;flex-direction:column;background:var(--bg2)}
#center{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--bg)}
#right{width:400px;flex:0 0 auto;border-left:1px solid var(--line);display:flex;flex-direction:column;
  background:var(--bg2);overflow-y:auto;overflow-x:hidden}
/* without this the panels compress to fit and the overflow never scrolls */
#right > *{flex:0 0 auto}

.actions{display:flex;gap:8px;padding:10px;border-bottom:1px solid var(--line)}
.bigbtn{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 4px;
  background:var(--bg3);border:1px solid var(--line2);border-radius:5px;color:var(--fg);
  cursor:pointer;font-family:inherit;transition:transform .04s,background .12s}
.bigbtn b{font-size:15px}
.bigbtn span{font-size:10px;color:var(--dim2)}
.bigbtn:hover{background:#1d2634}
.bigbtn:active{transform:translateY(1px)}
.bigbtn.think b{color:var(--research)}
.bigbtn.code b{color:var(--code)}

#upgrades{overflow-y:auto;flex:1 1 auto;min-height:0;padding-bottom:20px}
.up-cat{padding:9px 10px 4px;color:var(--dim2);font-size:10px;text-transform:uppercase;letter-spacing:.8px;
  border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--bg2);z-index:2}
.up{padding:7px 10px;border-bottom:1px solid var(--line);cursor:pointer}
.up:hover{background:var(--bg3)}
.up.locked{cursor:not-allowed}
.up.locked .up-name,.up.locked .up-desc,.up.locked .up-flavor,.up.locked .up-cost{opacity:.45}
.up.ok .up-name{color:var(--fg)}
.up-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.up-name{font-weight:600}
.up-cost{display:flex;gap:6px;font-size:11px;white-space:nowrap}
.c-c{color:var(--code)} .c-c:before{content:"\2328 "}
.c-r{color:var(--research)} .c-r:before{content:"\2726 "}
.c-m{color:var(--money)} .c-m:before{content:"$"}
.up-desc{color:var(--dim);font-size:11px;margin-top:2px}
.up-eff{color:var(--hint);font-size:10.5px;margin-top:3px}
.plottip{position:absolute;pointer-events:none;background:var(--bg3);border:1px solid var(--line2);color:var(--fg);font-size:10.5px;padding:2px 6px;border-radius:3px;z-index:5}
body.plain .up-eff{color:#0000cc}
body.plain .plottip{background:#fff;border-color:#000;border-radius:0}
.up-gate{color:#fdd663;font-size:10.5px;margin-top:3px}
.up.gated .up-cost{opacity:.45}
svg.tree .node.gated rect{fill:#3a2f12;stroke:#fdd663;stroke-opacity:.7}
svg.tree .node.gated text{fill:#e8d9a8}
.lg.gated i{background:#3a2f12;border-color:#fdd663}
.up-flavor{color:var(--dim2);font-size:10.5px;font-style:italic;margin-top:2px}

#tabbar{display:flex;gap:0;background:var(--bg2);border-bottom:1px solid var(--line);
  overflow-x:auto;flex:0 0 auto;scrollbar-width:thin}
.tab{padding:5px 10px;border-right:1px solid var(--line);color:var(--dim);cursor:pointer;
  white-space:nowrap;font-size:11px;display:flex;align-items:center;gap:6px}
.tab:hover{background:var(--bg3);color:var(--fg)}
.tab.active{background:#0b3a2e;color:#d8ffe9}
.tab.st-diverged{color:var(--bad)}
.tab.st-done{color:var(--ok)}
.tab.active.st-diverged{background:#3a1414;color:#ffd6d3}
.tab-x{opacity:.35}
.tab-x:hover{opacity:1;color:var(--bad)}
.tab-add{color:var(--dim2)}

#termbody{flex:1;overflow-y:auto;overflow-x:auto;padding:0;min-height:0;position:relative}
#logpre{margin:0;padding:8px 12px;font:inherit;white-space:pre}
.l{white-space:pre}
.l-out{color:var(--fg)}
.l-log{color:#b8c4d4}
.l-dim{color:var(--dim2)}
.l-cmd{color:#7fd1b9}
.l-ok{color:var(--ok)}
.l-warn{color:var(--warn)}
.l-nan{color:var(--bad)}
.l-hint{color:var(--hint)}
.l-note{color:var(--fg)}
.l-sys{color:#9fb0c9}
.l-era{color:#fdd663;font-weight:700}
.l-best{color:var(--ok);font-weight:600}
.l-buy{color:var(--dim)}
.l-result{color:var(--research)}

#statusline{flex:0 0 auto;display:flex;gap:12px;align-items:center;padding:3px 10px;
  background:#0b3a2e;color:#bfe9d8;font-size:11px}
#statusline .sp{flex:1}
#statusline .dim{color:#7fae9c}

.plotctrl{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:6px 10px;
  border-bottom:1px solid var(--line);background:var(--bg2);height:34px}
.plotctrl label{color:var(--dim2);font-size:10px;text-transform:uppercase;letter-spacing:.5px}
.canvaswrap{position:absolute;top:34px;left:0;right:0;bottom:0}
.plotcanvas{width:100%;height:100%;display:block}
select,.inp{background:var(--bg3);color:var(--fg);border:1px solid var(--line2);border-radius:3px;
  font:inherit;padding:2px 4px}
select.wide{width:100%}
.chk{display:flex;align-items:center;gap:3px;color:var(--dim);font-size:10px !important;
  text-transform:none !important;letter-spacing:0 !important}
.chk.big{font-size:12px !important;padding:4px 0;color:var(--fg)}
.slider{width:110px;accent-color:#8ab4f8}

.panel-h{padding:8px 10px 4px;color:var(--dim2);font-size:10px;text-transform:uppercase;
  letter-spacing:.8px;border-bottom:1px solid var(--line)}
.grp{padding:8px 10px 3px;color:var(--dim2);font-size:10px;letter-spacing:.6px;text-transform:uppercase}
.fld{display:flex;align-items:center;gap:5px;padding:2px 10px}
.fld label{width:96px;flex:0 0 auto;color:var(--dim);font-size:11px}
.fld .inp,.fld select{flex:1;min-width:0}
.mini{background:var(--bg3);color:var(--dim);border:1px solid var(--line2);border-radius:3px;
  font:inherit;font-size:10px;padding:1px 4px;cursor:pointer}
.mini:hover{color:var(--fg);background:#1d2634}
.runstats{margin:8px 10px;padding:6px 8px;background:var(--bg3);border:1px solid var(--line);border-radius:4px}
.st{display:flex;justify-content:space-between;font-size:11px;color:var(--dim)}
.st .sv{color:var(--fg)}
.st.warnst .sv{color:var(--warn)}
.st.devst{color:#ff8bcb}
.st.devst .sv{color:#ff8bcb}
.devst{color:#ff8bcb;font-size:11px;padding:1px 10px}
.btnrow{display:flex;gap:6px;padding:6px 10px}
.btn{background:var(--bg3);color:var(--fg);border:1px solid var(--line2);border-radius:4px;
  font:inherit;padding:5px 9px;cursor:pointer}
.btn:hover:not(:disabled){background:#1d2634;border-color:#3d4a61}
.btn:disabled{opacity:.35;cursor:not-allowed}
.btn.primary{background:#16452f;border-color:#2b6d4c;color:#cdf3df;flex:1}
.btn.primary:hover:not(:disabled){background:#1c573b}
.btn.xs{padding:2px 6px;font-size:10.5px}
.btn.on{background:#16452f;border-color:#2b6d4c;color:#cdf3df}
.btn.danger{background:#3a1414;border-color:#6d2b2b;color:#ffd6d3}
.sweeprow{display:flex;gap:4px;align-items:center;padding:2px 10px}
.sweeprow select{flex:1;min-width:0}
.inp.sm{width:56px} .inp.xs{width:36px}

#runlist{max-height:30vh;overflow-y:auto;overflow-x:hidden;border-bottom:1px solid var(--line);flex:0 0 auto}
.runrow{display:grid;grid-template-columns:14px 1fr 46px 34px 46px 14px 14px;gap:5px;align-items:center;
  padding:3px 8px;cursor:pointer;font-size:11px;border-bottom:1px solid #1a2130}
.runrow:hover{background:var(--bg3)}
.pin{color:var(--dim2);cursor:pointer;font-size:9px}
.pin.on{color:var(--code)}
.rn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rv{text-align:right;color:var(--hint)}
.rp{text-align:right;color:var(--dim2)}
.rbar{height:4px;background:#1a2130;border-radius:2px;overflow:hidden}
.rfill{height:100%;background:var(--code)}
.runrow.st-done .rfill{background:var(--ok)}
.runrow.st-diverged .rfill{background:var(--bad)}
.runrow.st-diverged .rv{color:var(--bad)}
.runrow.st-queued{opacity:.55}
.runhdr{display:flex;align-items:center;gap:10px;padding:6px 12px;
  border-bottom:1px solid var(--line);background:var(--bg2);position:sticky;top:0;z-index:2}
.rh-name{color:#dbe7fb;font-weight:700;font-size:11.5px}
.rh-st{font-size:9.5px;text-transform:uppercase;letter-spacing:.6px;padding:1px 6px;
  border-radius:3px;border:1px solid var(--line2);color:var(--dim2)}
.rh-st.st-running{color:var(--code);border-color:#2d4a72}
.rh-st.st-done{color:var(--ok);border-color:#2b6d4c}
.rh-st.st-diverged{color:var(--bad);border-color:#7a3030}
.rh-prog{color:var(--dim2);font-size:10.5px;margin-right:auto}
.runsbar{display:flex;align-items:center;gap:8px;padding:4px 10px;
  border-bottom:1px solid var(--line);background:#0d1220}
.btn.danger{border-color:#7a3030;color:#e39a9a}
.btn.danger:hover:not(:disabled){background:#3a1a1a;border-color:#a04545;color:#ffc9c9}
.loadcfg{color:var(--dim2);cursor:pointer;text-align:center;font-size:12px}
.loadcfg:hover{color:var(--code)}
.rh-glabel{color:var(--dim2);font-size:10px}
.inp.xs.rh-group{width:88px;font-size:10.5px;padding:1px 5px}
.kill{color:var(--dim2);cursor:pointer;text-align:center}
.kill:hover{color:var(--bad)}

.labhead{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:6px 10px;color:var(--dim)}
.dir{padding:6px 10px;border-bottom:1px solid var(--line)}
.dir.adopted{background:#12261c}
.dir-h{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.dn{font-weight:600}
.de{font-size:10.5px;color:var(--dim)}
.dir-b{color:var(--dim2);font-size:10.5px;font-style:italic}
.dir-c{display:flex;gap:4px;align-items:center;margin-top:4px}
.dir-c .rbar{flex:1}
.fs{padding:2px 10px;color:var(--ok);font-size:11px}

#banner{position:fixed;bottom:34px;right:18px;z-index:40;pointer-events:none;max-width:min(420px,42vw)}
.bn{pointer-events:auto;background:#16452f;border:1px solid #4aa26c;border-radius:6px;padding:12px 16px;
  box-shadow:0 10px 40px rgba(0,0,0,.55);animation:bnin .35s ease-out}
@keyframes bnin{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.bn-n{color:#eafff3;font-weight:700;font-size:14px;letter-spacing:.4px;text-transform:uppercase}
.bn-f{color:#bfe9d8;font-size:11.5px;margin-top:5px;line-height:1.55}
.bn-m{color:#fdd663;font-size:12px;font-weight:700;margin-top:7px;letter-spacing:.5px}
.bn .btn{margin-top:9px}

#devmenu{position:fixed;inset:0;background:rgba(0,0,0,.62);display:flex;align-items:center;justify-content:center;z-index:50}
.devpanel{width:440px;max-height:82vh;overflow-y:auto;background:var(--bg2);border:1px solid #ff8bcb55;
  border-radius:6px;padding:12px}
.devhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;color:#ff8bcb}
#devbody .btn{display:block;width:100%;margin:3px 0;text-align:left}
#devbody .grp{padding-left:0}


/* ---- slider config rows ---- */
.fld2{padding:5px 12px 13px}
.fld2-h{display:flex;align-items:center;gap:8px}
.fld2-h label{flex:1;color:var(--dim);font-size:11px}
.fld2-h .inp.num{width:96px;text-align:right;font-size:11.5px}
.fld2-h select.wide{flex:1.4;min-width:0}
.track{position:relative;height:22px;margin-top:7px}
.ticks{position:absolute;left:0;right:0;top:9px;height:12px;pointer-events:none}
.tick{position:absolute;top:0;width:1px;height:4px;background:#2c3547;transform:translateX(-0.5px)}
.tick.major{height:8px;background:#3d4a61}
.ticklab{position:absolute;top:9px;font-size:8.5px;color:#4d5769;transform:translateX(-50%);white-space:nowrap}
.srange{position:absolute;left:0;top:0;width:100%;margin:0;height:12px;
  -webkit-appearance:none;appearance:none;background:transparent;cursor:pointer}
.srange::-webkit-slider-runnable-track{height:3px;background:#222b3a;border-radius:2px}
.srange::-moz-range-track{height:3px;background:#222b3a;border-radius:2px}
.srange::-webkit-slider-thumb{-webkit-appearance:none;width:11px;height:14px;margin-top:-5px;
  border-radius:2px;background:var(--code);border:1px solid #0d1117;cursor:grab}
.srange::-moz-range-thumb{width:11px;height:14px;border-radius:2px;background:var(--code);
  border:1px solid #0d1117;cursor:grab}
.srange:active::-webkit-slider-thumb{background:#b8d3ff}
.fld.locked{opacity:.62}
.fld.locked .lockval{flex:1;text-align:right;color:var(--dim);font-size:11px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lockmark{font-size:9px;opacity:.5;width:14px;text-align:right}

/* ---- analysis row on idea upgrades ---- */
.anrow{display:flex;gap:5px;align-items:center;margin-top:5px;flex-wrap:wrap}
.anrow .rbar{flex:1;min-width:40px}
.anrow .de{font-size:10px;flex:1;min-width:96px}

/* ---- compendium ---- */
.compend{padding:12px 18px;max-width:820px}
.cp-intro{color:var(--dim);font-size:11.5px;padding-bottom:10px;border-bottom:1px solid var(--line);margin-bottom:4px}
.cp-cat{color:var(--dim2);font-size:10px;text-transform:uppercase;letter-spacing:.9px;margin:16px 0 4px}
.cp{padding:9px 0;border-bottom:1px solid #1a2130}
.cp-n{font-weight:700;color:#d7e2f0;margin-bottom:3px}
.cp-how{color:var(--fg);font-size:11.5px;line-height:1.65;white-space:normal}
.cp-long{color:#b6c2d4;font-size:11.5px;line-height:1.75;white-space:normal;margin-top:7px;
  padding-left:11px;border-left:2px solid var(--line2)}
.cp-more{color:var(--code);font-size:10.5px;cursor:pointer;margin-top:5px;display:inline-block}
.cp-more:hover{text-decoration:underline}
.cp{cursor:pointer}
.cp-cite{color:var(--hint);font-size:10.5px;margin-top:5px;font-style:italic;white-space:normal;opacity:.85}

/* ---- tech tree ---- */
.treewrap{padding:10px;overflow:auto}
.treelegend{display:flex;gap:16px;margin-bottom:8px;color:var(--dim2);font-size:10.5px;align-items:center}
.lg{display:flex;align-items:center;gap:5px}
.lg i{width:11px;height:11px;border-radius:2px;display:inline-block;border:1px solid var(--line2)}
.lg.owned i{background:#1c4d31;border-color:#7ac79a}
.lg.ready i{background:#2c4f7d;border-color:#7aa8e0;border-style:dashed}
.lg.avail i{background:#16273f;border-color:#4a7ec4}
.lg.locked i{background:#131a26;border-color:#2b3444}
svg.tree{display:block}
svg.tree .edge{fill:none;stroke-width:1.3;stroke-opacity:.30}
svg.tree .edge.cat-code{stroke:#4a7ec4} svg.tree .edge.cat-idea{stroke:#9c73d6}
svg.tree .edge.cat-infra{stroke:#d09a3c} svg.tree .edge.cat-org{stroke:#4aa26c}
svg.tree .edge.on{stroke-opacity:.75}
svg.tree .node text{font:10.5px ui-monospace,Menlo,monospace;font-weight:600}
svg.tree .node text.cost{font-size:9px;font-weight:400;fill:#8a95a8}
svg.tree .node rect{fill:#131a26;stroke:#2b3444;stroke-width:1.2}
svg.tree .node text{fill:#59637a}
svg.tree .node.avail rect,svg.tree .node.owned rect,svg.tree .node.ready rect{stroke-width:1.3}
svg.tree .node.cat-code.avail rect{fill:#16273f;stroke:#4a7ec4}
svg.tree .node.cat-idea.avail rect{fill:#2a1c3d;stroke:#9c73d6}
svg.tree .node.cat-infra.avail rect{fill:#3a2a12;stroke:#d09a3c}
svg.tree .node.cat-org.avail rect{fill:#12321f;stroke:#4aa26c}
svg.tree .node.cat-code.owned rect,svg.tree .node.cat-code.ready rect{fill:#1d3a5e;stroke:#7aa8e0}
svg.tree .node.cat-idea.owned rect,svg.tree .node.cat-idea.ready rect{fill:#3d2a59;stroke:#bda0ea}
svg.tree .node.cat-infra.owned rect,svg.tree .node.cat-infra.ready rect{fill:#55401c;stroke:#e8bb6a}
svg.tree .node.cat-org.owned rect,svg.tree .node.cat-org.ready rect{fill:#1c4d31;stroke:#7ac79a}
svg.tree .node.avail text{fill:#95a2b8}
svg.tree .node.owned text,svg.tree .node.ready text{fill:#e6eefb}
svg.tree .node.ready{cursor:pointer}
svg.tree .node.ready rect{stroke-dasharray:4 2;stroke-width:1.8}
svg.tree .node.ready:hover rect{fill:#2c4f7d}
.lg.catlg i{border-radius:2px}
.lg.catlg.cat-code i{background:#16273f;border-color:#4a7ec4}
.lg.catlg.cat-idea i{background:#2a1c3d;border-color:#9c73d6}
.lg.catlg.cat-infra i{background:#3a2a12;border-color:#d09a3c}
.lg.catlg.cat-org i{background:#12321f;border-color:#4aa26c}
.treelegend{flex-wrap:wrap}

/* ---- arxiv feed ---- */
.feedwrap{padding:14px 18px;max-width:900px}
.feed-h{color:var(--dim);font-size:11.5px;padding-bottom:9px;border-bottom:1px solid var(--line);margin-bottom:12px}
.paper{border:1px solid var(--line2);border-radius:5px;padding:11px 13px;margin-bottom:11px;background:var(--bg2)}
.paper.strong{border-color:#3d6b8f}
.paper-t{color:#dbe7fb;font-weight:700;font-size:12.5px;line-height:1.4}
.paper-a{color:var(--dim2);font-size:10.5px;margin-top:3px}
.paper-ab{color:var(--fg);font-size:11.5px;line-height:1.65;margin-top:8px;white-space:normal}
.paper-c{display:flex;gap:7px;align-items:center;margin-top:10px}
.paper-c .cost{color:var(--research);font-size:10.5px;margin-right:auto}
.paper-badge{display:inline-block;background:#1d3a5e;color:#cfe0f8;border-radius:3px;
  padding:1px 6px;font-size:9.5px;margin-left:7px;vertical-align:middle}
.readbar{margin-top:9px}
.readout{border-radius:5px;padding:10px 13px;margin-bottom:12px;font-size:11.5px;line-height:1.6}
.readout.ok{background:#12261c;border:1px solid #2b6d4c;color:#cdf3df}
.readout.bad{background:#2a1a12;border:1px solid #8a5a3a;color:#f0cdb4}

/* ---- results table ---- */
.tablewrap{padding:8px;overflow:auto;height:100%}
.restable{border-collapse:collapse;font-size:11px;width:100%}
.restable th{position:sticky;top:0;background:var(--bg2);color:var(--dim2);text-align:left;
  padding:5px 9px;border-bottom:1px solid var(--line2);cursor:pointer;white-space:nowrap;
  font-weight:600;text-transform:uppercase;font-size:9.5px;letter-spacing:.5px}
.restable th:hover{color:var(--fg)}
.restable th.sorted{color:var(--code)}
.restable td{padding:3px 9px;border-bottom:1px solid #1a2130;white-space:nowrap}
.restable td.num{text-align:right}
.restable td.loss{color:var(--hint)}
.restable tr:hover td{background:var(--bg3);cursor:pointer}
.restable tr.bestrow td{background:#12261c}
.restable tr.bestrow td.loss{color:var(--ok);font-weight:700}

/* ---- narrower windows: shrink the side panels, then allow a horizontal scroll ---- */
@media (max-width:1500px){ #left{width:280px} #right{width:360px} }
@media (max-width:1280px){
  #left{width:245px} #right{width:330px}
  .up-gate{color:#fdd663;font-size:10.5px;margin-top:3px}
.up.gated .up-cost{opacity:.45}
svg.tree .node.gated rect{fill:#3a2f12;stroke:#fdd663;stroke-opacity:.7}
svg.tree .node.gated text{fill:#e8d9a8}
.lg.gated i{background:#3a2f12;border-color:#fdd663}
.up-flavor{display:none}
  .ticklab{font-size:8px}
}
@media (max-width:1080px){
  #main{overflow-x:auto}
  #left{width:235px;flex:0 0 auto} #center{min-width:340px} #right{width:310px}
}


/* ============ conference / OpenReview: black on white, on purpose ============ */
#confmodal{position:fixed;inset:0;background:rgba(4,7,11,.86);z-index:60;
  display:flex;align-items:center;justify-content:center;padding:22px}
.confpanel{width:min(880px,96vw);max-height:92vh;display:flex;flex-direction:column;
  background:#fff;border-radius:4px;box-shadow:0 24px 80px rgba(0,0,0,.7);overflow:hidden}
.conf-hd{display:flex;align-items:center;gap:14px;padding:10px 20px;background:#f7f7f7;
  border-bottom:1px solid #d8d8d8;flex:0 0 auto}
.conf-name{color:#b31b1b;font-weight:700;font-size:14px;
  font-family:Georgia,"Times New Roman",serif;letter-spacing:.2px}
.conf-count{color:#666;font-size:11px}
.conf-dots{margin-left:auto;display:flex;gap:5px}
.conf-dots .dot{width:22px;height:22px;border-radius:3px;border:1px solid #c4c4c4;background:#fff;
  color:#555;font-size:10.5px;display:flex;align-items:center;justify-content:center;cursor:pointer}
.conf-dots .dot:hover{border-color:#888}
.conf-dots .dot.cur{outline:2px solid #b31b1b;outline-offset:1px}
.conf-dots .dot.keep{background:#e3f3e6;border-color:#5da06d;color:#26623a}
.conf-dots .dot.toss{background:#f6e4e4;border-color:#b06a6a;color:#8a2b2b}
.conf-body{overflow-y:auto;min-height:0;flex:1 1 auto;padding:22px 30px;background:#fff;color:#1a1a1a;
  font-family:Georgia,"Times New Roman",serif;line-height:1.62;flex:1 1 auto}
.or-title{font-size:21px;font-weight:700;line-height:1.3;color:#111}
.or-auth{font-size:13px;color:#333;margin-top:7px;font-style:italic}
.or-meta{font-size:11.5px;color:#777;margin-top:3px;font-family:ui-monospace,Menlo,monospace}
.or-h{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.1px;color:#b31b1b;
  margin-top:22px;padding-bottom:5px;border-bottom:1px solid #e2e2e2;font-family:ui-monospace,Menlo,monospace}
.or-abs{font-size:14px;margin-top:11px;color:#222;text-align:justify}
.or-fig{margin:20px auto;max-width:430px;border:1px solid #e0e0e0;padding:9px;background:#fcfcfc}
.pfig{width:100%;height:auto;display:block}
.or-rev{border-left:3px solid #ddd;padding:9px 0 9px 14px;margin-top:14px}
.or-rev-h{display:flex;align-items:baseline;gap:12px}
.or-rev-n{font-weight:700;font-size:12.5px;color:#333;font-family:ui-monospace,Menlo,monospace}
.or-score{font-size:11px;font-family:ui-monospace,Menlo,monospace;padding:1px 7px;border-radius:9px}
.or-score.shi{background:#e3f3e6;color:#25693c}
.or-score.smid{background:#fdf3dc;color:#8a6314}
.or-score.slo{background:#f8e3e3;color:#992222}
.or-rev-t{font-size:13.5px;color:#2b2b2b;margin-top:5px}
.conf-ft{display:flex;gap:9px;align-items:center;padding:12px 20px;background:#f7f7f7;
  border-top:1px solid #d8d8d8;flex:0 0 auto;flex-wrap:wrap}
.conf-ft .btn{background:#fff;border:1px solid #c4c4c4;color:#333}
.conf-ft .btn:hover:not(:disabled){background:#efefef;border-color:#999}
.conf-ft .btn.keep.on{background:#2f7d4a;border-color:#2f7d4a;color:#fff}
.conf-ft .btn.toss.on{background:#9e3535;border-color:#9e3535;color:#fff}
.conf-ft .btn.primary{background:#b31b1b;border-color:#b31b1b;color:#fff;flex:0 0 auto;margin-left:auto}
.conf-ft .btn.primary:disabled{background:#ddd;border-color:#ccc;color:#888}

#confcall{float:right}
.confcall-btn{background:#b31b1b;border:none;border-radius:3px;color:#fff;font:inherit;
  font-size:10.5px;padding:2px 10px;cursor:pointer;display:inline-flex;gap:8px;align-items:center;
  animation:pulse 2.4s ease-in-out infinite}
.confcall-btn b{font-weight:700}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(179,27,27,.6)}50%{box-shadow:0 0 0 5px rgba(179,27,27,0)}}

/* ---- technique toggles ---- */
.tgrow{display:flex;align-items:center;gap:8px;padding:2px 12px}
.tglab{flex:1;font-size:11.5px !important;color:var(--fg) !important;text-transform:none !important}
.tgpaper{color:var(--hint);font-size:10px;cursor:pointer;border:1px solid var(--line2);
  border-radius:3px;padding:0 5px}
.tgpaper:hover{background:var(--bg3);color:#fff}

/* ============ arxiv listing: the actual arxiv look ============ */
.feedwrap{background:#fff;color:#1a1a1a;font-family:Georgia,"Times New Roman",serif;
  padding:0;max-width:none;min-height:100%}
.arx-top{background:#b31b1b;color:#fff;padding:9px 22px;display:flex;align-items:baseline;gap:14px}
.arx-logo{font-size:19px;font-weight:700;letter-spacing:-.5px}
.arx-sub{font-size:11px;opacity:.85;font-family:ui-monospace,Menlo,monospace}
.feed-h{color:#444;font-size:12.5px;padding:14px 22px;border-bottom:1px solid #e0e0e0;
  margin:0;background:#fafafa;line-height:1.6}
.paper{border:none;border-bottom:1px solid #e6e6e6;border-radius:0;padding:16px 22px;
  margin:0;background:#fff}
.paper:hover{background:#fcfbf7}
.paper.strong{background:#fdf8ef}
.paper-t{color:#b31b1b;font-weight:400;font-size:15px;line-height:1.35;font-family:Georgia,serif}
.paper-a{color:#333;font-size:12px;margin-top:4px;font-style:italic}
.paper-ab{color:#222;font-size:13px;line-height:1.6;margin-top:8px;text-align:justify}
.paper-c{display:flex;gap:8px;align-items:center;margin-top:11px}
.paper-c .cost{color:#777;font-size:11px;font-family:ui-monospace,Menlo,monospace;margin-right:auto}
.paper-c .btn{background:#fff;border:1px solid #bbb;color:#333;font-size:11px}
.paper-c .btn:hover:not(:disabled){background:#f0f0f0}
.paper-badge{background:#b31b1b;color:#fff;font-family:ui-monospace,Menlo,monospace}
.readout{border-radius:3px;margin:14px 22px;font-family:ui-monospace,Menlo,monospace}
.readout.ok{background:#e8f5ec;border:1px solid #7fbc93;color:#1f5c33}
.readout.bad{background:#fbeaea;border:1px solid #d09a9a;color:#8a2b2b}
.feedwrap .muted{color:#888}
.feedwrap .rbar{background:#e4e4e4}
.feedwrap .rfill{background:#b31b1b}

.arx-conf{border-bottom:1px solid #e6e6e6;padding:12px 22px}
.arx-conf-h{color:#b31b1b;font-weight:700;font-size:13px;margin-bottom:7px;font-family:Georgia,serif}
.arx-row{display:flex;gap:10px;align-items:baseline;padding:3px 0}
.arx-dec{font-family:ui-monospace,Menlo,monospace;font-size:9.5px;text-transform:uppercase;
  letter-spacing:.6px;width:52px;flex:0 0 auto}
.arx-row.kept .arx-dec{color:#25693c}
.arx-row.tossed .arx-dec{color:#992222}
.arx-t{color:#1a4c8b;font-size:12.5px;cursor:pointer;flex:1}
.arx-t:hover{text-decoration:underline}
.arx-impl{font-family:ui-monospace,Menlo,monospace;font-size:9.5px;color:#25693c;
  border:1px solid #7fbc93;border-radius:3px;padding:0 5px}
.arx-todo{font-family:ui-monospace,Menlo,monospace;font-size:9.5px;color:#8a6314;
  border:1px solid #d8bd76;border-radius:3px;padding:0 5px}

.nn{background:#e8e8e0;color:#111;min-height:100%;padding:0 0 20px;
  font-family:Verdana,Geneva,sans-serif}
.nn-hd{background:#36609a;padding:8px 18px;display:flex;align-items:baseline;gap:9px}
.nn-logo{color:#fff;font-weight:700;font-size:17px;letter-spacing:-0.5px}
.nn-sub{color:#c3d4ec;font-size:11px}
.nn-note{padding:8px 18px;color:#555;font-size:10.5px;font-style:italic;
  background:#dcdcd2;border-bottom:1px solid #bbb}
.nn-t{border-bottom:1px solid #c8c8bd;background:#f2f2ea}
.nn-t.open{background:#fff}
.nn-trow{display:flex;gap:10px;align-items:baseline;padding:7px 18px;cursor:pointer}
.nn-trow:hover{background:#e4e4d8}
.nn-votes{color:#666;font-size:10px;min-width:22px;text-align:right}
.nn-title{color:#1a3f7a;font-size:12.5px;font-weight:700;flex:1}
.nn-t.open .nn-title{color:#7a1a1a}
.nn-auth{color:#777;font-size:10px}
.nn-body{padding:4px 18px 12px 50px;font-size:11.5px;line-height:1.6;color:#222;white-space:normal}
.nn-r{display:flex;gap:10px;padding:6px 18px 6px 50px;border-top:1px dotted #ccc}
.nn-s{color:#999;font-size:9.5px;min-width:34px;padding-top:2px}
.nn-rw{flex:1}
.nn-ra{color:#3a6ea5;font-size:10.5px;font-weight:700;display:block}
.nn-rt{color:#222;font-size:11.5px;line-height:1.6;white-space:normal;display:block}

/* ============ left panel: issue tracker ============ */
#left{background:#0f141c}
.up-cat{background:#0f141c;color:#8fa0b8;font-weight:700;border-bottom:1px solid #1e2735;
  display:flex;align-items:center;gap:7px}
.up{border-bottom:1px solid #18202c;padding-left:12px;position:relative}
.up:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#2a3446}
.up[data-up]:before{background:var(--code)}
.up-head{gap:10px}
.up-name{font-weight:600;font-size:11.5px}
.up-cost{font-family:ui-monospace,Menlo,monospace;background:#141c28;border:1px solid #232e3e;
  border-radius:3px;padding:1px 6px}
.up.ok:before{background:#4aa26c}
.up.locked:before{background:#3a4354}
.up.gated:before{background:#fdd663}

/* ============ journal: a plain text editor ============ */
#termbody[data-mode="journal"]{background:#f7f7f2}
#termbody[data-mode="journal"] #logpre{color:#1e1e1e;padding:10px 14px}
#termbody[data-mode="journal"] .l{color:#22303f}
#termbody[data-mode="journal"] .l-era{color:#a05a00;font-weight:700}
#termbody[data-mode="journal"] .l-best{color:#1a7a3a}
#termbody[data-mode="journal"] .l-warn{color:#9a6b00}
#termbody[data-mode="journal"] .l-result{color:#6b3fa0}
#termbody[data-mode="journal"] .l-sys{color:#555}
#termbody[data-mode="journal"] .l-note{color:#333}
#termbody[data-mode="journal"] .l-buy{color:#777}

::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-thumb{background:#2a3340;border-radius:5px}
::-webkit-scrollbar-track{background:transparent}

/* ============================================================================
 * PAPERCLIP SKIN — black on white, one typeface, no ornament.
 * Everything is a token override plus a short list of components that were
 * carrying dark-mode assumptions (gradients, glows, rounded chrome).
 * The diegetic surfaces (arXiv, OpenReview, NetNet) are already light and are
 * left almost untouched — they are meant to look like the real thing.
 * ==========================================================================*/
body.plain{
  --bg:#ffffff; --bg2:#ffffff; --bg3:#f2f2f2; --line:#cccccc; --line2:#999999;
  --fg:#000000; --dim:#555555; --dim2:#777777;
  --code:#0000cc; --research:#7a007a; --money:#006600; --compute:#804000;
  --ok:#006600; --warn:#8a6d00; --bad:#bb0000; --hint:#333333;
  font-family:Georgia,"Times New Roman",Times,serif;
  font-size:13px;
}
body.plain .mono, body.plain pre, body.plain #logpre, body.plain .restable,
body.plain .inp, body.plain .srange, body.plain .ticklab, body.plain .runrow,
body.plain .rv, body.plain .up-cost, body.plain select, body.plain #statusline,
body.plain .runstats, body.plain .st, body.plain .tick{
  font-family:ui-monospace,"Courier New",Courier,monospace;
}
body.plain #topbar,body.plain #ticker,body.plain #viewbar,body.plain #tabbar,
body.plain #left,body.plain #right,body.plain #runlist,body.plain #statusline,
body.plain .runsbar,body.plain .runhdr,body.plain .plotctrl,body.plain .tblctrl{
  background:#fff;
}
body.plain .up{border:0;border-bottom:1px solid var(--line);border-radius:0;background:#fff;padding:8px 12px}
body.plain .up.ok:hover{background:#f2f2f2}
body.plain .up.locked .up-name,body.plain .up.locked .up-desc,body.plain .up.locked .up-flavor,body.plain .up.locked .up-cost{opacity:.45}
body.plain .up-name{font-weight:700}
body.plain .up-flavor{font-style:italic;color:var(--dim)}
body.plain .up-cat{background:#fff;border-bottom:1px solid #000;color:#000;font-weight:700;
  letter-spacing:0;text-transform:none;font-size:12px;padding:10px 12px 3px}
body.plain .btn{border-radius:0;background:#fff;border:1px solid #000;color:#000;
  font-family:Georgia,Times,serif}
body.plain .btn:hover:not(:disabled){background:#000;color:#fff}
body.plain .btn.primary{background:#000;color:#fff;border-color:#000}
body.plain .btn.primary:hover:not(:disabled){background:#333}
body.plain .btn:disabled{opacity:.35}
body.plain .bigbtn{border-radius:0;background:#fff;border:1px solid #000;box-shadow:none}
body.plain .bigbtn:hover{background:#f2f2f2}
body.plain .bigbtn:active{background:#e6e6e6}
body.plain .bigbtn .k{color:#000;font-weight:700}
body.plain .tab{border-radius:0;background:#fff;border:0;border-right:1px solid var(--line);color:var(--dim)}
body.plain .tab.active{background:#000;color:#fff;box-shadow:none}
body.plain #viewbar .tab.active{background:#000;color:#fff;box-shadow:none}
body.plain .l-log{color:#000}
body.plain .l-hint{color:#7a007a;font-style:italic}
body.plain .l-nan{color:#bb0000}
body.plain .l-ok{color:#006600}
body.plain .l-cmd{color:#000;font-weight:700}
body.plain .l-dim{color:var(--dim)}
body.plain .srange::-webkit-slider-runnable-track{background:#ddd}
body.plain .srange::-moz-range-track{background:#ddd}
body.plain .srange::-webkit-slider-thumb{background:#000;border:0;border-radius:0}
body.plain .srange::-moz-range-thumb{background:#000;border:0;border-radius:0}
body.plain .tick{background:#bbb} body.plain .tick.major{background:#666}
body.plain .inp,body.plain select{background:#fff;border:1px solid #999;border-radius:0;color:#000}
body.plain .rbar{background:#e0e0e0;border-radius:0}
body.plain .rfill{background:#000;border-radius:0}
body.plain .runrow:hover{background:#f2f2f2}
body.plain .restable tr.bestrow td{background:#eaeaea}
body.plain .restable tr.bestrow td.loss{color:#006600}
body.plain .banner{background:#000;color:#fff;border-radius:0;border:0}
body.plain #ticker-line{color:#555}
body.plain .mstoast .ms-h{color:#000}
body.plain svg.tree .node rect{fill:#fff;stroke:#999}
body.plain svg.tree .node text{fill:#333}
body.plain svg.tree .node.owned rect{fill:#000;stroke:#000}
body.plain svg.tree .node.owned text{fill:#fff}
body.plain svg.tree .node.ready rect{fill:#fff;stroke:#000;stroke-width:2}
body.plain svg.tree .node.ready text{fill:#000}
body.plain svg.tree .node.locked rect{fill:#f2f2f2;stroke:#ddd}
body.plain svg.tree .node.locked text{fill:#aaa}
body.plain svg.tree .edge{stroke:#ccc} body.plain svg.tree .edge.on{stroke:#000}
body.plain .cp-n{color:#000} body.plain .cp-long{border-left:2px solid #000;color:#222}
body.plain .cp-cite{color:#555}
#skin{background:none;border:1px solid var(--line2);color:var(--dim);cursor:pointer;
  font:inherit;font-size:10px;padding:2px 7px;border-radius:3px}
#skin:hover{color:var(--fg);border-color:var(--fg)}
body.plain #skin{border-radius:0;border-color:#000;color:#000}
/* leftovers from the dark chrome that the token swap alone could not reach */
body.plain .up-cost{background:transparent;border:0;padding:0;color:#000}
body.plain .c-c{color:#0000cc} body.plain .c-r{color:#7a007a} body.plain .c-m{color:#006600}
body.plain #statusline{background:#fff;border-top:1px solid #ccc;color:#555}
body.plain #statusline .dim{color:#777}
body.plain .res{gap:10px 18px}
body.plain .rl{font-size:9.5px;letter-spacing:.3px;color:#777}
body.plain .rv{font-size:13px}
body.plain .brand{color:#000;font-weight:700;font-size:11px}
body.plain #topbar{border-bottom:1px solid #000;padding:5px 12px}
body.plain .runhdr{border-bottom:1px solid #ccc}
body.plain .rh-st{border-color:#999}
body.plain .rh-st.st-running{color:#0000cc;border-color:#0000cc}
body.plain .rh-st.st-done{color:#006600;border-color:#006600}
body.plain .runrow.st-running .rn{color:#0000cc}
body.plain .runrow.st-done .rn{color:#006600}
body.plain .runrow.st-diverged .rn{color:#bb0000}
body.plain .grp{color:#000;border-bottom:1px solid #ccc;background:#fff;font-weight:700;
  text-transform:none;letter-spacing:0;font-size:11.5px}
body.plain .panel-h{color:#000;background:#fff;border-bottom:1px solid #000;font-weight:700;
  text-transform:none;letter-spacing:0}
body.plain .runstats{background:#f7f7f7;border:1px solid #ddd}
body.plain .st .sk{color:#666} body.plain .st .sv{color:#000}
body.plain .warnst .sv{color:#bb0000}
body.plain .lockval{color:#666} body.plain .fld.locked{opacity:.5}
body.plain .pin.on{color:#000} body.plain .pin{color:#aaa}
body.plain .kill,body.plain .loadcfg{color:#999}
body.plain .kill:hover{color:#bb0000} body.plain .loadcfg:hover{color:#0000cc}
body.plain .up-gate{color:#8a6d00;opacity:1}
body.plain .gatemsg{color:#8a6d00}
body.plain .tab-add{color:#0000cc}
body.plain .fig,body.plain .canvaswrap{background:#fff}

/* ============ the opening ============ */
#intro{position:fixed;inset:0;z-index:200;background:#fff;color:#000;
  display:flex;align-items:center;justify-content:center;padding:32px;
  font-family:Georgia,"Times New Roman",Times,serif}
.intro-inner{max-width:640px;width:100%}
#intro-text p{font-size:19px;line-height:1.72;margin:0 0 1.35em;opacity:0;
  animation:introIn .9s ease-out forwards}
#intro-text p.final{font-style:italic;color:#333}
@keyframes introIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
#intro-go{margin-top:14px;font-family:Georgia,Times,serif;font-size:16px;
  background:#000;color:#fff;border:1px solid #000;padding:8px 30px;cursor:pointer;
  opacity:0;animation:introIn .7s ease-out forwards}
#intro-go:hover{background:#333}
#intro-skip{margin-top:22px;font-size:11px;color:#999;font-family:ui-monospace,monospace;
  opacity:0;animation:introIn 1s ease-out forwards}
@media (prefers-reduced-motion:reduce){
  #intro-text p,#intro-go,#intro-skip{animation:none;opacity:1}
}
.inp.num.clamped{outline:2px solid var(--bad);background:#fff0f0}
body.plain .inp.num.clamped{background:#ffecec;outline-color:#bb0000}
.alloc{padding:6px 12px 12px}
.alloc-lab{display:flex;font-size:10.5px;color:var(--dim);margin-bottom:6px}
.alloc-lab .right{margin-left:auto}
.srange.wide{position:relative;width:100%;height:14px}
.labnote{padding:6px 12px 10px;color:var(--warn);font-size:11px;line-height:1.5}
.staffn{min-width:16px;text-align:center;font-family:ui-monospace,monospace;font-size:11px}
.dir.shipped{opacity:.72}
.dir.shipped .dn{text-decoration:line-through;text-decoration-thickness:1px}
body.plain .labnote{color:#8a6d00}
body.plain .dir.shipped{background:#f4f4f4}
.plotlegend{display:flex;flex-wrap:wrap;gap:5px 12px;padding:4px 14px 10px}
.plg{display:flex;align-items:center;gap:5px;font-size:10.5px;color:var(--dim);
  cursor:default;font-family:ui-monospace,Menlo,monospace}
.plg:hover{color:var(--fg)}
.plg i{width:14px;height:3px;border-radius:2px;display:inline-block;flex:0 0 auto}

/* tree, restyled for paper */
body.plain svg.tree .node rect{fill:#fff;stroke:#bbb}
body.plain svg.tree .node text{fill:#444}
body.plain svg.tree .node.owned rect{fill:#e8e8e8;stroke:#000;stroke-width:1.5}
body.plain svg.tree .node.owned text{fill:#000;font-weight:700}
body.plain svg.tree .node.ready rect{fill:#fff;stroke:#0000cc;stroke-width:2}
body.plain svg.tree .node.ready text{fill:#0000cc}
body.plain svg.tree .node.avail rect{fill:#fff;stroke:#888;stroke-dasharray:3 2}
body.plain svg.tree .node.avail text{fill:#666}
body.plain svg.tree .node.locked rect{fill:#fafafa;stroke:#e0e0e0}
body.plain svg.tree .node.locked text{fill:#bbb}
body.plain svg.tree .edge{stroke:#ddd}
body.plain svg.tree .edge.on{stroke:#000;stroke-width:1.4}
body.plain .lg.owned i{background:#e8e8e8;border-color:#000}
body.plain .lg.ready i{background:#fff;border-color:#0000cc}
body.plain .lg.avail i{background:#fff;border-color:#888}
body.plain .lg.locked i{background:#fafafa;border-color:#e0e0e0}
/* a zero tick sits on top of its neighbour on log sliders that allow 0 */
.ticklab{max-width:34px;overflow:hidden;text-overflow:clip}
.ticklab.zero{transform:translateX(0)}
.exh{font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--warn);
  border:1px solid currentColor;border-radius:3px;padding:0 5px;margin-left:6px}
body.plain .exh{color:#8a6d00}

/* ================= the lab, rebuilt (era 3+) ================= */
.lab2wrap{padding:6px 14px 40px;max-width:760px}
.betcard{border:1px solid var(--line);background:var(--bg3);border-radius:3px;
  padding:8px 10px;margin:8px 0}
.betcard.train{border-color:var(--line2)}
.betcard.offer{background:var(--bg2)}
.bet-row{display:flex;justify-content:space-between;align-items:baseline}
.bet-n{font-weight:700;color:var(--fg)}
.bet-r{color:var(--hint);font-size:11px}
.bet-b{color:var(--dim);font-size:11px;margin-top:2px}
.bet-hint{color:var(--dim2);font-size:11px;font-style:italic;margin-top:3px}
.betbar{height:6px;background:var(--bg);border:1px solid var(--line);border-radius:3px;
  overflow:hidden;margin-top:6px}
.betbar i{display:block;height:100%;background:var(--research)}
.betbar.trainbar i{background:var(--compute)}
.bet-actions{display:flex;gap:6px;align-items:center;margin-top:7px}
.bet-actions .right{margin-left:auto}
.crew{color:var(--dim);font-size:11px}
.betrecord{margin:4px 0}
.recline{font-size:11px;color:var(--dim);padding:2px 0}
.recline.done{color:var(--ok)}
.recline.dead{color:var(--dim2)}
.staffrow{display:flex;justify-content:space-between;align-items:center;
  padding:6px 10px;border-bottom:1px solid var(--line);font-size:11px}
.staff-n{font-weight:700;color:var(--fg)}
.staff-a{color:var(--dim2);font-size:10px}
.staff-sk{text-align:right;color:var(--dim);font-size:10px;line-height:1.5}
.labbooks{padding:4px 10px 10px}
.labbooks .st{display:flex;justify-content:space-between;font-size:11px;padding:2px 0}
.labbooks .warnst .sv{color:var(--bad)}
body.plain .betcard{background:#fff;border:1px solid #000;border-radius:0}
body.plain .betcard.offer{background:#fafafa}
body.plain .betbar{border-color:#000;background:#fff}
body.plain .bet-hint{color:#555}


/* ================= the descent ================= */
#descent{border-bottom:1px solid var(--line)}
#descent-cv{display:block;width:100%;height:170px;background:var(--bg2)}
body.plain #descent-cv{background:#fff}

/* ================= the org (era 3+) ================= */
#risk-wrap .rv{color:var(--bad)}
#risk-wrap.calm .rv{color:var(--fg)}
.orgwrap{padding:6px 14px 40px;max-width:820px}
.orgchart{display:block;width:100%;height:auto;margin:6px 0 4px}
.orgchart .node rect{fill:var(--bg3);stroke:var(--line2);stroke-width:1}
.orgchart .node.dial rect{fill:#182a3f;stroke:var(--code)}
.orgchart .node.risk rect{stroke:var(--bad)}
.orgchart .node.win rect{stroke:var(--ok)}
.orgchart .node text{fill:var(--fg);font-size:10.5px;font-family:inherit}
.orgchart .node text.v{fill:var(--dim);font-size:9.5px;font-family:ui-monospace,monospace}
.orgchart .node.risk text.v{fill:var(--bad)}
.orgchart .edge{fill:none;stroke:var(--dim2);stroke-width:1.1}
.orgchart .edge.neg{stroke:var(--bad)}
.orgchart .edge.back{stroke-dasharray:4 3}
.orgchart .head{fill:var(--dim2)}
.orgchart .head.neg{fill:var(--bad)}
.orgchart .cap{fill:var(--dim2);font-size:9px;font-style:italic}
.orgplot{display:block;width:100%;height:110px;margin:4px 0 6px;background:var(--bg2);border:1px solid var(--line)}
.orgplot.risk{border-color:var(--bad)}
body.plain .orgplot.risk{border-color:#bb0000}
.orglog{font-family:ui-monospace,"Courier New",monospace;font-size:11px;line-height:1.55;white-space:pre-wrap;
  color:var(--fg);padding:6px 0}
.orglog .ol{padding:0 0 1px}
.orglog .ol-warn{color:var(--warn)} .orglog .ol-nan{color:var(--bad)} .orglog .ol-best{color:var(--ok);font-weight:700}
.orglog .ol-note{color:var(--research);font-style:italic}
.orglog .ol-t{color:var(--dim2);margin-right:8px}
.dialdesc{color:var(--dim2);font-size:10.5px;font-style:italic;padding:0 12px 6px}
.ending .final{font-style:italic}
body.plain .orgchart .node rect{fill:#fff;stroke:#000}
body.plain .orgchart .node.dial rect{fill:#eef1ff;stroke:#0000cc}
body.plain .orgchart .node.risk rect{stroke:#bb0000;stroke-width:1.5}
body.plain .orgchart .node.win rect{stroke:#006600;stroke-width:1.5}
body.plain .orgchart .node text{fill:#000}
body.plain .orgchart .node text.v{fill:#444}
body.plain .orgchart .node.risk text.v{fill:#bb0000}
body.plain .orgchart .edge{stroke:#555} body.plain .orgchart .head{fill:#555}
body.plain .orgchart .edge.neg{stroke:#bb0000} body.plain .orgchart .head.neg{fill:#bb0000}
body.plain .orgchart .cap{fill:#777}
body.plain .orgplot{background:#fff;border-color:#ccc}
body.plain .orglog .ol-warn{color:#8a6d00} body.plain .orglog .ol-nan{color:#bb0000}
body.plain .orglog .ol-best{color:#006600} body.plain .orglog .ol-note{color:#7a007a}
