: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;
--w:min(100vw,430px);--card:calc(var(--w) - 32px);
--display:-apple-system,"SF Pro Display",BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
--text:-apple-system,"SF Pro Text",BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
--mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,monospace}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--bg);color:var(--t1);font:17px/1.3 var(--text);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}
body{min-height:100vh;overscroll-behavior-y:none}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
#app{width:var(--w);margin:0 auto;padding:env(safe-area-inset-top) 0 calc(84px + env(safe-area-inset-bottom));min-height:100vh;position:relative}
.num{font-variant-numeric:tabular-nums}
/* navbar */
.nav{display:flex;align-items:center;gap:8px;padding:8px 16px;height:52px;position:sticky;top:0;z-index:5;background:rgba(0,0,0,.82);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.nav .title{font-weight:600;font-size:17px;flex:1;display:flex;align-items:center;gap:4px;min-height:44px}
.nav .title .chev{color:var(--t3)}
.iconbtn{width:44px;height:44px;display:grid;place-items:center;border-radius:22px;position:relative}
.iconbtn svg{width:24px;height:24px}
.avatar{width:32px;height:32px;border-radius:16px;background:var(--c2);display:grid;place-items:center;font-weight:600;font-size:14px}
.dot{position:absolute;top:10px;right:10px;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}
/* error row */
.err{margin:0 16px 8px;padding:10px 12px;border-radius:12px;background:rgba(255,69,58,.14);color:var(--red);font-size:14px}
/* home head */
.head{padding:4px 16px 0;position:relative}
.bal-row{display:flex;align-items:flex-start;gap:10px}
.balance{font:700 66px/1.05 var(--display);letter-spacing:-1.5px;display:flex;overflow:hidden;height:70px}
.balance .ch{display:inline-block;position:relative;overflow:hidden;height:70px}
.balance .roll{display:flex;flex-direction:column;transition:transform 600ms cubic-bezier(.2,.8,.2,1)}
.balance .roll span{height:70px;display:block}
.pill{display:inline-flex;align-items:center;height:26px;padding:0 10px;border-radius:13px;font-size:13px;font-weight:600}
.pill.paper{background:var(--orange);color:#000}
.pill.mult{background:rgba(0,211,90,.16);color:var(--green)}
.pill.mono{font-family:var(--mono);font-weight:500;font-size:12px;height:24px}
.pill.red{background:rgba(255,69,58,.16);color:var(--red)} .pill.green{background:rgba(0,211,90,.16);color:var(--green)}
.modepill{position:absolute;right:16px;top:8px}
.today{display:flex;gap:10px;align-items:center;margin-top:6px;font-size:17px;font-weight:500}
.up{color:var(--green)} .down{color:var(--red)} .t2{color:var(--t2)} .t3{color:var(--t3)}
/* chart */
.chart{position:relative;height:220px;margin-top:10px}
.chart canvas{width:100%;height:100%;display:block}
.chart .empty{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);text-align:center;color:var(--t2);font-size:15px}
.ranges{display:flex;justify-content:space-between;padding:6px 16px 4px}
.ranges button{min-width:44px;height:36px;border-radius:18px;font-size:14px;font-weight:600;color:var(--t2)}
.ranges button.on{background:var(--c2);color:var(--t1)}
/* sections */
.sec{display:flex;align-items:baseline;justify-content:space-between;padding:22px 16px 10px}
.sec h2{margin:0;font:700 22px var(--display)}
.sec .count{color:var(--green);font-weight:600;font-size:17px;margin-left:6px}
.sec a{color:var(--blue);font-size:17px;min-height:44px;display:flex;align-items:center}
/* carousel */
.carousel{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 16px;scrollbar-width:none}
.carousel::-webkit-scrollbar{display:none}
.acard{flex:0 0 var(--card);width:var(--card);aspect-ratio:504/470;border-radius:calc(42 * var(--card) / 504);background:var(--c1);scroll-snap-align:center;padding:20px;display:flex;flex-direction:column;overflow:hidden;position:relative}
.acard .top{display:flex;align-items:center;gap:10px}
.acard .ic{width:36px;height:36px;border-radius:10px;display:grid;place-items:center}
.acard .ic svg{width:22px;height:22px}
.acard .nm{font-weight:600;font-size:17px}
.acard .st{font-size:13px;color:var(--t2)}
.acard .big{font:700 34px/1.1 var(--display);margin-top:14px}
.acard .sub{color:var(--t2);font-size:15px;margin-top:2px}
.acard .body{flex:1;display:flex;flex-direction:column;justify-content:flex-end;gap:6px;margin-top:10px;min-height:0}
.feed .row{display:flex;justify-content:space-between;gap:8px;font-size:14px;white-space:nowrap}
.feed .row .n{overflow:hidden;text-overflow:ellipsis}
.feed .kill .n{color:var(--t3);text-decoration:line-through;text-decoration-color:var(--red)}
.feed .kill .r{color:var(--t3)} .feed .pass .r{color:var(--cyan)}
.strips{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.strips i{height:10px;border-radius:5px;background:var(--c2);display:block;transition:background 150ms}
.strips i.g{background:var(--green)} .strips i.r{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);transition:width 300ms}
.ring{width:96px;height:96px}
.dotst{width:8px;height:8px;border-radius:4px;display:inline-block;margin-right:6px;background:var(--t3)}
.dotst.running{background:var(--green)} .dotst.paused{background:var(--orange)} .dotst.down{background:var(--red)}
/* list rows */
.list{margin:0 16px;background:var(--c1);border-radius:16px;overflow:hidden}
.lrow{display:flex;align-items:center;gap:12px;padding:12px 14px;min-height:60px;position:relative}
.lrow+.lrow:before{content:"";position:absolute;left:62px;right:0;top:0;height:.5px;background:var(--sep)}
.lrow .ic{width:36px;height:36px;border-radius:18px;display:grid;place-items:center;flex:0 0 36px}
.lrow .ic svg{width:18px;height:18px}
.lrow .mid{flex:1;min-width:0}
.lrow .t{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lrow .s{color:var(--t2);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lrow .v{text-align:right;font-weight:500;white-space:nowrap;font-size:16px}
.lrow .chev{color:var(--t3)}
.emptyrow{padding:22px 16px;color:var(--t2);text-align:center}
/* screen title */
.h1{font:700 34px var(--display);padding:4px 16px 8px;margin:0}
/* agents tab */
.agent{margin:0 16px 16px;background:var(--c1);border-radius:20px;padding:16px}
.agent .hd{display:flex;align-items:center;gap:10px}
.agent .hd .nm{font-weight:600;font-size:19px;flex:1}
.agent .meta{color:var(--t2);font-size:14px;margin:6px 0 10px}
.dec{display:grid;grid-template-columns:64px 1fr auto;gap:8px;font-size:14px;padding:9px 0;border-top:.5px solid var(--sep);align-items:center;min-height:44px}
.dec .tm{color:var(--t2);white-space:nowrap;font-size:13px} .dec .rs{color:var(--t2);font-size:13px}
.dec .vd{font-weight:600;font-size:13px} .vd.pass,.vd.bought{color:var(--green)} .vd.kill,.vd.reject,.vd.stop{color:var(--red)} .vd.trail,.vd.timeout{color:var(--green)} .vd.skipped,.vd.sent{color:var(--t2)}
.linkbtn{color:var(--blue);font-size:15px;min-height:44px;display:inline-flex;align-items:center}
/* switch */
.sw{width:51px;height:31px;border-radius:16px;background:var(--c2);position:relative;transition:background 200ms;flex:0 0 51px}
.sw:after{content:"";position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:14px;background:#fff;transition:transform 200ms;box-shadow:0 2px 4px rgba(0,0,0,.3)}
.sw.on{background:var(--green)} .sw.on:after{transform:translateX(20px)} .sw.dis{opacity:.4}
.swwrap{min-width:51px;min-height:44px;display:flex;align-items:center}
/* coin */
.coinhd{padding:0 16px}
.coinhd .nm{font:700 28px var(--display);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.coinhd .meta{color:var(--t2);font-size:15px;display:flex;gap:8px;align-items:center;margin-top:2px}
.shield{background:rgba(0,211,90,.16);color:var(--green);border-radius:8px;padding:2px 8px;font-size:13px;font-weight:600}
.price{font:700 44px/1.1 var(--display);padding:12px 16px 0}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:16px;background:var(--sep);border-radius:16px;overflow:hidden}
.stats div{background:var(--c1);padding:12px 14px}
.stats .k{color:var(--t2);font-size:13px} .stats .v{font-weight:600;font-size:17px;margin-top:2px}
.card{margin:0 16px 12px;background:var(--c1);border-radius:16px;padding:14px 16px}
.card h3{margin:0 0 8px;font-size:15px;color:var(--t2);font-weight:500}
.kv{display:flex;justify-content:space-between;padding:7px 0;font-size:16px;border-top:.5px solid var(--sep)}
.kv:first-of-type{border-top:0}
.cta{display:flex;align-items:center;justify-content:center;height:54px;margin:16px;border-radius:27px;background:var(--green);color:#000;font-weight:700;font-size:17px}
.cta.sell{background:var(--red);color:#fff}
.cta.gray{background:var(--c2);color:var(--t1)}
/* auditor */
.discs{position:relative;width:200px;margin:12px auto 0;height:236px}
.disc{position:absolute;left:0;right:0;height:22px;border-radius:50%;background:var(--c2);transition:background 150ms;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#000}
.disc.g{background:var(--green)} .disc.r{background:var(--red)} .disc.nc{background:#18181a}
.beam{position:absolute;left:-14px;right:-14px;height:4px;border-radius:2px;background:var(--cyan);box-shadow:0 0 0 1px rgba(100,210,255,.3);transition:top 350ms linear;opacity:0}
.verdict{text-align:center;padding:12px 16px 4px}
.verdict .a{font:700 24px var(--display)} .verdict .b{color:var(--t2);margin-top:4px}
.lay{display:flex;align-items:center;gap:10px;padding:11px 0;border-top:.5px solid var(--sep);font-size:15px;min-height:44px}
.lay:first-of-type{border-top:0}
.lay .n{width:22px;height:22px;border-radius:11px;background:var(--c2);display:grid;place-items:center;font-size:12px;flex:0 0 22px}
.lay .n.g{background:var(--green);color:#000}.lay .n.r{background:var(--red)}
.lay .k{flex:1} .lay .vv{color:var(--t2);text-align:right}
/* account */
.group{margin:0 16px 18px;background:var(--c1);border-radius:14px;overflow:hidden}
.ghead{color:var(--t2);font-size:13px;padding:14px 32px 6px;text-transform:none}
.grow{display:flex;align-items:center;gap:10px;padding:0 16px;min-height:48px;position:relative}
.grow+.grow:before{content:"";position:absolute;left:16px;right:0;top:0;height:.5px;background:var(--sep)}
.grow .k{flex:1} .grow .vv{color:var(--t2)}
.seg{display:flex;background:var(--c2);border-radius:9px;padding:2px}
.seg button{min-width:64px;height:32px;border-radius:7px;font-size:14px;font-weight:600;color:var(--t2)}
.seg button.on{background:#636366;color:#fff}
.seg button.lock{color:var(--t3)}
.setrow{padding:10px 16px;position:relative}
.setrow+.setrow:before{content:"";position:absolute;left:16px;right:0;top:0;height:.5px;background:var(--sep)}
.setrow .l{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:15px}
.setrow input[type=number],.setrow input[type=text]{width:110px;height:36px;border-radius:8px;border:0;background:var(--c2);color:#fff;font:15px var(--mono);text-align:right;padding:0 8px}
.setrow input[type=range]{width:100%;accent-color:var(--green);height:30px}
.setrow select{height:36px;border-radius:8px;border:0;background:var(--c2);color:#fff;font:15px var(--text);padding:0 8px}
.toast{position:fixed;left:50%;bottom:calc(100px + env(safe-area-inset-bottom));transform:translateX(-50%);background:var(--c2);color:#fff;padding:10px 16px;border-radius:20px;font-size:15px;z-index:50;opacity:0;transition:opacity 200ms;pointer-events:none;max-width:90vw}
.toast.on{opacity:1}
/* tab bar */
.tabs{position:fixed;left:0;right:0;bottom:0;z-index:10;background:rgba(18,18,18,.78);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-top:.5px solid var(--sep);padding-bottom:env(safe-area-inset-bottom)}
.tabs nav{width:var(--w);margin:0 auto;display:flex}
.tabs a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;height:50px;font-size:10px;font-weight:500;color:#8e8e93}
.tabs a svg{width:26px;height:26px}
.tabs a.on{color:var(--t1)}
/* search sheet */
.sheet{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:30;padding:calc(env(safe-area-inset-top) + 8px) 0 0}
.sheet .in{width:var(--w);margin:0 auto}
.search{display:flex;gap:8px;padding:0 16px 10px;align-items:center}
.search input{flex:1;height:40px;border-radius:10px;border:0;background:var(--c2);color:#fff;font-size:17px;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}}
.fade{animation:fade 200ms ease-out}
@keyframes fade{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.balance .roll,.beam,.disc,.bar i{transition:none!important}.sk{animation:none}}
@media (min-width:900px){body{background:#000}#app{border-left:.5px solid #111;border-right:.5px solid #111}}
.vs{font-size:12px;color:var(--t2);font-weight:400;text-align:right;margin-top:2px}
.list .v{text-align:right;flex-shrink:0}
/* ===== savi-style UI (Nov 3 2026) ===== */
html,body{font-family:-apple-system,"SF Pro Text","Inter",BlinkMacSystemFont,system-ui,sans-serif}
.hdr{gap:6px;height:60px}
.brand{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.blogo{width:32px;height:32px;border-radius:9px;flex:0 0 32px;background:#111}
.bt{font:700 17px/1.15 var(--display)} .bs{color:var(--t2);font-size:12px;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.iconbtn.sm{width:36px;height:44px} .iconbtn.sm svg{width:21px;height:21px} .iconbtn.sm .dot{top:9px;right:4px}
.livepill{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 11px;border-radius:14px;background:rgba(0,211,90,.14);color:var(--green);font-size:13px;font-weight:700;white-space:nowrap}
.livepill i{width:7px;height:7px;border-radius:50%;background:currentColor;animation:livep 1.4s ease-in-out infinite}
.livepill.paper{background:rgba(255,159,10,.16);color:var(--orange)}
.livepill.sm{height:24px;font-size:12px;padding:0 9px}
@keyframes livep{0%,100%{opacity:1;box-shadow:0 0 0 0 currentColor}50%{opacity:.45;box-shadow:0 0 0 4px transparent}}
.balance{font-weight:800;letter-spacing:-2px}
.today{font-size:16px;font-weight:600;gap:8px;margin-top:4px}
.pill.mult{background:rgba(0,211,90,.18);color:#7dff9f;height:24px;font-weight:700}
.pill.sm{height:18px;font-size:10px;padding:0 6px;vertical-align:middle}
.ranges button.on{background:var(--c2);color:#fff}
.ranges button[data-r=LIVE].on{background:var(--green);color:#000}
.sec{padding:20px 16px 10px;align-items:center}
.sec h2{font-size:21px}
.sec .count{font-size:14px;margin:0}
.sec a{color:var(--green);font-size:15px;font-weight:600;min-height:32px}
/* mini agent cards: 5 across */
.mini{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;padding:0 12px}
.mcard{background:var(--c1);border-radius:12px;padding:7px 5px 8px;display:flex;flex-direction:column;align-items:center;text-align:center;min-height:150px;overflow:hidden;min-width:0}
.mcard.paused,.mcard.down{filter:grayscale(1);opacity:.55}
.mic{width:24px;height:24px;border-radius:7px;display:grid;place-items:center}
.mic svg{width:14px;height:14px}
.mnm{font-weight:700;font-size:10.5px;margin-top:4px;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.mst{font-size:9px;color:var(--t2);display:flex;align-items:center;gap:1px;white-space:nowrap;margin-top:1px}
.mst .bolt{font-size:8px;filter:grayscale(1)}
.mst.on{color:var(--green)} .mst.on .bolt{filter:none;animation:livep 1.2s ease-in-out infinite}
.mbody{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:3px;margin-top:5px;width:100%;min-width:0}
.mbig{font:800 16px/1 var(--display)} .mamt{font:800 13px/1 var(--display)}
.msm{font-size:9px;color:var(--t2);line-height:1.2;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.msm.tk{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.msm.up{color:var(--green)} .msm.down{color:var(--red)}
.mlogos{display:flex;margin-top:2px} .mlogos .lg{margin-left:-4px;border:1.5px solid var(--c1)} .mlogos .lg:first-child{margin-left:0}
.mrow{display:flex;align-items:center;gap:3px;max-width:100%;min-width:0} .mrow.c{justify-content:center}
.mtk{font-size:9.5px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mpill{display:inline-block;font-size:8.5px;font-weight:700;padding:2px 5px;border-radius:7px;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.mpill.green{background:rgba(0,211,90,.18);color:var(--green)} .mpill.red{background:rgba(255,69,58,.18);color:var(--red)}
.mpill.gray{background:var(--c2);color:var(--t2)} .mpill.outred{border:1px solid var(--red);color:var(--red);padding:1px 4px}
.mstrips{display:grid;grid-template-columns:repeat(8,1fr);gap:2px;width:90%} .mstrips i{height:4px;border-radius:2px;background:var(--c2)}
.mstrips i.g{background:var(--green)} .mstrips i.r{background:var(--red)} .mstrips i.run{background:var(--cyan)}
.ring.mring{width:40px;height:40px}
.mbar{height:4px;width:90%} 
/* logos */
.lg{border-radius:50%;object-fit:cover;background:#2c2c2e;flex:0 0 auto;display:inline-block}
.lf{display:inline-grid;place-items:center;color:#fff;font-weight:800;line-height:1}
/* feed rows */
.lrow.f{gap:11px;padding:10px 14px;min-height:58px}
.lrow.f+.lrow.f:before{left:64px}
.lrow .pic{position:relative;width:40px;height:40px;flex:0 0 40px;display:grid;place-items:center}
.lrow .badge{position:absolute;right:-3px;bottom:-3px;width:17px;height:17px;border-radius:50%;display:grid;place-items:center;border:2px solid var(--c1);color:#fff}
.lrow .badge svg{width:9px;height:9px}
.stopic{width:40px;height:40px;display:grid;place-items:center} .stopic svg{width:34px;height:34px}
.lrow.trade .t{font-weight:700;font-size:16px}
.lrow.minor{min-height:50px;padding:8px 14px}
.lrow.minor .t{font-weight:500;font-size:14px;color:rgba(235,235,245,.85)} .lrow.minor .s{font-size:12.5px;color:var(--t3)}
.lrow.f .s{font-size:13px}
.lrow.f .v{font-weight:700;font-size:16px}
.lrow.f .vs{font-size:12.5px}
.vs.up{color:var(--green)} .vs.down{color:var(--red)}
.emptyrow.sm{font-size:13px;padding:12px 16px;border-bottom:.5px solid var(--sep)}
/* trade banner */
#tbanner{position:fixed;left:50%;top:calc(env(safe-area-inset-top) + 8px);z-index:70;width:calc(min(100vw,430px) - 20px);transform:translate(-50%,-160%);transition:transform 420ms cubic-bezier(.2,.9,.25,1.15);
  background:rgba(28,28,30,.96);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:18px;padding:12px 14px;display:flex;align-items:center;gap:10px;box-shadow:0 10px 30px rgba(0,0,0,.6);border:.5px solid rgba(255,255,255,.08)}
#tbanner.on{transform:translate(-50%,0)}
.tb-l{flex:1;min-width:0} .tb-h{font-weight:800;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tb-s{color:var(--t2);font-size:13px;margin-top:1px} .tb-p{font-weight:700;font-size:15px;margin-top:2px}
.tb-r{display:flex;flex-direction:column;align-items:flex-end;gap:4px} .tb-now{color:var(--t2);font-size:12px}
/* coin page */
.back{color:var(--green);font-weight:600}
.chrow{display:flex;align-items:center;gap:12px}
.coinhd .nm{font-size:24px}
.price{font-size:44px;font-weight:800;letter-spacing:-1px}
.segw{display:flex;align-items:center;justify-content:space-between;padding:10px 16px 6px}
.segw .seg button{min-width:70px;height:28px;font-size:13px}
.dexbox{margin:4px 12px 0;height:380px;border-radius:14px;overflow:hidden;background:var(--c1)}
.dexbox iframe{width:100%;height:100%;border:0;display:block}
.cta{border-radius:16px}
@media (prefers-reduced-motion:reduce){.livepill i,.mst.on .bolt{animation:none}#tbanner{transition:none}}

/* X hype badge (hype dip strategy, Nov 3 2026) */
.xh{display:inline-block;margin-left:6px;font-size:9.5px;font-weight:800;letter-spacing:.2px;padding:1px 5px;border-radius:6px;background:#fff;color:#000;vertical-align:2px;white-space:nowrap}
.mpill.hype{background:rgba(255,159,10,.2);color:#ff9f0a}
