/* MANTIS holders — dark sheet.
   Ink on black, one vermillion accent, mantis green for "live",
   cold cyan for data. Hairlines, no shadows, no gradients except the
   hero scrim. Inter + IBM Plex Mono. */

:root{
  --bg:#0b0e14; --bg-2:#0f131b; --panel:#131722; --panel-2:#1a1f2b;
  --ink:#d1d4dc; --ink-2:#9598a1; --ink-3:#5d606b;
  --hair:rgba(209,212,220,.10); --hair-2:rgba(209,212,220,.2);
  --accent:#2962ff; --accent-2:#4d7cff; --green:#26a69a; --red:#ef5350; --cyan:#22d3ee; --amber:#f5a623; --blue-soft:#5b8def;
  --sans:"Inter","Helvetica Neue",Helvetica,Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --max:80rem; --gutter:clamp(1.1rem,4vw,3rem); --nav-h:3.6rem;
  --label:.72rem; --small:.86rem; --body:.98rem;
  --h1:clamp(2.3rem,6vw,4.6rem); --h2:clamp(1.6rem,3.2vw,2.5rem);
  --ease:cubic-bezier(.2,.8,.2,1); --fast:160ms;
}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--bg);color-scheme:dark;scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:clip}
body{background:var(--bg);color:var(--ink);font:400 var(--body)/1.6 var(--sans);
  -webkit-font-smoothing:antialiased;min-height:100vh;overflow-x:clip;
  padding:var(--nav-h) 0 0}
img,svg{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
input,select,textarea{font:inherit;color:inherit}
::selection{background:var(--accent);color:#fff}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.acc{color:var(--accent-2)}.grn{color:var(--green)}.red{color:var(--red)}.cyn{color:var(--cyan)}.mut{color:var(--ink-2)}.dim{color:var(--ink-3)}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.lbl{font:600 var(--label)/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}
.hid{display:none!important}

/* ------------------------------------------------------------- nav */
nav.top{position:fixed;top:0;left:0;right:0;z-index:50;height:var(--nav-h);
  display:flex;align-items:center;gap:1.4rem;padding:0 var(--gutter);
  background:rgba(11,14,20,.86);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--hair)}
nav.top .wm{display:flex;align-items:center;gap:.7rem;flex:0 0 auto}
nav.top .wm img{height:1.9rem;width:auto}
nav.top .wm b{font:800 var(--label)/1 var(--sans);letter-spacing:.18em;text-transform:uppercase}
nav.top .wm b i{font-style:normal;color:var(--ink-3);margin:0 .35em}
nav.top .its{display:flex;gap:1.6rem;flex:1 1 auto;justify-content:center}
nav.top .its a{font:600 var(--label)/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);
  padding:.5rem 0;border-bottom:2px solid transparent;transition:color var(--fast) var(--ease)}
nav.top .its a:hover{color:var(--ink)}
nav.top .its a.on{color:#fff;border-color:var(--accent-2)}
nav.top .who{flex:0 0 auto;display:flex;align-items:center;gap:.6rem}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.6rem;padding:0 1.1rem;
  border:1px solid var(--hair-2);border-radius:2px;font:600 var(--small)/1 var(--sans);letter-spacing:.02em;
  color:var(--ink);transition:border-color var(--fast) var(--ease),background var(--fast) var(--ease),color var(--fast) var(--ease),transform var(--fast) var(--ease);white-space:nowrap}
.btn:hover{border-color:var(--ink);transform:translateY(-1px)}
.btn.pri{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.pri:hover{background:var(--accent-2);border-color:var(--accent-2)}
.btn.ghost{border-color:transparent;color:var(--ink-2)}
.btn.ghost:hover{color:var(--ink)}
.btn.sm{min-height:2.1rem;padding:0 .8rem;font-size:.8rem}
.btn span.shrt{display:none}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}
.chip{display:inline-flex;align-items:center;gap:.55rem;height:2.4rem;padding:0 .9rem;border:1px solid var(--hair-2);border-radius:2px;
  font:500 .8rem/1 var(--mono);color:var(--ink)}
