@font-face{font-family:Inter;src:url(fonts/inter.woff2) format('woff2');font-weight:400 800;font-display:swap}
@font-face{font-family:JBMono;src:url(fonts/mono.woff2) format('woff2');font-weight:500;font-display:swap}
:root{
  --bg:#05070F;--bg2:#0A0F1F;--surface:#0F1629;--surface2:#141C33;--line:#1B2440;--line2:#25304F;
  --text:#EEF1F7;--silver:#C7CEDB;--muted:#8791A8;--dim:#5B6582;
  --accent:#38F2C6;--accent2:#1FB8FF;--accent-soft:rgba(56,242,198,.12);
  --up:#22D39A;--down:#FF4D6A;--warn:#FFB547;
  --r:14px;--nav-h:64px;--ease:cubic-bezier(.2,.8,.2,1);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font:14px/1.35 Inter,Roboto,system-ui,sans-serif;overflow:hidden;-webkit-font-smoothing:antialiased;font-feature-settings:"tnum" 1,"cv11" 1}
button{font:inherit;color:inherit}
input,textarea{font:inherit}
.mono{font-family:JBMono,ui-monospace,monospace}
.up{color:var(--up)}.down{color:var(--down)}.flat{color:var(--muted)}
/* splash */
#splash{position:fixed;inset:0;z-index:100;background:radial-gradient(60% 45% at 50% 42%,#0F1A3A 0%,var(--bg) 70%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;transition:opacity .5s var(--ease),visibility .5s}
#splash img{width:112px;height:112px;border-radius:28px;box-shadow:0 0 60px rgba(56,242,198,.25);animation:pop .8s var(--ease) both}
#splash .wm{font-size:28px;font-weight:800;letter-spacing:.5px;animation:rise .8s .15s var(--ease) both}
#splash .tag{color:var(--muted);font-size:13px;letter-spacing:2.5px;text-transform:uppercase;animation:rise .8s .3s var(--ease) both}
#splash.hide{opacity:0;visibility:hidden}
@keyframes pop{from{transform:scale(.6);opacity:0}to{transform:none;opacity:1}}
@keyframes rise{from{transform:translateY(10px);opacity:0}to{transform:none;opacity:1}}
.wm b{background:linear-gradient(90deg,var(--accent),var(--accent2));-webkit-background-clip:text;background-clip:text;color:transparent}
/* layout */
#app{display:flex;flex-direction:column;height:100%}
header{padding:12px 16px 8px;background:linear-gradient(var(--bg),rgba(5,7,15,.92));position:relative;z-index:3}
.brand{display:flex;align-items:center;gap:10px}
.brand img{width:30px;height:30px;border-radius:8px}
.brand .wm{font-size:19px;font-weight:800;letter-spacing:.3px}
.brand .net{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--silver);background:var(--surface);border:1px solid var(--line);padding:5px 9px;border-radius:999px;font-weight:600}
.brand .net i{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent)}
.toolbar{display:flex;align-items:center;gap:8px;margin-top:12px}
.title{font-size:22px;font-weight:800;letter-spacing:-.3px}
.sub-title{color:var(--muted);font-size:12px;margin-top:2px}
.sortbtn{margin-left:auto;display:flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:7px 10px;font-size:12.5px;font-weight:600;color:var(--silver)}
.sortbtn svg{width:15px;height:15px}
#searchbar{display:none;margin-top:12px}
#searchbar.on{display:block}
.field{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:0 12px;transition:border-color .2s}
.field:focus-within{border-color:var(--accent)}
.field svg{width:18px;height:18px;color:var(--muted);flex:none}
.field input{flex:1;background:none;border:0;outline:none;color:var(--text);padding:12px 0;font-size:15px;min-width:0}
.field .x{background:none;border:0;color:var(--muted);padding:6px;display:none}
.field.has .x{display:block}
main{flex:1;overflow-y:auto;overflow-x:hidden;position:relative;-webkit-overflow-scrolling:touch;padding-bottom:calc(var(--nav-h) + 12px)}
#ptr{height:0;overflow:hidden;display:flex;align-items:flex-end;justify-content:center;color:var(--muted);font-size:12px}
#ptr span{padding-bottom:10px;display:flex;align-items:center;gap:8px}
.meta{display:flex;justify-content:space-between;color:var(--dim);font-size:11.5px;padding:4px 16px 8px}
.meta .live{display:flex;align-items:center;gap:6px}
.meta .live i{width:6px;height:6px;border-radius:50%;background:var(--up);animation:pulse 2s infinite}
@keyframes pulse{50%{opacity:.3}}
/* rows */
.list{padding:0 10px}
.row{display:flex;align-items:center;gap:12px;padding:11px 8px;border-radius:12px;position:relative;animation:fadeIn .35s var(--ease) both}
.row+.row::before{content:"";position:absolute;left:58px;right:8px;top:0;height:1px;background:var(--line)}
.row:active{background:var(--surface)}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.rank{width:18px;text-align:center;color:var(--dim);font-size:11px;font-weight:700;flex:none;margin-right:-6px}
.av{width:40px;height:40px;border-radius:50%;flex:none;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;color:#fff;letter-spacing:.3px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:var(--surface)}
.mid{flex:1;min-width:0}
.nm{display:flex;align-items:baseline;gap:6px;white-space:nowrap;overflow:hidden}
.nm b{font-weight:700;font-size:15px;overflow:hidden;text-overflow:ellipsis}
.nm small{color:var(--dim);font-size:12px;overflow:hidden;text-overflow:ellipsis}
.stats{display:flex;gap:10px;color:var(--muted);font-size:11.5px;margin-top:4px;white-space:nowrap;overflow:hidden}
.stats span em{font-style:normal;color:var(--dim);margin-right:3px}
.rt{text-align:right;flex:none}
.px{font-weight:700;font-size:14px}
.px sub{font-size:9px;vertical-align:-2px}
.chg{display:flex;gap:7px;justify-content:flex-end;font-size:11.5px;margin-top:4px;font-weight:600}
.chg span.big{padding:1px 6px;border-radius:6px}
.chg .big.up{background:rgba(34,211,154,.12)}.chg .big.down{background:rgba(255,77,106,.12)}
.star{background:none;border:0;padding:6px;margin:-6px -4px -6px 0;color:var(--dim);flex:none}
.star svg{width:18px;height:18px}
.star.on{color:var(--warn)}
/* skeleton */
.sk{background:linear-gradient(90deg,var(--surface) 0%,var(--surface2) 50%,var(--surface) 100%);background-size:200% 100%;animation:shim 1.2s linear infinite;border-radius:6px}
@keyframes shim{from{background-position:200% 0}to{background-position:-200% 0}}
.skrow{display:flex;align-items:center;gap:12px;padding:12px 8px}
/* states */
.state{display:flex;flex-direction:column;align-items:center;text-align:center;padding:56px 32px;color:var(--muted);animation:fadeIn .4s var(--ease)}
.state svg{width:84px;height:84px;margin-bottom:16px}
.state h3{color:var(--text);margin:0 0 6px;font-size:17px}
.state p{margin:0 0 18px;font-size:13.5px;max-width:280px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:12px;padding:11px 16px;font-weight:700;font-size:14px;background:linear-gradient(90deg,var(--accent),var(--accent2));color:#031015;transition:transform .15s}
.btn:active{transform:scale(.97)}
.btn.ghost{background:var(--surface);color:var(--text);border:1px solid var(--line2)}
.btn.sm{padding:7px 11px;font-size:12.5px;border-radius:10px}
.btn.block{width:100%}
.btn[disabled]{opacity:.5}
/* bottom nav */
nav{position:fixed;left:0;right:0;bottom:0;height:var(--nav-h);background:rgba(10,15,31,.94);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line);display:flex;z-index:10}
nav button{flex:1;background:none;border:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--dim);font-size:10.5px;font-weight:600;position:relative;transition:color .2s}
nav button svg{width:22px;height:22px}
nav button.on{color:var(--text)}
nav button.on svg{color:var(--accent)}
nav button.on::after{content:"";position:absolute;top:0;width:28px;height:2px;border-radius:2px;background:var(--accent);box-shadow:0 0 10px var(--accent)}
/* sheets */
.scrim{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:40;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s}
.scrim.on{opacity:1;visibility:visible}
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:41;background:var(--bg2);border-top-left-radius:22px;border-top-right-radius:22px;border-top:1px solid var(--line2);padding:8px 16px 22px;transform:translateY(105%);transition:transform .3s var(--ease);max-height:92%;overflow-y:auto}
.sheet.on{transform:none}
.sheet .grab{width:38px;height:4px;border-radius:2px;background:var(--line2);margin:4px auto 14px}
.sheet h3{margin:0 0 4px;font-size:18px}
.sheet .hint{color:var(--muted);font-size:12.5px;margin:0 0 14px}
.opt{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:0;padding:13px 4px;border-bottom:1px solid var(--line);font-size:15px;text-align:left}
.opt.on{color:var(--accent);font-weight:700}
/* detail */
#detail{position:fixed;inset:0;z-index:20;background:var(--bg);overflow-y:auto;transform:translateX(100%);transition:transform .32s var(--ease);visibility:hidden}
#detail.on{transform:none;visibility:visible}
.dhead{position:sticky;top:0;z-index:3;display:flex;align-items:center;gap:10px;padding:10px 12px;background:rgba(5,7,15,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.iconbtn{background:var(--surface);border:1px solid var(--line);width:38px;height:38px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex:none;color:var(--silver)}
.iconbtn svg{width:19px;height:19px}
.iconbtn.on{color:var(--warn)}
.dhead .av{width:34px;height:34px}
.banner{height:120px;background:var(--surface) center/cover no-repeat;position:relative}
.banner::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 40%,var(--bg))}
.hero{padding:16px 16px 6px}
.hero .p{font-size:30px;font-weight:800;letter-spacing:-.6px}
.hero .p sub{font-size:14px}
.hero .ch{font-size:14px;font-weight:700;margin-top:2px}
.pills{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:10px 16px}
.pill{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px 4px;text-align:center}
.pill small{display:block;color:var(--muted);font-size:11px;font-weight:600;margin-bottom:2px}
.pill b{font-size:13.5px}
.seg{display:flex;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:3px;margin:6px 16px 10px}
.seg button{flex:1;background:none;border:0;padding:8px;border-radius:9px;font-size:12.5px;font-weight:700;color:var(--muted);transition:background .2s,color .2s}
.seg button.on{background:var(--surface2);color:var(--text);box-shadow:inset 0 0 0 1px var(--line2)}
.chartwrap{margin:0 16px;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);background:#000;height:400px;position:relative}
.chartwrap iframe{width:100%;height:100%;border:0;display:block}
.chartwrap .sk{position:absolute;inset:0;border-radius:0}
.section{padding:18px 16px 0}
.section h4{margin:0 0 10px;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:1.4px;font-weight:700}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cell{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:11px 12px}
.cell small{color:var(--muted);font-size:11.5px;font-weight:600}
.cell div{font-weight:700;font-size:15px;margin-top:3px}
.bar{height:6px;border-radius:3px;background:var(--down);overflow:hidden;margin-top:8px}
.bar i{display:block;height:100%;background:var(--up)}
.ca{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 10px 10px 12px}
.ca code{flex:1;font-family:JBMono,monospace;font-size:12px;color:var(--silver);word-break:break-all}
.links{display:flex;flex-wrap:wrap;gap:8px}
.link{display:inline-flex;align-items:center;gap:7px;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:8px 13px;font-size:13px;font-weight:600}
.link svg{width:15px;height:15px}
.desc{color:var(--silver);font-size:14px;line-height:1.5;white-space:pre-wrap}
.badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:var(--accent);background:var(--accent-soft);padding:3px 8px;border-radius:999px;margin-bottom:10px}
.cta{margin:20px 16px 0;padding:16px;border-radius:16px;border:1px solid var(--line2);background:linear-gradient(135deg,rgba(56,242,198,.08),rgba(31,184,255,.06));display:flex;align-items:center;gap:14px}
.cta h5{margin:0;font-size:15px}.cta p{margin:3px 0 0;color:var(--muted);font-size:12.5px}
.foot{color:var(--dim);font-size:11px;text-align:center;padding:22px 16px 34px}
/* form */
.form label{display:block;font-size:12px;font-weight:700;color:var(--silver);margin:12px 0 6px}
.form label span{color:var(--dim);font-weight:500}
.form input[type=text],.form input[type=url],.form textarea{width:100%;background:var(--surface);border:1px solid var(--line);border-radius:12px;color:var(--text);padding:11px 12px;outline:none;font-size:14px}
.form textarea{min-height:92px;resize:vertical}
.form input:focus,.form textarea:focus{border-color:var(--accent)}
.form .err{border-color:var(--down)!important}
.form .msg{color:var(--down);font-size:12px;margin-top:4px;display:none}
.uprow{display:flex;gap:8px;align-items:center}
.uprow input[type=url]{flex:1}
.thumb{width:44px;height:44px;border-radius:10px;background:var(--surface) center/cover;border:1px solid var(--line);flex:none}
.thumb.wide{width:78px}
.filebtn{position:relative;overflow:hidden;flex:none}
.filebtn input{position:absolute;inset:0;opacity:0}
.note{font-size:12px;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-top:14px}
/* toast */
#toast{position:fixed;left:50%;bottom:calc(var(--nav-h) + 18px);transform:translate(-50%,20px);background:var(--surface2);border:1px solid var(--line2);color:var(--text);padding:10px 16px;border-radius:12px;font-size:13px;font-weight:600;opacity:0;transition:all .25s var(--ease);z-index:90;pointer-events:none;white-space:nowrap}
#toast.on{opacity:1;transform:translate(-50%,0)}
.recent{display:flex;flex-wrap:wrap;gap:8px;padding:4px 16px 12px}

