:root{
  --bg:#000;--text:#fff;--sec:rgba(235,235,245,.6);--ter:rgba(235,235,245,.3);--sep:rgba(84,84,88,.55);
  --c1:#1c1c1e;--c2:#2c2c2e;--green:#00d35a;--red:#ff453a;--orange:#ff9f0a;--cyan:#64d2ff;--blue:#0a84ff;
  --yellow:#ffd60a;--pink:#ff6b9a;
  --disp:-apple-system,"SF Pro Display",system-ui,sans-serif;--txt:-apple-system,"SF Pro Text",system-ui,sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,monospace;
  --st:env(safe-area-inset-top);--sb:env(safe-area-inset-bottom);--sl:env(safe-area-inset-left);--sr:env(safe-area-inset-right);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--bg);color:var(--text);font:17px/1.3 var(--txt);font-variant-numeric:tabular-nums;
  -webkit-font-smoothing:antialiased;overscroll-behavior-y:none}
body{padding:0 0 calc(84px + var(--sb))}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
.num{font-variant-numeric:tabular-nums}
.sec{color:var(--sec)}.ter{color:var(--ter)}.g{color:var(--green)}.r{color:var(--red)}
.wrap{padding:0 calc(16px + var(--sr)) 0 calc(16px + var(--sl))}

/* navbar */
.nav{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:8px;
  padding:calc(var(--st) + 6px) 16px 6px;background:rgba(0,0,0,.72);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}