.chip .dot{width:.5rem;height:.5rem;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px rgba(38,166,154,.2)}
.chip .a{color:var(--ink-2)}
nav.top .hb{display:none;width:2.4rem;height:2.4rem;flex-direction:column;align-items:center;justify-content:center;gap:.3rem}
nav.top .hb span{display:block;width:1.2rem;height:2px;background:var(--ink)}
@media (max-width:820px){
  .facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  nav.top .its{position:fixed;top:var(--nav-h);left:0;right:0;flex-direction:column;gap:0;background:var(--bg-2);
    border-bottom:1px solid var(--hair);display:none;padding:.5rem 0}
  nav.top.open .its{display:flex}
  nav.top .its a{padding:1rem var(--gutter);border-bottom:1px solid var(--hair)}
  nav.top .hb{display:flex;margin-left:auto}
  nav.top .who .btn span.long{display:none}
  nav.top .who .btn span.shrt{display:inline}
  nav.top .its{order:9}
}

/* ------------------------------------------------------------ hero */
.hero{position:relative;min-height:min(88vh,52rem);display:grid;align-items:end;overflow:clip;
  border-bottom:1px solid var(--hair)}
.hero .bg{position:absolute;inset:0;z-index:0}
.hero .bg img{display:none}
.hero .bg #herochart{position:absolute;inset:0;opacity:.55}
@keyframes drift{to{transform:scale(1.1) translate3d(-1.5%,1%,0)}}
.hero .bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(11,14,20,.92) 0%,rgba(11,14,20,.6) 45%,rgba(11,14,20,.15) 100%),linear-gradient(180deg,rgba(11,14,20,.2) 0%,rgba(11,14,20,0) 40%,var(--bg) 100%);pointer-events:none}
.hero .in{position:relative;z-index:1;padding:clamp(4rem,10vh,8rem) 0 clamp(2.5rem,6vh,4rem)}
.hero h1{font-size:var(--h1);line-height:.98;letter-spacing:-.04em;font-weight:800;max-width:14ch;text-wrap:balance}
.hero h1 em{font-style:normal;color:var(--accent-2)}
.hero .kick{margin-top:1.4rem;max-width:56ch;font-size:clamp(1.05rem,1.6vw,1.3rem);color:var(--ink-2);text-wrap:pretty}
.hero .cta{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:2rem}
.facts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;background:var(--hair);
  border:1px solid var(--hair);margin-top:3rem}
.facts .f{background:rgba(19,23,34,.85);padding:1rem 1.1rem;backdrop-filter:blur(6px)}
.facts .n{font:600 clamp(1.15rem,2vw,1.7rem)/1.05 var(--mono);letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.facts .l{margin-top:.35rem;font:600 var(--label)/1.2 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.rv{opacity:0;transform:translateY(14px);animation:rv .9s var(--ease) forwards;animation-delay:calc(var(--i,0)*120ms)}
@keyframes rv{to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.rv{animation:none;opacity:1;transform:none}.hero .bg img{animation:none}}

/* --------------------------------------------------------- sections */
section.sec{padding:clamp(3.5rem,8vh,6.5rem) 0;border-bottom:1px solid var(--hair);position:relative;overflow:clip}
.sec .head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:2rem;align-items:end;margin-bottom:2.2rem}
.sec .head .no{font:600 var(--label)/1 var(--mono);letter-spacing:.16em;color:var(--accent-2);text-transform:uppercase}
.sec .head h2{font-size:var(--h2);line-height:1.05;letter-spacing:-.03em;font-weight:700;margin-top:.6rem;text-wrap:balance}
.sec .head p{color:var(--ink-2);max-width:60ch;text-wrap:pretty}
@media (max-width:820px){.sec .head{grid-template-columns:1fr;gap:1rem}}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;align-items:center}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--hair);border:1px solid var(--hair)}
@media (max-width:820px){.grid2,.grid3{grid-template-columns:minmax(0,1fr)}}
.card{background:var(--panel);padding:1.5rem;border:1px solid var(--hair);border-radius:2px}
.grid3 .card{border:0}
.card h3{font-size:1.15rem;font-weight:650;letter-spacing:-.01em;margin:.9rem 0 .5rem}
.card p{color:var(--ink-2);font-size:var(--small)}
.card .k{font:600 var(--label)/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-2)}
.card a.go{display:inline-block;margin-top:1rem;font:600 var(--small)/1 var(--sans);color:var(--ink);border-bottom:1px solid var(--hair-2)}
.card a.go:hover{border-color:var(--accent);color:var(--accent)}
.fig{position:relative;overflow:hidden;border:1px solid var(--hair);border-radius:2px;background:var(--bg-2)}
.fig img{width:100%;height:100%;object-fit:cover}
.fig.glass{background:url("img/glass.jpg") center/cover;min-height:20rem}
.fig .cap{position:absolute;left:1rem;bottom:.9rem;font:500 .74rem/1.3 var(--mono);letter-spacing:.08em;color:var(--ink-2);text-transform:uppercase}
.coin{display:grid;place-items:center;padding:2rem;background:radial-gradient(60% 60% at 50% 45%,rgba(47,191,113,.14),transparent 70%),var(--bg-2)}
.coin img{width:min(70%,22rem);filter:drop-shadow(0 30px 60px rgba(0,0,0,.6));animation:float 7s ease-in-out infinite alternate}
@keyframes float{from{transform:translateY(-6px) rotate(-2deg)}to{transform:translateY(8px) rotate(2deg)}}
@media (prefers-reduced-motion:reduce){.coin img{animation:none}}
.steps{counter-reset:s;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}
.steps div{border-top:1px solid var(--hair-2);padding-top:1rem}
.steps div::before{counter-increment:s;content:"0" counter(s);font:600 var(--label)/1 var(--mono);letter-spacing:.16em;color:var(--accent-2)}
.steps h4{margin:.6rem 0 .3rem;font-size:1.02rem}
.steps p{color:var(--ink-2);font-size:var(--small)}
@media (max-width:820px){.steps{grid-template-columns:1fr}}
footer{padding:2.5rem 0 3rem;color:var(--ink-3);font-size:.8rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}
footer a{color:var(--ink-2)}footer a:hover{color:var(--accent)}