/* row v2 layout */
.row{align-items:center;gap:12px}
.row+.row::before{left:60px}
.avwrap{position:relative;flex:none}
.rk{position:absolute;left:-4px;top:-4px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:var(--bg2);border:1px solid var(--line2);color:var(--silver);font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center}
.l1,.l2{display:flex;align-items:baseline;gap:6px;min-width:0}
.l1 .sym{font-size:15px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:42%}
.l1 .q{color:var(--dim);font-size:12px;flex:none}
.l1 .age{flex:none;font-size:10.5px;font-weight:700;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:1px 5px}
.l1 .px{margin-left:auto;flex:none;font-size:14.5px;font-weight:750}
.l2{margin-top:3px}
.l2 .name{color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
.l2 .chg{margin:0;flex:none;display:flex;gap:6px;font-size:11.5px;font-weight:650}
.row .stats{margin-top:5px;gap:12px}
.row .stats .dex{margin-left:auto;color:var(--dim);text-transform:capitalize}
.star{align-self:center}
.btn{white-space:nowrap}
.btn svg{width:16px;height:16px;flex:none}
.cta .btn{flex:none}

/* v2.1 updating banner */
.banner-upd{position:sticky;top:6px;z-index:4;margin:0 auto;width:max-content;max-width:92%;display:flex;align-items:center;gap:7px;font-size:11.5px;font-weight:600;color:var(--silver);background:rgba(20,28,51,.92);border:1px solid var(--line2);border-radius:999px;padding:0 12px;height:0;opacity:0;overflow:hidden;transition:all .25s var(--ease);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.banner-upd.on{height:28px;opacity:1;margin-bottom:6px}
.spin.sm,.banner-upd .spin{display:inline-block;width:11px;height:11px;border:2px solid var(--line2);border-top-color:var(--accent);border-radius:50%;animation:spinr .8s linear infinite}
@keyframes spinr{to{transform:rotate(360deg)}}
.dot.warn{width:7px;height:7px;border-radius:50%;background:var(--warn);display:inline-block}

/* ===== v2.2 ===== */
.iconbtn.hs{width:36px;height:36px;border-radius:11px}
.iconbtn.hs.on{color:var(--accent);border-color:var(--accent)}
#content.swap{animation:swapIn .28s var(--ease)}
@keyframes swapIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.row{transition:transform .12s var(--ease),background .2s}
.row:active{transform:scale(.985)}
.star.pop svg{animation:starPop .35s var(--ease)}
@keyframes starPop{40%{transform:scale(1.35) rotate(-8deg)}100%{transform:none}}
.flash-up .px{animation:fUp 1.2s ease}.flash-down .px{animation:fDn 1.2s ease}
@keyframes fUp{0%{color:var(--up);text-shadow:0 0 10px rgba(34,211,154,.6)}100%{color:inherit}}
@keyframes fDn{0%{color:var(--down);text-shadow:0 0 10px rgba(255,77,106,.6)}100%{color:inherit}}
.chips{display:flex;gap:8px;padding:2px 16px 10px;overflow-x:auto}
.chipf{flex:none;background:var(--surface);border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:7px 13px;font-size:12.5px;font-weight:700;transition:all .2s}
.chipf.on{background:var(--accent-soft);border-color:rgba(56,242,198,.5);color:var(--accent)}
.row.hot{align-items:flex-start;padding-top:13px;padding-bottom:13px}
.row.hot .avwrap{margin-top:2px}
.mom{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:800;padding:2px 7px 2px 5px;border-radius:7px;flex:none}
.mom svg{width:11px;height:11px}
.mom.h1{color:#9FB3FF;background:rgba(120,140,255,.12)}
.mom.h2{color:var(--warn);background:rgba(255,181,71,.13)}
.mom.h3{color:#FF7A45;background:rgba(255,106,61,.16);box-shadow:0 0 12px rgba(255,106,61,.25)}
.mom2{font-size:11px;font-weight:700;color:var(--muted);flex:none}
.row.hot .l2 .chg{margin-left:auto}
.bs{display:flex;align-items:center;gap:7px;margin-top:7px;font-size:10.5px;font-weight:700}
.bsbar{flex:1;max-width:120px;height:4px;border-radius:2px;background:rgba(255,77,106,.55);overflow:hidden}
.bsbar i{display:block;height:100%;background:var(--up);border-radius:2px}
.score{flex:none;width:44px;height:44px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px solid var(--line2);margin-top:2px}
.score b{font-size:15px;line-height:1}.score small{font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.6px;margin-top:2px}
.score.h1{border-color:rgba(120,140,255,.5)}.score.h2{border-color:rgba(255,181,71,.7)}
.score.h3{border-color:#FF7A45;box-shadow:0 0 14px rgba(255,106,61,.35)}
.score.big{width:68px;height:68px}.score.big b{font-size:22px}
.rise{font-size:9.5px;font-weight:800;padding:1px 5px;border-radius:5px;flex:none}
.rise.new{color:#031015;background:var(--accent)}
.rise.up{color:var(--up);background:rgba(34,211,154,.14)}
.row.hot .star{margin-top:8px}
.momcard{display:flex;gap:14px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px}
.momgrid{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}
.momgrid small{display:block;color:var(--muted);font-size:10.5px;font-weight:600}.momgrid b{font-size:14px}
.row.hot .side{display:flex;flex-direction:column;align-items:center;gap:6px;flex:none}
.row.hot .side .star{margin:0}
.row.hot .stats{gap:9px}
/* ===== v3.0 · MoonLens Wallet ===== */
.sortbtn.hide{visibility:hidden}
nav button{font-size:10px}
.buyrow{display:flex;gap:8px;padding:12px 16px 2px}
.buyrow .btn:first-child{flex:1;padding:13px 16px;font-size:15px;box-shadow:0 6px 24px rgba(56,242,198,.18)}
.buyrow .btn.ghost{flex:none;width:92px}
.wl{padding:2px 0 8px;animation:fadeIn .35s var(--ease) both}
.wglow{position:absolute;inset:-40% -20% auto auto;width:260px;height:260px;border-radius:50%;background:radial-gradient(closest-side,rgba(56,242,198,.22),transparent);pointer-events:none}
.wcard{position:relative;overflow:hidden;margin:4px 16px 0;padding:16px 16px 14px;border-radius:22px;border:1px solid var(--line2);
  background:linear-gradient(150deg,#12203A 0%,#0D1530 45%,#0A0F1F 100%);box-shadow:0 18px 50px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.04)}
.wtop{display:flex;align-items:center;justify-content:space-between;position:relative}
.wnet{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;color:var(--silver);background:rgba(5,7,15,.45);border:1px solid var(--line2);padding:5px 9px;border-radius:999px}
.wnet i{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent)}
.waddr{display:flex;align-items:center;gap:6px;background:rgba(5,7,15,.45);border:1px solid var(--line2);border-radius:999px;padding:5px 10px;font-family:JBMono,monospace;font-size:12px;color:var(--silver)}
.waddr svg{width:14px;height:14px;color:var(--accent)}
.wtotal{position:relative;font-size:38px;font-weight:800;letter-spacing:-1px;margin-top:16px;line-height:1.1}
.wsub{position:relative;display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px;font-weight:600;margin-top:4px;min-height:18px}
.wstale{display:inline-flex;align-items:center;gap:4px;color:var(--warn);font-size:11.5px}.wstale svg{width:13px;height:13px}
.wacts{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:16px}
.wacts button{background:none;border:0;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:11.5px;font-weight:700;color:var(--silver);padding:0}
.wacts button i{width:48px;height:48px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:rgba(56,242,198,.1);border:1px solid rgba(56,242,198,.25);color:var(--accent);transition:transform .15s}
.wacts button:first-child i{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#031015;border:0;box-shadow:0 6px 20px rgba(56,242,198,.3)}
.wacts button:active i{transform:scale(.92)}
.wacts svg{width:21px;height:21px}
.wacts.in{margin:18px 0 4px}
.wh4{display:flex;align-items:center;justify-content:space-between}
.wtiny{background:var(--surface2);border:1px solid var(--line2);color:var(--silver);border-radius:8px;padding:4px 8px;font-size:11px;font-weight:700;text-transform:none;letter-spacing:0}
.wlist{display:flex;flex-direction:column;gap:8px}
.wrow{display:flex;align-items:center;gap:12px;padding:11px 12px;background:var(--surface);border:1px solid var(--line);border-radius:14px}
.wrow:active{background:var(--surface2)}
.wrow .l1{display:flex;align-items:center;gap:5px}.wrow .l1 b{font-size:15px}
.wrow .l2{color:var(--muted);font-size:12px;margin-top:3px}.wrow .l2 sub{font-size:9px}
.wrow .rt{text-align:right}.wrow .rt b{display:block;font-size:15px}.wrow .rt small{color:var(--muted);font-size:12px}
.wver{display:inline-flex;width:15px;height:15px;border-radius:50%;background:var(--accent-soft);color:var(--accent);align-items:center;justify-content:center}.wver svg{width:10px;height:10px;stroke-width:3}
.av.sm{width:28px;height:28px;font-size:10px}
.wempty{display:flex;gap:10px;align-items:center;padding:14px;border:1px dashed var(--line2);border-radius:14px;color:var(--muted);font-size:13px}.wempty svg{width:22px;height:22px;flex:none;color:var(--accent)}
.wact{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 12px;text-align:left}
.wact code{flex:1;font-family:JBMono,monospace;font-size:12px;color:var(--silver)}.wact small{color:var(--dim);font-size:11.5px}.wact svg{width:15px;height:15px;color:var(--dim)}
.wst{font-size:11px;font-weight:800;padding:2px 7px;border-radius:6px;background:rgba(34,211,154,.12)}.wst.down{background:rgba(255,77,106,.12)}
.wwarn{display:flex;align-items:center;gap:10px;margin:12px 16px 0;padding:12px 14px;border-radius:14px;border:1px solid rgba(255,181,71,.35);background:rgba(255,181,71,.08);color:var(--text);text-align:left;width:calc(100% - 32px)}
.wwarn svg{width:20px;height:20px;color:var(--warn);flex:none}.wwarn b{display:block;font-size:13.5px}.wwarn small{color:var(--muted);font-size:12px}
.wwarn.sm{margin:10px 0 0;width:100%;font-size:12.5px;padding:10px 12px}
/* welcome */
.wwelcome{padding-top:6px}
.whero{position:relative;overflow:hidden;text-align:center;margin:0 16px;padding:22px 18px 20px;border-radius:24px;border:1px solid var(--line2);background:radial-gradient(80% 70% at 50% 0%,#132548 0%,#0A0F1F 75%)}
.whero .wglow{inset:-30% auto auto 50%;transform:translateX(-50%)}
.wart{width:118px;height:118px;position:relative;filter:drop-shadow(0 8px 30px rgba(56,242,198,.25))}
.whero h2{position:relative;margin:8px 0 6px;font-size:25px;font-weight:800;letter-spacing:-.3px}
.whero h2 b{background:linear-gradient(90deg,var(--accent),var(--accent2));-webkit-background-clip:text;background-clip:text;color:transparent}
.whero p{position:relative;margin:0 auto;color:var(--muted);font-size:13.5px;max-width:290px}
.wfeat{display:flex;flex-direction:column;gap:8px;margin:14px 16px 0}
.wfeat>div{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 14px}
.wfeat svg{width:22px;height:22px;color:var(--accent);flex:none}
.wfeat b{display:block;font-size:14px}.wfeat small{color:var(--muted);font-size:12px}
.wbtns{display:flex;flex-direction:column;gap:8px;margin:16px 16px 0}
.wbtns .btn{padding:14px}
/* sheets */
.wsheet .form label:first-child{margin-top:0}
.wstep{display:flex;gap:6px;margin:0 0 12px}
.wstep span{flex:1;height:4px;border-radius:2px;background:var(--line2);font-size:0}
.wstep span.done{background:var(--accent)}.wstep span.on2{background:linear-gradient(90deg,var(--accent),var(--accent2));box-shadow:0 0 8px rgba(56,242,198,.5)}
.wchk{display:flex;flex-direction:column;gap:8px;margin:4px 0 16px}
.wchk label{display:flex;gap:10px;align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px;font-size:13.5px;color:var(--silver);line-height:1.4}
.wchk input{accent-color:var(--accent);width:18px;height:18px;flex:none;margin:1px 0 0}
.wseed{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:7px;padding:12px;border-radius:16px;background:var(--surface);border:1px solid var(--line2)}
.wseed>div{display:flex;align-items:baseline;gap:6px;background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:9px 8px;font-family:JBMono,monospace;font-size:13.5px;font-weight:500}
.wseed>div small{color:var(--dim);font-size:10.5px;min-width:14px}
.wseed.key{display:block}.wseed.key code{display:block;word-break:break-all;font-family:JBMono,monospace;font-size:13px;color:var(--silver);padding:6px 4px;min-height:70px}
.wseed.blur>div,.wseed.blur code{filter:blur(7px);user-select:none}
.wreveal{position:absolute;inset:0;display:none;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:rgba(10,15,31,.55);border:0;border-radius:16px;color:var(--text)}
.wseed.blur .wreveal{display:flex}.wreveal svg{width:26px;height:26px;color:var(--accent)}.wreveal small{color:var(--muted);font-size:12px}
.wnote{display:flex;gap:8px;align-items:center}.wnote svg{width:18px;height:18px;color:var(--accent);flex:none}
.wqq{margin-bottom:12px}.wqq small{display:block;color:var(--muted);font-size:12px;font-weight:700;margin-bottom:6px}
.wqq div{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.wqq .chipf{padding:9px 4px;font-family:JBMono,monospace;font-size:12.5px;justify-content:center;text-align:center}
.wprev{display:flex;align-items:center;gap:10px;background:var(--accent-soft);border:1px solid rgba(56,242,198,.3);border-radius:12px;padding:10px 12px;margin-top:10px}
.wprev svg{width:20px;height:20px;color:var(--accent);flex:none}.wprev small{display:block;color:var(--muted);font-size:11.5px}.wprev code{font-family:JBMono,monospace;font-size:11.5px;color:var(--text);word-break:break-all}
.wopt{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin-bottom:8px;color:var(--text)}
.wopt>svg{width:22px;height:22px;color:var(--accent);flex:none}.wopt>span{flex:1;min-width:0}.wopt b{display:block;font-size:14px}.wopt small{color:var(--muted);font-size:12px}
.wopt.on{border-color:rgba(56,242,198,.4);background:linear-gradient(135deg,rgba(56,242,198,.08),rgba(31,184,255,.05))}
.wopt.dis{opacity:.62}.wopt.dis>svg{color:var(--muted)}
.wopt.danger>svg,.wopt.danger b{color:var(--down)}
.wtick{width:22px;height:22px;border-radius:50%;background:var(--accent);color:#031015;display:flex;align-items:center;justify-content:center;flex:none}.wtick svg{width:14px;height:14px;stroke-width:3}
.soon{font-style:normal;font-size:10.5px;font-weight:800;color:var(--warn);background:rgba(255,181,71,.12);border:1px solid rgba(255,181,71,.3);padding:3px 7px;border-radius:999px;white-space:nowrap}
.wlink{font-style:normal;color:var(--accent);font-size:12.5px;font-weight:700}
.wsw2{appearance:none;-webkit-appearance:none;width:42px;height:24px;border-radius:12px;background:var(--line2);position:relative;flex:none;transition:background .2s}
.wsw2::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .2s}
.wsw2:checked{background:var(--accent)}.wsw2:checked::after{transform:translateX(18px)}.wsw2:disabled{opacity:.7}
.wset h5{margin:16px 0 8px;font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:1.3px}
.wset:first-of-type h5{margin-top:6px}
.wqr{position:relative;margin:4px auto 0;width:236px;height:236px;padding:12px;border-radius:22px;background:#fff;box-shadow:0 0 0 1px var(--line2),0 16px 50px rgba(56,242,198,.15)}
.wqr svg{width:100%;height:100%;display:block}
.wqr img{position:absolute;left:50%;top:50%;width:46px;height:46px;transform:translate(-50%,-50%);border-radius:12px;border:4px solid #fff}
.wsheet .ca code{text-align:center}
.wfield{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:0 8px 0 12px}
.wfield:focus-within{border-color:var(--accent)}
.wfield input{flex:1;min-width:0;background:none;border:0!important;outline:none;color:var(--text);padding:12px 0!important;font-size:14px}
.wfield em{font-style:normal;color:var(--muted);font-size:13px;font-weight:700}
.form .wfield input[type=text]{background:none;width:auto}
.wtokbtn{display:flex;align-items:center;gap:10px;width:100%;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:9px 12px;text-align:left}
.wtokbtn span{flex:1}.wtokbtn b{display:block;font-size:14px}.wtokbtn small{color:var(--muted);font-size:12px}.wtokbtn>svg{width:18px;height:18px;color:var(--muted)}
.wtokbtn.sm{width:auto;flex:none;padding:6px 8px 6px 6px;border-radius:999px;gap:6px;background:var(--surface2);border-color:var(--line2)}.wtokbtn.sm b{font-size:14px}.wtokbtn.sm>svg{width:15px;height:15px}
.wpick{display:flex;flex-direction:column;gap:4px;margin-top:8px;max-height:220px;overflow-y:auto}
.wprow{display:flex;align-items:center;gap:10px;background:none;border:1px solid transparent;border-radius:10px;padding:8px;text-align:left}
.wprow.on,.wprow:active{background:var(--surface);border-color:var(--line)}.wprow span{flex:1;min-width:0}.wprow b{display:block;font-size:13.5px}.wprow small{color:var(--muted);font-size:11.5px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wprow em{font-style:normal;color:var(--silver);font-size:12.5px;font-weight:700}
.wfee{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;margin-top:12px}.wfee svg{width:14px;height:14px}
.wbig{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 0 14px}
.wbig .av{width:54px;height:54px;font-size:16px}.wbig b{font-size:24px;font-weight:800;letter-spacing:-.4px}.wbig small{color:var(--muted);font-size:13px}
.wrev{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:4px 14px}
.wrev:empty{display:none}
.wrev>div{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:10px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.wrev>div:last-child{border-bottom:0}.wrev small{color:var(--muted);font-size:12.5px;flex:none}
.wrev span{font-weight:700;text-align:right}.wrev em{font-style:normal;color:var(--dim);font-weight:500}
.wrev code{font-family:JBMono,monospace;font-size:12px;color:var(--silver)}.wrev code.full{word-break:break-all;text-align:right;font-size:11.5px}
.wrev .tot span{color:var(--accent)}
.warnc{color:var(--warn)}
.wqerr{display:flex;align-items:center;gap:8px;color:var(--warn);font-size:13px;font-weight:600;padding:10px 0!important}.wqerr svg{width:16px;height:16px}
/* swap */
.wsw{position:relative;display:flex;flex-direction:column;gap:6px}
.wswbox{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:12px 14px}
.wswl{display:flex;justify-content:space-between;align-items:center;color:var(--muted)}.wswl small{font-size:12px;display:flex;align-items:center;gap:5px}
.wswr{display:flex;align-items:center;gap:10px;margin-top:8px}
.wswr input,.wout{flex:1;min-width:0;background:none;border:0;outline:none;color:var(--text);font-size:28px;font-weight:800;letter-spacing:-.5px;padding:0}
.wout{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wusd{display:block;color:var(--dim);font-size:12px;margin-top:4px;min-height:15px}
.wflip{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:38px;height:38px;border-radius:12px;background:var(--bg2);border:1px solid var(--line2);color:var(--accent);display:flex;align-items:center;justify-content:center;z-index:2}
.wflip svg{width:18px;height:18px;transform:rotate(90deg)}
.wslip{display:flex;align-items:center;gap:6px;margin:12px 0 10px;flex-wrap:wrap}.wslip small{color:var(--muted);font-size:12px;font-weight:700;margin-right:auto}
.wslip .chipf{padding:6px 10px;font-size:12px}
.wswap2{display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px;margin-bottom:10px}
.wswap2>div{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}.wswap2 b{font-size:18px;font-weight:800;max-width:100%;overflow:hidden;text-overflow:ellipsis}.wswap2 small{color:var(--muted)}
.wswap2>i svg{width:22px;height:22px;color:var(--accent)}
/* result */
.wdone{display:flex;flex-direction:column;align-items:center;text-align:center;padding:14px 4px 4px}
.wdone h3{margin:14px 0 4px}.wdone p{color:var(--muted);margin:0 0 14px;font-size:13.5px}
.wring{width:76px;height:76px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--accent-soft);border:1px solid rgba(56,242,198,.4);color:var(--accent)}
.wring svg{width:36px;height:36px;stroke-width:2.6}.wdone.failed .wring,.wdone.unknown .wring{background:rgba(255,77,106,.1);border-color:rgba(255,77,106,.4);color:var(--down)}
.wdone.unknown .wring{color:var(--warn);border-color:rgba(255,181,71,.4);background:rgba(255,181,71,.1)}
.wsig{font-family:JBMono,monospace;font-size:11.5px;color:var(--dim);margin-top:8px}
.btn.danger{background:var(--down);color:#fff}
/* PIN pad + busy */
#pinpad{position:fixed;inset:0;z-index:80;background:rgba(5,7,15,.985);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .2s}
#pinpad.on{opacity:1;visibility:visible}
.pp{width:100%;max-width:340px;padding:24px;text-align:center}
.pplock{width:58px;height:58px;margin:0 auto 12px;border-radius:18px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center}.pplock svg{width:28px;height:28px}
.pp h3{margin:0 0 4px;font-size:19px}.pp p{color:var(--muted);margin:0;font-size:13px}
.ppdots{display:flex;justify-content:center;gap:14px;margin:22px 0 26px}.ppdots i{width:13px;height:13px;border-radius:50%;border:2px solid var(--line2)}
.ppdots i.on{background:var(--accent);border-color:var(--accent);box-shadow:0 0 10px var(--accent)}
.ppkeys{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.ppkeys button{height:62px;border-radius:18px;background:var(--surface);border:1px solid var(--line);font-size:22px;font-weight:700}.ppkeys button:active{background:var(--surface2)}
.ppcancel{margin-top:16px;background:none;border:0;color:var(--muted);font-weight:700;padding:10px}
#wbusy{position:fixed;inset:0;z-index:85;background:rgba(5,7,15,.6);display:none;align-items:center;justify-content:center}
#wbusy.on{display:flex}#wbusy>div{display:flex;align-items:center;gap:10px;background:var(--surface2);border:1px solid var(--line2);padding:14px 18px;border-radius:14px;font-weight:700}
.spin{width:22px;height:22px;border-radius:50%;border:2.5px solid var(--line2);border-top-color:var(--accent);animation:spinr .8s linear infinite;display:inline-block}
.wrow .l2 sub{vertical-align:-2px}

/* ================= v4.0: markets segment, launchpad, polish ================= */
.mseg{display:none;gap:6px;margin-top:12px;overflow-x:auto;scrollbar-width:none}
.mseg::-webkit-scrollbar{display:none}
.mseg.on{display:flex}
.mseg button{flex:none;display:flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--line);color:var(--muted);border-radius:10px;padding:7px 11px;font-size:12.5px;font-weight:700;transition:all .2s var(--ease)}
.mseg button svg{width:15px;height:15px}
.mseg button.on{background:var(--accent-soft);border-color:rgba(56,242,198,.45);color:var(--accent)}
.sortbtn .cnt{background:var(--accent-soft);color:var(--accent);border-radius:6px;padding:0 6px;font-size:11px;line-height:18px}
.opt svg{width:18px;height:18px;color:var(--accent)}
.rise{display:inline-flex;align-items:center;gap:1px}.rise svg{width:10px;height:10px;stroke-width:3}
.ppkeys button svg{width:24px;height:24px;color:var(--silver)}
.field .x svg{width:14px;height:14px}

.lp{padding:4px 16px 24px}
.lp-card{background:linear-gradient(180deg,var(--bg2),var(--bg));border:1px solid var(--line);border-radius:18px;padding:16px}
.lp-img{display:flex;gap:14px;align-items:center}
.lp-drop{position:relative;width:96px;height:96px;flex:none;border-radius:20px;border:1.5px dashed var(--line2);background:var(--surface);display:flex;align-items:center;justify-content:center;overflow:hidden;color:var(--dim);transition:border-color .2s}
.lp-drop svg{width:30px;height:30px}
.lp-drop.has{border-style:solid;border-color:var(--line)}
.lp-drop.err{border-color:var(--down)}
.lp-drop img{width:100%;height:100%;object-fit:cover}
.lp-drop input,.lp-pick input{position:absolute;inset:0;opacity:0;width:100%;height:100%}
.lp-imgtx{display:flex;flex-direction:column;gap:4px;min-width:0}
.lp-imgtx b{font-size:15px}
.lp-imgtx small{color:var(--muted);font-size:12px;line-height:1.4}
.lp-imgtx .msg{color:var(--down);font-size:12px;display:none}
.lp-pick{position:relative;align-self:flex-start;margin-top:6px;overflow:hidden}
.lp-form label{text-transform:uppercase;letter-spacing:.6px;font-size:11px;color:var(--muted);margin-top:16px}
.lp-form label span{text-transform:none;letter-spacing:0;font-weight:500;color:var(--dim);margin-left:4px}
.lp-2{display:grid;grid-template-columns:1.6fr 1fr;gap:10px}
.lp-tick,.lp-link,.lp-dev{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:0 12px;transition:border-color .2s}
.lp-tick:focus-within,.lp-link:focus-within,.lp-dev:focus-within{border-color:rgba(56,242,198,.55)}
.lp-tick em{font-style:normal;color:var(--dim);font-family:JBMono,monospace;font-weight:700}
.lp-tick input,.lp-link input,.lp-dev input{flex:1;min-width:0;background:none!important;border:0!important;padding:11px 0!important;color:var(--text);outline:none;font-size:14px}
.lp-tick input{font-family:JBMono,monospace;font-weight:700;letter-spacing:.5px}
.lp-link{margin-top:8px}.lp-link:first-of-type{margin-top:0}
.lp-link svg{width:17px;height:17px;color:var(--muted);flex:none}
.lp-dev input{font-size:18px;font-weight:700}
.lp-dev em{font-style:normal;color:var(--silver);font-weight:700;font-size:13px}
.lp-dev small{color:var(--dim);font-size:12px;min-width:0}
.lp-presets{padding:10px 0 0}
.lp-wal{display:flex;align-items:center;gap:12px;margin-top:12px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 14px}
.lp-wal>svg{width:22px;height:22px;color:var(--accent);flex:none}
.lp-wal span{display:flex;flex-direction:column;min-width:0;flex:1}
.lp-wal small{color:var(--muted);font-size:11.5px}
.lp-wal b{font-family:JBMono,monospace;font-size:13px}
.lp-wal.none b{font-family:inherit}
.lp-wal em{font-style:normal;font-weight:800;font-size:14px}
.lp-cost{display:flex;gap:10px;align-items:flex-start;margin-top:12px;color:var(--muted);font-size:12.5px;line-height:1.45;padding:0 2px}
.lp-cost svg{width:17px;height:17px;flex:none;margin-top:1px;color:var(--dim)}
.lp-cost b{color:var(--silver)}
.lp-go{margin-top:16px;height:52px;font-size:15.5px}
.lp-adv{display:inline-flex;align-items:center;gap:6px;background:none;border:0;color:var(--muted);font-size:12px;font-weight:600;margin-top:10px;padding:4px}
.lp-adv svg{width:14px;height:14px}
.lp .msg{color:var(--down);font-size:12px;margin-top:4px;display:none}
.lp-tick.err,.lp-link.err,.lp-dev.err{border-color:var(--down)}

.lp-steps{display:flex;flex-direction:column;gap:2px;margin-top:10px}
.lp-steps>div{display:flex;align-items:center;gap:12px;padding:12px 2px;color:var(--dim);font-weight:600;font-size:14px}
.lp-steps>div.on{color:var(--text)}.lp-steps>div.done{color:var(--silver)}
.lp-steps i{width:26px;height:26px;border-radius:50%;border:1.5px solid var(--line2);display:flex;align-items:center;justify-content:center;flex:none}
.lp-steps .done i{background:var(--accent-soft);border-color:rgba(56,242,198,.5);color:var(--accent)}
.lp-steps i svg{width:15px;height:15px;stroke-width:2.6}
.lp-rv{display:flex;gap:14px;align-items:flex-start;margin:4px 0 14px}
.lp-rv>img,.lp-rv>.av{width:72px;height:72px;border-radius:18px;object-fit:cover;flex:none;border:1px solid var(--line)}
.lp-rv>div{min-width:0}
.lp-rv b{font-size:18px;display:block}
.lp-rv span{font-family:JBMono,monospace;color:var(--accent);font-weight:700;font-size:13px}
.lp-rv p{color:var(--muted);font-size:12.5px;margin:6px 0 0;line-height:1.45;word-break:break-word}
.lp-rvl{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.lp-rvl em{display:inline-flex;align-items:center;gap:5px;font-style:normal;font-size:11.5px;color:var(--silver);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:3px 8px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lp-rvl svg{width:12px;height:12px;flex:none}
.lp-ok,.wsheet .warnc{display:flex;gap:10px;align-items:center;margin-top:12px;border-radius:12px;padding:10px 12px;font-size:12.5px;font-weight:600}
.lp-ok{color:var(--up);background:rgba(34,211,154,.08);border:1px solid rgba(34,211,154,.25)}
.wsheet .warnc{background:rgba(255,181,71,.08);border:1px solid rgba(255,181,71,.3);align-items:flex-start}
.lp-ok svg,.wsheet .warnc svg{width:18px;height:18px;flex:none}
.lp-gate{text-align:center;padding:10px 4px}
.lp-gate i{width:64px;height:64px;border-radius:50%;margin:0 auto 10px;display:flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent)}
.lp-gate i svg{width:28px;height:28px}
.lp-done-av{position:relative;width:84px;height:84px;margin-bottom:6px}
.lp-done-av>img,.lp-done-av>.av{width:84px;height:84px;border-radius:22px;object-fit:cover;border:1px solid var(--line)}
.lp-done-av i{position:absolute;right:-6px;bottom:-6px;width:30px;height:30px;border-radius:50%;background:var(--accent);color:#04120E;display:flex;align-items:center;justify-content:center;border:3px solid var(--bg2)}
.wdone.failed .lp-done-av i{background:var(--down);color:#fff}
.wdone.pending .lp-done-av i{background:var(--surface2);color:var(--accent)}
.lp-done-av i svg{width:15px;height:15px;stroke-width:3}
.lp-ca{width:100%;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:10px 12px;margin-top:14px;display:grid;grid-template-columns:1fr auto;gap:4px 10px;align-items:center}
.lp-ca small{grid-column:1/3;color:var(--muted);font-size:11.5px}
.lp-ca code{font-family:JBMono,monospace;font-size:12px;word-break:break-all;color:var(--text)}
.lp-dl{justify-content:center;margin-top:12px}
.lp-row{width:100%;text-align:left;color:inherit;margin-bottom:8px}
.lp-row .rt{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex:none}
.lp-row .rt code{font-family:JBMono,monospace;font-size:12px;color:var(--silver)}
.lp-st{font-size:10.5px;font-weight:800;padding:2px 7px;border-radius:6px;margin-left:8px;letter-spacing:.3px}
.lp-st.live{color:var(--up);background:rgba(34,211,154,.14)}
.lp-st.pending{color:var(--warn);background:rgba(255,181,71,.14)}
.lp-st.failed{color:var(--down);background:rgba(255,77,106,.14)}
.lp-one{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding-top:6px}
.lp-one .av{width:72px;height:72px;border-radius:18px;font-size:20px}
.lp-one h3{margin:6px 0 0}.lp-one h3 span{font-family:JBMono,monospace;color:var(--accent);font-size:14px}
.lp-empty{width:64px;height:64px;border-radius:50%;margin:0 auto;display:flex;align-items:center;justify-content:center;background:var(--surface);color:var(--muted)}
.lp-empty svg{width:28px;height:28px}
.av.lg{width:72px;height:72px;border-radius:18px;font-size:20px}

.toolbar>div:first-child{min-width:0;flex:1}
.sub-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sortbtn{white-space:nowrap;flex:none}
.meta{gap:10px}.meta>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.meta .live{white-space:nowrap;flex:none}
.lp-presets{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.lp-presets .chipf{padding:8px 0;text-align:center}
.wrow .l2 sub,.px sub{letter-spacing:0;margin:0 .5px;font-feature-settings:normal}
.mseg button{flex:1 1 auto;justify-content:center;padding:7px 8px;font-size:12px;gap:5px}
.mseg button svg{width:14px;height:14px}

/* ================= v4.1: DexScreener-style markets ================= */
.mseg button .win{font-weight:800;color:inherit;margin-left:1px}
.mseg button svg:last-child:not(:first-child){width:13px;height:13px;margin-left:-2px}
.mseg .u1m{flex:0 0 auto;margin-left:auto;font-size:11.5px;padding:7px 9px}
.mseg .u1m.on{background:rgba(31,184,255,.12);border-color:rgba(31,184,255,.45);color:var(--accent2)}
.mstats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;padding:2px 16px 12px}
.mstat{display:flex;flex-direction:column;align-items:flex-start;gap:3px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:9px 11px;color:var(--text);text-align:left;min-width:0}
.mstat small{font-size:10px;font-weight:700;letter-spacing:.6px;color:var(--muted);display:flex;align-items:center;gap:5px;white-space:nowrap}
.mstat b{font-size:15.5px;font-weight:800;letter-spacing:-.2px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.mstat span{font-size:10.5px;color:var(--dim);margin-top:-2px}
.livedot{width:6px;height:6px;border-radius:50%;background:var(--up);box-shadow:0 0 6px var(--up);animation:pulse 2s infinite}
.row.mk{flex-direction:column;align-items:stretch;gap:8px}
.mkmain{display:flex;align-items:center;gap:12px;min-width:0}
.row.mk .mid{flex:1;min-width:0}
.row.mk .l1{display:flex;align-items:center;gap:6px}
.row.mk .l2 .name{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:12.5px}
.mkr{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex:none}
.mkr .px{font-weight:800;font-size:15px;margin:0}
.mkch{display:flex;gap:8px;font-size:12px;font-weight:700}
.mkch span{display:flex;align-items:center;gap:4px}
.mkch em{font-style:normal;color:var(--dim);font-size:10px;font-weight:700}
.row.mk .star{margin-left:2px}
.mkpills{display:flex;gap:6px;padding-left:52px}
.mkpills span{display:flex;align-items:center;gap:5px;background:var(--bg2);border:1px solid var(--line);border-radius:7px;padding:3px 8px;font-size:11.5px;font-weight:700;color:var(--silver);white-space:nowrap}
.mkpills em{font-style:normal;color:var(--dim);font-size:10px;font-weight:700;letter-spacing:.3px}
.row.mk .l1 .sym{max-width:none;flex:0 1 auto;min-width:0}
.row.mk .l1 .q,.row.mk .l1 .age{flex:none}
.row.mk .l1 .q{margin-left:-2px}
.mstat #slotN{font-size:14px}
.row.mk .l2{display:flex;align-items:center;gap:6px;min-width:0}
.row.mk .l2 .age{flex:none;margin:0}
.row.mk .l2 .age{font-size:10.5px;font-weight:700;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:1px 5px;line-height:1.3}
/* ================= v4.2: responsive fit (narrow phones, large Android font size) ================= */
html,body{overflow-x:hidden;max-width:100%}
#app,main,#main,#content,#detail,.view{overflow-x:hidden;max-width:100%}
img,svg,canvas,video,iframe{max-width:100%}
input,textarea,select,button{max-width:100%}
.mseg{position:relative;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}
.mseg.scrolls{-webkit-mask-image:linear-gradient(90deg,#000 82%,transparent);mask-image:linear-gradient(90deg,#000 82%,transparent)}
.mseg button{flex:0 0 auto;padding:7px clamp(7px,2.2vw,11px);font-size:clamp(11px,3.3vw,12.5px)}
.mseg .u1m{margin-left:0;font-size:clamp(10.5px,3.1vw,11.5px)}
.mstats{gap:clamp(5px,1.8vw,8px);padding-left:clamp(10px,4vw,16px);padding-right:clamp(10px,4vw,16px)}
.mstat{padding:8px clamp(6px,2.4vw,11px);overflow:hidden}
.mstat small{font-size:clamp(8.5px,2.6vw,10px);letter-spacing:.3px;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.mstat b,.mstat #slotN{display:block;width:100%;font-size:clamp(12.5px,4vw,15.5px);overflow:hidden;text-overflow:clip;white-space:nowrap}
.mstat span{font-size:clamp(9px,2.8vw,10.5px);white-space:nowrap}
.mkmain{gap:clamp(8px,2.6vw,12px)}
.row.mk .av{width:clamp(34px,10vw,40px);height:clamp(34px,10vw,40px)}
.agb{position:absolute;left:50%;bottom:-7px;transform:translateX(-50%);font-size:9px;font-weight:800;line-height:1;padding:2px 4px;border-radius:5px;background:var(--bg2);border:1px solid var(--line2);color:var(--silver);white-space:nowrap}
.row.mk .l1{min-width:0}
.row.mk .l1 .sym{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(13px,4vw,15px)}
.row.mk .l1 .q{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:clip;white-space:nowrap;font-size:clamp(10.5px,3.2vw,12px)}
.row.mk .l2 .name{font-size:clamp(11px,3.4vw,12.5px)}
.mkr{flex:0 1 auto;min-width:0;max-width:62%}
.mkr .px{display:block;max-width:100%;overflow:hidden;white-space:nowrap;text-align:right;font-size:clamp(13px,4vw,15px)}
.mkch{gap:clamp(5px,1.8vw,8px);font-size:clamp(10.5px,3.2vw,12px);flex-wrap:wrap;justify-content:flex-end;row-gap:1px}
.mkch span{white-space:nowrap}
.mkch em{font-size:clamp(9px,2.6vw,10px)}
.row.mk .star{padding:5px}
.mkpills{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(4px,1.5vw,6px);padding-left:calc(clamp(34px,10vw,40px) + clamp(8px,2.6vw,12px))}
.mkpills span{min-width:0;overflow:hidden;justify-content:space-between;gap:4px;padding:3px clamp(4px,1.6vw,8px);font-size:clamp(10px,3.1vw,11.5px)}
.mkpills em{flex:none;font-size:clamp(8.5px,2.6vw,10px);letter-spacing:.2px}
.mkpills b{font-weight:700;min-width:0;overflow:hidden;text-overflow:clip;white-space:nowrap}
.mkpills.stack span{flex-direction:column;align-items:flex-start;justify-content:center;gap:1px;padding:3px 6px}
@media (max-width:380px){.mkpills{padding-left:0}}
.row.mk .l1.noq .q{display:none}
.brand{min-width:0;gap:clamp(6px,2.5vw,10px)}
.brand img{flex:none;width:clamp(26px,8vw,30px);height:clamp(26px,8vw,30px)}
.brand .wm{font-size:clamp(16px,5.2vw,19px);min-width:0;overflow:hidden;white-space:nowrap}
.brand .net{flex:0 1 auto;min-width:0;white-space:nowrap;font-size:clamp(10px,3.1vw,11.5px);padding:5px clamp(6px,2vw,9px)}
.brand .net i{flex:none}
.iconbtn.hs{width:clamp(32px,9.5vw,36px);height:clamp(32px,9.5vw,36px)}
header{padding-left:clamp(10px,4vw,16px);padding-right:clamp(10px,4vw,16px)}
.title{font-size:clamp(18px,6vw,22px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sortbtn{font-size:clamp(11px,3.3vw,12.5px);padding:7px clamp(7px,2.4vw,10px)}
.pills{grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(4px,1.8vw,8px);padding:10px clamp(10px,4vw,16px)}
.pill{min-width:0;overflow:hidden;padding:8px 2px}
.pill small,.pill b{display:block;white-space:nowrap;overflow:hidden;text-overflow:clip}
.pill b{font-size:clamp(11px,3.6vw,13px)}
.dhead .mid{min-width:0;flex:1}
.dhead .stats{display:flex;min-width:0;white-space:nowrap;overflow:hidden}
.dhead .stats span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis}
.dhead .stats span{flex:none}.dhead .stats span:first-child{flex:0 1 auto}
.mkr{max-width:50%}
.row.mk .mid{flex:1 1 0;min-width:0}
.wrow .mid{flex:1 1 auto;min-width:0}
.wrow .l1,.wrow .l2{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wrow .l1 b{min-width:0;overflow:hidden;text-overflow:ellipsis}
.wrow .rt{flex:0 1 auto;min-width:0;max-width:52%}
.wrow .rt b,.wrow .rt small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wrow .av{flex:none}
.wrow{gap:clamp(8px,2.6vw,12px);padding:11px clamp(9px,3vw,12px)}
.wtotal{font-size:clamp(28px,10vw,38px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
@media (max-width:400px){.mkch{flex-direction:column;align-items:flex-end;gap:1px}.mkr{gap:2px}}
.lp-pick{max-width:100%;white-space:normal;text-align:left;line-height:1.2;padding-left:clamp(8px,2.6vw,12px);padding-right:clamp(8px,2.6vw,12px)}
.lp-pick svg{flex:none}
.lp-img{gap:clamp(10px,3.5vw,14px)}
.lp-imgtx{flex:1}
.sub-title{white-space:normal;overflow:visible;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.row.mk .l2 .name{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.25;word-break:break-word}
.lp-2{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}
.lp-tick,.lp-link,.lp-dev{padding:0 clamp(8px,3vw,12px);gap:clamp(4px,1.6vw,8px);min-width:0}
.lp-tick input{letter-spacing:0}
@media (max-width:359px){.lp-2{grid-template-columns:minmax(0,1fr)}}
.dhead .stats span:first-child{flex:0 1 auto;min-width:3.5em}
.dhead .stats span+span{flex:0 100 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;margin-left:3px}
