
.snchip.snlos{border-color:rgba(245,182,66,.45);color:var(--gold);background:rgba(245,182,66,.06)}.snchip .snsh{display:none}@media(max-width:480px){.snchip .snlg{display:none}.snchip .snsh{display:inline}}
.smh:empty{display:none}.smh{display:inline-block;margin:3px 0 0 4px;padding:1px 7px;border-radius:8px;border:1px solid rgba(46,204,113,.45);color:var(--grn);background:rgba(46,204,113,.07);font-size:10px;font-weight:600;line-height:1.5;cursor:help}
.snchip{display:inline-block;margin-top:3px;padding:1px 7px;border-radius:10px;border:1px solid var(--line);color:var(--mut);font-size:10px;font-weight:600;line-height:1.5;white-space:normal;cursor:help}
:root{--bg:#070910;--bg2:#0b0e17;--panel:rgba(20,25,35,.95);--line:#222a39;--txt:#eef1f7;--mut:#7e8aa1;--grn:#37e0a0;--red:#ff6b7d;--acc:#4f7dff;--acc2:#9d7bff;--gold:#f5b642}
*{box-sizing:border-box}
body{margin:0;color:var(--txt);font:14px/1.55 -apple-system,Segoe UI,Inter,Roboto,sans-serif,"PingFang SC","Hiragino Sans","Microsoft YaHei","Noto Sans CJK SC","Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji";
 background:radial-gradient(1300px 760px at 10% -10%,rgba(79,125,255,.20),transparent 60%),radial-gradient(1100px 640px at 102% -4%,rgba(157,123,255,.16),transparent 55%),radial-gradient(1000px 560px at 50% 118%,rgba(55,224,160,.06),transparent 60%),var(--bg)}
.main::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.5;
 background-image:linear-gradient(rgba(255,255,255,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.022) 1px,transparent 1px);
 background-size:46px 46px;-webkit-mask:radial-gradient(1100px 620px at 35% 0,#000,transparent 72%);mask:radial-gradient(1100px 620px at 35% 0,#000,transparent 72%)}
.content,.top{position:relative;z-index:1}
.app{display:grid;grid-template-columns:76px minmax(0,1fr);min-height:100vh}
.side{background:linear-gradient(180deg,rgba(13,16,24,.9),rgba(10,12,20,.75));border-right:1px solid var(--line);
 padding:16px 10px;position:sticky;top:0;height:100vh;z-index:1}
.brand{display:flex;flex-direction:column;align-items:center;gap:4px;padding:2px 0 18px}
.logo{width:40px;height:40px;display:grid;place-items:center}
.logo svg{width:34px;height:34px}
.brand b{font-size:11px}.brand span{display:none}
.nav{display:flex;flex-direction:column;gap:6px;margin-top:6px}
.nav a{position:relative;display:grid;place-items:center;height:46px;border-radius:12px;color:var(--mut);text-decoration:none;cursor:pointer;
 font-size:0;transition:.15s;border:1px solid transparent}
.nav a svg{width:21px;height:21px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nav a.on svg{stroke:#fff}
.nav a small{position:absolute;left:60px;white-space:nowrap;background:#11151f;border:1px solid var(--line);padding:5px 9px;border-radius:8px;
 font-size:12px;color:var(--txt);opacity:0;pointer-events:none;transition:.12s;z-index:9;box-shadow:0 8px 24px rgba(0,0,0,.5)}
.nav a:hover small{opacity:1}
.nav a:hover{color:var(--txt);background:rgba(79,125,255,.08)}
.nav a.on{color:#fff;background:linear-gradient(135deg,rgba(79,125,255,.22),rgba(157,123,255,.16));border-color:rgba(79,125,255,.35);box-shadow:0 4px 18px rgba(79,125,255,.2)}
.main{min-width:0}
.top{display:flex;align-items:center;gap:20px;padding:14px 26px;border-bottom:1px solid var(--line);
 background:rgba(11,14,23,.6);overflow-x:auto;white-space:nowrap;font-size:13px;position:sticky;top:0;z-index:5}
.tick{color:var(--mut)}.tick b{color:var(--txt);font-weight:700}
.psbar{display:flex;align-items:center;justify-content:center;gap:8px;min-height:34px;padding:0 6px 0 14px;font-size:13px;background:linear-gradient(90deg,rgba(79,125,255,.2),rgba(157,123,255,.2));border-bottom:1px solid rgba(79,125,255,.3)}
.psbar[hidden]{display:none}
.psbar .pstxt{flex:1 1 auto;min-width:0;text-align:center;color:var(--txt);cursor:pointer;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.psbar .pss{display:none}@media(max-width:480px){#waprof{min-height:40px;padding-top:10px;padding-bottom:10px}#wa{flex:1 1 0}.psbar{min-height:40px;padding-left:8px;gap:2px;font-size:12px}.psbar .pstxt{white-space:nowrap;line-height:40px}.psbar .psl{display:none}.psbar .pss{display:inline}}
.psbar .pstxt b{color:var(--cyan)}.psbar .pstxt:hover u{color:#fff}
.psbar .psx{flex:0 0 auto;width:40px;height:40px;border:0;background:none;box-shadow:none;color:var(--mut);font-size:20px;line-height:1;cursor:pointer;border-radius:8px}.psbar .psx:hover{color:var(--txt);background:rgba(255,255,255,.06)}
#hochips{margin-bottom:12px}#hochips .chip{white-space:nowrap}#hochips .chip.hsoon{opacity:.62}
.soonpill{font-style:normal;font-size:9px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;padding:1px 6px;margin-left:4px;border-radius:10px;background:rgba(79,125,255,.2);color:var(--cyan);vertical-align:1px}
.pshero{text-align:left;padding:26px 24px}.pshero h1{margin:6px 0 8px}
.psgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}
.psgrid .ovpanel{padding:16px;font-size:14px;line-height:1.45}
@media(min-width:1100px){.psgrid{grid-template-columns:repeat(3,1fr)}.psgrid>.psu:first-child:nth-last-child(3n+1),.psgrid>.psu:last-child:nth-child(3n+1){grid-column:span 2}   /* 3n+1 cards: first + last span 2 so the grid closes flush (was a lone full-width 10th card) */}
.bmore.psmore{display:none}@media(max-width:480px){.psgrid:not(.open)>.psx{display:none}.bmore.psmore{display:block;margin:12px 0 0}}   /* Presale 390: first 6 'Why hold' cards, the rest behind a show-more so Tokenomics is not ~2300px down */
.psu{display:flex;gap:12px;align-items:flex-start}.psu b{display:block;color:var(--txt);margin-bottom:3px}.psu span{color:var(--mut);font-size:13px}
.psic{width:34px;height:34px;flex:0 0 auto;border-radius:10px;display:grid;place-items:center;background:rgba(79,125,255,.14);border:1px solid rgba(79,125,255,.35);color:var(--cyan)}
.psic svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.pscta{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.pscta button,.pscta a.trkbtn{min-height:40px}
.psrev{margin-top:12px;border-color:rgba(55,224,160,.4);background:linear-gradient(90deg,rgba(55,224,160,.09),transparent 70%)}.psrev b{font-size:15px}
.pscount{display:inline-flex;margin-top:12px;padding:6px 12px;border-radius:10px;background:rgba(55,224,160,.12);border:1px solid rgba(55,224,160,.35);color:var(--grn);font-weight:700;font-size:13px}
.pstok{display:flex;flex-wrap:wrap;gap:12px}.pstok>.ovpanel{flex:1 1 160px;margin:0}@media(min-width:1100px){.pstok>.ovpanel{flex-basis:calc(25% - 9px)}.pstok>.ovpanel.w2{flex-basis:calc(50% - 6px)}}@media(max-width:480px){.pstok{display:grid;grid-template-columns:1fr 1fr;grid-auto-flow:row dense;gap:10px}.pstok>.ovpanel:first-child,.pstok>.ovpanel:has(.v.txt){grid-column:span 2}}.psrev .badge{white-space:nowrap}
.pstok .ovpanel{padding:14px 16px}.pstok .l{color:var(--mut);font-size:11px;text-transform:uppercase;letter-spacing:.5px}.pstok .v{font-size:20px;font-weight:800;margin-top:4px;overflow-wrap:anywhere}.pstok .v.tba{color:var(--mut);font-size:16px;font-weight:600}.pstok .v.num{white-space:nowrap;overflow-wrap:normal;font-variant-numeric:tabular-nums}.pstok .v.txt{font-size:14px;font-weight:500;line-height:1.4;color:var(--txt);overflow-wrap:break-word}@media(max-width:480px){.pstok .v.num{font-size:18px}}
.pscur{display:flex;gap:10px;flex-wrap:wrap}.pschip{display:flex;flex-direction:column;gap:2px;min-width:120px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:rgba(9,12,20,.6)}.pschip b{font-size:16px}.pschip small{color:var(--mut);font-size:12px}.pschip i{font-style:normal;font-size:11px;color:var(--mut);text-transform:uppercase;letter-spacing:.5px}.pschip.on{border-color:rgba(79,125,255,.5)}.pschip.on i{color:var(--green,#2bd67b)}.pspay .psrow{margin-top:8px}.pspayrow{display:flex;gap:16px;align-items:center}.pspayrow>.mut{flex:1;min-width:260px;margin-top:0!important}@media(max-width:820px){.pspayrow{flex-direction:column;align-items:stretch;gap:10px}.pspayrow>.mut{min-width:0}}@media(max-width:480px){.pschip{flex:1 1 90px;min-width:0}.pspay .psrow{flex-direction:column;gap:4px}}
.pssteps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.pssteps .howstep{margin:0}
.psduo{display:grid;grid-template-columns:1fr;gap:12px}@media(min-width:900px){.psduo{grid-template-columns:1fr 1fr}}
.psfaq{display:flex;flex-direction:column;gap:8px}.psfaq .howbox{margin:0}.psfaq .howbox p{margin:8px 0 2px;color:var(--mut);font-size:13.5px;line-height:1.5}
.pslinks{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.ovps{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:16px;cursor:pointer;background:linear-gradient(90deg,rgba(79,125,255,.16),rgba(157,123,255,.12));border-color:rgba(79,125,255,.4)}
.ovps .mut{font-size:13px;margin-top:3px}
.psrow{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}.psrow:last-child{border-bottom:0}
.psrow>span:first-child{color:var(--mut);flex:0 0 auto}.psrow>span:last-child{text-align:right;min-width:0;overflow-wrap:anywhere}
.psrow .soon{color:var(--mut);font-size:13px;font-weight:500}
#mktticker{display:inline-flex;gap:14px;align-items:center;padding-right:16px;margin-right:4px;border-right:1px solid var(--line)}
@media(min-width:481px){#ticker #ethp,#ticker .chsep{display:none}}   /* the market strip already prices the native coin - the chain tick shows the name only; <=480 hides that strip cell and keeps #ethp */
@media(min-width:821px){#mktticker{flex:1 1 0;min-width:124px;flex-wrap:wrap;row-gap:40px;max-height:36px;overflow:hidden;align-content:flex-start}#mktticker .mkt{flex:0 0 auto;line-height:36px}#mktticker.tight{gap:8px;padding-right:10px}#mktticker.tight .mkt .ch{display:none}}   /* items that do not fit wrap to a hidden 2nd row - never a half-cut price */
@media(min-width:1041px){.top{gap:12px}#mktticker{flex:0 0 auto;max-width:540px;gap:12px}.top>.tick:not(#mktticker){flex:0 0 auto}}   /* wide desktop: the coins keep their natural width with % chips; the search box (.topsrch below, flex 0 1 250px, min 150px) shrinks with the bar, mktFit drops the chips only if the bar would still overflow */
.topsrch{flex:0 1 250px;min-width:150px;display:flex;align-items:center;gap:7px;height:36px;padding:0 11px;border:1px solid var(--line);border-radius:10px;background:rgba(9,12,20,.6);transition:.15s}
.topsrch{position:relative}.sqdd,.sqmsg{position:fixed;max-width:calc(100vw - 24px);z-index:60;background:#0d111a;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.5)}
.sqdd{padding:4px;max-height:60vh;overflow-y:auto}.sqmsg{padding:10px 12px;font-size:12.5px;color:var(--mut);line-height:1.4}
.sqrow{display:flex;align-items:center;gap:8px;min-height:40px;padding:0 10px;border-radius:9px;cursor:pointer;font-size:13px}.sqrow.on,.sqrow:hover{background:rgba(79,125,255,.16)}
.sqrow b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px}.sqrow b.sqw{font-family:ui-monospace,monospace;font-size:12px;font-weight:600;color:#9db4ff;max-width:none;flex:none}.sqrow .mut{font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sqrow .sqa{margin-left:auto;font-family:ui-monospace,monospace;font-size:11px;color:var(--mut);white-space:nowrap}
.topsrch:focus-within{border-color:rgba(79,125,255,.7);box-shadow:0 0 0 3px rgba(79,125,255,.18)}
.topsrch svg,.topsrchbtn svg{width:15px;height:15px;flex:0 0 auto;fill:none;stroke:var(--mut);stroke-width:2.2;stroke-linecap:round}
.topsrch input{flex:1;min-width:0;background:none;border:0;outline:0;color:var(--txt);font:inherit;font-size:13px;padding:0}
.sqkbd{flex:0 0 auto;font:600 10.5px/1 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--mut);border:1px solid var(--line);border-radius:5px;padding:3px 5px;background:rgba(255,255,255,.03);pointer-events:none;white-space:nowrap}
.topsrch:focus-within .sqkbd,.topsrch input:not(:placeholder-shown)~.sqkbd,.topsrch.sheet .sqkbd{display:none}   /* shortcut hint only while the box is idle */
.topsrch{container-type:inline-size}@container (max-width:219px){.sqkbd{display:none}}   /* a squeezed box keeps its whole placeholder instead of the hint */
.topsrch input:focus{box-shadow:none}   /* the .topsrch box draws the focus ring; the global input:focus glow drew a second ring inside it */
.topsrchbtn{display:none;flex:0 0 auto;width:44px;height:44px;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:10px;background:rgba(9,12,20,.6);cursor:pointer;padding:0}
.topsrchbtn svg{width:18px;height:18px;stroke:var(--txt)}
@media(max-width:1040px){.topsrch{display:none}.topsrchbtn{display:flex}}
.sqx{display:none}.topsrch.sheet{display:flex;position:fixed;left:12px;right:12px;z-index:59;height:48px;min-width:0;background:#0d111a;border-color:rgba(79,125,255,.7);box-shadow:0 0 0 3px rgba(79,125,255,.18),0 12px 32px rgba(0,0,0,.5)}
.topsrch.sheet input,.topsrch.sheet input:focus{font-size:16px;height:44px;border:0;box-shadow:none;outline:0;background:none}.topsrch.sheet .sqx{display:flex;align-items:center;justify-content:center;flex:0 0 auto;width:40px;height:40px;margin-right:-8px;border:0;background:none;color:var(--mut);font-size:22px;cursor:pointer;padding:0}
#sqbd{position:fixed;inset:0;z-index:58;background:rgba(3,5,10,.62)}
@media(min-width:821px) and (max-width:1040px){.top>.tick:has(#tkn){display:none}}   /* narrow desktop: keep BTC + Connect wallet on screen */
.mkt{display:inline-flex;gap:5px;align-items:center;font-size:12px}
.mkt .sym{color:var(--mut);font-weight:700;font-size:10px;letter-spacing:.5px}
.mkt .px{color:var(--txt);font-weight:700}
.mkt .ch{font-size:11px}
.content{padding:26px 40px;max-width:1680px;margin:0 auto}
h1{font-size:34px;margin:0 0 6px;font-weight:800;letter-spacing:-.02em;color:#f3f6ff}
.lead{color:var(--mut);margin:0 0 22px;font-size:15px}
.bar{display:flex;gap:9px;flex-wrap:wrap;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:12px;box-shadow:0 10px 40px rgba(0,0,0,.35)}
input,select,button{background:rgba(9,12,20,.8);border:1px solid var(--line);color:var(--txt);border-radius:10px;padding:11px 13px;font-size:14px;outline:none;transition:.15s}
input:focus{border-color:var(--acc);box-shadow:0 0 0 3px rgba(79,125,255,.18)}
input.big{flex:1;min-width:280px;font-family:ui-monospace,monospace}
.kw{position:relative;display:flex;flex:1;min-width:280px}.kw input.big{min-width:0;flex:1}
.kcap{display:none;position:absolute;right:10px;top:50%;transform:translateY(-50%);font:11px ui-monospace,monospace;color:var(--mut);border:1px solid var(--line);border-radius:5px;padding:1px 6px;pointer-events:none}
@media(min-width:1024px){.kcap{display:block}.kw input.big{padding-right:34px}.kw input.big::placeholder{text-overflow:ellipsis}.kw input:focus+.kcap,.kw input:not(:placeholder-shown)+.kcap{display:none}}
@media(min-width:481px) and (max-width:1500px){.scanbar>.kw{order:10;flex:1 1 calc(100% - 160px);min-width:0}.scanbar>#go{order:11;flex:0 0 auto}}   /* 481-1500: chains + window/depth on row 1, a full-width search + Find wallets on row 2 (one row was too tight: the box was ~170px and cut the placeholder mid-word) */
.cpbar{align-items:flex-end}.cpf{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--mut);min-width:0}.cpf input{width:100%;box-sizing:border-box}.cpn{flex:0 0 160px}.cpw{flex:1;min-width:280px}.cpw input.big{min-width:0}.cpm{flex:0 0 130px}
.cpf>span{text-transform:uppercase;letter-spacing:.08em;font-size:10.5px;font-weight:600}   /* Copy form labels match the Top traders filter labels */
@media(max-width:480px){.cpn,.cpw{flex:1 1 100%;min-width:0}.cpm{flex:1 1 40%}.cpf input,.cpbar button{min-height:40px}.cpbar button{flex:1 1 100%}}
.recentrow{display:flex;gap:8px;align-items:center;overflow-x:auto;margin-top:10px;scrollbar-width:thin}.recentrow:empty{display:none}
.rchip{flex:0 0 auto;white-space:nowrap;display:inline-flex;gap:6px;align-items:center;min-height:40px;padding:6px 12px;font-size:13px}
button{cursor:pointer;background:linear-gradient(135deg,#4f7dff,#6d5cff);border:none;color:#fff;font-weight:700;box-shadow:0 6px 18px rgba(79,125,255,.35)}
button:hover{filter:brightness(1.08)}button.ghost{background:rgba(9,12,20,.8);color:var(--txt);border:1px solid var(--line);box-shadow:none;font-weight:600}
button:disabled{opacity:.5}
.chip{padding:9px 13px;border-radius:10px;border:1px solid var(--line);background:rgba(9,12,20,.8);cursor:pointer;font-size:13px;font-weight:600}
.topf{display:flex;gap:6px;margin:2px 0 10px;flex-wrap:wrap;align-items:center}.topfl{font-size:12px;margin-right:2px}.trec{font-size:11px;color:var(--mut);font-weight:400;margin-top:2px;white-space:nowrap}.trec b{color:var(--txt);font-weight:700}
/* >=1024: fold the four filter rows into two (chain+tier+win rate / traded+sort); narrower keeps one row each */
.topfr{display:contents}@media(min-width:1024px){.topfr{display:flex;flex-wrap:wrap;align-items:center;column-gap:14px;row-gap:8px;margin:2px 0 10px}.topfr+.topfr{margin-bottom:14px}.topfr>.topf{margin:0!important;gap:4px}.topfr .chip{padding:9px 8px;font-size:12.5px;min-height:40px;display:inline-flex;align-items:center;box-sizing:border-box}.topfr .chip .mut{margin-left:4px!important}.topfr .topfl{margin-left:0!important}}
@media(max-width:480px){.topf{flex-wrap:wrap}.topf .chip{flex:1 1 auto;min-height:40px;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;margin:0;padding-left:10px;padding-right:10px}.topfl{flex:0 0 100%;margin:4px 0 0!important}.topf .chip.q2{flex-basis:calc(50% - 3px)}}
.chip.on{background:linear-gradient(135deg,rgba(79,125,255,.25),rgba(157,123,255,.2));border-color:rgba(79,125,255,.5);color:#fff}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin:18px 0}
.snrisk{margin:10px 0 4px;padding:9px 12px;border:1px solid rgba(245,182,66,.35);border-radius:10px;background:rgba(245,182,66,.06);color:var(--gold);font-size:13px;line-height:1.45}
.skln,.skll,.sklm{height:24px;border-radius:7px;background:linear-gradient(100deg,rgba(120,140,190,.06) 30%,rgba(120,140,190,.16) 50%,rgba(120,140,190,.06) 70%);background-size:220% 100%;animation:sksh 1.25s ease-in-out infinite}
.skll{height:11px;margin-top:10px}.sklm{height:9px;margin-top:8px;opacity:.7}
@keyframes sksh{0%{background-position:180% 0}100%{background-position:-40% 0}}
@media(prefers-reduced-motion:reduce){.skln,.skll,.sklm{animation:none}}
.card{background:linear-gradient(180deg,rgba(30,37,52,.92),rgba(15,19,29,.94));border:1px solid var(--line);border-radius:16px;padding:18px;
 box-shadow:inset 0 1px 0 rgba(255,255,255,.045),0 14px 44px rgba(0,0,0,.45);position:relative;overflow:hidden;transition:.2s}
.card:hover{transform:translateY(-3px);border-color:rgba(79,125,255,.45);box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 18px 54px rgba(79,125,255,.16),0 14px 44px rgba(0,0,0,.5)}
.card::after{content:'';position:absolute;inset:0 0 auto 0;height:1px;background:linear-gradient(90deg,transparent,rgba(120,150,255,.6),transparent)}
.ovopen{font-size:10px;margin-top:8px;color:var(--acc);letter-spacing:.5px;font-weight:700;text-transform:uppercase;opacity:.7}
.card[onclick]:hover .ovopen{opacity:1}
:where(.ovtop .cards)>.card{display:flex;flex-direction:column}:where(.ovtop .cards)>.card>.ovopen{margin-top:auto;padding-top:8px}   /* 'Open ->' on one bottom line; :where keeps the mobile .ovt5 hide winning */
.card .n{font-size:28px;font-weight:800;letter-spacing:-.02em}.card .l{color:var(--mut);font-size:11px;letter-spacing:1px;text-transform:uppercase;margin-top:2px}
.meta{color:var(--mut);margin:18px 2px 10px;font-size:13px}
.metarow{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap}.metarow .meta{flex:1 1 320px}.metarow #scanacts{margin-top:14px}
.mtitle{display:flex;align-items:center;gap:6px 8px;flex-wrap:wrap;color:var(--txt,#e8ecf5)}.mtitle>b{font-size:15px}.msub{font-size:12px;margin-top:3px}.mlegend{font-size:12px;margin-top:8px}.nw{white-space:nowrap}
@media(max-width:820px){.metarow{gap:6px}.metarow .meta{margin-bottom:4px}.metarow #scanacts{margin-top:0}.metarow:has(>.meta>.mtitle){display:grid;grid-template-columns:minmax(0,1fr) auto;grid-auto-flow:row dense;align-items:center;gap:0 8px;margin-bottom:6px;margin-top:14px}.metarow>.meta:has(>.mtitle){display:contents}.metarow>.meta:has(>.mtitle)>*{grid-column:1/-1}.metarow>.meta:has(>.mtitle)>.msub{grid-column:1;margin-top:4px}.metarow:has(>.meta>.mtitle) #scanacts{grid-column:2;margin:4px 0 0}.metarow:has(>.meta>.mtitle) #scanacts button{padding:0 10px}#scanacts button{min-height:40px}}
@media(max-width:480px){.metarow>.meta:has(>.mtitle)>.msub{grid-column:1/-1}.metarow:has(>.meta>.mtitle) #scanacts{grid-column:1/-1;margin:6px 0 0;justify-content:flex-start}#scanacts button{flex:1 1 0;justify-content:center}.sfsep{display:none}.scfoot>button{flex:1 1 100%;justify-content:center;min-height:44px}}   /* 390: CSV/Share get their own row so the scan subtitle is not squeezed to half width */
.ferr{color:var(--red);font-size:13px;margin:6px 2px 0}.ferr:empty{display:none}.trkl{cursor:pointer;white-space:nowrap}.trkl.on{cursor:default;opacity:.75}.trkerr1{font-size:11.5px;margin:2px 0 4px;white-space:normal;text-align:left}@media(min-width:821px){#topout .trkl{margin-left:8px}}@media(max-width:480px){.trkl{display:inline-flex;align-items:center;min-height:40px;padding:0 4px}}input.invalid{border-color:var(--red)!important;box-shadow:0 0 0 1px var(--red)}
#scanacts{display:flex;gap:8px;margin:8px 0}#scanacts.hide{display:none}#scanchart{display:contents}#scanacts .snacts{display:contents}#scanacts .sndex{min-height:40px;padding:0 16px;font-size:13px;font-weight:700;background:linear-gradient(135deg,#4f7dff,#6d5cff);border:none;color:#fff}
.ovcap5{display:none}
table{width:100%;border-collapse:collapse;background:linear-gradient(180deg,rgba(24,30,43,.92),rgba(13,17,26,.94));border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 14px 44px rgba(0,0,0,.42)}
th,td{padding:12px 14px;text-align:right;border-bottom:1px solid rgba(34,42,57,.6);white-space:nowrap}
#out,#topout,#wout,#snpos,#snrec,#copytop,.tblwrap{overflow-x:auto;max-width:100%}
#snpos td.w{white-space:normal;min-width:120px}#snpos .sntp{white-space:normal;max-width:120px;line-height:1.35}#snpos .depst{font-size:11px;white-space:nowrap;margin-top:2px}.snpv{display:none}
th:nth-child(3),td:nth-child(3){text-align:left}
#wout th:nth-child(3),#wout td:nth-child(3){text-align:right}   /* profile col 3 is REAL $ (numeric), not a wallet */
#wout .wch,#wout .wmh{display:none}#wout .wtrow{cursor:pointer}#wout .wtrow:hover .wtk,#wout .wtrow:focus-visible .wtk{color:var(--acc);text-decoration:underline}
th{color:var(--mut);font-weight:600;cursor:pointer;user-select:none;font-size:11px;text-transform:uppercase;letter-spacing:.7px;background:linear-gradient(180deg,rgba(18,23,34,.7),rgba(9,12,20,.5))}
td.w{font-family:ui-monospace,monospace}tr:last-child td{border-bottom:none}tbody tr{transition:.12s}
tbody tr:nth-child(even){background:rgba(255,255,255,.014)}tbody tr:hover{background:rgba(79,125,255,.07)}
.barcell{position:relative}.pbar{position:absolute;left:0;bottom:2px;height:3px;border-radius:2px;z-index:0;opacity:.9}.barcell b{position:relative;z-index:1}
.rk{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:7px;font-size:12px;font-weight:800;color:#0a0c11}
.rkn{background:none;color:var(--mut);font-weight:600}.rk1{background:linear-gradient(135deg,#f5d142,#f5a442)}.rk2{background:#c7cfdd}.rk3{background:#cd8b5a}
.pos{color:var(--grn)}.neg{color:var(--red)}a{color:var(--acc);text-decoration:none}a:hover{text-decoration:underline}
.supchip{display:inline-block;font-size:11px;padding:1px 7px;border:1px solid var(--line);border-radius:10px;white-space:nowrap;margin-left:4px}
.pill{display:inline-block;padding:3px 9px;border-radius:20px;background:rgba(9,12,20,.7);border:1px solid var(--line);color:var(--mut);font-size:12px}
.spin{display:inline-block;width:15px;height:15px;border:2px solid var(--line);border-top-color:var(--acc);border-radius:50%;animation:s .7s linear infinite;vertical-align:-3px}
@keyframes s{to{transform:rotate(360deg)}}
.skel{background:linear-gradient(90deg,rgba(22,27,38,.5),rgba(40,48,66,.6),rgba(22,27,38,.5));background-size:200% 100%;animation:sh 1.3s infinite;border:1px solid var(--line)}
@keyframes sh{to{background-position:-200% 0}}
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
section{animation:none}
.feed .row{display:flex;justify-content:space-between;gap:12px;padding:13px 16px;border:1px solid var(--line);border-radius:12px;background:var(--panel);margin-bottom:9px;}
.mut{color:var(--mut)}.gold{color:var(--gold)}.hide{display:none}.nav a.hide{display:none!important}
/* ---- futuristic pass: neon cyan accent, HUD lines, animated aurora, glow ---- */
:root{--cyan:#22d3ee;--glow:rgba(79,125,255,.55)}
.trust{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 2px}
.trust .tb.off{background:transparent;border-color:var(--line);color:var(--mut)}
.tq{display:inline-flex;align-items:center;gap:5px;min-height:24px;font:inherit;font-size:11px;padding:2px 9px;border-radius:999px;background:rgba(55,224,160,.1);border:1px solid rgba(55,224,160,.28);color:var(--grn);cursor:help;white-space:nowrap;margin-top:6px;vertical-align:middle}
.tq.lim{background:transparent;border-color:var(--line);color:var(--mut)}
.tq.part{background:transparent;border-color:var(--gold);color:var(--gold)}
.tq.unk{background:transparent;border-color:rgba(160,170,190,.35);color:var(--mut)}
.tq:focus-visible{outline:2px solid var(--cyan);outline-offset:1px}
td .tq{margin:0 0 0 6px}
#tpop{position:fixed;z-index:9999;max-width:290px;padding:10px 12px;border-radius:12px;background:#0d111a;border:1px solid rgba(55,224,160,.35);box-shadow:0 12px 34px rgba(0,0,0,.6);font-size:12px;line-height:1.45;display:none}
#tpop .h{font-weight:800;font-size:12px;margin-bottom:6px}
#tpop .r{display:flex;gap:7px;align-items:flex-start;margin-top:3px}#tpop .r b{flex:0 0 14px;text-align:center}
#tpop .r.y b{color:var(--grn)}#tpop .r.p b{color:var(--gold)}#tpop .r.n,#tpop .r.n b,#tpop .r.i b{color:var(--mut)}
@media(max-width:480px){.tq{min-height:30px;font-size:12px;position:relative}.tq::before{content:'';position:absolute;inset:-5px 0}.hofl{padding:12px 0!important;margin:-12px 0!important}}
.aws{display:none}@media(max-width:480px){.awl{display:none}.aws{display:inline}}
.ovbj-m{display:none}@media(max-width:480px){.ovbj-m{display:block}.ovbj-d{display:none}.ovhero>div:first-child{flex:1 1 100%;min-width:0}}   /* 390: Top call hero prints the journey above the trust chip, like the cards below */
.hofl-short{display:none}@media(max-width:480px){.hofl-full{display:none}.hofl-short{display:inline}#ovhof{padding-top:12px!important;padding-bottom:12px!important;line-height:1.5}}   /* 390: Overview Biggest calls panel collapses to 2 names + N more so the Top call hero stays above the fold */
.xboth{white-space:nowrap}@media(max-width:480px){.btn40{min-height:40px}.xboth{display:block}}
/* 390 scanner sub-line: keep 'realized · live' multiples together inline (block put a lone '· 3.44x live' on its own line) */
@media(max-width:480px){.wmob .xboth{display:inline}}
.tiernote{display:none}   /* repeated the lead + how-box step 3 word for word */
.trust .tb{display:inline-flex;align-items:center;gap:4px;font-size:10px;padding:2px 7px;border-radius:999px;background:rgba(55,224,160,.1);border:1px solid rgba(55,224,160,.28);color:var(--grn);white-space:nowrap}
.exwarm{display:flex;align-items:center;gap:14px;padding:22px 20px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,rgba(20,25,35,.6),rgba(11,14,23,.6));font-size:13px}
.exwarm .spin{flex:0 0 auto}
.dexpanel{margin-top:14px;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:linear-gradient(180deg,rgba(20,25,35,.6),rgba(11,14,23,.6))}
.chgrow{display:grid;grid-template-columns:repeat(var(--n,4),1fr)}
.pmsub{font-size:11px;color:var(--mut);margin-top:3px;line-height:1.3;overflow-wrap:anywhere}
.chgcell{padding:12px 8px;text-align:center;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.chgcell:last-child{border-right:none}
.chglbl{font-size:11px;color:var(--mut);text-transform:uppercase;letter-spacing:.5px}
.chgval{font-size:16px;font-weight:800;margin-top:3px}
.txnrow{display:flex;align-items:center;gap:16px;padding:14px 16px;border-bottom:1px solid var(--line)}
.txncol{flex:0 0 auto}
.txnlbl{font-size:11px;color:var(--mut);text-transform:uppercase;letter-spacing:.5px}
.txnval{font-size:20px;font-weight:800;margin-top:2px}
.txnbarwrap{flex:1;min-width:120px}
.txnnums{display:flex;justify-content:space-between;font-size:12px;font-weight:700;margin-bottom:5px}
.txnbar{display:flex;height:7px;border-radius:4px;overflow:hidden;background:rgba(255,255,255,.05)}
.txnbuy{background:var(--grn)}.txnsell{background:var(--red)}
.dexmeta{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:12px 16px;font-size:12px}
.socwrap{display:inline-flex;gap:6px;flex-wrap:wrap}
.soclink{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;color:var(--txt);font-size:12px;background:rgba(255,255,255,.03)}
.soclink:hover{border-color:var(--acc);color:var(--acc);text-decoration:none}
.dexmeta .dexlink{margin-left:auto;color:var(--acc);font-weight:600}
.hsell{display:inline-flex;align-items:center;min-height:40px;padding:5px 16px;border-radius:9px;background:transparent;color:var(--red);font-weight:800;font-size:12px;border:1px solid color-mix(in srgb,var(--red) 55%,transparent);cursor:pointer}.hgrid .snbuy{min-height:40px;padding:5px 16px;cursor:pointer}
.snbuy{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:5px 12px;border-radius:10px;background:linear-gradient(180deg,#37e0a0,#1fb87d);color:#062218;font-weight:800;font-size:12px;border:none;text-decoration:none}
@media(max-width:480px){.boostgrid .snbuy{min-width:44px;justify-content:center}}   /* 390: Paid radar Buy was 39px wide */
.snbuy:hover{filter:brightness(1.08);text-decoration:none}
.snbuy.snbuyg{background:transparent;border:1px solid var(--line,rgba(255,255,255,.18));color:var(--mut,#8b93a7);font-weight:700}.snbuy.snbuyg:hover{color:var(--txt,#e6e9f2);border-color:rgba(55,224,160,.45);filter:none}
.sndex{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:5px 11px;border-radius:10px;border:1px solid var(--line);color:var(--txt);font-size:12px;text-decoration:none}
.sndex:hover{border-color:var(--acc);color:var(--acc);text-decoration:none}
.snchart{margin:7px 0 2px}.snchart svg{display:block}
.snacts{display:flex;gap:7px;margin-top:9px}
@media(max-width:480px){.scanbar>.chip{flex:1 1 0;min-width:0;min-height:40px;padding:0 4px;font-size:12px;justify-content:center;display:inline-flex;align-items:center}.scanbar>.kw{flex:1 1 100%}.scanbar>select{flex:1 1 0;min-width:0}.scanbar>#go{flex:1 1 100%;min-height:44px;justify-content:center;text-align:center}}   /* 390: window/depth selects share the row, Find wallets full width */
.solshort{display:none}@media(max-width:480px){.solco .solfull{display:none}.solco .solshort{display:inline;white-space:nowrap}}
.snmacts{display:none}.snpkm,.snvm{display:none}.snrmv{display:none}
.dexmbox.viewonly #tradeswap{display:none!important}
td .snacts{justify-content:flex-end}
#snpos td.w>span.mut,#snpos td.w .depst{font-family:-apple-system,Segoe UI,Inter,Roboto,sans-serif;font-size:11.5px}   /* every deployer state in one muted sans style */
@media(min-width:481px){#snpos .snacts button,#snbest .snacts button,#upgrid .snacts button,#boostout .snacts button,#rotout .snacts button,#hof .snacts button,#mcopied .snacts button{min-height:32px}}   /* desktop card Chart/Buy = one 32px size everywhere (Trending, Paid radar, Rotation, Biggest calls, Most copied were 26px beside 32px) */
@media(min-width:821px){   /* Radar tables fit the wrapper: token + ran cells wrap, trade column never clips */
 #snpos table,#snrec table{width:100%;table-layout:auto}
 #snpos td:first-child,#snrec td:first-child{white-space:normal;min-width:150px;line-height:1.5}
 #snrec td:first-child .snpkm,#snrec .snre{white-space:normal!important}#snrec td:first-child .norel{display:none}   /* 'no re-entry' stays one unit (was breaking as 'no re-' / 'entry: 2 flat/loss exits'); full rule stays in the hover title */
#snrec td:first-child .stopchip{margin-left:4px}
 #snrec td:nth-child(4){white-space:normal;min-width:70px;max-width:140px}
 #snpos td:last-child,#snrec td:last-child{white-space:nowrap}#snpos td:last-child .snacts,#snrec td:last-child .snacts{flex-wrap:nowrap}}
@media(min-width:821px) and (max-width:1439px){#snpos th,#snpos td,#snrec th,#snrec td{padding-left:8px;padding-right:8px}}
@media(min-width:481px){#snbest{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}}
.snbuy,.sndex{cursor:pointer;font-family:inherit}
.dexmodal{display:none;position:fixed;inset:0;z-index:9999;background:rgba(3,5,10,.82);backdrop-filter:blur(4px);align-items:center;justify-content:center;padding:24px}
.dexmbox{width:min(1000px,96vw);height:min(760px,92vh);background:#0b0e17;border:1px solid var(--line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.dexmhead{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line);font-weight:700}
.dexmhead .trhead{flex:1;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dexmhead .trcta{white-space:nowrap;padding:7px 14px;font-size:13px}
.dexmhead .trnote{flex:1 1 auto;padding:0;font-size:12px}
#tradeswap{border-bottom:1px solid var(--line);background:#0b0e17}
#tradetrust{padding:6px 14px;font-size:11.5px;border-bottom:1px solid var(--line);background:#0b0e17}.dexmbox.viewonly #tradetrust{display:none}
.trustcard{display:flex;gap:12px;align-items:flex-start;margin:14px 0 18px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:rgba(55,224,160,.04)}
.wbuys{margin:14px 0 6px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;max-width:760px}
.wbhd{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;font-size:13.5px}.wbnote{font-size:11.5px;flex-basis:100%}
.wbmsg{font-size:12px;margin-top:8px}.wblist{margin-top:8px}
.wbrow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid var(--line)}
.wbl{min-width:0;display:flex;flex-direction:column;gap:2px}.wbmeta{font-size:11.5px}
.wbr{display:flex;gap:6px;flex:none}.wbr button{padding:0 12px;min-height:40px;font-size:12.5px}
.trustcard svg{color:var(--grn);flex:none;margin-top:1px}.trustcard b{font-size:13.5px}.trustcard p{margin:3px 0 0;font-size:12.5px;line-height:1.5;color:var(--mut)}
#tradeswapwait{padding:8px 14px;font-size:12px;border-bottom:1px solid var(--line);background:#0b0e17}
#tradeswapwait a{color:var(--acc,#8ab4ff);text-decoration:underline;white-space:nowrap}
#tradeswap .swaphd{display:flex;align-items:center;gap:8px;padding:8px 14px;font-size:12px;color:var(--mut)}
#tradeswap iframe{width:100%;border:0;display:block;background:#0b0e17}
#cowmount{min-height:560px}
.swaphd .swaptoggle{margin-left:auto;color:var(--acc);cursor:pointer;font-size:12px;text-decoration:none}
.hoodsw{padding:10px 16px 16px;max-width:520px;margin:0 auto}
.hswrow{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:10px 0}
.hswrow>label{font-size:12px;color:var(--mut);min-width:120px}
.hswin{display:flex;align-items:center;gap:6px;background:var(--pan2,#0e1220);border:1px solid var(--bd,#222a3a);border-radius:10px;padding:8px 12px;flex:1}
.hswin input{background:0;border:0;color:var(--fg,#e8eefc);font-size:20px;font-weight:600;width:100%;outline:0}
.hswin input::-webkit-outer-spin-button,.hswin input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.hswcur{font-size:13px;color:var(--mut);font-weight:600}
.hswout{flex:1;font-size:20px;font-weight:700;color:var(--fg,#e8eefc);background:var(--pan2,#0e1220);border:1px solid var(--bd,#222a3a);border-radius:10px;padding:8px 12px}
.hswmeta{font-size:11.5px;color:var(--mut);min-height:16px;margin:-2px 0 2px}
.hswrow select{background:var(--pan2,#0e1220);border:1px solid var(--bd,#222a3a);color:var(--fg,#e8eefc);border-radius:8px;padding:6px 10px;font-size:13px}
.hswbtn{width:100%;margin-top:12px;padding:13px;font-size:15px;font-weight:700;border-radius:11px;text-align:center;cursor:pointer}
.hswmsg{min-height:18px;font-size:12.5px;margin-top:10px;text-align:center}
.hswmsg a{color:var(--acc)}
.hswnote{font-size:11px;color:var(--mut);margin-top:10px;line-height:1.5;opacity:.85}
.hswtabs{display:flex;gap:6px;margin:0 0 12px;background:var(--pan2,#0e1220);border:1px solid var(--bd,#222a3a);border-radius:11px;padding:4px}
.hswtab{flex:1;padding:8px;border:0;background:0;color:var(--mut);font-weight:700;font-size:14px;border-radius:8px;cursor:pointer;font-family:inherit}
.hswtab.on{background:var(--acc,#4f7dff);color:#fff}
.snchaintabs{display:flex;gap:8px;margin:14px 0 6px}
.snmcband{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0 8px}.snmcband .chip{padding:6px 12px;font-size:12.5px;color:var(--mut)}.snmcband .chip.on{color:#fff}
.snmcl{font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--mut);margin-right:4px}.snmcn{font-size:12px;margin:-4px 2px 8px}@media(max-width:480px){.snmcband{gap:6px}.snmcband .chip{flex:1 1 28%;min-height:40px;white-space:nowrap;justify-content:center;text-align:center;padding:6px 8px}.snmcband{margin-top:12px}.snmcl{flex:0 0 auto;margin:0 2px 0 2px}}   /* 390: every market-cap chip visible - label inline before the chips (2 rows, was 3 with the label on its own line) (the old one-row scroller hid 1M-5M and 5M+ and cut 300K-1M mid-word) */
.snchtab{padding:9px 20px;border:1px solid var(--line,#222a3a);background:var(--pan2,#0e1220);color:var(--mut);font-weight:800;font-size:14px;border-radius:10px;cursor:pointer;font-family:inherit;display:flex;align-items:center;gap:8px}
.snchtab.on{background:linear-gradient(180deg,#37e0a0,#1fb87d);color:#062218;border-color:transparent}
.snchn{font-size:11px;font-weight:700;opacity:.7;white-space:nowrap}
.snscope{font-size:12px;color:var(--mut);margin:4px 0 8px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.snscope .pill{font-size:10.5px;font-weight:800;letter-spacing:.06em;padding:2px 8px}
@media(max-width:480px){.snscl{display:none}.snscope{margin-top:10px;flex-wrap:nowrap}.snscope .pill{flex:0 0 auto}}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.snchtab.on .snchn{opacity:.85}
@media(max-width:480px){.snchtab{flex:1;justify-content:center;padding:4px;min-height:40px;gap:1px;white-space:nowrap;flex-direction:column;line-height:1.15;min-width:0}}
.hswbal{flex:1;font-size:13px;color:var(--fg,#e8eefc);display:flex;align-items:center;gap:8px}
.hswmax{color:var(--acc);cursor:pointer;font-size:12px;font-weight:700}
.dexmhead .dexmsub{font-size:11px;color:var(--mut);text-transform:uppercase;letter-spacing:.5px;font-weight:600}
.dexmhead .dexmext{margin-left:auto;font-size:12px;color:var(--acc);font-weight:600}
.dexmhead .dexmx{cursor:pointer;color:var(--mut);font-size:18px;padding:0 4px}
.dexmhead .dexmx:hover{color:var(--txt)}
#tradeimpnote{font-size:12px;line-height:1.45;padding:8px 16px;border-bottom:1px solid var(--line)}
.dexmbox iframe{flex:1;width:100%;border:0;background:#0b0e17}
/* buy mode: the chart iframe is hidden, so size the box to the swap card instead of leaving a blank chart-height band */
.dexmbox:has(#trchart[hidden]){height:auto;max-height:min(760px,92vh)}
.dexmbox:has(#trchart[hidden]) #tradeswap{overflow:auto;min-height:0}
@media(max-width:640px){.dexmbox:has(#trchart:not([hidden])){height:88vh}.dexmodal{padding:10px}}
@media(max-width:640px){.dexmhead{flex-wrap:wrap;gap:8px 10px;padding:8px 8px 10px 14px}
.dexmhead .trhead{order:1;flex:1 1 calc(100% - 60px);min-width:0}
.dexmhead .dexmx{order:2;flex:none;width:40px;height:40px;display:flex;align-items:center;justify-content:center;padding:0;margin:-4px 0}
.dexmhead .trcta,.dexmhead>span.mut{order:3;flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;text-align:center}
.dexmhead .dexmext{order:4;flex:none;white-space:nowrap;margin-left:0;margin-right:6px}}
body::before{content:'';position:fixed;inset:-40% -10% auto -10%;height:70%;z-index:0;pointer-events:none;
 background:conic-gradient(from 210deg at 60% 40%,rgba(79,125,255,.10),rgba(157,123,255,.10),rgba(34,211,238,.08),transparent 60%);
 filter:blur(60px);opacity:.7;animation:aur 22s ease-in-out infinite alternate}
@keyframes aur{0%{transform:translate(-4%,-3%) rotate(0deg)}100%{transform:translate(4%,3%) rotate(8deg)}}
.logo{position:relative}
.nav a.on{box-shadow:0 0 0 1px rgba(79,125,255,.4),0 6px 24px var(--glow),inset 0 0 18px rgba(79,125,255,.12)}
.nav a.on::before{content:'';position:absolute;left:-11px;top:9px;bottom:9px;width:3px;border-radius:3px;background:linear-gradient(180deg,var(--cyan),var(--acc2));box-shadow:0 0 12px var(--cyan)}
h1{text-shadow:0 0 34px rgba(79,125,255,.25)}
.card::before{content:none;display:none;position:absolute;width:14px;height:14px;right:9px;top:9px;border-top:1.5px solid rgba(120,150,255,.5);border-right:1.5px solid rgba(120,150,255,.5);border-radius:0 5px 0 0;opacity:.7}
.card .n{background:linear-gradient(180deg,#fff,#c6d0e6);-webkit-background-clip:text;background-clip:text}
.card.lit{border-color:rgba(34,211,238,.4);box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 0 34px rgba(34,211,238,.14),0 14px 44px rgba(0,0,0,.5)}
th{backdrop-filter:blur(2px)}
button{position:relative;overflow:hidden}
button:not(.ghost)::after{content:'';position:absolute;inset:0;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.28),transparent 70%);transform:translateX(-120%);transition:.5s}
button:not(.ghost):hover::after{transform:translateX(120%)}
.chip{position:relative;transition:.15s}
.chip[data-chain]::before{content:'';flex:0 0 auto;width:7px;height:7px;border-radius:50%;display:inline-block;margin-right:7px;vertical-align:1px;background:var(--cdot,#7e8aa1);box-shadow:0 0 8px var(--cdot,#7e8aa1)}
.chip[data-chain=hood]{--cdot:#37e0a0}.chip[data-chain=eth]{--cdot:#8aa0ff}.chip[data-chain=bnb]{--cdot:#f5b642}.chip[data-chain=arc]{--cdot:#22d3ee}.chip[data-chain=sol]{--cdot:#b28cff}
.chip.on{box-shadow:0 0 0 1px rgba(79,125,255,.4),0 4px 16px rgba(79,125,255,.28)}
.chip:hover{border-color:rgba(79,125,255,.4)}
/* ---- collapsible sidebar ---- */
.burger{display:grid;place-items:center;height:38px;border-radius:10px;cursor:pointer;color:var(--mut);border:1px solid transparent;margin-bottom:8px}
.burger:hover{color:var(--txt);background:rgba(79,125,255,.08)}
.burger svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round}
.app.exp{grid-template-columns:216px minmax(0,1fr)}
.app.exp .brand span{display:block;color:var(--mut);font-size:9.5px;letter-spacing:2px}
.app.exp .brand{flex-direction:row;justify-content:flex-start;gap:11px;padding-left:6px}
.app.exp .nav a{display:flex;align-items:center;justify-content:flex-start;gap:13px;padding:0 14px;font-size:13.5px;font-weight:600;height:40px}
.app.exp .nav{gap:3px}
@media (max-height:960px) and (min-width:861px){.app.exp .nav a{height:34px}.app.exp .navcap{padding-top:5px}.app.exp .brand{padding-bottom:10px}}
.app.exp .nav a small{position:static;opacity:1;background:none;border:none;box-shadow:none;padding:0;font-size:13.5px;color:inherit}
.app.exp .nav a svg{flex:0 0 auto}
.navcap{display:none}
@media(max-width:480px){.app:not(.exp){grid-template-columns:60px minmax(0,1fr)}.app:not(.exp) .nav{gap:3px}.app:not(.exp) .brand{padding-bottom:6px}.app:not(.exp) .nav a{height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.app:not(.exp) .nav a svg{width:19px;height:19px}.app:not(.exp) .nav a::after{content:attr(data-short);font-size:9px;font-weight:700;letter-spacing:.3px;line-height:1;text-transform:uppercase;white-space:nowrap}}
@media(max-width:480px) and (max-height:900px){.app:not(.exp) .nav{gap:2px}.app:not(.exp) .nav a{height:40px;gap:2px}}   /* 390x844: 16 rail items at 44px + 3px gap ran 907px, hiding Premium/Docs under the fade; 40px + 2px fits (tap targets stay 40px) */
.app.exp .navcap{display:block;font-size:10px;letter-spacing:1.6px;text-transform:uppercase;color:var(--mut);opacity:.75;padding:7px 14px 1px;font-weight:600}
.app.exp .navcap:first-child{padding-top:0}
.side{overflow-y:auto;scrollbar-width:none}
/* rail overflows (short phones): fade the bottom edge so it reads as scrollable; JS sideFade() toggles .ovf */
.side.ovf{-webkit-mask-image:linear-gradient(180deg,#000 calc(100% - 56px),transparent);mask-image:linear-gradient(180deg,#000 calc(100% - 56px),transparent)}
/* desktop expanded: the Premium caption + link are a sticky footer, always visible; the fade ends above it */
.navfoot{display:contents}
@media(min-width:861px){.app.exp .navfoot{display:block;position:sticky;bottom:-16px;z-index:10;margin:0 -10px -16px;padding:0 10px 16px;background:#0b0e17;border-top:1px solid var(--line)}
.app.exp .navfoot .navcap:first-child{padding-top:7px}
.app.exp .navfoot a+a{margin-top:3px}.app.exp .navfoot{box-shadow:0 80px 0 #0b0e17,0 160px 0 #0b0e17,0 240px 0 #0b0e17,0 320px 0 #0b0e17,0 400px 0 #0b0e17,0 480px 0 #0b0e17,0 560px 0 #0b0e17,0 640px 0 #0b0e17,0 720px 0 #0b0e17,0 800px 0 #0b0e17,0 880px 0 #0b0e17,0 960px 0 #0b0e17,0 1040px 0 #0b0e17}   /* stacked same-size copies fill the gap under the Premium footer to the window bottom (a single 100vh offset left a 55-130px lighter band at 1440x900-1080) */
@media (max-height:960px){.app.exp .navfoot .navcap:first-child{padding-top:5px}}
@media (max-height:820px){.app.exp .nav a{height:30px}.app.exp .nav{gap:2px}.app.exp .burger{margin-bottom:4px}}
.app.exp .side.ovf{-webkit-mask-image:linear-gradient(180deg,#000 calc(100% - 56px - var(--nf,0px)),transparent calc(100% - var(--nf,0px)),#000 calc(100% - var(--nf,0px)));mask-image:linear-gradient(180deg,#000 calc(100% - 56px - var(--nf,0px)),transparent calc(100% - var(--nf,0px)),#000 calc(100% - var(--nf,0px)))}}
/* desktop expanded, <=1040px tall: the sticky Premium footer covered Paid radar / Rotation (1440x900-1000, 1366x768, 1280x720) - the footer scrolls with the list instead, links tighten so all 18 fit at 900-1000, and a thin scrollbar + the bottom fade show the rest at 720-768 */
@media(min-width:861px) and (max-height:1040px){.app.exp .navfoot{position:static;box-shadow:none;background:none;margin:6px 0 0;padding:0}.app.exp .side{scrollbar-width:thin;scrollbar-color:rgba(120,150,255,.28) transparent}}
@media(min-width:861px) and (min-height:961px) and (max-height:1040px){.app.exp .nav a{height:36px}}
@media(min-width:861px) and (min-height:821px) and (max-height:960px){.app.exp .nav a{height:32px}}
@media(min-width:861px) and (max-height:820px){.app.exp .navcap{padding-top:3px}}
.fcv{display:contents}
/* ---- sniper dashboard ---- */
.sub{font-size:12px;letter-spacing:1.4px;text-transform:uppercase;color:var(--mut);margin:26px 2px 12px;display:flex;align-items:center;gap:10px}
.sub::after{content:'';flex:1 1 auto;min-width:40px;height:1px;background:linear-gradient(90deg,rgba(120,150,255,.5),rgba(120,150,255,.28) 70%,rgba(120,150,255,.22))}
.badge{font-size:10px;letter-spacing:.5px;text-transform:none;padding:2px 8px;border-radius:20px;border:1px solid var(--line);color:var(--mut)}
.tag{display:inline-block;padding:2px 8px;border-radius:6px;font-size:11px;font-weight:700}
.tag.win{background:rgba(55,224,160,.14);color:var(--grn)}.tag.loss{background:rgba(255,107,125,.14);color:var(--red)}.tag.flat{background:rgba(138,147,166,.14);color:var(--mut)}
.wl{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}@media(min-width:821px){.wl.ovbest{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}}
@media(min-width:821px){#mcwrap.few{display:flex;align-items:center;gap:14px;margin-bottom:14px}#mcwrap.few #mcopied{display:flex;gap:10px;flex:0 0 auto}#mcwrap.few .wtile{width:auto;max-width:260px;padding:9px 12px}#mcwrap.few .wtile .snstarrow{margin-top:6px!important}#mcwrap.few #mcearn{order:1;margin:0!important;flex:1 1 auto;line-height:1.5;align-self:stretch;display:flex!important;align-items:center;border-left:1px solid var(--line);padding-left:14px}}
@media(max-width:480px){.ovagt>:last-child:nth-child(odd){grid-column:1/-1}}   /* 390: odd last Radar-calls agent tile spans both columns instead of sitting widowed */
.wtile{background:linear-gradient(180deg,rgba(24,30,43,.9),rgba(13,17,26,.92));border:1px solid var(--line);border-radius:12px;padding:12px 13px;transition:.16s;position:relative;overflow:hidden}
.wtile:hover{border-color:rgba(34,211,238,.4);transform:translateY(-2px);box-shadow:0 0 22px rgba(34,211,238,.1)}
.wtile .s{font-weight:800;font-size:15px}
.wtile .s.wts{display:flex;align-items:center;flex-wrap:wrap;row-gap:2px;min-width:0}.wtile .wts .wtn.long{font-size:13px;letter-spacing:0}.wtile .wts .wtn{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wtile .wts .chainlab{flex:0 0 auto}.wtile .a{font-family:ui-monospace,monospace;font-size:11px;color:var(--mut);margin-top:2px}.wtile .a .nschip{font-family:-apple-system,Segoe UI,Inter,Roboto,sans-serif}#hof .m .nschip{margin-left:0}
.wtile .m{margin-top:8px;display:flex;justify-content:space-between;font-size:11px;color:var(--mut)}
.dot{width:6px;height:6px;border-radius:50%;background:var(--grn);box-shadow:0 0 8px var(--grn);display:inline-block;margin-right:5px;animation:pulse 1.6s infinite}
.xpost{background:linear-gradient(180deg,rgba(24,30,43,.92),rgba(13,17,26,.94));border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:10px;transition:.16s}
.xpost:hover{border-color:rgba(79,125,255,.4);box-shadow:0 8px 30px rgba(0,0,0,.4)}
.xhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px}
.xscore{font-weight:800;font-size:13px;border:1px solid;border-radius:8px;padding:2px 9px;min-width:34px;text-align:center}
.xtext{font-size:14px;line-height:1.5;white-space:pre-wrap;word-break:break-word}
.xmeta{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:9px;flex-wrap:wrap}
.sigtag{display:inline-block;font-size:11px;padding:2px 7px;border-radius:6px;background:rgba(79,125,255,.12);color:#aab8ff;margin-right:4px}
@keyframes pulse{50%{opacity:.35}}
@media(max-width:820px){.app:not(.exp) .side{padding-left:5px;padding-right:5px}.app:not(.exp) .nav a{width:100%;min-width:44px}.app:not(.exp) .nav a.on::before{left:-5px}.app{grid-template-columns:56px minmax(0,1fr)}.app.exp{grid-template-columns:180px minmax(0,1fr)}.content{padding:20px 16px}h1{font-size:26px}}

/* ============ depth pass v2: layered atmosphere, frosted glass, reactive neon ============ */
body{background-attachment:fixed}
body::after{content:'';position:fixed;inset:0;z-index:0;pointer-events:none;
 background:radial-gradient(125% 95% at 50% -5%,transparent 52%,rgba(2,4,10,.55) 100%),
            radial-gradient(900px 460px at 88% 112%,rgba(157,123,255,.10),transparent 60%),
            radial-gradient(700px 360px at 6% 108%,rgba(34,211,238,.07),transparent 60%)}
.app::after{content:'';position:fixed;inset:auto -25% -35% -25%;height:62%;z-index:0;pointer-events:none;
 background:conic-gradient(from 40deg at 42% 60%,rgba(34,211,238,.09),rgba(79,125,255,.11),rgba(157,123,255,.06),transparent 55%);
 filter:blur(80px);opacity:.55;animation:aur2 34s ease-in-out infinite alternate}
@keyframes aur2{0%{transform:translate(4%,3%) rotate(4deg)}100%{transform:translate(-5%,-4%) rotate(-10deg)}}
.top{backdrop-filter:blur(16px) saturate(1.25);-webkit-backdrop-filter:blur(16px) saturate(1.25);
 box-shadow:0 1px 0 rgba(255,255,255,.04),0 14px 34px rgba(0,0,0,.42)}
.side{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:inset -1px 0 0 rgba(255,255,255,.03),12px 0 40px rgba(0,0,0,.35)}
/* deeper, more dimensional cards */
.card{background:linear-gradient(180deg,rgba(34,42,60,.92),rgba(13,17,27,.96));
 box-shadow:inset 0 1px 0 rgba(255,255,255,.06),inset 0 -18px 40px rgba(0,0,0,.35),0 18px 50px rgba(0,0,0,.5)}
.card:hover{transform:translateY(-4px) scale(1.006)}
.card.lit{animation:litpulse 3.2s ease-in-out infinite}
@keyframes litpulse{50%{box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 0 46px rgba(34,211,238,.22),0 16px 50px rgba(0,0,0,.55)}}
.nav a.on{animation:navpulse 3s ease-in-out infinite}
@keyframes navpulse{50%{box-shadow:0 0 0 1px rgba(79,125,255,.5),0 8px 30px rgba(79,125,255,.4),inset 0 0 22px rgba(79,125,255,.18)}}
.sub{position:relative;padding-bottom:3px;overflow-x:clip}
table{box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 18px 50px rgba(0,0,0,.5)}
tbody tr:hover{box-shadow:inset 0 0 0 1px rgba(79,125,255,.15)}
.wtile,.xpost{box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 10px 30px rgba(0,0,0,.4)}
h1{text-shadow:0 0 40px rgba(79,125,255,.3),0 2px 0 rgba(0,0,0,.4)}
input.big:focus,input:focus{box-shadow:0 0 0 3px rgba(79,125,255,.18),0 0 22px rgba(79,125,255,.14)}

/* alerts bell + panel */
.bellbtn{margin-left:auto;background:rgba(9,12,20,.6);border:1px solid var(--line);border-radius:10px;padding:7px 9px;position:relative;cursor:pointer;flex:0 0 auto}
.bellbtn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;color:var(--mut);display:block}
.bellbtn:hover{border-color:rgba(79,125,255,.4)}.bellbtn:hover svg{color:var(--txt)}
button.bellbtn{overflow:visible}
button.bellbtn::after{display:none} /* bell keeps overflow visible for its count badge, so the hover sheen would leak onto Connect wallet */
.bellct{position:absolute;top:-6px;right:-6px;background:linear-gradient(135deg,#ff6b7d,#ff4d6a);color:#fff;font-size:10px;font-weight:800;border-radius:9px;padding:0 5px;min-width:18px;height:18px;line-height:18px;box-sizing:border-box;text-align:center;white-space:nowrap;font-variant-numeric:tabular-nums;box-shadow:0 0 12px rgba(255,107,125,.7)}
.alertpanel{position:fixed;top:58px;right:24px;width:370px;max-height:74vh;overflow:auto;background:linear-gradient(180deg,rgba(26,32,46,.99),rgba(14,18,28,.99));border:1px solid rgba(79,125,255,.45);border-radius:16px;box-shadow:0 0 0 1px rgba(79,125,255,.15),0 28px 80px rgba(0,0,0,.7),0 0 40px rgba(79,125,255,.18);z-index:40;padding:8px;backdrop-filter:blur(16px)}
.alertpanel::before{content:"";position:absolute;top:-6px;right:26px;width:11px;height:11px;background:rgba(26,32,46,.99);border-left:1px solid rgba(79,125,255,.45);border-top:1px solid rgba(79,125,255,.45);transform:rotate(45deg)}
.alertitem{display:flex;gap:10px;padding:11px 12px;border-radius:12px;transition:.12s}
.alertitem:hover{background:rgba(79,125,255,.06)}
.alertitem .ic{font-size:16px;flex:0 0 auto}.alertitem .tx{flex:1;min-width:0}
.alertitem .tt{font-size:13px}.alertitem .sub{font-size:11px;color:var(--mut);margin-top:2px;margin:2px 0 0;display:block;text-transform:none;letter-spacing:0;font-weight:400;padding:0}.alertitem .sub::after{content:none}
/* overview */
.ovgrid{display:grid;grid-template-columns:1.35fr 1fr;gap:16px;margin-top:16px}
.ovpanel{background:linear-gradient(180deg,rgba(22,28,40,.7),rgba(11,14,22,.72));border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 14px 44px rgba(0,0,0,.4)}
.ovpanel h3{margin:0 0 12px;font-size:12px;letter-spacing:1.2px;text-transform:uppercase;color:var(--mut);display:flex;justify-content:space-between;align-items:center}
.ovrow{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 4px;border-bottom:1px solid rgba(34,42,57,.5);font-size:13px}.ovrow:last-child{border:none}
/* panel header: title + link on line 1, the description badge drops to its own caption line at every width */
.ovpanel h3{flex-wrap:wrap;row-gap:3px}.ovpanel h3>.badge{order:3;flex:1 1 100%;border:0!important;padding:0;border-radius:0;white-space:normal;line-height:1.4;font-size:10.5px;letter-spacing:.2px}.ovpanel h3>a{white-space:nowrap}
/* top smart money: medal rows stay one line like rows 4-6 */
.ovrow .ovid{min-width:0}.ovrow .ovid .rk{flex-shrink:0}.ovrow .ovid .wcell>a{white-space:nowrap}.ovrow .ovm{flex-shrink:0}.ovrow .ovm .pos{white-space:nowrap}
@media(max-width:820px){
 .ovrow.actrow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;column-gap:8px;row-gap:2px;align-items:center;padding:6px 4px}
 .ovrow.actrow .actl,.ovrow.actrow .actr{display:contents!important}
 .actrow .fg{grid-row:1;grid-column:1}
 .actrow .actnm{grid-row:1;grid-column:2;overflow:hidden;white-space:nowrap}
 .actrow .actnm b{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}
 .actrow .actst{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .actrow .actago{grid-row:1;grid-column:3;justify-self:end;white-space:nowrap;font-size:11px}
 .ovrow.actrow .actago::before{content:none}
 .actrow .acttr{grid-row:2;grid-column:1/3;white-space:nowrap}
 .actrow .actpnl{grid-row:2;grid-column:3;justify-self:end;white-space:nowrap}
}
.ovrow.actrow .actago{color:var(--mut)}
.actrow .actnm,.actrow .acttr{display:inline-flex;align-items:center;gap:8px;min-width:0}.actrow .actago::before{content:" · "}.ovrow.actrow .actago::before{content:none}
.obar{width:56px;height:5px;border-radius:3px;background:rgba(255,255,255,.06);overflow:hidden;flex:0 0 auto}
.obar span{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,rgba(55,224,160,.5),rgba(55,224,160,.85))}
.pmetrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:0 0 13px;padding:11px 4px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.pmetrics>div{text-align:center;min-width:0}
.pmn{font-size:17px;font-weight:800;letter-spacing:-.01em;color:var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pml{font-size:10.5px;text-transform:uppercase;letter-spacing:.7px;color:var(--mut);margin-top:2px}
@media(max-width:480px){#feed .pmll{display:none}#feed .pml{line-height:1.2}}
.snvg{display:none}
@media(max-width:480px){#snvet .snvs{display:none}#snvet .snvg{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;margin:0;padding:7px 0}#snvet .snvg .pml{letter-spacing:.3px;line-height:1.25}}
.spk{display:inline-block;vertical-align:middle;opacity:.92}
@media(max-width:900px){.ovgrid{grid-template-columns:1fr}}

/* connect wallet */
.connwrap{flex:0 0 auto;background:linear-gradient(135deg,rgba(79,125,255,.9),rgba(109,92,255,.9));color:#fff;font-weight:700;font-size:13px;border-radius:10px;padding:8px 14px;cursor:pointer;box-shadow:0 4px 16px rgba(79,125,255,.35);white-space:nowrap;transition:.15s}
.connwrap:hover{filter:brightness(1.08)}
.connwrap.conn{background:rgba(9,12,20,.7);border:1px solid rgba(55,224,160,.4);color:var(--txt);box-shadow:0 0 16px rgba(55,224,160,.12)}
.connwrap .cdot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--grn);box-shadow:0 0 8px var(--grn);margin-right:7px;vertical-align:1px}
.connwrap .cx{margin-left:9px;opacity:.6}
.connwrap .cx:hover{opacity:1;color:var(--red)}
/* boosts / paid radar */
.rotchips{display:flex;gap:8px;flex-wrap:wrap;margin:0 2px 6px}.rotchip{min-height:40px;padding:0 14px;border-radius:10px;background:rgba(9,12,20,.8);border:1px solid var(--line);color:var(--txt);font:inherit;font-size:13px;font-weight:600;cursor:pointer}.rotchip.on{border-color:rgba(79,125,255,.5);background:linear-gradient(135deg,rgba(79,125,255,.25),rgba(157,123,255,.2));color:#fff}
.rotwarn{border-left:3px solid var(--gold);font-size:13px;margin-bottom:14px}
.rotideas .mut{text-wrap:pretty}@media(max-width:480px){.rotideas .snacts>button{flex:1 1 0;justify-content:center}}   /* 390: idea Chart/Buy fill the card like the range rows below; no one-word widow on the caption */
.rotideas{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-top:10px}.rotideas>.ovpanel{display:flex;flex-direction:column}.rotideas>.ovpanel>.snacts{margin-top:auto}.rotfrom{display:flex;gap:6px;flex-wrap:wrap;align-items:baseline}.rotpair{white-space:nowrap}@media(max-width:480px){.rotfrom{flex-direction:column;align-items:flex-start;gap:2px}}   /* 390: the target coin always on its own line, so idea cards do not wrap on some and not others */
.rotlist{display:grid;gap:8px;margin-top:10px}.rotrow{display:grid;grid-template-columns:minmax(120px,1.1fr) minmax(160px,1.6fr) repeat(3,minmax(70px,.6fr)) minmax(152px,auto);gap:14px;align-items:center;padding:12px 16px;cursor:pointer}.rotrow:hover{border-color:rgba(79,125,255,.45)}.rotdead{font-size:11px;color:var(--mut,#8b93a7);line-height:1.3;margin-top:2px}
.rotsym{display:flex;flex-direction:column;min-width:0}.rotsym b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rotsym span{font-size:11.5px}
.rotbar{display:flex;flex-direction:column;gap:5px}.rottrk{position:relative;height:6px;border-radius:6px;background:linear-gradient(90deg,rgba(55,224,160,.35),rgba(126,138,161,.2),rgba(255,107,125,.35))}.rottrk i{position:absolute;top:-4px;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:var(--txt);border:2px solid var(--bg)}.rottrk i.lo{background:var(--grn)}.rottrk i.hi{background:var(--red)}
.rotpct{font-size:12.5px;font-weight:700}.rotpct.lo{color:var(--grn)}.rotpct.hi{color:var(--red)}.rotpct small{font-size:11px;font-weight:500}.rotnum{display:flex;flex-direction:column;font-size:13px}.rotnum span{font-size:11px}
@media(max-width:1040px){.rotrow{grid-template-columns:1fr 1fr 1fr;gap:10px 12px}.rotsym{grid-column:1/-1}.rotbar{grid-column:1/-1}.rotact{grid-column:1/-1}.rotact .snacts{width:100%}.rotact .snacts button{flex:1;min-height:40px}}
.boostgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:14px}
.wlstar{flex:0 0 auto;width:40px;height:40px;min-width:40px;padding:0;margin-left:auto;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--mut);font-size:18px;line-height:1;cursor:pointer;box-shadow:none;transition:.15s}
.wlstar:hover{color:var(--gold);border-color:var(--gold)}
.wlstar.on{color:var(--gold);border-color:rgba(255,200,80,.5);background:rgba(255,200,80,.1)}
.card .l:has(.wlstar){display:flex;align-items:center;justify-content:space-between;gap:8px}
.card .l .wlstar{margin:0 0 -12px auto}
.boostgrid>*{min-width:0}
.bpaid+.wlstar{margin-left:4px}
.rotact{display:flex;align-items:center;justify-content:flex-end;gap:8px}.rotact .snacts{margin-top:0}.rotact .snacts button{justify-content:center}
@media(max-width:480px){.rotchips{display:grid;grid-template-columns:1fr 1fr}.payopts{display:grid!important;grid-template-columns:1fr 1fr}.payopts>.chip{text-align:center;justify-content:center;margin:0}.cards.cpdemo>.card:last-child:nth-child(odd){grid-column:auto}.cpdemo>.card{min-width:0}}   /* 390: rotation chips 2x2 (no widowed SOL), premium pay chips fill 2 columns, copy demo tiles stay 3-up */
.rotact .wlstar{margin:0;width:32px;height:32px;min-width:32px;border-radius:10px;font-size:15px}
@media(max-width:1040px){.rotact .snacts{flex:1 1 auto;width:auto}.rotact .wlstar{width:40px;height:40px;min-width:40px;font-size:18px}}
@media(min-width:821px){.feedrow .fago:has(.wlstar){width:auto;display:flex;align-items:center;gap:8px}.feedrow .fago .fagt{display:inline-block;width:34px;text-align:right}.feedrow .fago:has(.wlstar,.wlsp){width:auto;display:flex;align-items:center;gap:8px}.feedrow .fago .wlsp{width:28px;flex:0 0 28px}.feedrow .fago .wlstar{margin:0;width:28px;height:28px;min-width:28px;border-radius:8px;font-size:14px}}
@media(min-width:821px){.feedrow.fsn{min-height:42px}.feedrow.fsn .fsub>.snbuy.fchsub{order:1;width:80px;min-width:80px;justify-content:center;box-sizing:border-box}.feedrow.fsn .fsub>.dexmini.fchsub{order:2}}
@media(max-width:480px){.feedrow.fsn .fago:has(.wlstar){display:grid;grid-template-columns:auto auto;justify-items:end;align-items:center;gap:2px 4px}.feedrow.fsn .fago .fbuym{grid-column:1/-1;order:1;justify-self:stretch;justify-content:center}.feedrow.fsn .fago .wlstar{order:2;margin:0}.feedrow.fsn .fago .fchact{order:3}}
.snftog,.jevmore{display:none}
@media(max-width:480px){.snftog{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;font-size:12px;margin-left:auto}#snfilter:not(.open)>:not(.snfkeep){display:none}#jevtile:not(.all) .jevdec.jevx{display:none}#jevtile:not(.all) .jevmore{display:block;min-height:40px;padding:0 12px;font-size:12px;margin-top:6px}}
.nschip{display:inline-block;margin-left:4px;padding:1px 7px;border-radius:999px;border:1px solid var(--line,rgba(255,255,255,.14));color:var(--mut,#8b93a7);font-size:10px;font-weight:600;letter-spacing:0;line-height:1.5;white-space:nowrap;vertical-align:middle;cursor:pointer;text-shadow:none}.nschip:hover{color:var(--txt,#e6e9f0);border-color:var(--mut,#8b93a7)}@media(max-width:480px){.nschip{position:relative}.nschip::before{content:'';position:absolute;inset:-11px 0}}
.snstarrow{display:flex;align-items:center;gap:6px;margin-top:8px}.ovbest .wtile{display:flex;flex-direction:column}.ovbacts{cursor:default}.ovbest .ovbacts{margin-top:auto;padding-top:8px}.ovbacts .snacts button{flex:1 1 0;min-height:32px;padding:0 8px}.snstarrow .wlstar{margin:0;order:2}.snstarrow .snacts{flex:1 1 auto;margin-top:0}
#snbest .wtile{display:flex;flex-direction:column}#snbest .s{display:flex;align-items:flex-start;gap:6px}#snbest .s>span:first-child{min-width:0;flex:1 1 auto}#snbest .s .wlstar{margin:0 0 0 auto}#snbest .snfoot{flex:1 1 auto;display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding-top:8px}#snbest .snstarrow{flex-wrap:wrap;row-gap:6px;margin-top:auto;align-self:stretch}#snbest .snstarrow>.shbtn{order:3;flex:0 0 auto}   /* Share on X shares the Chart/Copy trade row (right end) instead of its own line */@media(max-width:480px){#hof .hofacts .snacts{display:flex;width:100%}#hof .hofacts .snacts>*{flex:1 1 0;justify-content:center;text-align:center}#hof .shbtn{flex:1 1 100%}}   /* 390: Biggest calls Share / Chart / Copy trade fill the tile width like Best calls */#snbest .snbmeta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;align-self:stretch}#snbest .snbmeta .stopchip{margin:0}
.bcard{background:linear-gradient(180deg,rgba(26,32,46,.92),rgba(13,17,26,.95));border:1px solid var(--line);border-radius:16px;padding:15px 16px;transition:.16s;box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 12px 36px rgba(0,0,0,.4);display:flex;flex-direction:column;gap:11px}
#upgrid .bcard>*:last-child{margin-top:auto}@media(min-width:1100px){#upgrid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}}#snbest .snacts button{justify-content:center}@media(max-width:480px){#snrec .whyp>summary{white-space:nowrap;gap:4px;padding:2px 8px;font-size:11px}}
@media(min-width:1100px){#upgrid[data-n="3"],#upgrid[data-n="6"]{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1100px){#upgrid[data-n="5"]{grid-template-columns:repeat(6,minmax(0,1fr))}#upgrid[data-n="5"]>*{grid-column:span 2}#upgrid[data-n="5"]>:nth-child(-n+2){grid-column:span 3}}@media(min-width:1800px){#upgrid[data-n="5"]{grid-template-columns:repeat(5,minmax(0,1fr))}#upgrid[data-n="5"]>*,#upgrid[data-n="5"]>:nth-child(-n+2){grid-column:auto}}   /* 5 trending cards: 2 wide + 3 below (1 across when very wide) - no lone widow card */@media(max-width:480px){.upchipbar>.chip[data-chain],.upchipbar>.chip:first-child{flex:1 1 calc(50% - 6px);justify-content:center;text-align:center}#upgrid .snacts>button,#mcopied .snacts>button{flex:1 1 0;justify-content:center}.upchipbar.upodd>.chip:first-child{flex-basis:100%}.ovjump>div>.kw{flex:1 1 100%}.ovjump>div>button{flex:1 1 0;min-height:44px;justify-content:center;white-space:nowrap;padding-left:10px;padding-right:10px}.ovjump>div>button:not(.ghost){flex-basis:100%}}   /* Trending 6 cards = two full 3-up rows (not 4+2); 390: chain chips 2x2, Chart/Buy + Most copied buttons fill the card; odd chain-chip count: All spans the row; Jump in: Scan full width, Radar + Copy trading 2-up */
.bcard:hover{border-color:rgba(245,182,66,.5);box-shadow:0 0 30px rgba(245,182,66,.12),0 12px 36px rgba(0,0,0,.5);transform:translateY(-3px)}
.bchead{display:flex;gap:11px;align-items:flex-start}
.bchead img,.bchead .noimg{width:40px;height:40px;border-radius:11px;object-fit:cover;flex:0 0 auto}
.bchead .noimg{background:linear-gradient(135deg,#2a3350,#171c2b);display:grid;place-items:center;font-weight:800;color:var(--mut)}
.bt{font-weight:800;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* symbol + chain pill share a line when they fit; at 390 a long symbol drops the pill to its own left-aligned line (never truncates the ticker) */
.bt:has(.bsy){display:flex;align-items:center;min-width:0}.bt .bsy{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bt:has(.bsy) .chainlab{flex:0 0 auto}@media(max-width:480px){.bt:has(.bsy){flex-wrap:wrap;column-gap:7px;row-gap:2px}.bt:has(.bsy) .chainlab{margin-left:0}}
.bprice{font-size:13px;color:var(--txt);margin-top:2px}
.bpaid{margin-left:auto;text-align:right;flex:0 0 auto}
.bpchg{white-space:nowrap}
@media(max-width:480px){.bpchg{white-space:normal}.bpchg .ch{white-space:nowrap}.bpchg .bplab{white-space:nowrap}.bpchg .bplab.bplong{display:block}.bpchg:not(:has(.bplong)){white-space:nowrap;display:inline-block}.bpaid{padding-left:10px}}
.paidn{font-weight:800;font-size:20px;color:var(--gold);text-shadow:0 0 16px rgba(245,182,66,.45)}
.bstats{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:var(--mut);border-top:1px solid rgba(34,42,57,.6);border-bottom:1px solid rgba(34,42,57,.6);padding:9px 0}
.bstats b{color:var(--txt);font-size:12px}
.stopchip.reopen{border-color:var(--line,rgba(255,255,255,.14));background:rgba(255,255,255,.04);color:var(--mut,#8b93a7)}
.fds{display:none}.stopchip.mutechip{border-color:var(--line,rgba(255,255,255,.18));background:transparent;color:var(--mut,#8b93a7)}
.stopchip{display:inline-flex;align-items:center;margin-right:6px;padding:2px 8px;border-radius:999px;border:1px solid rgba(255,77,106,.4);background:rgba(255,77,106,.08);color:var(--red,#ff4d6a);opacity:.9;font-size:11px;white-space:nowrap;cursor:help;vertical-align:middle}
@media(max-width:480px){.stopchip{display:flex;width:max-content;margin:0 0 6px;min-height:28px;position:relative}.stopchip::before{content:'';position:absolute;inset:-6px 0}}
@media(max-width:480px){.fsub .stopchip{width:auto;max-width:100%;white-space:normal;line-height:1.2}.fsub .fexw{white-space:normal;overflow:visible;flex-basis:100%}}
#snrec tr.snddead td{opacity:.55}.snddf{font-size:12px;margin:10px 2px 0;line-height:1.6}.snddt{min-height:32px;padding:0 12px;font-size:12px;position:relative;margin-left:8px}@media(max-width:480px){.snddf{line-height:1.45}.snddt{min-height:40px;display:flex;align-items:center;margin:6px 0 0}.snddl{display:none}}
.thinliq{align-self:flex-start;display:inline-flex;align-items:center;max-width:100%;padding:3px 9px;border-radius:999px;border:1px solid rgba(255,196,0,.3);background:rgba(255,196,0,.07);color:var(--gold);opacity:.85;font-size:11px;cursor:help;white-space:normal;overflow-wrap:anywhere}
.thinliq.churn{border-color:rgba(120,160,255,.28);background:rgba(120,160,255,.07);color:var(--mut)}
@media(max-width:480px){.thinliq{min-height:28px;position:relative}.thinliq::before{content:'';position:absolute;inset:-6px 0}}
.bpitch{font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--mut);opacity:.75;border:1px solid var(--line);border-radius:4px;padding:0 4px;margin-right:6px;vertical-align:1px}
.bdesc{font-size:12px;color:var(--mut);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:34px}
.upext{font-size:12px;font-weight:600;color:var(--acc);display:inline-flex;align-items:center;min-height:32px}.upext.upextg{color:var(--mut,#8b93a7);font-weight:500;border:1px solid var(--line,rgba(255,255,255,.18));border-radius:8px;padding:0 9px}.upext.upextg:hover{color:var(--txt,#e6e9f2);border-color:rgba(245,180,60,.5)}@media(max-width:480px){.upext{min-height:40px}.snacts>.upext{flex:1 1 0;justify-content:center;text-align:center;border:1px solid rgba(92,124,250,.45);border-radius:10px;padding:0 8px;white-space:nowrap}.snacts>.upext.upextg{border-color:var(--line,rgba(255,255,255,.18))}.snacts:has(>.upext)>.sndex{flex:1 1 0;min-width:0;justify-content:center}}   /* 390: Trade on DexScreener fills the Buy slot as an outlined button instead of a bare link beside a half-width Chart */
.wlempty{display:flex;align-items:center;gap:12px;font-size:13px;line-height:1.5;color:var(--mut);border:1px dashed var(--line,rgba(255,255,255,.14));border-radius:12px;padding:14px 16px;text-wrap:pretty}.wlemptyic{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.05);font-size:16px;color:var(--gold,#f5b43c)}   /* Watchlist empty state: muted hint in a dashed well, not body text louder than the panel copy */
.peakdrop{display:inline-block;margin-top:5px;font-size:11px;font-weight:600;color:#ff8a8a;background:rgba(255,90,90,.1);border:1px solid rgba(255,90,90,.3);border-radius:8px;padding:3px 8px}
.bfoot{font-size:11px;color:var(--acc);font-weight:600;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.bfoot .snacts{margin-top:0;margin-left:auto}#boostout .bfoot{margin-top:auto}
.chainlab{display:inline-block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:1px 7px;border-radius:20px;border:1px solid var(--line);color:var(--mut);margin-left:7px}

.legend{margin:-4px 2px 12px;font-size:13px}
.legend summary{cursor:pointer;color:var(--acc);width:fit-content;list-style:none}
.legend summary::-webkit-details-marker{display:none}
.legend summary::before{content:'▸ ';font-size:11px}
.legend[open] summary::before{content:'▾ '}
.legendbody{margin-top:8px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:rgba(9,12,20,.5);color:var(--mut);line-height:1.7}
.legendbody b{color:var(--txt)}.legendbody i{color:var(--mut);font-style:italic}

/* responsive: new components on small screens */
@media(max-width:720px){
 .top{flex-wrap:wrap;gap:10px;padding:10px 14px}
 .connwrap{padding:6px 10px;font-size:12px}
 .boostcard{grid-template-columns:30px 1fr;gap:9px;padding:11px}
 .boostcard .stat{grid-column:1/-1;text-align:left;display:flex;gap:12px;flex-wrap:wrap;margin-top:4px}
 .boostcard .bs{max-width:100%;white-space:normal}
 .alertpanel{right:10px;left:10px;width:auto}
 .bar{padding:10px}
 .cards{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}
}

.trajpanel{background:linear-gradient(180deg,rgba(24,30,43,.9),rgba(13,17,26,.94));border:1px solid var(--line);border-radius:16px;padding:16px 18px;margin:18px 0;box-shadow:inset 0 1px 0 rgba(255,255,255,.045),0 14px 44px rgba(0,0,0,.42);overflow:hidden}
.trajhead{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.trajmult{font-size:30px;font-weight:800;letter-spacing:-.02em;color:var(--grn);text-shadow:0 0 24px rgba(55,224,160,.3);margin-top:2px}
.trajnums{display:flex;gap:22px;text-align:right;font-size:12px;color:var(--mut)}
.trajnums b{color:var(--txt);font-size:15px;display:inline-block;margin-top:2px}
.trajsub{letter-spacing:0;text-shadow:none;margin-left:4px}
@media(max-width:640px){.trajnums{gap:14px}.trajmult{font-size:24px}.trajsub{display:block;margin-top:2px;margin-left:0}.trajsub>span{white-space:normal!important}}   /* 390: long 'round trip' tail wrapped inside the panel instead of overflowing it */
.jevbox{display:grid;grid-template-columns:1fr 1fr;gap:14px 22px;align-items:start}.jevbox>div{min-width:0}.jevdec{color:var(--mut);font-size:12px;line-height:1.5;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere;margin-bottom:3px}
@media(max-width:640px){.jevbox{grid-template-columns:1fr}}

.ava{display:inline-block;width:20px;height:20px;border-radius:50%;vertical-align:-5px;margin-right:8px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.15),0 0 8px rgba(0,0,0,.4);flex:0 0 auto}
.wcell{display:inline-flex;align-items:center;gap:6px}.ovrwdiv{font-size:11px;line-height:1.35;margin:4px 2px;padding-top:6px;border-top:1px dashed var(--line)}.wmob{display:none}
.idb{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.5px;padding:1px 5px;border-radius:5px;border:1px solid var(--grn);color:var(--grn);margin-left:7px;vertical-align:1px}
.tier{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.5px;padding:1px 5px;border-radius:5px;border:1px solid;margin-left:7px;vertical-align:1px}

.copystep{display:flex;gap:12px;align-items:flex-start;margin:12px 0;font-size:13px;line-height:1.5}
.copystep .stepn{flex:0 0 auto;width:22px;height:22px;border-radius:7px;background:rgba(79,125,255,.16);border:1px solid rgba(79,125,255,.4);display:grid;place-items:center;font-weight:800;font-size:12px;color:var(--acc);margin-top:1px}
.copystep b{color:var(--txt)}
.pfeat{display:flex;gap:6px;align-items:baseline;font-size:13.5px;line-height:1.45;color:var(--txt);text-wrap:pretty}
.pfeat>span:first-child{flex:none}
@media(max-width:480px){.cpcta>.btn40{flex:1 1 100%;justify-content:center;min-height:44px}.cpcta>a{flex:1 1 100%;text-align:center;min-height:40px;display:flex;align-items:center;justify-content:center}}
@media(max-width:600px){.plancard .phold,.plancard .pwsp{display:none}}

/* ================= mobile optimization ================= */
@media(max-width:820px){
 .content{padding:16px 12px}
 h1{font-size:23px}
 .lead{font-size:14px}
 .top{flex-wrap:wrap;gap:9px;padding:9px 12px}
 #mktticker{order:3;flex-basis:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:6px 0 0;margin:0;border-right:none;border-top:1px solid var(--line);white-space:nowrap}
 .connwrap{margin-left:auto}
 /* tables scroll inside their own wrapper - the page body never scrolls sideways */
 #out,#topout,#wout,#snpos,#snrec,#copytop,.tblwrap{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;border-radius:16px}
 #out table,#topout table,#wout table,#snpos table,#snrec table,#copytop table,.tblwrap table{min-width:620px;border-radius:0}
 th,td{padding:9px 10px;font-size:12.5px}
 .cards{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
 .ovgrid{grid-template-columns:1fr}
 .main{overflow-x:hidden}
 #ov,.ovgrid,.ovpanel,.ovrow{min-width:0;max-width:100%}
 .ovrow span{min-width:0}
 .trajpanel{padding:14px}.trajnums{gap:12px;font-size:11px}.trajmult{font-size:24px}
 .bar{padding:9px;gap:7px}
 input.big{min-width:0;flex:1 1 100%}.kw{min-width:0!important;flex:1 1 100%}
 .boostgrid{grid-template-columns:1fr}
 .wl{grid-template-columns:1fr 1fr}
 .legendbody{font-size:12px}
 section{animation:none}
}
.bstat4{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin:0 0 16px}
.bfilters{display:flex;gap:10px 24px;flex-wrap:wrap;align-items:center;margin-bottom:4px}
.bgrp{display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.bgrow{display:contents}
@media(min-width:481px){.bgrow{display:flex;flex-wrap:wrap;gap:10px 24px;align-items:center}}   /* Sort + Change wrap together as one row instead of Change widowed alone under Chain+Sort */
.loaderr{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;padding:16px;border:1px solid var(--line);border-radius:12px;color:var(--mut);font-size:13px;grid-column:1/-1}
.wrate{margin:14px 0}.wrl{font-size:11px;letter-spacing:.5px;text-transform:uppercase;color:var(--mut);margin:0 0 7px}.wrl .mut{text-transform:none;letter-spacing:0;white-space:nowrap}
.wrnote{font-size:12px;margin:-6px 0 12px;line-height:1.45}
.retrybtn{min-height:40px;min-width:96px;padding:0 16px;background:transparent;border:1px solid var(--line);border-radius:12px;color:var(--txt,#e6e9ef);font-size:13px;cursor:pointer}.retrybtn:hover{border-color:var(--mut)}
#hofttl{scroll-margin-top:84px;overflow:visible}#hofttl::after{order:1}#hofttl .hofshare{order:2;text-transform:none;letter-spacing:0}@media(max-width:480px){#hofttl{flex-wrap:wrap;scroll-margin-top:12px}#hofttl .hofshare{order:3;flex:1 1 100%;min-height:40px}}
.shbtn{background:rgba(29,155,240,.12);border:1px solid rgba(29,155,240,.45);color:#8ecdf8;border-radius:10px;font-size:11px;font-weight:700;padding:5px 10px;min-height:30px;cursor:pointer;white-space:nowrap}.shbtn:hover{background:rgba(29,155,240,.22)}@media(min-width:481px){#snrec td:last-child .snacts>.shbtn{min-height:0;padding-top:0;padding-bottom:0;align-self:stretch}}   /* desktop Recent calls: Share on X matches the 26px Chart / Copy trade instead of making its row taller */@media(max-width:480px){.shbtn{min-height:40px;padding:8px 12px}}
#shov{position:fixed;inset:0;background:rgba(3,5,10,.78);z-index:9999;display:flex;align-items:center;justify-content:center;padding:16px}#shov .shbox{background:var(--bg2);border:1px solid var(--line);border-radius:16px;padding:16px;width:min(640px,100%)}#shov img{width:100%;border-radius:10px;display:block}#shov .shx{background:transparent;border:1px solid var(--line);color:var(--txt);border-radius:10px;width:40px;height:40px;font-size:20px;cursor:pointer}#shov .shdl{display:inline-flex;align-items:center;min-height:40px;padding:0 16px;border-radius:10px;background:var(--acc);color:#fff;font-weight:700;font-size:13px;text-decoration:none;border:0;cursor:pointer}#shov .shalt{background:transparent;border:1px solid var(--line);color:var(--txt)}#shov .shacts{display:flex;gap:8px;flex-wrap:wrap}#shov .shtxt{font-size:13px;line-height:1.5;background:rgba(9,12,20,.5);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:10px;word-break:break-word}#shov .shbox{max-height:92vh;overflow:auto}
@media(max-width:480px){#tradeswap .swaphd{flex-wrap:wrap;row-gap:2px}.swaphd .swaptoggle{white-space:nowrap;flex-shrink:0}#ovpaid .ovrow{flex-wrap:nowrap;align-items:flex-start}#ovpaid .ovrow>span:first-child{min-width:0;flex:1 1 auto}#ovpaid .ovrow>span:last-child{white-space:nowrap;flex-shrink:0;margin-left:auto}}
.sngx{display:flex;align-items:center;max-width:100%;min-height:30px;margin-top:5px;padding:3px 10px;text-align:left;line-height:1.3;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--acc);font-size:11px;font-weight:600;cursor:pointer}.sngx:hover{border-color:var(--acc)}@media(max-width:480px){.sngx{min-height:40px}}
.bmore{display:block;width:100%;min-height:40px;margin-top:14px;background:transparent;border:1px solid var(--line);border-radius:12px;color:var(--mut);font-size:13px;cursor:pointer}
.bmore:hover{color:var(--txt);border-color:var(--mut)}
.rotlist:not(.all) .rotxtra{display:none}
#snwatch .sntpl{grid-column:1/-1;margin-top:0;padding:10px 14px;text-align:left;line-height:1.4;color:var(--gold);border-style:dashed}#snwatch .sntpl b{color:var(--acc);white-space:nowrap}
.cpls{display:none}@media(max-width:480px){.cpll{display:none}.cpls{display:inline}}
#topout .cpl:hover{text-decoration:none}#topout .cpl .snbuy{white-space:nowrap;font-family:-apple-system,"Segoe UI",Inter,Roboto,sans-serif}
.snrmore{display:none}
@media(max-width:480px){.snrmore{display:block}}
#hof>.wtile{display:grid;grid-row:span 3;grid-template-rows:subgrid;row-gap:0;align-content:start}#hof .hofs{display:flex;flex-wrap:nowrap;align-items:baseline;gap:0 4px;min-width:0}#hof .hofs>.hofsym{flex:0 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#hof .hofs>span:last-child{flex:0 0 auto;white-space:nowrap}#hof .hofmeta{display:flex;flex-wrap:wrap;align-items:center;font-size:11px;gap:2px 10px;align-content:flex-end;padding-top:5px}#hof .hofft{padding-top:6px}@media(min-width:481px){#hof>.wtile{padding:10px 12px}}#hof .hofacts{margin:0}   /* Biggest calls tile = body / Share row / Chart+Copy row on a subgrid, so every Share on X and action row in a line of tiles shares one y */
#hofmore.snrmore{display:block}@media(min-width:481px){#hof:not(.all)>.wtile:nth-child(n+13):not(:nth-child(13):last-child){display:none}}   /* desktop: Biggest calls capped at two rows (12), 390 caps at 2 */
@media(max-width:480px){
 /* paid radar: 2x2 stat tiles, chain and sort filters each on their own row */
 .cards.bstat4{grid-template-columns:1fr 1fr;gap:10px}
 .cards.bstat4 .card{padding:12px 14px;min-height:0}
 .cards.bstat4 .card .n{font-size:20px!important}
 .bgrp{flex-basis:100%;gap:6px}
 /* each filter row scrolls sideways instead of wrapping; Sort and Change each get their own row */
 .bgrp,.bgrow{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent);padding-right:24px}
 .bgrp::-webkit-scrollbar,.bgrow::-webkit-scrollbar{display:none}
 .bgrp>.chip{flex:0 0 auto}
 .bgrow{display:contents}
 .bgrow>.bgrp{flex-basis:100%}
 .bgrp.fend,.bgrow.fend{-webkit-mask-image:none;mask-image:none}
 .bt{font-size:14px;white-space:normal;overflow-wrap:anywhere;line-height:1.25}
 .bgrp>.mut{min-width:40px}
 /* Sort and Change rows fill to the edge like the Chain row (were left-clumped) */
 .bgrow>.bgrp{overflow-x:visible;-webkit-mask-image:none;mask-image:none;padding-right:0}
 .bgrow>.bgrp>.chip{flex:1 1 auto;display:inline-flex;align-items:center;justify-content:center;min-height:40px;box-sizing:border-box;white-space:nowrap}
 /* chain chips wrap to two lines so NEAR and the Watchlist chip are never off-screen */
 .bfilters>.bgrp{flex-wrap:wrap;overflow-x:visible;-webkit-mask-image:none;mask-image:none;padding-right:0;gap:6px}
 .bfilters>.bgrp>.chip{flex:1 1 auto;display:inline-flex;align-items:center;justify-content:center;min-height:40px;box-sizing:border-box}
 #boostout .bdesc{display:none}
 #boostout .bcard{padding:12px}
 /* scanner: sniper tiles live on Overview/Sniper, keep the scan bar and results focused */
 #snipstrip,.nomob{display:none}
 /* scanner change strip: 2x2 so the 24h cell is never clipped */
 .chgrow{grid-template-columns:1fr 1fr}
 .chgrow .chgcell:last-child:nth-child(odd){grid-column:1/-1}
 .chgcell{padding:8px 6px;min-width:0}
 .chgcell:nth-child(2){border-right:none}
 .chgval{font-size:14px;overflow-wrap:anywhere}
 /* sniper tables: drop the forced 620px width, hide low-value columns so PnL/result fit without sideways scroll */
 #snpos table,#snrec table{min-width:0}
 #snpos th:nth-child(2),#snpos td:nth-child(2),#snpos th:nth-child(4),#snpos td:nth-child(4),#snpos th:nth-child(6),#snpos td:nth-child(6),
 #snrec th:nth-child(2),#snrec td:nth-child(2),#snrec th:nth-child(5),#snrec td:nth-child(5),#snrec th:nth-child(7),#snrec td:nth-child(7){display:none}
 #snrec th:nth-child(6),#snrec td:nth-child(6),#snrec .snsold{display:none}
 #snrec .snmacts{display:block}#snrec .snmacts .snacts{justify-content:flex-start;margin-top:6px}
 #snrec th:nth-child(4),#snrec td:nth-child(4){display:none}#snrec .snpkm{display:inline;white-space:nowrap}#snrec td:first-child>a:first-child{margin:-8px 0 -6px}#snrec .snmacts .snacts{margin-top:2px!important}#snrec .snmago{display:inline!important}#snrec .snmago::before{content:' · '}
 .snvd{display:none}.snvm{display:block;margin:-4px 2px 10px;font-size:13px}.snvm p{margin:0}.snvm .snvmore{display:none;margin-top:6px}.snvm.open .snvmore{display:block}.snvtog{min-height:40px;padding:0 12px;font-size:12px;margin-top:4px}
 #snrec .snmago{display:block}#snrec td:first-child,#snrec td:nth-child(3),#snrec td:nth-child(3) *{white-space:normal!important}
 #snrec:not(.all) tr.snrx{display:none}
 #snrec .snmacts .snacts{flex-wrap:wrap!important;row-gap:6px}#snrec .snmacts .snacts>*{min-height:40px}#snrec td:nth-child(3){min-width:0;overflow-wrap:anywhere}#snrec .stopchip{white-space:normal!important;width:auto;max-width:100%;line-height:1.2}
 #snrec.all .snrmore{display:none}
 /* Recent calls first cell at 390: symbol + chips as one wrapping flex row, 'ran Nx' + Share on X as the next row - nothing overlaps */
 #snrec .snrh{display:flex;flex-wrap:wrap;align-items:center;gap:6px}#snrec .snrh>*{margin:0!important}#snrec .snrh>a:first-child{margin:-8px 0 -6px!important}#snrec .snrh .stopchip{width:auto}
 #snrec .snrh{display:inline-flex;vertical-align:middle;max-width:100%}#snrec .snrrun{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 0 6px;vertical-align:middle}#snrec .snrrun:empty{display:none}#snrec .snrrun .shbtn{min-height:40px;padding:0 12px}#snrec .snmacts .snacts>.shbtn{flex:1 1 100%;min-height:40px;padding:0 6px}#snrec td:nth-child(3) .athv{white-space:nowrap!important}   /* 390: Share on X gets its own full row under Chart + Copy trade (3-up squeezed them to ~50px); '→ ATH $X' never splits from its value */
 #hof:not(.all)>.wtile:nth-child(n+3):not(:nth-child(3):last-child),#snbest:not(.all)>.wtile:nth-child(n+3):not(:nth-child(3):last-child){display:none}   /* a lone 3rd card shows instead of a "show 1 more" button */
 #snhdr:not(.all)>.card.snhx{display:none}
 #mcopied:not(.all)>.wtile:nth-child(n+3){display:none}
 .sncap{min-height:44px}
 .cards>.card:last-child:nth-child(odd){grid-column:1/-1}
 #tokhdr .cards>.card:first-child{grid-column:1/-1;display:flex;align-items:center;gap:8px;min-height:56px;padding:8px 8px 8px 14px}
 #tokhdr .cards>.card:first-child .l{margin:0;flex:1 1 auto;min-width:0}
 #tokhdr .cards>.card:first-child .l .wlstar{margin:0 0 0 auto}
 #tokhdr .cards>.card:last-child:nth-child(odd){grid-column:auto}
 #snpos th,#snpos td,#snrec th,#snrec td{padding-left:6px;padding-right:6px}
 .cards{grid-template-columns:1fr 1fr}
 #snhdr{grid-template-columns:1fr}
 .card .n,.card .n{font-size:19px}
 .wl{grid-template-columns:1fr}
 #snwatch{grid-template-columns:1fr 1fr;gap:8px}
 #snwatch .wtile{padding:10px;min-width:0;min-height:40px;display:flex;flex-direction:column}
 #snwatch .wtile>.tq{margin-top:auto;align-self:flex-start}
 #snwatch .wtile>.tq{max-width:100%;padding:2px 8px;gap:4px;overflow:hidden}#snwatch .wtile>.tq .tqq,#snwatch .wtile>.tq.part .tqw,#snwatch .wtile>.tq .tqs:not(.tqf){display:none}
 #snwatch .wtile .s{font-size:13.5px;overflow-wrap:anywhere}
 #snwatch .wtile .m{flex-wrap:wrap;gap:2px 6px}
 h1{font-size:21px}
 .top{padding:5px 10px;gap:0 8px;font-size:12px}
 /* top bar: row 1 = scrolling market strip + connect + bell, row 2 = ETH / smart money / sniper */
 #mktticker{order:0;flex:1 1 0;min-width:0;overflow-x:auto;scrollbar-width:none;padding:0;border-top:none}
 #mktticker::-webkit-scrollbar{display:none}
 #mktticker .mkt.eth,#mktticker .mkt.bnb,#mktticker .mkt.arc,#mktticker .mkt.sol{display:none}
 #connectbtn{order:1;margin-left:0;height:40px;display:flex;align-items:center}
 #topsrchbtn{order:1;width:40px;height:40px}
 #bell{order:2;margin-left:0;height:40px}
 .top::after{content:'';order:2;flex-basis:100%;height:0}
 .top>.tick:not(#mktticker){order:3}
 #chainname,.chsep{display:none}
 .connwrap{font-size:11px;padding:6px 9px}
 .chip{padding:8px 10px;font-size:12px}
 /* overview rows: identity on line 1, metrics right-aligned on line 2 */
 .ovrow{flex-wrap:wrap;row-gap:4px}
 .ovrow .ovid{flex:1 1 100%}
 .ovrow .ovm{flex:1 1 100%;justify-content:flex-end;text-align:right;white-space:normal!important}
 .ovrow .spk{width:48px}
 /* scanner results: checkbox, #, wallet, profit $, multiple - no sideways scroll */
 #out table{min-width:0}
 #out th:nth-child(5),#out td:nth-child(5),#out th:nth-child(7),#out td:nth-child(7),#out th:nth-child(8),#out td:nth-child(8),#out th:nth-child(9),#out td:nth-child(9),#out th:nth-child(6),#out td:nth-child(6){display:none}
 #out th,#out td{padding:8px 6px}
 #out td.w{white-space:normal;min-width:0}
 #out .wchips:not(:empty){display:block}#out .wmob{display:flex;flex-wrap:wrap;column-gap:10px;font-size:11px;line-height:1.35;margin-top:2px;white-space:normal}#out .wmob .wsep{display:none}
 #out .wcell{flex-wrap:wrap;row-gap:2px}
 /* top traders: rank, wallet, cross-token $, win % only - no sideways scroll */
 #topout table{min-width:0}
 #topout th:nth-child(4),#topout td:nth-child(4),#topout th:nth-child(5),#topout td:nth-child(5),#topout th:nth-child(6),#topout td:nth-child(6),#topout th:nth-child(7),#topout td:nth-child(7),#topout th:nth-child(8),#topout td:nth-child(8){display:none}
 #topout th,#topout td{padding:8px 6px}
 #topout th{white-space:normal;font-size:10px;letter-spacing:.4px}
 #topout td.w{white-space:normal;min-width:0}
 #topout .wcell{flex-wrap:wrap;row-gap:2px}
 #topout .cpl{display:inline-flex;align-items:center;min-height:40px;padding:0 4px}
 /* copy trading top wallets: rank, wallet, cross-token $, win %, Follow - no sideways scroll */
 #copytop table{min-width:0}
 #copytop th:nth-child(4),#copytop td:nth-child(4),#copytop th:nth-child(5),#copytop td:nth-child(5){display:none}
 #copytop td.w{width:150px;max-width:150px}
 #copytop td.w .vwrap{white-space:normal}
 #copytop th,#copytop td{padding:8px 4px}
 #copytop th{white-space:normal;font-size:10px;letter-spacing:.4px}
 #copytop th:nth-child(3),#copytop td:nth-child(3){white-space:nowrap}
 #copytop td.w{white-space:normal;min-width:0}
 #copytop .wcell{flex-wrap:wrap;row-gap:0}
 #copytop td.w a{display:inline-flex;align-items:center;min-height:40px;white-space:nowrap}
 #copytop th:nth-child(3){width:1%}
 #copytop .cfol{min-height:40px;padding:0 10px!important}
 #copytop .cflag{display:inline-flex;align-items:center;justify-content:center;min-height:40px;min-width:28px}
 /* wallet finder: token, total $, real $ only at 390 */
 #wout table{min-width:0}
 #wout .wx{display:none}
 #wout th,#wout td{padding:8px 6px}
 #wout td:first-child{white-space:normal}#wout td{padding:11px 6px}
 #wout .wta,#wout .wmh{display:block;white-space:nowrap;font-size:11px;line-height:1.3}#wout .wtk{line-height:1.3}#wout td:first-child{padding:7px 6px} #wout .wskel .wta .skel{width:72px!important}
 #wout .wch{display:table-cell;width:1%;padding:0 4px}#wout .wch .dexmini{min-width:44px;justify-content:center}.wrl .wrsub{display:block;margin-top:3px}.wrl .wrdash{display:none}
 /* section headers: title + rule on line 1, the description pill drops to its own line as a caption */
 .sub{flex-wrap:wrap;row-gap:3px}
 .sub::after{min-width:0}
 .sub>.badge,.ovpanel h3>.badge{order:3;flex:1 1 100%;border:0!important;padding:0;border-radius:0;white-space:normal;line-height:1.4;font-size:10.5px;letter-spacing:.2px}
 .ovpanel h3{flex-wrap:wrap;row-gap:3px}
 .pmetrics{grid-template-columns:1fr 1fr;row-gap:10px}
 /* sniper best calls + hall of fame: 2-col grid, one step tighter */
 #snbest,#snhall,#snrunners,#hof,.ovbest{grid-template-columns:1fr 1fr;gap:8px}
 #snbest,#hof{grid-template-columns:1fr}.ovhl .ovhls{flex:1 1 100%}
 .ovbest .wtile .tq{flex-wrap:wrap;white-space:normal;max-width:100%;row-gap:0;text-align:left}.ovbest .wtile .tq .tqs{flex-basis:100%;font-size:11px}.ovbest .wtile .tq .tqsep{display:none}.ovbest .wtile .tq .tqq{display:none}
 .ovbest .wtile{padding:10px 10px}.ovbest .wtile .s{font-size:13.5px;overflow-wrap:anywhere}.ovbest .wtile .m{flex-wrap:wrap}
 .ovbest .wtile:last-child:nth-child(odd){grid-column:1/-1}.ovhofx{display:block;margin-top:4px;letter-spacing:.04em}.ovhofd{display:none}
 #snbest .wtile,#snhall .wtile,#snrunners .wtile,#hof .wtile{padding:10px 10px;min-width:0}
 #snbest .wtile .s,#snhall .wtile .s,#snrunners .wtile .s,#hof .wtile .s{font-size:12.5px;overflow-wrap:break-word}
 #snbest .s{gap:4px}#snbest .s .wlstar{width:40px;height:40px;min-width:40px;border-radius:10px;font-size:15px;position:relative;margin:-6px -6px -4px auto}#snbest .s .wlstar::after{content:'';position:absolute;inset:-5px}
 /* overview activity rows: name never shrinks, short note, only the status ellipsizes */
 .actrow .actnm b{flex:0 0 auto;max-width:70%}.actrow .actpnl{margin-right:0!important}
 .actrow .actnm .nore,.actrow .actnm .fflag{flex:0 0 auto}.actrow .actnm .norel{display:none}
 .actrow .actnm .actst{flex:1 1 0}.actrow .actnm .actst:has(+.nore){flex:0 1 auto}
 .actrow .actnm:has(.fflag){flex-wrap:wrap;row-gap:2px}.actrow .actnm .fflag{order:9;flex:0 0 100%!important;max-width:100%;white-space:normal!important;line-height:1.25}
 #snbest .wtile .m,#snhall .wtile .m,#snrunners .wtile .m{flex-wrap:wrap}
 #snrunners .snacts button,#boostout .snacts button{flex:1 1 0;min-height:40px;padding:0 6px}
 #snrunners .snacts{min-width:0}#snrunners .snacts>span.mut{display:none}
 #snbest .snacts{gap:6px}
 #snbest .snacts button{flex:1 1 0;min-height:40px;padding:0 6px}
 .ovbacts .snacts{gap:6px;min-width:0;flex-wrap:wrap}.ovbacts .snacts button{min-height:40px;padding:0 6px;flex:1 1 100%;justify-content:center;text-align:center}
}
@media(max-width:480px){
 .snacts button,.fchsub,.soclink,.dexlink,#snpos td:first-child a{min-height:40px;display:inline-flex;align-items:center;box-sizing:border-box}
 #snpos td:first-child>a,.snrh>a{min-width:40px;justify-content:flex-start}.soclink{min-width:40px;justify-content:center}   /* short symbols (zc) sit flush left like MILES, 40px tap width kept */
 #snpos td:first-child a{padding:0 4px}
 #snpos th:nth-child(5),#snpos td:nth-child(5),#snpos th:nth-child(7),#snpos td:nth-child(7){display:none}
 #snpos .snmacts{display:block}#snpos .snmacts .snacts{justify-content:flex-start;margin-top:6px}
 #snrec th:nth-child(3),#snrec td:nth-child(3),#snrec thead{display:none}#snrec .snrmv{display:block;margin-top:4px;font-size:12px;line-height:1.5;color:var(--mut,#8b93a7)}#snrec .snrmv .snmago{white-space:nowrap}   /* 390: entry -> ATH sits inside the token cell so Chart / Copy trade span the whole row, same as Open positions */
 #snpos .snmacts .snacts>button,#snrec .snmacts .snacts>button{flex:1 1 0;justify-content:center;text-align:center}#snrec .snmacts .snacts>button{white-space:nowrap;padding-left:6px;padding-right:6px}   /* 390: Open positions / Recent calls Chart + Copy trade fill the token cell evenly instead of clumping left */
 #snpos td:first-child{white-space:normal;max-width:60%}
 #snpos td:nth-child(3){width:72px;box-sizing:border-box}#snpos .snmacts{margin-right:-72px}   /* 390: Chart + Copy trade run under the RAN cell to the row edge (was an empty strip beside them) */
 .ovbest .ovbacts .snacts>span.mut{order:-1;flex-basis:100%;margin-bottom:2px}   /* 390: dead/earlier-call note above Chart so every mini card's last button sits on the card bottom */
 #snpos .snpv{display:inline}#snpos .snpvl{display:block}
 #snpos td.barcell{white-space:normal}#snpos td.barcell .snpp{display:block}#snpos .sntp{white-space:normal;min-width:0;max-width:110px;line-height:1.35}
 .fmain .fchtop{display:none}.fmain .fchsub{display:inline-flex}
 .fsn .fbuy.fchsub{display:none}.fsn .fbuym{display:inline-flex;min-height:40px;margin-top:2px;padding:0 6px}.fsn .fago{display:flex;flex-direction:column;align-items:flex-end}
 .fsn a.fchsub{display:none}.fsn .fchact{display:inline-flex;min-height:40px;margin-top:2px;min-width:44px;justify-content:center}
 #ov .ovrow a.dexmini{display:inline-flex;min-width:44px;justify-content:center;box-sizing:border-box}
 .trkl{display:inline-flex;min-width:44px;min-height:40px;align-items:center;justify-content:center;box-sizing:border-box}.bellbtn{min-width:40px;min-height:40px;box-sizing:border-box}.fsn .fbuy.fchact{display:none}
 .fsn .fchsub{order:4;margin-left:auto;white-space:nowrap}.fsn .fsub{gap:4px 6px}.fsn .fdead{flex:1 1 100%;order:6;line-height:1.2}.fsn .fdl{display:none}.fsn .fds{display:inline}.fsn .ftraj svg{width:44px}.fsn .fago{min-width:30px;text-align:right}
 .dexmini,.dexbtn,#go,section a[onclick^="nav("],#snrec td:first-child a,button[onclick^="applySnFilters"],a[onclick^="resetSnFilters"]{min-height:40px;display:inline-flex;align-items:center;box-sizing:border-box}
 #snrec td:first-child a{padding:0 4px}
 .ovrow .wcell a,#out td a{min-height:40px;display:inline-flex;align-items:center;box-sizing:border-box}
 #ov .ovrow{min-height:40px;box-sizing:border-box}
 /* overview top smart money: address + avatar on line 1, via chip + tier on line 2, value stays right */
 #ov .ovrow .ovid{min-width:0}
 #ov .ovrow .ovid .wcell{flex:1 1 0;min-width:0;flex-wrap:wrap;row-gap:2px}
 #ov .ovrow .ovid .wcell>a{white-space:nowrap}
 #ov .ovrow .ovid{justify-content:flex-start;gap:6px}
 #ov .ovrow .ovid .wcell{flex:0 1 auto}
 #ov .ovrow .ovid .cflag{margin-left:0!important}
 /* top smart money at 390: line 1 = rank + address + tier + caution, line 2 = metrics */
 #ov .ovrow.ovtop{padding:2px 4px;row-gap:0}
 #ov .ovtop .ovid{flex-wrap:nowrap;gap:5px}
 #ov .ovtop .ovid .rk{margin-right:2px!important}
 #ov .ovtop .ovid .wcell{flex:0 1 auto;min-width:0;flex-wrap:nowrap;column-gap:5px;overflow:hidden}
 #ov .ovtop .wcell>a{flex:0 0 auto}
 #ov .ovtop .wcell .tier{order:3;flex:0 0 auto;margin:0!important}
 #ov .ovtop .wcell .vwrap{display:none}   /* handle chip can't fit beside tier + caution at 390 - Top traders shows it */
 #ov .ovtop .wcell .vwrap>.mut{font-size:10px!important}
 #ov .ovtop .wcell .viachip{background:none;border:0;padding:0;color:var(--mut);font-weight:600;font-size:10px}
 #ov .ovtop .cflag{flex:0 0 auto}
 #ov .ovtop .ovm{gap:8px!important}
 #ov .ovrow.ovtop .wcell>a,#ov .ovrow.ovtop .ovm>.trkl{margin:-6px 0}   /* keep the 40px tap targets but let them overlap the row padding: row ~85px -> ~61px */
#ov .ovrow.ovtop{align-items:stretch;flex-direction:row}#ov .ovtop .ovm .trkl{margin-left:auto}   /* the rows share the .ovtop class with the top container (flex column at 390) - stretch so line 1 starts at the left and track sits at the right, not both lines centered */
 #scanacts button{min-height:40px}
 .chip,#topout td a,.restrow a,#topmeta a,.topcnt a,a[onclick^="showAll=true"],#xradar button{min-height:40px;display:inline-flex;align-items:center;box-sizing:border-box}.chip{min-width:40px;justify-content:center}.uptf{flex-basis:100%;margin-left:0!important}
 #topmeta a,.topcnt a,a[onclick^="showAll=true"]{padding:0 6px}
 th[onclick]{height:40px}
 .ovtop{display:flex;flex-direction:column}.ovtop .ovjump{order:-1;margin-top:0!important}.ovtop .cards{margin-bottom:6px}
 /* primary action first at 390: #ov becomes a flex column and .ovtop dissolves so Jump in sits above Biggest calls */
 #ov{display:flex;flex-direction:column}#ov>*{min-width:0}#ov>#ovps{order:-2}#ov>.ovtop{display:contents}#ov>.ovtop>.ovjump{order:-1;margin:14px 0 4px!important}
 .ovbest .wtile:nth-child(n+5){display:none}
 .ovtop .ovt5{display:none}.ovtop .ovtdup{display:none}.ovcap5{display:block;font-size:12px;margin:0 2px 4px;min-height:40px;padding:10px 0;box-sizing:border-box;line-height:20px;cursor:pointer}.ovcap5 .ovchn{display:none}
}

.cautionbar{background:linear-gradient(90deg,rgba(245,182,66,.14),rgba(245,182,66,.05));border:1px solid rgba(245,182,66,.4);color:#f5cf7e;border-radius:12px;padding:11px 15px;margin:16px 0 0;font-size:13.5px}
.cautionbar b{color:var(--gold)}
.cbtog{min-height:40px;padding:0 14px;border-radius:10px;border:1px solid rgba(245,182,66,.5);background:rgba(245,182,66,.1);color:#f5cf7e;font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.cbtog:hover{background:rgba(245,182,66,.2)}
.dexbtn{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border:1px solid var(--line);border-radius:10px;background:rgba(20,26,38,.7);color:var(--acc);font-size:12px;font-weight:600;text-decoration:none;white-space:nowrap}
.dexbtn:hover{border-color:var(--acc);background:rgba(79,125,255,.12)}
.dexmini{color:var(--acc);text-decoration:none;font-size:11px;font-weight:600;white-space:nowrap}
.dexmini:hover{text-decoration:underline}
.snmchart{display:none;cursor:pointer}.snmago{display:none}
.vwrap{white-space:nowrap}.tmeta{display:inline;vertical-align:middle}.fpk{white-space:nowrap}.fre{white-space:nowrap}.fre::before{content:'· '}@media(max-width:480px){.fsub .fre{flex:1 1 100%;order:9}.fre::before{content:''}}
@media(min-width:821px){#topout .wcell .vwrap{display:none}}
/* 821-1300: the found-via tag moves to the link tooltip so #topout fits without sideways scroll */
@media(min-width:821px) and (max-width:1300px){#ov .ovtop .wcell .vwrap,#ov .ovtop .ovm>.spk,#ov .ovtop .ovm>.obar{display:none}#topout .vtag{display:none}#topout th,#topout td{padding-left:9px;padding-right:9px}}
/* overview grid: panels may shrink below their nowrap content; top smart money rows ellipsize instead of widening column 1 */
.ovgrid>.ovpanel{min-width:0}
@media(min-width:821px){#ov .ovtop .ovid{flex:1 1 auto;min-width:0;overflow:hidden}#ov .ovtop .ovid .wcell{min-width:0;overflow:hidden;flex-wrap:nowrap}#ov .ovtop .wcell .tier{flex:0 0 auto}#ov .ovtop .wcell .vwrap{min-width:0;overflow:hidden;text-overflow:ellipsis}#ov .ovtop .ovm{flex-shrink:1;min-width:0}#ov .ovtop .ovm .pos{min-width:0;overflow:hidden;text-overflow:ellipsis}}
/* wide desktop: the $TOKEN chip and 'N tokens · NN% win' never clip; the sparkline is the item that gives way */
@media(min-width:1301px){#ov .ovtop .wcell .vwrap{flex:0 0 auto;overflow:visible}#ov .ovtop .wcell .vwrap>.mut{display:none}#ov .ovtop .ovm .pos{flex:0 0 auto;overflow:visible}#ov .ovtop .ovm{flex-shrink:8}#ov .ovtop .ovm>.spk{flex:0 1 auto;min-width:0}#ov .ovtop .wcell .viachip{padding:0 5px;font-size:10.5px;font-weight:600;border-radius:5px}}
@media(min-width:1301px) and (max-width:1499px){#ov .ovtop .ovm>.spk{display:none}}
.wtm{display:contents}
@media(max-width:480px){#topout .wtm{display:flex;flex-wrap:wrap;align-items:center;column-gap:6px;row-gap:0}#topout .wtm>.wcell{display:contents}#topout .wtm .ava{flex:0 0 20px;width:20px;height:20px;margin:0}#topout .wtm .wcell>a{flex:0 1 calc(100% - 30px);white-space:nowrap;min-width:0}#topout .wtm .wcell .tier{margin-top:0!important}#topout .wtm .wcell .tier+.vwrap{margin-top:0}#topout .wtm .tmeta{flex:1 1 auto;gap:8px}#topout .wtm .tmeta .cpl{padding:0 4px}#topout td.w{padding-top:0;padding-bottom:0}#topout th,#topout td{padding-left:6px;padding-right:6px}}
@media(max-width:480px){#topout .wcell .vwrap{white-space:nowrap}#topout .wcell .vwrap>.mut{display:none}#topout .wcell .viachip{padding:1px 5px;font-size:11px}#topout .wcell .tier+.vwrap{margin-top:2px}}
.viachip{display:inline-block;padding:1px 7px;border-radius:6px;background:rgba(79,125,255,.13);border:1px solid rgba(79,125,255,.32);color:var(--acc);font-weight:700;font-size:12px}
.feedlist{display:flex;flex-direction:column;gap:8px}
.fstl,.fstx,.fexm{display:none}
/* phones: the chain chips right below already list every chain with counts - drop the chains tile, keep the other three on one row */
@media(max-width:480px){#feed .pmetrics{grid-template-columns:repeat(3,1fr);column-gap:6px}#feed .fchn,#feed .fclx{display:none}}@media(max-width:480px){.pmsub.fexc{display:none}.fexm{display:block;font-size:11px;margin:-4px 2px 14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}
@media(min-width:1024px){#feed .flsub{margin-top:12px}#feed .flsub .badge,#feed .pmetrics{display:none}.flsub::after{order:2}.fstl{display:inline;order:3;text-transform:none;letter-spacing:0;font-size:12px;white-space:nowrap}.fstl b{color:var(--txt);font-weight:700}.fstx{display:block;font-size:11.5px;margin:-6px 2px 10px;text-align:right}}
.feedrow{display:flex;align-items:center;gap:13px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(180deg,rgba(24,30,43,.75),rgba(13,17,26,.8));cursor:pointer;transition:.14s;animation:rise .3s ease both}
.feedrow:hover{border-color:rgba(79,125,255,.4);transform:translateX(2px)}
.fic{font-size:19px;flex:0 0 auto;width:26px;display:flex;align-items:center;justify-content:center}
.fg{display:inline-block;flex:0 0 auto;width:20px;height:20px;border-radius:50%;box-sizing:border-box;vertical-align:middle}.fg.win{background:var(--grn)}.fg.loss{background:var(--red)}.fg.flat{background:var(--mut);opacity:.55}.fg.ent{border:2.5px solid var(--acc);background:rgba(79,125,255,.12)}.fg.wal,.fg.cp{border-radius:5px;border:2px solid var(--gold);width:18px;height:14px}.fg.cp{border-color:var(--acc2);border-style:dashed}.ovrow .fg,.alertitem .fg{width:14px;height:14px}.ovrow .fg.wal,.ovrow .fg.cp,.alertitem .fg.wal,.alertitem .fg.cp{width:15px;height:11px}
.whyp{margin-top:5px;font-size:12px;max-width:440px;white-space:normal}.whyp>summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:2px 10px;border:1px solid var(--line,rgba(255,255,255,.1));border-radius:999px;color:var(--txt,#e6e8ee);font-weight:600;font-size:11.5px}.whyp>summary::-webkit-details-marker{display:none}.whyp>summary::before{content:'▸';font-size:10px;color:var(--mut);transition:transform .15s}.whyp[open]>summary::before{transform:rotate(90deg)}.whyps{color:var(--mut);font-weight:500}.whypb{margin-top:6px;padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);display:grid;gap:5px}.whyr{display:grid;grid-template-columns:18px 104px 1fr;column-gap:6px;align-items:baseline;line-height:1.35}.whyi{width:16px;height:16px;border-radius:50%;display:inline-grid;place-items:center;font-size:10px;font-weight:700;align-self:center}.whyr.ok .whyi{background:rgba(46,204,113,.16);color:var(--grn)}.whyr.bad .whyi{background:rgba(255,107,125,.16);color:var(--red)}.whyr.mid .whyi,.whyr.nc .whyi{background:rgba(255,255,255,.07);color:var(--mut)}.whyk{color:var(--mut)}.whyv{font-weight:600;overflow-wrap:anywhere}.whyr.nc .whyv{color:var(--mut);font-weight:500;font-style:italic}.whyd{grid-column:3;color:var(--mut);font-size:11px;overflow-wrap:anywhere}@media(max-width:480px){.whyp{max-width:none}.whyp>summary{min-height:40px}.whyr{grid-template-columns:18px 1fr}.whyv,.whyd{grid-column:2}}
.fmain{flex:1;min-width:0}.whyn{font-size:11px;color:var(--mut);margin-top:3px;line-height:1.35;white-space:normal;overflow-wrap:anywhere;font-weight:400}@media(min-width:1024px){.ftop .whyn{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:14px}}
.ftop{font-size:14px;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.fsub{margin-top:5px;display:flex;align-items:center;gap:4px 8px;flex-wrap:wrap}.fexw{flex-basis:100%;order:5;line-height:1.2}.fexw:empty{display:none}
.fverb{color:var(--mut);font-size:11.5px;text-transform:none;letter-spacing:0}
@media(max-width:480px){.fsn .ftop{flex-wrap:nowrap;gap:5px;min-width:0}.fsn .ftop b,.fsn .ftop .chainlab{flex:0 0 auto}.fsn .ftop{flex-wrap:wrap;row-gap:3px}.fsn .fcv{display:flex;flex:0 0 100%;align-items:center;gap:5px;min-width:0}.fsn .fcv .chainlab{margin-left:0}.fsn .fverb{font-size:11px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.25}.fsn .fvst{white-space:nowrap}}
.fago{color:var(--mut);font-size:12px;flex:0 0 auto;white-space:nowrap}
.fchsub{display:none}.fchact{display:none}
.fbuy{font-size:11px;padding:3px 10px;cursor:pointer;line-height:1.2}.fbuym{display:none}
/* best calls + hall of fame: JS sets --cols so rows stay balanced (8 cards = 4+4, not 6+2) */
#snhall:not(.all)>.hx{display:none}
@media(min-width:1200px){#snbest,#snhall,#hof{grid-template-columns:repeat(var(--cols,6),minmax(0,1fr))}}
@media(max-width:480px){#hof .hofdl{flex:1 1 100%}#hof .shbtn{min-height:40px}}   /* 390: dead label on its own line above Share on X, never side by side */
@media(min-width:821px){.feedlist{gap:4px}.feedrow{padding:6px 12px;border-radius:10px;gap:10px}.fic{font-size:15px;width:20px}.fg{width:16px;height:16px}.fg.wal,.fg.cp{width:16px;height:12px}
 .fmain{display:flex;align-items:center;gap:10px}.ftop{flex:1;min-width:0;flex-wrap:nowrap;overflow:hidden;white-space:nowrap}.ftop b{flex:0 0 auto}.ftop .nore{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.ftop .norel{display:none}.ftop .chainlab,.ftop .fverb{flex:0 0 auto}.fverb{overflow:hidden;text-overflow:ellipsis}
 .fsub{margin-top:0;flex:0 0 auto;gap:10px}.ftraj{display:inline-flex;width:60px}.fpk{display:inline-block;width:58px;text-align:right;white-space:nowrap}.fpnl{display:inline-block;width:70px;text-align:right;font-variant-numeric:tabular-nums}
 .fsub{flex-wrap:nowrap}.fexw,.fexw:empty{display:inline-block;flex-basis:auto;order:0;width:196px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .fchtop{display:none}.fchsub{display:inline}.fago{width:34px;text-align:right}
 .ftop{flex:0 0 auto;min-width:230px;max-width:48%}.fsub{flex:1 1 auto;min-width:0;justify-content:flex-end}.fsub>*{flex:0 0 auto}.fsub .fdead,.fsub .fdl,.fsub .fre{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fsub .athl{flex:0 0 auto}.fsub{flex-wrap:wrap;row-gap:2px}.fsub .fexw{flex:0 1 196px;width:auto;min-width:0}.fsub .fexw:empty{flex-basis:0;margin-left:-10px}.fmain:has(.stopchip,.nore,.fexw:not(:empty)) .fdl{display:none}.fmain:has(.stopchip,.nore,.fexw:not(:empty)) .fds{display:inline}.feedrow .tq{margin-top:0;min-height:18px;padding:0 8px}
   /* one aligned column per row: fixed-width identity, sparkline always at the same x, chips + Chart/Copy trade pushed right */
 .ftop{flex:0 0 clamp(190px,20vw,300px);max-width:none}.fsub>.stopchip{flex:0 0 auto;white-space:nowrap}.fsub .athl{flex:0 0 auto;white-space:nowrap}.fsub{justify-content:flex-start;flex-wrap:nowrap;row-gap:4px}.fsub>.fdead,.fsub>.fchsub{margin-left:auto}.fsub>.fdead~.fchsub,.fsub>.fchsub~.fchsub{margin-left:0}}
.feedrow .tq{margin-top:0}
.trkcta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:14px}
.trkbtn{min-height:40px;padding:0 16px;border-radius:12px;font-size:13px;font-weight:700;cursor:pointer}
.trkbtn.ghost{background:transparent;border:1px solid var(--line);color:var(--txt);font-weight:600;box-shadow:none}.trkbtn.ghost:hover{border-color:var(--mut)}.trkbtn.rm:hover{border-color:var(--red);color:var(--red)}
.trklink{display:inline-flex;align-items:center;min-height:40px;font-size:13px}
.trklist{display:flex;flex-direction:column;gap:8px}
.trkrow{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:rgba(9,12,20,.5)}
.trkmain{display:flex;flex-direction:column;gap:3px;min-width:0;font-size:12.5px}.trkw{font-family:ui-monospace,monospace;font-size:14px;font-weight:700;cursor:pointer}
.trkact{display:flex;gap:8px}
.howbox{border:1px solid rgba(79,125,255,.28);background:linear-gradient(180deg,rgba(79,125,255,.06),rgba(13,17,26,.4));border-radius:16px;padding:12px 16px;margin:2px 0 14px}
.howbox>summary{cursor:pointer;min-height:40px;font-weight:700;font-size:13.5px;color:var(--txt);list-style:none;display:flex;align-items:center;gap:9px}
.howbox>summary::-webkit-details-marker{display:none}
.howbox>summary::after{content:'';margin-left:auto;width:7px;height:7px;border-right:2px solid var(--mut);border-bottom:2px solid var(--mut);transform:rotate(45deg);transition:transform .15s;flex:0 0 auto;margin-right:4px}
.howbox[open]>summary::after{transform:rotate(-135deg)}
.howic{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:var(--acc);color:#fff;font-size:12px;font-weight:800;font-style:italic;flex:0 0 auto}
.howsteps{display:flex;flex-direction:column;gap:11px;margin-top:13px}
.howstep{display:flex;gap:12px;align-items:flex-start;font-size:13.5px;line-height:1.5;color:var(--mut)}
.howstep b{color:var(--txt)}
.hown{width:22px;height:22px;border-radius:7px;display:grid;place-items:center;background:rgba(79,125,255,.16);border:1px solid rgba(79,125,255,.4);color:var(--acc);font-weight:800;font-size:12px;flex:0 0 auto;margin-top:1px}
.capchip{display:inline-flex;align-items:center;padding:1px 8px;border-radius:20px;background:rgba(79,125,255,.14);border:1px solid rgba(79,125,255,.4);color:var(--acc);font-size:10px;font-weight:700;letter-spacing:.3px;text-transform:none}
.cldim{filter:grayscale(1);opacity:.6}.rmtag{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:7px;font-size:11px;font-weight:700;white-space:nowrap;background:rgba(148,163,184,.14);color:var(--mut,#94a3b8);flex:0 0 auto}.rmtag.rmecho{background:rgba(245,196,81,.14);color:var(--gold,#f5c451)}.rmtag.rmlate{background:rgba(248,113,113,.12);color:#f87171}.rmtag.rmlive{background:rgba(55,224,160,.16);color:var(--grn);border:1px solid rgba(55,224,160,.45)}#ov .ovrow.rmrow{flex-wrap:wrap;row-gap:3px}#ov .ovrow.rmrow .ovid{flex:1 1 100%;flex-wrap:wrap;row-gap:4px}#ov .ovrow.rmrow .rmtxt{flex:1 1 100%;min-width:0;padding-left:36px;text-align:left!important;white-space:normal!important;line-height:1.4}
.clchip{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:22px;padding:0 6px;border-radius:10px;background:linear-gradient(135deg,rgba(55,224,160,.22),rgba(34,211,238,.18));border:1px solid rgba(55,224,160,.45);color:var(--grn);font-weight:800;font-size:13px;flex:0 0 auto}
.wpmodal{position:fixed;inset:0;z-index:10001;background:rgba(4,6,11,.72);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center}
/* mobile: the wallet picker + the WalletConnect QR modal must sit ABOVE the swap/chart modal (.dexmodal is z-index 9999), or the connect UI opens BEHIND it and you have to close the swap first */
:root{--wcm-z-index:2147483000;--w3m-z-index:2147483000}
wcm-modal,w3m-modal,w3m-container,.walletconnect-modal,#walletconnect-wrapper,[class*="wcm-overlay"]{z-index:2147483000 !important}
.csafety:empty{display:none}
.csafety{margin-top:10px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;font-size:12.5px;background:rgba(9,12,20,.4);line-height:1.7}
.trsafety{margin:2px 0 8px;padding:7px 11px;border:1px solid var(--line);border-radius:9px;font-size:12px;background:rgba(9,12,20,.5);line-height:1.5}
.csafl,.trsafl{color:var(--mut);font-weight:700;text-transform:uppercase;letter-spacing:.4px;font-size:10.5px;margin-right:5px}
.earnpill{font-style:normal;font-size:9px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;padding:1px 6px;margin-left:4px;border-radius:10px;border:1px solid rgba(55,224,160,.5);color:var(--grn);vertical-align:1px}
.nav a.navearn:not(.on){color:#a7e9cf}.nav a.navearn:not(.on) svg{stroke:var(--grn)}
#tradeswap{max-width:440px;width:calc(100% - 28px);margin:12px auto;border:1px solid var(--line);border-radius:16px;background:#0d111a;box-shadow:0 8px 24px rgba(0,0,0,.35);overflow:hidden}
.wpcard{background:linear-gradient(180deg,rgba(26,32,46,.99),rgba(14,18,28,.99));border:1px solid rgba(79,125,255,.4);border-radius:16px;padding:14px;width:340px;max-width:92vw;box-shadow:0 28px 80px rgba(0,0,0,.7)}
.wphead{display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:15px;margin:2px 4px 12px}
.wprow{display:flex;align-items:center;gap:12px;width:100%;padding:12px 13px;margin-bottom:8px;border:1px solid var(--line);border-radius:12px;background:rgba(9,12,20,.5);color:var(--txt);font-size:14px;font-weight:600;cursor:pointer;text-align:left}
.wprow:hover{border-color:var(--acc);background:rgba(79,125,255,.1)}
.wprow img{width:26px;height:26px;border-radius:7px;flex:0 0 auto}
.wcicon{width:26px;height:26px;border-radius:7px;flex:0 0 auto;display:grid;place-items:center;background:linear-gradient(135deg,#3b99fc,#5f5fff);color:#fff;font-size:15px}
.cflag{color:var(--gold);cursor:help;font-size:13px}.cflag .cfl{display:none}
.wpgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}.wpgrid>.wpchip{min-height:40px;box-sizing:border-box;margin:0;white-space:nowrap;min-width:0}.wpgrid>.mut{grid-column:1/-1}   /* Wallet finder proven-wallet chips: even grid (10 = two full 5-up rows at 1440, one clean column at 390) instead of a ragged flex wrap */
#out .barcell .pbar{left:auto;right:14px}@media(max-width:820px){#out .barcell .pbar{right:6px}}@media(max-width:480px){#out .barcell .pbar{right:4px}}   /* Scanner profit bar anchored under the right-aligned number, not the cell's left edge */
@media(max-width:480px){.pscur{display:grid;grid-template-columns:minmax(0,1fr);gap:6px}.pschip{min-width:0;padding:10px 12px;display:grid;grid-template-columns:44px minmax(0,1fr);align-items:baseline;column-gap:8px}.pschip small{white-space:nowrap}.pschip i{grid-column:2}#copytop td.w{position:relative}#copytop td.w>.cflag.ct{position:absolute;top:8px;right:0}}   /* 390: Presale ETH/BNB/SOL 3-up (no widowed SOL); Copy trading caution flag sits beside the address instead of on its own line */
@media(max-width:480px){.fflgl{display:none}}
@media(max-width:480px){.feedrow.fsn .ftop .fagm{display:none}.feedrow.fsn .fago .fagt{display:block;grid-column:1/-1;order:0;font-size:11px;line-height:14px;color:var(--mut);text-align:right}.feedrow.fsn .fago{align-self:flex-start;justify-content:flex-start;align-content:start}}   /* 390 feed: time moves to the top of the action column so it never wraps to its own line under the verb */
/* desktop feed: flag reads short ('⚠ malicious', full text in title) and shrinks before the chain chip + verb */
@media(min-width:821px){.feedrow .fflgl{display:none}.feedrow .ftop:has(.fflag){flex-wrap:wrap;row-gap:2px}.feedrow .ftop .fflag{order:9;flex:0 1 auto!important;min-width:0;max-width:100%;overflow:visible;white-space:normal!important;line-height:1.25}}
.fagm{display:none}
@media(max-width:480px){   /* 390 feed row: line 1 dot + symbol + chain + verb + ago, line 2 traj/run/now + short trust chip; Copy trade above Chart on the right */
 .feedrow.fsn{padding:7px 10px;gap:8px}.feedrow.fsn .fic{width:10px;align-self:flex-start;margin-top:6px}.feedrow.fsn .fic .fg{width:10px;height:10px;border-width:2px}
 .feedrow.fsn .ftop{flex-wrap:wrap;gap:2px 5px}.feedrow.fsn .fcv{flex:1 0 auto;min-width:0;overflow:hidden}.feedrow.fsn .fagm{display:inline;flex:0 0 auto;margin-left:auto;color:var(--mut);font-size:11px}.feedrow.fsn .fagt{display:none}
 .feedrow.fsn .ftop .fflag{order:9;flex:0 0 100%!important;max-width:100%;white-space:normal!important;line-height:1.25}
 .feedrow.fsn .fsub{margin-top:2px;gap:2px 4px}.feedrow.fsn .fchsub{margin-left:0}.feedrow.fsn .ftraj svg{width:34px}
 .feedrow.fsn .tq{min-height:28px;padding:0 8px;font-size:11px}.feedrow.fsn .tq::before{inset:-6px 0}.feedrow.fsn .tq .tqs:not(.tqf),.feedrow.fsn .tq .tqq,.feedrow.fsn .tq .tqfx{display:none}
 .feedrow.fsn{padding-top:6px;padding-bottom:6px}.feedrow.fsn .fago{justify-content:center}.feedrow.fsn .fago .fbuym,.feedrow.fsn .fago .fchact{margin-top:0;min-height:40px}.feedrow.fsn .fago .fbuym{padding:0 5px;font-size:11px}
}
.cflag.ct{display:inline-flex!important;align-items:center;justify-content:center;min-width:40px!important;min-height:40px!important;cursor:pointer;vertical-align:middle;border-radius:8px;user-select:none}.cflag.ct:hover,.cflag.ct.on{background:rgba(255,196,0,.1)}
.wpchip{min-height:40px;box-sizing:border-box}.wpchip .cflag.ct{min-width:0!important;min-height:0!important;padding:0 2px;margin-left:6px!important}
@media(min-width:821px){#copytop .cflag.ct{min-height:28px!important}}
@media(max-width:480px){#wintro .wistats{grid-template-columns:repeat(3,1fr)!important;gap:8px}#wintro .wistats .card{padding:12px 10px;grid-column:auto!important}#wintro .wistats .n{font-size:19px!important}#wintro .wistats .l{font-size:9.5px;letter-spacing:.06em}}
.mbconn{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.mbconn button{min-height:40px;padding:0 16px}
.cwhy{display:none;color:var(--gold);font-size:11px;line-height:1.35;margin-top:2px;white-space:normal}td.cshow .cwhy{display:block}.ovcwhy{padding:0 4px 8px;margin-top:-4px;border-bottom:1px solid rgba(34,42,57,.5)}.ovcwhy.on{display:block}@media(max-width:480px){#ov .ovtop .cflag.ct{min-width:28px!important}#ov .ovtop .ovid{overflow:hidden;max-width:100%;box-sizing:border-box}}
.cnote{display:none;color:var(--gold);font-size:11px;cursor:help}.cnote.oh,.cnote.oc{display:block;opacity:.85}
#topout .wrm{display:none}@media(max-width:480px){#topout .wrm{display:block;position:relative;font-size:11px;color:var(--mut);margin-top:2px}}
@media(min-width:821px){#topout .cnote,#topout .cpl{display:inline-block;margin-left:8px}#topout td.w{white-space:normal}#topout .tmeta{display:block;margin-top:2px;padding-left:34px;white-space:nowrap}#topout .tmeta>:first-child{margin-left:0}#topout .tmeta .cflag.ct{min-height:22px!important}#topout td.w{padding-top:9px;padding-bottom:9px}}
@media(min-width:1024px){#topout .cnote.lm{display:none}}
@media(min-width:821px){#topout .tmeta{display:flex;align-items:center;column-gap:0}#topout .tmeta .cflag,#topout .tmeta .cnote{order:3;margin-left:8px}#topout .tmeta .cnote{margin-left:4px}}
#snipstrip .snrl{display:block;opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10px;letter-spacing:.5px}
@media(max-width:480px){#topout .tmeta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;row-gap:0;min-height:40px}#topout .tmeta .cpl,#topout .tmeta .cpl~*{white-space:nowrap;flex-shrink:0;order:2}#topout .tmeta::after{content:'';flex-basis:100%;height:0;order:1}#topout .wtm .tmeta{row-gap:0}#topout .tmeta .chainlab{margin:0}#topout .tmeta .cnote{margin-left:0!important}#topout .tmeta .cpl{margin-left:0}#topout td.w{padding-top:4px;padding-bottom:2px}#topout .wcell{row-gap:0}#topout .wcell .tier{margin-top:-8px}#topout .tmeta .cnote{position:relative;border:0!important;min-height:40px;display:inline-flex;align-items:center}#topout .tmeta .cnote::before{content:'';position:absolute;left:0;right:0;top:8px;bottom:8px;border:1px solid rgba(255,196,0,.35);border-radius:999px;pointer-events:none}#topout td.w{width:150px;max-width:150px;min-width:0}#topout .wcell .tier{margin-top:2px}#topout td.w .vwrap{white-space:normal}#topout td.barcell{white-space:nowrap}#topout th:nth-child(3){white-space:nowrap}#topout .tmeta .cnote{display:none!important}#topout .tmeta .cnote.oc{display:inline-flex!important}#topout .tmeta .cflag{display:inline-flex;align-items:center;justify-content:center;min-height:40px;min-width:28px;color:var(--gold);cursor:help}#topout .cnote{display:inline-block;margin-left:4px;padding:2px 7px;border:1px solid rgba(255,196,0,.35);border-radius:999px;opacity:1;white-space:nowrap}}
/* 390 top traders: 3 lines per wallet - [wallet ⚠] / [tier via chain one-coin] / [copy · track]; the 40px wallet + action tap boxes overlap the chip line's whitespace (chips pass taps through) */
@media(max-width:480px){#topout td.w{width:190px;max-width:190px}#topout .wtm{row-gap:0;column-gap:4px}#topout .wtm .tmeta{display:contents}#topout .wtm::before{content:'';flex-basis:100%;height:0;order:1}#topout .wtm .tmeta::after{order:3}#topout .wtm .wcell>a{flex:0 1 auto;margin-bottom:-8px}#topout .wtm .ava{margin-bottom:-8px}#topout .wtm .tmeta .cflag.ct{order:3;margin:0;width:auto;min-width:0!important;padding:0 8px;gap:3px;font-size:11px;white-space:nowrap;position:relative;background:none}#topout .wtm .tmeta .cflag.ct::before{content:'';position:absolute;left:0;right:0;top:8px;bottom:8px;border:1px solid rgba(255,196,0,.35);border-radius:999px;pointer-events:none}#topout .wtm .tmeta .cflag.ct.on::before{background:rgba(255,196,0,.1)}#topout .wtm .tmeta .cflag .cfl{display:inline}#topout .wtm .tmeta .cnote,#topout .wtm .tmeta .cnote.oc{display:none!important}#topout .wtm .wcell .idb{order:2;margin-left:0}#topout .wtm .wcell .tier,#topout .wtm .wcell .vwrap,#topout .wtm .tmeta .chainlab,#topout .wtm .tmeta .cnote{order:2;margin-top:0;pointer-events:none}#topout .wtm .tmeta .cnote.oc{min-height:22px}#topout .wtm .tmeta .cnote::before{top:0;bottom:0}#topout .wtm .tmeta .cpl,#topout .wtm .tmeta .cpl~*{order:4;margin-top:-8px}}
/* <=480: Copy · track share one line - the '·' drops its 6px margin (flex gap spaces it) and the wallet cell keeps room for both */
@media(max-width:480px){#topout td.w{min-width:132px}#topout .wtm .tmeta .cpl+.mut{margin-left:0!important}}
@media(max-width:480px){#topout td.barcell{white-space:normal;min-width:0;width:auto}#topout .trec{white-space:normal;line-height:1.3;font-size:0}#topout .trec>span{display:block;white-space:nowrap;font-size:11px}#topout td.w{width:auto;max-width:none;min-width:0}}
/* 390 copy: avatar inline with the address, via + tier share the second line */
@media(max-width:480px){#copytop td.w{width:60%;max-width:none}#copytop .wcell .ava{flex:0 0 20px;margin:0}#copytop .wcell{column-gap:5px}#copytop .cfol{padding:0 8px!important}}

.snfilter{display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:linear-gradient(180deg,rgba(24,30,43,.6),rgba(13,17,26,.6));border:1px solid var(--line);border-radius:12px;padding:12px 15px;margin:0 2px 14px}
.snf{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--mut)}
.snf input[type=number]{width:78px;padding:6px 8px;font-size:12px}
.snf input[type=checkbox]{width:auto}
.ckl{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;vertical-align:middle}
.ckl input,.snf input[type=checkbox]{width:18px;height:18px;padding:0;margin:0;accent-color:var(--acc);cursor:pointer}
.snf input#fLiq{width:128px}
@media(max-width:480px){.snf input[type=number]{min-height:40px}.snf{min-height:40px}.ckl{min-width:40px;min-height:40px;margin:-8px 0}#out td.ckc,#out th:first-child{padding-left:0;padding-right:0}#out td:nth-child(2),#out th:nth-child(2){padding-left:2px;padding-right:2px;width:24px}#out .ckl{margin:-8px -4px}#out td.ckc,#out th:first-child{width:32px}#out td.w{min-width:100px}#out .wcell{flex-wrap:nowrap}#out .wcell a{white-space:nowrap}#out .wcell .ava{width:14px;height:14px;margin-right:0}#out .wcell{gap:4px}#out .wcell a{font-size:12px}#out td:nth-child(n+3),#out th:nth-child(n+3){padding-left:4px;padding-right:4px}#out th{white-space:normal;font-size:10px;letter-spacing:.4px}#out table{width:100%;max-width:100%}#out .supchip{white-space:normal;font-size:10px;margin-left:0;line-height:1.3;max-width:100%}#out .supchip.samec{white-space:nowrap}#out td.w{max-width:140px}}

.devtrack{margin-top:7px;font-size:11px;color:var(--mut);border-top:1px solid rgba(34,42,57,.6);padding-top:6px}
.devtrack b{color:var(--txt)}
.devtrack.proven{color:var(--gold)}.devtrack.proven b{color:var(--gold)}
.lpgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;align-items:start}
.lpcard{display:flex;flex-direction:column;gap:8px;min-width:0}
.lptop{display:flex;gap:10px;align-items:center}
.lplogo{width:40px;height:40px;border-radius:12px;flex:0 0 40px;object-fit:cover;display:grid;place-items:center;background:var(--line);font-weight:700}
.lpmeta{display:flex;gap:6px;margin-top:4px;flex-wrap:wrap}
.lpch,.lpst{font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid var(--line);color:var(--mut)}
.lpst{text-transform:capitalize}.lpst.live{color:var(--grn);border-color:currentColor}
.lppitch{margin:0;font-size:13px;color:var(--mut)}
.lpbar{height:8px;border-radius:999px;background:var(--line);overflow:hidden}.lpbar i{display:block;height:100%;background:var(--acc,#7c5cff)}
.lpwhen{font-weight:600;font-size:13px;font-variant-numeric:tabular-nums}
.lpperk{font-size:12px;color:var(--gold)}
.lplinks{display:flex;gap:12px;flex-wrap:wrap;font-size:13px}
.lpinv{min-height:40px}
.lpaddr{display:flex;flex-direction:column;gap:6px}.lpaddr button{min-height:40px}
.lpempty{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
@media(max-width:480px){.lpgrid{grid-template-columns:1fr}}
/* ---- premium polish pass (2026-09-26): layered depth, restrained CTA glow, 180ms micro-interactions; transforms/shadows only ---- */
:root{--ease:cubic-bezier(.2,.7,.2,1)}
.card,.wtile,.ovpanel,.chip,button,.snbuy,.connwrap,.pschip{transition:transform .18s var(--ease),box-shadow .18s var(--ease),border-color .18s var(--ease),background-color .18s var(--ease),color .18s var(--ease),filter .18s var(--ease),opacity .18s var(--ease)}
.ovpanel{box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 1px 2px rgba(0,0,0,.35),0 14px 44px rgba(0,0,0,.4)}
.ovpanel[onclick]:hover{border-color:rgba(79,125,255,.4);box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 1px 2px rgba(0,0,0,.35),0 18px 50px rgba(79,125,255,.12),0 14px 44px rgba(0,0,0,.45)}
.wtile{box-shadow:inset 0 1px 0 rgba(255,255,255,.045),0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.28)}
.wtile:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 0 22px rgba(34,211,238,.1),0 12px 30px rgba(0,0,0,.34)}
.card .n{font-variant-numeric:tabular-nums;text-shadow:0 0 22px rgba(120,150,255,.16)}
.card .n.pos,.card .pos .n,.ovbest .pos,#snbest .pos,#hof .gold{text-shadow:0 0 16px rgba(55,224,160,.28)}
td{font-variant-numeric:tabular-nums}
.sub{color:#9aa6bd;font-weight:600}.sub .badge{font-weight:400}
button:not(.ghost):not(:disabled):not(.psx):not(.sqx):not(.topsrchbtn):hover{box-shadow:0 8px 26px rgba(79,125,255,.42),0 0 0 1px rgba(157,123,255,.22)}
.connwrap:hover{box-shadow:0 6px 22px rgba(79,125,255,.5),0 0 0 1px rgba(157,123,255,.28);filter:brightness(1.06)}
.snbuy:not(.snbuyg){box-shadow:0 4px 14px rgba(55,224,160,.2)}.snbuy:not(.snbuyg):hover{box-shadow:0 6px 20px rgba(55,224,160,.34)}
button:not(:disabled):active,.snbuy:active,.chip:active,.connwrap:active{transform:scale(.97)}
.ovbacts .snacts button{white-space:nowrap;min-width:72px;flex-shrink:0}.ovbacts .snacts>span.mut{flex:1 1 0;min-width:0}
@media(min-width:481px){.ovbacts .snacts{align-items:center}.ovbacts .snacts button{height:32px}.ovbacts .snacts:has(>span.mut)>button{flex:0 0 auto;padding:0 14px}.ovbacts .snacts>span.mut{flex:1 1 auto;min-width:88px;line-height:1.35}}   /* Overview best calls: Chart + 'no longer trading' note sit side by side at a fixed 32px button height instead of stretching the button to the note's 3 lines */
.docwrap{display:grid;grid-template-columns:220px minmax(0,1fr);gap:32px;align-items:start}
.doctoc{position:sticky;top:76px;border:1px solid var(--line);border-radius:16px;padding:12px 14px;background:rgba(13,17,26,.5)}
.doctoc summary{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--mut);cursor:pointer;list-style:none}
.doctoc ol{margin:8px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:2px}
.doctoc a{display:block;padding:6px 8px;border-radius:8px;font-size:13px;color:var(--txt);cursor:pointer;line-height:1.35}.doctoc a:hover{background:rgba(79,125,255,.12);color:#fff}.doctoc a.on{background:rgba(79,125,255,.14);color:#fff;box-shadow:inset 2px 0 0 var(--acc)}
.docbody{max-width:70ch}.docintro p{font-size:16px;line-height:1.65;color:var(--txt);margin:0 0 26px}
.docsec{scroll-margin-top:80px;padding:22px 0;border-top:1px solid var(--line)}.docsec h2{font-size:19px;margin:0 0 10px;letter-spacing:-.01em}
.docsec p{text-wrap:pretty;margin:0 0 12px;font-size:15px;line-height:1.7;color:#c9d0de}
@media(min-width:861px){.doctoc summary{pointer-events:none}}
@media(max-width:860px){.docwrap{grid-template-columns:minmax(0,1fr);gap:18px}.doctoc a{min-height:40px;box-sizing:border-box;padding:10px 8px}.doctoc{position:static}.doctoc summary{min-height:40px;display:flex;align-items:center}.doctoc summary::after{content:'+';margin-left:auto;font-size:16px}.doctoc[open] summary::after{content:'-'}.doctoc a{padding:10px 8px;font-size:14px}.docintro p{font-size:15px}}
.plancard{display:flex;flex-direction:column}.plancard>.paywith{margin-top:auto}
@media(min-width:1280px){.payopts{display:grid!important;grid-template-columns:1fr 1fr}.payopts>.chip{text-align:center;justify-content:center;margin:0;white-space:nowrap}}   /* pay-with chips fill an even grid (were ragged 2+2 left-clumped at 1440) */
.bcard .smh{margin:3px 4px 0 0}   /* card smart-money chip flush with the address line above (was indented 4px) */
/* MoonRadar is the core of the product: accented sidebar item, a hero block leading the Overview, accented Radar section headers */
.nav a.navcore:not(.on){color:#b9ecf7}.nav a.navcore:not(.on) svg{stroke:var(--cyan)}.nav a.navcore:not(.on):not(:hover){background:none;box-shadow:none;border-color:transparent}   /* cyan text/icon + CORE pill carry the accent; the left bar + tinted box read as a second selected item */
.corepill{font-style:normal;font-size:9px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;padding:1px 6px;margin-left:4px;border-radius:10px;border:1px solid rgba(34,211,238,.45);color:var(--cyan);vertical-align:1px}
.app:not(.exp) .nav a small .corepill{display:none}
.rdhero{position:relative;margin-top:18px;padding:18px 20px 20px;border-radius:16px;border:1px solid rgba(34,211,238,.22);background:radial-gradient(120% 70% at 0% 0%,rgba(34,211,238,.08),transparent 55%),linear-gradient(180deg,rgba(79,125,255,.06),rgba(9,12,20,0) 60%);box-shadow:0 18px 50px -24px rgba(34,211,238,.25)}
.rdhead{display:flex;align-items:center;flex-wrap:wrap;gap:6px 16px}
.rdttl{display:flex;align-items:center;gap:10px}.rdttl h2{margin:0;font-size:22px;letter-spacing:-.01em;background:linear-gradient(90deg,#e9fbff,var(--cyan));-webkit-background-clip:text;background-clip:text;color:transparent}
.rdttl .corepill{margin-left:0;font-size:10px;padding:2px 8px}
.rdlede{flex:1 1 320px;min-width:0;font-size:13px;color:var(--mut);text-wrap:pretty}
.rdgo{flex:0 0 auto;min-height:40px}
.rdhero .ovbeststrip>.sub:first-child{margin-top:16px}
.rdhero .sub,section[data-view=sniper]>.sub,section[data-view=sniper] .snduoc>.sub{color:#bfe9f5}
.rdhero .sub::before,section[data-view=sniper]>.sub::before,section[data-view=sniper] .snduoc>.sub::before{content:'';flex:0 0 3px;align-self:stretch;min-height:14px;border-radius:3px;background:linear-gradient(180deg,var(--cyan),var(--acc2))}
section[data-view=sniper]>.sub[style*=gold]::before{background:var(--gold)}section[data-view=sniper]>.sub[style*=gold]::after{background:linear-gradient(90deg,rgba(245,182,66,.5),rgba(245,182,66,.12))}
.rdhero .sub::after,section[data-view=sniper]>.sub::after,section[data-view=sniper] .snduoc>.sub::after{background:linear-gradient(90deg,rgba(34,211,238,.5),rgba(34,211,238,.12))}
@media(max-width:480px){.rdhero{padding:14px 0 0;border-width:1px 0 0;border-radius:0;background:radial-gradient(90% 60px at 0% 0%,rgba(34,211,238,.10),transparent);box-shadow:none}.rdlede{flex-basis:100%}.rdgo{flex:1 1 100%}#ov>.rdhero{order:-1;margin-top:0}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.card:hover,.wtile:hover,.ovpanel:hover,button:active,.snbuy:active,.chip:active,.connwrap:active{transform:none!important}}

@media(max-width:480px){.snfchips .chip{flex:1 1 28%;justify-content:center;text-align:center}}   /* 390: buy-filter chain chips fill a 3 + 2 grid (ARC/SOL were clumped left on row 2) */
/* 2026-09-27 r25 polish */
.ovtsm{display:flex;flex-direction:column}.ovtsm>.ovfootw{margin-top:auto;padding-top:14px}.ovtsm .ovfoot{width:100%;min-height:40px;font-size:12.5px;font-weight:600}
@media(min-width:1024px){.fsn .ftop:has(>.whyn){flex-wrap:wrap;row-gap:0;align-content:center}.fsn .ftop>.whyn{flex:0 0 100%;margin-top:1px;max-width:100%}}
@media(max-width:480px){#copytop td:first-child,#copytop th:first-child{text-align:center;padding-left:8px;padding-right:2px}#copytop td:last-child,#copytop th:last-child{padding-right:8px}#copytop .cfol{padding:0 8px!important}#wintro .wistats{grid-template-columns:1.35fr 1fr 1fr!important}#wintro .wistats .l{letter-spacing:.04em}}
/* round 26: Top traders 390 table fits its wrapper (was 320px in 306px, clipping 'tracked since' + header); Radar strategy leader pill sized like the chain pill so the header stays one line; Presale hero CTAs full width at 390 */
@media(max-width:480px){#topout table{width:100%}#topout .trec>span{white-space:normal}#topout td.barcell{max-width:104px}}
#snhdr .l .pill{font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;padding:1px 7px;line-height:1.5}#snhdr .l .chainlab{margin-left:0}
@media(max-width:480px){.pscta{flex-direction:column}.pscta button{width:100%;min-height:44px}.lpempty .pscta{align-self:stretch}.pscta a.trkbtn{min-height:44px;justify-content:center;text-align:center}}

@media(max-width:480px){#out td.w .wcell>a{margin:-7px 0}   /* keep the 40px address tap target but stop it padding the row: no blank band between address and stats */
 .trkcta{gap:10px}.trkcta .trkbtn:not(.ghost){flex:1 1 100%;min-height:44px}.trkcta .trkbtn.ghost,.trkcta .trklink{flex:1 1 0;justify-content:center;min-height:44px;white-space:nowrap}}

/* round 34: Radar 390 - screened-out chips as an even grid, full-width show/vetting buttons, JEV pills kept together */
.jevtags{white-space:nowrap}
@media(max-width:480px){#snscreen{display:grid;grid-template-columns:1fr 1fr;gap:6px}#snscreen>.mut{grid-column:1/-1}#snscreen .pill{margin:0;text-align:center;display:flex;align-items:center;justify-content:center;min-height:30px}#snscreen .pill:last-child:nth-child(even){grid-column:1/-1}.snddt,.snvtog,#jevtile:not(.all) .jevmore{width:100%;justify-content:center}.jevtags{display:block;margin-top:5px}.jevtags>span:first-child{margin-left:0!important}}
@media(max-width:480px){.ovcsep{display:none}.ovctail{display:block;margin:-9px 0 -6px}}

/* Paid radar 390: Chart/Buy fill the card row beside the link, like the Overview Trending cards */
@media(max-width:480px){#boostout .bfoot>.snacts{flex:1 1 170px;display:flex;gap:6px}#boostout .bfoot>.snacts>button{flex:1 1 0;justify-content:center;text-align:center}}
#mcwrap.few #mcearn:empty{display:none!important}   /* one card + no earnings: the card already says it */
@media(max-width:480px){   /* round 39: 390 chip rows fill their width + feed caution chip and checks chip share one line */
 #feed .fchips>.chip{flex:1 1 auto}   /* All/Open/Closed/ARC then BNB/HOOD/SOL both end flush right (were ragged, left-clumped) */
 .uptf>.chip{flex:1 1 auto}   /* Overview Trending Sort: momentum/1h/6h/24h fill the row beside the label */
 .feedrow.fsn .fsub:has(>.stopchip) .tq .tqw{display:none}   /* '🛡 3/4' fits beside 'fleet stopped out' in the 170px column (full wording stays in the tap panel) */
}
/* round 40 (390 polish): Trending chain chips - with 2 chains (3 chips) All/SOL/HOOD share one row instead of All alone above a 2-up row */
@media(max-width:480px){.upchipbar.upodd>.chip:first-child:nth-last-child(4),.upchipbar.upodd>.chip:first-child:nth-last-child(4)~.chip{flex:1 1 0;min-width:0}}
/* round 40: panel headers keep their 'live feed →' link on the title line at 390 (title 200px + link 84px overran the 268px row) */
@media(max-width:480px){.ovpanel h3{letter-spacing:.7px}.ovpanel h3>a{letter-spacing:.3px}}
/* round 40: Biggest calls at 390 - the primary Chart / Copy trade row comes first, Share on X after it (single column, so no cross-card row alignment to keep) */
#hof .hofft{grid-row:2}#hof .hofmeta{grid-row:3}   /* every width: Chart / Copy trade row first, Share on X (and a dead label) on the shared bottom row, so dead tiles no longer end in an empty gap */
@media(min-width:481px){#snbest .snstarrow>.shbtn{min-height:32px}}   /* Best calls: Share on X matches the 32px Chart / Copy trade beside it */
@media(min-width:481px){#snrec td:last-child .snacts>.shbtn{order:-1}}   /* Recent calls: Share on X sits left of Chart so Chart / Copy trade line up in one column on every row */
@media(max-width:480px){.whyp>summary{min-height:30px;position:relative}.whyp>summary::after{content:"";position:absolute;left:0;right:0;top:-5px;bottom:-5px}}   /* "Why we called it" stays a slim pill at 390 with an invisible 40px tap area (was a 40px-tall oval) */
#snrec .snacts>span.mut,#snpos .snacts>span.mut{display:inline-flex;align-items:center;justify-content:center;align-self:stretch!important;min-width:89px;box-sizing:border-box;padding:0 8px;border:1px dashed rgba(255,255,255,.16);border-radius:8px;white-space:nowrap}@media(max-width:480px){#snrec .snmacts .snacts>span.mut,#snpos .snmacts .snacts>span.mut{flex:1 1 0;min-width:0;min-height:40px}}   /* Recent calls: 'unsellable' fills the Copy trade slot (dashed, muted) so its Chart stays in the Chart column (was a bare 50px label that shifted Chart right on desktop and sat bottom-aligned at 390) */
@media(max-width:480px){.app:not(.exp) .brand b{font-size:10px;letter-spacing:-.1px}} /* 60px rail: MoonRadar at 11px ran 60.5px edge to edge */

#hof .hofmeta{display:contents}#hof .hofdl{grid-row:2;align-self:end;padding-top:6px;font-size:11px}#hof .hofft{align-self:end}#hof .hofmeta>.shbtn{grid-row:3;justify-self:start;align-self:end;margin-top:8px}@media(min-width:481px){#hof .shbtn{min-height:32px}}   /* Biggest calls tile = body / (Chart+Copy trade or the dead label) / Share on X: the dead label shares the action row, so live tiles no longer have a gap above Share and every Share on X stays on one line */
@media(max-width:480px){#hof .hofmeta>.shbtn{justify-self:stretch}}   /* 390: Share on X keeps the full tile width */
/* r49: Top traders filter groups read as separate groups (wider gap + small-caps label, like section labels) */
@media(min-width:1024px){.topfr{column-gap:22px!important}.topfr .topfl{text-transform:uppercase;letter-spacing:.08em;font-size:10.5px;font-weight:600;margin-right:4px!important}.topfr .topfl:not(:first-child){margin-left:14px!important}}
.fgl{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;font-weight:600;margin-right:2px}
.card .n .symn{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card .n .symn.long{font-size:.8em;line-height:1.25}   /* scanner ticker tile: a long symbol ($HEISENBERG) shrinks and ellipsizes instead of running into the tile edge */
@media(min-width:481px){.ovhero .ovbacts .snacts button{flex:0 0 auto;min-width:96px;min-height:36px;padding:0 16px}}   /* Overview TOP CALL: Chart / Copy trade get real padding (the column is only as wide as the trust chip, so flex:1 1 0 squeezed 'Copy trade' to its text) */

/* short table header labels on phones (Copy trading top wallets) */
.thsh{display:none}@media(max-width:480px){.thlg{display:none}.thsh{display:inline}}
/* Top traders filter labels: same small-caps style on phones as at desktop (were plain lowercase at 390) */
@media(max-width:1023px){.topfl{text-transform:uppercase;letter-spacing:.08em;font-size:10.5px;font-weight:600}}
/* My bots (logged-out, no bots): connect button lives inside the one empty-state card */
.wlempty .mbemptybtn{margin-left:auto;flex:0 0 auto;min-height:40px}
.wlempty .bmore.mbemptybtn{width:auto;margin-top:0;padding:0 16px;color:var(--txt)}
@media(max-width:480px){.wlempty:has(.mbemptybtn){flex-wrap:wrap}.wlempty .mbemptybtn,.wlempty .bmore.mbemptybtn{margin-left:0;width:100%}}
#ethp .ch{font-size:11px;font-weight:600;margin-left:2px}   /* 390: the ETH tick carries its 24h change like BTC */
/* Live feed desktop: Chart is a compact pill the same size as Copy trade (was a bare blue text link - every other view uses a Chart button) */
@media(min-width:821px){.feedrow.fsn .fsub>.dexmini.fchsub{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:56px;padding:3px 10px;border-radius:9px;background:rgba(79,125,255,.14);border:1px solid rgba(79,125,255,.4);line-height:1.1;transition:background .15s}.feedrow.fsn .fsub>.dexmini.fchsub:hover{background:rgba(79,125,255,.26);text-decoration:none}}
/* Copy trading 390: same compact via chip as Top traders so via + tier share one line (rows were alternating 2/3 lines) */
@media(max-width:480px){#copytop td.w .vwrap{white-space:nowrap}#copytop .wcell .vwrap>.mut{display:none}#copytop .wcell .viachip{padding:1px 5px;font-size:11px}#copytop .wcell .tier{margin-left:4px}}
@media(max-width:480px){#topout .trec .trk{display:none}}   /* 390: "since Sep 27" fits the cramped cross-token cell on one line (was "tracked since" wrapped to 2 lines on every row) */
@media(min-width:481px){#snbest>.wtile:only-child{max-width:360px}}   /* a lone Best calls card stays card-sized instead of stretching to half the page with an empty middle */
@media(min-width:481px){#snbest:not(.all):has(>.wtile:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,360px))}}   /* two Best calls cards stay card-sized (360px) instead of two half-page cards with an empty middle */

/* 390 feed: the per-row Chart action is the same compact blue pill as desktop (was a bare text link next to the star) */
.feedrow.fsn .fago a.fchact{align-items:center;justify-content:center;box-sizing:border-box;padding:0 10px;border-radius:10px;background:rgba(79,125,255,.14);border:1px solid rgba(79,125,255,.4);line-height:1.1;text-decoration:none}.feedrow.fsn .fago a.fchact:hover{background:rgba(79,125,255,.26)}
@media(max-width:480px){.wpgrid>.wpchip{justify-content:flex-start;padding-left:12px}.wpgrid:not(.wpall)>.wpchip:nth-child(n+7){display:none!important}}
.wpmore{display:none}@media(max-width:480px){.wpmore{display:block;width:100%;min-height:40px;margin-top:8px}}   /* Wallet finder 390: 6 proven wallets then 'Show N more' (10 full-width rows pushed the paste hint ~480px down) */   /* Wallet finder 390: proven-wallet rows read left-aligned like every other list (content was centred) */
.ovhero .a{font-family:ui-monospace,monospace;font-size:12.5px;color:var(--mut)}   /* Overview TOP CALL: contract reads in the same muted mono as the call cards below (was bright sans) */
/* Biggest calls cards: '-> ATH' always on its own line in the multi-column grid, so cards do not wrap raggedly */
@media(min-width:481px){.hofath{display:block}}
/* Overview Bought together at 390: the inline Chart link keeps its 40px hit area without stretching the detail line to 40px (was double-spaced), and the wrapped voice-timing chip lines up with the detail text */
@media(max-width:480px){#ov .ovrow.rmrow .rmtxt a.dexmini{margin:-10px 0 -10px 2px;vertical-align:middle}#ov .ovrow.rmrow .ovid>.rmtag+.rmtag{margin-left:26px}}
/* On the radar now (desktop): the checks chip pins to the tile bottom so chips line up across a row (tiles with a 'name shared' note pushed theirs lower) */
#snwatch .wtile{display:flex;flex-direction:column}#snwatch .wtile>.tq{margin-top:auto;align-self:flex-start}#snwatch .wtile>:nth-last-child(3){margin-bottom:6px}
/* Radar Open positions / Recent calls at 390: the right-hand ran / entry-ATH value sits beside the token name instead of floating mid-row */
@media(max-width:480px){#snpos td,#snrec td{vertical-align:top}#snpos td:not(:first-child){padding-top:20px}#snrec td:not(:first-child){padding-top:12px}}

/* round 68: Top traders profit bar starts under the number (was flush with the cell edge, 14px left of the figure) */
#topout .barcell .pbar{left:14px;max-width:calc(100% - 28px)}@media(max-width:820px){#topout .barcell .pbar{left:6px;max-width:calc(100% - 12px)}}
/* round 68: Paid radar PAID count + star pinned to the card top so they line up across a row (drifted with chip/wrap height) */
.bchead .bpaid{padding-top:2px}
/* round 68: Paid radar 390 Chart/Buy pair is one fixed width so buttons line up card to card (shrank beside the longer 'rank its traders' link) */
@media(max-width:480px){#boostout .bfoot>.snacts{flex:0 0 176px;margin-left:auto;gap:6px}#boostout .bfoot{column-gap:6px}}   /* 390: "rank its traders" (94px) + Chart/Buy now fit one 280px row (was 286px, wrapped the link onto its own line) */
@media(min-width:821px){.feedrow.fsn .fsub:has(>.stopchip) .tq .tqw{display:none}}   /* round 69: rows with a red caution chip overflowed the fixed row (Chart ran 6-14px into the time column); '🛡 3/4' matches the 390 rule, full wording stays in the hover panel */
@media(min-width:1366px){.feedrow.fsn .fsub:has(>.stopchip) .tq .tqs:not(.tqf),.feedrow.fsn .fsub:has(>.stopchip) .tq .tqfx{display:none}.feedrow.fsn .fsub:has(>.stopchip~.stopchip){flex-wrap:wrap;row-gap:4px}.feedrow.fsn .fsub:has(>.stopchip~.stopchip)::after{content:"";order:3;flex:0 0 100%;height:0}.feedrow.fsn .fsub:has(>.stopchip~.stopchip)>.stopchip,.feedrow.fsn .fsub:has(>.stopchip~.stopchip)>span.fchsub{order:4;margin-left:0}.feedrow.fsn .fsub:has(>.stopchip~.stopchip)>.fdead{margin-left:0}.feedrow.fsn .fsub:has(>.stopchip~.stopchip)>.snbuy.fchsub{margin-left:auto}}   /* 1366+: a row with two state chips (fleet stopped out + no re-entry) pushed Copy trade/Chart over the time column - its chips now form a 2nd line under the trajectory and the buttons keep their column; rows with a caution chip also drop the trust chip suffix (full wording in the hover panel) */
@media(min-width:1100px){#snduo:has(#snbest>.wtile:only-child):has(#mcwrap.few){display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);column-gap:32px;align-items:start}#snduo:has(#snbest>.wtile:only-child):has(#mcwrap.few) #mcwrap.few{flex-wrap:wrap}}
@media(min-width:1100px){#snduo:has(#snbest>.wtile:only-child):has(#mcwrap.few) .snduoc>.sub{flex-wrap:wrap;row-gap:4px}#snduo:has(#snbest>.wtile:only-child):has(#mcwrap.few) .snduoc>.sub::after{min-width:0}#snduo:has(#snbest>.wtile:only-child):has(#mcwrap.few) .snduoc>.sub>.badge{order:3;flex:1 1 100%;border:0!important;background:none;padding:0;border-radius:0;white-space:normal;line-height:1.4;font-size:11px;letter-spacing:.2px}}   /* side-by-side columns are ~560px: heading stays one line, the note drops under it (same as the 481-1040 rule) */   /* a lone Best calls card + 1-2 Most copied cards share one row instead of two mostly-empty rows */
@media(min-width:821px){#copytop .cfol{min-height:32px;padding:0 14px;font-size:12px}#copytop th:last-child,#copytop td:last-child{width:1%;white-space:nowrap}#copytop th:nth-child(3),#copytop td:nth-child(3){width:170px}#copytop th:nth-child(4),#copytop td:nth-child(4),#copytop th:nth-child(5),#copytop td:nth-child(5){width:110px}}   /* Copy trading: Follow is the same green action as Top traders' Copy; number columns fixed so no blank gap trails WIN % */

.pstok .ovpanel .psfdv{font-size:12px;line-height:1.45;margin-top:6px;overflow-wrap:anywhere}
@media(max-width:480px){#upgrid .bcard{gap:8px}#upgrid .bcard>.bstats{margin-top:4px!important}}
/* 481-820 tablet: MoonRadar at 11px (61px) was clipped by the 56px rail; lone last Overview mini best-call card spans the row like at 390; 5 stat tiles on one row instead of 4 + a widowed SNIFFING NOW */
@media(min-width:481px) and (max-width:820px){.app:not(.exp) .brand b{font-size:9px;letter-spacing:-.2px}.ovbest .wtile:last-child:nth-child(odd){grid-column:1/-1}}
@media(min-width:641px) and (max-width:820px){#ov .ovtop .cards:has(>.card:nth-child(5):last-child){grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}#ov .ovtop .cards:has(>.card:nth-child(5):last-child)>.card{padding-left:12px;padding-right:12px}}

/* tablet: tables scrolling sideways inside #topout/#snpos/#snrec/#out get a right-edge fade (rows only; the filter chips above --xt stay solid) until scrolled to the end - toggled by xFade() */
.xmore{-webkit-mask-image:linear-gradient(#000,#000),linear-gradient(90deg,#000 calc(100% - 44px),rgba(0,0,0,.15));-webkit-mask-size:100% var(--xt,0px),100% 100%;-webkit-mask-repeat:no-repeat;mask-image:linear-gradient(#000,#000),linear-gradient(90deg,#000 calc(100% - 44px),rgba(0,0,0,.15));mask-size:100% var(--xt,0px),100% 100%;mask-repeat:no-repeat}
/* wide desktop: the top bar lines up with the centered 1600px content column (was flush left, bell ~330px past the content at 2560), the search box takes some of the spare width, and the alerts panel opens under the bell */
@media(min-width:1700px){.top{padding-left:max(26px,calc((100% - 1600px)/2));padding-right:max(26px,calc((100% - 1600px)/2))}.top .topsrch{flex:1 1 250px;max-width:400px}
 .app.exp .alertpanel{right:max(24px,calc((100vw - 216px - 1600px)/2))}.app:not(.exp) .alertpanel{right:max(24px,calc((100vw - 76px - 1600px)/2))}}
@media(min-width:1500px){section[data-view=docs]{max-width:1080px;margin-inline:auto}}   /* wide desktop: the Docs TOC + 70ch reading column sit centered in the content area instead of leaving ~800px empty on the right */
@media(max-width:480px){.ovpanel>.psu:has(>div>span){display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center!important;column-gap:12px;row-gap:8px}.ovpanel>.psu:has(>div>span)>div{display:contents}.ovpanel>.psu:has(>div>span)>div>b{margin:0}.ovpanel>.psu:has(>div>span)>div>span{grid-column:1/-1}}   /* Presale Revenue / Stay safe cards at 390: icon inline with the title (matches Follow the launch), body text below at the full card width (was ~220px beside a 44px icon column) */
/* round 81: Rotation rows the engine marks 'no Buy' show Chart only (was a greyed Buy beside the 'no Buy' label); keep Chart in the same column as the other rows */
@media(min-width:1041px){.rotact .snacts{min-width:110px;justify-content:flex-start}}
/* round 81: Scanner desktop - checkbox + rank columns were 64px + 69px of mostly empty space before the wallet */
@media(min-width:821px){#out th:first-child,#out td.ckc{width:34px;padding-right:0}#out th:nth-child(2),#out td:nth-child(2){width:36px;padding-left:4px;padding-right:4px}}

/* round 82: Top traders filters collapse at <=480 (topFWrap); summary row hidden on wider screens where the details is always open */
.topfd>summary{display:none}
@media(max-width:480px){.topfd{margin:0 0 12px}.topfd>summary{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 14px;border:1px solid var(--line,rgba(255,255,255,.1));border-radius:12px;background:rgba(255,255,255,.03);cursor:pointer;list-style:none;font-size:13px}.topfd>summary::-webkit-details-marker{display:none}.topfd>summary::after{content:'';margin-left:auto;flex:0 0 auto;width:7px;height:7px;border-right:2px solid var(--mut);border-bottom:2px solid var(--mut);transform:rotate(45deg) translateY(-2px);transition:transform .15s}.topfd[open]>summary::after{transform:rotate(-135deg) translateY(-2px)}.topfdl{font-weight:600;flex:0 0 auto}.topfds{color:var(--mut);font-size:12px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topfd[open]>summary{margin-bottom:6px}}
/* round 82: Live feed trust chip reads the same short '🛡 3/4' on every row (was '3/4 checks' on some, '3/4' beside a status chip on others); full wording stays in the tap/hover panel */
.feedrow.fsn .tq .tqw{display:none}

#upgrid .bcard>.upchg{margin-top:auto!important}#upgrid .bcard>.upchg~*:last-child{margin-top:0}   /* Trending up: 1h/6h/24h row sits in the same slot just above Chart/Buy on every card, even when a card has no 'why' line */
@media(max-width:480px){.trec>span{white-space:nowrap}}
.rmrow .ovid>a.dexmini{margin:-10px 0 -10px auto}
@media(max-width:480px){.rcchip{position:relative}.rcchip::before{content:'';position:absolute;inset:-4px 0}}   /* Trending 'Radar call' chip: 34px -> 42px tap area at 390 */
@media(max-width:480px){.stopchip.rcchip{display:inline-block;width:auto;max-width:100%;white-space:normal;line-height:1.4;text-align:left;padding-top:4px;padding-bottom:4px}}   /* 390: the red 'exited -100%' Radar call chip wraps like the grey one instead of running past the card edge */
@media(max-width:480px){#alertpanel>div:first-child a{display:inline-flex;align-items:center;min-height:40px;padding:0 4px}}   /* 390: alerts header "sound on" / "enable push" links were 19px tall tap targets */
/* round 93: at 390 the Overview Biggest calls heading wraps to 3 lines and its trailing rule shrank to a 26px sliver after 'see all' - drop it there */
@media(max-width:480px){.rdhero .ovbeststrip>.sub:first-child::after{content:none}}
@media(min-width:821px){#snrec .snacts>.snbuy,#snrec .snacts>span.mut{min-width:89px;box-sizing:border-box}}   /* Recent calls: grey (bordered) and green Copy trade are the same width so every row's Chart lines up */

/* Overview Bought together: Chart stays on the symbol line at every width; room-timing tags get their own line, aligned with the description */
#ov .ovrow.rmrow .ovid>a.dexmini{order:1}
#ov .ovrow.rmrow .ovid:has(>b~.rmtag){row-gap:0!important}
#ov .ovrow.rmrow .ovid:has(>b~.rmtag)>b~*:not(a.dexmini){order:2;margin-top:6px}
#ov .ovrow.rmrow .ovid:has(>b~.rmtag)::after{content:'';flex-basis:100%;order:1;height:0}
#ov .ovrow.rmrow .ovid:has(>b~.rmtag)>b+*:not(a.dexmini),#ov .ovrow.rmrow .ovid>.rmtag+.rmtag{margin-left:36px}
@media(min-width:481px){#ov .ovrow.rmrow .ovid>.rmtag+.rmtag{margin-left:0}}

/* round 97: row Follow only pre-fills the form, so it reads as the outline twin of the purple form Follow (one Follow style per view) */
#copytop .snbuy.cfol{background:rgba(79,125,255,.12);border:1px solid rgba(109,92,255,.55);color:#c9d2ff;box-shadow:none}
#copytop .snbuy.cfol:hover{background:linear-gradient(135deg,#4f7dff,#6d5cff);border-color:transparent;color:#fff}
/* round 97: 390 feed dead rows (no Copy trade, no star) keep Chart in the bottom slot like live rows */
@media(max-width:480px){.feedrow.fsn .fago:has(.wlsp){align-self:stretch}.feedrow.fsn .fago:has(.wlsp) .fchact{margin-top:auto}}
/* round 98: header link never touches its title; 390 wrapped trust chip reads as a tag, not a broken pill; filter drawer no longer crowds its caption */
.ovpanel h3{column-gap:12px}
@media(max-width:480px){.ovpanel h3{column-gap:8px;letter-spacing:.4px}.ovpanel h3>a{margin-left:auto}.ovbest .wtile .tq:has(.tqs){border-radius:10px;padding:4px 9px;line-height:1.35}.topfd+.topcnt{margin-top:0!important}}
@media(min-width:821px) and (max-width:1365px){.feedrow .fsub{flex-wrap:wrap;row-gap:4px}.feedrow .fsub::after{content:"";order:1;flex:0 0 100%;height:0}.feedrow .fsub::before{content:"";order:2;flex:1 1 0}.feedrow .fsub>.fchsub{margin-left:0}.feedrow .fsub>span.fchsub{order:3}.feedrow.fsn .fsub>.snbuy.fchsub{order:4}.feedrow.fsn .fsub>.dexmini.fchsub{order:5}}   /* 821-1365 (tablet/laptop): the trust chip + Copy trade/Chart ran past the row and overlapped the time/star (page scrolled to 1088px at 1024) - they now sit on a right-aligned 2nd line */

/* tablets (481-1040): section headers drop their description pill to a caption line, so "Biggest calls · N ran 5x+ · see all" stays on one line instead of 3 ragged columns */
@media(min-width:481px) and (max-width:1040px){.sub{flex-wrap:wrap;row-gap:4px}.sub::after{min-width:0}.sub>.badge{order:3;flex:1 1 100%;border:0!important;background:none;padding:0;border-radius:0;white-space:normal;line-height:1.4;font-size:11px;letter-spacing:.2px}}
#snipticker .tkl{display:none}@media(min-width:1700px){#snipticker .tkl{display:inline}}   /* " calls" only where the header has room; narrower widths keep the market % chips and the hover title carries it */
@media(min-width:1041px){.top .topsrch{margin-left:auto}.top .bellbtn{margin-left:0}}   /* desktop: search, Connect wallet and the bell sit together on the right instead of the bell floating alone */

.wlempty .mbemptyacts{margin-left:auto;flex:0 0 auto;display:flex;align-items:center;gap:14px}.wlempty .mbemptyacts .mbemptybtn{margin-left:0}.mbemptylnk{font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;min-height:40px;display:inline-flex;align-items:center}.mbemptylnk:hover{text-decoration:underline}
@media(max-width:480px){.wlempty:has(.mbemptyacts){flex-wrap:wrap}.wlempty .mbemptyacts{margin-left:0;width:100%;flex-direction:column;align-items:stretch;gap:6px}.mbemptylnk{justify-content:center}}   /* My bots empty state: visitors get a real next step (the Radar's live bots); the owner-only connect button is secondary, not the page's loudest element */
@media(min-width:481px) and (max-width:1040px){.top .topsrchbtn{margin-left:auto}.top .connwrap,.top .bellbtn{margin-left:0}}   /* tablet: search, Connect wallet and the bell group on the right (at 768 the bell floated alone ~70px past Connect) */
@media(max-width:420px){#snwatch{grid-template-columns:minmax(0,1fr)}}   /* phone: watch cards were ~150px wide in 2 columns, wrapping dev/twin lines into 3-4 rows - one full-width card reads cleanly */
.wlretry{cursor:pointer;display:inline-flex;align-items:center;min-height:40px;padding:0 6px;font-weight:600}   /* the watchlist "retry" fallback was a text-height tap target */

/* alerts panel header actions: real buttons, link-styled, 40px tap area on touch widths */
.alnk.alnk{background:none;border:0;box-shadow:none;min-width:0;width:auto;padding:0;font:inherit;font-size:12px;color:var(--acc);cursor:pointer}.alnk:hover{text-decoration:underline}
@media (max-width:768px){.alnk.alnk{min-height:40px;padding:0 4px;display:inline-flex;align-items:center}}
/* Overview Top call: middle facts column fills the gap between name and journey (desktop only; 390 keeps its stacked card) */
.ovtcm{display:flex;gap:28px;align-self:center;margin:0 auto;padding:10px 22px;border-left:1px solid var(--line);border-right:1px solid var(--line)}
.ovtcmk{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--mut,#8b93a7)}
.ovtcmv{font-size:15px;font-weight:700;margin-top:4px;white-space:nowrap}
@media(max-width:1100px){.ovtcm{display:none}}

/* r111: Presale details - right column (Stay safe + Follow the launch) stretches to the details table so both columns end on one baseline */
.psside{display:grid;gap:12px;grid-template-rows:auto 1fr}@media(max-width:899px){.psside{grid-template-rows:auto}}
/* r111: collapsed rail on tablets (481-1199) printed icons only - hover tooltips are invisible on touch, so show the same short labels the 390 rail uses */
@media(min-width:481px) and (max-width:1199px){.app:not(.exp) .nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:44px}.app:not(.exp) .nav a svg{width:19px;height:19px}.app:not(.exp) .nav a::after{content:attr(data-short);font-size:9px;font-weight:700;letter-spacing:.3px;line-height:1;text-transform:uppercase;white-space:nowrap}}

.sqrow b{flex-shrink:0}   /* search suggestions: the coin name keeps its width (ROBINPEPE showed as ROBINP...) and the muted source line truncates instead */
.dexmbox>.trsafety{margin:8px 14px}   /* trade modal contract strip sat flush against the modal edges at desktop */
@media(min-width:481px) and (max-width:1100px){#tokhdr .cards:has(>.card:nth-child(5):last-child){grid-template-columns:repeat(6,minmax(0,1fr))}#tokhdr .cards:has(>.card:nth-child(5):last-child)>.card{grid-column:span 2}#tokhdr .cards:has(>.card:nth-child(5):last-child)>.card:nth-child(n+4){grid-column:span 3}}   /* scanner token tiles at tablet/1024: 3 + 2 instead of 4 + an orphaned 24h vol */
@media(min-width:481px){.snscope>span:last-child{flex:1 1 240px;min-width:0}}   /* Radar scope line: ALL CHAINS pill stays beside its caption instead of wrapping onto its own line */
@media(min-width:481px) and (max-width:820px){.feedrow .fago:has(.wlstar,.wlsp){display:flex;align-items:center;gap:8px}}   /* 768 feed: time no longer touches the star button */
.topwr{display:contents}@media(min-width:481px) and (max-width:1023px){.topwr{display:inline-flex;flex-wrap:nowrap;align-items:center;gap:6px}.topwr>.topfl{margin-left:0!important}}   /* tablet Top traders: WIN RATE + its 3 chips wrap as one unit instead of widowing '>70%' on its own row */
#hof{container:hof/inline-size}@media(min-width:481px) and (max-width:820px){@container hof (min-width:590px){#hof .hofft,#hof .hofdl,#hof .hofmeta>.shbtn{grid-column:1}#hof .hofmeta>.shbtn{grid-row:2;justify-self:end;margin-top:0}#hof .hofdl{padding-right:92px}}}   /* Biggest calls, tiles >=290px wide: Share on X sits at the right end of the Chart / Copy trade (or dead label) row instead of a 3rd row of its own; narrow 6-up desktop tiles keep the stacked layout. Container sits on #hof (2-col tablet: #hof >=590px = tiles >=290px), NOT on the tile - containment on a tile turns off its subgrid and every Share on X / action row fell out of line */
/* 481-820 (tablet): Top traders fits without sideways scroll - found-via lives in its own column, chain/Copy/track drop under the wallet like >=821, BY TOKEN spark hidden; Copy/track get 40px tap areas without growing the row */
@media(min-width:481px) and (max-width:820px){#topout .wcell .vwrap{display:none}#topout .tmeta{display:block;margin-top:2px;padding-left:34px;white-space:nowrap}#topout th:nth-child(7),#topout td:nth-child(7){display:none}#topout th,#topout td{padding-left:6px;padding-right:6px}#topout td.w{white-space:normal}#topout .cpl{position:relative}#topout .cpl::before{content:'';position:absolute;inset:-10px 0}}
/* 481-1199: Recent calls fit (821+) or scroll less (tablet) without clipping Copy trade - entry / -> ATH and the honeypot note may wrap (each half of entry / ATH stays whole); the Why pill stays one line */
@media(min-width:481px) and (max-width:1199px){#snrec td:first-child{white-space:normal;min-width:168px}#snrec th,#snrec td{padding-left:6px;padding-right:6px}#snrec .whyp>summary{white-space:nowrap;gap:4px;padding:2px 8px;font-size:11px}#snrec td:nth-child(3) .athl{white-space:normal!important}#snrec td:nth-child(3) .athv{white-space:nowrap;display:inline-block}#snrec td:nth-child(3){white-space:normal;min-width:120px}}
/* 481-1023: the MoonRadar hero tables fit the tablet width instead of hiding Chart / Copy trade behind a sideways scroll - Recent calls drops the 24h market sparkline (not measured from the call) and folds WHEN under entry / ATH; below 900 both tables stack their trade buttons and Open positions drops AGE */
@media(min-width:481px) and (max-width:1023px){#snrec th:nth-child(5),#snrec td:nth-child(5),#snrec th:nth-child(6),#snrec td:nth-child(6){display:none}#snrec td:nth-child(3) .snmago{display:block;margin-top:2px}#snrec table{width:100%}}
@media(min-width:481px) and (max-width:899px){#snpos th:nth-child(5),#snpos td:nth-child(5){display:none}#snpos table{width:100%}#snpos td:last-child .snacts,#snrec td:last-child .snacts{flex-direction:column;align-items:stretch;flex-wrap:nowrap}#snpos td:last-child .snacts>*,#snrec td:last-child .snacts>*{justify-content:center;margin:0;min-height:32px;box-sizing:border-box}#snpos table,#snrec table{min-width:0}#snrec td:last-child .snacts>.shbtn{min-height:32px;display:inline-flex;align-items:center}}
@media(min-width:481px) and (max-width:640px){#snpos th:nth-child(2),#snpos td:nth-child(2),#snpos th:nth-child(4),#snpos td:nth-child(4),#snrec th:nth-child(2),#snrec td:nth-child(2){display:none}}   /* narrow tablet: strategy band + liquidity go (as at 390) so the trade buttons stay on screen */
/* 481-820 (tablet): Token scanner results fit without sideways scroll - bought / swaps / held fold under the wallet (the 390 meta line, minus the multiple, which keeps its column); below 641 the entry-path spark goes too */
@media(min-width:481px) and (max-width:820px){#out table{min-width:0;width:100%}#out th:nth-child(5),#out td:nth-child(5),#out th:nth-child(8),#out td:nth-child(8),#out th:nth-child(9),#out td:nth-child(9){display:none}#out .wmob{display:flex;flex-wrap:wrap;column-gap:10px;font-size:11px;line-height:1.35;margin-top:2px;white-space:normal}#out .wmob .wsep,#out .wmob>span:nth-of-type(4){display:none}#out th,#out td{padding-left:6px;padding-right:6px}#out td.w{white-space:normal}}
@media(min-width:481px) and (max-width:640px){#out th:nth-child(7),#out td:nth-child(7){display:none}}
/* 481-640: Top traders drops WON (the win % stays) and FOUND VIA so the table fits the narrow tablet instead of scrolling ~160px */
@media(min-width:481px) and (max-width:640px){#topout table{min-width:0;width:100%}#topout th:nth-child(5),#topout td:nth-child(5),#topout th:nth-child(8),#topout td:nth-child(8){display:none}#topout .tmeta{white-space:normal;padding-left:0}#topout .wcell{flex-wrap:wrap;row-gap:2px}}
@media(max-width:480px){.feedrow.fsn .fcv{display:contents}.feedrow.fsn .fverb{flex:0 1 auto}}   /* Live feed 390: the chain pill stays beside the coin name on every card; only the "exited · Micro" status wraps under it (was: pill + status dropped to line 2 together on cards with Copy trade, so headers differed card to card) */
@media(min-width:481px){#copytop th:first-child,#copytop td:first-child{width:1%;white-space:nowrap;text-align:center;padding-left:16px;padding-right:10px}}   /* Copy trading top wallets: rank column hugs its badge (was ~150px wide at 1920 with the rank floating mid-gutter) */
@media(min-width:1500px){section[data-view=docs]{width:fit-content;max-width:100%}}   /* Docs wide desktop: centre the TOC + 70ch reading column as one block (the 1080px box left ~280px empty right of the text) */
@media(min-width:1600px){.wpgrid{grid-template-columns:repeat(5,minmax(0,1fr))}}   /* Wallet finder proven wallets: 10 chips = two full rows of 5 at 1920 (auto-fill gave 7 + 3) */
/* 481-640 header: the chain name goes (the market strip already names the coins, as at 390) and 481-540 also drops the smart-money count (as at 821-1040), so the alerts bell stays on the Connect wallet row instead of wrapping alone */
@media(min-width:481px) and (max-width:640px){.top>.tick:has(#chainname){display:none}}
@media(min-width:481px) and (max-width:540px){.top>.tick:has(#tkn){display:none}}
/* 481-560 Radar tables fit without a sideways scroll: Open positions drops DEPLOYER and Recent calls folds RAN next to the symbol (both exactly as the 390 cards do); 641-760 Open positions drops LIQ (was 46px over at 700) */
@media(min-width:481px) and (max-width:560px){#snpos th:nth-child(6),#snpos td:nth-child(6){display:none}#snrec th:nth-child(4),#snrec td:nth-child(4){display:none}#snrec .snpkm{display:inline;white-space:nowrap}#snrec td:first-child{min-width:0}#snrec td:nth-child(3){min-width:92px}#snrec th,#snrec td{padding-left:4px;padding-right:4px}}
@media(min-width:641px) and (max-width:760px){#snpos th:nth-child(4),#snpos td:nth-child(4){display:none}}

/* round 127: keyboard focus ring - the global button/input reset drops the outline, so tab stops were invisible (mouse clicks do not trigger :focus-visible) */
button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
#nav a:focus-visible{outline-offset:-2px}
.wpchip .wppnl{margin-left:auto;padding-left:10px;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}   /* Wallet finder proven wallets: realized profit right-aligned on each chip (the chips were bare addresses with nothing to choose between) */
@media(min-width:481px){.wpgrid{gap:6px}.wpgrid>.wpchip{padding-left:7px;padding-right:8px}.wpgrid>.wpchip .tier{margin-left:4px!important}.wpchip .wppnl{padding-left:5px;font-size:11.5px}}   /* desktop: address + tier + profit fit the 220px grid column (5-up at 1440) without clipping the profit */
.wpchip .wpnm{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wpchip>:not(.wpnm){flex-shrink:0}   /* a long ENS / curated name truncates instead of pushing the profit past the chip edge */
@media(min-width:481px){.wpgrid>.wpchip .ava{margin-right:6px!important}.wpgrid>.wpchip .tier{padding-left:4px!important;padding-right:4px!important}.wpgrid>.wpchip .wpnm{font-size:12px}.wpgrid>.wpchip .wppnl{padding-left:4px}}   /* 220px column: a short address + tier + profit fit whole; only long names ellipsize */
/* X Radar untrack ✕ and wallet-picker close: real buttons, glyph-sized but with a >=40px hit area */
button.xun,button.wpx{background:none;border:0;box-shadow:none;padding:0;min-width:0;font-weight:700;overflow:visible;color:var(--red);font-size:12px;line-height:1;margin-left:4px;border-radius:6px}
button.wpx{color:var(--mut);font-size:15px;width:40px;height:40px;margin:-10px -10px -10px 0}
button.wpx:hover{color:var(--red);filter:none}
button.xun::after{content:'';background:none;transform:none;transition:none;position:absolute;inset:-14px -15px}
button.wpx::after{display:none}
@media(max-width:820px){.app:not(.exp) .side{padding-top:8px;padding-bottom:8px}.app:not(.exp) .burger{margin-bottom:4px}.app:not(.exp) .side .nav{margin-top:2px;gap:1px}}   /* collapsed icon rail fits all 17 links (Docs was half cut) at 390x844; links stay 40px */
@media(min-width:821px){.feedrow.fsn .fsub>.tq,.feedrow.fsn .fsub>.snbuy.fchsub,.feedrow.fsn .fsub>.dexmini.fchsub{min-height:24px;box-sizing:border-box}.feedrow.fsn .fsub>.snbuy.fchsub{display:inline-flex;align-items:center}}   /* round 134: feed row chips/actions were 19px beside a 28px star; now 24px like the Radar's trust chip */
.snacts>span.mut[title^="MoonRadar"]{display:inline-flex;align-items:center;align-self:stretch!important;box-sizing:border-box;padding:0 10px;border:1px dashed rgba(255,94,120,.4);border-radius:10px;color:#ff8a9c;white-space:nowrap;cursor:help}   /* round 134: 'unsellable'/'flagged' in place of Buy read as stray grey text; now a caution pill as tall as the Chart button beside it */
@media(min-width:481px){.snmcband .chip,#snfilter .snfchips .chip,#snfilter button.ghost:not(.snftog),#hofshare .hofshare,.hofshare{min-height:32px;display:inline-flex;align-items:center;box-sizing:border-box}#snfilter .snfchips .chip{padding-top:0;padding-bottom:0;font-size:12.5px}#snbest .tq,#snpos .tq,#snrec .tq,#snwatch .tq,.whyp>summary{min-height:26px;box-sizing:border-box}}   /* round 135: MoonRadar controls on a 2-size scale - filters/Apply/Share our track record 32px (were 28/40/30), row chips + Why pill 26px like Chart/Copy trade (were 24/28) */
.wchbar{gap:6px;flex-wrap:wrap;margin-bottom:10px;background:none;border:0;padding:0;box-shadow:none}.wchbar .chip{min-height:40px;display:inline-flex;align-items:center;box-sizing:border-box}

/* followed-wallet buy toast (bottom-right; above content + alert panel, below modals) */
#toasts{position:fixed;right:20px;bottom:20px;z-index:50;display:flex;flex-direction:column;gap:8px;width:340px;max-width:calc(100vw - 24px);pointer-events:none}
.toast{pointer-events:auto;display:flex;align-items:center;gap:10px;padding:10px 10px 10px 12px;border-radius:14px;background:linear-gradient(180deg,rgba(26,32,46,.99),rgba(14,18,28,.99));border:1px solid rgba(79,125,255,.45);box-shadow:0 18px 48px rgba(0,0,0,.6);animation:toastin .18s ease-out}
.toast .ic{flex:0 0 auto;display:flex}.toast .tx{flex:1;min-width:0;cursor:pointer}.toast .tt{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toast .sub{font-size:11px;color:var(--mut);margin:2px 0 0;display:block;text-transform:none;letter-spacing:0;font-weight:400;padding:0}.toast .sub::after{content:none}
.toast .tbuy{flex:0 0 auto;min-height:40px;padding:0 16px;border-radius:10px;border:0;background:var(--acc);color:#fff;font-weight:700;font-size:13px;cursor:pointer}
.toast .tx2{flex:0 0 auto;width:40px;height:40px;border-radius:10px;border:1px solid var(--line);background:transparent;color:var(--mut);font-size:14px;cursor:pointer}
@keyframes toastin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:480px){#toasts{right:12px;left:12px;bottom:12px;width:auto}}

/* shared connect-wallet gate (Refer, My coins) */
.cgate{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:28px 22px}
.cgateic{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;color:var(--acc);background:rgba(79,125,255,.12);border:1px solid rgba(79,125,255,.3);margin-bottom:4px}
.cgatet{font-size:16px;font-weight:700;color:var(--txt)}
.cgatesub{font-size:13px;color:var(--mut);max-width:520px;line-height:1.55}
.cgate .trkbtn{margin-top:8px;min-width:160px}
@media(max-width:480px){.cgate{padding:22px 16px}.cgate .trkbtn{width:100%;min-height:44px}}
/* Copy trading: Follow + Pick CTA match the 40px inputs; board link reads as a link, not a footnote */
@media(min-width:481px){#cpgo,.cpcta>.btn40{min-height:40px}}
.cpcta>.cpall{font-size:13px;cursor:pointer}.cpcta>.cpall:hover{color:var(--txt)}

/* wallet finder: SOL has no wallet profiles yet - chip reads as not-yet, still tappable for the explanation */
.chip.wchsoon:not(.on){color:var(--mut)}
@media(max-width:480px){.chip.wchsoon .soonpill{display:none}}

/* r141: Top traders slow-load note; Rotation rows with Chart only sit flush right beside the star (no empty Buy-sized gap) */
.topslow{font-size:13px;margin:0 0 8px}
@media(min-width:1041px){.rotact .snacts:not(:has(button+button)){justify-content:flex-end}}
#hof .hofft>.hofdl2{display:block;padding:0 0 6px}   /* still-trading dead call: label stacks above its Chart button instead of sharing row 2 side by side */
@media(max-width:480px){.ovagt>div:last-child:nth-child(odd) .agsp{display:none}}   /* 390: a lone last agent tile (Solana) spans the row, so it drops the blank chain spacer that only exists to align tiles side by side */
/* gated (paid tier) variant of the shared connect-wallet gate - X Radar Pro+ */
.cgate.cgold .cgateic{color:var(--gold);background:rgba(245,182,66,.12);border-color:rgba(245,182,66,.35)}
/* 390 Open positions: the checks chip wrapped on some rows (entry #2) and kept its 6px left margin - give it its own line on every row so all chips share the row's left edge */
@media(max-width:480px){#snpos td .tq{display:flex;width:fit-content;margin:6px 0 2px}}

/* dead best-call mini card: the "no longer trading" note fills the actions zone as a quiet stamp instead of leaving a blank gap beside its neighbour's Chart/Buy */
.ovbest .ovbacts.ovbdd{flex:1 1 auto;justify-content:center;align-items:center;text-align:center;margin-top:10px;padding:8px;min-height:40px;border:1px dashed rgba(255,255,255,.09);border-radius:10px;background:rgba(255,255,255,.015)}
/* presale 'Follow the launch' stretches to the details table height at >=900 - anchor its links row to the card bottom so the stretch reads as layout, not an empty box */
@media(min-width:900px){.psside>.ovpanel:last-child{display:flex;flex-direction:column}.psside>.ovpanel:last-child>.pslinks{margin-top:auto!important;padding-top:12px}}
@media(min-width:901px){.ovgrid{align-items:stretch}}   /* Top smart money stretches to its neighbour; its flex-column CTA (margin-top:auto) sits on the shared row bottom */
/* MoonRadar section jump chips: one row under the stat cards, scrolls sideways on mobile instead of wrapping */
.snjump{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:2px 0 16px;padding-bottom:2px;min-height:40px}.snjump::-webkit-scrollbar{display:none}
@media(max-width:480px){.snjump{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 32px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 32px),transparent);padding-right:24px}.snjump.atend{-webkit-mask-image:none;mask-image:none}}   /* 390: right-edge fade says more chips scroll in; dropped once scrolled to the end */
.snjump .chip{flex:0 0 auto;white-space:nowrap;min-height:40px;display:inline-flex;align-items:center;box-sizing:border-box;padding:0 13px;font-size:12.5px;color:var(--mut);font-family:inherit}.snjump .chip:hover{color:var(--txt)}.snjump .chip[hidden]{display:none}

.snacts:has(>.snbwhy){flex-wrap:wrap!important;row-gap:3px}.snacts>.snbwhy{order:99;flex:1 0 100%;min-width:0;max-width:100%;font-size:11px;line-height:14px;color:var(--mut,#8b93a7);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}   /* grey Buy: its reason is visible on touch too (full text stays in the button title) */
.sub.upsubtf{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:10px}.sub.upsubtf>.uptf{font-weight:600;text-transform:none;letter-spacing:0}   /* Trending up now, single chain: Sort chips inline in the header (no empty chip bar) */
.snacts>.snbwhy{min-height:0!important;height:auto!important}   /* the 390 table rule '.snacts>*{min-height:40px}' must not stretch the reason line */
.snacts:has(>.snbwhy){min-width:0;max-width:100%}   /* the nowrap reason must not widen the action row past its card (MB4U mini card clipped its Buy) */
.sub.upsubtf::after{order:1}.sub.upsubtf>.uptf{order:2;margin-left:0}@media(min-width:481px){.sub.upsubtf .chip{min-height:30px;padding-top:0;padding-bottom:0}}@media(max-width:1040px){.sub.upsubtf>.uptf{order:4;flex-basis:100%}}   /* Trending header: title, hint, rule, then Sort chips at the right; on narrow screens the chips take their own row under the hint */
.snacts>.snbwhy{flex:1 0 100%!important;order:99!important;align-self:auto}   /* beats '#hof .hofacts .snacts>*{flex:1 1 0}' at 390, which pulled the reason onto the button row */
@media(min-width:481px){.sub.upsubtf .chip{display:inline-flex;align-items:center;justify-content:center}}
/* trade modal: MoonRadar call trust row (shield chip + why), sits under the contract strip */
.dexmbox>.trcall{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0 14px 8px;font-size:12px;line-height:1.4}
.dexmbox>.trcall[hidden]{display:none}
.trcall .trwhy{color:var(--mut);min-width:0;overflow-wrap:anywhere}
@media(max-width:640px){.trcall .tq{min-height:40px}}
/* buy mode at desktop: hug the swap card, chart mode keeps the full 1000px box */
.dexmbox:has(#trchart[hidden]){width:min(560px,96vw)}
/* scanner: auto example marker in the ticker tile + one-line note under the tiles */
.card .n .expill{font-size:10px;vertical-align:middle;padding:1px 7px;font-weight:600;letter-spacing:0}
.exnote{font-size:12px;margin:6px 2px 2px;line-height:1.4}
/* Biggest calls / Hall of fame cards: the grey-Buy reason may wrap to 2 lines (table rows stay single-line) */
#hof .snacts>.snbwhy{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:14px;text-overflow:clip}
.ovbacts .snacts>.snbwhy{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:14px;text-overflow:clip}   /* Overview Biggest calls: the grey Buy's reason wraps to 2 lines like the Radar #hof card instead of an ellipsis */

.fmuwhy{font-size:11px;white-space:nowrap}   /* visible reason for a grey Copy trade in the Live feed */
@media(max-width:480px){.fsn .fsub .fmuwhy{flex:1 1 100%;order:5;line-height:1.2;white-space:normal}}
@media(min-width:821px){.fsn .fsub .fmuwhy{display:none}}   /* 1440 row is one line already; the button title carries the reason */
/* r167 Paid radar grey Buy: the reason is a full-width last line of .bfoot, not a width-setting child of .snacts,
   so link left + Chart/Buy right stay on one row like the green-Buy neighbours */
#boostout .bfoot>.snacts:has(>.snbwhy){display:contents}
#boostout .bfoot>.snacts:has(>.snbwhy)>:first-child{margin-left:auto}
#boostout .bfoot>.snacts:has(>.snbwhy)>button{flex:0 0 auto}
#boostout .bfoot>.snacts>.snbwhy{order:99;flex:1 0 100%!important;width:0;text-align:left;margin-top:-3px}
#boostout .bchead .tq{margin-top:4px}
@media(max-width:480px){
 #boostout .bfoot>.snacts:has(>.snbwhy)>button{flex:0 0 85px;justify-content:center;text-align:center}
 #boostout .bfoot>.snacts>.snbwhy{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:14px;text-overflow:clip}
}

/* Overview 'Paying to be seen': coin name -> scanner, Chart at row end (2026-09-28) */
.ovpd .ovpdnm{color:var(--txt);text-decoration:none}.ovpd .ovpdnm:hover b{text-decoration:underline}
@media(max-width:480px){.ovpd .ovpdnm{display:inline-block;padding:12px 0;margin:-12px 0}}   /* 390: Paying to be seen coin name 15px -> 39px+ tap box, same trick as .hofl; text does not move */
.ovpdflag{white-space:nowrap}@media(max-width:480px){.ovpdflag{white-space:normal;max-width:100%}}   /* 390: long 'Radar flagged: deployer rug/honeypot...' chip wraps inside the Paying to be seen row */
.ovpd .ovpdr{display:inline-flex;align-items:center;gap:10px;flex-shrink:0;white-space:nowrap}
#hof .hofchip .tq{flex-wrap:wrap;white-space:normal;max-width:100%;row-gap:0;text-align:left}#hof .hofchip .tq .tqs{flex-basis:100%;font-size:11px}#hof .hofchip .tq .tqsep,#hof .hofchip .tq .tqq{display:none}#hof .hofchip .tq:has(.tqs){border-radius:10px}   /* Biggest calls trust chip: wraps inside narrow tiles instead of overflowing */
.clchip.clnone{visibility:hidden}   /* Bought together: only room rows carry the echo chip; the empty slot keeps coin names aligned */
/* r-wl Overview Watchlist: Chart/Buy footer, same layout as the Paid radar cards */
#ovwl .bcard{display:flex;flex-direction:column}#ovwl .bfoot{margin-top:auto;padding-top:8px}
#ovwl .bfoot>.snacts:has(>.snbwhy){display:contents}
#ovwl .bfoot>.snacts:has(>.snbwhy)>:first-child{margin-left:auto}
#ovwl .bfoot>.snacts>.snbwhy{order:99;flex:1 0 100%!important;width:0;text-align:left;margin-top:-3px}
@media(max-width:480px){#ovwl .bfoot>.snacts{margin-left:auto;gap:6px}#ovwl .bfoot .snacts>button{min-height:40px;min-width:64px;justify-content:center;text-align:center}}
/* r-drawer: at <=820 the expanded sidebar is an overlay drawer over the rail, not a grid column that squeezes the page */
#sidescrim{display:none}
@media(max-width:820px){
 .app.exp{grid-template-columns:56px minmax(0,1fr)}
 .app.exp>.main{grid-column:2}
 .app.exp .side{position:fixed;top:0;left:0;bottom:0;width:216px;height:100%;overflow-y:auto;z-index:70;background:#0b0e17;box-shadow:12px 0 40px rgba(0,0,0,.6)}
 .app.exp>#sidescrim{display:block;position:fixed;inset:0;z-index:69;background:rgba(3,5,10,.6);backdrop-filter:blur(2px)}
}
@media(max-width:480px){.app.exp{grid-template-columns:60px minmax(0,1fr)}}
/* sidebar Watchlist count (hidden at 0): a pill at the row end when expanded, a corner dot-count on the rail */
.navbadge{font-style:normal;font-size:10px;font-weight:700;line-height:16px;min-width:16px;padding:0 5px;border-radius:8px;background:rgba(245,182,66,.16);color:var(--gold);border:1px solid rgba(245,182,66,.45);text-align:center;box-sizing:border-box;font-variant-numeric:tabular-nums}
.navbadge[hidden]{display:none}
.app.exp .nav a .navbadge{margin-left:auto}
.app:not(.exp) .nav a .navbadge{position:absolute;top:3px;right:3px;font-size:9px;line-height:14px;min-width:14px;padding:0 3px}
#ovwlp:focus{outline:none}#ovwlp:focus-visible{outline:2px solid rgba(79,125,255,.5);outline-offset:2px}
.snbwhy.snbwl.hide{display:none!important}   /* liqDedup: the card already prints the .thinliq pill */
#hof .hofdd{display:flex;justify-content:center;align-items:center;text-align:center;margin-top:10px;padding:8px;min-height:40px;box-sizing:border-box;font-size:11px;border:1px dashed rgba(255,255,255,.09);border-radius:10px;background:rgba(255,255,255,.015);cursor:help}   /* dead Biggest-calls card: same dashed 'no longer trading' box as the Overview mini, sitting in the Chart/Buy slot */

/* Bought together: visible unit under the echo count, sits in the empty gutter above the room tags so rows do not grow */
.clchip{position:relative}.clchip .clu{position:absolute;top:100%;left:50%;transform:translateX(-50%);margin-top:2px;font-size:9px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--mut,#94a3b8);line-height:1;white-space:nowrap;pointer-events:none}
@media(max-width:480px){.ttap{position:relative}.ttap::after{content:'';position:absolute;inset:-10px -4px}}
/* chip strips (Trending up now + Paid radar): wrappers are layout-neutral above 480; at 390 each group is one sideways-scrolling 40px row (same fade as .snjump) and the secondary choice (Trending sort, Paid radar change window) is a compact select that always shows the current pick */
.cstrip{display:contents}.csel{display:none}
@media(max-width:480px){
 .cstrip{display:flex;flex:1 1 auto;min-width:0;gap:6px;overflow-x:auto;scrollbar-width:none;padding-right:24px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 32px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 32px),transparent)}
 .cstrip::-webkit-scrollbar{display:none}.cstrip.atend{-webkit-mask-image:none;mask-image:none}
 .cstrip>.chip,.upchipbar .cstrip>.chip,#boostbar .bfilters .cstrip>.chip{flex:0 0 auto!important;white-space:nowrap;min-height:40px;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box}
 .csel{display:block;flex:0 0 auto;min-height:40px;max-width:52%;box-sizing:border-box;padding:0 24px 0 10px;border-radius:10px;border:1px solid rgba(79,125,255,.5);background:rgba(9,12,20,.8) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%238b93a7' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 10px center;color:#fff;font-size:12px;font-weight:600;font-family:inherit;-webkit-appearance:none;appearance:none}
 .upchipbar{flex-wrap:nowrap!important;align-items:center;padding:6px!important;margin:6px 0 8px!important}.upchipbar>.uptf{display:none!important}
 #boostbar .bfilters{row-gap:6px;margin-bottom:12px}
 #boostbar .bfilters .bgrp{min-width:0;max-width:100%;flex-wrap:nowrap;overflow:visible;-webkit-mask-image:none;mask-image:none;padding-right:0;gap:8px;flex-basis:100%}
 #boostbar .bgrow>.bgrp:last-child{display:none}   /* Change window lives in the Sort row's select */
}
/* scanner ticker tile at 390: value on top, 'TICKER' under it like PRICE / MKT CAP; the watchlist star sits in the top-right corner (same 40px box) instead of sharing the label row */
@media(max-width:480px){#tokhdr .cards>.card:first-child{display:block;position:relative;padding-right:58px}#tokhdr .cards>.card:first-child .l{display:block}#tokhdr .cards>.card:first-child .n{display:flex;align-items:center;gap:6px;min-width:0}#tokhdr .cards>.card:first-child .n>.symn{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#tokhdr .cards>.card:first-child .n>.expill{flex:0 0 auto}#tokhdr .cards>.card:first-child .l .wlstar{position:absolute;top:8px;right:8px;margin:0}}
/* trade modal CONTRACT strip rendered from the card's resolved trust chip: one fact per line, same colours as the chip popover */
.trsafety.trcached .trln,.csafety.trcached .trln{display:block;margin-top:2px}
.trsafety.trcached .trn,.csafety.trcached .trn{color:var(--red)}
.trsafety.trcached .tru,.csafety.trcached .tru{color:var(--gold)}

.snrmf{font-size:12px;color:var(--mut);margin:0 0 4px}   /* Radar list: coins flagged after listing are named here instead of shown as cleared tiles */

#snwatch .snwempty{grid-column:1/-1}   /* On the radar now empty states: full-row dashed well, not a sliver in one grid cell */
#snwatch .snrank{margin-top:6px;font-size:12px;font-weight:600;color:var(--mut);min-height:24px;display:flex;align-items:center}#snwatch .wtile:hover .snrank{color:var(--acc)}
@media(max-width:480px){#snwatch .snrank{min-height:40px;margin-top:2px}}   /* candidate card affordance, like 'market data →' on Paid radar cards; the whole card stays the tap target */