/* ------------------------------------------------------- page heads */
.pg{padding:clamp(2.5rem,6vh,4.5rem) 0 2rem;border-bottom:1px solid var(--hair);position:relative;overflow:clip}
.pg h1{font-size:clamp(2rem,5vw,3.6rem);letter-spacing:-.035em;line-height:1;font-weight:800}
.pg p.sub{margin-top:.9rem;color:var(--ink-2);max-width:62ch}
.pg .art{position:absolute;right:0;top:-3rem;width:min(22rem,30vw);opacity:.35;pointer-events:none;
  -webkit-mask-image:linear-gradient(180deg,#000 40%,transparent);mask-image:linear-gradient(180deg,#000 40%,transparent)}
@media (max-width:820px){.pg .art{display:none}}
.strip{display:flex;gap:2rem;flex-wrap:wrap;margin-top:1.6rem}
.strip .s{min-width:8rem}
.strip .n{font:600 1.25rem/1.1 var(--mono);letter-spacing:-.01em}
.strip .l{margin-top:.3rem;font:600 var(--label)/1.2 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.notice{margin-top:1.4rem;padding:.9rem 1.1rem;border:1px solid var(--hair-2);border-left:3px solid var(--accent-2);
  border-radius:2px;background:var(--panel);font-size:var(--small);color:var(--ink-2)}
.notice.ok{border-left-color:var(--green)}
.notice.cy{border-left-color:var(--cyan)}
.notice b{color:var(--ink)}

/* ---------------------------------------------------------- weights */
.wrow{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,2fr) 7.5rem;gap:1.5rem;align-items:center;
  padding:1.25rem 0;border-bottom:1px solid var(--hair)}
.wrow .t h3{font-size:1.02rem;font-weight:650;letter-spacing:-.01em}
.wrow .t .b{font-size:.8rem;color:var(--ink-3);margin-top:.15rem}
.wrow .t .tk{font:500 .72rem/1 var(--mono);letter-spacing:.1em;color:var(--ink-2);margin-top:.5rem}
.wrow .out{text-align:right}
.wrow .out .cur{font:600 1.45rem/1 var(--mono);letter-spacing:-.02em}
.wrow .out .l{font:600 .66rem/1.2 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-top:.3rem}
.wrow .out .sh{font:500 .78rem/1.2 var(--mono);color:var(--ink-2);margin-top:.35rem}
@media (max-width:820px){.wrow{grid-template-columns:1fr;gap:.8rem}.wrow .out{text-align:left;display:flex;gap:1rem;align-items:baseline}}
.slider{position:relative;height:3.2rem;user-select:none;margin-top:.6rem}
.slider .track{position:absolute;left:0;right:0;top:1.35rem;height:2px;background:var(--hair-2)}
.slider .band{position:absolute;top:1.35rem;height:2px;background:rgba(236,232,222,.35)}
.slider .mk{position:absolute;top:.75rem;width:1px;height:1.25rem;background:var(--ink-3)}
.slider .mk.def{background:var(--ink-2);height:1.5rem;top:.6rem}
.slider .mk.tally{width:2px;background:var(--green);height:1.7rem;top:.5rem}
.slider .mk i{position:absolute;top:1.85rem;left:0;transform:translateX(-50%);font:500 .62rem/1 var(--mono);color:var(--ink-3);letter-spacing:.06em;white-space:nowrap}
.slider .mk.def i{top:auto;bottom:1.7rem}
.slider .mk.tally i{color:var(--green)}
.slider input[type=range]{-webkit-appearance:none;appearance:none;position:absolute;left:0;right:0;top:.35rem;width:100%;height:2rem;background:transparent;margin:0;cursor:pointer}
.slider input[type=range]::-webkit-slider-runnable-track{height:2rem;background:transparent}
.slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:1.1rem;height:1.1rem;border-radius:50%;background:var(--accent);
  border:2px solid var(--bg);margin-top:.45rem;box-shadow:0 0 0 1px var(--accent);transition:transform var(--fast) var(--ease)}
.slider input[type=range]::-moz-range-thumb{width:1.1rem;height:1.1rem;border-radius:50%;background:var(--accent);border:2px solid var(--bg)}
.slider input[type=range]::-moz-range-track{height:2px;background:transparent}
.slider input[type=range]:hover::-webkit-slider-thumb{transform:scale(1.15)}
.slider input[type=range]:disabled::-webkit-slider-thumb{background:var(--ink-3);box-shadow:0 0 0 1px var(--ink-3)}
.slider .val{position:absolute;right:0;top:-.55rem;font:600 .8rem/1 var(--mono);color:var(--accent)}
.slider .lo,.slider .hi{position:absolute;top:-.55rem;font:500 .66rem/1 var(--mono);color:var(--ink-3)}
.slider .lo{left:0}.slider .hi{right:0}
.bar{display:flex;height:1.15rem;border:1px solid var(--hair);background:var(--bg-2);overflow:hidden;margin:1.5rem 0 .5rem}
.bar span{display:block;height:100%;border-right:1px solid var(--bg);transition:width .5s var(--ease)}
.legend{display:flex;flex-wrap:wrap;gap:.4rem 1.1rem;font:500 .72rem/1.4 var(--mono);color:var(--ink-2)}
.legend i{display:inline-block;width:.6rem;height:.6rem;margin-right:.4rem;vertical-align:-1px}
.sticky{position:sticky;bottom:0;z-index:5;margin-top:1rem;padding:1rem var(--gutter);border-top:1px solid var(--hair-2);
  background:rgba(11,14,20,.86);backdrop-filter:blur(10px);display:flex;gap:1rem;align-items:center;flex-wrap:wrap}
.sticky .msg{flex:1 1 20rem;color:var(--ink-2);font-size:var(--small)}
.sticky .msg b{color:var(--ink)}

/* ------------------------------------------------------------- data */
table.tbl{width:100%;border-collapse:collapse;font-size:.86rem}
table.tbl th{text-align:left;font:600 var(--label)/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);
  padding:.7rem .6rem;border-bottom:1px solid var(--hair-2)}
