:root{--bg:#000;--t1:#fff;--t2:rgba(235,235,245,.6);--t3: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;
--st:env(safe-area-inset-top);--sb:env(safe-area-inset-bottom);--sl:env(safe-area-inset-left);--sr:env(safe-area-inset-right)}
[hidden]{display:none!important}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:#000;color:#fff;font-family:-apple-system,"SF Pro Text",BlinkMacSystemFont,"Helvetica Neue",sans-serif;
font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
.view{padding:calc(var(--st) + 4px) calc(16px + var(--sr)) calc(96px + var(--sb)) calc(16px + var(--sl));min-height:100vh}
.big{font-family:-apple-system,"SF Pro Display",BlinkMacSystemFont,sans-serif;letter-spacing:-.02em}
.t2{color:var(--t2)}.t3{color:var(--t3)}.green{color:var(--green)}.red{color:var(--red)}.orange{color:var(--orange)}.cyan{color:var(--cyan)}.blue{color:var(--blue)}
.mono{font-family:ui-monospace,"SF Mono",Menlo,monospace}
/* offline row */
.offline{position:sticky;top:0;z-index:30;background:#000;color:var(--red);font-size:13px;padding:calc(var(--st) + 8px) 16px 8px;border-bottom:.5px solid var(--sep)}
/* navbar */
.nav{display:flex;align-items:center;height:52px;gap:10px}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--c2);display:grid;place-items:center;font-weight:600;font-size:14px;min-width:44px;min-height:44px;background-clip:content-box;padding:6px}
.nav .title{font-weight:600;font-size:17px;flex:1;display:flex;align-items:center;min-height:44px}
.nav .title b{color:var(--t2);font-weight:400;margin-left:4px}
.iconbtn{width:44px;height:44px;display:grid;place-items:center;position:relative}
.iconbtn svg{width:22px;height:22px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round}
.dot{position:absolute;top:10px;right:10px;width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 2px #000}
.back{display:flex;align-items:center;gap:2px;color:var(--blue);font-size:17px;min-height:44px;min-width:44px}
.back svg{width:12px;height:20px;stroke:var(--blue);fill:none;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
/* balance */
.balrow{display:flex;align-items:center;gap:10px;margin-top:6px}
.balance{font-size:66px;font-weight:600;line-height:1.05;display:inline-flex;overflow:hidden;height:1.05em}
.badge{font-size:12px;font-weight:600;color:#000;background:var(--orange);border-radius:999px;padding:3px 8px;letter-spacing:.02em}
.sub{display:flex;align-items:center;gap:10px;margin-top:6px;font-size:15px}
.pill{border-radius:999px;padding:3px 9px;font-size:13px;font-weight:600}
.pill.g{background:rgba(0,211,90,.16);color:var(--green)}
.pill.r{background:rgba(255,69,58,.16);color:var(--red)}
.pill.mono{font-weight:500}
/* odometer */
.odo{display:inline-flex;height:1.05em;overflow:hidden}
.odo .d{display:inline-block;height:1.05em;overflow:hidden;position:relative}
.odo .col{display:flex;flex-direction:column;transition:transform 600ms cubic-bezier(.16,1,.3,1)}
.odo .col span{height:1.05em;line-height:1.05em;text-align:center}
.odo .s{line-height:1.05em}
@media (prefers-reduced-motion:reduce){.odo .col{transition:none!important}*{animation:none!important;transition:none!important}}
/* chart */
.chart{position:relative;margin:14px -16px 0;height:230px}
.chart canvas{width:100%;height:100%;display:block}
.empty-chart{position:absolute;inset:0;display:grid;place-items:center;color:var(--t2);font-size:15px;pointer-events:none}
.ranges{display:flex;justify-content:space-between;margin:8px 0 4px;border-bottom:.5px solid var(--sep);padding-bottom:8px}
.ranges button{font-size:13px;font-weight:600;color:var(--green);padding:6px 10px;border-radius:8px;min-height:32px;min-width:44px}
.ranges button.on{background:var(--green);color:#000}
/* sections */
.sect{display:flex;align-items:baseline;justify-content:space-between;margin:26px 0 12px}
.sect h2{font-size:22px;font-weight:700;margin:0}
.sect h2 span{color:var(--t2);font-weight:600}
.sect a{color:var(--green);font-size:15px;min-height:44px;display:flex;align-items:center}
/* carousel */
.carousel{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -16px;padding:0 16px;scrollbar-width:none}
.carousel::-webkit-scrollbar{display:none}
.carousel>.acard{scroll-snap-align:center;flex:0 0 auto}
/* agent card */
.acard{background:var(--c1);position:relative;overflow:hidden;display:flex;flex-direction:column;padding:20px}
.acard .hd{display:flex;align-items:center;gap:8px}
.acard .nm{font-size:17px;font-weight:600}
.sdot{width:8px;height:8px;border-radius:50%;background:var(--green)}
.sdot.paused{background:var(--orange)}.sdot.down{background:var(--red)}
.acard .cnt{margin-left:auto;color:var(--t2);font-size:15px}
.acard .hero{font-size:40px;font-weight:600;margin-top:10px}
.acard .lbl{color:var(--t2);font-size:15px;margin-top:2px}
.acard .body{flex:1;display:flex;flex-direction:column;justify-content:flex-end;gap:6px;min-height:0;overflow:hidden}
.feed{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:14px}
.feed li{display:flex;justify-content:space-between;gap:8px;white-space:nowrap;overflow:hidden}
.feed li .n{overflow:hidden;text-overflow:ellipsis}
.feed li.kill .n{color:var(--t3);text-decoration:line-through}
.feed li.kill .r{color:var(--red)}
.feed li .r{color:var(--t2);flex-shrink:0}
.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.no{background:var(--red)}.strips i.run{background:var(--cyan);animation:pulse 1.2s infinite}
.ring{width:120px;height:120px;margin:4px auto 0;position:relative}
.ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.ring .v{position:absolute;inset:0;display:grid;place-items:center;font-size:34px;font-weight:600}
.bar{height:8px;border-radius:4px;background:var(--c2);overflow:hidden}
.bar i{display:block;height:100%;background:var(--green);transition:width 1.2s linear}
.pills{display:flex;gap:8px;flex-wrap:wrap}
.pillm{font-family:ui-monospace,"SF Mono",Menlo,monospace;font-size:13px;border-radius:999px;padding:5px 10px}
.pillm.r{background:rgba(255,69,58,.16);color:var(--red)}.pillm.g{background:rgba(0,211,90,.16);color:var(--green)}.pillm.n{background:var(--c2);color:var(--t2)}
.emptytxt{color:var(--t2);font-size:15px;margin:auto 0}
/* lists */
.list{background:var(--c1);border-radius:14px;overflow:hidden}
.row{display:flex;align-items:center;gap:12px;padding:12px 16px;min-height:60px;position:relative}
.row+.row::before{content:"";position:absolute;top:0;left:62px;right:0;border-top:.5px solid var(--sep)}
.list.plain .row+.row::before{left:16px}
.row .ic{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;font-size:15px;font-weight:700}
.ic.bought{background:rgba(10,132,255,.18);color:var(--blue)}.ic.sold{background:rgba(0,211,90,.16);color:var(--green)}
.ic.stopped{background:rgba(255,69,58,.16);color:var(--red)}.ic.rejected{background:var(--c2);color:var(--t2)}
.row .tx{flex:1;min-width:0}
.row .tt{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row .st{font-size:13px;color:var(--t2);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row .vl{font-size:15px;text-align:right;white-space:nowrap;flex-shrink:0;max-width:48%;overflow:hidden;text-overflow:ellipsis}
.row .chev{color:var(--t3);font-size:18px}
.empty{color:var(--t2);text-align:center;padding:40px 0;font-size:15px}
h1.pt{font-size:34px;font-weight:700;margin:8px 0 16px}
/* skeleton */
.sk{background:var(--c1);border-radius:10px;animation:pulse 1.2s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}
/* switch */
.sw{width:51px;height:31px;border-radius:16px;background:var(--c2);position:relative;flex-shrink:0;opacity:.85}
.sw::after{content:"";position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:50%;background:#fff;transition:transform .2s}
.sw.on{background:var(--green)}.sw.on::after{transform:translateX(20px)}
.hint{font-size:12px;color:var(--t3);font-family:ui-monospace,"SF Mono",Menlo,monospace}
/* big agent card in tab */
.agent-full{background:var(--c1);border-radius:22px;padding:18px 16px;margin-bottom:14px}
.agent-full .hd{display:flex;align-items:center;gap:8px;min-height:44px}
.agent-full .hd .nm{font-size:20px;font-weight:700}
.agent-full .hd .cnt{color:var(--t2);font-size:15px;margin-left:6px}
.agent-full .hd .sw{margin-left:auto}
.dec{list-style:none;margin:8px 0 0;padding:0}
.dec li{display:grid;grid-template-columns:44px 1fr auto;gap:8px;font-size:14px;padding:9px 0;border-top:.5px solid var(--sep);align-items:center}
.dec li .tm{color:var(--t3)}
.dec li a{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dec li .vd{text-align:right;color:var(--t2);max-width:170px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dec li .vd.pass{color:var(--green)}.dec li .vd.red{color:var(--red)}
.linkbtn{display:flex;align-items:center;justify-content:space-between;color:var(--green);font-size:15px;min-height:44px;border-top:.5px solid var(--sep);margin-top:6px}
/* auditor screen */
.discs{position:relative;width:220px;margin:18px auto 8px;height:268px}
.disc{position:absolute;left:0;right:0;height:34px;border-radius:50%;background:#2c2c2e;border:1px solid #3a3a3c;display:grid;place-items:center;transition:background 150ms,border-color 150ms}
.disc svg{width:18px;height:18px;fill:none;stroke:#000;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;opacity:0;transition:opacity 150ms}
.disc.ok{background:var(--green);border-color:var(--green)}.disc.no{background:var(--red);border-color:var(--red)}
.disc.ok svg,.disc.no svg{opacity:1}
.beam{position:absolute;left:-14px;right:-14px;height:3px;border-radius:2px;background:var(--cyan);opacity:0;top:0}
.verdict{text-align:center;margin-top:8px}
.verdict .v1{font-size:22px;font-weight:700}
.verdict .v2{color:var(--t2);font-size:15px;margin-top:4px}
.vrows .row{min-height:48px}
.vrows .num{width:24px;color:var(--t3);font-size:14px}
.cta{display:flex;align-items:center;justify-content:center;height:54px;border-radius:27px;background:var(--green);color:#000;font-size:17px;font-weight:600;margin:20px 0 8px}
.cta.red{background:var(--red);color:#fff}
.setrow{display:flex;align-items:center;justify-content:space-between;min-height:44px;gap:10px;padding:10px 16px}
.setrow+.setrow{border-top:.5px solid var(--sep)}
.setrow .k{font-size:15px}
.setrow .v{font-size:15px;color:var(--t2);text-align:right}
.slider{height:4px;border-radius:2px;background:var(--c2);position:relative;margin:2px 16px 12px}
.slider i{position:absolute;left:0;top:0;bottom:0;background:var(--green);border-radius:2px}
.grp{font-size:13px;color:var(--t2);margin:22px 16px 8px}
/* coin */
.coinhd{display:flex;align-items:center;gap:10px;margin-top:4px}
.coinhd h1{font-size:28px;font-weight:700;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.shield{display:inline-flex;align-items:center;gap:4px;background:rgba(0,211,90,.16);color:var(--green);border-radius:999px;padding:3px 9px;font-size:13px;font-weight:600}
.shield.r{background:rgba(255,69,58,.16);color:var(--red)}
.price{font-size:44px;font-weight:600;margin-top:10px}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--sep);border-radius:14px;overflow:hidden;margin-top:16px}
.stats div{background:var(--c1);padding:12px 14px}
.stats .k{font-size:13px;color:var(--t2)}.stats .v{font-size:17px;margin-top:3px}
.card{background:var(--c1);border-radius:14px;padding:14px 16px;margin-top:14px}
.card .k{font-size:13px;color:var(--t2)}
.card .line{display:flex;justify-content:space-between;align-items:center;min-height:32px;font-size:15px}
.tabbar{position:fixed;left:0;right:0;bottom:0;display:flex;justify-content:space-around;padding:6px var(--sr) calc(var(--sb) + 4px) var(--sl);
background:rgba(22,22,24,.72);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border-top:.5px solid var(--sep);z-index:20}
.tabbar a{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10px;color:var(--t3);min-width:64px;min-height:44px;justify-content:center}
.tabbar svg{width:25px;height:25px;fill:currentColor;stroke:currentColor;stroke-width:0}
.tabbar a.on{color:#fff}
.search{position:fixed;inset:0;background:rgba(0,0,0,.96);z-index:40;padding:calc(var(--st) + 10px) 16px}
.search input{width:100%;height:40px;border-radius:12px;border:0;background:var(--c2);color:#fff;padding:0 14px;font-size:17px;outline:none}
.toast{position:fixed;left:50%;bottom:calc(100px + var(--sb));transform:translateX(-50%);background:var(--c2);padding:10px 16px;border-radius:12px;font-size:15px;z-index:50}