.nav .title{font:600 17px var(--txt);flex:1;display:flex;align-items:center;gap:4px;min-height:44px}
.nav .title .chev{color:var(--ter)}
.ibtn{width:44px;height:44px;display:grid;place-items:center;border-radius:22px;position:relative}
.ibtn svg{width:24px;height:24px}
.avatar{width:32px;height:32px;border-radius:16px;background:var(--c2);display:grid;place-items:center;font:600 14px var(--txt)}
.dot{position:absolute;top:10px;right:11px;width:9px;height:9px;border-radius:5px;background:var(--green);border:2px solid #000}
.back{display:flex;align-items:center;gap:2px;color:var(--blue);min-height:44px;min-width:44px;font-size:17px}
.errbar{background:#2a0f0d;color:var(--red);font-size:14px;padding:9px 16px}

/* balance */
.bal{padding:6px 16px 0}
.balrow{display:flex;align-items:center;gap:10px}
.big{font:700 66px/1.02 var(--disp);letter-spacing:-1.5px;display:flex}
.odo{display:inline-flex;overflow:hidden}
.odo .d{display:inline-block;height:1.02em;overflow:hidden;position:relative}
.odo .d .strip{display:flex;flex-direction:column;transition:transform 600ms cubic-bezier(.2,.8,.2,1)}
.odo .d .strip span{height:1.02em;display:block;text-align:center}
.odo .s{display:inline-block}
.pill{display:inline-flex;align-items:center;height:26px;padding:0 10px;border-radius:13px;font:600 14px var(--txt)}
.pill.paper{background:rgba(255,159,10,.16);color:var(--orange)}
.pill.mult{background:rgba(0,211,90,.16);color:var(--green)}
.pill.mono{font:500 13px var(--mono);height:24px;padding:0 8px;border-radius:7px}
.pill.red{background:rgba(255,69,58,.16);color:var(--red)}.pill.green{background:rgba(0,211,90,.16);color:var(--green)}
.today{font:500 17px var(--txt);margin-top:4px;display:flex;gap:10px;align-items:center}

/* chart */
.chartbox{position:relative;height:240px;margin:8px 0 0}
.chartbox canvas{width:100%;height:100%;display:block}
.chartempty{position:absolute;inset:0;display:grid;place-items:center;color:var(--sec);font-size:15px;pointer-events:none}
.ranges{display:flex;justify-content:space-between;padding:6px 16px 0}
.ranges button{min-width:44px;height:44px;border-radius:12px;font:600 14px var(--txt);color:var(--sec)}
.ranges button.on{background:var(--c1);color:var(--green)}

/* sections */
.hdr{display:flex;align-items:baseline;justify-content:space-between;padding:26px 16px 10px}
.hdr h2{font:700 22px var(--disp);margin:0}
.hdr a,.hdr button{color:var(--blue);font-size:17px;min-height:44px;display:flex;align-items:center}

/* carousel + agent card */
.car{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 16px;scrollbar-width:none;
  -webkit-overflow-scrolling:touch;scroll-padding:0 16px}
.car::-webkit-scrollbar{display:none}
.acard{flex:0 0 auto;scroll-snap-align:start;background:var(--c1);padding:22px;display:flex;flex-direction:column;
  overflow:hidden;position:relative}
.acard .an{font:600 15px var(--txt);display:flex;align-items:center;gap:8px}
.acard .sd{width:8px;height:8px;border-radius:4px;background:var(--green)}
.acard .sd.off{background:var(--ter)}
.acard .stat{font:700 40px/1.05 var(--disp);margin:10px 0 2px;letter-spacing:-.5px}
.acard .sub{color:var(--sec);font-size:15px}
.acard .body{flex:1;margin-top:14px;display:flex;flex-direction:column;gap:8px;min-height:0}
.feed{display:flex;flex-direction:column;gap:6px;font-size:14px}
.feed .row{display:flex;justify-content:space-between;gap:10px;white-space:nowrap;overflow:hidden}
.feed .row .l{overflow:hidden;text-overflow:ellipsis}
.feed .row.kill .l{color:var(--ter);text-decoration:line-through;text-decoration-color:var(--red)}
.feed .row.kill .rr{color:var(--red)}
.strips{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.strips i{height:30px;border-radius:8px;background:var(--c2);display:block;transition:background 150ms}
.strips i.ok{background:var(--green)}.strips i.bad{background:var(--red)}.strips i.run{background:var(--cyan)}
.bar{height:8px;border-radius:4px;background:var(--c2);overflow:hidden}
.bar i{display:block;height:100%;background:var(--green);width:0;transition:width 1.2s linear}
.ring{width:120px;height:120px;align-self:center}
.pills{display:flex;gap:8px;flex-wrap:wrap}

/* lists */
.list{background:var(--c1);border-radius:14px;margin:0 16px;overflow:hidden}
.li{display:flex;align-items:center;gap:12px;padding:12px 16px;min-height:60px;position:relative}
.li+.li:before{content:"";position:absolute;top:0;left:60px;right:0;height:.5px;background:var(--sep)}
.li .ic{width:34px;height:34px;border-radius:17px;display:grid;place-items:center;flex:0 0 34px;font:700 15px var(--txt)}
.li .mid{flex:1;min-width:0}
.li .t{font:600 16px var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.li .st{color:var(--sec);font-size:14px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.li .v{text-align:right;font:600 16px var(--txt);white-space:nowrap}
.li .v small{display:block;color:var(--sec);font:400 13px var(--txt);margin-top:2px}
.li.plain{min-height:52px}
.li.plain+.li.plain:before{left:16px}
.empty{color:var(--sec);text-align:center;padding:28px 16px;font-size:15px}
.more{display:block;width:100%;height:48px;color:var(--blue)}

/* tab bar */
.tabs{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;padding:6px 8px calc(var(--sb) + 4px);
  background:rgba(22,22,24,.78);-webkit-backdrop-filter:blur(24px) saturate(180%);backdrop-filter:blur(24px) saturate(180%);
  border-top:.5px solid var(--sep)}
.tabs a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;font:500 10px var(--txt);color:var(--ter);min-height:48px;justify-content:center}
.tabs a svg{width:26px;height:26px}
.tabs a.on{color:var(--text)}

/* agents tab */
.afull{background:var(--c1);border-radius:22px;margin:0 16px 14px;padding:18px}
.afull .top{display:flex;align-items:center;gap:10px}
.afull .top .n{font:700 20px var(--disp);flex:1}
.afull .cnt{color:var(--sec);font-size:15px;margin:4px 0 12px}
.switch{width:51px;height:31px;border-radius:16px;background:var(--c2);position:relative;transition:background .2s;flex:0 0 51px}
.switch:after{content:"";position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:14px;background:#fff;transition:transform .2s;box-shadow:0 2px 4px rgba(0,0,0,.3)}
.switch.on{background:var(--green)}.switch.on:after{transform:translateX(20px)}
.switch.locked{opacity:.4}
.swwrap{min-width:51px;min-height:44px;display:flex;align-items:center}
.dec{font-size:14px;display:grid;grid-template-columns:44px 1fr auto;gap:4px 10px;padding:8px 0;border-top:.5px solid var(--sep)}
.dec .tm{color:var(--ter)}.dec .cn{color:var(--blue);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dec .rs{grid-column:2/4;color:var(--sec)}
.dec .vd{font-weight:600}
.lnk{color:var(--blue);min-height:44px;display:inline-flex;align-items:center}

/* coin + auditor */
.chead{padding:4px 16px 0}
.chead .nm{font:700 28px var(--disp);display:flex;align-items:center;gap:10px}
.chip{display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 9px;border-radius:13px;background:rgba(0,211,90,.16);color:var(--green);font:600 13px var(--txt)}
.chip.bad{background:rgba(255,69,58,.16);color:var(--red)}
.chip.na{background:var(--c2);color:var(--sec)}
.cprice{font:700 52px/1.05 var(--disp);letter-spacing:-1px;margin-top:8px}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--sep);border-radius:14px;overflow:hidden;margin:14px 16px 0}
.stats div{background:var(--c1);padding:12px 14px}
.stats b{display:block;font:600 17px var(--txt);margin-top:2px}
.stats span{color:var(--sec);font-size:13px}
.card{background:var(--c1);border-radius:14px;margin:14px 16px 0;padding:14px 16px}
.card .ct{font:600 16px var(--txt);margin-bottom:8px}
.kv{display:flex;justify-content:space-between;font-size:15px;padding:5px 0}
.kv span:first-child{color:var(--sec)}
.cta{position:sticky;bottom:calc(84px + var(--sb));padding:14px 16px 10px;background:linear-gradient(transparent,#000 30%)}
.cta a,.cta button{display:flex;align-items:center;justify-content:center;width:100%;height:54px;border-radius:27px;
  background:var(--green);color:#000;font:700 17px var(--txt)}
.cta .sell{background:var(--red);color:#fff}
.discs{position:relative;height:290px;margin:14px 16px 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px}
.disc{width:72%;height:28px;border-radius:50%;background:var(--c2);position:relative;transition:background 150ms;display:grid;place-items:center;font:700 13px var(--txt)}
.disc.ok{background:var(--green);color:#000}.disc.bad{background:var(--red)}.disc.na{background:#1a1a1c;color:var(--ter)}
.beam{position:absolute;left:8%;right:8%;height:30px;border-radius:50%;background:rgba(100,210,255,.35);box-shadow:0 0 0 2px var(--cyan) inset;
  transition:top 350ms ease;pointer-events:none;opacity:0}
.verdict{text-align:center;padding:10px 16px 0}
.verdict .vt{font:700 22px var(--disp)}
.verdict .vs{color:var(--sec);margin-top:4px}
.lrow{display:flex;align-items:center;gap:10px;padding:11px 16px;font-size:15px;position:relative}
.lrow+.lrow:before{content:"";position:absolute;top:0;left:46px;right:0;height:.5px;background:var(--sep)}
.lrow .lk{width:22px;height:22px;border-radius:11px;display:grid;place-items:center;font-size:13px;font-weight:700;background:var(--c2);color:var(--ter)}
.lrow .lk.ok{background:var(--green);color:#000}.lrow .lk.bad{background:var(--red);color:#fff}
.lrow .ln{flex:1}.lrow .lv{color:var(--sec);text-align:right}

/* account */
.seg{display:flex;background:var(--c1);border-radius:10px;padding:2px;margin:0 16px}
.seg button{flex:1;height:40px;border-radius:8px;font:600 15px var(--txt);color:var(--sec)}
.seg button.on{background:var(--c2);color:var(--text)}
.grp{font:600 13px var(--txt);color:var(--sec);padding:24px 32px 8px;text-transform:none}
.set{padding:10px 16px;position:relative}
.set+.set:before{content:"";position:absolute;top:0;left:16px;right:0;height:.5px;background:var(--sep)}
.set .sl{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:15px}
.set input[type=number],.set input[type=text],.field{width:110px;height:36px;border-radius:9px;border:0;background:var(--c2);color:var(--text);
  font:500 15px var(--mono);text-align:right;padding:0 10px}
.set input[type=range]{width:100%;accent-color:var(--green);height:32px}
.set .err{color:var(--red);font-size:13px;margin-top:4px}
.note{font-size:13px;color:var(--sec);padding:6px 32px 0}
.note.warn{color:var(--orange)}
.toast{position:fixed;left:50%;bottom:calc(100px + var(--sb));transform:translateX(-50%);background:var(--c2);padding:10px 18px;border-radius:20px;font-size:15px;z-index:50}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:60;display:grid;place-items:center;padding:24px}
.modal .box{background:var(--c1);border-radius:16px;padding:20px;width:100%;max-width:340px}
.modal .box h3{margin:0 0 8px;font:600 17px var(--txt)}
.modal .box p{color:var(--sec);font-size:14px;margin:0 0 14px}
.modal .row{display:flex;gap:10px;margin-top:14px}
.modal .row button{flex:1;height:44px;border-radius:12px;background:var(--c2);font-weight:600}
.modal .row button.pri{background:var(--blue)}
.modal input{width:100%;height:44px;border-radius:10px;border:0;background:var(--c2);color:#fff;font:600 17px var(--txt);padding:0 12px}
.search{margin:6px 16px 0}
.search input{width:100%;height:40px;border-radius:10px;border:0;background:var(--c1);color:#fff;font-size:16px;padding:0 12px}

/* loading */
.sk{background:var(--c1);border-radius:12px;animation:pulse 1.2s ease-in-out infinite alternate}
@keyframes pulse{from{opacity:.5}to{opacity:1}}
@media (prefers-reduced-motion:reduce){
  .sk{animation:none}
  .odo .d .strip,.bar i,.beam,.disc,.strips i,.switch,.switch:after{transition:none!important}
}