table.tbl td{padding:.7rem .6rem;border-bottom:1px solid var(--hair);vertical-align:middle;font-family:var(--mono);font-variant-numeric:tabular-nums}
table.tbl tr.locked td{color:var(--ink-3)}
table.tbl tr.open td{color:var(--ink)}
table.tbl tr.clickable{cursor:pointer}
table.tbl tr.clickable:hover td{background:var(--panel)}
.lock{display:inline-flex;align-items:center;gap:.45rem;font:500 .74rem/1 var(--mono);letter-spacing:.06em}
.lock.o{color:var(--green)}.lock.l{color:var(--ink-3)}
.lock .cd{color:var(--amber)}
.scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
pre.code{max-width:100%;background:var(--bg-2);border:1px solid var(--hair);padding:1rem 1.1rem;border-radius:2px;overflow-x:auto;
  font:400 .8rem/1.55 var(--mono);color:var(--ink-2);margin:.7rem 0}
pre.code b{color:var(--cyan);font-weight:500}
.viewer{margin-top:1.5rem;border:1px solid var(--hair-2);border-radius:2px;background:var(--panel)}
.viewer .vh{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;padding:.9rem 1.1rem;border-bottom:1px solid var(--hair)}
.viewer .vh h3{font:600 1rem/1 var(--mono);letter-spacing:-.01em}
.viewer .vb{max-height:34rem;overflow:auto;font:400 .78rem/1.5 var(--mono)}
.viewer details{border-bottom:1px solid var(--hair)}
.viewer summary{cursor:pointer;padding:.6rem 1.1rem;display:flex;gap:1rem;align-items:center;list-style:none}
.viewer summary::-webkit-details-marker{display:none}
.viewer summary:hover{background:var(--panel-2)}
.viewer summary .hk{color:var(--ink)}
.viewer summary .cnt{color:var(--ink-3);margin-left:auto}
.viewer pre{padding:.4rem 1.1rem 1rem 2.2rem;color:var(--ink-2);white-space:pre-wrap;word-break:break-all}
.mini{display:inline-flex;gap:.25rem;align-items:flex-end;height:1rem}
.mini i{display:block;width:3px;background:var(--blue-soft);opacity:.85}
.pill{display:inline-block;padding:.15rem .5rem;border:1px solid var(--hair-2);border-radius:2px;font:500 .68rem/1.3 var(--mono);letter-spacing:.06em;color:var(--ink-2)}
.pill.g{border-color:rgba(38,166,154,.5);color:var(--green)}
.pill.r{border-color:rgba(239,83,80,.5);color:var(--red)}

