:root{
  --bg:#05060b; --bg2:#090b14; --panel:#0b0e18; --panel2:#0e1220;
  --line:rgba(255,255,255,.07); --line2:rgba(255,255,255,.13);
  --txt:#e9ecf5; --dim:#7d86a3; --dim2:#4b5267;
  --cyan:#38e8ff; --green:#22e38a; --pink:#ff3d81; --orange:#ffa726; --purple:#a76bff; --blue:#4c7dff; --red:#ff5a3c; --gold:#ffd166;
  --mono:'JetBrains Mono',ui-monospace,monospace; --sans:'Space Grotesk',system-ui,sans-serif;
  --glow:0 0 18px rgba(56,232,255,.35);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;background:var(--bg);color:var(--txt);font-family:var(--sans);font-size:12px;overflow-x:hidden}
body{display:grid;grid-template-rows:56px 26px 64px 1fr 34px;min-height:100vh;letter-spacing:.01em}
button{font-family:inherit;color:inherit;background:none;border:0;cursor:pointer}
canvas{display:block}
i{font-style:normal}
::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-thumb{background:#1c2236;border-radius:2px}

/* ---------- state dimming: guest = whole desk asleep ---------- */
body[data-state="guest"] .panel:not(.reactor), body[data-state="guest"] .rail{opacity:.55;filter:saturate(.35)}
body[data-state="guest"] .injector{opacity:.9;filter:none}
body[data-state="guest"] .injector .field, body[data-state="guest"] .injector .guarantee{opacity:.35;pointer-events:none}
body[data-state="nofuel"] .injector .field{opacity:.35;pointer-events:none}

/* ---------- header ---------- */
.top{display:flex;align-items:center;gap:22px;padding:0 16px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#0a0c15,#06070d)}
.brand{display:flex;align-items:center;gap:12px;min-width:250px}
.logo{width:34px;height:34px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#cfd6ea 55%,#8d97b8);display:flex;gap:5px;align-items:center;justify-content:center;box-shadow:0 0 22px rgba(255,255,255,.25)}
.logo .eye{width:5px;height:11px;background:#0a0c14;border-radius:3px;transform:rotate(-8deg)}.logo .eye+.eye{transform:rotate(8deg)}
.brand-name{font-weight:700;font-size:18px;letter-spacing:.06em}.brand-name span{color:var(--dim);font-weight:500}
.brand-sub{font-family:var(--mono);font-size:9px;color:var(--dim);letter-spacing:.14em;margin-top:2px}
.tabs{display:flex;gap:18px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--dim2)}
.tabs .on{color:var(--txt);text-shadow:var(--glow)}
.stats{display:flex;gap:26px;margin-left:auto}
.stat{display:flex;flex-direction:column;align-items:flex-end}
.stat b{font-family:var(--mono);font-size:15px;font-weight:700}
.stat i{font-size:8px;letter-spacing:.16em;color:var(--dim2)}
.stat.clock b{font-size:22px;letter-spacing:.04em}
.right{display:flex;align-items:center;gap:10px}
.icon{width:30px;height:30px;border:1px solid var(--line2);border-radius:6px;color:var(--dim);font-size:14px}
.icon.off{text-decoration:line-through;color:var(--dim2)}
.wallet{padding:8px 14px;border:1px solid var(--line2);border-radius:6px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;background:#0f1322}
.wallet.live{border-color:rgba(34,227,138,.45);color:var(--green)}
.online{display:flex;align-items:center;gap:7px;padding:8px 12px;border-radius:6px;background:rgba(34,227,138,.08);border:1px solid rgba(34,227,138,.35);color:var(--green);font-family:var(--mono);font-size:10px;letter-spacing:.14em}
.dot{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 10px var(--green);animation:pulse 1.6s infinite}
@keyframes pulse{50%{opacity:.35}}

/* ---------- wire ---------- */
.wire{display:flex;align-items:center;border-bottom:1px solid var(--line);background:#07080f;overflow:hidden}
.wire-tag{flex:none;padding:0 12px;height:100%;display:flex;align-items:center;font-family:var(--mono);font-size:9px;letter-spacing:.16em;background:#0d1020;border-right:1px solid var(--line2)}
.wire-track{display:flex;gap:34px;white-space:nowrap;font-family:var(--mono);font-size:10px;color:var(--dim);animation:wire 40s linear infinite;padding-left:20px}
.wire-track span b{color:var(--txt)}.wire-track span em{font-style:normal;padding:1px 6px;border-radius:9px;font-weight:700;margin-right:6px}
@keyframes wire{to{transform:translateX(-50%)}}

/* ---------- agents rail ---------- */
.rail{display:grid;grid-template-columns:repeat(6,1fr);border-bottom:1px solid var(--line);background:#07080f}
.agent{display:flex;align-items:center;gap:12px;padding:0 16px;border-right:1px solid var(--line);position:relative;transition:background .3s}
.agent:last-child{border-right:0}
.agent .av{width:30px;height:30px;border-radius:50%;display:flex;gap:4px;align-items:center;justify-content:center;flex:none;transition:box-shadow .3s}
.agent .av span{width:4px;height:9px;background:#0a0c14;border-radius:2px}
.agent .nm{display:flex;flex-direction:column}
.agent .nm i{font-size:8px;letter-spacing:.16em;color:var(--dim2)}
.agent .nm b{font-size:16px;letter-spacing:.06em}
.agent .st{margin-left:auto;text-align:right;font-family:var(--mono);font-size:9px;letter-spacing:.12em;color:var(--dim2)}
.agent .st b{display:block;font-size:10px;color:var(--dim)}
.agent.hot{background:linear-gradient(180deg,rgba(255,255,255,.04),transparent)}
.agent.hot .av{box-shadow:0 0 22px var(--c)}
.agent.hot .st b{color:var(--c)}
.agent::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--c);opacity:0;transition:opacity .3s}
.agent.hot::after{opacity:1}

/* ---------- grid ---------- */
.grid{display:grid;grid-template-columns:300px 1fr 1fr 300px;grid-template-rows:minmax(520px,58vh) 380px 300px;gap:10px;padding:10px;grid-template-areas:'inj reactor reactor stack' 'pnl pnl tape trace' 'candles candles book pricer' }
.candles-p{grid-area:candles}.book-p{grid-area:book}.pricer-p{grid-area:pricer}.spec-p{grid-column:1/-1;height:220px}
.injector{grid-area:inj}.reactor{grid-area:reactor}.stack{grid-area:stack}.pnl{grid-area:pnl}.tape{grid-area:tape}.trace{grid-area:trace}
.panel{background:linear-gradient(180deg,var(--panel),var(--bg2));border:1px solid var(--line);border-radius:8px;position:relative;overflow:hidden;display:flex;flex-direction:column}
.ph{display:flex;align-items:center;gap:10px;padding:9px 12px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:10px;letter-spacing:.14em;flex:none}
.ph em{font-style:normal;color:var(--dim2);letter-spacing:.06em;text-transform:lowercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ph b{margin-left:auto;color:var(--cyan);font-size:9px}

/* injector */
.injector{padding-bottom:12px}
.field{padding:12px 12px 6px}
.lbl{display:flex;justify-content:space-between;font-family:var(--mono);font-size:9px;letter-spacing:.14em;color:var(--dim2);margin-bottom:8px}
.amount{display:flex;align-items:baseline;gap:8px;border:1px solid var(--line2);border-radius:6px;padding:8px 10px;background:#070910}
.amount input{flex:1;min-width:0;background:none;border:0;color:var(--txt);font-family:var(--mono);font-size:20px;font-weight:700;outline:none}
.amount .unit{font-family:var(--mono);font-size:9px;letter-spacing:.14em;color:var(--dim)}
input[type=range]{width:100%;margin:10px 0 6px;accent-color:var(--cyan);height:3px}
.presets{display:flex;gap:6px}
.presets button{flex:1;padding:7px 0;border:1px solid var(--line2);border-radius:5px;font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--dim);background:#0a0d18;transition:.15s}
.presets button:hover{border-color:var(--cyan);color:var(--txt)}
.presets button.on{border-color:var(--cyan);color:var(--cyan);background:rgba(56,232,255,.08);box-shadow:inset 0 0 14px rgba(56,232,255,.08)}
.goal-val{font-family:var(--mono);font-size:30px;font-weight:700;color:var(--gold);text-shadow:0 0 18px rgba(255,209,102,.4);display:flex;align-items:baseline;gap:10px}
.goal-val small{font-size:9px;letter-spacing:.14em;color:var(--dim2)}
.guarantee{margin:8px 12px;padding:8px 10px;border:1px dashed rgba(34,227,138,.4);border-radius:5px;color:var(--green);font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-align:center}
.launch{margin:auto 12px 0;height:58px;border-radius:7px;position:relative;overflow:hidden;background:linear-gradient(135deg,#1a2240,#0f1326);border:1px solid var(--line2);font-family:var(--mono);font-weight:700;letter-spacing:.2em;font-size:13px;transition:.25s}
.launch span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transition:.25s}
.launch .l2{opacity:0;transform:translateY(100%)}
.launch.armed{background:linear-gradient(135deg,#ff3d81,#ff7a3c);border-color:transparent;box-shadow:0 0 34px rgba(255,61,129,.45);animation:armed 1s infinite}
.launch.armed .l1{opacity:0;transform:translateY(-100%)}.launch.armed .l2{opacity:1;transform:none}
@keyframes armed{50%{box-shadow:0 0 50px rgba(255,61,129,.75)}}
.launch:disabled{opacity:.35;cursor:not-allowed;animation:none}
.launch.running{background:#0d1120;color:var(--dim2)}
.hint{padding:8px 12px 0;font-family:var(--mono);font-size:9px;color:var(--dim2);letter-spacing:.08em;text-align:center}

/* reactor */
.reactor{background:radial-gradient(ellipse at 50% 45%,#0e1226 0%,#07080f 55%,#05060b 100%)}
.reactor .ph{background:rgba(5,6,11,.6);position:relative;z-index:3}
#gl{position:absolute;inset:0;width:100%;height:100%;z-index:1}
.corner{position:absolute;z-index:3;top:46px;display:flex;flex-direction:column;gap:2px}
.corner i{font-size:8px;letter-spacing:.18em;color:var(--dim2)}
.corner b{font-family:var(--mono);font-size:28px;font-weight:700;letter-spacing:-.01em;white-space:nowrap;font-variant-numeric:tabular-nums}
.corner small{font-family:var(--mono);font-size:10px;color:var(--dim)}
.corner.c-left{left:16px}.corner.c-right{right:16px;align-items:flex-end}
.corner.c-right b{font-variant-numeric:tabular-nums}
.strip{position:absolute;z-index:3;left:50%;transform:translateX(-50%);top:112px;display:flex;border:1px solid var(--line2);border-radius:6px;background:rgba(7,8,15,.75);backdrop-filter:blur(6px)}
.strip div{padding:6px 14px;border-right:1px solid var(--line);display:flex;flex-direction:column;align-items:center;min-width:92px}
.strip div:last-child{border-right:0}
.strip i{font-size:7px;letter-spacing:.18em;color:var(--dim2)}
.strip b{font-family:var(--mono);font-size:13px;font-weight:700;margin-top:2px}
.callout{position:absolute;z-index:3;bottom:52px;left:50%;transform:translateX(-50%);font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--txt);padding:7px 14px;border:1px solid var(--line2);border-radius:5px;background:rgba(7,8,15,.7);opacity:0;transition:.3s;white-space:nowrap}
.callout.show{opacity:1}
.progress{position:absolute;z-index:3;left:0;right:0;bottom:0;height:3px;background:rgba(255,255,255,.05)}
.progress div{height:100%;width:0;background:linear-gradient(90deg,var(--cyan),var(--purple),var(--pink));box-shadow:0 0 12px var(--cyan);transition:width .5s linear}
.overlay{position:absolute;inset:0;z-index:5;display:none;align-items:center;justify-content:center;background:rgba(5,6,11,.6);backdrop-filter:blur(4px)}
.overlay.show{display:flex}
.ov-box{text-align:center}
.ov-eyes{display:flex;gap:10px;justify-content:center;margin-bottom:16px}
.ov-eyes span{width:10px;height:26px;background:#fff;border-radius:5px;box-shadow:0 0 20px #fff;animation:blink 2.4s infinite}
@keyframes blink{0%,92%,100%{transform:scaleY(1)}96%{transform:scaleY(.1)}}
.ov-title{font-family:var(--mono);font-size:22px;font-weight:700;letter-spacing:.3em}
.ov-sub{font-family:var(--mono);font-size:10px;color:var(--dim);letter-spacing:.14em;margin-top:8px}
.ov-ring{width:220px;height:3px;background:rgba(255,255,255,.08);margin:18px auto 0;border-radius:2px;overflow:hidden}
.ov-ring div{height:100%;width:0;background:var(--cyan);box-shadow:0 0 12px var(--cyan);transition:width .2s}

/* certificate */
.cert{width:440px;padding:22px 24px;border-radius:10px;background:linear-gradient(160deg,#121733,#07080f 70%);border:1px solid rgba(255,255,255,.14);box-shadow:0 30px 80px rgba(0,0,0,.6),0 0 60px rgba(56,232,255,.12);animation:pop .5s cubic-bezier(.2,1.4,.4,1)}
.cert.loss{background:linear-gradient(160deg,#1a1420,#07080f 70%);box-shadow:0 30px 80px rgba(0,0,0,.6)}
@keyframes pop{from{transform:scale(.85);opacity:0}}
.cert-top{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;letter-spacing:.16em}
.cert-tag{color:var(--green);padding:3px 8px;border:1px solid rgba(34,227,138,.4);border-radius:4px}
.cert.loss .cert-tag{color:var(--dim);border-color:var(--line2)}
.cert-id{color:var(--dim2)}
.cert-big{font-family:var(--mono);font-size:64px;font-weight:700;margin:14px 0 2px;color:var(--green);text-shadow:0 0 30px rgba(34,227,138,.5);letter-spacing:-.02em}
.cert.loss .cert-big{color:var(--dim);text-shadow:none}
.cert-sub{font-size:13px;color:var(--dim);margin-bottom:16px}
.cert-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.cert-grid i{font-size:8px;letter-spacing:.18em;color:var(--dim2);display:block}
.cert-grid b{font-family:var(--mono);font-size:12px}
.cert-line{margin:14px 0;font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:var(--green);text-align:center}
.cert-btns{display:flex;gap:8px}
.btn{flex:1;padding:12px;border-radius:6px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;font-weight:700;text-align:center;text-decoration:none;color:#05060b;background:linear-gradient(135deg,var(--cyan),#6fa8ff)}
.btn.ghost{background:none;border:1px solid var(--line2);color:var(--txt)}
.cert-next{margin-top:12px;font-family:var(--mono);font-size:10px;color:var(--dim);text-align:center;letter-spacing:.08em}
.cert-next b{color:var(--gold)}

/* stack */
.ticket{padding:8px 12px 12px}
.trow{display:flex;justify-content:space-between;padding:4px 0;font-family:var(--mono);font-size:11px;color:var(--dim)}
.trow b{color:var(--txt)}.trow b.ok{color:var(--green)}
.trow.big{font-size:13px;padding-bottom:8px;border-bottom:1px solid var(--line);margin-bottom:4px}
.trow.big b{color:var(--gold);font-size:18px}
.bars{padding:8px 12px}
.bar{display:grid;grid-template-columns:54px 1fr 34px;align-items:center;gap:10px;font-family:var(--mono);font-size:9px;letter-spacing:.12em;color:var(--dim);padding:3px 0}
.bar div{height:5px;background:rgba(255,255,255,.06);border-radius:3px;overflow:hidden}
.bar div i{display:block;height:100%;width:10%;background:var(--c);box-shadow:0 0 8px var(--c);transition:width .6s}
.bar b{text-align:right;color:var(--txt)}
.mini{width:100%;height:70px;flex:none}
.exhaust{flex:1;overflow:hidden;padding:6px 12px;font-family:var(--mono);font-size:10px;line-height:1.7;color:var(--dim)}
.exhaust div b{color:var(--txt)}.exhaust div em{font-style:normal}

/* pnl */
.pnl-head{display:flex;align-items:center;gap:16px;padding:10px 12px 0}
.pnl-big{font-family:var(--mono);font-size:40px;font-weight:700;color:var(--green);text-shadow:0 0 24px rgba(34,227,138,.35);letter-spacing:-.02em}
.pnl-big.down{color:var(--red);text-shadow:0 0 24px rgba(255,90,60,.35)}
.pnl-side .chip{display:inline-block;padding:3px 8px;border-radius:4px;font-family:var(--mono);font-size:11px;font-weight:700;border:1px solid var(--line2);color:var(--dim)}
.pnl-side .chip.up{color:var(--green);border-color:rgba(34,227,138,.4)}.pnl-side .chip.down{color:var(--red);border-color:rgba(255,90,60,.4)}
.pnl-meta{font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:var(--dim2);margin-top:5px}
.chart{width:100%;flex:1;min-height:0}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}
.kpis div{padding:8px 12px;border-right:1px solid var(--line)}.kpis div:last-child{border-right:0}
.kpis i{font-size:7px;letter-spacing:.18em;color:var(--dim2);display:block}
.kpis b{font-family:var(--mono);font-size:14px}

/* tape */
.tape-head{display:flex;gap:18px;padding:8px 12px;border-bottom:1px solid var(--line)}
.tape-head i{font-size:7px;letter-spacing:.18em;color:var(--dim2);display:block}
.tape-head b{font-family:var(--mono);font-size:14px}
.sol b{color:var(--cyan)}
.tape-list{flex:1;overflow:hidden;font-family:var(--mono);font-size:10px}
.trow2{display:grid;grid-template-columns:56px 1fr 70px 64px 60px;gap:8px;align-items:center;padding:5px 12px;border-bottom:1px solid rgba(255,255,255,.035);animation:slide .35s ease-out}
@keyframes slide{from{transform:translateY(-100%);opacity:0}}
.trow2 .ty{font-weight:700;letter-spacing:.1em}
.trow2.buy .ty{color:var(--green)}.trow2.sell .ty{color:var(--red)}.trow2.new .ty{color:var(--gold)}
.trow2 .sym{color:var(--txt);font-weight:700}.trow2 .sym small{color:var(--dim2);font-weight:400;margin-left:6px}
.trow2 .n{text-align:right;color:var(--dim)}.trow2 .n.hi{color:var(--txt)}
.trow2.focus{background:rgba(56,232,255,.06)}
#tape-live{color:var(--dim2)}#tape-live.on{color:var(--green)}

/* trace */
.trace-list{flex:1;overflow:hidden;padding:6px 0;font-family:var(--mono);font-size:10px}
.tr{display:grid;grid-template-columns:48px 16px 70px 1fr auto;gap:8px;align-items:center;padding:4px 12px;color:var(--dim);animation:slide .3s}
.tr .t{color:var(--dim2)}.tr .d{width:8px;height:8px;border-radius:50%;background:var(--c);box-shadow:0 0 8px var(--c)}
.tr .a{color:var(--c);font-weight:700;letter-spacing:.1em}.tr .m{color:var(--txt);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tr .v{font-weight:700}
.tr .v.up{color:var(--green)}.tr .v.dn{color:var(--red)}

/* footer */
.foot{display:flex;align-items:center;gap:20px;padding:0 16px;border-top:1px solid var(--line);font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:var(--dim2);background:#06070d}
.foot-l{display:flex;align-items:center;gap:8px;color:var(--dim);flex:none}
.foot-c{flex:1;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.demo{padding:4px 8px;border:1px solid var(--line2);border-radius:4px;color:var(--dim);font-family:var(--mono);font-size:9px;letter-spacing:.1em}
.demo.on{color:var(--gold);border-color:rgba(255,209,102,.5)}

.toast{position:fixed;z-index:50;left:50%;bottom:52px;transform:translate(-50%,20px);padding:12px 18px;border-radius:8px;background:#121733;border:1px solid var(--line2);font-family:var(--mono);font-size:11px;letter-spacing:.1em;opacity:0;transition:.3s;pointer-events:none;box-shadow:0 20px 50px rgba(0,0,0,.5)}
.toast.show{opacity:1;transform:translate(-50%,0)}
.toast a{color:var(--cyan)}

/* run flash */
body.flash::before{content:"";position:fixed;inset:0;z-index:100;background:#fff;animation:flash .9s ease-out forwards;pointer-events:none}
@keyframes flash{from{opacity:.9}to{opacity:0}}
body[data-state="closing"] #timer{color:var(--red);text-shadow:0 0 18px rgba(255,90,60,.6);animation:pulse .6s infinite}

@media (max-width:1180px){
  .grid{grid-template-columns:1fr;grid-template-rows:auto;grid-template-areas:'reactor' 'inj' 'stack' 'pnl' 'tape' 'trace' 'candles' 'book' 'pricer'}
  .spec-p{grid-column:1}
  .reactor{min-height:520px;order:-1}
  .stats{display:none}
  .rail{grid-template-columns:repeat(3,1fr);height:auto}
  body{grid-template-rows:56px 26px auto 1fr 34px}
  .foot-c{display:none}
}

/* ---------- event layer ---------- */
.bank{position:absolute;z-index:3;left:12px;top:150px;width:150px;display:flex;flex-direction:column;gap:6px}
.bank-row{border:1px solid var(--line);border-radius:5px;background:rgba(7,8,15,.7);padding:4px 6px}
.bk-h{display:flex;justify-content:space-between;font-family:var(--mono);font-size:8px;letter-spacing:.14em;color:var(--dim)}
.bk-h b{color:var(--txt)}.bk-h span{color:var(--c)}
.bank-row canvas{width:100%;height:26px;display:block}
.co{position:absolute;z-index:3;padding:5px 9px;border:1px solid var(--c);border-radius:5px;background:rgba(7,8,15,.75);font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:var(--txt);opacity:.25;transition:opacity .4s,box-shadow .2s;display:flex;flex-direction:column;gap:2px;pointer-events:none}
.co b{color:var(--c);font-size:9px}.co span{color:var(--dim);white-space:nowrap}
.co.on{opacity:1}.co.blink{box-shadow:0 0 16px var(--c)}
.co.pump{border-style:dashed}
.pushes{position:fixed;z-index:60;top:66px;right:14px;width:330px;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.push{background:#000;border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:12px 14px;box-shadow:0 20px 50px rgba(0,0,0,.6);animation:pushin .45s cubic-bezier(.2,1.3,.4,1);font-family:var(--sans)}
.push.out{animation:pushout .45s forwards}
@keyframes pushin{from{transform:translateX(60px);opacity:0}}@keyframes pushout{to{transform:translateX(40px);opacity:0}}
.p-head{display:flex;align-items:center;gap:10px}.p-head i{display:block;font-size:10px;color:var(--dim)}.p-head b{font-size:13px}
.av2{width:30px;height:30px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff3,var(--c) 60%);display:inline-flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:10px;font-weight:700;color:#05060b;flex:none;box-shadow:0 0 12px var(--c)}
.p-big{font-family:var(--mono);font-size:34px;font-weight:700;color:var(--green);margin:6px 0 2px;text-shadow:0 0 18px rgba(34,227,138,.4)}
.push.l .p-big{color:var(--red);text-shadow:0 0 18px rgba(255,90,60,.4)}
.p-row{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--dim)}
.pct{font-style:normal;padding:2px 8px;border-radius:10px;background:rgba(34,227,138,.18);color:var(--green);font-weight:700;font-size:11px}
.push.l .pct{background:rgba(255,90,60,.18);color:var(--red)}
.p-spark{width:100%;height:38px;margin:6px 0 2px}
.p-foot{display:flex;justify-content:space-between;font-size:10px;color:var(--dim2)}
.badge{font-style:normal;margin-left:6px;padding:1px 6px;border-radius:4px;font-size:8px;letter-spacing:.12em;font-weight:700;background:#2a2f45;color:#fff;vertical-align:middle}
.badge.big{background:#5a3a1a;color:var(--gold)}.badge.mega{background:#4a1530;color:var(--pink)}
.minis{position:fixed;z-index:59;bottom:48px;right:14px;display:flex;flex-direction:column-reverse;gap:6px;pointer-events:none}
.mini{display:flex;align-items:center;gap:8px;padding:6px 10px 6px 6px;border-radius:8px;background:rgba(10,13,24,.92);border:1px solid var(--line2);font-family:var(--mono);font-size:10px;animation:pushin .3s}
.mini .av2{width:22px;height:22px;font-size:8px}.mini b{letter-spacing:.08em}.mini span{color:var(--dim)}.mini.out{animation:pushout .4s forwards}
.float{position:fixed;z-index:70;font-family:var(--mono);font-weight:700;font-size:18px;pointer-events:none;animation:floatup 1.4s ease-out forwards}
.float.w{color:var(--green);text-shadow:0 0 14px rgba(34,227,138,.6)}.float.l{color:var(--red)}
@keyframes floatup{to{transform:translateY(-60px);opacity:0}}
.pnl-big.pop{animation:pop2 .35s}
@keyframes pop2{40%{transform:scale(1.08)}}
body.shake{animation:shake .5s}
@keyframes shake{10%,90%{transform:translate(-1px,0)}20%,80%{transform:translate(2px,1px)}30%,50%,70%{transform:translate(-3px,-1px)}40%,60%{transform:translate(3px,1px)}}
.pnl-body{display:grid;grid-template-columns:1fr 290px;flex:1;min-height:0}
.pnl-left{display:flex;flex-direction:column;min-height:0}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:8px 12px}
.tiles div{background:#0d1120;border:1px solid var(--line);border-radius:8px;padding:8px 10px}
.tiles i{font-size:8px;letter-spacing:.16em;color:var(--dim2);display:block}.tiles b{font-family:var(--mono);font-size:20px;font-weight:700}.tiles b.g{color:var(--green)}
.pnl-right{border-left:1px solid var(--line);display:flex;flex-direction:column;min-height:0}
.cl-h{display:flex;justify-content:space-between;padding:8px 12px;font-family:var(--mono);font-size:9px;letter-spacing:.14em}.cl-h em{font-style:normal;color:var(--dim2)}
.closes{flex:1;overflow:hidden;padding:0 8px}
.close{display:flex;align-items:center;gap:10px;padding:6px 6px;border-radius:8px;animation:slide .3s}
.close:nth-child(odd){background:rgba(255,255,255,.025)}
.close .av2{width:26px;height:26px;font-size:9px}
.cl-n{flex:1;min-width:0}.cl-n b{display:block;font-size:12px}.cl-n span{font-size:9px;color:var(--dim2);font-family:var(--mono)}
.cl-v{text-align:right}.cl-v b{display:block;font-family:var(--mono);font-size:12px;color:var(--green)}.cl-v span{font-family:var(--mono);font-size:9px;color:var(--green)}
.close.l .cl-v b,.close.l .cl-v span{color:var(--red)}
.cd-head{display:flex;align-items:baseline;gap:12px;padding:8px 12px 0}.cd-head b{font-family:var(--mono);font-size:22px;font-weight:700}.cd-head span{font-size:8px;letter-spacing:.16em;color:var(--dim2)}
#cd-ch.up{color:var(--green)}#cd-ch.dn{color:var(--red)}
.book{flex:1;overflow:hidden;padding:6px 10px;font-family:var(--mono);font-size:9px}
.bk{display:grid;grid-template-columns:70px 1fr 40px;align-items:center;gap:8px;padding:2px 0;color:var(--dim)}
.bk i{display:block;height:6px;border-radius:2px;background:var(--red);opacity:.6}.bk.bid i{background:var(--green)}
.bk b{text-align:right;color:var(--txt)}.bk.mid{color:var(--gold);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:3px 0}
.pr-head{display:flex;gap:18px;padding:8px 12px 0}.pr-head i{font-size:8px;letter-spacing:.16em;color:var(--dim2);display:block}.pr-head b{font-family:var(--mono);font-size:16px;font-weight:700}.pr-head b.g{color:var(--green)}
.spec-body{display:grid;grid-template-columns:1fr 220px;flex:1;min-height:0}
#spec{width:100%;height:100%}
.spec-feats{padding:8px 12px;font-family:var(--mono);font-size:9px;display:flex;flex-direction:column;gap:5px;border-left:1px solid var(--line)}
.spec-feats div{display:grid;grid-template-columns:52px 1fr;align-items:center;gap:8px;color:var(--dim)}
.spec-feats i{display:block;height:5px;border-radius:2px;background:linear-gradient(90deg,var(--purple),var(--pink));transition:width .3s}

/* ---------- fx layer ---------- */
#fx{position:fixed;inset:0;z-index:80;pointer-events:none}
.vig{position:fixed;inset:0;z-index:75;pointer-events:none;opacity:0;transition:opacity .5s}
.vig.w{box-shadow:inset 0 0 180px rgba(34,227,138,.55)}.vig.l{box-shadow:inset 0 0 180px rgba(255,90,60,.55)}
.vig.on{opacity:1;transition:none}
.radar{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden}
.sweep{position:absolute;left:50%;top:50%;width:900px;height:900px;margin:-450px 0 0 -450px;border-radius:50%;background:conic-gradient(from 0deg,rgba(56,232,255,.22),transparent 28%);animation:sweep 3.2s linear infinite;opacity:0;transition:opacity .6s}
body[data-state="run"] .sweep,body[data-state="closing"] .sweep{opacity:1}
body[data-state="closing"] .sweep{animation-duration:1.4s;background:conic-gradient(from 0deg,rgba(255,90,60,.3),transparent 28%)}
@keyframes sweep{to{transform:rotate(360deg)}}
.ret{position:absolute;width:90px;height:90px;margin:-45px 0 0 -45px;opacity:0}
.ret i{position:absolute;width:18px;height:18px;border:2px solid var(--cyan);box-shadow:0 0 8px var(--cyan)}
.ret i:nth-child(1){left:0;top:0;border-right:0;border-bottom:0}.ret i:nth-child(2){right:0;top:0;border-left:0;border-bottom:0}.ret i:nth-child(3){left:0;bottom:0;border-right:0;border-top:0}.ret i:nth-child(4){right:0;bottom:0;border-left:0;border-top:0}
.ret b{position:absolute;left:50%;top:100%;transform:translateX(-50%);margin-top:6px;font-family:var(--mono);font-size:9px;letter-spacing:.14em;color:var(--cyan);white-space:nowrap;text-shadow:0 0 8px var(--cyan)}
.ret.on{animation:lock 1.6s ease-out forwards}
@keyframes lock{0%{opacity:0;transform:scale(2.4) rotate(45deg)}25%{opacity:1;transform:scale(1) rotate(0)}80%{opacity:1}100%{opacity:0}}
.glitch{position:relative;animation:gl .7s steps(2) both}
.glitch::before,.glitch::after{content:attr(data-txt);position:absolute;left:0;top:0;width:100%;overflow:hidden;clip-path:inset(20% 0 55% 0)}
.glitch::before{color:var(--cyan);transform:translateX(-3px);animation:gl2 .7s steps(3) both}.glitch::after{color:var(--pink);transform:translateX(3px);clip-path:inset(60% 0 10% 0);animation:gl2 .7s steps(4) reverse both}
@keyframes gl{0%{transform:skewX(8deg)}50%{transform:skewX(-6deg)}100%{transform:none}}
@keyframes gl2{0%{clip-path:inset(10% 0 70% 0)}50%{clip-path:inset(50% 0 20% 0)}100%{clip-path:inset(80% 0 5% 0)}}
.pnl-big.tick{filter:brightness(1.6);letter-spacing:.02em;transition:none}
.streak{position:absolute;z-index:3;right:16px;top:100px;display:flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid rgba(255,167,38,.6);border-radius:6px;background:rgba(7,8,15,.8);font-family:var(--mono);opacity:0;transition:.3s;transform:translateY(-6px)}
.streak.on{opacity:1;transform:none}.streak b{font-size:22px;color:var(--gold);text-shadow:0 0 12px var(--gold)}.streak span{font-size:8px;letter-spacing:.18em;color:var(--dim)}.streak em{font-style:normal;font-size:16px;animation:fire .6s infinite alternate}
.streak.pop{animation:pop2 .4s}
@keyframes fire{to{transform:scale(1.25) rotate(6deg)}}
.combo{position:fixed;z-index:85;font-family:var(--mono);font-weight:700;font-size:34px;color:var(--gold);text-shadow:0 0 24px var(--gold);pointer-events:none;animation:combo 1.3s ease-out forwards;letter-spacing:.1em}
@keyframes combo{0%{transform:scale(.4) rotate(-8deg);opacity:0}20%{transform:scale(1.2) rotate(3deg);opacity:1}100%{transform:translateY(-80px) scale(1);opacity:0}}
.splash{position:fixed;inset:0;z-index:78;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;opacity:0;background:radial-gradient(ellipse at center,rgba(255,209,102,.18),rgba(5,6,11,.75) 70%);transition:opacity .25s}
.splash.on{opacity:1;animation:spin 2.5s}
.sp-t{font-family:var(--mono);font-weight:700;font-size:96px;letter-spacing:.14em;color:var(--gold);text-shadow:0 0 40px rgba(255,209,102,.8),0 0 120px rgba(255,167,38,.5);animation:sptitle .7s cubic-bezier(.2,1.6,.4,1) both}
.splash.mega .sp-t{color:var(--pink);text-shadow:0 0 40px rgba(255,61,129,.8)}.splash.ultra .sp-t{color:var(--cyan);text-shadow:0 0 40px rgba(56,232,255,.8)}.splash.epic .sp-t{color:#fff;text-shadow:0 0 50px #fff,0 0 140px var(--purple)}.splash.target .sp-t{color:var(--green);text-shadow:0 0 50px rgba(34,227,138,.9);font-size:80px}
.sp-n{font-family:var(--mono);font-weight:700;font-size:72px;color:#fff;margin-top:10px;text-shadow:0 0 30px rgba(255,255,255,.6);font-variant-numeric:tabular-nums}
.sp-s{font-family:var(--mono);font-size:12px;letter-spacing:.3em;color:var(--dim);margin-top:14px}
@keyframes sptitle{from{transform:scale(.2);opacity:0}}
@keyframes spin{0%{backdrop-filter:blur(0)}10%{backdrop-filter:blur(3px)}100%{backdrop-filter:blur(0)}}
.whale{grid-column:1/-1;height:240px}
.wf{flex:1;overflow:hidden;padding:4px 10px;font-family:var(--mono);font-size:10px}
.wr{display:grid;grid-template-columns:16px 110px 70px 1fr 60px;align-items:center;gap:10px;padding:3px 8px;border-radius:4px;animation:slide .3s;color:var(--dim);height:18px;transition:height .3s}
.wr b{color:var(--txt)}.wr em{font-style:normal;text-align:right;color:var(--txt)}.wr i{font-style:normal;text-align:right;font-size:8px;letter-spacing:.16em}
.wr.buy .arr{color:var(--green)}.wr.sell .arr{color:var(--red)}
.wr.big{height:26px;background:rgba(255,255,255,.04);font-size:11px}.wr.big i{color:var(--gold)}
.wr.huge{height:34px;font-size:12px;background:linear-gradient(90deg,rgba(255,209,102,.18),transparent);box-shadow:inset 3px 0 0 var(--gold)}.wr.huge i{color:var(--gold);text-shadow:0 0 8px var(--gold)}
.wr.huge.sell{background:linear-gradient(90deg,rgba(255,90,60,.2),transparent);box-shadow:inset 3px 0 0 var(--red)}
.bub{position:absolute;z-index:6;left:12px;top:100%;margin-top:-6px;padding:6px 9px;border-radius:8px;border-top-left-radius:0;background:#131a30;border:1px solid var(--line2);font-family:var(--mono);font-size:9px;color:var(--txt);white-space:nowrap;animation:pushin .25s;box-shadow:0 8px 20px rgba(0,0,0,.5)}
.bub.out{animation:pushout .4s forwards}
.gwins{display:flex;align-items:center;height:22px;border-top:1px solid var(--line);background:#07080f;overflow:hidden}
.gw-tag{flex:none;padding:0 12px;height:100%;display:flex;align-items:center;font-family:var(--mono);font-size:8px;letter-spacing:.18em;color:var(--gold);background:#0d1020;border-right:1px solid var(--line2)}
.gw-track{display:flex;gap:30px;white-space:nowrap;font-family:var(--mono);font-size:9px;color:var(--dim);animation:wire 60s linear infinite;padding-left:20px}
.gw-track b{color:var(--txt)}.gw-track em{font-style:normal;color:var(--green);font-weight:700}
body{grid-template-rows:56px 26px 64px 1fr 22px 34px}

/* ---------- lab layer: bezel + chapters ---------- */
.bezel{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none}
.chapters{grid-column:1/-1;display:grid;grid-template-columns:repeat(8,1fr);gap:8px;height:190px}
.chp{border:1px solid var(--line2);border-radius:6px;background:linear-gradient(180deg,#0b0e18,#07080f);display:flex;flex-direction:column;overflow:hidden;position:relative}
.chp::after{content:"";position:absolute;inset:4px;border:1px solid rgba(255,255,255,.04);border-radius:4px;pointer-events:none}
.chp-h{display:flex;align-items:center;gap:6px;padding:6px 8px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:7px;letter-spacing:.14em;color:var(--txt);font-weight:700}
.chp-h em{margin-left:auto;font-style:normal;color:var(--dim)}
.cbars{display:flex;gap:1px;align-items:flex-end;height:10px}.cbars b{width:2px;height:4px;background:var(--cyan);transition:height .3s}
.chp-b{flex:1;overflow:hidden;padding:5px 8px;font-family:var(--mono);font-size:8px;color:var(--dim);position:relative}
.fl{display:grid;grid-template-columns:22px 34px 1fr;gap:6px;line-height:1.5;animation:slide .25s}.fl i{color:var(--dim2)}.fl b{color:var(--txt)}.fl.hl span{background:rgba(56,232,255,.18);color:var(--txt);padding:0 3px;border-radius:2px}
#cv-solver{width:100%;height:calc(100% - 18px);display:block;image-rendering:pixelated}
.sl-foot{display:flex;gap:4px;margin-top:4px}.sl-foot span{flex:1;text-align:center;padding:2px 0;border:1px solid var(--line);border-radius:3px;font-size:7px;letter-spacing:.12em}.sl-foot .on{background:rgba(167,107,255,.3);color:var(--txt);border-color:var(--purple)}
.cl2{display:grid;grid-template-columns:16px 1fr;gap:6px;line-height:1.5;white-space:nowrap}.cl2 i{color:var(--dim2)}.cl2 span{color:var(--txt)}
.df{display:grid;grid-template-columns:1fr 1fr;gap:6px;height:70%}.df div{display:flex;flex-direction:column}.df i{font-size:6px;letter-spacing:.14em;color:var(--dim2);font-style:normal;margin-bottom:3px}.df canvas{flex:1;width:100%;min-height:0}
#cv-dbar{width:100%;height:22px;display:block;margin-top:4px}.df-foot{font-size:6px;letter-spacing:.14em;color:var(--dim2);margin-top:3px}
.rs{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;line-height:1.7;white-space:nowrap;overflow:hidden}.rs.h{color:var(--dim2);font-size:6px;letter-spacing:.14em;border-bottom:1px solid var(--line)}.rs .hl{background:rgba(255,209,102,.25);color:var(--txt);padding:0 3px;border-radius:2px}.rs .hl2{background:rgba(34,227,138,.2);color:var(--txt);padding:0 3px;border-radius:2px}.rs.f{display:block;font-size:6px;color:var(--dim2);margin-top:4px;letter-spacing:.1em}
#cv-buf{width:100%;height:100%;display:block}
.dp{display:grid;grid-template-columns:14px 42px 1fr 40px;gap:5px;align-items:center;line-height:1.55}.dp i{color:var(--dim2)}.dp b{color:var(--txt)}.dp span{height:4px;background:rgba(255,255,255,.06);border-radius:2px;overflow:hidden}.dp em{display:block;height:100%;background:var(--cyan);transition:width .6s}.dp small{font-size:6px;color:var(--dim2);text-align:right}.dp.f{display:block;font-size:6px;color:var(--dim2);margin-top:3px}
#cv-idx{width:100%;height:calc(100% - 14px);display:block}.ix-foot{font-size:6px;letter-spacing:.12em;color:var(--gold);margin-top:3px}
@media (max-width:1180px){.chapters{grid-template-columns:repeat(2,1fr);height:auto}.chp{height:170px}}

.av2.img{object-fit:cover;background:#0b0e18}

.av2.img{object-fit:cover;background:#000}