/* ----------------------------------------------------------- access */
.curve{position:relative;border:1px solid var(--hair);border-radius:2px;background:var(--panel);padding:1.2rem}
.curve svg{width:100%;height:auto;display:block}
.curve .ax{font:500 .66rem/1 var(--mono);fill:var(--ink-3);letter-spacing:.06em}
.curve .gl{stroke:var(--hair);stroke-width:1}
.curve .ln{fill:none;stroke:var(--cyan);stroke-width:2.2}
.curve .fill{fill:url(#cg);opacity:.6}
.curve .you{fill:var(--amber)}
.curve .youl{font:600 .72rem/1 var(--mono);fill:var(--amber)}
.ctl{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:center;margin-top:1.2rem}
.ctl input[type=range]{width:100%;accent-color:var(--accent-2)}
.ctl .ro{font:600 1.05rem/1.2 var(--mono);text-align:right;min-width:12rem}
.ctl .ro small{display:block;font:500 .68rem/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.tiers{width:100%;border-collapse:collapse;margin-top:1.4rem;font:500 .84rem/1.4 var(--mono)}
.tiers td,.tiers th{padding:.6rem .5rem;border-bottom:1px solid var(--hair);text-align:right}
.tiers th{font:600 var(--label)/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.tiers td:first-child,.tiers th:first-child{text-align:left}
.tiers tr.me td{color:var(--accent-2)}

/* ------------------------------------------------------------ modal */
.modal{position:fixed;inset:0;z-index:100;display:none;place-items:center;background:rgba(4,5,6,.72);backdrop-filter:blur(6px);padding:1rem}
.modal.open{display:grid}
.modal .box{width:min(34rem,100%);background:var(--panel);border:1px solid var(--hair-2);border-radius:3px;padding:1.6rem;position:relative;max-height:92vh;overflow:auto}
.modal h2{font-size:1.4rem;letter-spacing:-.02em;font-weight:700}
.modal p{color:var(--ink-2);font-size:var(--small);margin-top:.5rem}
.modal .x{position:absolute;right:.8rem;top:.8rem;width:2rem;height:2rem;color:var(--ink-2);font-size:1.2rem}
.modal .x:hover{color:var(--ink)}
.wl{display:grid;gap:.5rem;margin-top:1.2rem}
.wl button{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border:1px solid var(--hair-2);border-radius:2px;text-align:left;transition:border-color var(--fast) var(--ease)}
.wl button:hover{border-color:var(--ink)}
.wl button small{color:var(--ink-3);font-family:var(--mono);font-size:.7rem}
.wl button.acct{font-family:var(--mono);font-size:.82rem}
.field{margin-top:1rem}
.field label{display:block;font:600 var(--label)/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-bottom:.4rem}
.field input,.field textarea,.field select{width:100%;background:var(--bg-2);border:1px solid var(--hair-2);border-radius:2px;padding:.65rem .75rem;font:400 .86rem/1.4 var(--mono);color:var(--ink);outline:none}
.field input:focus,.field textarea:focus{border-color:var(--accent-2)}
.field textarea{min-height:5.5rem;resize:vertical}
.err{color:var(--red);font-size:.82rem;margin-top:.6rem;min-height:1.2em}
.ok{color:var(--green)}
.row{display:flex;gap:.7rem;flex-wrap:wrap;align-items:center;margin-top:1rem}
.toast{position:fixed;left:50%;bottom:1.4rem;transform:translate(-50%,1rem);z-index:120;padding:.7rem 1rem;background:var(--accent);color:#fff;
  border-radius:2px;font:600 .82rem/1.2 var(--sans);opacity:0;transition:all .3s var(--ease);pointer-events:none;max-width:90vw}
.toast.on{opacity:1;transform:translate(-50%,0)}

/* ------------------------------------------------------------ admin */
.adm{display:grid;grid-template-columns:repeat(auto-fit,minmax(20rem,1fr));gap:1.5rem;margin-top:2rem}
.adm .card h3{margin-top:0;font-size:1rem;display:flex;justify-content:space-between;align-items:center}
.adm table{width:100%;border-collapse:collapse;font:500 .78rem/1.4 var(--mono)}
.adm td,.adm th{padding:.4rem .35rem;border-bottom:1px solid var(--hair);text-align:right}
.adm th{font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.1em;font-size:.64rem}
.adm td:first-child,.adm th:first-child{text-align:left}
.adm input[type=number]{width:5.4rem;background:var(--bg-2);border:1px solid var(--hair-2);color:var(--ink);padding:.25rem .35rem;font:inherit;text-align:right;border-radius:2px}
.adm input[type=checkbox]{accent-color:var(--accent-2)}
.kv{display:grid;grid-template-columns:auto 1fr;gap:.3rem 1rem;font:500 .8rem/1.5 var(--mono)}
.kv b{color:var(--ink-3);font-weight:500}
.neuro{position:absolute;right:0;bottom:-8rem;width:min(34rem,60vw);opacity:.07;pointer-events:none;transform:rotate(180deg)}

/* ------------------------------------------------------------ viewer */
.demo{position:fixed;top:0;left:0;right:0;z-index:60;height:1.4rem;background:var(--amber);color:#1a1200;font:700 .66rem/1.4rem var(--mono);letter-spacing:.14em;text-align:center}
body.has-demo{padding-top:calc(var(--nav-h) + 1.4rem)}body.has-demo nav.top{top:1.4rem}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:1px;background:var(--hair);border:1px solid var(--hair);margin-top:1.4rem}
.kpis .k{background:var(--panel);padding:.9rem 1rem}
.kpis .n{font:600 1.35rem/1.1 var(--mono);letter-spacing:-.02em;white-space:nowrap}
.kpis .l{margin-top:.3rem;font:600 .64rem/1.2 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.kpis .n.up{color:var(--green)}.kpis .n.dn{color:var(--red)}
.panel{border:1px solid var(--hair);border-radius:2px;background:var(--panel);padding:1.1rem 1.2rem;min-width:0}
.panel h3{font-size:.95rem;font-weight:650;letter-spacing:-.01em;display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap;margin-bottom:.8rem}
.panel h3 small{font:500 .7rem/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.chart{position:relative;width:100%;height:30rem;min-height:18rem;border:1px solid var(--hair);border-radius:2px;background:var(--bg-2);overflow:hidden}
@media (max-width:820px){.chart{height:22rem}}
.chart .ov{position:absolute;left:.7rem;top:.6rem;z-index:3;display:flex;gap:.4rem;flex-wrap:wrap}
.chart .ov .pill{background:rgba(19,23,34,.85);backdrop-filter:blur(4px)}
.tabs{display:inline-flex;border:1px solid var(--hair-2);border-radius:2px;overflow:hidden}
.tabs button{padding:.4rem .8rem;font:600 .72rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);border-right:1px solid var(--hair)}
.tabs button:last-child{border-right:0}.tabs button.on{background:var(--accent);color:#fff}
.split{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:1.2rem;align-items:start}
@media (max-width:1000px){.split{grid-template-columns:minmax(0,1fr)}}
.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.2rem}
@media (max-width:1100px){.grid4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.grid4{grid-template-columns:minmax(0,1fr)}}
.long{color:var(--green)}.short{color:var(--red)}
.dirpill{display:inline-block;min-width:3.2rem;text-align:center;padding:.12rem .4rem;border-radius:2px;font:700 .66rem/1.3 var(--mono);letter-spacing:.1em}
.dirpill.L{background:rgba(38,166,154,.16);color:var(--green)}.dirpill.S{background:rgba(239,83,80,.16);color:var(--red)}
.st{font:600 .66rem/1.3 var(--mono);letter-spacing:.1em}
.st.open{color:var(--cyan)}.st.SL{color:var(--red)}.st.TP1,.st.TP2{color:var(--green)}.st.F{color:var(--ink-2)}
.rbar{position:relative;height:.5rem;background:var(--bg-2);border:1px solid var(--hair);border-radius:1px;min-width:6rem}
.rbar i{position:absolute;top:0;bottom:0;background:var(--blue-soft)}
.rbar i.neg{background:var(--red)}.rbar i.pos{background:var(--green)}
.rbar b{position:absolute;top:-2px;bottom:-2px;width:1px;background:var(--ink-2)}
.prog{height:.25rem;background:var(--hair);position:relative;margin-top:.3rem}
.prog i{position:absolute;left:0;top:0;bottom:0;background:var(--ink-2)}
.hist{display:inline-flex;align-items:flex-end;gap:1px;height:1.4rem}
.hist i{display:block;width:.42rem;background:var(--blue-soft);opacity:.9;min-height:1px}
.hist i.lo{background:var(--red)}.hist i.hi{background:var(--green)}
.exposure{display:flex;height:1.4rem;border:1px solid var(--hair);overflow:hidden;font:600 .66rem/1.4rem var(--mono);text-align:center}
.exposure .L{background:rgba(38,166,154,.35);color:var(--green)}.exposure .S{background:rgba(239,83,80,.35);color:var(--red)}
.ladder{position:relative;height:100%;min-height:22rem;margin:1.4rem 0 1.6rem}
.ladder .lv{position:absolute;left:0;right:0;height:1px;display:flex;align-items:center;gap:.4rem;font:500 .64rem/1 var(--mono);color:var(--ink-3)}
.ladder .lv i{display:block;height:3px;border-radius:1px}
.ladder .lv.sl i{background:var(--red)}.ladder .lv.tp1 i{background:rgba(38,166,154,.6)}.ladder .lv.tp2 i{background:var(--green)}
.ladder .mk{position:absolute;left:0;right:0;border-top:1px dashed var(--ink-2);font:600 .66rem/1 var(--mono);color:var(--ink)}
.ladder .mk span{position:absolute;right:0;top:-1.1rem;background:var(--panel);padding:0 .3rem}
.acard{border:1px solid var(--hair);border-radius:2px;background:var(--panel);padding:.8rem .9rem;min-width:0;cursor:pointer;transition:border-color var(--fast) var(--ease)}
.acard:hover{border-color:var(--ink-2)}
.acard.pend{border-color:var(--amber)}
.acard .h{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem}
.acard .h b{font:700 .9rem/1 var(--sans)}
.acard .h span{font:500 .72rem/1 var(--mono);color:var(--ink-2)}
.acard svg{width:100%;height:3.6rem;display:block;margin:.5rem 0 .3rem}
.acard .m{display:flex;justify-content:space-between;font:500 .64rem/1.3 var(--mono);color:var(--ink-3)}
.rangebar{position:relative;height:.45rem;background:var(--bg-2);border:1px solid var(--hair);margin-top:.45rem}
.rangebar i{position:absolute;top:-2px;width:2px;height:calc(100% + 4px);background:var(--ink)}
.rangebar em{position:absolute;top:0;bottom:0;background:rgba(41,98,255,.25)}
.agrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(13.5rem,1fr));gap:.8rem}
.heat{border-collapse:collapse;font:500 .68rem/1.2 var(--mono)}
.heat th{position:sticky;top:0;background:var(--panel);font-weight:600;color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase;padding:.3rem .35rem;text-align:left;font-size:.6rem}
.heat td{padding:0;width:1.35rem;height:1.1rem;border:1px solid var(--bg)}
.heat td.hk{width:auto;padding:0 .5rem;color:var(--ink-2);white-space:nowrap}
.bump{width:100%;height:20rem;display:block}
.consbar{display:grid;grid-template-columns:5rem minmax(0,1fr) 4.5rem 4rem;gap:.6rem;align-items:center;font:500 .74rem/1.3 var(--mono);padding:.28rem 0;border-bottom:1px solid var(--hair)}
.consbar .a{font-weight:700;color:var(--ink)}
.consbar .bar{position:relative;height:.7rem;margin:0;border:0;background:transparent;display:block}
.consbar .bar::before{content:"";position:absolute;left:50%;top:-.15rem;bottom:-.15rem;width:1px;background:var(--hair-2)}
.consbar .bar i{position:absolute;top:0;bottom:0;background:var(--blue-soft)}
.consbar .bar i.neg{background:var(--red)}
.consbar .bar em{position:absolute;top:.1rem;bottom:.1rem;background:rgba(236,232,222,.18)}
.consbar .n{color:var(--ink-3);text-align:right}
.lk{display:grid;place-items:center;min-height:14rem;border:1px dashed var(--hair-2);border-radius:2px;color:var(--ink-3);font:500 .8rem/1.5 var(--mono);text-align:center;padding:1rem}
.evrow{display:grid;grid-template-columns:7rem 4rem minmax(0,1fr) 11rem 9rem;gap:.8rem;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--hair);font:500 .76rem/1.3 var(--mono)}
@media (max-width:700px){.evrow{grid-template-columns:4rem 3rem minmax(0,1fr) 5rem}}
.out.continued{color:var(--green)}.out.reversed{color:var(--red)}.out.pending{color:var(--amber)}.out.stale{color:var(--ink-3)}

/* ------------------------------------------------------------ charts v3 */
.tvchart{position:relative;width:100%;height:32rem;min-height:20rem;border:1px solid var(--hair);border-radius:3px;background:var(--panel);overflow:hidden}
@media (max-width:820px){.tvchart{height:24rem}}
.tvchart .ov{position:absolute;left:.7rem;top:.6rem;z-index:3;display:flex;gap:.4rem;flex-wrap:wrap;pointer-events:none}
.tvchart .ov .pill{background:rgba(19,23,34,.85);pointer-events:auto}
.tvchart .legend2{position:absolute;right:.7rem;top:.6rem;z-index:3;display:flex;gap:.8rem;font:500 .66rem/1 var(--mono);color:var(--ink-2);pointer-events:none}
.tvchart .legend2 i{display:inline-block;width:.9rem;height:2px;vertical-align:middle;margin-right:.3rem}
.mlist{display:grid;gap:1px;background:var(--hair);border:1px solid var(--hair);max-height:34rem;overflow:auto}
.mlist a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.3rem .8rem;padding:.6rem .8rem;background:var(--panel);font:500 .74rem/1.35 var(--mono);color:var(--ink-2);transition:background var(--fast) var(--ease)}
.mlist a:hover{background:var(--panel-2);color:var(--ink)}
.mlist a.on{background:var(--panel-2);color:#fff;box-shadow:inset 3px 0 0 var(--accent)}
.mlist a b{color:var(--ink);font-weight:600}
.mlist a small{color:var(--ink-3);grid-column:1/-1}
.trow{display:grid;grid-template-columns:3.2rem 4rem minmax(0,1fr) 5rem 5rem;gap:.6rem;align-items:center;padding:.45rem 0;border-bottom:1px solid var(--hair);font:500 .74rem/1.3 var(--mono);cursor:pointer}
.trow:hover{background:var(--panel-2)}
.trow.on{box-shadow:inset 3px 0 0 var(--accent);padding-left:.5rem}
.posstrip{display:flex;align-items:flex-end;gap:2px;height:4rem;border-bottom:1px solid var(--hair)}
.posstrip i{flex:1;display:flex;flex-direction:column-reverse;height:100%}
.posstrip i b{display:block;background:var(--green)}.posstrip i em{display:block;background:var(--red)}

/* Shared MANTIS Live visual system, September 2026. */
:root{--bg:#0c100f;--bg-2:#0f1511;--panel:#111714;--panel-2:#171e1a;--ink:#e9eee7;--ink-2:#939e95;--ink-3:#67786a;--hair:#27312b;--hair-2:#3b493e;--accent:#91b75d;--accent-2:#c5f277;--green:#7cce9f;--red:#ee947f;--cyan:#a6b9f4}nav.top{background:rgba(12,16,15,.95)}nav.top .wm img{filter:grayscale(1) brightness(1.7)}nav.top .its{gap:1rem}nav.top .its a{font-size:.64rem;letter-spacing:.06em}.btn.pri{color:#0c100f}.card,.glass,.panel{border-radius:5px}.wm{letter-spacing:.08em}
