@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap');

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  --bg:    #F5F8FF;
  --bg2:   #FFFFFF;
  --bg3:   #EEF4FF;
  --bg4:   #E5EFFE;
  --b1:    rgba(0,152,234,.1);
  --b2:    rgba(0,152,234,.18);
  --b3:    rgba(0,152,234,.35);
  --blue:  #0098EA;
  --blue2: #4DB8FF;
  --blue3: #00D4FF;
  --bg-blue: rgba(0,152,234,.09);
  --glow:  rgba(0,152,234,.18);
  --grn:   #00C853;
  --red:   #F5365C;
  --gold:  #FFB300;
  --t1:    #0A2540;
  --t2:    #4A6B8A;
  --t3:    #8BA5BC;
  --sb-w:  84px;   /* icon-only rail + inset; content does not jump on hover */
  --tb-h:  58px;   /* topbar height — keep in step with .topbar; overlays sit below it */
  --r:     12px;--r2:8px;
  /* ── Motion system ──────────────────────────────────────── */
  --ease-out:    cubic-bezier(.22,1,.36,1);     /* smooth deceleration */
  --ease-spring: cubic-bezier(.34,1.4,.5,1);    /* gentle overshoot */
  --dur-1: .13s; --dur-2: .24s; --dur-3: .42s;
  /* ── Elevation: layered ambient + key shadows ──────────── */
  --el-1: 0 1px 2px rgba(10,37,64,.04), 0 2px 8px rgba(10,37,64,.05);
  --el-2: 0 2px 6px rgba(10,37,64,.05), 0 10px 28px rgba(10,37,64,.08);
  --el-3: 0 10px 24px rgba(10,37,64,.09), 0 28px 64px rgba(10,37,64,.13);
  --glow-accent: 0 0 0 3px rgba(0,152,234,.10), 0 0 36px rgba(0,152,234,.16);
}

html{scroll-behavior:smooth;overflow-x:hidden;max-width:100%}
body{
  font-family:'Inter',sans-serif;
  background:linear-gradient(160deg,#E4EFFF 0%,#EBF3FF 45%,#F2F8FF 100%);
  background-attachment:fixed;
  color:var(--t1);min-height:100vh;overflow-x:hidden;max-width:100%
}

/* ─── CANVAS ─── */
#starfield{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.18}

/* ─── PAGE WRAP ─── */
.page-wrap{display:flex;min-height:100vh;position:relative;z-index:1}

/* ═══════════════ SIDEBAR ═══════════════ */
.sidebar{
  width:64px;max-width:64px;height:calc(100vh - 20px);
  position:fixed;left:10px;top:10px;
  background:rgba(234,244,255,.97);
  border:1px solid rgba(0,152,234,.12);
  border-radius:22px;
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  display:flex;flex-direction:column;z-index:100;
  box-shadow:
    0 1px 2px rgba(10,37,64,.04),
    0 12px 36px rgba(10,37,64,.08);
  overflow-x:hidden;overflow-y:hidden;
}

.sb-logo{
  display:flex;align-items:center;justify-content:center;
  padding:14px 0 10px;text-decoration:none;
  border-bottom:1px solid rgba(0,152,234,.1);flex-shrink:0
}
.sb-logo-txt{display:none}
.sb-logo-ico{
  width:32px;height:32px;
  background:linear-gradient(135deg,var(--blue),var(--blue2));
  border-radius:8px;display:flex;align-items:center;justify-content:center;
  font-size:16px;box-shadow:0 4px 12px rgba(0,152,234,.35);flex-shrink:0
}
.sb-logo-txt{
  font-size:19px;font-weight:800;letter-spacing:-.4px;
  background:linear-gradient(90deg,var(--blue),var(--blue2));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text
}

.sb-nav{flex:1;padding:8px 0 14px;overflow-y:auto;overflow-x:hidden;min-width:0}
.sb-nav::-webkit-scrollbar{width:0}

.nav-item{
  display:flex;align-items:center;justify-content:center;
  width:40px;height:40px;min-width:40px;min-height:40px;
  padding:0;margin:3px auto;border-radius:12px;
  color:var(--t2);text-decoration:none;font-size:14px;font-weight:500;
  cursor:pointer;
  transition-property:color,background,box-shadow,transform;
  transition-duration:.18s;
  user-select:none;position:relative;
  border-left:none;
}
.nav-item:hover{
  color:var(--t1);
  background:rgba(0,152,234,.08);
}
.nav-item:active{transform:scale(.96)}
.nav-item.active{
  color:var(--blue);
  background:rgba(0,152,234,.14);
  font-weight:600;
  box-shadow:inset 0 0 0 1px rgba(0,152,234,.16);
}
.nav-item.active::before{
  content:'';
  position:absolute;left:-6px;top:50%;transform:translateY(-50%);
  width:3px;height:16px;border-radius:99px;
  background:var(--blue);
  box-shadow:0 0 8px rgba(0,152,234,.45);
}
.nav-lbl{display:none;position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.nav-item[aria-label]::after,
.sb-hld-trigger[aria-label]::after,
.sb-ls-header[aria-label]::after,
.btn-sb-create[aria-label]::after{
  content:attr(aria-label);
  position:fixed;left:var(--sb-tip-x,-9999px);top:var(--sb-tip-y,0);
  transform:translateY(-50%) translateX(-4px);
  padding:6px 10px;border-radius:8px;
  background:rgba(10,37,64,.92);color:#fff;
  font-size:12px;font-weight:600;white-space:nowrap;letter-spacing:.01em;
  opacity:0;pointer-events:none;
  box-shadow:0 8px 20px rgba(10,37,64,.18);
  transition-property:opacity,transform;transition-duration:.16s;
  z-index:400;
}
.nav-item:hover::after,
.sb-hld-trigger:hover::after,
.sb-ls-header:hover::after,
.btn-sb-create:hover::after{
  opacity:1;transform:translateY(-50%) translateX(0);
}
.nav-item-story{
  color:var(--blue);
  font-weight:600;
  font-size:13px;
  letter-spacing:0.01em;
}
/* ═══ TON EMOJI ICON SYSTEM ═══════════════════════════════════════════════ */
/* Base: 22px, smooth cubic transition, zero glow by default             */
.te{
  display:inline-block;flex-shrink:0;
  width:22px;height:22px;object-fit:contain;
  vertical-align:middle;
  transition:filter .22s cubic-bezier(.4,0,.2,1),
             transform .18s cubic-bezier(.4,0,.2,1);
  filter:drop-shadow(0 0 0px rgba(77,184,255,0));
  transform:scale(1)
}

/* Active sidebar item: persistent glow + slight scale                    */
.nav-item.active .te{
  filter:drop-shadow(0 0 8px rgba(77,184,255,.65));
  transform:scale(1.06)
}
/* Active pill / tab: persistent glow, no scale (too tight in pill row)   */
.pill.active .te{
  filter:drop-shadow(0 0 7px rgba(77,184,255,.6))
}
.pv-tab.active .te{
  filter:drop-shadow(0 0 6px rgba(77,184,255,.55))
}

/* Hover: always wins — declared last, same specificity wins              */
a:hover .te,
button:hover .te,
[onclick]:hover .te{
  filter:drop-shadow(0 0 10px rgba(77,184,255,.85));
  transform:scale(1.12)
}

/* ── Per-context size overrides ─────────────────────────────────────── */
/* Nav (sidebar) — 22px matches base, container updated below           */
.sb-hld-ico .te{width:22px;height:22px}
/* Header topbar buttons — 20px (tighter topbar)                        */
.btn-pnl .te{width:20px;height:20px}
/* Filter pills — 18px (compact pill row)                               */
.pill .te{width:18px;height:18px}
/* Profile tabs — 16px (small tab chip)                                 */
.pv-tab .te{width:16px;height:16px}
.pv-tab-svg{width:16px;height:16px;flex-shrink:0;color:currentColor}
/* Profile section header icons                                         */
.pv-csect-ico .te{width:20px;height:20px}
/* ── Decorative large icons — unchanged ───────────────────────────── */
.pv-nc-ico .te{width:60px;height:60px}
.pv-bal-icon .te{width:48px;height:48px}
.pv-rew-icon .te{width:44px;height:44px}
.pv-empty-ico .te{width:40px;height:40px}

.nav-ico{width:22px;height:22px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.nav-ico svg{width:22px;height:22px;color:var(--blue2);transition:color .15s}
.nav-item:hover .nav-ico svg{color:var(--blue)}
.nav-item.active .nav-ico svg{color:var(--blue)}
.nav-sep{height:1px;background:rgba(0,152,234,.1);margin:8px 16px}

.sb-bottom{padding:10px 0 14px;flex-shrink:0;border-top:1px solid rgba(0,152,234,.1);display:flex;justify-content:center}
.btn-sb-create{
  position:relative;
  width:40px;height:40px;min-width:40px;min-height:40px;
  background:linear-gradient(90deg,var(--blue),var(--blue2));
  border:none;border-radius:12px;
  font-family:'Inter',sans-serif;font-size:13px;font-weight:700;color:#fff;
  cursor:pointer;display:flex;align-items:center;justify-content:center;gap:0;
  box-shadow:0 4px 16px rgba(0,152,234,.35);
  transition-property:box-shadow,transform;transition-duration:.18s}
.btn-sb-create:hover{box-shadow:0 6px 24px rgba(0,152,234,.55);transform:translateY(-1px)}
.btn-sb-create:active{transform:scale(.96)}
.btn-sb-create .crt-lbl{display:none}

/* ═══════════════ RIGHT AREA ═══════════════ */
.right-area{margin-left:var(--sb-w);flex:1;display:flex;flex-direction:column;min-height:100vh;min-width:0}

/* ─── TOPBAR ─── */
.topbar{
  /* flex-shrink:0 — .right-area is a flex column, so `height` here is only a
     hint: any view tall enough to overflow the column squashed the topbar
     instead (Bubble Map's min-height:420px canvas rendered it at 45px). */
  /* Above .wlt-hist-panel (300), which now shares this stacking context: the
     topbar's dropdowns hang down into the panel's area and must stay on top. */
  position:sticky;top:0;z-index:350;height:58px;flex-shrink:0;
  background:rgba(236,246,255,.95);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid rgba(0,152,234,.12);
  display:flex;align-items:center;padding:0 24px;gap:10px;
  box-shadow:0 2px 16px rgba(10,37,64,.05)
}

/* ── Testnet beta banner ── */
.beta-banner{
  flex-shrink:0;
  background:linear-gradient(90deg,rgba(0,152,234,.12),rgba(0,194,183,.08));
  border-bottom:1px solid rgba(0,152,234,.18);
  color:var(--t1);
  font-family:'Inter',sans-serif;
  font-size:12.5px;line-height:1.35;
  z-index:340;
}
.beta-banner-inner{
  display:flex;align-items:center;gap:10px;
  padding:8px 24px;max-width:100%;
}
@media (max-width:720px){
  .beta-banner-inner{padding:8px 12px;align-items:flex-start}
  .beta-banner-txt{font-size:11.5px}
}
.beta-banner-pill{
  flex-shrink:0;
  font-size:10px;font-weight:800;letter-spacing:.06em;
  padding:3px 8px;border-radius:6px;
  background:rgba(0,152,234,.18);color:var(--blue);
  border:1px solid rgba(0,152,234,.28);
}
.beta-banner-txt{flex:1;min-width:0;color:var(--t2)}
.beta-banner-txt b{color:var(--t1);font-weight:700}
.beta-banner-x{
  flex-shrink:0;width:28px;height:28px;border:0;border-radius:8px;
  background:transparent;color:var(--t3);font-size:18px;line-height:1;
  cursor:pointer;
}
.beta-banner-x:hover{background:rgba(0,0,0,.06);color:var(--t1)}
[data-theme="dark"] .beta-banner{
  background:linear-gradient(90deg,rgba(0,152,234,.16),rgba(0,194,183,.08));
  border-bottom-color:rgba(255,255,255,.08);
}
[data-theme="dark"] .beta-banner-x:hover{background:rgba(255,255,255,.08)}
.topbar-right{display:flex;align-items:center;gap:10px;margin-left:auto;flex-shrink:0}

.btn-topbar-back{
  display:flex;align-items:center;gap:6px;
  padding:0 16px;height:36px;flex-shrink:0;
  background:rgba(255,255,255,.88);
  border:1.5px solid rgba(0,152,234,.2);border-radius:10px;
  color:var(--t2);font-family:'Inter',sans-serif;
  font-size:13px;font-weight:600;cursor:pointer;
  transition-property:background,border-color,color,box-shadow,transform;transition-duration:.15s;white-space:nowrap;
  box-shadow:0 1px 6px rgba(10,37,64,.06)
}
.btn-topbar-back:hover{border-color:var(--blue);color:var(--blue);background:rgba(0,152,234,.08)}
.search-bar{
  flex:1;max-width:none;
  display:flex;align-items:center;gap:8px;
  height:38px;background:rgba(0,152,234,.06);
  border:1.5px solid rgba(0,152,234,.15);border-radius:16px;padding:0 14px;
  cursor:text;transition-property:border-color,background,box-shadow;transition-duration:.15s
}
.search-bar:hover{border-color:var(--blue);background:rgba(0,152,234,.1)}
.search-bar .s-ico{width:16px;height:16px;object-fit:contain;opacity:.55;flex-shrink:0;display:block}
.search-bar .s-ph{flex:1;font-size:13px;color:var(--t3);user-select:none;white-space:nowrap}
.search-bar kbd,
.ms-kbd{
  background:rgba(0,152,234,.08);border:1px solid rgba(0,152,234,.2);
  border-radius:6px;padding:2px 6px;font-size:10px;color:var(--t2);flex-shrink:0;font-weight:700;line-height:1.2
}

/* Morphing search — list hangs under the bar; wrap stays bar-height so
   the 58px topbar (align-items:center) cannot shove the input off-screen. */
.topbar-launch-row{
  display:flex;align-items:center;gap:10px;
  flex:1;min-width:0;
}
.btn-top-create{
  position:relative;overflow:hidden;
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  height:40px;min-height:40px;min-width:40px;padding:0 14px;flex-shrink:0;
  background:linear-gradient(90deg,var(--blue),var(--blue2));
  border:none;border-radius:12px;
  font-family:'Inter',sans-serif;font-size:13px;font-weight:700;color:#fff;
  cursor:pointer;white-space:nowrap;
  box-shadow:0 4px 16px rgba(0,152,234,.35);
  transition-property:box-shadow,transform,background;
  transition-duration:.18s;
}
.btn-top-create .btn-create-glow{display:none}
.btn-top-create .te{width:18px;height:18px}
.btn-top-create .ct-lbl{position:relative;z-index:1}
.btn-top-create:hover{box-shadow:0 6px 24px rgba(0,152,234,.55);transform:translateY(-1px)}
.btn-top-create:active{transform:scale(.96)}
.ms-wrap{position:relative;display:flex;flex-direction:column;flex:1;max-width:none;min-width:0;z-index:1;align-self:center}
.ms-wrap .search-bar{flex:none;width:100%;max-width:none}
.ms-wrap.is-open{z-index:360;overflow:visible;background:transparent;box-shadow:none}
.topbar:has(.ms-wrap.is-open){
  overflow:visible;
  backdrop-filter:none;-webkit-backdrop-filter:none;
}
.ms-catch{position:fixed;inset:0;z-index:340;background:transparent}
.ms-inp{
  flex:1;min-width:0;border:none;background:none;outline:none;box-shadow:none!important;
  font-family:'Inter',sans-serif;font-size:13.5px;font-weight:500;color:var(--t1);letter-spacing:-.01em;
  padding:0;height:100%;
}
.ms-inp::placeholder{color:var(--t3);font-weight:500}
.ms-inp::-webkit-search-decoration,.ms-inp::-webkit-search-cancel-button{display:none}
.ms-kbd{display:inline-flex;align-items:center;justify-content:center}
.ms-kbd--esc{display:none;cursor:pointer}
.ms-wrap.is-open .ms-kbd--cmd{display:none}
.ms-wrap.is-open .ms-kbd--esc{display:inline-flex}
.ms-wrap.is-open .search-bar,
.ms-wrap.is-open .search-bar:hover,
.ms-wrap.is-open .search-bar:focus-within{
  height:46px;border-color:transparent;transform:none;
  border-radius:16px 16px 0 0;
  background:rgba(248,252,255,.97);
  box-shadow:
    0 0 0 1px rgba(0,152,234,.14),
    0 1px 0 rgba(255,255,255,.7) inset;
}
.ms-drop{
  display:none;position:absolute;top:100%;left:0;right:0;z-index:1;
  background:rgba(248,252,255,.97);border-radius:0 0 16px 16px;overflow:hidden;
  box-shadow:
    0 0 0 1px rgba(0,152,234,.14),
    0 24px 64px rgba(10,37,64,.18);
}
.ms-wrap.is-open .ms-drop{display:block}
.ms-drop-inner{
  padding:4px 8px 10px;max-height:min(52vh,340px);overflow-y:auto;
  box-shadow:0 -1px 0 rgba(0,152,234,.08);
}
.ms-wrap.is-open .ms-drop-inner > *{animation:wbdRise .28s cubic-bezier(0.2,0,0,1) backwards}
.ms-wrap.is-open .ms-drop-inner > :nth-child(1){animation-delay:.04s}
.ms-wrap.is-open .ms-drop-inner > :nth-child(2){animation-delay:.08s}
.ms-wrap.is-open .ms-drop-inner > :nth-child(3){animation-delay:.12s}
.ms-wrap.is-open .ms-drop-inner > :nth-child(4){animation-delay:.16s}
[data-theme="dark"] .ms-wrap.is-open .search-bar,
[data-theme="dark"] .ms-wrap.is-open .search-bar:hover,
[data-theme="dark"] .ms-wrap.is-open .search-bar:focus-within{
  background:#0C0C0C;
  box-shadow:
    0 0 0 1px rgba(255,255,255,.1),
    0 1px 0 rgba(255,255,255,.05) inset;
}
[data-theme="dark"] .ms-drop{
  background:#0C0C0C;
  box-shadow:
    0 0 0 1px rgba(255,255,255,.1),
    0 24px 64px rgba(0,0,0,.55);
}
[data-theme="dark"] .ms-drop-inner{box-shadow:0 -1px 0 rgba(255,255,255,.08)}
[data-theme="dark"] .ms-inp{color:#F5F5F0}
[data-theme="dark"] .sr:hover,[data-theme="dark"] .sr--active{background:rgba(255,255,255,.06)}
[data-theme="dark"] .sr-img,[data-theme="dark"] .sr-img--user{outline-color:rgba(255,255,255,.1)}

.btn-pnl{
  display:flex;align-items:center;gap:6px;
  padding:0 16px;height:40px;flex-shrink:0;
  background:rgba(0,152,234,.08);
  border:1.5px solid rgba(0,152,234,.22);border-radius:12px;
  font-size:13px;font-weight:700;color:var(--blue);
  cursor:pointer;text-decoration:none;white-space:nowrap;transition-property:background,border-color,transform;transition-duration:.15s}
.btn-pnl:hover{background:rgba(0,152,234,.15);border-color:var(--blue);transform:translateY(-1px)}

.btn-signin{
  padding:0 18px;height:40px;flex-shrink:0;
  background:transparent;border:1.5px solid rgba(0,152,234,.3);border-radius:12px;
  font-family:'Inter',sans-serif;font-size:13px;font-weight:600;color:var(--blue);
  cursor:pointer;white-space:nowrap;transition-property:background,border-color;transition-duration:.15s}
.btn-signin:hover{background:rgba(0,152,234,.08);border-color:var(--blue)}

/* Balance chip + avatar chip — two separate elements (pump.fun-style) */
.wallet-bal-chip{display:flex;align-items:center;gap:8px;
  height:40px;padding:0 16px 0 14px;flex-shrink:0;
  background:rgba(0,152,234,.08);border:1.5px solid rgba(0,152,234,.2);
  border-radius:12px;cursor:default;user-select:none}
.wbc-dot{width:7px;height:7px;border-radius:50%;background:var(--blue);box-shadow:0 0 6px rgba(0,152,234,.7);flex-shrink:0}
/* Reserve a stable width so toggling GRAM ⇄ USD ⇄ hidden never resizes the chip */
.w-bal{font-size:13.5px;font-weight:800;color:var(--t1);font-variant-numeric:tabular-nums;
  min-width:92px;text-align:center}
.wallet-av-chip{padding:0;border:none;background:none;cursor:pointer;border-radius:50%;line-height:0;flex-shrink:0;transition-property:transform,scale;transition-duration:.12s}
.wallet-av-chip:hover{transform:translateY(-1px)}
.wallet-av-chip:active{scale:.96}

/* ─── CONTENT ─── */
.content{flex:1;padding:28px 24px}

.page-title{font-size:28px;font-weight:900;margin-bottom:24px;letter-spacing:-.5px;color:var(--t1);text-wrap:balance}
.page-title span{
  background:linear-gradient(90deg,var(--blue),var(--blue2));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text
}

/* ─── LIVE ACTIVITY ─── */
.la-section{
  background:rgba(235,246,255,.92);border:1.5px solid rgba(0,152,234,.14);
  border-radius:var(--r);overflow:hidden;margin-bottom:24px;
  backdrop-filter:blur(12px);box-shadow:0 4px 24px rgba(10,37,64,.05)
}
.la-hdr{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 18px;border-bottom:1px solid rgba(0,152,234,.1)
}
.la-title-row{display:flex;align-items:center;gap:8px}
.la-live-dot{width:7px;height:7px;border-radius:50%;background:var(--red);flex-shrink:0;animation:lp 1.4s infinite}
.la-title{font-size:14px;font-weight:700;color:var(--t1)}
.la-subtitle{font-size:12px;color:var(--t3)}

.la-list{display:grid;grid-template-columns:1fr 1fr}
.la-item{
  display:flex;align-items:center;gap:10px;
  padding:11px 16px;cursor:pointer;
  border-left:2px solid transparent;
  border-bottom:1px solid rgba(0,152,234,.07);
  transition:background .15s,border-left-color .15s;
  animation:laIn .28s ease backwards
}
@keyframes laIn{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:none}}
.la-item:hover{background:rgba(0,152,234,.05)}
.la-item:nth-child(odd){border-right:1px solid rgba(0,152,234,.07)}
.la-item:nth-last-child(-n+2){border-bottom:none}
.la-buy{border-left-color:rgba(0,200,83,.35)}
.la-sell{border-left-color:rgba(245,54,92,.35)}
.la-buy:hover{border-left-color:var(--grn)}
.la-sell:hover{border-left-color:var(--red)}

.la-ico{width:36px;height:36px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:18px;box-shadow:0 2px 10px rgba(10,37,64,.15)}
.la-token{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}
.la-name{font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--t1)}
.la-tick{font-size:10px;color:var(--blue);font-weight:600}
.la-addr{font-size:10px;color:var(--t3);font-family:monospace;flex-shrink:0;white-space:nowrap}
.la-badge{font-size:10px;font-weight:800;padding:3px 7px;border-radius:4px;flex-shrink:0;white-space:nowrap}
.la-buy-badge{background:rgba(0,200,83,.1);color:var(--grn)}
.la-sell-badge{background:rgba(245,54,92,.1);color:var(--red)}
.la-amt{font-size:12px;font-weight:700;flex-shrink:0;white-space:nowrap}
.la-buy-amt{color:var(--grn)}
.la-sell-amt{color:var(--red)}
.la-when{font-size:10px;color:var(--t3);flex-shrink:0;min-width:46px;text-align:right}

/* ─── LIVE TICKER ─── */
.ticker-wrap{
  display:flex;align-items:center;
  background:var(--bg2);
  border:1.5px solid rgba(0,152,234,.14);
  border-radius:14px;
  overflow:hidden;
  margin-bottom:20px;
  height:50px;
  box-shadow:0 2px 16px rgba(10,37,64,.05);
}
.ticker-label{
  display:flex;align-items:center;gap:7px;
  padding:0 16px;
  border-right:1.5px solid rgba(0,152,234,.12);
  flex-shrink:0;height:100%;
  background:linear-gradient(90deg,rgba(0,152,234,.09),rgba(0,152,234,.03));
}
.ticker-dot{
  width:7px;height:7px;border-radius:50%;
  background:var(--blue);
  box-shadow:0 0 6px var(--blue);
  animation:lp 1.4s infinite;
}
.ticker-label-text{
  font-size:10px;font-weight:800;
  color:var(--blue);letter-spacing:.1em;
}
.ticker-viewport{
  flex:1;overflow:hidden;height:100%;
  display:flex;align-items:center;
  mask-image:linear-gradient(90deg,transparent,black 4%,black 96%,transparent);
  -webkit-mask-image:linear-gradient(90deg,transparent,black 4%,black 96%,transparent);
}
.ticker-track{
  display:flex;align-items:center;
  white-space:nowrap;
  will-change:transform;
}
.tk-item{
  display:inline-flex;align-items:center;gap:7px;
  padding:0 18px;cursor:pointer;
  border-radius:8px;
  transition:background .15s;
  flex-shrink:0;
}
.tk-item:hover{background:rgba(0,152,234,.08)}
.tk-emoji{
  width:26px;height:26px;border-radius:7px;
  display:flex;align-items:center;justify-content:center;
  font-size:14px;flex-shrink:0;
  box-shadow:0 1px 6px rgba(10,37,64,.12);
}
.tk-name{font-size:12px;font-weight:700;color:var(--t1)}
.tk-price{font-size:11px;color:var(--t2);font-variant-numeric:tabular-nums}
.tk-chg{font-size:11px;font-weight:700;min-width:42px}
.tk-up{color:var(--grn)}
.tk-dn{color:var(--red)}
.tk-nil{color:var(--t3)}
.tk-mc{font-size:11px;color:var(--t2);font-variant-numeric:tabular-nums}
.tk-sep{display:inline-block;width:5px;height:5px;border-radius:50%;background:rgba(0,152,234,.5);margin:0 14px;flex-shrink:0;user-select:none;vertical-align:middle}
/* Live trade tape chips */
.tk-trade{gap:7px}
.tk-tr-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.tk-tr-dot.tk-up{background:var(--grn);box-shadow:0 0 7px var(--grn)}
.tk-tr-dot.tk-dn{background:var(--red);box-shadow:0 0 7px var(--red)}
.tk-badge{
  font-size:10px;font-weight:800;letter-spacing:.02em;
  padding:2px 7px;border-radius:20px;white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.tk-badge.tk-up{background:rgba(0,200,83,.14);color:var(--grn)}
.tk-badge.tk-dn{background:rgba(245,54,92,.14);color:var(--red)}

/* ─── FILTER PILLS ─── */
.pills-wrap{overflow-x:auto;margin-bottom:20px;padding-bottom:2px}
.pills-wrap::-webkit-scrollbar{height:0}
.pills-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pill-break{display:none;flex-basis:100%;height:0}
.pill{
  padding:8px 18px;border-radius:22px;
  font-size:13px;font-weight:600;
  background:rgba(255,255,255,.85);
  border:1.5px solid rgba(0,152,234,.15);
  color:var(--t2);cursor:pointer;
  font-family:'Inter',sans-serif;white-space:nowrap;
  transition-property:background,border-color,color;transition-duration:.15s;backdrop-filter:blur(8px)
}
.pill:hover{border-color:var(--blue);color:var(--blue);background:rgba(0,152,234,.07)}
.pill.active{border-color:var(--blue);background:linear-gradient(90deg,rgba(0,152,234,.12),rgba(77,184,255,.1));color:var(--blue)}
.pill-wl{border-color:rgba(0,152,234,.22);color:var(--blue)}
.pill-wl:hover{border-color:var(--blue);color:var(--blue);background:rgba(0,152,234,.07)}
.pill-wl.active{border-color:var(--blue);background:linear-gradient(90deg,rgba(0,152,234,.12),rgba(77,184,255,.1));color:var(--blue)}

/* ─── COIN GRID ─── */
.coin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:16px;margin-bottom:28px;max-width:100%}

.coin-card{
  background:rgba(234,246,255,.92);
  border:1.5px solid rgba(0,152,234,.14);
  border-radius:14px;overflow:hidden;cursor:pointer;
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  box-shadow:0 2px 16px rgba(10,37,64,.06);
  transition:transform .2s,border-color .2s,box-shadow .2s;
  animation:cardIn .3s ease backwards
}
@keyframes cardIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* Bonding curve card: blue border; DEX-graduated card: gold border */
.coin-card-bonding{border-color:rgba(0,152,234,.35)!important}
.coin-card-dex{
  border-color:rgba(245,158,11,.55)!important;
  box-shadow:0 2px 18px rgba(245,158,11,.1)!important
}

.coin-card:hover{
  transform:translateY(-5px);
  border-color:var(--blue);
  box-shadow:0 14px 40px rgba(10,37,64,.1),0 0 0 3px rgba(0,152,234,.1),0 0 28px rgba(0,152,234,.12)
}

.c-img{width:100%;aspect-ratio:1;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;font-size:62px}
.c-live{
  position:absolute;top:8px;left:8px;
  background:rgba(245,54,92,.9);color:#fff;
  font-size:9px;font-weight:800;letter-spacing:.5px;
  padding:3px 7px;border-radius:5px;
  display:flex;align-items:center;gap:4px;
  animation:lp 1.4s infinite
}
.c-live::before{content:'';width:5px;height:5px;background:#fff;border-radius:50%}
@keyframes lp{0%,100%{opacity:1}50%{opacity:.6}}
.c-views{
  position:absolute;bottom:8px;right:8px;
  background:rgba(0,0,0,.55);color:#fff;
  font-size:10px;font-weight:600;padding:3px 8px;border-radius:5px;
  backdrop-filter:blur(4px)
}

.c-body{padding:13px 14px 14px}
.c-row1{display:flex;justify-content:space-between;align-items:flex-start;gap:6px;margin-bottom:4px}
.c-name{font-size:14px;font-weight:800;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.c-tick{font-size:11px;color:var(--blue);font-weight:700;white-space:nowrap;flex-shrink:0}
.c-row2{display:flex;align-items:center;gap:7px;margin-bottom:3px}
.c-mc{font-size:14px;font-weight:800;color:var(--t1)}
.c-chg{font-size:12px;font-weight:700;padding:2px 6px;border-radius:5px}
.up{color:var(--grn)}.dn{color:var(--red)}
.c-chg.up{background:rgba(0,200,83,.1)}
.c-chg.dn{background:rgba(245,54,92,.1)}
.c-chg.nil{color:var(--t3);background:rgba(255,255,255,.04)}
.c-meta{font-size:11px;color:var(--t3);margin-bottom:6px}
.c-meta span{color:var(--t2);font-weight:500}
.c-desc{font-size:12px;color:var(--t2);line-height:1.5;word-break:break-word;overflow-wrap:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:8px}
/* Card feature badges (Watchlist / Holdings): stage · holders · smart-money */
.c-badges{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:8px}
.cbadge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:6px;font-size:10px;font-weight:800;letter-spacing:.02em;line-height:1.6;white-space:nowrap}
.cbadge svg{flex-shrink:0}
.cbadge-curve{color:#7c4dff;background:rgba(124,77,255,.12);border:1px solid rgba(124,77,255,.25)}
.cbadge-dex{color:#d97706;background:rgba(245,158,11,.14);border:1px solid rgba(245,158,11,.3)}
.cbadge-hold{color:var(--t2);background:rgba(10,37,64,.06);border:1px solid rgba(10,37,64,.1)}
.cbadge-smart{color:var(--blue);background:rgba(0,152,234,.1);border:1px solid rgba(0,152,234,.28);position:relative;cursor:default}
.cbadge-smart:hover{background:rgba(0,152,234,.16)}
/* Smart-money hover popover — anchored to the badge's right edge so it stays
   inside the card; needs overflow:visible on the grid cards below. */
.cbadge-tip{left:auto;right:0}
.cbadge-smart:hover .cbadge-tip{display:block}
/* Watchlist/Holdings cards let the popover escape; the image rounds itself now
   that the card no longer clips. */
.wl-grid .coin-card:not(.home-card){overflow:visible}
.wl-grid .coin-card:not(.home-card) .c-img{border-radius:14px 14px 0 0}

/* Unified card typography (Watchlist/Holdings): one ink tone for every value,
   muted grey for every label/secondary line, and colour kept only for actual
   signals — change %, P&L, badges. No more black-vs-blue mix. */
.wl-grid .c-tick{color:var(--t3);font-weight:700}
.wl-grid .hld-lbl{display:block;margin-bottom:4px;font-size:10px;font-weight:800;letter-spacing:.5px;color:var(--t3)}
/* Position value is the card's hero number now that market cap is gone */
.wl-grid .hld-ton{color:var(--t1);font-size:20px;font-weight:900;letter-spacing:-.4px}
.wl-grid .hld-holding{border-top:1px solid rgba(0,152,234,.1);margin-top:10px;padding-top:10px}
.wl-grid .hld-hold-row{display:flex;align-items:baseline;gap:8px}
.wl-grid .hld-tok{margin-top:4px}
[data-theme="dark"] .cbadge-curve{color:#a385ff}
[data-theme="dark"] .cbadge-dex{color:#fbbf24}
[data-theme="dark"] .cbadge-hold{color:var(--t2);background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.1)}

.c-tags{display:flex;gap:4px;flex-wrap:wrap}
.ctag{padding:3px 8px;border-radius:5px;font-size:10px;font-weight:700}
.ctag-new{background:rgba(0,200,83,.1);color:var(--grn);border:1px solid rgba(0,200,83,.2)}
.ctag-live{background:rgba(245,54,92,.1);color:var(--red);border:1px solid rgba(245,54,92,.2)}

/* ─── LOAD MORE ─── */
.load-more{text-align:center;padding:4px 0 36px}
.btn-more{
  padding:11px 36px;border-radius:24px;
  background:rgba(255,255,255,.85);border:1.5px solid rgba(0,152,234,.2);
  color:var(--blue);font-family:'Inter',sans-serif;
  font-size:13px;font-weight:700;cursor:pointer;
  transition-property:background,border-color,box-shadow,transform;transition-duration:.15s;backdrop-filter:blur(8px)
}
.btn-more:hover{background:rgba(0,152,234,.08);border-color:var(--blue);box-shadow:0 4px 16px rgba(0,152,234,.15)}

/* ─── LIVE SECTION ─── */
.live-sec{padding-bottom:8px}
.sec-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.sec-title{font-size:18px;font-weight:800;display:flex;align-items:center;gap:8px;color:var(--t1)}
.sec-link{font-size:12px;color:var(--blue);text-decoration:none;font-weight:600;transition:color .15s}
.sec-link:hover{color:var(--blue2)}

.live-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.live-card{
  background:rgba(255,255,255,.88);border:1.5px solid rgba(0,152,234,.12);
  border-radius:var(--r);overflow:hidden;cursor:pointer;transition-property:border-color,box-shadow,transform;transition-duration:.2s;
  backdrop-filter:blur(12px);box-shadow:0 2px 16px rgba(10,37,64,.06)
}
.live-card:hover{border-color:var(--red);transform:translateY(-3px);box-shadow:0 10px 32px rgba(245,54,92,.12)}
.lc-img{width:100%;height:148px;display:flex;align-items:center;justify-content:center;font-size:54px;position:relative}
.lc-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.6) 0%,transparent 55%)}
.lc-live{position:absolute;top:10px;left:10px;background:rgba(245,54,92,.9);color:#fff;font-size:9px;font-weight:800;padding:3px 8px;border-radius:4px;display:flex;align-items:center;gap:4px;letter-spacing:.5px;animation:lp 1.4s infinite}
.lc-live::before{content:'';width:5px;height:5px;background:#fff;border-radius:50%}
.lc-views{position:absolute;top:10px;right:10px;background:rgba(0,0,0,.55);color:#fff;font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;backdrop-filter:blur(4px)}
.lc-body{padding:12px 14px}
.lc-name{font-size:14px;font-weight:800;margin-bottom:4px;color:var(--t1)}
.lc-mc{font-size:12px;color:var(--t2)}
.lc-mc span{color:var(--grn);font-weight:700}

/* ─── FOOTER ─── */
footer{
  border-top:1px solid rgba(0,152,234,.1);
  padding:36px 28px 32px;
  margin-top:16px;
  background:rgba(228,242,255,.7);
  backdrop-filter:blur(12px)
}
.footer-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:28px
}
.fc h4{
  font-size:10.5px;font-weight:700;color:var(--t3);
  text-transform:uppercase;letter-spacing:.7px;margin-bottom:12px
}
.fc a{
  display:block;font-size:13px;color:var(--t2);
  text-decoration:none;margin-bottom:9px;
  transition:color .15s;font-weight:500
}
.fc a:hover{color:var(--blue)}

/* ─── COOKIE ─── */

/* ═══════════════ MODALS ═══════════════ */
.modal-overlay{
  /* Above .wlt-hist-panel (300): modals are opened FROM the profile (Edit
     Profile), and at 200 they rendered behind it — you had to close the profile
     to find the dialog. */
  display:none;position:fixed;inset:0;z-index:400;
  background:rgba(10,37,64,.45);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  align-items:center;justify-content:center;padding:16px
}
.modal-overlay.open{display:flex}
.modal{
  background:rgba(240,249,255,.99);
  border:1.5px solid rgba(0,152,234,.15);
  border-radius:18px;width:100%;max-height:92vh;
  overflow-y:auto;position:relative;animation:mIn .22s ease;
  box-shadow:0 32px 80px rgba(10,37,64,.18)
}
@keyframes mIn{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}
.modal-close{
  position:absolute;top:14px;right:14px;z-index:1;
  width:36px;height:36px;background:rgba(0,152,234,.08);
  border:1.5px solid rgba(0,152,234,.15);border-radius:8px;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;font-size:16px;color:var(--t2);transition-property:background,border-color,color,transform;transition-duration:.15s}
.modal-close::after{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px}
.modal-close:hover{background:rgba(245,54,92,.1);color:var(--red);border-color:rgba(245,54,92,.2)}

/* ─── CREATE MODAL ─── */
#createModal .modal,
#createModal .cm-modal{max-width:880px;padding:0;overflow:hidden}
/* Above .cm-prv children (z-index:1) so the X stays clickable in light */
#createModal .modal-close{
  z-index:5;
  top:16px;right:16px;
  width:34px;height:34px;
  border-radius:10px;
}
#createModal .modal-close::after{
  width:48px;height:48px;
}
.cm-inner{display:flex;min-height:0}
.cm-form{
  flex:1;padding:28px 28px 0;border-right:1px solid rgba(0,152,234,.1);
  min-width:0;overflow-y:auto;max-height:90vh;
  display:flex;flex-direction:column;
}
.cm-prv{
  width:268px;flex-shrink:0;padding:28px 22px;
  background:var(--bg3);display:flex;flex-direction:column;gap:16px;
  border-radius:0 16px 16px 0;position:relative;overflow:hidden;
}
.cm-prv-glow{display:none}

.cm-head{margin-bottom:16px}
.cm-head-row{display:flex;align-items:center;gap:14px;margin-bottom:10px}
.cm-mark{
  width:44px;height:44px;border-radius:13px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(160deg,var(--blue),var(--blue2));
  box-shadow:0 6px 18px rgba(0,152,234,.3);
}
.cm-mark .te{width:22px;height:22px}
.cm-head-txt{min-width:0}
.cm-eyebrow{
  font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  color:var(--t3);margin-bottom:4px;
}
.cm-title{font-size:22px;font-weight:900;margin:0;color:var(--t1);letter-spacing:-.4px;line-height:1.15}
.cm-title-ico{width:22px;height:22px;flex-shrink:0}
.cm-sub{font-size:13px;color:var(--t2);margin:0;line-height:1.5;text-wrap:pretty}
.cm-req{color:var(--blue)}
.cm-opt{font-size:11px;font-weight:400;opacity:.55;margin-left:4px}

.cm-panel{
  background:rgba(0,152,234,.03);
  border:1px solid rgba(0,152,234,.1);
  border-radius:16px;padding:16px;margin-bottom:14px;
}
.cm-panel--soft{background:transparent;border-style:dashed;padding:14px 16px}
.cm-panel-lbl{
  font-size:10px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;
  color:var(--t3);margin-bottom:12px;
}
.cm-desc-fg{margin-bottom:0;margin-top:4px}
.cm-foot{
  margin-top:auto;padding:14px 0 22px;
  position:sticky;bottom:0;
  /* Match .modal sky tint — #fff fallback made a hard white slab on light */
  background:linear-gradient(180deg,transparent,rgba(240,249,255,.99) 28%);
}
.cm-warn{
  display:flex;align-items:flex-start;gap:9px;
  background:rgba(245,54,92,.06);border:1px solid rgba(245,54,92,.18);
  border-radius:12px;padding:11px 13px;
  font-size:12px;color:rgba(200,50,70,.9);margin-bottom:16px;line-height:1.5
}
.cm-warn-ico{width:15px;height:15px;flex-shrink:0;margin-top:1px;object-fit:contain}
.cm-buy-fg{margin-top:4px;margin-bottom:0}
.cm-buy-wrap{position:relative}
.cm-buy-wrap .fi{padding-right:56px}
.cm-buy-unit{
  position:absolute;right:12px;top:50%;transform:translateY(-50%);
  font-size:12px;font-weight:700;color:var(--t3);pointer-events:none;letter-spacing:.04em;
}
.cm-buy-est{font-size:11px;color:var(--grn);margin-top:4px;min-height:16px;font-variant-numeric:tabular-nums}
.fg{margin-bottom:16px}
.fg label{display:block;font-size:12px;font-weight:600;color:var(--t2);margin-bottom:6px}
.fg label span{color:var(--blue)}
.fg label .fi-counter,.fg label .cm-opt{color:var(--t3)}
.fi{width:100%;height:44px;background:rgba(0,152,234,.05);border:1.5px solid rgba(0,152,234,.15);border-radius:9px;padding:0 14px;font-size:14px;color:var(--t1);font-family:'Inter',sans-serif;outline:none;transition:border-color .15s}
.fi:focus{border-color:var(--blue);background:rgba(0,152,234,.08)}
.fi::placeholder{color:var(--t3)}
.fta{width:100%;height:72px;background:rgba(0,152,234,.05);border:1.5px solid rgba(0,152,234,.15);border-radius:9px;padding:10px 14px;font-size:14px;color:var(--t1);font-family:'Inter',sans-serif;resize:none;outline:none;transition:border-color .15s}
.fta:focus{border-color:var(--blue);background:rgba(0,152,234,.08)}
.fta::placeholder{color:var(--t3)}
.fg-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}

/* Compact top row: image square + name/ticker */
.cm-top-row{display:grid;grid-template-columns:116px 1fr;gap:14px;margin-bottom:14px;align-items:start}
.cm-img-col{display:flex;flex-direction:column}
.cm-img-label{font-size:12px;font-weight:600;color:var(--t2);margin-bottom:6px;display:block}
.cm-img-sq{width:116px!important;height:116px!important;border-radius:14px!important}
.cm-img-hint{font-size:10px;color:var(--t3);margin-top:6px;text-align:center;letter-spacing:.02em}
.cm-fields-col{display:flex;flex-direction:column;justify-content:center;min-height:116px}

.upload-zone{
  width:100%;height:96px;background:rgba(0,152,234,.04);
  border:2px dashed rgba(0,152,234,.22);
  border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  cursor:pointer;transition-property:background,border-color,color,box-shadow;transition-duration:.18s;color:var(--t3)
}
.upload-zone:hover,.upload-zone.drag{border-color:var(--blue);background:rgba(0,152,234,.08);color:var(--blue)}
.uz-ico-svg{margin-bottom:2px;transition:color .18s}
.uz-txt{font-size:13px;color:var(--t2);font-weight:500}.uz-sub{font-size:10px;color:var(--t3);text-align:center}
.upload-prev{display:none;width:100%;height:96px;background:rgba(0,152,234,.06);border:1.5px solid rgba(0,152,234,.15);border-radius:14px;align-items:center;justify-content:center;position:relative;overflow:hidden;cursor:pointer}
.upload-prev .upch{position:absolute;inset:0;background:rgba(20,40,80,.55);display:none;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:#fff;cursor:pointer;backdrop-filter:blur(3px);border-radius:13px}
.upload-prev:hover .upch{display:flex}

.socials-btn{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;background:rgba(0,152,234,.06);border:1.5px solid rgba(0,152,234,.15);border-radius:11px;cursor:pointer;font-size:13px;font-weight:600;color:var(--t2);margin-bottom:12px;transition-property:border-color,color,transform,background;transition-duration:.15s}
.socials-btn:hover{border-color:var(--blue);color:var(--t1)}
.socials-btn .arr{transition:transform .2s;font-size:10px}
.socials-btn.open .arr{transform:rotate(180deg)}
.socials-fields{display:none;flex-direction:column;gap:8px;margin-bottom:14px}
.socials-fields.open{display:flex}
.si-wrap{display:flex;align-items:center;background:rgba(0,152,234,.05);border:1.5px solid rgba(0,152,234,.15);border-radius:9px;overflow:hidden;transition:border-color .15s}
.si-wrap:focus-within{border-color:var(--blue)}
.si-ico{width:38px;display:flex;align-items:center;justify-content:center;font-size:14px;border-right:1px solid rgba(0,152,234,.1)}
.si-wrap input{flex:1;height:40px;background:none;border:none;padding:0 12px;font-size:13px;color:var(--t1);font-family:'Inter',sans-serif;outline:none}
.si-wrap input::placeholder{color:var(--t3)}

.fee-row{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:rgba(0,152,234,.07);border:1px solid rgba(0,152,234,.15);border-radius:12px;margin-bottom:12px;font-size:13px}
.fee-lbl{color:var(--t2);font-weight:500}.fee-val{color:var(--blue);font-weight:800;font-variant-numeric:tabular-nums}

.btn-launch{
  width:100%;height:52px;
  background:linear-gradient(90deg,var(--blue),var(--blue2));
  border:none;border-radius:13px;font-family:'Inter',sans-serif;
  font-size:15px;font-weight:700;color:#fff;cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:8px;
  box-shadow:0 6px 20px rgba(0,152,234,.4);transition-property:box-shadow,transform,background;transition-duration:.18s}
.btn-launch .te{width:18px;height:18px;flex-shrink:0}
.btn-launch:hover{box-shadow:0 10px 32px rgba(0,152,234,.6);transform:translateY(-1px)}
.btn-launch:disabled{opacity:.35;cursor:not-allowed;transform:none;box-shadow:none}
.btn-launch:active:not(:disabled){transform:scale(.96)}

.prv-lbl{font-size:10px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.5px;position:relative;z-index:1}
.prv-card{background:#fff;border:1.5px solid rgba(0,152,234,.12);border-radius:16px;overflow:hidden;box-shadow:0 6px 24px rgba(10,37,64,.07);position:relative;z-index:1}
.prv-img{
  width:100%;aspect-ratio:1;
  display:flex;align-items:center;justify-content:center;font-size:52px;
  background:
    radial-gradient(70% 70% at 50% 42%, rgba(0,152,234,.10), transparent 68%),
    linear-gradient(160deg, #F0F7FF 0%, #E4F1FF 100%);
  background-size:cover;background-position:center;
  transition:background .2s
}
.prv-body{padding:14px 14px 15px}
.prv-name{font-size:15px;font-weight:800;margin-bottom:3px;color:var(--t1);letter-spacing:-.2px}
.prv-tick{font-size:12px;color:var(--blue);font-weight:700;margin-bottom:6px}
.prv-desc{font-size:11.5px;color:var(--t2);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

.prv-immutable{
  display:flex;align-items:flex-start;gap:8px;
  background:rgba(0,152,234,.05);border:1px solid rgba(0,152,234,.13);
  border-radius:12px;padding:11px 12px;
  font-size:11px;color:var(--t2);line-height:1.45;position:relative;z-index:1
}
.prv-immutable svg{flex-shrink:0;margin-top:1px;color:var(--blue);opacity:.7}

/* ─── WALLET MODAL (TON Connect style) ─── */
#walletModal .modal{max-width:400px;padding:0;overflow:hidden}
.wwo{display:flex;align-items:center;gap:12px;padding:10px 14px;background:rgba(0,152,234,.04);border:1.5px solid rgba(0,152,234,.1);border-radius:10px;cursor:pointer;transition-property:background,border-color;transition-duration:.15s}
.wwo:hover{border-color:var(--blue);background:rgba(0,152,234,.09)}
.wwo-ico{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.wwo-tg{background:linear-gradient(135deg,#23A0DA,#0098EA)}
.wwo-tk{background:linear-gradient(135deg,#0070BA,#0098EA)}
.wwo-mtw{background:linear-gradient(135deg,#1a2a4a,#2a3d66)}
.wwo-all{background:rgba(0,152,234,.1);border:1.5px solid rgba(0,152,234,.15);font-size:16px;color:var(--blue)}
.wwo-name{flex:1;font-size:13px;font-weight:600;color:var(--t1)}
.wwo-badge{font-size:10px;font-weight:700;padding:2px 7px;border-radius:5px;background:rgba(0,200,83,.1);color:var(--grn);border:1px solid rgba(0,200,83,.2);flex-shrink:0}
.wwo-all-btn{justify-content:center;background:transparent;border-style:dashed;border-color:rgba(0,152,234,.2)}

/* ─── WALLET WRAP + DROPDOWN ─── */
.wallet-wrap{display:none;align-items:center;gap:8px;flex-shrink:0;position:relative}
.wallet-wrap.show{display:flex}
.wallet-sub{position:relative;flex-shrink:0}
/* Balance panel anchors to the wrap's (fixed) right edge, not the resizable chip,
   so it never shifts when the balance value width changes */
#walletBalWrap{position:static}
.wallet-dropdown{
  display:none;position:absolute;top:calc(100% + 8px);right:0;
  background:rgba(240,249,255,.99);border:1.5px solid rgba(0,152,234,.15);
  border-radius:14px;min-width:220px;z-index:350;overflow:hidden;
  box-shadow:0 20px 60px rgba(10,37,64,.14);backdrop-filter:blur(20px);
  animation:mIn .18s ease
}
.wallet-dropdown.open{display:block}
.wd-header{display:flex;align-items:center;gap:10px;padding:14px 16px;background:rgba(0,152,234,.04)}
.wd-avatar{width:38px;height:38px;background:linear-gradient(135deg,var(--blue),var(--blue2));border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;box-shadow:0 2px 10px rgba(0,152,234,.3)}
.wd-hinfo{flex:1;min-width:0}
.wd-addr{font-size:12px;font-weight:700;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wd-bal{font-size:11px;color:var(--blue);font-weight:600}
.wd-sep{height:1px;background:rgba(0,152,234,.1)}
.wd-item{display:flex;align-items:center;gap:10px;padding:11px 16px;cursor:pointer;font-size:13px;font-weight:600;color:var(--t2);transition-property:background,color;transition-duration:.15s}
.wd-item:hover{background:rgba(0,152,234,.06);color:var(--t1)}
.wd-ico{width:20px;text-align:center;font-size:15px;flex-shrink:0}
.wd-disconnect{color:var(--red)}
.wd-disconnect:hover{background:rgba(245,54,92,.06)!important;color:var(--red)!important}

/* ─── DEPOSIT MODAL ─── */
#depositModal .modal{max-width:360px;padding:0;overflow:hidden}
.dep-title{font-size:18px;font-weight:800;color:var(--t1);padding:24px 24px 4px;text-align:center}
.dep-sub{font-size:12px;color:var(--t3);text-align:center;padding:0 24px 14px}
.dep-qr-wrap{position:relative;width:160px;height:160px;background:#fff;border-radius:14px;border:1.5px solid rgba(0,152,234,.15);margin:0 auto 16px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px rgba(10,37,64,.08);overflow:hidden}
.dep-qr-logo{position:absolute;width:32px;height:32px;background:#fff;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px}
.dep-addr-row{display:flex;align-items:center;gap:8px;padding:10px 14px;background:rgba(0,152,234,.04);border:1px solid rgba(0,152,234,.12);border-radius:10px;margin:0 24px 14px}
.dep-addr{flex:1;font-size:11px;font-family:monospace;color:var(--t1);font-weight:600;word-break:break-all}
.dep-copy-btn{padding:5px 12px;border-radius:7px;background:rgba(0,152,234,.1);border:1.5px solid rgba(0,152,234,.2);font-size:11px;font-weight:700;color:var(--blue);cursor:pointer;flex-shrink:0;transition-property:background;transition-duration:.15s;font-family:'Inter',sans-serif}
.dep-copy-btn:hover{background:rgba(0,152,234,.18)}
.dep-info-box{margin:0 24px 14px;border:1.5px solid rgba(0,152,234,.12);border-radius:10px;overflow:hidden}
.dep-info-row{display:flex;justify-content:space-between;align-items:center;padding:9px 14px;font-size:12px;color:var(--t2)}
.dep-info-row+.dep-info-row{border-top:1px solid rgba(0,152,234,.07)}
.dep-info-val{font-weight:700;color:var(--t1)}
.dep-warn{margin:0 24px 24px;padding:10px 12px;background:rgba(255,179,0,.08);border:1.5px solid rgba(255,179,0,.28);border-radius:9px;font-size:11px;color:rgba(140,90,0,.9);line-height:1.5}

/* ─── PROFILE VIEW ─── */
.profile-view{display:none;padding:20px 24px 40px;flex:1;min-width:0}
.profile-view.active{display:block}
.pv-not-connected{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 24px;gap:16px;text-align:center}
.pv-nc-ico{font-size:64px;margin-bottom:4px}
.pv-nc-title{font-size:20px;font-weight:800;color:var(--t1)}
.pv-nc-sub{font-size:13px;color:var(--t2);max-width:300px;line-height:1.6}
.pv-header{display:flex;align-items:flex-start;gap:20px;padding:24px;background:rgba(234,246,255,.94);border:1.5px solid rgba(0,152,234,.12);border-radius:var(--r);margin-bottom:18px;backdrop-filter:blur(12px);box-shadow:0 4px 20px rgba(10,37,64,.05)}
.pv-avatar{width:72px;height:72px;background:linear-gradient(135deg,var(--blue),var(--blue2));border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:32px;flex-shrink:0;box-shadow:0 6px 20px rgba(0,152,234,.25)}
.pv-hinfo{flex:1;min-width:0}
.pv-name-row{display:flex;align-items:center;gap:10px;margin-bottom:4px}
.pv-name{font-size:20px;font-weight:800;color:var(--t1)}
.btn-edit-profile-sm{
  display:inline-flex;align-items:center;gap:5px;
  padding:5px 12px;height:28px;
  background:rgba(0,152,234,.1);
  border:1.5px solid rgba(0,152,234,.22);border-radius:8px;
  font-family:'Inter',sans-serif;font-size:11.5px;font-weight:700;color:var(--blue);
  cursor:pointer;transition-property:background,border-color;transition-duration:.15s;white-space:nowrap
}
.btn-edit-profile-sm:hover{background:rgba(0,152,234,.18);border-color:var(--blue)}
/* address row */
.pv-addr-row{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}
.pv-addr-chip{
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 12px;border-radius:20px;cursor:pointer;
  background:rgba(77,184,255,.08);border:1.5px solid rgba(77,184,255,.22);
  transition:background .18s,border-color .18s,box-shadow .18s,transform .12s;
  position:relative;user-select:none;flex-shrink:0
}
.pv-addr-chip:hover{
  background:rgba(77,184,255,.15);border-color:#4DB8FF;
  box-shadow:0 0 0 3px rgba(77,184,255,.14),0 4px 18px rgba(77,184,255,.22)
}
.pv-addr-chip:active{transform:scale(.96)}
.pv-addr-text{font-size:13px;font-weight:700;color:var(--t1);font-family:monospace;letter-spacing:.2px}
.pv-copy-ico{color:var(--blue2);flex-shrink:0;display:flex;align-items:center;transition:opacity .15s}
.pv-copied-lbl{
  display:none;font-size:11px;font-weight:800;color:#4DB8FF;
  white-space:nowrap;animation:copiedPop .2s ease
}
.pv-addr-chip.pv-copied .pv-copy-ico{display:none}
.pv-addr-chip.pv-copied .pv-copied-lbl{display:inline}
.pv-addr-chip.pv-copied{border-color:#4DB8FF;background:rgba(77,184,255,.14)}
@keyframes copiedPop{from{opacity:0;transform:scale(.75)}to{opacity:1;transform:scale(1)}}

/* tonscan / explorer link */
.pv-explorer-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  min-width:36px;height:36px;padding:0 12px;border-radius:11px;
  background:rgba(0,152,234,.06);border:1.5px solid rgba(0,152,234,.18);
  font-size:12px;font-weight:700;color:var(--blue);
  text-decoration:none;transition-property:background,border-color,color,box-shadow,transform;transition-duration:.15s;white-space:nowrap;flex-shrink:0
}
.pv-explorer-btn:hover{background:rgba(0,152,234,.13);border-color:var(--blue);box-shadow:0 3px 12px rgba(0,152,234,.15)}
.pv-explorer-btn:active{transform:scale(.96)}
.pv-explorer-lbl{line-height:1}

/* connect telegram button */
.pv-action-row{margin-bottom:14px}
.pv-tg-btn{
  display:inline-flex;align-items:center;gap:7px;
  padding:8px 18px;border-radius:20px;
  background:linear-gradient(90deg,rgba(0,152,234,.09),rgba(77,184,255,.07));
  border:1.5px solid rgba(0,152,234,.26);
  font-size:13px;font-weight:700;color:var(--blue);
  text-decoration:none;transition-property:background,border-color,box-shadow;transition-duration:.18s;white-space:nowrap
}
.pv-tg-connected,
.wlt-hist-tg-btn.wlt-tg-connected{
  background:linear-gradient(90deg,rgba(0,200,100,.1),rgba(0,200,100,.07));
  border-color:rgba(0,200,100,.4);
  color:#00c864
}
.pv-tg-connected:hover,
.wlt-hist-tg-btn.wlt-tg-connected:hover{
  background:linear-gradient(90deg,rgba(0,200,100,.16),rgba(0,200,100,.1));
  border-color:rgba(0,200,100,.55);
  color:#00d970;
  box-shadow:0 4px 16px rgba(0,200,100,.18)
}
.pv-tg-btn:hover{
  background:linear-gradient(90deg,rgba(0,152,234,.16),rgba(77,184,255,.13));
  border-color:var(--blue);
  box-shadow:0 4px 16px rgba(0,152,234,.2),0 0 0 2px rgba(0,152,234,.08)
}
.pv-stats{display:flex;gap:24px;flex-wrap:wrap}
.pv-stat{display:flex;flex-direction:column;gap:2px}
.pv-stat-n{font-size:18px;font-weight:800;color:var(--t1)}
.pv-stat-l{font-size:11px;color:var(--t3);font-weight:500}
.pv-tabs-row{display:flex;gap:4px;overflow-x:auto;padding-bottom:2px;margin-bottom:18px}
.pv-tabs-row::-webkit-scrollbar{height:0}
.pv-tab{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:20px;font-family:'Inter',sans-serif;font-size:13px;font-weight:600;background:transparent;border:1.5px solid rgba(0,152,234,.15);color:var(--t3);cursor:pointer;transition-property:background,border-color,color,box-shadow,transform;transition-duration:.15s;white-space:nowrap}
.pv-tab.active{background:rgba(0,152,234,.1);border-color:var(--blue);color:var(--blue)}
.pv-tab:hover:not(.active){color:var(--t2);border-color:rgba(0,152,234,.3)}
.pv-bal-money-row{display:flex;align-items:center;justify-content:center;gap:8px}
.pv-bal-money-row .te{width:22px;height:22px;flex-shrink:0}
.pv-panel{}
.pv-balance-main{text-align:center;padding:36px 24px 20px;background:rgba(234,246,255,.94);border:1.5px solid rgba(0,152,234,.12);border-radius:var(--r);margin-bottom:14px;backdrop-filter:blur(12px)}
.pv-bal-icon{font-size:48px;margin-bottom:10px}
.pv-bal-amount{font-size:32px;font-weight:900;color:var(--t1);margin-bottom:4px;letter-spacing:-1px}
.pv-bal-usd{font-size:14px;color:var(--t3);margin-bottom:0}
.pv-bal-actions{display:flex;gap:10px}
.pv-bal-btn{flex:1;height:46px;border-radius:12px;font-family:'Inter',sans-serif;font-size:13px;font-weight:700;cursor:pointer;transition-property:box-shadow,transform;transition-duration:.15s}
.pv-bal-btn:first-child{background:linear-gradient(90deg,var(--blue),var(--blue2));border:none;color:#fff;box-shadow:0 4px 16px rgba(0,152,234,.35)}
.pv-bal-btn:first-child:hover{box-shadow:0 6px 24px rgba(0,152,234,.5);transform:translateY(-1px)}
.pv-bal-btn-sec{background:rgba(0,152,234,.07);border:1.5px solid rgba(0,152,234,.2);color:var(--t2)}
.pv-coins-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:60px 24px;background:rgba(234,246,255,.94);border:1.5px solid rgba(0,152,234,.12);border-radius:var(--r);text-align:center;backdrop-filter:blur(12px)}
.pv-coins-empty>div:first-child{font-size:48px}
.pv-coins-empty>div:nth-child(2){font-size:14px;color:var(--t3);font-weight:500}
.pv-rewards-box{text-align:center;padding:40px 24px;background:rgba(234,246,255,.94);border:1.5px solid rgba(0,152,234,.12);border-radius:var(--r);backdrop-filter:blur(12px)}
.pv-rew-icon{font-size:48px;margin-bottom:12px}
.pv-rew-title{font-size:18px;font-weight:800;color:var(--t1);margin-bottom:4px}
.pv-rew-sub{font-size:12px;color:var(--t3);margin-bottom:20px;line-height:1.5}
.pv-rew-val{font-size:32px;font-weight:900;color:var(--blue);margin-bottom:4px}
.pv-rew-lbl{font-size:12px;color:var(--t3);margin-bottom:14px}
.pv-rew-note{font-size:11.5px;color:var(--t3);background:rgba(0,152,234,.07);border:1px solid rgba(0,152,234,.13);border-radius:10px;padding:10px 14px;line-height:1.5;max-width:300px;margin:0 auto}
.pv-coins-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:14px}

/* ─── SUCCESS MODAL ─── */
#successModal .modal{max-width:360px;padding:36px;text-align:center}
.sm-ico{font-size:54px;margin-bottom:12px;animation:bIn .45s ease}
@keyframes bIn{0%{transform:scale(0)}60%{transform:scale(1.15)}100%{transform:scale(1)}}
.sm-h{font-size:22px;font-weight:800;margin-bottom:6px;color:var(--t1)}
.sm-p{font-size:13px;color:var(--t2);margin-bottom:18px}
.sm-prv{background:rgba(0,152,234,.06);border:1.5px solid rgba(0,152,234,.15);border-radius:10px;padding:16px;margin-bottom:18px}
.sm-em{font-size:36px;margin-bottom:6px}
.sm-nm{font-size:17px;font-weight:700;margin-bottom:3px;color:var(--t1)}
.sm-tk{font-size:12px;color:var(--blue);font-weight:700}

/* ─── Launch celebration: demo-coin rain + large created-coin art ─── */
.launch-burst{
  position:fixed;inset:0;z-index:8500;pointer-events:auto;
  overflow:hidden;
}
.launch-burst-veil{
  position:absolute;inset:0;z-index:0;
  background:radial-gradient(ellipse at 50% 42%,rgba(0,152,234,.2),rgba(5,5,5,.46) 58%);
  opacity:0;
  animation:launchBurstVeil .42s cubic-bezier(.2,0,0,1) both;
}
.launch-burst-flare{
  position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    linear-gradient(180deg,rgba(255,255,255,.1),transparent 38%),
    radial-gradient(ellipse 44% 32% at 50% 38%,rgba(255,255,255,.18),transparent 72%),
    radial-gradient(ellipse 62% 48% at 50% 46%,rgba(0,152,234,.32),transparent 74%);
  opacity:0;
  animation:launchFlare 2.35s cubic-bezier(.2,0,0,1) both;
}
.launch-lights{
  position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden;
}
.launch-mote{
  position:absolute;left:50%;top:46%;
  width:7px;height:7px;margin:-3.5px 0 0 -3.5px;border-radius:50%;
  background:#E8E8E0;
  box-shadow:0 0 12px 4px rgba(0,152,234,.55);
  opacity:0;
  animation:launchMote 1.45s cubic-bezier(.2,0,0,1) var(--d,0s) both;
}
.launch-mote-b{
  background:#7ec8ff;
  box-shadow:0 0 14px 5px rgba(0,152,234,.42);
  width:5px;height:5px;margin:-2.5px 0 0 -2.5px;
}
.launch-rain{
  position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none;
}
.launch-rain-tile{
  position:absolute;
  top:-16%;
  left:var(--x, 50%);
  width:var(--s, 64px);
  height:var(--s, 64px);
  margin-left:calc(var(--s, 64px) / -2);
  border-radius:18px;
  overflow:hidden;
  outline:1px solid rgba(255,255,255,.12);outline-offset:-1px;
  box-shadow:0 14px 32px rgba(0,0,0,.4);
  animation:launchRainFall var(--dur, 1.7s) cubic-bezier(.45,.05,.85,.35) var(--d, 0s) both;
}
.launch-rain-tile img{width:100%;height:100%;object-fit:cover;display:block}
.launch-burst-hero{
  position:absolute;left:50%;top:46%;z-index:3;
  width:min(340px, 56vw);
  transform:translate(-50%,-50%);
  display:flex;flex-direction:column;align-items:center;
  pointer-events:none;
}
.launch-burst-glow{
  position:absolute;left:50%;top:50%;z-index:0;
  width:170%;height:170%;
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.3) 0%,rgba(0,152,234,.42) 30%,rgba(0,152,234,0) 70%);
  filter:blur(22px);
  opacity:0;
  transform:translate(-50%,-50%) scale(.7);
  animation:launchGlow .55s cubic-bezier(.2,0,0,1) .04s forwards;
}
.launch-burst-ring{
  position:absolute;inset:-12px;z-index:1;
  border-radius:56px;
  border:1.5px solid rgba(255,255,255,.48);
  box-shadow:0 0 28px rgba(0,152,234,.4);
  opacity:0;transform:scale(.88);
  animation:launchLightRing .88s cubic-bezier(.2,0,0,1) .1s forwards;
}
.launch-burst-ring-2{
  inset:-26px;border-radius:70px;
  border-color:rgba(126,200,255,.55);
  box-shadow:0 0 32px rgba(0,152,234,.28);
  animation-delay:.22s;
}
.launch-burst-art{
  position:relative;z-index:2;
  width:100%;aspect-ratio:1;border-radius:44px;overflow:hidden;
  display:grid;place-items:center;
  background:rgba(8,8,10,.55);
  outline:1px solid rgba(255,255,255,.1);outline-offset:-1px;
  box-shadow:
    0 0 0 10px rgba(5,5,5,.22),
    0 28px 64px rgba(0,0,0,.48),
    0 8px 24px rgba(0,152,234,.18);
  font-size:96px;line-height:1;
  opacity:0;transform:scale(.25);filter:blur(4px);
  animation:launchBurstArt .42s cubic-bezier(.2,0,0,1) .08s forwards;
}
.launch-burst-art::after{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:2;
  background:linear-gradient(115deg,transparent 28%,rgba(255,255,255,.28) 48%,transparent 64%);
  mix-blend-mode:screen;
  transform:translateX(-130%);
  animation:launchSheen .7s cubic-bezier(.2,0,0,1) .36s forwards;
}
.launch-burst-art img{width:100%;height:100%;object-fit:cover;display:block}
/* Label under the art and the art's flight into the coin header avatar
   (js/app-core.js _playLaunchBurst). Light by default, dark below. */
.launch-burst{
  --lb-ink:#0A2540;--lb-mute:#4A6B8A;--lb-halo:rgba(255,255,255,.85);
  --lb-accent:var(--blue,#0098EA);--lb-line:rgba(10,37,64,.08);
  --lb-veil-a:rgba(247,251,255,.62);--lb-veil-b:rgba(222,238,255,.88);
}
html:is([data-theme="dark"],[data-scheme="dark"],[data-theme="voidtype"]) .launch-burst{
  --lb-ink:#F4F4EF;--lb-mute:#8E8E86;--lb-halo:rgba(0,0,0,.85);--lb-line:rgba(255,255,255,.1);
  --lb-veil-a:rgba(12,12,12,.6);--lb-veil-b:rgba(0,0,0,.86);
}
.launch-burst-blur{
  position:absolute;inset:0;z-index:0;opacity:0;
  background:radial-gradient(ellipse 70% 60% at 50% 45%,var(--lb-veil-a),var(--lb-veil-b));
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
}
.launch-burst-label{
  position:absolute;left:0;right:0;z-index:4;pointer-events:none;
  display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;
}
.launch-burst-name{
  font:700 clamp(22px,3vw,30px)/1.1 var(--sans,'Inter',system-ui,sans-serif);
  letter-spacing:-.02em;color:var(--lb-ink);
}
.launch-burst-meta{display:flex;align-items:center;gap:10px}
.launch-burst-tick{font:500 13px/1 ui-monospace,"SF Mono",SFMono-Regular,Menlo,monospace;color:var(--lb-mute)}
.launch-burst-name,
.launch-burst-tick{text-shadow:0 0 18px var(--lb-halo),0 0 4px var(--lb-halo)}
.launch-burst-live{
  display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;
  background:color-mix(in srgb,var(--lb-accent) 14%,transparent);
  font:600 12px/1 var(--sans,'Inter',system-ui,sans-serif);color:var(--lb-ink);
}
.launch-burst-live::before{content:"";width:6px;height:6px;border-radius:50%;background:#16C784}
.launch-burst-fly{
  position:fixed;z-index:5;overflow:hidden;display:grid;place-items:center;line-height:1;
  background:#fff;outline:1px solid var(--lb-line);outline-offset:-1px;
}
.launch-burst-fly img{width:100%;height:100%;object-fit:cover;display:block}
.launch-burst-land{position:fixed;z-index:5;opacity:0;pointer-events:none;box-shadow:0 0 0 2px var(--lb-accent)}
.launch-burst.launch-burst-out{pointer-events:none}
.launch-burst.launch-burst-out .launch-burst-veil,
.launch-burst.launch-burst-out .launch-burst-flare,
.launch-burst.launch-burst-out .launch-rain,
.launch-burst.launch-burst-out .launch-lights{
  opacity:0;transform:translateY(-12px);filter:blur(4px);
  transition-property:opacity,transform,filter;
  transition-duration:.22s;transition-timing-function:cubic-bezier(.23,1,.32,1);
}
.launch-burst.launch-burst-out .launch-burst-hero{
  opacity:0;transform:translate(-50%,calc(-50% - 12px));filter:blur(4px);
  transition-property:opacity,transform,filter;
  transition-duration:.22s;transition-timing-function:cubic-bezier(.23,1,.32,1);
}
@keyframes launchBurstVeil{
  from{opacity:0} to{opacity:1}
}
@keyframes launchFlare{
  from{opacity:0}
  22%{opacity:1}
  to{opacity:.62}
}
@keyframes launchGlow{
  from{opacity:0;transform:translate(-50%,-50%) scale(.7)}
  to{opacity:1;transform:translate(-50%,-50%) scale(1)}
}
@keyframes launchLightRing{
  from{opacity:.72;transform:scale(.88)}
  to{opacity:0;transform:scale(1.16)}
}
@keyframes launchSheen{
  from{transform:translateX(-130%);opacity:0}
  18%{opacity:1}
  to{transform:translateX(130%);opacity:0}
}
@keyframes launchMote{
  from{opacity:0;transform:translate(var(--tx),var(--ty)) scale(.25);filter:blur(4px)}
  28%{opacity:.85;transform:translate(var(--tx),calc(var(--ty) - 8px)) scale(1);filter:blur(0)}
  to{opacity:0;transform:translate(var(--tx),calc(var(--ty) - 36px)) scale(.25);filter:blur(4px)}
}
@keyframes launchBurstArt{
  from{opacity:0;transform:scale(.25);filter:blur(4px)}
  to{opacity:1;transform:scale(1);filter:blur(0)}
}
@keyframes launchRainFall{
  from{transform:translate3d(0,0,0) rotate(var(--r,0deg));opacity:0}
  8%{opacity:1}
  to{transform:translate3d(0,118vh,0) rotate(calc(var(--r,0deg) + 26deg));opacity:.88}
}
html[data-theme="light"] .launch-burst-veil{
  background:radial-gradient(ellipse at 50% 42%,rgba(0,152,234,.14),rgba(255,255,255,.42) 58%);
}
html[data-theme="light"] .launch-burst-flare{
  background:
    linear-gradient(180deg,rgba(0,152,234,.08),transparent 38%),
    radial-gradient(ellipse 44% 32% at 50% 38%,rgba(255,255,255,.35),transparent 72%),
    radial-gradient(ellipse 62% 48% at 50% 46%,rgba(0,152,234,.2),transparent 74%);
}
html[data-theme="light"] .launch-burst-art,
html[data-theme="light"] .launch-rain-tile{
  outline-color:rgba(0,0,0,.1);
}
@media(max-width:800px){
  .launch-burst-hero{width:min(240px, 78vw)}
  .launch-burst-art{border-radius:36px;font-size:72px}
  .launch-burst-ring{inset:-10px;border-radius:46px}
  .launch-burst-ring-2{inset:-20px;border-radius:56px}
  .launch-rain-tile{border-radius:14px}
}
@media(prefers-reduced-motion:reduce){
  .launch-burst{display:none}
}

/* ─── SEARCH MODAL ─── */
#searchModal .modal,
#searchModal .search-modal{
  max-width:560px;padding:0;overflow:hidden;border-radius:20px;
  box-shadow:var(--el-3);border-color:transparent;
  display:flex;flex-direction:column;
}
.search-top{
  display:flex;align-items:center;gap:12px;padding:16px 18px 16px 20px;
  border-bottom:1px solid var(--b1);
  background:linear-gradient(180deg,rgba(0,152,234,.035),transparent);
}
.search-top-ico{width:18px;height:18px;object-fit:contain;opacity:.55;flex-shrink:0}
.search-inp{
  flex:1;min-width:0;background:none;border:none;outline:none;
  font-family:inherit;font-size:15.5px;font-weight:600;color:var(--t1);
  letter-spacing:-.01em;
  box-shadow:none!important; /* kill global input:focus-visible cyan ring */
}
.search-inp:focus,.search-inp:focus-visible{
  outline:none;box-shadow:none!important;border:none;
}
.search-inp::placeholder{color:var(--t3);font-weight:500}
.search-inp::selection{background:rgba(0,152,234,.22);color:var(--t1)}
.search-esc{
  flex-shrink:0;background:rgba(0,152,234,.07);border:1px solid rgba(0,152,234,.16);
  border-radius:7px;padding:4px 9px;font-size:11px;color:var(--t2);cursor:pointer;
  font-weight:700;font-family:inherit;line-height:1;
  transition-property:background,color,border-color;
  transition-duration:var(--dur-1);transition-timing-function:var(--ease-out);
}
.search-esc:hover{background:rgba(0,152,234,.13);color:var(--blue);border-color:rgba(0,152,234,.28)}
.search-body{padding:8px 10px 12px;max-height:min(58vh,440px);overflow-y:auto}
.search-sec{
  font-size:10px;font-weight:800;color:var(--t3);text-transform:uppercase;
  letter-spacing:.1em;margin:8px 10px 6px;
}
.search-foot{
  display:flex;align-items:center;gap:14px;padding:10px 16px;
  border-top:1px solid var(--b1);background:rgba(0,152,234,.025);
}
.search-foot-hint{
  display:inline-flex;align-items:center;gap:5px;
  font-size:11px;font-weight:600;color:var(--t3);
}
.search-foot-hint--end{margin-left:auto}
.search-foot kbd{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:18px;height:18px;padding:0 5px;
  border-radius:5px;font-size:10px;font-weight:700;font-family:inherit;
  background:rgba(0,152,234,.07);border:1px solid rgba(0,152,234,.14);color:var(--t2);
}
.sr{
  display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:8px;cursor:pointer;
  transition-property:background,transform;
  transition-duration:.15s;transition-timing-function:cubic-bezier(0.2,0,0,1);
  position:relative;min-height:44px;
}
.sr:hover,.sr--active{background:rgba(0,0,0,.045)}
.sr:active{transform:scale(.96)}
.sr-img{
  width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:18px;flex-shrink:0;overflow:hidden;
  outline:1px solid rgba(0,0,0,.1);outline-offset:-1px;
}
.sr-img--photo{background:#eef4ff}
.sr-img img{width:100%;height:100%;object-fit:cover;display:block}
.sr-img--user{border-radius:50%;background:rgba(0,152,234,.07);outline:1px solid rgba(0,0,0,.1)}
.sr-info{min-width:0;flex:1}
.sr-nm{font-size:14px;font-weight:600;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-wrap:balance}
.sr-tk{font-size:12px;color:var(--t3);font-weight:500;margin-top:2px}
.sr-tk--addr{color:var(--t3);font-weight:600;font-variant-numeric:tabular-nums}
.sr-mc{margin-left:auto;text-align:right;font-size:13.5px;font-weight:800;color:var(--t1);font-variant-numeric:tabular-nums;white-space:nowrap;line-height:1.25}
.sr-mc-sub{font-size:11px;font-weight:600;color:var(--t3);margin-top:2px;font-variant-numeric:tabular-nums}
.sr-badge{
  margin-left:auto;flex-shrink:0;font-size:10px;font-weight:800;letter-spacing:.06em;
  text-transform:uppercase;color:var(--t3);padding:4px 8px;border-radius:6px;
  background:rgba(0,0,0,.05);
}
[data-theme="dark"] .sr-badge{background:rgba(255,255,255,.08);color:#8A8A82}
.sr-empty{padding:36px 20px;text-align:center}
.sr-empty-ico{font-size:28px;opacity:.45;margin-bottom:10px}
.sr-empty-t{font-size:14px;font-weight:700;color:var(--t2)}
.sr-empty-s{font-size:12px;color:var(--t3);margin-top:4px;text-wrap:pretty}

/* ─── TOAST NOTIFICATION SYSTEM ─── */

/* Container: fixed top-center stack */
/* ══════════════════════════════════════════════════════════
   TOAST SYSTEM
   Architecture: parent overflow:hidden + border-radius clips
   EVERYTHING — no child needs its own border-radius at corners.
   The ::before stripe and the progress bar are both raw
   rectangles; the parent rounds their edges for free.
══════════════════════════════════════════════════════════ */
#toastContainer{
  position:fixed;top:18px;left:50%;transform:translateX(-50%);
  z-index:9000;
  display:flex;flex-direction:column;align-items:center;gap:8px;
  width:420px;max-width:calc(100vw - 24px);
  pointer-events:none;
}

.toast{
  width:100%;
  display:flex;align-items:flex-start;gap:14px;
  /* left-pad clears the 7px accent stripe */
  padding:14px 14px 20px 22px;
  background:var(--toast-card-bg,rgba(248,252,255,.97));
  backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);
  border-radius:20px;
  /* no border — inset shadow gives the card-edge feel */
  box-shadow:
    0 8px 30px rgba(10,37,64,.11),
    0 2px 8px  rgba(10,37,64,.07),
    inset 0 0 0 1px rgba(255,255,255,.72),
    inset 0 1px 0   rgba(255,255,255,.9);
  pointer-events:auto;
  position:relative;
  overflow:hidden; /* ← clips stripe + bar to rounded corners */
  animation:toastIn .36s cubic-bezier(.34,1.42,.64,1) both;
}
.toast.toast-out{
  animation:toastOut .26s cubic-bezier(.4,0,1,1) forwards;
}
@keyframes toastIn{
  from{opacity:0;transform:translateY(-20px) scale(.92)}
  to  {opacity:1;transform:translateY(0)     scale(1)}
}
@keyframes toastOut{
  from{opacity:1;transform:translateY(0) scale(1);max-height:140px;margin-bottom:0}
  to  {opacity:0;transform:translateY(-10px) scale(.93);max-height:0;margin-bottom:-8px;padding-top:0;padding-bottom:0}
}

/* ── Left accent stripe ──────────────────────────────────
   Raw rectangle: NO border-radius. Parent clips the corners. */
.toast::before{
  content:'';
  position:absolute;left:0;top:0;bottom:0;
  width:7px;
  background:var(--toast-accent,var(--blue));
}

/* ── Icon ──────────────────────────────────────────────── */
.toast-icon{
  width:46px;height:46px;border-radius:13px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:var(--toast-icon-bg,rgba(0,152,234,.11));
  transition:transform .18s;
}
.toast:hover .toast-icon{transform:scale(1.05)}
.toast-icon img{
  width:25px;height:25px;object-fit:contain;display:block;
  filter:drop-shadow(0 1px 3px rgba(0,0,0,.18));
}

/* ── Text ──────────────────────────────────────────────── */
.toast-content{flex:1;min-width:0;padding-top:2px}
.toast-title{
  font-size:14px;font-weight:800;
  color:#0A1628;line-height:1.3;margin-bottom:4px;
  letter-spacing:-.2px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.toast-body{
  font-size:12.5px;color:#3A5570;line-height:1.5;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}

/* ── Close ─────────────────────────────────────────────── */
.toast-close{
  position:absolute;top:10px;right:10px;
  width:22px;height:22px;border-radius:7px;border:none;background:none;
  cursor:pointer;color:rgba(10,37,64,.35);padding:0;
  display:flex;align-items:center;justify-content:center;
  transition:background .12s,color .12s;
}
.toast-close:hover{background:rgba(10,37,64,.08);color:rgba(10,37,64,.65)}
.toast-close svg{width:10px;height:10px}

/* ── Progress bar ───────────────────────────────────────
   Raw rectangle: NO border-radius. Parent clips the corners.
   Track uses a subtle tint of the accent so it blends. */
.toast-bar{
  position:absolute;bottom:0;left:0;right:0;
  height:3px;
  background:var(--toast-bar-track,rgba(0,0,0,.07));
}
.toast-bar-fill{
  height:100%;
  background:var(--toast-accent,var(--blue));
  transform-origin:left;
  animation:toastBarShrink linear forwards;
}
@keyframes toastBarShrink{from{transform:scaleX(1)}to{transform:scaleX(0)}}

/* ════ Toast polish (Vella v2) — glow, spring, icon pop, swipe ════ */
.toast{
  border-radius:18px;
  box-shadow:var(--el-2),0 0 30px -10px var(--toast-accent),
    inset 0 0 0 1px rgba(255,255,255,.7),inset 0 1px 0 rgba(255,255,255,.9);
  animation:toastIn .42s var(--ease-spring) both;
}
.toast.toast-out{animation:toastOut .3s var(--ease-out) forwards}
@keyframes toastIn{from{opacity:0;transform:translateY(-16px) scale(.94);filter:blur(3px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes toastOut{to{opacity:0;transform:translateX(48px) scale(.96)}}
.toast-icon{animation:toastIconPop .55s var(--ease-spring) .08s both}
@keyframes toastIconPop{0%{transform:scale(0) rotate(-24deg)}60%{transform:scale(1.16) rotate(6deg)}100%{transform:scale(1) rotate(0)}}
.toast.toast-dragging{transition:none}
.toast-content{min-width:0}
.toast-body{overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.toast-link{display:inline-flex;align-items:center;gap:3px;margin-top:8px;
  font-size:12px;font-weight:700;letter-spacing:.2px;text-decoration:none;
  color:var(--toast-accent,var(--blue));transition:gap var(--dur-2) var(--ease-spring),opacity .15s;
  pointer-events:auto;cursor:pointer;position:relative;z-index:2}
.toast-link:hover{opacity:.78;gap:7px}
.toast-bar{height:3px}
/* Thin rounded accent rail (like the active sidebar item) instead of a thick stripe */
.toast{padding:15px 16px 18px 18px}
.toast::before{
  left:7px;top:50%;bottom:auto;transform:translateY(-50%);
  width:3px;height:58%;border-radius:3px;
  box-shadow:0 0 10px var(--toast-accent,var(--blue));
}

.pv-nrow-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}
/* Segmented control (Settings › Display currency) */
.pv-seg{display:inline-flex;flex-shrink:0;padding:3px;gap:2px;border-radius:11px;background:rgba(0,152,234,.07);border:1.5px solid rgba(0,152,234,.14)}
.pv-seg-btn{padding:6px 14px;border:none;border-radius:8px;background:none;color:var(--t2);font-family:'Inter',sans-serif;font-size:12.5px;font-weight:700;cursor:pointer;transition-property:background,color;transition-duration:.15s}
.pv-seg-btn:hover{color:var(--t1)}
.pv-seg-btn.is-active{background:#fff;color:var(--blue);box-shadow:0 1px 4px rgba(10,37,64,.12)}
[data-theme="dark"] .pv-seg{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.1)}
[data-theme="dark"] .pv-seg-btn.is-active{background:rgba(255,255,255,.12);color:#4DB8FF;box-shadow:none}
@media (prefers-reduced-motion:reduce){.toast,.toast.toast-out,.toast-icon{animation:none}}

/* ── Per-type tokens ────────────────────────────────────
   --toast-accent    : stripe + progress bar + icon bg tint
   --toast-card-bg   : very subtle type-tinted card fill
   --toast-icon-bg   : icon container background
   --toast-bar-track : progress track (faint tint of accent) */
.toast-suc{
  --toast-accent:#10B981;
  --toast-card-bg:rgba(240,253,248,.97);
  --toast-icon-bg:rgba(16,185,129,.14);
  --toast-bar-track:rgba(16,185,129,.12);
}
.toast-err{
  --toast-accent:#EF4444;
  --toast-card-bg:rgba(255,241,241,.97);
  --toast-icon-bg:rgba(239,68,68,.13);
  --toast-bar-track:rgba(239,68,68,.12);
}
.toast-inf{
  --toast-accent:#4DB8FF;
  --toast-card-bg:rgba(240,250,255,.97);
  --toast-icon-bg:rgba(77,184,255,.13);
  --toast-bar-track:rgba(77,184,255,.12);
}
.toast-buy{
  --toast-accent:#22C55E;
  --toast-card-bg:rgba(240,253,245,.97);
  --toast-icon-bg:rgba(34,197,94,.13);
  --toast-bar-track:rgba(34,197,94,.12);
}
.toast-sell{
  --toast-accent:#F43F5E;
  --toast-card-bg:rgba(255,241,244,.97);
  --toast-icon-bg:rgba(244,63,94,.13);
  --toast-bar-track:rgba(244,63,94,.12);
}
.toast-transfer{
  --toast-accent:#4DB8FF;
  --toast-card-bg:rgba(240,250,255,.97);
  --toast-icon-bg:rgba(77,184,255,.13);
  --toast-bar-track:rgba(77,184,255,.12);
}
.toast-big{
  --toast-accent:#A855F7;
  --toast-card-bg:rgba(250,242,255,.97);
  --toast-icon-bg:rgba(168,85,247,.13);
  --toast-bar-track:rgba(168,85,247,.12);
}
.toast-token{
  --toast-accent:#F59E0B;
  --toast-card-bg:rgba(255,252,235,.97);
  --toast-icon-bg:rgba(245,158,11,.13);
  --toast-bar-track:rgba(245,158,11,.12);
}
.toast-coin{
  --toast-accent:#EC4899;
  --toast-card-bg:rgba(255,240,250,.97);
  --toast-icon-bg:rgba(236,72,153,.13);
  --toast-bar-track:rgba(236,72,153,.12);
}
.toast-grad{
  --toast-accent:#3B82F6;
  --toast-card-bg:rgba(240,245,255,.97);
  --toast-icon-bg:rgba(59,130,246,.13);
  --toast-bar-track:rgba(59,130,246,.12);
}
.toast-tg{
  --toast-accent:#229ED9;
  --toast-card-bg:rgba(238,250,255,.97);
  --toast-icon-bg:rgba(34,158,217,.13);
  --toast-bar-track:rgba(34,158,217,.12);
}

/* ─── PROFILE NOTIFICATIONS HUB ─── */
.pv-notif-wrap{display:flex;flex-direction:column;gap:14px;padding:4px 0 24px}
.pv-notif-card{
  background:var(--bg2);
  border:1.5px solid rgba(0,152,234,.12);
  border-radius:16px;
  overflow:hidden;
}

/* ── Section hero header (inside notification cards) ── */
.pv-sec-hero{
  background:linear-gradient(120deg,rgba(0,152,234,.10) 0%,rgba(77,184,255,.05) 100%);
  padding:22px 20px 18px;
  border-bottom:1.5px solid rgba(0,152,234,.10);
  display:flex;flex-direction:column;align-items:flex-start;gap:7px;
}
.pv-sec-hero-ico img{width:38px;height:38px;object-fit:contain;filter:drop-shadow(0 2px 8px rgba(0,152,234,.3))}
.pv-sec-hero-title{font-size:20px;font-weight:800;color:var(--t1);letter-spacing:-.3px;text-wrap:balance}
.pv-sec-hero-sub{font-size:13px;color:var(--t2);line-height:1.4;text-wrap:pretty}
.pv-notif-sublbl{
  font-size:10px;font-weight:700;letter-spacing:.1em;
  color:var(--t3);text-transform:uppercase;
  padding:12px 18px 4px;
}

/* ── Flat uniform notification rows ── */
.pv-nrow{
  display:flex;align-items:center;gap:14px;
  padding:13px 18px;
  border-bottom:1px solid rgba(0,152,234,.07);
  transition:background .12s;
}
.pv-nrow:last-child{border-bottom:none}

/* Section header row — clearly separated, heavier */
.pv-nrow-section{
  background:rgba(0,152,234,.055);
  border-top:1.5px solid rgba(0,152,234,.13);
  padding:15px 18px;
}
.pv-notif-card > .pv-nrow-section:first-child{
  border-top:none;  /* card already has outer border */
}

.pv-nrow-ico{
  width:38px;height:38px;
  border-radius:11px;
  background:rgba(0,152,234,.09);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.pv-nrow-section .pv-nrow-ico{
  width:40px;height:40px;
  background:rgba(0,152,234,.14);
  border-radius:12px;
}
.pv-nrow-info{flex:1;min-width:0}
.pv-nrow-title{
  font-size:14px;font-weight:600;
  color:var(--t1);margin-bottom:2px;
}
.pv-nrow-section .pv-nrow-title{
  font-size:15px;font-weight:800;
  letter-spacing:-.01em;
}
.pv-nrow-sub{font-size:12px;color:var(--t2);line-height:1.4}
.pv-nrow-section .pv-nrow-sub{font-size:12px;color:var(--t3)}

/* Keep old classes for any remaining references */
.pv-notif-card-hdr{display:flex;align-items:center;gap:14px;padding:16px 18px 14px;border-bottom:1px solid rgba(0,152,234,.08)}
.pv-notif-card-ico{width:40px;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.pv-notif-card-title{font-size:14px;font-weight:700;color:var(--t1);margin-bottom:2px}
.pv-notif-card-sub{font-size:11px;color:var(--t3);line-height:1.4}
.pv-notif-rows{padding:0 18px}
.pv-notif-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0}
.pv-notif-row-info{flex:1;min-width:0}
.pv-notif-row-title{font-size:13px;font-weight:600;color:var(--t1);margin-bottom:2px}
.pv-notif-row-sub{font-size:11px;color:var(--t3);line-height:1.4}
.pv-notif-sep{height:1px;background:rgba(0,152,234,.08)}

/* ── Settings hub (Profile › Settings) ── */
.st-shell{display:flex;flex-direction:column;gap:16px;padding:8px 16px 28px}
.st-head{padding:4px 2px 0}
.st-head-kicker{
  font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--t3);margin-bottom:6px
}
.st-head-title{
  font-size:22px;font-weight:800;letter-spacing:-.4px;color:var(--t1);
  margin:0;text-wrap:balance;line-height:1.15
}
.st-head-sub{
  margin:8px 0 0;font-size:13px;line-height:1.45;color:var(--t2);text-wrap:pretty;max-width:42em
}
.st-nav{
  display:flex;gap:4px;padding:4px;border-radius:14px;
  background:rgba(10,37,64,.04);
  box-shadow:inset 0 0 0 1px rgba(10,37,64,.06)
}
.st-nav-btn{
  flex:1;min-height:40px;padding:8px 12px;border:none;border-radius:10px;
  background:none;color:var(--t3);font-family:'Inter',sans-serif;
  font-size:13px;font-weight:700;cursor:pointer;
  transition-property:background,color,box-shadow,transform;transition-duration:.18s;
  transition-timing-function:cubic-bezier(.2,0,0,1)
}
.st-nav-btn:hover:not(.is-on){color:var(--t1);background:rgba(10,37,64,.04)}
.st-nav-btn:active{transform:scale(.96)}
.st-nav-btn.is-on{
  background:#fff;color:var(--t1);
  box-shadow:0 2px 8px rgba(10,37,64,.08),0 0 0 1px rgba(10,37,64,.06)
}
.st-pane[hidden]{display:none !important}
.st-pane{display:flex;flex-direction:column;gap:12px}
.st-pane > .st-card:nth-child(1){animation:stRise .32s cubic-bezier(.2,0,0,1) both}
.st-pane > .st-card:nth-child(2){animation:stRise .32s cubic-bezier(.2,0,0,1) .08s both}
.st-pane > .st-card:nth-child(3){animation:stRise .32s cubic-bezier(.2,0,0,1) .16s both}
@keyframes stRise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.st-card{
  border-radius:18px;overflow:hidden;
  background:var(--bg2);
  box-shadow:0 8px 28px rgba(10,37,64,.06),0 0 0 1px rgba(10,37,64,.05)
}
.st-card-label{
  font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--t3);padding:16px 16px 0
}
.st-card-lead{
  margin:6px 16px 10px;font-size:12.5px;line-height:1.45;color:var(--t2);text-wrap:pretty
}
.st-row{
  display:flex;align-items:center;gap:14px;
  padding:12px 16px;min-height:56px
}
.st-row + .st-row{box-shadow:inset 0 1px 0 rgba(10,37,64,.05)}
.st-row-ico{
  width:38px;height:38px;border-radius:11px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:rgba(10,37,64,.05);
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)
}
.st-row-ico img{
  width:22px;height:22px;object-fit:contain;display:block
}
/* Settings action wells — same tints as toast-icon (--toast-icon-bg / --toast-accent) */
.st-act-ico{
  width:38px;height:38px;border-radius:11px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center
}
.st-act-ico--buy,.st-act-ico--trade{background:rgba(34,197,94,.13)}
.st-act-ico--sell{background:rgba(244,63,94,.13)}
.st-act-ico--transfer,.st-act-ico--inf{background:rgba(77,184,255,.13)}
.st-act-ico--launch{background:rgba(236,72,153,.13)}
.st-act-ico--grad{background:rgba(59,130,246,.13)}
.st-act-ico--whale{background:rgba(168,85,247,.13)}
.st-act-ico--orders{background:rgba(245,158,11,.13)}
.st-act-ico--suc{background:rgba(16,185,129,.14)}
.st-act-ico--err{background:rgba(239,68,68,.13)}
.st-act-ico img{
  width:22px;height:22px;object-fit:contain;display:block;
  filter:drop-shadow(0 1px 3px rgba(0,0,0,.18))
}
.st-row--toast,.st-feed-item--toast{position:relative}
.st-row--toast{padding-left:20px}
.st-feed-item--toast{padding-left:16px}
.st-row--toast::before,.st-feed-item--toast::before{
  content:'';position:absolute;left:8px;top:50%;transform:translateY(-50%);
  width:3px;height:58%;border-radius:3px;
  background:var(--st-rail);box-shadow:0 0 10px var(--st-rail)
}
.st-feed-item--toast::before{left:4px}
.st-row--buy,.st-row--trade,.st-feed-item--buy,.st-feed-item--trade{--st-rail:#22C55E}
.st-row--sell,.st-feed-item--sell{--st-rail:#F43F5E}
.st-row--transfer,.st-row--inf,.st-feed-item--transfer,.st-feed-item--inf{--st-rail:#4DB8FF}
.st-row--launch,.st-feed-item--launch{--st-rail:#EC4899}
.st-row--grad,.st-feed-item--grad{--st-rail:#3B82F6}
.st-row--whale,.st-feed-item--whale{--st-rail:#A855F7}
.st-row--orders,.st-feed-item--orders{--st-rail:#F59E0B}
.st-row--suc,.st-feed-item--suc{--st-rail:#10B981}
.st-row--err,.st-feed-item--err{--st-rail:#EF4444}
.st-row-info{flex:1;min-width:0}
.st-row-title{font-size:14px;font-weight:650;color:var(--t1);letter-spacing:-.15px}
.st-row-sub{font-size:12px;color:var(--t3);line-height:1.4;margin-top:2px;text-wrap:pretty}
.st-card .wlt-toggle{position:relative;min-width:40px;min-height:40px;justify-content:center;flex-shrink:0}
.st-feed-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-right:12px}
.st-clear{
  margin:14px 8px 0 0;padding:8px 12px;min-height:40px;border:none;border-radius:10px;
  background:none;color:var(--t3);font-family:'Inter',sans-serif;font-size:12px;font-weight:700;
  cursor:pointer;transition-property:background,color,transform;transition-duration:.15s
}
.st-clear:hover{background:rgba(10,37,64,.05);color:var(--t1)}
.st-clear:active{transform:scale(.96)}
.st-chips{display:flex;gap:6px;padding:0 16px 12px}
.st-chip{
  min-height:32px;padding:6px 12px;border:none;border-radius:999px;
  background:rgba(10,37,64,.05);color:var(--t3);font-family:'Inter',sans-serif;
  font-size:12px;font-weight:700;cursor:pointer;
  transition-property:background,color,transform;transition-duration:.15s
}
.st-chip:hover{color:var(--t1)}
.st-chip:active{transform:scale(.96)}
.st-chip.is-on{background:rgba(10,37,64,.1);color:var(--t1)}
.st-feed{padding:0 8px 10px}
.st-feed-item{
  display:flex;align-items:flex-start;gap:12px;
  padding:10px 8px;border-radius:12px
}
.st-feed-item .st-act-ico{width:32px;height:32px;border-radius:9px}
.st-feed-item .st-act-ico img{width:18px;height:18px}
.st-feed-ico{
  width:32px;height:32px;border-radius:9px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:rgba(10,37,64,.05)
}
.st-feed-ico img{width:18px;height:18px;object-fit:contain;display:block}
.st-feed-body{flex:1;min-width:0}
.st-feed-title{font-size:13px;font-weight:650;color:var(--t1);letter-spacing:-.1px}
.st-feed-sub{font-size:12px;color:var(--t3);line-height:1.4;margin-top:2px}
.st-feed-time{font-size:11px;font-weight:600;color:var(--t3);font-variant-numeric:tabular-nums;flex-shrink:0;padding-top:2px}
.st-feed-empty{padding:18px 16px 22px;font-size:13px;color:var(--t3);line-height:1.45;text-wrap:pretty}
@media (prefers-reduced-motion:reduce){
  .st-pane > .st-card{animation:none}
}
[data-theme="dark"] .st-nav{
  background:rgba(255,255,255,.04);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)
}
[data-theme="dark"] .st-nav-btn.is-on{
  background:rgba(255,255,255,.1);color:#F4F4EF;
  box-shadow:0 2px 8px rgba(0,0,0,.28),0 0 0 1px rgba(255,255,255,.08)
}
[data-theme="dark"] .st-card{
  background:var(--bg2);
  box-shadow:0 8px 28px rgba(0,0,0,.28),0 0 0 1px rgba(255,255,255,.07)
}
[data-theme="dark"] .st-row + .st-row{box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
[data-theme="dark"] .st-row-ico,[data-theme="dark"] .st-feed-ico{background:rgba(255,255,255,.06)}
[data-theme="dark"] .st-row-ico{box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}
[data-theme="dark"] .st-chip{background:rgba(255,255,255,.05);color:#8A8A82}
[data-theme="dark"] .st-chip.is-on{background:rgba(255,255,255,.12);color:#F4F4EF}
[data-theme="dark"] .st-clear:hover{background:rgba(255,255,255,.06);color:#F4F4EF}

/* ─── SCROLLBAR ─── */
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(0,152,234,.2);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:rgba(0,152,234,.4)}

/* ═══════════════ DETAIL VIEW ═══════════════ */
.detail-view{display:none;padding:20px 24px 40px;flex:1;min-width:0}
.detail-view.active{display:block}

.btn-back{
  display:flex;align-items:center;gap:7px;
  padding:9px 20px;background:rgba(255,255,255,.92);
  border:1.5px solid rgba(0,152,234,.22);border-radius:12px;
  color:var(--t2);font-family:'Inter',sans-serif;
  font-size:13px;font-weight:700;cursor:pointer;transition-property:background,border-color,color,box-shadow;transition-duration:.15s;
  backdrop-filter:blur(10px);box-shadow:0 2px 8px rgba(10,37,64,.06)
}
.btn-back:hover{border-color:var(--blue);color:var(--blue);background:rgba(0,152,234,.07);box-shadow:0 4px 14px rgba(0,152,234,.12)}
.dv-actions{display:flex;gap:6px;flex-wrap:wrap;flex-shrink:0;align-items:center}
.dv-btn{
  padding:0 10px;background:rgba(255,255,255,.92);
  border:1.5px solid rgba(0,152,234,.2);border-radius:10px;
  color:var(--t2);font-family:'Inter',sans-serif;
  font-size:12px;font-weight:700;cursor:pointer;
  transition-property:border-color,color,box-shadow,transform,background;
  transition-duration:.15s;
  white-space:nowrap;backdrop-filter:blur(10px);
  box-shadow:0 2px 8px rgba(10,37,64,.06);
  display:inline-flex;align-items:center;gap:6px;
  min-width:40px;min-height:40px;justify-content:center;
  -webkit-font-smoothing:antialiased
}
a.dv-btn{text-decoration:none}
.dv-btn[hidden]{display:none!important}
.dv-btn:hover{border-color:var(--blue);color:var(--blue);box-shadow:0 4px 14px rgba(0,152,234,.14)}
.dv-btn:focus-visible{
  outline:none;
  box-shadow:0 0 0 2px rgba(0,152,234,.45);
}
.dv-fav.active{border-color:rgba(0,152,234,.55);color:var(--blue)}

/* ── EDIT PROFILE BUTTON ── */
.btn-edit-profile{
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 22px;height:42px;
  background:linear-gradient(90deg,var(--blue),var(--blue2));
  border:none;border-radius:12px;
  font-family:'Inter',sans-serif;font-size:14px;font-weight:700;color:#fff;
  cursor:pointer;
  box-shadow:0 4px 18px rgba(0,152,234,.35);
  transition-property:box-shadow,transform;transition-duration:.2s cubic-bezier(.4,0,.2,1)}
.btn-edit-profile:hover{box-shadow:0 6px 28px rgba(0,152,234,.55);transform:translateY(-1px)}
.btn-edit-profile svg{flex-shrink:0}

/* ── EDIT PROFILE MODAL ── */
#editProfileModal .modal{max-width:480px;padding:0;overflow:hidden}
.ep-top{
  display:flex;align-items:center;gap:22px;
  padding:28px 28px 24px;
  background:linear-gradient(135deg,rgba(0,152,234,.07) 0%,rgba(77,184,255,.03) 100%);
  border-bottom:1.5px solid rgba(0,152,234,.1)
}
.ep-avatar-wrap{
  position:relative;flex-shrink:0;
  width:86px;height:86px;cursor:pointer
}
.ep-avatar{
  width:86px;height:86px;border-radius:50%;
  background:linear-gradient(135deg,var(--blue),var(--blue2));
  display:flex;align-items:center;justify-content:center;
  font-size:36px;
  border:3px solid rgba(0,152,234,.25);
  box-shadow:0 8px 24px rgba(0,152,234,.22);
  transition:opacity .15s
}
.ep-avatar-wrap:hover .ep-avatar{opacity:.75}
.ep-avatar-wrap:hover::after{
  content:'Change';position:absolute;inset:0;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:700;color:#fff;letter-spacing:.3px;
  background:rgba(0,152,234,.42);pointer-events:none
}
.ep-cam-btn{
  position:absolute;bottom:3px;right:3px;
  width:26px;height:26px;border-radius:50%;
  background:#00C853;border:2.5px solid #fff;
  display:flex;align-items:center;justify-content:center;
  pointer-events:none;
  box-shadow:0 2px 10px rgba(0,200,83,.45)
}
.ep-cam-btn svg{width:12px;height:12px;color:#fff;stroke-width:2.4}
.ep-title-col{flex:1;min-width:0}
.ep-title{font-size:19px;font-weight:800;color:var(--t1);margin-bottom:5px;line-height:1.25}
.ep-sub{font-size:13px;color:var(--t2);font-weight:500;line-height:1.5}
.ep-body{padding:20px 24px;display:flex;flex-direction:column;gap:14px}
.ep-field-wrap{
  background:rgba(234,246,255,.65);
  border:1.5px solid rgba(0,152,234,.1);
  border-radius:12px;padding:16px 18px;
  display:flex;flex-direction:column;gap:8px
}
.ep-field-head{display:flex;align-items:center;justify-content:space-between}
.ep-label{font-size:11px;font-weight:700;color:var(--t2);text-transform:uppercase;letter-spacing:.7px}
.ep-req{color:var(--red)}
.ep-max-badge{
  font-size:11px;font-weight:700;color:var(--t3);
  background:rgba(0,152,234,.07);border:1px solid rgba(0,152,234,.12);
  border-radius:20px;padding:2px 10px
}
.ep-input{
  border:1.5px solid rgba(0,152,234,.14);border-radius:8px;
  background:rgba(255,255,255,.9);
  font-family:'Inter',sans-serif;font-size:15px;font-weight:600;color:var(--t1);
  padding:10px 14px;width:100%;outline:none;
  transition:border-color .15s,box-shadow .15s
}
.ep-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,152,234,.1)}
.ep-input::placeholder{color:rgba(10,37,64,.22)}
.ep-hint{font-size:11px;color:var(--t3);line-height:1.4}
.ep-textarea{
  border:1.5px solid rgba(0,152,234,.14);border-radius:8px;
  background:rgba(255,255,255,.9);
  font-family:'Inter',sans-serif;font-size:14px;font-weight:500;color:var(--t1);
  padding:10px 14px;width:100%;outline:none;resize:vertical;min-height:96px;
  transition:border-color .15s,box-shadow .15s
}
.ep-textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,152,234,.1)}
.ep-textarea::placeholder{color:rgba(10,37,64,.22)}
.ep-footer{
  display:flex;justify-content:flex-end;
  padding:16px 24px 22px;
  border-top:1.5px solid rgba(0,152,234,.1)
}
.btn-ep-save{
  padding:13px 44px;border:none;border-radius:12px;
  background:linear-gradient(90deg,#00C853,#00E676);color:#fff;
  font-family:'Inter',sans-serif;font-size:15px;font-weight:800;cursor:pointer;
  box-shadow:0 6px 22px rgba(0,200,83,.38);
  transition-property:box-shadow,transform;transition-duration:.2s cubic-bezier(.4,0,.2,1)}
.btn-ep-save:hover{box-shadow:0 8px 32px rgba(0,200,83,.58);transform:translateY(-1px)}

.dv-header{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:12px 14px;background:rgba(234,246,255,.94);
  border:1.5px solid rgba(0,152,234,.12);
  border-radius:24px;margin-bottom:8px;
  backdrop-filter:blur(12px);box-shadow:0 4px 20px rgba(10,37,64,.06);
  overflow:visible;position:relative;z-index:2
}
.dv-hleft{
  display:flex;align-items:center;gap:14px;
  min-width:0;flex:1 1 auto
}
.dv-img{width:64px;height:64px;border-radius:14px;flex-shrink:0;overflow:hidden;display:flex;align-items:center;justify-content:center;font-size:34px;box-shadow:0 6px 20px rgba(10,37,64,.15);outline:1px solid rgba(0,0,0,.1);outline-offset:-1px;transform-origin:center center}
.dv-hinfo{display:flex;align-items:center;gap:18px;min-width:0}
.dv-hid{display:flex;flex-direction:column;gap:2px;min-width:0}
.dv-hname{font-size:20px;font-weight:900;letter-spacing:-.4px;color:var(--t1);text-wrap:balance;-webkit-font-smoothing:antialiased;line-height:1.15}
.dv-htick-row{display:flex;align-items:center;gap:8px;min-width:0}
.dv-htick{font-size:14px;font-weight:700;color:var(--blue)}
.dv-viewers{
  display:inline-flex;align-items:center;gap:5px;
  padding:2px 8px 2px 6px;border-radius:999px;
  background:rgba(0,152,234,.08);border:1px solid rgba(0,152,234,.14);
  color:var(--t2);font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;
  cursor:default;user-select:none;position:relative;line-height:1.2
}
.dv-viewers-ico{width:14px;height:14px;opacity:.85;flex-shrink:0}
.dv-viewers-n{min-width:.7em}
.dv-viewers-tip{
  position:absolute;left:50%;bottom:calc(100% + 7px);transform:translateX(-50%) translateY(2px);
  padding:5px 8px;border-radius:7px;white-space:nowrap;
  background:rgba(12,20,32,.92);color:#eaf3ff;font-size:11px;font-weight:600;
  opacity:0;pointer-events:none;transition:opacity .15s ease,transform .15s ease;
  box-shadow:0 6px 18px rgba(0,0,0,.28);z-index:5
}
.dv-viewers:hover .dv-viewers-tip,.dv-viewers:focus-visible .dv-viewers-tip{
  opacity:1;transform:translateX(-50%) translateY(0)
}
/* Market cap is plain type beside identity — no card, well, or border box. */
.dv-mc{
  display:flex;flex-direction:column;align-items:flex-start;justify-content:center;
  gap:2px;min-width:0;flex-shrink:0;
  padding:0;background:none;border:none
}
.dv-mc-lbl{
  font-family:'Inter',sans-serif;font-size:11px;font-weight:600;
  color:var(--t3);letter-spacing:.01em;line-height:1;
  white-space:nowrap;-webkit-font-smoothing:antialiased
}
.dv-mc-val{
  font-family:'Inter',sans-serif;font-size:36px;font-weight:800;
  color:var(--t1);letter-spacing:-.9px;line-height:.95;white-space:nowrap;
  font-variant-numeric:tabular-nums;
  -webkit-font-smoothing:antialiased
}
.dv-btn-ico{width:18px;height:18px;object-fit:contain;flex-shrink:0}
.dv-btn-svg{display:block}
/* ── Metrics strip ─────────────────────────────────────────────────────── */
.lc-stat{
  display:flex;align-items:stretch;gap:10px;
  background:transparent;border:none
}
.lc-stat-cell{
  flex:1;padding:16px 18px;
  display:flex;flex-direction:column;justify-content:center;gap:4px;min-width:0;
  background:rgba(234,246,255,.94);
  border:1.5px solid rgba(0,152,234,.1);
  border-radius:var(--r);
  backdrop-filter:blur(12px);
  box-shadow:0 2px 14px rgba(10,37,64,.05)
}
.lc-stat-ath{flex:1.6}
.lc-stat-div{display:none}
.lc-stat-lbl{
  font-family:'Inter',sans-serif;font-size:10px;font-weight:600;
  color:var(--t3);text-transform:uppercase;letter-spacing:.07em;white-space:nowrap
}
.lc-stat-val{
  font-family:'Inter',sans-serif;font-size:20px;font-weight:800;
  color:var(--t1);white-space:nowrap;letter-spacing:-.4px;line-height:1.1
}
.lc-stat-val.up{color:var(--grn)}.lc-stat-val.dn{color:var(--red)}
@keyframes statFlash{
  0%{filter:brightness(1.4)}
  100%{filter:brightness(1)}
}
.stat-flash{animation:statFlash .55s ease-out}
@media (prefers-reduced-motion:reduce){
  .stat-flash{animation:none}
}
.lc-ath-top{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:8px}
.lc-ath-pct{font-family:'Inter',sans-serif;font-size:13px;font-weight:800;color:var(--blue)}
.lc-ath-bar{height:6px;background:rgba(0,152,234,.12);border-radius:4px;overflow:hidden}
.lc-ath-fill{
  height:100%;border-radius:4px;
  background:linear-gradient(90deg,var(--blue),var(--blue2));
  transition:width .7s ease
}


.dv-grid{display:grid;grid-template-columns:1fr 300px;gap:18px;align-items:start}
.dv-left{display:flex;flex-direction:column;gap:14px;min-width:0}
.dv-right{display:flex;flex-direction:column;gap:14px}

/* ── Referral Panel ─────────────────────────────────────────────────────── */
.pv-ref-hero{
  position:relative;overflow:hidden;text-align:center;
  padding:28px 20px 22px;margin-bottom:12px;
  background:rgba(234,246,255,.94);
  border:1.5px solid rgba(0,152,234,.14);
  border-radius:16px;
  box-shadow:0 2px 16px rgba(10,37,64,.05);
}
.pv-ref-hero-glow{
  display:none;pointer-events:none;
  position:absolute;inset:-40% -20% auto auto;width:220px;height:220px;border-radius:50%;
  background:radial-gradient(circle,rgba(0,152,234,.22) 0%,transparent 70%);
}
.pv-ref-hero-icon{position:relative;z-index:1;line-height:1;margin-bottom:10px}
.pv-ref-hero-img{
  width:64px;height:64px;object-fit:contain;display:block;margin:0 auto;
  outline:1px solid rgba(0,0,0,.08);outline-offset:2px;border-radius:16px;
}
.pv-ref-hero-title{
  position:relative;z-index:1;
  font-size:22px;font-weight:900;color:var(--t1);margin-bottom:8px;
  letter-spacing:-.4px;text-wrap:balance;
}
.pv-ref-hero-sub{
  position:relative;z-index:1;
  font-size:13px;color:var(--t3);line-height:1.6;max-width:420px;margin:0 auto;
  text-wrap:pretty;
}
.pv-ref-hero-sub strong{color:var(--blue);font-weight:800}
.pv-ref-hero-pill{
  position:relative;z-index:1;display:inline-flex;align-items:center;margin-top:14px;
  padding:5px 11px;border-radius:999px;
  font-size:11px;font-weight:800;letter-spacing:.2px;
  color:var(--blue);background:rgba(0,152,234,.1);border:1px solid rgba(0,152,234,.2);
}
.pv-ref-kicker{
  position:relative;z-index:1;
  font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
  color:var(--blue);margin-bottom:8px;
}
.pv-ref-hero-title{text-wrap:balance}
.pv-ref-steps{
  position:relative;z-index:1;
  list-style:none;margin:18px 0 0;padding:8px;
  display:flex;gap:8px;justify-content:center;flex-wrap:wrap;
  background:rgba(255,255,255,.55);
  border-radius:16px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 1px 8px rgba(10,37,64,.04);
}
.pv-ref-step{
  display:flex;align-items:center;gap:8px;
  flex:1 1 140px;min-height:44px;padding:8px 10px 8px 8px;
  background:rgba(255,255,255,.92);
  border-radius:12px;
  box-shadow:0 1px 6px rgba(10,37,64,.05);
}
.pv-ref-step-n{
  width:26px;height:26px;border-radius:8px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:800;color:#fff;
  background:linear-gradient(135deg,#0098ea,#0077c8);
  font-variant-numeric:tabular-nums;
}
.pv-ref-step-t{
  font-size:12.5px;font-weight:700;color:var(--t1);line-height:1.25;
  text-wrap:pretty;text-align:left;
}

.pv-ref-scoreboard{
  display:flex;gap:8px;align-items:stretch;margin-bottom:12px;
  padding:8px;border-radius:20px;
  background:rgba(255,255,255,.92);
  box-shadow:0 8px 28px rgba(10,37,64,.07);
}
.pv-ref-score{
  flex:1.15;min-width:0;padding:20px 18px 16px;
  border-radius:12px;text-align:left;
  background:linear-gradient(180deg,rgba(234,246,255,.95),rgba(255,255,255,.9));
  box-shadow:0 1px 0 rgba(255,255,255,.8) inset;
}
.pv-ref-score-n{
  font-size:40px;font-weight:900;letter-spacing:-1.4px;line-height:1;
  color:var(--t1);font-variant-numeric:tabular-nums;
}
.pv-ref-score-l{
  margin-top:8px;font-size:12px;font-weight:700;color:var(--t3);
  letter-spacing:.04em;text-transform:uppercase;
}
.pv-ref-kpis{display:flex;flex-direction:column;gap:8px;flex:1;min-width:0}
.pv-ref-kpi{
  flex:1;display:flex;align-items:center;justify-content:space-between;gap:10px;
  min-height:40px;padding:8px 12px;border-radius:12px;
  background:rgba(10,37,64,.035);
}
.pv-ref-kpi-n{
  font-size:18px;font-weight:800;letter-spacing:-.4px;
  color:var(--t1);font-variant-numeric:tabular-nums;
}
.pv-ref-kpi-l{font-size:11px;font-weight:700;color:var(--t3);letter-spacing:.04em;text-transform:uppercase}

.pv-ref-claim-side{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}
.pv-ref-claim-amt{
  font-size:16px;font-weight:800;letter-spacing:-.3px;color:var(--t1);
  font-variant-numeric:tabular-nums;
}
.pv-ref-claim-amt-l{font-size:10px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.4px}

.pv-ref-history-n{
  margin-left:6px;font-weight:700;color:var(--t3);
  font-variant-numeric:tabular-nums;
}
.pv-ref-roster{display:flex;flex-direction:column;gap:8px}
.pv-ref-person{
  display:flex;align-items:center;gap:12px;
  min-height:52px;padding:10px 12px 10px 14px;border-radius:12px;
  position:relative;
  background:rgba(255,255,255,.78);
  box-shadow:0 1px 8px rgba(10,37,64,.05);
  animation:pv-ref-row-in .35s cubic-bezier(.2,0,0,1) both;
}
.pv-ref-person-mark{
  position:absolute;left:6px;top:50%;transform:translateY(-50%);
  width:3px;height:58%;border-radius:3px;
  background:#4DB8FF;box-shadow:0 0 10px #4DB8FF;
}
.pv-ref-person--traded .pv-ref-person-mark{background:#22C55E;box-shadow:0 0 10px #22C55E}
.pv-ref-person-body{flex:1;min-width:0;padding-left:6px}
.pv-ref-person-addr{
  font-size:13px;font-weight:700;color:var(--t1);
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  letter-spacing:-.2px;
}
.pv-ref-person-when{font-size:11px;font-weight:600;color:var(--t3);margin-top:2px}
.pv-ref-pill{
  flex-shrink:0;padding:5px 9px;border-radius:999px;
  font-size:11px;font-weight:800;letter-spacing:.02em;
}
.pv-ref-pill--in{color:#0284c7;background:rgba(77,184,255,.14)}
.pv-ref-pill--traded{color:#15803d;background:rgba(34,197,94,.14)}
@keyframes pv-ref-row-in{
  from{opacity:0;transform:translateY(6px)}
  to{opacity:1;transform:none}
}
.pv-ref-hero,.pv-ref-scoreboard,.pv-ref-link-card,.pv-ref-history,.pv-ref-claim{
  animation:pv-ref-in .42s cubic-bezier(.2,0,0,1) both;
}
.pv-ref-scoreboard{animation-delay:.08s}
.pv-ref-link-card{animation-delay:.16s}
.pv-ref-history{animation-delay:.24s}
.pv-ref-claim{animation-delay:.32s}
@keyframes pv-ref-in{
  from{opacity:0;transform:translateY(8px)}
  to{opacity:1;transform:none}
}

.pv-ref-stats{
  display:flex;align-items:stretch;gap:0;margin-bottom:12px;overflow:hidden;
  background:rgba(255,255,255,.92);
  border:1.5px solid rgba(0,152,234,.12);
  border-radius:16px;
  box-shadow:0 2px 12px rgba(10,37,64,.05);
}
.pv-ref-stat{flex:1;padding:18px 14px 16px;text-align:center;min-width:0}
.pv-ref-stat-val{
  font-size:22px;font-weight:900;color:var(--t1);letter-spacing:-.5px;line-height:1.1;
  font-variant-numeric:tabular-nums;
}
.pv-ref-stat--pending .pv-ref-stat-val{color:var(--gold)}
.pv-ref-stat-unit{
  font-size:10px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;
  color:var(--t3);margin-top:3px;min-height:14px;
}
.pv-ref-stat-lbl{
  font-size:11px;font-weight:700;color:var(--t3);text-transform:uppercase;
  letter-spacing:.35px;margin-top:8px;
}
.pv-ref-stat-div{width:1px;background:rgba(0,152,234,.12);align-self:stretch;flex-shrink:0}

.pv-ref-claim{
  display:flex;align-items:center;gap:14px;margin-bottom:12px;
  padding:16px 16px 16px 18px;
  background:rgba(234,246,255,.94);
  border:1.5px solid rgba(0,152,234,.18);
  border-radius:16px;
  box-shadow:0 2px 14px rgba(10,37,64,.05);
  transition-property:border-color,box-shadow,background;
  transition-duration:.2s;
  transition-timing-function:var(--ease-out);
}
.pv-ref-claim[data-state="ready"]{
  border-color:rgba(0,152,234,.42);
  box-shadow:0 0 0 3px rgba(0,152,234,.1),0 8px 24px rgba(0,152,234,.12);
}
.pv-ref-claim-copy{flex:1;min-width:0}
.pv-ref-claim-title{font-size:14px;font-weight:800;color:var(--t1);margin-bottom:4px;letter-spacing:-.2px}
.pv-ref-claim-sub{font-size:12px;color:var(--t2);line-height:1.45;text-wrap:pretty}
.pv-ref-claim-btn{
  flex-shrink:0;padding:11px 18px;min-width:108px;
  background:linear-gradient(135deg,#0098ea,#0077c8);
  border:none;border-radius:12px;
  font-family:'Inter',sans-serif;font-size:13px;font-weight:800;color:#fff;
  cursor:pointer;
  box-shadow:0 4px 14px rgba(0,152,234,.28);
  transition-property:opacity,transform,box-shadow;
  transition-duration:.15s;
  transition-timing-function:var(--ease-out);
}
.pv-ref-claim-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 18px rgba(0,152,234,.4)}
.pv-ref-claim-btn:active:not(:disabled){transform:scale(.96)}
.pv-ref-claim-btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}

.pv-ref-link-card{
  background:rgba(234,246,255,.94);
  border:1.5px solid rgba(0,152,234,.14);
  border-radius:16px;padding:18px;margin-bottom:12px;
  box-shadow:0 2px 16px rgba(10,37,64,.05);
}
.pv-ref-link-lbl{font-size:11px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}
.pv-ref-link-row{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.pv-ref-link-url{
  flex:1;min-width:0;font-size:12.5px;font-weight:600;color:var(--blue);
  background:rgba(0,152,234,.08);border:1.5px solid rgba(0,152,234,.16);
  border-radius:11px;padding:11px 13px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
}
.pv-ref-copy-btn{
  display:inline-flex;align-items:center;gap:6px;padding:10px 14px;
  background:var(--bg2);border:1.5px solid rgba(0,152,234,.2);
  border-radius:11px;font-family:'Inter',sans-serif;font-size:13px;font-weight:700;
  color:var(--blue);cursor:pointer;white-space:nowrap;flex-shrink:0;
  transition-property:background,border-color,transform;
  transition-duration:.15s;
  box-shadow:0 2px 8px rgba(10,37,64,.05);
}
.pv-ref-copy-btn:hover{background:rgba(0,152,234,.08);border-color:var(--blue)}
.pv-ref-copy-btn:active{transform:scale(.96)}
.pv-ref-tg-btn{
  width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;
  background:#2AABEE;border:none;border-radius:12px;
  font-family:'Inter',sans-serif;font-size:14px;font-weight:700;color:#fff;
  cursor:pointer;
  transition-property:box-shadow,transform,background;
  transition-duration:.15s;
  box-shadow:0 4px 14px rgba(42,171,238,.28);
}
.pv-ref-tg-btn:hover{background:#229ED9;box-shadow:0 6px 18px rgba(42,171,238,.4);transform:translateY(-1px)}
.pv-ref-tg-btn:active{transform:scale(.96)}

.pv-ref-history{
  background:rgba(234,246,255,.94);
  border:1.5px solid rgba(0,152,234,.12);
  border-radius:16px;padding:18px;
  box-shadow:0 2px 16px rgba(10,37,64,.05);
}
.pv-ref-history-title{font-size:14px;font-weight:800;color:var(--t1);margin-bottom:12px;letter-spacing:-.2px}
.pv-ref-hist-empty{text-align:center;padding:22px 8px;color:var(--t3);font-size:13px;line-height:1.55}
.pv-ref-hist-ico{margin-bottom:8px;display:flex;justify-content:center}

/* ── Testnet campaign landing ───────────────────────────────────────────── */
.pv-camp{
  position:relative;
  width:100%;max-width:none;margin:0;padding:8px 10px 32px;
  -webkit-font-smoothing:antialiased;
}
.pv-camp-stage,.pv-camp-board,.pv-camp-cta,.pv-camp-roll{
  position:relative;z-index:1;
  max-width:720px;margin-left:auto;margin-right:auto;
  animation:pv-camp-in .5s cubic-bezier(.2,0,0,1) both;
}
.pv-camp-board{animation-delay:.1s}
.pv-camp-cta{animation-delay:.2s}
.pv-camp-roll{animation-delay:.3s}
@keyframes pv-camp-in{
  from{opacity:0;transform:translateY(10px)}
  to{opacity:1;transform:none}
}
.pv-camp-stage{
  position:relative;overflow:hidden;text-align:center;
  padding:36px 24px 28px;margin-bottom:14px;
  border-radius:24px;
  background:linear-gradient(180deg,rgba(234,246,255,.98),rgba(255,255,255,.92));
  box-shadow:0 18px 50px rgba(10,37,64,.08),0 1px 0 rgba(255,255,255,.8) inset;
}
.pv-camp-aurora{
  pointer-events:none;position:absolute;inset:-30% -10% auto;
  height:280px;
  background:
    radial-gradient(ellipse 50% 80% at 30% 40%,rgba(0,152,234,.22),transparent 70%),
    radial-gradient(ellipse 45% 70% at 78% 20%,rgba(168,85,247,.14),transparent 70%);
  animation:pv-camp-aurora 12s ease-in-out infinite alternate;
}
.pv-camp-grid{
  pointer-events:none;position:absolute;inset:0;opacity:.35;
  background-image:
    linear-gradient(rgba(10,37,64,.06) 1px,transparent 1px),
    linear-gradient(90deg,rgba(10,37,64,.06) 1px,transparent 1px);
  background-size:32px 32px;
  mask-image:linear-gradient(180deg,#000 0%,transparent 85%);
}
@keyframes pv-camp-aurora{
  from{transform:translate3d(-4%,0,0) scale(1)}
  to{transform:translate3d(4%,4%,0) scale(1.06)}
}
.pv-camp-badge{
  position:relative;z-index:1;
  display:inline-flex;align-items:center;gap:8px;
  min-height:32px;padding:6px 12px 6px 10px;margin-bottom:18px;
  border-radius:999px;
  font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
  color:var(--blue);
  background:rgba(255,255,255,.72);
  box-shadow:0 1px 8px rgba(10,37,64,.06);
}
.pv-camp-pulse{
  width:8px;height:8px;border-radius:50%;background:#22c55e;
  box-shadow:0 0 0 0 rgba(34,197,94,.55);
  animation:pv-camp-pulse 1.8s cubic-bezier(.2,0,0,1) infinite;
}
@keyframes pv-camp-pulse{
  0%{box-shadow:0 0 0 0 rgba(34,197,94,.5)}
  70%{box-shadow:0 0 0 8px rgba(34,197,94,0)}
  100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}
}
.pv-camp-mark{
  position:relative;z-index:1;
  width:72px;height:72px;object-fit:contain;display:block;margin:0 auto 16px;
  outline:1px solid rgba(0,0,0,.1);outline-offset:3px;border-radius:18px;
  filter:drop-shadow(0 8px 18px rgba(10,37,64,.12));
}
.pv-camp-title{
  position:relative;z-index:1;
  margin:0 0 10px;font-size:40px;font-weight:900;letter-spacing:-1.4px;line-height:1.05;
  color:var(--t1);text-wrap:balance;
}
.pv-camp-lead{
  position:relative;z-index:1;
  margin:0 auto;max-width:440px;
  font-size:15px;line-height:1.55;color:var(--t2);text-wrap:pretty;
}
.pv-camp-lead strong{color:var(--t1);font-weight:800}
.pv-camp-path{
  position:relative;z-index:1;
  list-style:none;margin:26px 0 0;padding:8px;
  display:flex;align-items:stretch;gap:8px;
  border-radius:16px;
  background:rgba(255,255,255,.5);
}
.pv-camp-path-step{
  flex:1;min-width:0;min-height:64px;
  display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;
  padding:10px 14px;border-radius:12px;
  background:rgba(255,255,255,.92);
  box-shadow:0 1px 8px rgba(10,37,64,.05);
  text-align:left;
}
.pv-camp-path-step em{
  font-style:normal;font-size:11px;font-weight:800;letter-spacing:.12em;
  color:var(--blue);font-variant-numeric:tabular-nums;
}
.pv-camp-path-step span{font-size:15px;font-weight:800;color:var(--t1)}

.pv-camp-board{
  display:flex;align-items:stretch;gap:8px;margin-bottom:14px;
  padding:8px;border-radius:22px;
  background:rgba(255,255,255,.92);
  box-shadow:0 10px 32px rgba(10,37,64,.07);
}
.pv-camp-metric{
  flex:1.4;min-width:0;padding:22px 20px 18px;border-radius:14px;
  background:linear-gradient(180deg,rgba(234,246,255,.9),rgba(255,255,255,.85));
}
.pv-camp-metric-n{
  font-size:64px;font-weight:900;letter-spacing:-2.4px;line-height:.9;
  color:var(--t1);font-variant-numeric:tabular-nums;
}
.pv-camp-metric-l{
  margin-top:10px;font-size:12px;font-weight:800;letter-spacing:.08em;
  text-transform:uppercase;color:var(--t3);
}
.pv-camp-splits{display:flex;flex-direction:column;gap:8px;flex:1;min-width:0}
.pv-camp-split{
  flex:1;display:flex;flex-direction:column;justify-content:center;gap:2px;
  min-height:44px;padding:12px 14px;border-radius:14px;
  background:rgba(10,37,64,.035);
}
.pv-camp-split-n{
  font-size:22px;font-weight:800;letter-spacing:-.6px;
  font-variant-numeric:tabular-nums;color:var(--t1);
}
.pv-camp-split-l{font-size:11px;font-weight:700;color:var(--t3);letter-spacing:.04em;text-transform:uppercase}

.pv-camp-cta{
  padding:16px;margin-bottom:14px;border-radius:22px;
  background:rgba(255,255,255,.92);
  box-shadow:0 10px 32px rgba(10,37,64,.06);
}
.pv-camp-cta-lbl{
  font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  color:var(--t3);margin-bottom:10px;
}
.pv-camp-cta-row{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.pv-camp-cta-url{
  flex:1;min-width:0;padding:12px 14px;border-radius:14px;
  font-size:13px;font-weight:600;color:var(--t1);
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  background:rgba(10,37,64,.04);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.pv-camp-copy{
  display:inline-flex;align-items:center;gap:6px;flex-shrink:0;
  min-height:44px;padding:10px 16px 10px 14px;border-radius:14px;
  border:none;cursor:pointer;
  font-family:'Inter',sans-serif;font-size:13px;font-weight:800;color:#fff;
  background:linear-gradient(135deg,#0098ea,#0077c8);
  box-shadow:0 4px 14px rgba(0,152,234,.28);
  transition-property:transform,box-shadow,opacity;
  transition-duration:.18s;transition-timing-function:cubic-bezier(.2,0,0,1);
}
.pv-camp-copy:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(0,152,234,.36)}
.pv-camp-copy:active{transform:scale(.96)}
.pv-camp-tg{
  display:flex;align-items:center;justify-content:center;gap:8px;width:100%;
  min-height:48px;padding:12px 16px;border:none;border-radius:14px;cursor:pointer;
  font-family:'Inter',sans-serif;font-size:14px;font-weight:800;color:#fff;
  background:#2AABEE;
  box-shadow:0 6px 18px rgba(42,171,238,.28);
  transition-property:transform,box-shadow,background;
  transition-duration:.18s;transition-timing-function:cubic-bezier(.2,0,0,1);
}
.pv-camp-tg:hover{background:#229ED9;transform:translateY(-1px);box-shadow:0 8px 22px rgba(42,171,238,.38)}
.pv-camp-tg:active{transform:scale(.96)}

.pv-camp-roll{
  padding:18px 16px 16px;border-radius:22px;
  background:rgba(255,255,255,.92);
  box-shadow:0 10px 32px rgba(10,37,64,.06);
}
.pv-camp-roll-hd{
  font-size:14px;font-weight:800;color:var(--t1);letter-spacing:-.2px;margin-bottom:12px;
}
.pv-camp-roll-n{margin-left:6px;font-weight:700;color:var(--t3);font-variant-numeric:tabular-nums}
.pv-camp-empty{text-align:center;padding:28px 12px;color:var(--t3);font-size:13px;line-height:1.55;text-wrap:pretty}
.pv-camp-empty-ico{margin-bottom:10px;display:flex;justify-content:center}
.pv-camp-empty-ico img{opacity:.5;object-fit:contain}
.pv-camp-people{display:flex;flex-direction:column;gap:8px}
.pv-camp-person{
  display:flex;align-items:center;gap:12px;position:relative;
  min-height:52px;padding:10px 12px 10px 16px;border-radius:14px;
  background:rgba(10,37,64,.035);
  animation:pv-camp-in .35s cubic-bezier(.2,0,0,1) both;
  text-decoration:none;color:inherit;cursor:pointer;
  transition:background .15s,transform var(--dur-2,.15s) cubic-bezier(.2,0,0,1);
}
.pv-camp-person:hover{background:rgba(10,37,64,.07)}
.pv-camp-person:active{transform:scale(.98)}
.pv-camp-person-mark{
  position:absolute;left:7px;top:50%;transform:translateY(-50%);
  width:3px;height:58%;border-radius:3px;
  background:#4DB8FF;box-shadow:0 0 10px #4DB8FF;
}
.pv-camp-person-av{width:32px;height:32px;border-radius:50%;flex-shrink:0;overflow:hidden;background:rgba(10,37,64,.06)}
.pv-camp-person-av img{width:100%;height:100%;object-fit:cover;display:block}
.pv-camp-person-body{flex:1;min-width:0}
.pv-camp-person-addr{
  font-size:13px;font-weight:700;color:var(--t1);
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:-.2px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.pv-camp-person-when{
  font-size:11px;font-weight:600;color:var(--t3);margin-top:2px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.pv-camp-in{
  flex-shrink:0;padding:5px 9px;border-radius:999px;
  font-size:11px;font-weight:800;letter-spacing:.04em;
  color:#0284c7;background:rgba(77,184,255,.14);
}
.pv-camp-in--active{color:#00A652;background:rgba(0,200,83,.14)}

@media (max-width:560px){
  .pv-camp-title{font-size:30px;letter-spacing:-1px}
  .pv-camp-metric-n{font-size:48px}
  .pv-camp-board{flex-direction:column}
  .pv-camp-splits{flex-direction:row}
  .pv-camp-split{flex:1}
  .pv-camp-path{flex-direction:column}
  .pv-camp-cta-row{flex-wrap:wrap}
  .pv-camp-copy{width:100%;justify-content:center}
}
/* ── Vault / Wallet Manager ──────────────────────────────────────────────────── */

/* Hero balance card */

/* FAB buttons */

/* Wallet list */

/* Empty state */

/* Wallet cards */
/* inset shadow = colored left accent bar; avoids border-width mismatch glitch */
/* Custodial vault emblem: fixed purple gradient + centred SVG (overrides rotation) */
/* Card actions: one primary CTA (Deposit) + a compact row of icon-only
   secondary actions. Replaces a 5-way button grid where every action
   fought for the same visual weight. */

/* Back button */

/* Overlays */

/* Overlay icon bubbles */

/* ── Vault Modal ──────────────────────────────────────────────────────── */
.wm-modal-backdrop{
  position:fixed;inset:0;z-index:2000;
  background:rgba(0,0,0,.5);backdrop-filter:blur(8px);
  display:flex;align-items:center;justify-content:center;
  padding:20px;
}
.wm-modal-box{
  position:relative;
  background:var(--bg2);
  border:1.5px solid var(--b2);
  border-radius:20px;
  width:100%;max-width:440px;
  padding:48px 24px 28px;
  box-shadow:0 24px 64px rgba(0,0,0,.28),0 0 0 1px var(--b1);
  animation:wmModalIn .2s var(--ease-out);
  max-height:90vh;overflow-y:auto;
}
.wm-modal-close{
  position:absolute;top:14px;right:14px;z-index:10;
  width:32px;height:32px;border-radius:50%;
  background:var(--b1);border:1px solid var(--b2);
  color:var(--t2);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background .15s,color .15s;flex-shrink:0;
}
.wm-modal-close:hover{background:var(--b2);color:var(--t1)}
@keyframes wmModalIn{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}
@keyframes wmModalOut{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}

/* ── Set Active animation ─────────────────────────────────────────────────── */
@keyframes wmActivatePulse{
  0%  {box-shadow:inset 3px 0 0 #22c55e,0 0 0 0 rgba(34,197,94,.9);transform:scale(1)}
  28% {box-shadow:inset 3px 0 0 #22c55e,0 0 0 10px rgba(34,197,94,.45);transform:scale(1.018)}
  55% {box-shadow:inset 3px 0 0 #22c55e,0 0 0 22px rgba(34,197,94,.1);transform:scale(1)}
  80% {box-shadow:inset 3px 0 0 #22c55e,0 0 0 30px rgba(34,197,94,0)}
  100%{box-shadow:inset 3px 0 0 #22c55e,0 0 0 1px rgba(34,197,94,.5),0 8px 28px rgba(34,197,94,.18);transform:scale(1)}
}
@keyframes wmBadgePop{
  0%  {transform:scale(0) rotate(-15deg);opacity:0}
  65% {transform:scale(1.3) rotate(4deg);opacity:1}
  85% {transform:scale(0.92)}
  100%{transform:scale(1) rotate(0deg)}
}

/* Address card */
/* QR code block — scoped to modal to override the line-664 .wm-qr-wrap (width:200px, bg:#fff etc.) */

/* Info rows */

/* Form elements */

/* Seed warning */

/* Seed grid */

/* Copy seed button */

/* ── Seed phrase book (two-page flip) ─────────────────────────────────── */
/* Lock the modal so it never scrolls while the book is open. */

/* Page 1 · safety brief — minimal, single restrained amber accent */
/* Offline reminder — shown on page 1 only on mobile (page 2 has no room there) */

/* Page 2 · the words */
/* Classic wallet layout: two columns, column-major — 1-12 down the left, 13-24 down the right */

/* Primary send button */

/* Flow divider */

/* Wallet picker */

/* Light-theme overrides */
/* inset shadows carry through fine in light theme — no override needed */

/* Mobile responsive */


/* ── Vault extras: connected wallet, card enhancements, rename, refresh ── */

/* Connected TonConnect wallet section */
/* Connected wallet header row: icon | info | balance */
/* Name + badges in one row */
/* Balance shown right-aligned in header */
/* 3-button action row for connected wallet */

/* Card label row: [Name] [Custodial badge] [Active badge] [pencil ml:auto] */

/* Card address row with copy */

/* Active badge */

/* Active card — use .wm-card.wm-card-active (spec 0,2,0) to beat nth-child (0,1,1) */
/* Active connected wallet card */

/* Card actions: primary Deposit row + secondary icon row (see .wm-act-primary
   / .wm-act-icons above for the button styles themselves) */

/* Rename icon wrap */

/* Refresh button */

/* Picker header with Select All */

/* Light-theme overrides for new classes */

/* Custodial badge — full platform key access */
/* Mobile: keep same 2+3 span layout, just smaller buttons */

.pv-tg-connect-btn{display:inline-flex;align-items:center;padding:7px 14px;background:linear-gradient(90deg,#2aabee,#229ed9);border:none;border-radius:10px;font-family:'Inter',sans-serif;font-size:12px;font-weight:700;color:#fff;cursor:pointer;text-decoration:none;white-space:nowrap;flex-shrink:0;box-shadow:0 2px 10px rgba(42,171,238,.35)}
.pv-tg-connect-btn:hover{box-shadow:0 4px 16px rgba(42,171,238,.5)}
.pv-ref-rows{display:flex;flex-direction:column;gap:8px}
.pv-ref-row{
  display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:8px;
  padding:10px 12px;background:rgba(255,255,255,.72);border-radius:12px;
  border:1.5px solid rgba(0,152,234,.08);
}
.pv-ref-row-addr{font-size:12px;font-weight:700;color:var(--t1);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.pv-ref-row-status{font-size:11px}
.pv-ref-row-vol{font-size:11px;color:var(--t3);font-variant-numeric:tabular-nums}
.pv-ref-row-earned{font-size:12px;font-weight:700;color:var(--blue);white-space:nowrap;font-variant-numeric:tabular-nums}
.pv-ref-pending{
  margin-top:12px;padding:10px 14px;border-radius:12px;text-align:center;
  font-size:13px;color:var(--t1);
  background:rgba(255,184,0,.1);border:1.5px solid rgba(255,184,0,.25);
}

@media (max-width:520px){
  .pv-ref-claim{flex-direction:column;align-items:stretch;gap:12px}
  .pv-ref-claim-btn{width:100%;min-width:0}
  .pv-ref-claim-side{align-items:stretch}
  .pv-ref-stats{flex-wrap:wrap}
  .pv-ref-stat{flex:1 1 30%;padding:14px 10px}
  .pv-ref-stat-div{display:none}
  .pv-ref-stat-val{font-size:18px}
  .pv-ref-scoreboard{flex-direction:column}
  .pv-ref-score{text-align:center}
  .pv-ref-kpis{flex-direction:row}
  .pv-ref-kpi{flex:1;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;min-height:52px}
}

/* ── TradingView Chart ───────────────────────────────────────────────────── */
.chart-wrap{
  height:440px;
  border:1.5px solid rgba(0,152,234,.12);border-top:none;
  border-radius:0 0 var(--r) var(--r);overflow:hidden;background:#131722
}
#tvChartContainer{width:100%;height:100%}

.stats-row{display:grid;grid-template-columns:1fr 1fr 1.5fr;gap:10px}
.stat-card{
  background:rgba(234,246,255,.94);border:1.5px solid rgba(0,152,234,.1);
  border-radius:var(--r);padding:18px 20px;backdrop-filter:blur(12px);
  box-shadow:0 2px 14px rgba(10,37,64,.05)
}
.stat-hd{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.stat-ico{width:15px;height:15px;color:var(--blue);flex-shrink:0;opacity:.8}
.stat-ico-img{width:30px;height:30px;flex-shrink:0;object-fit:contain}
.stat-lbl{font-size:13px;color:var(--t2);font-weight:800;text-transform:uppercase;letter-spacing:.5px}
.stat-val{font-size:22px;font-weight:900;color:var(--t1);letter-spacing:-.03em;line-height:1.1}
.stat-mono{font-size:14px;font-family:monospace;letter-spacing:0}
.stat-sub{font-size:12px;color:var(--t3);margin-top:5px}
.stat-changes{display:flex;flex-direction:column}
.stat-chg-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 10px;margin-top:2px}
.stat-chg-item{display:flex;align-items:center;justify-content:space-between;background:rgba(0,152,234,.06);border-radius:8px;padding:7px 11px}
.stat-chg-lbl{font-size:11px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.3px}
.stat-chg-val{font-size:13px;font-weight:800;color:var(--t1)}
.stat-chg-val.up{color:var(--grn)}
.stat-chg-val.dn{color:var(--red)}

/* Detail flow Stats card (replaces Price Change grid) */
.dv-flow-card{display:flex;flex-direction:column;gap:10px;padding:14px 16px}
.dv-flow-hd{display:flex;align-items:center;justify-content:space-between;gap:10px}
.dv-flow-title{font-size:13px;font-weight:800;color:var(--t1);letter-spacing:.2px}
.dv-flow-tfs{
  display:inline-flex;align-items:center;gap:2px;padding:2px;border-radius:9px;
  background:rgba(0,152,234,.08);
  box-shadow:inset 0 0 0 1px rgba(0,152,234,.12),0 1px 2px rgba(10,37,64,.04)
}
.dv-flow-panes{flex-shrink:0}
.dv-flow-tf{
  border:none;background:transparent;color:var(--t3);cursor:pointer;
  font-size:11px;font-weight:700;padding:8px 12px;border-radius:7px;line-height:1.2;
  min-height:40px;min-width:40px;display:inline-flex;align-items:center;justify-content:center;
  touch-action:manipulation;-webkit-tap-highlight-color:transparent;
  transition-property:color,background,transform;
  transition-duration:var(--dur-1);transition-timing-function:var(--ease-out)
}
.dv-flow-tf:hover{color:var(--t2)}
.dv-flow-tf.active{background:rgba(0,152,234,.18);color:var(--t1)}
.dv-flow-tf:active{transform:scale(.96)}
.dv-flow-card[data-flow-pane="audit"] #dvFlowTfs,
.dv-flow-card[data-flow-pane="audit"] #dvFlowStats{display:none}
.dv-flow-card[data-flow-pane="stats"] #dvFlowAudit{display:none}
.dv-flow-stats{display:flex;flex-direction:column;gap:10px}
.dv-audit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.dv-audit-cell{
  display:flex;flex-direction:column;align-items:flex-start;gap:8px;
  padding:10px 12px;border-radius:10px;
  background:rgba(0,152,234,.05);
  box-shadow:0 1px 3px rgba(10,37,64,.06),inset 0 1px 0 rgba(255,255,255,.35)
}
.dv-audit-lbl{
  font-size:11px;font-weight:600;color:var(--t3);line-height:1.2;
  text-wrap:balance
}
.dv-audit-val{
  font-size:20px;font-weight:800;letter-spacing:-.02em;line-height:1.1;
  font-variant-numeric:tabular-nums;color:var(--t1);
  font-feature-settings:"tnum" 1
}
.dv-audit-val.hi{color:var(--grn)}
.dv-audit-val.mid{color:#f59e0b}
.dv-audit-val.danger{color:var(--red)}
.dv-audit-val-fees{color:var(--t1)}
.dv-flow-card[data-flow-pane="audit"] .dv-audit-cell{
  animation:dvAuditIn .28s var(--ease-out) both
}
.dv-flow-card[data-flow-pane="audit"] .dv-audit-cell:nth-child(2){animation-delay:.08s}
.dv-flow-card[data-flow-pane="audit"] .dv-audit-cell:nth-child(3){animation-delay:.16s}
@keyframes dvAuditIn{
  from{opacity:0;transform:translateY(6px)}
  to{opacity:1;transform:none}
}
@media (prefers-reduced-motion:reduce){
  .dv-flow-card[data-flow-pane="audit"] .dv-audit-cell{animation:none}
  .dv-flow-tf{transition:none}
  .dv-flow-tf:active{transform:none}
}
.dv-flow-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;font-weight:700}
.dv-flow-chg{color:var(--t2)}
.dv-flow-chg.up{color:var(--grn)}
.dv-flow-chg.dn{color:var(--red)}
.dv-flow-vol{color:var(--t1);font-variant-numeric:tabular-nums}
.dv-flow-rows{display:flex;flex-direction:column;gap:10px}
.dv-flow-row{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:3px 12px}
.dv-flow-side{display:flex;align-items:baseline;gap:5px;min-width:0}
.dv-flow-side.sell{justify-content:flex-end;text-align:right}
.dv-flow-n{font-size:13px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--t1)}
.dv-flow-side.buy .dv-flow-n{color:var(--grn)}
.dv-flow-side.sell .dv-flow-n{color:var(--red)}
.dv-flow-lbl{font-size:11px;font-weight:600;color:var(--t3)}
.dv-flow-bars{grid-column:1 / -1;display:flex;gap:4px;align-items:center;height:5px}
.dv-flow-bar{height:100%;border-radius:99px;min-width:4px;transition:width .35s var(--ease-out,ease)}
.dv-flow-bar.buy{background:linear-gradient(90deg,rgba(0,200,83,.55),var(--grn))}
.dv-flow-bar.sell{background:linear-gradient(90deg,var(--red),rgba(255,80,80,.55))}
.dv-chg-sink{display:none!important}
/* Flow Stats responsive — avoid half-width orphan on tablet, cramped TF row on phones */
@media(max-width:900px){
  .stats-row{grid-template-columns:1fr 1fr}
  .dv-flow-card{grid-column:1 / -1}
}
@media(max-width:700px){
  .dv-flow-card{padding:12px 12px;gap:8px}
  .dv-flow-hd{flex-wrap:wrap;gap:8px}
  .dv-flow-title{font-size:12px}
  .dv-flow-tfs:not(.dv-flow-panes){width:100%;justify-content:space-between}
  .dv-flow-tf{flex:1;text-align:center;padding:8px 6px;font-size:11px}
  .dv-audit-grid{gap:6px}
  .dv-audit-cell{padding:8px 8px;border-radius:8px;gap:6px}
  .dv-audit-val{font-size:16px}
  .dv-audit-lbl{font-size:10px}
  .dv-flow-meta{flex-wrap:wrap;gap:4px 10px;font-size:11px}
  .dv-flow-n{font-size:12px}
  .dv-flow-lbl{font-size:10px}
  .dv-flow-row{gap:2px 8px}
  /* Bubble node sheet: bottom drawer on phones — side panel eats the whole map */
  .bm2-pg-mode .bm2-sheet{
    top:auto;left:0;right:0;bottom:0;width:auto;max-height:min(58vh,420px);
    border-radius:16px 16px 0 0;border-left:none;border-right:none;border-bottom:none;
    transform:translateY(0)
  }
  .bm2-pg-mode .bm2-sheet--off{transform:translateY(102%);opacity:0}
  .bm2-canvas-wrap{height:min(360px,55vh)}
  .tgt-dv-feed{max-height:min(420px,55vh)}
  .dv-viewers-tip{left:0;transform:translateX(0) translateY(2px)}
  .dv-viewers:hover .dv-viewers-tip,.dv-viewers:focus-visible .dv-viewers-tip{transform:translateX(0) translateY(0)}
}
@media(max-width:380px){
  .dv-flow-side{flex-wrap:wrap;gap:2px 4px}
  .dv-vtab{padding:6px 9px;font-size:10.5px}
}

/* ── Lightweight Charts — always dark (industry standard) ─────────────────── */
.dv-chart-wrap{background:linear-gradient(160deg,#0d1a2e 0%,#09111f 100%);border:1px solid rgba(255,255,255,.10);border-radius:12px;overflow:visible;position:relative;transition:opacity .15s}
.dv-chart-wrap.loading{opacity:.65}
[data-theme="light"] .dv-chart-wrap{background:#f5f8fc;border-color:rgba(0,0,0,.08)}
[data-theme="light"] .dv-chart-tf{color:#8090a0}
[data-theme="light"] .dv-chart-tf:hover{background:rgba(0,0,0,.06);color:#3a4a5a}
[data-theme="light"] .dv-chart-tf.active{background:rgba(0,0,0,.08);color:#1a2a3a}
[data-theme="light"] .dv-tf-btn{color:#6b7a8d;background:rgba(0,0,0,.04);border-color:rgba(0,0,0,.1)}
[data-theme="light"] .dv-tf-menu{background:#ffffff;border-color:rgba(0,0,0,.1);box-shadow:0 8px 28px rgba(0,0,0,.12)}
[data-theme="light"] .dv-tf-opt{color:#8090a0}
[data-theme="light"] .dv-tf-opt:hover{background:rgba(0,0,0,.05);color:#1a2a3a}
[data-theme="light"] .dv-chart-empty-txt{color:#8090a0}
[data-theme="light"] .dv-chart-empty-sub{color:#a0b0c0}
/* OHLC chips */
.dv-cl-chip{
  display:inline-flex;align-items:baseline;gap:4px;
  padding:2px 7px;border-radius:7px;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.06);
  white-space:nowrap;line-height:1.25
}
.dv-cl-k{font-size:9.5px;font-weight:700;color:#5a6a7c;letter-spacing:.04em}
.dv-cl-v{font-size:11.5px;font-weight:700;color:#c8d4e4;font-variant-numeric:tabular-nums}
.dv-cl-v.is-up{color:#00a86b}
.dv-cl-v.is-dn{color:#e03a55}
[data-theme="light"] .dv-cl-chip{background:rgba(0,0,0,.03);border-color:rgba(0,0,0,.06)}
[data-theme="light"] .dv-cl-k{color:#8090a0}
[data-theme="light"] .dv-cl-v{color:#1a2a3a}
[data-theme="light"] .dv-cl-v.is-up{color:#068a52}
[data-theme="light"] .dv-cl-v.is-dn{color:#c62842}
/* Chart controls — float over the plot's top-left corner instead of sitting in
   a header bar of their own. Anchored to .dv-chart-wrap (overflow:visible) and
   not to .dv-chart-el, which clips, so the timeframe menu can drop past the
   plot edge. */
.dv-chart-ctrl{
  display:flex;align-items:center;gap:6px;flex-shrink:0;
  position:absolute;top:10px;left:10px;z-index:41
}
/* Anchored left now, so the menu drops from the same edge as its button. */
.dv-chart-ctrl .dv-tf-menu{left:0;right:auto}
/* Fullscreen has its own toolbar in .dv-fs-hud. */
.dv-chart-wrap.fs .dv-chart-ctrl{display:none!important}
/* In a header bar these sat on the card background; over the plot they can land
   on a bright candle, so they carry their own ground rather than a 6% white
   wash that disappears against one. */
.dv-chart-ctrl .dv-type-toggle,
.dv-chart-ctrl .dv-tf-btn,
.dv-chart-ctrl .dv-chart-iconbtn{
  background:rgba(10,10,10,.72);
  backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)
}
.dv-chart-ctrl .dv-tf-btn:hover,
.dv-chart-ctrl .dv-chart-iconbtn:hover{background:rgba(30,30,30,.85)}
[data-theme="light"] .dv-chart-ctrl .dv-type-toggle,
[data-theme="light"] .dv-chart-ctrl .dv-tf-btn,
[data-theme="light"] .dv-chart-ctrl .dv-chart-iconbtn{background:rgba(255,255,255,.82)}
[data-theme="light"] .dv-chart-ctrl .dv-tf-btn:hover,
[data-theme="light"] .dv-chart-ctrl .dv-chart-iconbtn:hover{background:rgba(255,255,255,.95)}
.dv-chart-tfs{display:flex;gap:1px}
.dv-chart-tf{background:none;border:none;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:600;color:#3e4a5a;cursor:pointer;transition:background .12s,color .12s;white-space:nowrap}
.dv-chart-tf:hover{background:rgba(255,255,255,.06);color:#8fa4bc}
.dv-chart-tf.active{background:rgba(255,255,255,.1);color:#dce8f4}
.dv-chart-sep{width:1px;height:13px;background:rgba(255,255,255,.09);margin:0 4px;flex-shrink:0}

/* Timeframe dropdown */
.dv-tf-drop{position:relative;z-index:42}
.dv-tf-btn{display:flex;align-items:center;gap:5px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);padding:4px 10px;border-radius:6px;font-size:11px;font-weight:700;color:#8fa4bc;cursor:pointer;white-space:nowrap;transition-property:background,color;transition-duration:.12s;font-family:'Inter',sans-serif}
.dv-tf-btn:hover{background:rgba(255,255,255,.1);color:#dce8f4}
.dv-tf-arr{font-size:9px;opacity:.6}
.dv-tf-menu{display:none;position:absolute;top:calc(100% + 6px);right:0;background:#141e2d;border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:6px;z-index:100;grid-template-columns:1fr 1fr;gap:3px;width:136px;box-shadow:0 8px 28px rgba(0,0,0,.6)}
.dv-tf-menu.open{display:grid}
.dv-tf-opt{background:none;border:none;padding:7px 4px;border-radius:6px;font-size:12px;font-weight:600;color:#5e6a7a;cursor:pointer;text-align:center;transition-property:background,color;transition-duration:.1s;font-family:'Inter',sans-serif}
.dv-tf-opt:hover{background:rgba(255,255,255,.07);color:#dce8f4}
.dv-tf-opt.active{background:rgba(0,152,234,.2);color:#4db8ff}

.dv-chart-el{height:460px;position:relative;overflow:hidden;border-radius:12px;z-index:1;--dv-plot-bg:#0C0C0C}
[data-theme="light"] .dv-chart-el{--dv-plot-bg:#f5f8fc}
.dv-chart-empty{display:none;position:absolute;inset:38px 0 0 0;flex-direction:column;align-items:center;justify-content:center;gap:6px;pointer-events:none;z-index:1}
.dv-chart-empty-ico{font-size:36px;opacity:.3}
.dv-chart-empty-txt{font-size:14px;font-weight:700;color:#5e6a7a}
.dv-chart-empty-sub{font-size:12px;color:#3e4a5a}

/* ─── TradingView partnership banner ─── */
.tv-partner-banner{
  position:relative;overflow:hidden;
  background:linear-gradient(135deg,#0b1740 0%,#0e1e50 50%,#101f5c 100%);
  border:1.5px solid rgba(41,98,255,.35);
  border-radius:16px;padding:32px 28px 28px;
  box-shadow:0 4px 32px rgba(41,98,255,.18),0 1px 0 rgba(255,255,255,.06) inset;
  min-height:320px;display:flex;flex-direction:column;gap:20px
}
.tv-pb-glow{
  position:absolute;top:-80px;right:-60px;
  width:320px;height:320px;border-radius:50%;
  background:radial-gradient(circle,rgba(41,98,255,.22) 0%,transparent 70%);
  pointer-events:none
}
.tv-pb-logo{display:flex;align-items:center;gap:10px}
.tv-pb-logo-icon{width:36px;height:36px;border-radius:8px;flex-shrink:0;filter:drop-shadow(0 2px 8px rgba(41,98,255,.5))}
.tv-pb-logo-name{font-size:20px;font-weight:800;color:#fff;letter-spacing:-.3px}
.tv-pb-headline{
  font-size:22px;font-weight:800;
  background:linear-gradient(90deg,#fff 0%,#91b4ff 60%,#2962FF 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  line-height:1.25;max-width:480px
}
.tv-pb-body{display:flex;flex-direction:column;gap:12px}
.tv-pb-body p{font-size:14px;line-height:1.65;color:rgba(255,255,255,.72)}
.tv-pb-body strong{color:#fff;font-weight:700}
.tv-pb-ask{
  margin-top:4px;padding:14px 16px;
  background:rgba(41,98,255,.14);
  border:1px solid rgba(41,98,255,.3);
  border-radius:10px;
  font-size:14px;line-height:1.7;color:rgba(255,255,255,.85)
}
.tv-pb-email{color:#7aa3ff;font-weight:600;text-decoration:none;border-bottom:1px solid rgba(122,163,255,.4);transition:color .15s,border-color .15s}
.tv-pb-email:hover{color:#a8c4ff;border-color:rgba(168,196,255,.6)}
.tv-pb-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.tv-pb-tag{
  font-size:11px;font-weight:600;letter-spacing:.3px;
  padding:4px 11px;border-radius:20px;
  background:rgba(41,98,255,.18);
  border:1px solid rgba(41,98,255,.35);
  color:rgba(255,255,255,.75)
}

/* Description card */
.desc-card{background:rgba(234,246,255,.94);border:1.5px solid rgba(0,152,234,.1);border-radius:var(--r);padding:16px 18px;backdrop-filter:blur(12px);box-shadow:0 2px 14px rgba(10,37,64,.05)}
.desc-hdr{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:700;color:var(--t1);margin-bottom:10px}
.desc-hdr svg{color:var(--blue);flex-shrink:0;opacity:.75}
.desc-text{font-size:13px;line-height:1.65;color:var(--t2);word-break:break-word;overflow-wrap:break-word;white-space:pre-wrap}
.fi-counter{font-size:11px;color:var(--t3);font-weight:400}
.desc-socials{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;padding-top:13px;border-top:1px solid rgba(0,152,234,.1)}
.soc-link{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:6px 13px;border-radius:20px;text-decoration:none;transition:background .15s,opacity .15s}
.soc-tg {background:rgba(0,136,204,.1); color:#0088cc; border:1px solid rgba(0,136,204,.2)}
.soc-tg:hover {background:rgba(0,136,204,.2)}
.soc-tw {background:rgba(10,37,64,.07);  color:var(--t1); border:1px solid rgba(10,37,64,.12)}
.soc-tw:hover{background:rgba(10,37,64,.13)}
.soc-web{background:rgba(0,152,234,.08); color:var(--blue);border:1px solid rgba(0,152,234,.18)}
.soc-web:hover{background:rgba(0,152,234,.16)}

.trades-wrap{background:rgba(234,246,255,.94);border:1.5px solid rgba(0,152,234,.1);border-radius:var(--r);overflow:hidden;backdrop-filter:blur(12px)}
.trades-hdr{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid rgba(0,152,234,.1)}
.trades-title{font-size:14px;font-weight:700;color:var(--t1)}
.trades-filter{display:flex;gap:4px}
/* ── Trades / Holders segmented tab switcher ── */
.dv-vtabs{display:flex;width:fit-content;background:rgba(0,152,234,.07);border:1.5px solid rgba(0,152,234,.12);border-radius:10px;padding:3px;gap:3px}
.dv-vtab{padding:7px 20px;font-family:'Inter',sans-serif;font-size:12px;font-weight:700;cursor:pointer;background:transparent;border:none;border-radius:8px;color:var(--t3);transition-property:background,color,box-shadow;transition-duration:.22s cubic-bezier(.4,0,.2,1);display:inline-flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap}
.dv-vtab:hover:not(.active){color:var(--t2)}
.dv-vtab.active{background:var(--blue);color:#fff;box-shadow:0 4px 14px rgba(0,152,234,.32)}
.dv-vtab-ct{background:rgba(255,255,255,.25);color:inherit;font-size:10px;font-weight:700;padding:1px 5px;border-radius:8px;min-width:18px;text-align:center;display:none}
.dv-vtab-ct:not(:empty){display:inline-block}
/* ── Holders table (inside trades section) ── */
#dvHoldersTabBody{padding:0}
.dv-ht-title{display:flex;align-items:center;gap:8px;padding:10px 16px 4px;font-size:13px;font-weight:700;color:var(--t1)}
.dv-ht-title-ct{background:rgba(0,152,234,.12);color:var(--blue);font-size:11px;font-weight:700;padding:1px 7px;border-radius:8px}
.dv-ht-table{width:100%;border-collapse:collapse;font-size:12px;table-layout:fixed}
.dv-ht-table th,.dv-ht-table td{padding:11px 14px}
.dv-ht-table thead th{text-align:left;font-size:10px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid rgba(0,152,234,.1);white-space:nowrap;overflow:hidden}
.dv-ht-table thead th.dv-ht-r{text-align:right}
/* Proportional columns — 3-col: Holder / % supply / Entry MCAP */
.dv-ht-table th:nth-child(1),.dv-ht-table td:nth-child(1){width:52%}
.dv-ht-table th:nth-child(2),.dv-ht-table td:nth-child(2){width:24%}
.dv-ht-table th:nth-child(3),.dv-ht-table td:nth-child(3){width:24%}
.dv-ht-table tbody td{border-bottom:1px solid rgba(0,152,234,.06);vertical-align:middle;white-space:nowrap;overflow:hidden;color:var(--t1)}
.dv-ht-table tbody tr:last-child td{border-bottom:none}
.dv-ht-table tbody tr{cursor:pointer;transition:background .15s}
.dv-ht-table tbody tr:hover{background:rgba(0,152,234,.05)}
/* Left accent bar — mirrors trades row stripes */
.dv-ht-row td:first-child{position:relative}
.dv-ht-row td:first-child::before{content:'';position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:var(--t3)}
/* Badge-based stripe colors (only set on regular traders, not bc/pool/burned/creator/tracked/me) */
.dv-ht-row[data-badge="whale"]  td:first-child::before{background:var(--blue)}
.dv-ht-row[data-badge="shark"]  td:first-child::before{background:#a78bfa}
.dv-ht-row[data-badge="holder"] td:first-child::before{background:#22c55e}
.dv-ht-row[data-badge="shrimp"] td:first-child::before{background:var(--t3)}
/* Special-role stripes (higher cascade order → override badge colors) */
.dv-ht-row-creator td:first-child::before{background:var(--grn)}
.dv-ht-row-amm     td:first-child::before{background:#f59e0b}
.dv-ht-row-burn    td:first-child::before{background:#6b7280}
.dv-ht-row-tracked td:first-child::before{background:#00c98d}
.dv-ht-row-me      td:first-child::before{background:#a855f7}
/* Avatar cell — mirrors .tr-acc-cell from trades */
.dv-ht-acc-cell{display:flex;align-items:center;gap:7px;min-width:0;overflow:hidden;padding-top:2px;padding-bottom:2px}
.dv-ht-av-wrap{position:relative;flex-shrink:0;width:30px;height:30px}
.dv-ht-av-wrap::after{content:'↗';position:absolute;inset:0;border-radius:50%;background:rgba(0,152,234,.85);color:#fff;font-size:12px;font-weight:900;line-height:30px;text-align:center;opacity:0;transition:opacity .15s;pointer-events:none}
.dv-ht-table tbody tr:hover .dv-ht-av-wrap::after{opacity:1}
.dv-ht-av{width:30px;height:30px;border-radius:50%;object-fit:cover;border:1.5px solid rgba(0,152,234,.18);transition:transform .15s,box-shadow .15s}
.dv-ht-table tbody tr:hover .dv-ht-av{transform:scale(1.1);box-shadow:0 2px 8px rgba(0,152,234,.35)}
.dv-ht-table tbody tr:hover .dv-ht-name{color:var(--blue)}
/* Address text — mirrors .tr-addr from trades */
.dv-ht-name{font-size:11px;font-weight:600;font-family:monospace;color:var(--t2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:1;min-width:0}
.dv-ht-acc-info{display:flex;flex-direction:column;min-width:0;flex:1;gap:3px}
.dv-ht-name-row{display:flex;align-items:center;gap:5px;min-width:0;overflow:hidden}
.dv-ht-badges{display:flex;align-items:center;flex-wrap:wrap;gap:3px}
.dv-ht-sub{font-size:10px;color:var(--t3);font-weight:500;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dv-ht-r{text-align:right}
.dv-ht-pct{font-weight:700;font-size:13px}
.dv-ht-pct-bar-wrap{height:3px;background:rgba(0,152,234,.08);border-radius:2px;margin-top:3px;overflow:hidden}
.dv-ht-pct-bar{height:100%;border-radius:2px;transition:width .5s ease}
.dv-ht-entry{color:var(--t3);font-weight:600}
/* Rich Entry MCAP cell */
.dv-ht-mc{display:inline-flex;align-items:baseline;gap:1px}
.dv-ht-mc-sym{font-size:10px;color:var(--t3);font-weight:500}
.dv-ht-mc-val{font-size:13px;font-weight:700;color:var(--t1)}
.dv-ht-mc-mult{font-size:10px;font-weight:700;margin-top:2px}
.dv-ht-mc-mult.pos{color:var(--grn)}
.dv-ht-mc-mult.neg{color:var(--red)}
.dv-ht-mc-nil{color:var(--t3);font-size:12px}
.dv-ht-pnl{font-weight:600}
.dv-ht-pnl-pos{color:var(--grn);font-weight:700}
.dv-ht-pnl-neg{color:var(--red);font-weight:700}
.dv-ht-row-creator{background:rgba(0,200,100,.03)}
.dv-ht-row-creator:hover{background:rgba(0,200,100,.07)!important}
.dv-ht-row-amm{background:rgba(245,158,11,.04)}
.dv-ht-row-amm:hover{background:rgba(245,158,11,.09)!important}
.dv-ht-row-burn{background:rgba(107,114,128,.04)}
.dv-ht-row-burn:hover{background:rgba(107,114,128,.08)!important}
.dv-ht-row-tracked{background:rgba(0,201,141,.03)}
.dv-ht-row-tracked:hover{background:rgba(0,201,141,.06)!important}
.dv-ht-row-me{background:rgba(168,85,247,.04)!important}
.dv-ht-row-me:hover{background:rgba(168,85,247,.09)!important}
.dv-ht-empty{padding:28px 18px;font-size:12px;color:var(--t3);text-align:center}
/* Momentary highlight when jumping to a linked row (.badge-linked click) */
.dv-ht-row-flash{animation:dvHtRowFlash 1.2s ease-out}
@keyframes dvHtRowFlash{
  0%,15%{background:rgba(245,158,11,.22)!important}
  100%{background:transparent}
}

/* ── Unified badge pills (Dev/Curve/Pool/Burn/Tracked/You) ──────────────────
   One shared component for all trader/wallet-role tags across Trades, Chat,
   Holders tab and the Top-Holders sidebar. Style template = the old .tr-dev. */
.badge-pill{display:inline-flex;align-items:center;gap:3px;font-size:8.5px;font-weight:800;padding:1px 5px;border-radius:5px;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;flex-shrink:0;line-height:1.5}
.badge-pill svg,.badge-pill img{width:9px;height:9px}
.badge-dev    {color:#00c864;background:rgba(0,200,100,.14);border:1px solid rgba(0,200,100,.3)}
.badge-curve  {color:#f59e0b;background:rgba(245,158,11,.14);border:1px solid rgba(245,158,11,.3)}
.badge-pool   {color:#3dd68c;background:rgba(61,214,140,.14);border:1px solid rgba(61,214,140,.3)}
.badge-burn   {color:#9ca3af;background:rgba(107,114,128,.14);border:1px solid rgba(107,114,128,.3)}
.badge-tracked{color:#00c98d;background:rgba(0,201,141,.14);border:1px solid rgba(0,201,141,.3)}
.badge-you    {color:var(--blue);background:rgba(0,152,234,.14);border:1px solid rgba(0,152,234,.28)}
.badge-vella  {color:#8b5cf6;background:rgba(139,92,246,.14);border:1px solid rgba(139,92,246,.3)}
.badge-vella img{width:9px;height:9px;border-radius:2px}
/* Same amber "Custodial/Vault" language as .wm-custodial-badge (Wallet
   Manager) / .wlt-hist-linked-tag (Wallet Tracker) — click jumps to the
   other row belonging to the same person. */
.badge-linked {color:#f59e0b;background:rgba(245,158,11,.14);border:1px solid rgba(245,158,11,.3);cursor:pointer}
.badge-linked:hover{background:rgba(245,158,11,.24)}
/* Holding-size tiers — used in the Chat Trader Modal */
.badge-whale  {color:var(--blue);background:rgba(0,152,234,.15);border:1px solid rgba(0,152,234,.3)}
.badge-shark  {color:#a78bfa;background:rgba(124,58,237,.15);border:1px solid rgba(124,58,237,.3)}
.badge-holder {color:#22c55e;background:rgba(34,197,94,.13);border:1px solid rgba(34,197,94,.3)}
.badge-shrimp {color:var(--t3);background:rgba(100,116,139,.12);border:1px solid rgba(100,116,139,.3)}
/* Concentration banner */
.dv-ht-conc{display:flex;align-items:center;gap:10px;padding:4px 16px 14px;font-size:12px}
.dv-ht-conc-label{color:var(--t3);font-weight:500;white-space:nowrap}
.dv-ht-conc-val{font-size:16px;font-weight:800;white-space:nowrap}
.dv-ht-conc-val.hi{color:var(--grn)}
.dv-ht-conc-val.mid{color:#f59e0b}
.dv-ht-conc-val.danger{color:var(--red)}
.dv-ht-conc-bar{flex:1;height:6px;background:rgba(0,152,234,.08);border-radius:3px;overflow:hidden;min-width:40px}
.dv-ht-conc-fill{height:100%;background:var(--blue);border-radius:3px;transition:width .3s}
.dv-ht-conc-fill.hi{background:var(--grn)}
.dv-ht-conc-fill.mid{background:#f59e0b}
.dv-ht-conc-fill.danger{background:var(--red)}
/* Responsive column header: full text on desktop, short on mobile */
.dv-ht-th-short{display:none}
.tf-btn{padding:5px 12px;border-radius:7px;font-family:'Inter',sans-serif;font-size:12px;font-weight:600;background:transparent;border:1.5px solid rgba(0,152,234,.15);color:var(--t3);cursor:pointer;transition-property:background,border-color,color;transition-duration:.15s}
.tf-btn.active{border-color:var(--blue);background:rgba(0,152,234,.09);color:var(--blue)}
.tf-btn-transfer.active{border-color:var(--blue);background:rgba(0,152,234,.14);color:var(--blue)}
.table-scroll{overflow-x:auto}
.trades-table{width:100%;border-collapse:collapse;font-size:12px}
.trades-table th{padding:9px 14px;text-align:left;font-size:10px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid rgba(0,152,234,.1);white-space:nowrap}
.trades-table td{padding:9px 14px;border-bottom:1px solid rgba(0,152,234,.06);white-space:nowrap;color:var(--t1)}
.trades-table th:nth-child(3),.trades-table td:nth-child(3){min-width:90px}
.trades-table th:nth-child(4),.trades-table td:nth-child(4){min-width:100px}
.trades-table th:nth-child(5),.trades-table td:nth-child(5){min-width:80px}
/* Txn column (6th) is what pushes the table into horizontal scroll — the
   same info (with more context: %, avg buy, recent trades) is one tap away
   via the trader modal / profile, so it doesn't need its own column. */
.trades-table th:nth-child(6),.trades-table td:nth-child(6){display:none}
.trades-table tbody tr:hover{background:rgba(0,152,234,.04)}
.trades-table tbody tr:last-child td{border-bottom:none}
.tr-addr{font-size:11px;color:var(--t2);font-family:monospace}
.tr-type{font-size:11px;font-weight:700;padding:2px 7px;border-radius:4px}
.tr-type.buy{background:rgba(0,200,83,.1);color:var(--grn)}
.tr-type.sell{background:rgba(245,54,92,.1);color:var(--red)}
.tr-type.transfer{background:rgba(0,152,234,.1);color:var(--blue)}
.tr-transfer-cell{cursor:default}
.tr-transfer-cell:hover .tr-addr{color:var(--t2)}
.tr-transfer-arrow{color:var(--t3);margin:0 3px;font-style:normal}
.tr-txn{font-size:11px;color:var(--blue);font-family:monospace;cursor:pointer;font-weight:600;text-decoration:none}
.tr-txn:hover{text-decoration:underline}
.tr-acc-cell{display:flex;align-items:center;gap:7px;cursor:pointer;width:fit-content}
.tr-acc-cell:hover .tr-av{transform:scale(1.1);box-shadow:0 2px 8px rgba(0,152,234,.35)}
.tr-acc-cell:hover .tr-addr{color:var(--blue)}

/* ════ Trades table polish — list-like, color-coded (Vella) ════ */
.trades-table th{padding:11px 16px;border-bottom:1px solid rgba(0,152,234,.07)}
.trades-table td{padding:12px 16px;border-bottom:1px solid rgba(0,152,234,.045);vertical-align:middle}
.trades-table tbody tr{transition:background var(--dur-2) var(--ease-out)}
.trades-table tbody tr:hover{background:rgba(0,152,234,.05)}
/* slim type rail on the left of each row */
.tr-row td:first-child{position:relative}
.tr-row td:first-child::before{content:'';position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:transparent}
.tr-buy      td:first-child::before{background:var(--grn)}
.tr-sell     td:first-child::before{background:var(--red)}
.tr-transfer td:first-child::before{background:var(--blue)}
/* aligned, color-coded numbers */
.tr-num{font-variant-numeric:tabular-nums;font-weight:600}
.tr-ton{font-weight:700}
.tr-buy  .tr-ton{color:var(--grn)}
.tr-sell .tr-ton{color:var(--red)}
.tr-transfer .tr-ton{color:var(--t2)}
.tr-time{color:var(--t3);font-size:11px;font-variant-numeric:tabular-nums}
/* 🎓 graduation trade — the buy that crossed the threshold and created the pool */
.tr-row.tr-grad{background:linear-gradient(90deg,rgba(124,77,255,.13),rgba(0,152,234,.10) 55%,transparent)}
.tr-row.tr-grad:hover{background:linear-gradient(90deg,rgba(124,77,255,.19),rgba(0,152,234,.14) 55%,rgba(0,152,234,.05))}
.tr-row.tr-grad td:first-child::before{background:linear-gradient(180deg,#7c4dff,#0098ea)!important;width:3px;box-shadow:0 0 8px rgba(124,77,255,.7)}
/* type → full rounded pill */
.tr-type{border-radius:999px;padding:3px 10px;display:inline-flex;align-items:center;gap:3px;font-size:11px}
.tr-av{width:30px;height:30px;border:1.5px solid rgba(0,152,234,.18)}
/* TXN → subtle chip */
.tr-txn{padding:3px 8px;border-radius:7px;background:rgba(0,152,234,.07);transition:background .15s}
.tr-txn:hover{background:rgba(0,152,234,.15);text-decoration:none}

/* ════ Coin detail avatar — framed + glow; desktop hover enlarges (laptops) ════ */
.dv-img{
  border-radius:20px;overflow:hidden;position:relative;z-index:1;
  box-shadow:0 0 0 1.5px rgba(255,255,255,.55),0 0 0 3px rgba(0,152,234,.22),var(--el-2),0 0 30px -8px rgba(0,152,234,.5);
  transition:transform var(--dur-2) var(--ease-spring),box-shadow var(--dur-2) var(--ease-out);
  animation:cardIn var(--dur-3) var(--ease-out) backwards;
}
@media (hover:hover) and (pointer:fine){
  .dv-img:hover{
    z-index:20;transform:translateY(-4px) rotate(-1deg) scale(1.55);
    box-shadow:0 0 0 1.5px rgba(255,255,255,.7),0 0 0 3px rgba(0,152,234,.4),var(--el-3),0 0 48px -4px rgba(0,152,234,.7)
  }
}
.dv-img img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}

/* ════ Top Holders — concentration summary + row polish (Vella) ════ */
.th-conc{margin:0 16px 12px;padding:12px 14px;border-radius:13px;
  background:linear-gradient(135deg,rgba(0,152,234,.08),rgba(0,152,234,.025));border:1px solid rgba(0,152,234,.12)}
.th-conc.hidden{display:none}
.th-conc-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}
.th-conc-lbl{font-size:10.5px;font-weight:700;color:var(--t2);text-transform:uppercase;letter-spacing:.6px}
.th-conc-val{font-size:19px;font-weight:900;letter-spacing:-.4px;font-variant-numeric:tabular-nums;color:var(--blue)}
.th-conc-bar{height:6px;border-radius:99px;background:rgba(0,152,234,.12);overflow:hidden}
.th-conc-fill{height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,var(--blue),var(--blue2));transition:width .7s var(--ease-spring)}
/* Non-organic supply card (P3) — amber to read as a caution metric, not concentration */

/* holder rows — cleaner address + premium Bonding Curve pill */
.th-row{padding:9px 16px;gap:10px}
.th-bar-wrap{width:100%;height:5px}
/* Curve row → rank 0, amber accent rail */
.th-row-curve{position:relative;background:linear-gradient(90deg,rgba(245,158,11,.12),transparent 72%)!important}
.th-row-curve::before{content:'';position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;
  background:linear-gradient(180deg,#FFB300,#fb923c);box-shadow:0 0 8px rgba(245,158,11,.5)}
.th-row-curve .th-rank{color:#f59e0b;font-weight:900}
.th-row-curve .th-bar{background:linear-gradient(90deg,#FFB300,#fb923c)!important;box-shadow:0 0 6px rgba(245,158,11,.5)}
.th-row-curve .th-pct{color:#c98a00}

/* ════ Detail polish — Top Holders / About / action buttons ════ */
.th-row{padding:9px 16px}
.th-bar-wrap{height:5px}
.th-bar{filter:drop-shadow(0 0 4px rgba(0,152,234,.45))}
.th-rank-top{background:linear-gradient(135deg,var(--blue),var(--blue2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.dv-btn:active{transform:scale(.96)}
.dv-fav.active{background:rgba(0,152,234,.12);box-shadow:0 0 16px -4px rgba(0,152,234,.45)}
.desc-card{position:relative;overflow:hidden}
.desc-card::before{content:'';position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:0 3px 3px 0;background:linear-gradient(180deg,var(--blue),var(--blue2));opacity:.6}

/* ════ Graduation show — bonding curve complete → VellaSwap pool ════
   js/coin-detail.js _graduationSalute: the coin rides the curve into a diploma
   card, a fountain of coins, a "Graduated" seal, then it lands on the page.
   Motion is WAAPI in the script (transform/opacity); this is the static look.
   Light by default, dark below. */
.grad-salute{
  position:fixed;inset:0;z-index:9990;overflow:hidden;cursor:pointer;
  --grad-accent:var(--blue,#0098EA);
  --grad-ink:#0A2540;--grad-mute:#4A6B8A;--grad-kicker:#00629E;
  --grad-line:rgba(10,37,64,.08);
  --grad-veil-a:rgba(247,251,255,.62);--grad-veil-b:rgba(222,238,255,.9);
  --grad-shadow:0 26px 60px -20px rgba(0,80,160,.45);
  --grad-card:#fff;--grad-gold:#8F6100;--grad-gold-bg:rgba(201,138,0,.1);
}
html:is([data-theme="dark"],[data-scheme="dark"],[data-theme="voidtype"]) .grad-salute{
  --grad-ink:#F4F4EF;--grad-mute:#8E8E86;--grad-kicker:#A8A8A0;
  --grad-line:rgba(255,255,255,.1);
  --grad-veil-a:rgba(12,12,12,.6);--grad-veil-b:rgba(0,0,0,.88);
  --grad-shadow:0 26px 60px -20px rgba(0,0,0,.85);
  --grad-card:#161616;--grad-gold:#E2C98A;--grad-gold-bg:rgba(226,201,138,.08);
}
.grad-veil{
  position:absolute;inset:0;opacity:0;
  background:radial-gradient(ellipse 70% 60% at 50% 45%,var(--grad-veil-a),var(--grad-veil-b));
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
}
.grad-fx{position:absolute;inset:0}
.grad-center{position:absolute;inset:0;padding-bottom:6vh;display:flex;align-items:center;justify-content:center}

/* Diploma card: art, label, seal */
.grad-diploma{
  position:relative;display:flex;flex-direction:column;align-items:center;gap:18px;
  width:min(420px,86vw);padding:34px 28px 30px;border-radius:28px;
  background:var(--grad-card);box-shadow:var(--grad-shadow);outline:1px solid var(--grad-line);outline-offset:-1px;
}
.grad-hero{position:relative;width:120px;height:120px}
.grad-art{
  position:absolute;inset:0;z-index:1;overflow:hidden;border-radius:24%;
  display:grid;place-items:center;font-size:60px;line-height:1;
  background:#fff;box-shadow:var(--grad-shadow);outline:1px solid var(--grad-line);outline-offset:-1px;
}
.grad-art img{display:block;width:100%;height:100%;object-fit:cover}
.grad-glow{
  position:absolute;inset:-35%;z-index:0;border-radius:50%;opacity:0;filter:blur(22px);
  background:radial-gradient(circle,color-mix(in srgb,var(--grad-accent) 45%,transparent),transparent 70%);
}
.grad-ring{position:absolute;inset:0;z-index:2;border-radius:24%;border:2px solid var(--grad-accent);opacity:0;pointer-events:none}
.grad-label{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.grad-kicker{font:600 11px/1 ui-monospace,"SF Mono",SFMono-Regular,Menlo,monospace;letter-spacing:.24em;text-transform:uppercase;color:var(--grad-kicker)}
.grad-name{font:700 clamp(22px,3vw,30px)/1.1 var(--sans,'Inter',system-ui,sans-serif);letter-spacing:-.02em;color:var(--grad-ink)}
.grad-meta{display:flex;align-items:center;gap:10px}
.grad-tick{font:500 13px/1 ui-monospace,"SF Mono",SFMono-Regular,Menlo,monospace;color:var(--grad-mute)}
.grad-pill{
  display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;
  background:color-mix(in srgb,var(--grad-accent) 14%,transparent);
  font:600 12px/1 var(--sans,'Inter',system-ui,sans-serif);color:var(--grad-ink);
}
.grad-pill::before{content:"";width:6px;height:6px;border-radius:50%;background:#16C784}
.grad-pill.is-migrating::before{background:#F0A020;animation:gradPulse 1.2s ease-in-out infinite}
@keyframes gradPulse{50%{opacity:.35}}
.grad-stamp{
  position:absolute;top:-22px;right:-18px;width:104px;height:104px;border-radius:50%;
  display:grid;place-items:center;transform:rotate(-14deg);
  border:3px double var(--grad-gold);background:var(--grad-card);color:var(--grad-gold);
  box-shadow:inset 0 0 0 5px var(--grad-gold-bg),0 10px 24px -12px rgba(0,0,0,.35);
  font:800 12px/1 var(--sans,'Inter',system-ui,sans-serif);letter-spacing:.12em;text-transform:uppercase;
}
.grad-stamp-ring{position:absolute;inset:-3px;border-radius:50%;border:2px solid var(--grad-gold);opacity:0}
.grad-gem{position:absolute;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:2px;background:var(--grad-accent)}
.grad-gem:nth-child(3n){background:color-mix(in srgb,var(--grad-accent) 45%,#fff)}

/* Bonding curve and its rider */
.grad-curve{position:absolute;inset:0;overflow:visible}
.grad-curve-line,.grad-curve-glow{fill:none;stroke:var(--grad-accent);stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1}
.grad-curve-line{stroke-width:3}
.grad-curve-glow{stroke-width:16;opacity:.18;filter:blur(6px)}
.grad-rider{
  position:absolute;left:0;top:0;width:56px;height:56px;overflow:hidden;border-radius:16px;opacity:0;
  offset-rotate:0deg;background:#fff;box-shadow:0 10px 24px -8px rgba(0,80,160,.45);outline:1px solid var(--grad-line);outline-offset:-1px;
  display:grid;place-items:center;font-size:28px;line-height:1;
}
.grad-rider img{display:block;width:100%;height:100%;object-fit:cover}
.grad-curve-tag{
  position:absolute;padding:5px 9px;border-radius:999px;opacity:0;
  background:color-mix(in srgb,var(--grad-accent) 16%,transparent);
  font:600 12px/1 ui-monospace,"SF Mono",SFMono-Regular,Menlo,monospace;color:var(--grad-ink);
}

/* Fountain tiles */
.grad-ftile{position:absolute;overflow:hidden;border-radius:22%;opacity:0;background:#fff;box-shadow:0 10px 24px -10px rgba(10,37,64,.35)}
.grad-ftile img{display:block;width:100%;height:100%;object-fit:cover}
.grad-ftile.is-gem{border-radius:50%;display:grid;place-items:center}
.grad-ftile.is-gem img{width:78%;height:78%;object-fit:contain}

/* Landing on the page */
.grad-fly{
  position:fixed;z-index:5;overflow:hidden;display:grid;place-items:center;line-height:1;
  background:#fff;outline:1px solid var(--grad-line);outline-offset:-1px;
}
.grad-fly img{display:block;width:100%;height:100%;object-fit:cover}
.grad-land{position:fixed;z-index:5;opacity:0;pointer-events:none;box-shadow:0 0 0 2px var(--grad-accent)}
@media (prefers-reduced-motion:reduce){
  .grad-pill.is-migrating::before{animation:none}
}
.tr-av{width:26px;height:26px;border-radius:50%;object-fit:cover;flex-shrink:0;border:1.5px solid rgba(0,152,234,.18);transition:transform .15s,box-shadow .15s}

/* Trader profile modal */
/* ─── TRADE SETTINGS MODAL ─── */
#tradeSettingsModal .modal{max-width:420px;padding:0;overflow:hidden}
.ts-modal{display:flex;flex-direction:column}
.ts-header{display:flex;align-items:center;justify-content:space-between;padding:20px 22px 16px;border-bottom:1px solid rgba(0,152,234,.1)}
.ts-title{display:flex;align-items:center;gap:9px;font-size:17px;font-weight:800;color:var(--t1)}
.ts-title-ico{width:18px;height:18px;color:var(--blue);flex-shrink:0}
.ts-close-btn{width:28px;height:28px;background:rgba(0,152,234,.07);border:1.5px solid rgba(0,152,234,.14);border-radius:7px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:16px;color:var(--t2);transition-property:background,border-color,color;transition-duration:.15s;line-height:1}
.ts-close-btn:hover{background:rgba(245,54,92,.1);color:var(--red);border-color:rgba(245,54,92,.2)}
.ts-body{padding:20px 22px;display:flex;flex-direction:column;gap:22px}
.ts-section{display:flex;flex-direction:column;gap:8px}
.ts-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.ts-section-title{font-size:14px;font-weight:700;color:var(--t1)}
.ts-section-sub{font-size:12px;color:var(--t3);line-height:1.45}
.ts-slip-input-wrap{display:flex;align-items:center;gap:4px;background:rgba(0,152,234,.07);border:1.5px solid rgba(0,152,234,.15);border-radius:8px;padding:5px 10px;transition:border-color .15s}
.ts-slip-input-wrap:focus-within{border-color:var(--blue)}
.ts-slip-inp{width:44px;background:none;border:none;outline:none;font-size:15px;font-weight:700;color:var(--t1);text-align:right;-moz-appearance:textfield}
.ts-slip-inp::-webkit-inner-spin-button,.ts-slip-inp::-webkit-outer-spin-button{-webkit-appearance:none}
.ts-slip-pct{font-size:14px;font-weight:600;color:var(--t2)}
.ts-slider-wrap{display:flex;flex-direction:column;gap:6px;margin-top:4px}
.ts-slider{
  -webkit-appearance:none;appearance:none;
  width:100%;height:5px;border-radius:99px;outline:none;cursor:pointer;
  background:linear-gradient(to right,var(--blue) 0%,var(--blue) var(--fill,10%),rgba(0,152,234,.15) var(--fill,10%),rgba(0,152,234,.15) 100%);
  transition:background .1s
}
.ts-slider::-webkit-slider-thumb{
  -webkit-appearance:none;width:18px;height:18px;border-radius:50%;
  background:#fff;border:2.5px solid var(--blue);
  box-shadow:0 2px 8px rgba(0,152,234,.3);cursor:pointer;transition:transform .12s,box-shadow .12s
}
.ts-slider::-webkit-slider-thumb:hover{transform:scale(1.18);box-shadow:0 3px 12px rgba(0,152,234,.45)}
.ts-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#fff;border:2.5px solid var(--blue);cursor:pointer}
.ts-slider-ticks{position:relative;height:20px;margin-top:8px;display:flex;justify-content:space-between}
.ts-slider-ticks span{position:static;font-size:11px;font-weight:650;letter-spacing:.02em;color:var(--t2);white-space:nowrap;font-variant-numeric:tabular-nums}
.ts-slider-ticks span:first-child,.ts-slider-ticks span:last-child{transform:none}
.ts-slip-warn{display:none;align-items:flex-start;gap:7px;padding:9px 12px;background:rgba(255,176,0,.08);border:1px solid rgba(255,176,0,.25);border-radius:9px;font-size:11.5px;color:#b87800;line-height:1.45}
.ts-toggle-row{display:flex;gap:0;border-radius:10px;overflow:hidden;border:1.5px solid rgba(0,152,234,.15);width:100%}
.ts-tog-btn{flex:1;padding:10px 0;font-size:13px;font-weight:600;color:var(--t2);background:transparent;cursor:pointer;transition-property:background,color,box-shadow;transition-duration:.15s;border:none}
.ts-tog-btn.active{background:rgba(0,152,234,.12);color:var(--blue)}
.ts-tog-btn:first-child{border-right:1px solid rgba(0,152,234,.15)}
.ts-footer{display:flex;align-items:center;justify-content:space-between;padding:16px 22px;border-top:1px solid rgba(0,152,234,.1)}
.ts-reset-btn{font-size:12px;color:var(--t3);background:none;border:none;cursor:pointer;text-decoration:underline;text-underline-offset:2px;transition:color .12s}
.ts-reset-btn:hover{color:var(--t2)}
.ts-done-btn{background:var(--blue);color:#fff;border:none;border-radius:10px;padding:10px 28px;font-size:14px;font-weight:700;cursor:pointer;transition:opacity .15s,transform .12s}
.ts-done-btn:hover{opacity:.88;transform:translateY(-1px)}
.ts-done-btn:active{transform:none}

/* ─── TRADER MODAL ─── */
.tm-modal{max-width:400px;padding:0;overflow:hidden}
.tm-header{display:flex;align-items:center;gap:14px;padding:22px 20px 16px}
.tm-av-wrap{flex-shrink:0}
.tm-av{width:52px;height:52px;border-radius:50%;object-fit:cover;border:2px solid rgba(0,152,234,.22)}
.tm-info{min-width:0}
.tm-addr{font-size:12px;font-family:monospace;color:var(--t1);font-weight:600;word-break:break-all}
.tm-explorer{font-size:11px;color:var(--blue);text-decoration:none;display:inline-block;margin-top:4px}
.tm-explorer:hover{text-decoration:underline}
.tm-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(0,152,234,.1);border-top:1px solid rgba(0,152,234,.1);border-bottom:1px solid rgba(0,152,234,.1)}
.tm-stat{padding:12px 8px;text-align:center;background:var(--card)}
.tm-stat-val{font-size:15px;font-weight:800;color:var(--t1);margin-bottom:3px}
.tm-stat-lbl{font-size:10px;color:var(--t3);font-weight:500;text-transform:uppercase;letter-spacing:.04em}
.tm-section-title{font-size:12px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.06em;padding:14px 20px 6px}
.tm-trades{padding:0 0 8px}
.tm-trade-row{display:flex;align-items:center;gap:12px;padding:10px 20px;transition:background .12s}
.tm-trade-row:hover{background:rgba(0,152,234,.04)}
.tm-trade-row+.tm-trade-row{border-top:1px solid rgba(0,152,234,.06)}
.tm-trade-ico{flex-shrink:0}
.tm-trade-info{flex:1;min-width:0}
.tm-trade-name{font-size:13px;font-weight:600;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tm-trade-time{font-size:11px;color:var(--t3);margin-top:2px}
.tm-trade-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}
.tm-trade-ton{font-size:12px;font-weight:600;color:var(--t2)}

.holders-wrap{background:rgba(234,246,255,.94);border:1.5px solid rgba(0,152,234,.1);border-radius:var(--r);overflow:hidden;backdrop-filter:blur(12px)}
.holders-hdr{padding:14px 18px;border-bottom:1px solid rgba(0,152,234,.1);font-size:14px;font-weight:700;color:var(--t1)}
.holder-row{display:flex;align-items:center;gap:10px;padding:9px 18px;transition:background .15s}
.holder-row:hover{background:rgba(0,152,234,.05)}
.holder-row+.holder-row{border-top:1px solid rgba(0,152,234,.06)}
.holder-rank{width:20px;font-size:11px;font-weight:700;color:var(--t3);text-align:center;flex-shrink:0}
.holder-addr{font-size:12px;font-family:monospace;color:var(--t2);flex-shrink:0;width:90px}
.holder-bar-wrap{flex:1;height:5px;background:rgba(0,152,234,.12);border-radius:3px;overflow:hidden}
.holder-bar{height:100%;background:linear-gradient(90deg,var(--blue),var(--blue2));border-radius:3px;transition:width .5s ease}
.holder-pct{font-size:12px;font-weight:700;color:var(--blue);text-align:right;min-width:38px}

/* ── Buy / Sell card ── */
.bs-card{
  background:rgba(234,246,255,.97);
  border:1.5px solid rgba(0,152,234,.14);
  border-radius:var(--r);overflow:hidden;
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  box-shadow:0 6px 28px rgba(10,37,64,.09);
  position:relative
}
.bs-graduating-overlay{
  position:absolute;inset:0;z-index:20;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  background:rgba(234,246,255,.93);
  backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  pointer-events:auto;cursor:not-allowed
}
.bs-card.bs-migrating{pointer-events:none}
.bs-card.bs-migrating .bs-graduating-overlay{pointer-events:auto}
.bs-grad-spinner{
  width:32px;height:32px;
  border:3px solid rgba(0,152,234,.2);
  border-top-color:#0098ea;
  border-radius:50%;
  animation:bs-spin .8s linear infinite
}
@keyframes bs-spin{to{transform:rotate(360deg)}}
.bs-grad-title{font-size:14px;font-weight:700;color:#0098ea}
.bs-grad-sub{font-size:12px;color:#7a8fa6;text-align:center;padding:0 16px}
.bs-grad-finish{margin-top:6px;min-height:40px;padding:0 18px;border:0;border-radius:999px;background:#0098EA;color:#fff;font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.bs-grad-finish:hover{background:#0087d1}
.bs-grad-finish:focus-visible{outline:2px solid #0098EA;outline-offset:3px}
.bs-grad-finish:disabled{opacity:.6;cursor:default}
.bs-card-head{
  display:flex;align-items:center;gap:10px;
  padding:10px 12px;border-bottom:1.5px solid rgba(0,152,234,.1)
}
.bs-tabs{
  flex:1;display:grid;grid-template-columns:1fr 1fr 1fr;
  background:rgba(0,152,234,.07);
  border:1.5px solid rgba(0,152,234,.12);
  border-radius:10px;padding:3px;gap:3px
}
.bs-tab{
  padding:9px 0;font-family:'Inter',sans-serif;
  font-size:14px;font-weight:700;
  cursor:pointer;background:transparent;border:none;
  border-radius:8px;color:var(--t3);
  transition-property:background,color,box-shadow,transform;transition-duration:.22s cubic-bezier(.4,0,.2,1)}
.bs-tab:hover:not(.active){color:var(--t2)}
.bs-tab.active[data-bs="buy"]{
  background:var(--grn);color:#fff;
  box-shadow:0 4px 14px rgba(0,200,83,.38)
}
.bs-tab.active[data-bs="sell"]{
  background:var(--red);color:#fff;
  box-shadow:0 4px 14px rgba(245,54,92,.38)
}
.bs-tab.active[data-bs="send"]{
  background:var(--blue);color:#fff;
  box-shadow:0 4px 14px rgba(0,152,234,.38)
}
.bs-recv-send{flex-direction:column;align-items:stretch;gap:6px;padding:10px 14px}
.bs-send-card{
  display:flex;flex-direction:column;gap:8px;
  background:rgba(255,255,255,.72);
  border:1.5px solid rgba(0,152,234,.15);
  border-radius:11px;padding:12px 14px;
  transition:border-color .18s,box-shadow .18s
}
.bs-send-card:focus-within{
  border-color:var(--blue);
  box-shadow:0 0 0 3px var(--glow)
}
.bs-send-card-lbl{
  font-size:11px;font-weight:700;color:var(--t3);
  text-transform:uppercase;letter-spacing:.06em
}
.bs-send-addr-wrap{position:relative;width:100%}
.bs-send-addr{
  width:100%;box-sizing:border-box;
  padding:10px 72px 10px 12px;
  background:rgba(0,152,234,.05);
  border:1.5px solid rgba(0,152,234,.12);
  border-radius:9px;
  font-family:'Inter',ui-monospace,monospace;font-size:12px;font-weight:600;
  color:var(--t1);outline:none;transition:border-color .15s,background .15s
}
.bs-send-addr:focus{border-color:var(--blue);background:rgba(0,152,234,.08)}
.bs-send-addr::placeholder{color:var(--t3);font-family:'Inter',sans-serif;font-size:12px;font-weight:500}
.bs-send-paste{
  position:absolute;right:6px;top:50%;transform:translateY(-50%);
  background:rgba(0,152,234,.1);border:1px solid rgba(0,152,234,.18);cursor:pointer;
  font-size:11px;font-weight:700;color:var(--blue);
  padding:5px 10px;border-radius:7px;transition:background .15s,border-color .15s
}
.bs-send-paste:hover{background:rgba(0,152,234,.16)}
.bs-send-gas-note{
  display:flex;align-items:flex-start;gap:8px;
  font-size:11px;color:var(--t3);line-height:1.45;
  background:rgba(0,152,234,.05);
  border:1px solid rgba(0,152,234,.1);
  border-radius:9px;padding:10px 12px;
  margin-top:2px
}
.bs-send-gas-ico{flex-shrink:0;opacity:.7;font-size:12px;line-height:1.3}
.bs-send-gas-txt b{color:var(--t2);font-weight:700}
.bs-gear-btn{
  width:36px;height:36px;flex-shrink:0;
  border-radius:9px;border:1.5px solid rgba(0,152,234,.18);
  background:rgba(0,152,234,.07);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition-property:background,border-color,color,transform;transition-duration:.15s}
.bs-gear-btn:hover{background:rgba(0,152,234,.14);border-color:rgba(0,152,234,.3)}
.bs-gear-btn svg{width:16px;height:16px;color:var(--t2);transition:color .15s}
.bs-gear-btn.active{background:rgba(0,152,234,.15);border-color:rgba(0,152,234,.4)}
.bs-gear-btn.active svg{color:var(--blue)}

/* ── PRESET SETTINGS PANEL ── */
.bs-preset-panel{
  overflow:hidden;max-height:0;
  transition:max-height .28s cubic-bezier(.4,0,.2,1),padding .28s;
  background:rgba(235,245,255,.97);
  border-bottom:1.5px solid rgba(0,152,234,.1)
}
.bs-preset-panel.open{max-height:220px;padding:14px}
.bspp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.bspp-title{
  font-size:11px;font-weight:700;color:var(--t2);
  text-transform:uppercase;letter-spacing:.7px
}
.bspp-close{
  width:22px;height:22px;border:none;background:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  border-radius:6px;color:var(--t3);transition:background .15s,color .15s
}
.bspp-close:hover{background:rgba(0,152,234,.1);color:var(--t2)}
.bspp-close svg{width:14px;height:14px}
.bspp-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:11px}
.bspp-field{
  display:flex;flex-direction:column;gap:3px;
  background:var(--bg2);
  border:1.5px solid rgba(0,152,234,.12);
  border-radius:9px;padding:9px 10px;
  transition:border-color .15s,box-shadow .15s
}
.bspp-field:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,152,234,.1)}
.bspp-inp{
  border:none;background:transparent;
  font-family:'Inter',sans-serif;font-size:16px;font-weight:700;
  color:var(--t1);width:100%;outline:none;
  -moz-appearance:textfield
}
.bspp-inp::-webkit-outer-spin-button,.bspp-inp::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.bspp-unit{font-size:10px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.5px}
.bspp-field-max{
  align-items:center;justify-content:center;
  background:rgba(245,54,92,.05);border-color:rgba(245,54,92,.18)
}
.bspp-max-label{font-size:15px;font-weight:800;color:var(--red);opacity:.7}
.bspp-footer{display:flex;gap:8px;justify-content:flex-end}
.bspp-btn-reset{
  padding:7px 14px;border:1.5px solid rgba(0,152,234,.2);
  border-radius:8px;background:transparent;
  font-family:'Inter',sans-serif;font-size:12px;font-weight:600;
  color:var(--t2);cursor:pointer;transition-property:background,border-color,color;transition-duration:.15s}
.bspp-btn-reset:hover{border-color:var(--blue);color:var(--blue);background:rgba(0,152,234,.06)}
.bspp-btn-save{
  padding:7px 20px;border:none;border-radius:8px;
  background:var(--blue);color:#fff;
  font-family:'Inter',sans-serif;font-size:12px;font-weight:700;
  cursor:pointer;transition-property:background,box-shadow;transition-duration:.15s}
.bspp-btn-save:hover{background:#007cc7;box-shadow:0 4px 14px rgba(0,152,234,.4)}
/* Limit form labels inside bs-amount-card */
/* Limit line — GMGN gutter: thin ray → compact pill (plot) → MC chip (scale) */
/* Axis chip: same pill as the live-price tag (.dv-ax-badge.is-on-scale).
   Draft chip is reparented into #dvAxBadges; confirmed chips stay on the line.
   Color comes from .is-lo-buy / .is-lo-sell; data-dir is the fallback. */

/* Confirmed orders: same scrubber chrome, locked (no drag) */

.bs-body{padding:14px;display:flex;flex-direction:column;gap:10px}
/* Consistent panel order: input → receive → presets → balance → button → settings */
.bs-body .bs-amount-card{order:1}
.bs-body #bsRecvBlock{order:2}
.bs-body .bs-presets{order:3}
.bs-body .bs-bal-row{order:4}
.bs-body .btn-trade-main{order:6}
.bs-body #bsSlipRow{order:7}
.bs-amount-card{
  background:rgba(255,255,255,.72);
  border:1.5px solid rgba(0,152,234,.15);
  border-radius:11px;padding:12px 14px;
  transition:border-color .18s,box-shadow .18s
}
.bs-amount-card:focus-within{
  border-color:var(--blue);
  box-shadow:0 0 0 3px var(--glow)
}
.bs-amount-row{display:flex;align-items:center;gap:10px}
.bs-inp{
  flex:1;min-width:0;background:none;border:none;outline:none;
  font-family:'Inter',sans-serif;
  font-size:30px;font-weight:800;color:var(--t1);padding:0
}
.bs-inp::placeholder{color:rgba(10,37,64,.32)}
.bs-inp::-webkit-outer-spin-button,.bs-inp::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.bs-inp{-moz-appearance:textfield}
.bs-cur-badge{
  display:flex;align-items:center;gap:5px;flex-shrink:0;
  background:rgba(0,152,234,.09);border:1.5px solid rgba(0,152,234,.18);
  border-radius:8px;padding:6px 12px;white-space:nowrap
}
.bs-cur-badge span{font-size:13px;font-weight:700;color:var(--t2)}
.bs-approx{font-size:11px;color:var(--t3);margin-top:5px;min-height:16px}
.bs-presets{display:flex;gap:5px}
.bs-pre{
  flex:1;padding:8px 0;border-radius:8px;
  font-family:'Inter',sans-serif;font-size:12px;font-weight:700;
  background:rgba(0,152,234,.07);border:1.5px solid rgba(0,152,234,.14);
  color:var(--t2);cursor:pointer;transition-property:background,border-color,color;transition-duration:.15s;white-space:nowrap
}
.bs-pre:hover{border-color:var(--blue);color:var(--blue);background:rgba(0,152,234,.13)}
.bs-pre.sel{border-color:var(--blue);color:var(--blue);background:rgba(0,152,234,.16);font-weight:800}
.bs-pre-sell:hover{border-color:var(--red);color:var(--red);background:rgba(245,54,92,.07)}
.bs-pre-sell.sel{border-color:var(--red);color:var(--red);background:rgba(245,54,92,.1);font-weight:800}
.bs-bal-row{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--t3)}
.bs-bal-txt{flex:1}
.bs-bal-val{font-weight:700;color:var(--t2)}
.bs-max-btn{
  font-size:11px;font-weight:800;color:var(--blue);
  cursor:pointer;letter-spacing:.5px;transition:opacity .15s
}
.bs-max-btn:hover{opacity:.65}
.bs-recv{
  display:flex;justify-content:space-between;align-items:center;
  background:rgba(0,152,234,.07);border:1.5px solid rgba(0,152,234,.1);
  border-radius:9px;padding:11px 14px
}
.bs-recv-lbl{font-size:11px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.5px}
.bs-recv-val{font-size:13px;font-weight:700;color:var(--t1)}
.bs-min-recv{
  display:flex;justify-content:space-between;align-items:center;
  padding:6px 4px;margin-top:2px
}
.bs-slip-warn{
  display:none;padding:7px 10px;margin-top:6px;border-radius:9px;
  font-size:11.5px;line-height:1.45;font-weight:500;
}
.bs-slip-warn.low{background:rgba(245,54,92,.08);border:1px solid rgba(245,54,92,.25);color:#c0002a}
.bs-slip-warn.high{background:rgba(255,176,0,.08);border:1px solid rgba(255,176,0,.25);color:#b87800}
.bs-impact-warn{background:rgba(255,140,0,.08);border:1px solid rgba(255,140,0,.22);color:#a05c00;font-size:11.5px}
.bs-min-lbl{font-size:11px;color:var(--t3)}
.bs-min-val{font-size:11px;font-weight:600;color:var(--t2)}

/* ── Limit-order per-order slippage control ── */

.btn-trade-main{
  width:100%;height:50px;border:none;border-radius:12px;
  font-family:'Inter',sans-serif;font-size:15px;font-weight:800;
  cursor:pointer;color:#fff;letter-spacing:.2px;
  transition-property:box-shadow,transform;transition-duration:.22s cubic-bezier(.4,0,.2,1)}
.btn-trade-main.buy{
  background:linear-gradient(135deg,#00C853 0%,#00E676 100%);
  box-shadow:0 6px 22px rgba(0,200,83,.42)
}
.btn-trade-main.buy:hover{box-shadow:0 8px 30px rgba(0,200,83,.6);transform:translateY(-1px)}
.btn-trade-main.sell{
  background:linear-gradient(135deg,#F5365C 0%,#FF6B6B 100%);
  box-shadow:0 6px 22px rgba(245,54,92,.42)
}
.btn-trade-main.sell:hover{box-shadow:0 8px 30px rgba(245,54,92,.6);transform:translateY(-1px)}
.btn-trade-main.send{
  background:linear-gradient(135deg,#0098EA 0%,#38C8FF 100%);
  box-shadow:0 6px 22px rgba(0,152,234,.42)
}
.btn-trade-main.send:hover{box-shadow:0 8px 30px rgba(0,152,234,.6);transform:translateY(-1px)}
.btn-trade-main:disabled{opacity:.5;cursor:not-allowed;transform:none !important;box-shadow:none !important}

.bs-trade-settings-btn{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  width:100%;padding:10px 13px;margin-top:4px;
  background:rgba(0,152,234,.055);border:1.5px solid rgba(0,152,234,.13);
  border-radius:11px;cursor:pointer;transition:background .15s,border-color .15s
}
.bs-trade-settings-btn:hover{background:rgba(0,152,234,.1);border-color:rgba(0,152,234,.25)}
.bs-ts-left{display:flex;align-items:center;gap:8px}
.bs-ts-ico{width:20px;height:20px;object-fit:contain;flex-shrink:0}
.bs-ts-label{font-size:13px;font-weight:600;color:var(--t2)}
.bs-ts-right{display:flex;align-items:center;gap:5px}
.bs-ts-val{font-size:13px;font-weight:700;color:var(--blue)}
.bs-ts-arrow{width:14px;height:14px;color:var(--t3);flex-shrink:0}

.bond-card{background:rgba(234,246,255,.94);border:1.5px solid rgba(0,152,234,.12);border-radius:var(--r);padding:18px;backdrop-filter:blur(12px);box-shadow:0 4px 20px rgba(10,37,64,.05)}
.bond-title{font-size:14px;font-weight:700;margin-bottom:14px;color:var(--t1);display:flex;align-items:center;gap:8px}
.bond-title-ico{width:32px;height:32px;object-fit:contain;flex-shrink:0}
.bond-bar{height:7px;background:rgba(0,152,234,.12);border-radius:4px;margin-bottom:10px;overflow:hidden}
.bond-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,var(--blue),var(--blue2));transition:width .6s ease}
.bond-info{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--t2);margin-bottom:12px}
.bond-info span:first-child{font-weight:800;color:var(--blue);font-size:15px}
.bond-rows{display:flex;flex-direction:column;gap:7px}
.bond-row{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--t2);padding:8px 12px;background:rgba(0,152,234,.06);border-radius:7px}
.bond-row span:last-child{font-weight:700;color:var(--t1)}
.bond-muted{color:var(--t3);font-weight:600}

/* ════ Bonding-curve energy progress (Vella) ════ */
.bond-bar{height:10px;position:relative;overflow:visible;background:rgba(0,152,234,.12);border-radius:6px;margin-bottom:12px}
.bond-fill{position:relative;height:100%;border-radius:6px;overflow:hidden;
  background:linear-gradient(90deg,var(--blue),var(--blue2));
  box-shadow:0 0 14px rgba(0,152,234,.55);
  transition:width .28s var(--ease-out)}
/* flowing energy stripes */
.bond-fill::before{content:'';position:absolute;inset:0;
  background:repeating-linear-gradient(115deg,transparent 0 9px,rgba(255,255,255,.16) 9px 18px);
  animation:bondFlow 1.1s linear infinite}
@keyframes bondFlow{to{background-position:36px 0}}
/* bright leading edge */
.bond-fill::after{content:'';position:absolute;top:0;bottom:0;right:0;width:4px;
  background:#eaf6ff;box-shadow:0 0 10px 1px #4DB8FF}
/* milestone ticks */
.bond-tick{position:absolute;top:50%;width:2px;height:14px;margin-top:-7px;border-radius:1px;
  background:rgba(10,37,64,.16);transform:translateX(-1px);
  transition:background .35s var(--ease-out),box-shadow .35s var(--ease-out),height .35s var(--ease-spring)}
.bond-tick.lit{background:var(--blue2);box-shadow:0 0 8px var(--blue2);height:16px;margin-top:-8px}
/* near-graduation anticipation pulse */
.bond-bar.near .bond-fill{animation:bondPulse 1.2s ease-in-out infinite}
@keyframes bondPulse{0%,100%{box-shadow:0 0 14px rgba(0,152,234,.55)}50%{box-shadow:0 0 28px rgba(0,212,255,.9),0 0 6px rgba(255,255,255,.7)}}
/* graduated → gold */
.bond-card.graduated .bond-fill{background:linear-gradient(90deg,#FFB300,#FFD24D);box-shadow:0 0 18px rgba(255,179,0,.6)}
.bond-card.graduated .bond-fill::after{background:#FFD24D;box-shadow:0 0 10px 1px #FFD24D}
.bond-card.graduated .bond-tick{background:#FFD24D;box-shadow:0 0 6px #FFB300}
@media (prefers-reduced-motion:reduce){
  .bond-fill::before,.bond-bar.near .bond-fill{animation:none}
  .bond-fill{transition:none}
}

/* ════ Curve → Pool migration morph (bond card) ════ */
.bond-card{position:relative;isolation:isolate}
.bond-card.bond-xpool{
  overflow:hidden;
  box-shadow:0 0 0 1px rgba(255,179,0,.28),0 12px 36px rgba(10,37,64,.1);
  transition:box-shadow .35s cubic-bezier(0.2,0,0,1);
}
.bond-xpool-fx{position:absolute;inset:0;pointer-events:none;z-index:4;overflow:hidden;border-radius:inherit}
.bond-xpool-beam{
  position:absolute;left:12px;right:12px;top:46px;height:10px;border-radius:6px;
  background:linear-gradient(90deg,transparent,rgba(255,210,77,.55),rgba(0,152,234,.45),transparent);
  filter:blur(0.2px);opacity:0;animation:bondXBeam 1.1s cubic-bezier(0.2,0,0,1) .05s both;
}
.bond-xpool-orb{
  position:absolute;top:34px;left:10px;width:28px;height:28px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:#fff;border:1.5px solid rgba(10,37,64,.12);
  box-shadow:0 4px 14px rgba(10,37,64,.18);
  overflow:hidden;will-change:transform,opacity;
  animation:bondXOrb 1.35s cubic-bezier(0.2,0,0,1) both;
}
.bond-xpool-orb img{width:100%;height:100%;object-fit:cover;display:block}
.bond-xpool-banner{
  position:absolute;left:50%;top:58%;transform:translate(-50%,-40%);
  display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;
  background:rgba(255,255,255,.92);border:1px solid rgba(10,37,64,.1);
  box-shadow:0 8px 28px rgba(10,37,64,.12);
  font-size:12px;font-weight:800;letter-spacing:.04em;color:var(--t1);
  opacity:0;animation:bondXBanner .7s cubic-bezier(0.2,0,0,1) .12s both;
}
.bond-xpool-from{color:#c98a00}
.bond-xpool-to{color:var(--blue)}
.bond-xpool-arrow{color:var(--t3);font-weight:700}
.bond-xpool-tick{
  margin-left:4px;padding:2px 8px;border-radius:999px;
  background:rgba(0,152,234,.1);color:var(--blue);font-variant-numeric:tabular-nums;
}
.bond-rows-exit{
  animation:bondRowsExit .42s cubic-bezier(0.2,0,0,1) both;
}
.bond-rows-enter .bond-row{
  opacity:0;transform:translateY(8px);
  animation:bondRowIn .45s cubic-bezier(0.2,0,0,1) both;
}
.bond-rows-enter .bond-row:nth-child(1){animation-delay:.04s}
.bond-rows-enter .bond-row:nth-child(2){animation-delay:.12s}
.bond-rows-enter .bond-row:nth-child(3){animation-delay:.2s}
.bond-rows-enter .bond-row:nth-child(4){animation-delay:.28s}
.bond-title-flip{animation:bondTitleFlip .28s cubic-bezier(0.2,0,0,1) both}
.bond-title-land{animation:bondTitleLand .4s cubic-bezier(0.2,0,0,1) both}
@keyframes bondXBeam{
  0%{opacity:0;transform:scaleX(.2)}
  35%{opacity:1;transform:scaleX(1)}
  100%{opacity:0;transform:scaleX(1)}
}
@keyframes bondXOrb{
  0%{transform:translateX(0) scale(.6);opacity:0}
  12%{opacity:1;transform:translateX(0) scale(1)}
  72%{transform:translateX(min(240px,58vw)) scale(1);opacity:1}
  100%{transform:translateX(min(260px,62vw)) scale(.35);opacity:0}
}
@keyframes bondXBanner{
  0%{opacity:0;filter:blur(4px);transform:translate(-50%,-30%) scale(.92)}
  55%{opacity:1;filter:blur(0);transform:translate(-50%,-50%) scale(1)}
  100%{opacity:0;filter:blur(4px);transform:translate(-50%,-62%) scale(.96)}
}
@keyframes bondRowsExit{
  to{opacity:0;transform:translateY(-8px);filter:blur(2px)}
}
@keyframes bondRowIn{
  to{opacity:1;transform:translateY(0)}
}
@keyframes bondTitleFlip{
  to{opacity:0;transform:translateY(-4px) scale(.96);filter:blur(3px)}
}
@keyframes bondTitleLand{
  from{opacity:0;transform:translateY(6px) scale(.96);filter:blur(3px)}
  to{opacity:1;transform:none;filter:none}
}
@media (prefers-reduced-motion:reduce){
  .bond-xpool-fx,.bond-rows-exit,.bond-rows-enter .bond-row,
  .bond-title-flip,.bond-title-land{animation:none!important}
}

/* ════ Trade feedback — flash + particle burst (Vella) ════ */
.trade-flash{position:fixed;inset:0;z-index:9998;pointer-events:none;opacity:0;animation:tradeFlash .68s var(--ease-out)}
.tf-buy{background:radial-gradient(ellipse at 50% 62%, rgba(0,200,83,.22), transparent 62%)}
.tf-sell{background:radial-gradient(ellipse at 50% 62%, rgba(245,54,92,.22), transparent 62%)}
@keyframes tradeFlash{0%{opacity:0}14%{opacity:1}100%{opacity:0}}
.trade-particle{position:fixed;width:9px;height:9px;border-radius:50%;z-index:9998;pointer-events:none;
  transform:translate(-50%,-50%);animation:tradeParticle .95s var(--ease-out) forwards}
.tp-buy{background:linear-gradient(135deg,#00e676,#00C853);box-shadow:0 0 8px rgba(0,200,83,.7)}
.tp-sell{background:linear-gradient(135deg,#ff6f8b,#F5365C);box-shadow:0 0 8px rgba(245,54,92,.7)}
@keyframes tradeParticle{
  0%{opacity:1;transform:translate(-50%,-50%) scale(1)}
  100%{opacity:0;transform:translate(calc(-50% + var(--tx)),calc(-50% + var(--ty))) scale(.3)}
}

/* ── CREATOR REWARDS CARD ─────────────────────────────────────────────────── */
.cr-card{background:rgba(234,246,255,.94);border:1.5px solid rgba(0,152,234,.12);border-radius:var(--r);padding:16px;backdrop-filter:blur(12px);box-shadow:0 4px 20px rgba(10,37,64,.05)}
.cr-title{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--t1);margin-bottom:13px}
.cr-title svg{color:#f5a623;flex-shrink:0}
.cr-highlight{background:linear-gradient(135deg,rgba(77,184,255,.12),rgba(0,152,234,.07));border:1px solid rgba(77,184,255,.2);border-radius:10px;padding:12px 14px;margin-bottom:12px;text-align:center}
.cr-highlight-val{font-size:22px;font-weight:900;color:var(--blue);letter-spacing:-.03em;line-height:1}
.cr-highlight-lbl{font-size:10px;font-weight:600;color:var(--t3);text-transform:uppercase;letter-spacing:.4px;margin-top:4px}
.cr-bar-wrap{margin-bottom:12px}
.cr-bar{height:6px;background:rgba(0,152,234,.12);border-radius:4px;overflow:hidden;margin-bottom:6px}
.cr-bar-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,var(--blue),#00d4ff);transition:width .6s ease}
.cr-bar-labels{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--t3)}
.cr-rate-badge{font-size:10px;font-weight:700;padding:2px 7px;border-radius:5px;background:rgba(0,200,100,.1);color:var(--grn)}
.cr-rows{display:flex;flex-direction:column;gap:6px}
.cr-row{display:flex;justify-content:space-between;align-items:center;font-size:11.5px;color:var(--t2);padding:7px 10px;background:rgba(0,152,234,.05);border-radius:7px}
.cr-row span:last-child{font-weight:700;color:var(--t1)}
.cr-row span.up{color:var(--grn)}


/* ═══════════════ RESPONSIVE ═══════════════ */
@media(max-width:1000px){
  .footer-grid{grid-template-columns:1fr 1fr 1fr 1fr}
  /* Icon-rail: keep Holdings + Watchlist as icon targets; hide expandable chrome */
  .sb-hld-manage,.sb-hld-fulltable,.sb-ls-coins,.sb-ls-seemore{display:none!important}
}
@media(max-width:900px){
  .dv-grid{grid-template-columns:1fr}
  .dv-right{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
  .stats-row{grid-template-columns:1fr 1fr}
  .dv-flow-card{grid-column:1 / -1} /* Stats full-bleed under Volume+Holders */
  .detail-view{padding:16px 16px 28px}
  .dv-chart-el{height:360px}
  .dv-vtabs{
    max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;
    scrollbar-width:none;flex-wrap:nowrap
  }
  .dv-vtabs::-webkit-scrollbar{display:none}
  .dv-vtab{flex-shrink:0}
}
@media(max-width:700px){
  :root{
    --sb-w:0px;
    --mnb-h:62px;
    --mnb-clearance:calc(var(--mnb-h) + env(safe-area-inset-bottom,0px));
  }
  .sidebar{display:none}
  .right-area{margin-left:0;padding-bottom:var(--mnb-clearance)}
  .ticker-label-text{display:none}
  .ticker-label{padding:0 10px;gap:0}
  .coin-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .cm-inner{flex-direction:column}
  .cm-prv{width:auto;border-top:1px solid rgba(0,152,234,.1);border-right:none;border-radius:0 0 16px 16px}
  /* Nested max-height on the form fights the single-scroll sheet on mobile —
     keep overflow on the sheet itself (see #createModal rules ≤600px). */
  .cm-form{border-right:none;max-height:none;overflow:visible}
  .footer-grid{grid-template-columns:1fr 1fr}
  .topbar{
    padding:env(safe-area-inset-top,0px) 12px 0;
    gap:8px;
    height:calc(var(--tb-h) + env(safe-area-inset-top,0px));
  }
  .btn-pnl .pnl-lbl{display:none}
  .btn-pnl{padding:0 10px}
  .stats-row{grid-template-columns:1fr}
  .dv-right{grid-template-columns:1fr}
  .dv-stat-banner{flex-wrap:wrap}
  .dvsb-divider{display:none}
  .dvsb-cell{flex:1 1 40%;min-width:0}
  .mobile-bottom-nav{display:flex}
}
@media(max-width:420px){
  /* 480px block reasserts 2-col; keep 1-col only on very narrow phones */
  .footer-grid{grid-template-columns:1fr}
}

/* ═══════════════ TG TRACKER VIEW ═══════════════ */
.tgt-view{display:none;padding:20px 24px 40px;flex:1;min-width:0}
.tgt-view.active{display:block}

.tgt-hero{
  background:linear-gradient(130deg,rgba(0,152,234,.13) 0%,rgba(77,184,255,.08) 50%,rgba(0,194,183,.06) 100%);
  border:1.5px solid rgba(0,152,234,.18);border-radius:18px;
  padding:30px 36px;margin-bottom:20px;backdrop-filter:blur(16px);
  box-shadow:0 6px 28px rgba(10,37,64,.07);
  display:flex;flex-direction:column;align-items:flex-start;gap:8px;
  position:relative;overflow:hidden
}
.tgt-hero::after{
  content:'';position:absolute;top:-40px;right:-30px;
  width:180px;height:180px;border-radius:50%;
  background:radial-gradient(circle,rgba(0,152,234,.1) 0%,transparent 65%);
  pointer-events:none
}
.tgt-hero-icon .te{width:44px;height:44px;filter:drop-shadow(0 0 14px rgba(0,152,234,.55))}
.tgt-hero-title{font-size:28px;font-weight:900;color:var(--t1);letter-spacing:-.5px;text-wrap:balance}
.tgt-hero-sub{font-size:14px;color:var(--t2);line-height:1.5;text-wrap:pretty}

.tgt-header{
  padding:16px 0 12px;border-bottom:1px solid rgba(0,152,234,.1);margin-bottom:14px
}
.tgt-title{
  display:flex;align-items:center;gap:8px;
  font-size:15px;font-weight:800;color:var(--t1);margin-bottom:4px
}
.tgt-sub{font-size:12px;color:var(--t3)}

.tgt-feed{display:flex;flex-direction:column;gap:10px}

.tgt-post{
  display:flex;gap:13px;
  background:rgba(240,248,255,.96);border:1.5px solid rgba(0,152,234,.1);
  border-radius:14px;padding:15px 18px;backdrop-filter:blur(12px);
  transition:border-color .15s,box-shadow .15s,transform .15s;
  animation:cardIn .3s ease backwards;
  border-left:3px solid rgba(0,152,234,.25)
}
.tgt-post:hover{
  border-color:rgba(0,152,234,.3);border-left-color:var(--blue);
  box-shadow:0 6px 22px rgba(10,37,64,.09);transform:translateX(2px)
}

/* Avatar with real channel photo overlay */
.tgt-post-av{
  width:44px;height:44px;border-radius:50%;flex-shrink:0;
  background:rgba(0,152,234,.1);border:2px solid rgba(0,152,234,.18);
  display:flex;align-items:center;justify-content:center;font-size:19px;
  position:relative;overflow:hidden
}
.tgt-av-img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:50%;z-index:1
}
.tgt-av-letter{line-height:1}

.tgt-post-body{flex:1;min-width:0}

/* Top row: channel name + subs on left, sentiment + time on right */
.tgt-post-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:6px}
.tgt-channel-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.tgt-channel{font-size:13px;font-weight:800;color:var(--blue)}
.tgt-members{font-size:12px;color:var(--t3);font-weight:600;white-space:nowrap}
.tgt-top-right{display:flex;align-items:center;gap:6px;flex-shrink:0}
.tgt-time{font-size:13px;color:var(--t2);font-weight:600;flex-shrink:0;white-space:nowrap}

/* Sentiment badge */
.tgt-sentiment{
  font-size:10px;font-weight:700;padding:2px 7px;border-radius:10px;
  white-space:nowrap;letter-spacing:.2px
}
.tgt-s-bull{background:rgba(34,197,94,.12);color:#16a34a;border:1px solid rgba(34,197,94,.25)}
.tgt-s-bear{background:rgba(239,68,68,.1);color:#dc2626;border:1px solid rgba(239,68,68,.22)}
.tgt-s-neu{background:rgba(0,152,234,.1);color:var(--blue);border:1px solid rgba(0,152,234,.2)}

.tgt-post-text{
  font-size:13px;color:var(--t1);line-height:1.6;margin-bottom:10px;
  word-break:break-word;white-space:pre-wrap
}

.tgt-post-footer{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tgt-coin-chip{
  display:inline-flex;align-items:center;gap:6px;
  padding:4px 10px;border-radius:20px;cursor:pointer;
  background:rgba(0,152,234,.08);border:1.5px solid rgba(0,152,234,.18);
  transition-property:background,border-color;transition-duration:.15s;flex-shrink:0
}
.tgt-coin-chip:hover{background:rgba(0,152,234,.15);border-color:var(--blue)}
.tgt-coin-img{
  width:18px;height:18px;border-radius:4px;object-fit:cover;flex-shrink:0
}
.tgt-coin-emoji{
  width:18px;height:18px;border-radius:4px;
  display:inline-flex;align-items:center;justify-content:center;font-size:11px;flex-shrink:0
}
.tgt-coin-ticker{font-size:12px;font-weight:800;color:var(--blue)}
.tgt-coin-mc{font-size:11px;font-weight:600;color:var(--t2);padding-left:2px}
.tgt-coin-chg{font-size:11px;font-weight:700}
.tgt-chg-pos{color:#22c55e}.tgt-chg-neg{color:#ef4444}
.tgt-addr{font-size:11px;color:var(--t3);font-family:monospace;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tgt-stats{display:flex;gap:10px;flex-shrink:0;margin-left:auto}
.tgt-stat{font-size:11px;color:var(--t3);font-weight:600}

/* New-posts banner */
.tgt-new-banner{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  background:var(--blue);color:#fff;font-size:13px;font-weight:700;
  padding:11px 18px;border-radius:var(--r);margin-bottom:10px;
  cursor:pointer;animation:cardIn .25s ease backwards;
  transition:opacity .15s,transform .15s
}
.tgt-new-banner:hover{opacity:.92;transform:translateY(-1px)}
.tgt-banner-cta{
  font-size:11px;font-weight:800;padding:3px 10px;border-radius:12px;
  background:rgba(255,255,255,.22);white-space:nowrap;flex-shrink:0
}

/* Coin filter chips */
.tgt-filters{
  display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;padding-bottom:2px
}
.tgt-fchip{
  padding:5px 13px;border-radius:20px;font-size:12px;font-weight:700;
  background:rgba(0,152,234,.08);border:1.5px solid rgba(0,152,234,.18);
  color:var(--t2);cursor:pointer;transition-property:background,border-color,color;transition-duration:.15s;white-space:nowrap
}
.tgt-fchip:hover{background:rgba(0,152,234,.15);color:var(--blue);border-color:rgba(0,152,234,.35)}
.tgt-fchip.active{background:var(--blue);border-color:var(--blue);color:#fff}

/* First-mention badge */
.tgt-first-badge{
  font-size:10px;font-weight:800;padding:3px 9px;border-radius:10px;
  background:rgba(0,152,234,.1);color:var(--blue);
  border:1.5px solid rgba(0,152,234,.3);
  white-space:nowrap;flex-shrink:0;letter-spacing:.2px
}

/* ── Podium + Rankings split layout ─────────────────────────────────────── */
/* Top-mentioned coins — signal card (same family as .wlt-coord--signal). */
.tgt-topcoins.wlt-coord--signal .wlt-coord-head{flex-direction:column;align-items:stretch;gap:10px}
.tgt-topcoin-title-row{
  display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap
}
.tgt-topcoins .tgt-topcoin-chip{
  align-items:center;gap:8px;padding:8px 12px 8px 8px;height:auto;border-radius:12px;
  background:rgba(255,255,255,.88);border-color:rgba(0,152,234,.3);
  transition-property:transform,border-color,background,box-shadow;transition-duration:.15s
}
.tgt-topcoins .tgt-topcoin-chip:hover{
  background:#fff;border-color:var(--blue);
  transform:translateY(-1px);box-shadow:0 6px 16px rgba(0,152,234,.12)
}
.tgt-topcoins .tgt-topcoin-chip:active{transform:scale(.96)}
.tgt-topcoin-meta{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0}
.tgt-topcoin-stats{display:flex;align-items:center;gap:6px}
.tgt-topcoin-cnt{
  font-size:10px;font-weight:800;color:var(--blue);letter-spacing:.02em;
  background:rgba(0,152,234,.12);border:1px solid rgba(0,152,234,.2);
  border-radius:6px;padding:2px 7px;margin-left:2px;white-space:nowrap;
  font-variant-numeric:tabular-nums
}
[data-theme="dark"] .tgt-topcoins .tgt-topcoin-chip{background:rgba(255,255,255,.12);border-color:rgba(0,152,234,.35)}

/* Top-coins controls: sort (mentions/reach) + window (24h/7d) segmented pills */
.tgt-topcoin-ctrls{display:flex;gap:8px;flex-wrap:wrap;flex-shrink:0}
.tgt-seg{
  display:inline-flex;gap:2px;padding:2px;border-radius:9px;
  background:rgba(255,255,255,.6);border:1.5px solid rgba(0,152,234,.2)
}
.tgt-seg-btn{
  border:none;background:none;cursor:pointer;font-family:inherit;
  font-size:11px;font-weight:700;color:var(--t3);padding:4px 11px;border-radius:7px;
  transition-property:background,color,box-shadow;transition-duration:.13s
}
.tgt-seg-btn:hover:not(.active){color:var(--blue)}
.tgt-seg-btn.active{background:var(--blue);color:#fff;box-shadow:0 1px 4px rgba(0,152,234,.3)}
[data-theme="dark"] .tgt-seg{background:rgba(255,255,255,.06);border-color:rgba(0,152,234,.3)}

/* Mobile: stack title + controls; chips become full-width rows. */
@media(max-width:600px){
  .tgt-topcoin-title-row{flex-direction:column;align-items:stretch;gap:10px}
  .tgt-topcoins .tgt-topcoin-ctrls{width:100%}
  .tgt-topcoins .tgt-seg{flex:1;justify-content:center}
  .tgt-topcoins .tgt-seg-btn{flex:1;text-align:center}
  .tgt-topcoins .wlt-coord-list{gap:8px}
  .tgt-topcoins .tgt-topcoin-chip{width:100%;border-radius:12px;padding:9px 12px}
  .tgt-topcoins .tgt-topcoin-cnt{margin-left:auto}
}

/* Channel Leaderboard sits on its own, full width above the feed. */
.tgt-split-wrap{margin-bottom:20px}

/* Channel rankings panel */
.tgt-rank-panel{
  background:rgba(234,246,255,.92);border:1.5px solid rgba(0,152,234,.14);
  border-radius:18px;padding:18px;overflow:hidden;
  box-shadow:0 4px 20px rgba(10,37,64,.06)
}
.tgt-rank-hdr{
  font-size:15px;font-weight:900;color:var(--t1);letter-spacing:-.2px;
  padding-bottom:12px;margin-bottom:12px;
  border-bottom:1.5px solid rgba(0,152,234,.1);
  display:flex;align-items:baseline;gap:8px
}
.tgt-rank-sub{font-size:11px;color:var(--t3);font-weight:600;letter-spacing:.2px}
.tgt-rank-list{display:flex;flex-direction:column;gap:7px;max-height:460px;overflow-y:auto}
.tgt-rank-list::-webkit-scrollbar{width:3px}
.tgt-rank-list::-webkit-scrollbar-thumb{background:rgba(0,152,234,.25);border-radius:2px}
.tgt-rk-loading{font-size:12px;color:var(--t3);padding:20px;text-align:center}

.tgt-rk-row{
  display:flex;align-items:center;gap:11px;padding:11px 14px;
  background:rgba(255,255,255,.65);border:1.5px solid rgba(0,152,234,.09);
  border-left:3px solid rgba(0,152,234,.25);
  border-radius:12px;transition-property:background,border-color;transition-duration:.13s}
.tgt-rk-row:hover{
  background:rgba(0,152,234,.06);border-color:rgba(0,152,234,.2);
  border-left-color:var(--blue)
}
.tgt-rk-av{
  width:38px;height:38px;border-radius:50%;flex-shrink:0;
  background:rgba(0,152,234,.1);border:1.5px solid rgba(0,152,234,.18);
  display:flex;align-items:center;justify-content:center;font-size:15px;
  position:relative;overflow:hidden
}
.tgt-rk-av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.tgt-rk-info{flex:1;min-width:0}
.tgt-rk-name{font-size:13px;font-weight:800;color:var(--t1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:3px}
.tgt-rk-meta{font-size:11px;color:var(--t3);font-weight:500}
.tgt-rk-stats{text-align:right;flex-shrink:0}
.tgt-rk-sig{display:block;font-size:17px;font-weight:900;color:var(--blue);line-height:1.1}
.tgt-rk-lbl{font-size:9px;color:var(--t3);font-weight:600;letter-spacing:.3px;display:block;margin-top:2px}

/* Bell icon on filter chip */
.tgt-fchip-wrap{display:inline-flex;align-items:center;gap:0}
.tgt-fbell{
  width:24px;height:24px;border-radius:0 12px 12px 0;
  background:rgba(0,152,234,.06);border:1.5px solid rgba(0,152,234,.18);border-left:none;
  font-size:11px;cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition-property:background,border-color,opacity;transition-duration:.15s;opacity:.6;margin-left:-1px
}
.tgt-fbell:hover{opacity:1;background:rgba(0,152,234,.15)}
.tgt-fbell.active{opacity:1;background:rgba(234,179,8,.15);border-color:rgba(234,179,8,.4)}
.tgt-fchip-wrap .tgt-fchip{border-radius:20px 0 0 20px}

/* (old tgt-top-mentions + tgt-channels-section replaced by split layout above) */

/* Coin detail TG Signals tab (after Chat) — always-on contract mention feed */
#dvTgSignalsTabBody{padding:0}
.tgt-dv-feed{
  display:flex;flex-direction:column;gap:0;
  max-height:min(520px,62vh);overflow:auto;padding:4px 2px 8px
}
.tgt-dv-feed .tgt-post{cursor:default}
.tgt-dv-empty-tab{padding:28px 16px;text-align:center}
.tgt-dv-mc{
  font-size:10px;font-weight:700;color:var(--t3);font-variant-numeric:tabular-nums;
  padding:2px 6px;border-radius:6px;background:rgba(0,152,234,.08)
}
@keyframes tgtPing{
  0%  {box-shadow:0 0 0 0 rgba(0,152,234,.0);border-color:rgba(0,152,234,.1)}
  18% {box-shadow:0 0 0 6px rgba(0,152,234,.18),0 6px 28px rgba(0,152,234,.14);border-color:rgba(0,152,234,.65);transform:scale(1.008)}
  55% {box-shadow:0 0 0 12px rgba(0,152,234,.06),0 8px 32px rgba(0,152,234,.10);border-color:rgba(0,152,234,.35);transform:scale(1.003)}
  100%{box-shadow:0 0 0 0 rgba(0,152,234,.0);border-color:rgba(0,152,234,.1);transform:scale(1)}
}
.tgt-dv-post.tgt-dv-card--ping,
.tgt-dv-feed.tgt-dv-card--ping{animation:tgtPing .9s cubic-bezier(.22,1,.36,1) forwards}

/* Chart event dots — filled marks, white glyph */
.dv-ev-tg{background:#229ED9;border-color:#47C1F5;color:#fff}
.dv-ev-tg:hover,.dv-ev-tg.active{border-color:#7DD3FC;box-shadow:0 0 0 3px rgba(41,182,246,.28)}
.dv-ev-x{background:#FF8A3D;border-color:#FFA05C;color:#fff}
.dv-ev-x:hover,.dv-ev-x.active{border-color:#FFB87A;box-shadow:0 0 0 3px rgba(255,138,61,.28)}
.dv-ev-x img{width:14px;height:14px;display:block;filter:invert(1)}

/* X Tracker — same chrome as TG, ink accent instead of TON blue */
.nav-ico-x img{width:16px;height:16px;object-fit:contain}
.xtr-view .tgt-hero{
  background:linear-gradient(130deg,rgba(12,12,12,.08) 0%,rgba(12,12,12,.03) 55%,rgba(12,12,12,.05) 100%);
  border-color:rgba(12,12,12,.14);
}
.xtr-view .tgt-hero::after{
  background:radial-gradient(circle,rgba(12,12,12,.08) 0%,transparent 65%);
}
.xtr-view .tgt-hero-icon img{
  filter:none;
  width:34px;height:34px;
}
.xtr-view .tgt-post{border-left-color:rgba(255,138,61,.45)}
.xtr-view .tgt-post:hover{border-left-color:#FF8A3D;border-color:rgba(255,138,61,.35)}
.xtr-view .tgt-rk-row{border-left-color:rgba(255,138,61,.45)}
.xtr-view .tgt-rk-row:hover{border-left-color:#FF8A3D}
.xtr-view .tgt-channel{color:var(--t1)}
.xtr-handle{
  font-size:12px;font-weight:650;color:var(--t3);white-space:nowrap
}
.xtr-verified{
  display:inline-flex;align-items:center;justify-content:center;
  width:14px;height:14px;border-radius:50%;
  background:var(--t1);color:var(--bg);font-size:9px;font-weight:800;line-height:1
}
.xtr-rk-handle{color:var(--t3);font-weight:600}
.xtr-metric{letter-spacing:.01em}
.xtr-empty-logo{opacity:.45;margin:0 auto 12px;display:block}
.xtr-badge-logo{width:13px;height:13px;object-fit:contain;margin-right:2px;vertical-align:-1px}
.xtr-s-neu{letter-spacing:.02em}

/* TG tooltip text excerpt */
.dv-ev-tip-tgtext{
  font-size:13px;color:var(--t2);line-height:1.45;padding:12px 12px;
  background:rgba(0,0,0,.04);border-radius:10px;margin:0 0 14px;
  word-break:break-word;text-wrap:pretty
}

/* Feed search filter */
.tgt-search-wrap{
  position:relative;display:flex;align-items:center;margin-bottom:12px
}
.tgt-search-ico{
  position:absolute;left:13px;width:15px;height:15px;
  color:var(--t3);pointer-events:none;stroke-width:2.5px;flex-shrink:0
}
.tgt-search-inp{
  width:100%;padding:10px 36px 10px 36px;
  background:rgba(255,255,255,.82);border:1.5px solid rgba(0,152,234,.15);
  border-radius:12px;font-size:13px;color:var(--t1);font-family:inherit;
  outline:none;transition:border-color .15s,box-shadow .15s
}
.tgt-search-inp:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,152,234,.1)}
.tgt-search-inp::placeholder{color:var(--t3)}
.tgt-search-clr{
  position:absolute;right:10px;width:22px;height:22px;border-radius:50%;
  background:rgba(0,0,0,.09);color:var(--t2);font-size:16px;line-height:1;
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  border:none;font-family:inherit;transition:background .12s
}
.tgt-search-clr:hover{background:rgba(0,0,0,.17)}

/* Nav red dot badge */
.tgt-nav-dot{
  position:absolute;top:-2px;right:-2px;
  min-width:16px;height:16px;border-radius:8px;
  background:#ef4444;color:#fff;font-size:9px;font-weight:800;
  display:flex;align-items:center;justify-content:center;
  padding:0 3px;line-height:1;pointer-events:none;
  box-shadow:0 1px 5px rgba(0,0,0,.3)
}

/* ═══════════════ WALLET TRACKER VIEW ═══════════════ */
.wlt-view{display:none;padding:20px 24px 40px;flex:1;min-width:0;position:relative;overflow:hidden}
.wlt-view.active{display:block}

/* ── Wallet history slide-in panel ── */
/* Same geometry as the panel — leave sidebar/topbar clickable */
.wlt-hist-backdrop{
  position:fixed;top:var(--tb-h);right:0;bottom:0;left:var(--sb-w);
  z-index:298;
  background:rgba(10,37,64,.22);
  opacity:0;pointer-events:none;
  transition:opacity .22s ease;
}
.wlt-hist-backdrop.open{opacity:1;pointer-events:auto}
[data-theme="dark"] .wlt-hist-backdrop{background:rgba(0,0,0,.45)}
.wlt-hist-panel{
  position:fixed;top:var(--tb-h);right:0;bottom:0;  /* sit under the topbar, don't cover it */
  left:var(--sb-w);              /* keep the left site nav visible */
  background:var(--bg);
  z-index:320;
  transform:translateX(100%);
  transition:transform .28s cubic-bezier(.25,.46,.45,.94);
  display:flex;flex-direction:column;overflow:hidden;overflow-x:hidden;
  box-shadow:-12px 0 40px rgba(10,37,64,.12);
  overscroll-behavior:contain;
}
.wlt-hist-panel.open{transform:translateX(0)}
.wlt-hist-body{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.wlt-hist-body::-webkit-scrollbar{width:4px}
.wlt-hist-body::-webkit-scrollbar-thumb{background:rgba(0,152,234,.2);border-radius:4px}

/* While profile is open: freeze the page underneath (no ghost-scroll) */
html.wlt-profile-open,
body.wlt-profile-open{
  overflow:hidden!important;
  overscroll-behavior:none;
}
body.wlt-profile-open .right-area,
body.wlt-profile-open #views,
body.wlt-profile-open .view.active,
body.wlt-profile-open #detailView,
body.wlt-profile-open .dv-layout,
body.wlt-profile-open .dv-main,
body.wlt-profile-open .dv-trades-scroll,
body.wlt-profile-open .trades-body{
  overflow:hidden!important;
  overscroll-behavior:none;
}

/* The panel now sits below the real topbar, which carries its own Back control
   (#topbarBack → goBack(), which closes this panel first) — so this strip would
   be a second, narrower header stacked under the first. */
.wlt-hist-topbar{display:none}

.wlt-hist-back{
  display:flex;align-items:center;gap:5px;
  padding:7px 12px;
  border:1.5px solid rgba(10,37,64,.1);border-radius:9px;
  background:rgba(10,37,64,.03);
  font-family:'Inter',sans-serif;font-size:13px;font-weight:600;color:var(--t2);
  cursor:pointer;flex-shrink:0;transition-property:background,border-color,color;transition-duration:.15s}
.wlt-hist-back:hover{border-color:rgba(10,37,64,.22);color:var(--t1);background:rgba(10,37,64,.06)}

/* Wide hero card: big avatar + name + social stats + address chips + actions */
.wlt-hist-hero{
  display:flex;align-items:flex-start;gap:20px;
  margin:12px 14px 10px;padding:18px 24px;
  background:rgba(234,246,255,.92);
  border:1.5px solid rgba(0,152,234,.14);border-radius:18px;
  box-shadow:0 2px 18px rgba(10,37,64,.05)
}
.wlt-hist-hero-av{
  width:76px;height:76px;border-radius:50%;flex-shrink:0;overflow:hidden;
  background:rgba(10,37,64,.05);
  display:flex;align-items:center;justify-content:center;font-size:34px;
  box-shadow:0 4px 16px rgba(10,37,64,.12)
}
.wlt-hist-hero-av img{width:100%;height:100%;object-fit:cover}
.wlt-hist-hero-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px}
.wlt-hist-hero-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.wlt-hist-hero-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.wlt-hist-name{font-size:24px;font-weight:900;color:var(--t1);letter-spacing:-.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wlt-hist-chips{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.wlt-hist-addr{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--blue);font-family:monospace;background:rgba(0,152,234,.06);border:1.5px solid rgba(0,152,234,.18);border-radius:20px;padding:6px 12px}
/* Second linked wallet (TonConnect <-> vault) — click to copy, hidden
   entirely when the tracked person has no linked wallet. */
.wlt-hist-linked{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--blue);font-family:monospace;cursor:pointer;background:rgba(0,152,234,.06);border:1.5px solid rgba(0,152,234,.18);border-radius:20px;padding:6px 12px;transition-property:background,border-color;transition-duration:.15s}
.wlt-hist-linked.hidden{display:none}
.wlt-hist-linked:hover{background:rgba(0,152,234,.12);border-color:rgba(0,152,234,.3)}
.wlt-hist-linked-tag{
  font-size:9px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;font-family:'Inter',sans-serif;
  color:#f59e0b;background:rgba(245,158,11,.15);border:1px solid rgba(245,158,11,.3);
  border-radius:4px;padding:1px 5px;flex-shrink:0
}

/* Followers · Following — clickable stat line, swaps in the same
   tab-content area as Wallet/Activity/Created/Rewards (see switchWltTab) */
.wlt-hist-social-stats{display:flex;align-items:center;gap:14px;margin-top:4px}
.wlt-hist-social-stat{font-size:12.5px;color:var(--t3);cursor:pointer;transition-property:color;transition-duration:.15s}
.wlt-hist-social-stat:hover{color:var(--t1)}
.wlt-hist-social-stat strong{color:var(--t1);font-weight:800;font-variant-numeric:tabular-nums;margin-right:3px}

.wlt-hist-tonscan{
  display:flex;align-items:center;gap:4px;
  padding:6px 11px;
  border:1.5px solid rgba(0,152,234,.2);border-radius:9px;
  background:rgba(0,152,234,.06);
  font-size:12px;font-weight:600;color:var(--blue);
  text-decoration:none;flex-shrink:0;transition-property:background,border-color,transform;transition-duration:.15s}
.wlt-hist-tonscan:hover{background:rgba(0,152,234,.14);border-color:var(--blue)}

/* Profile stats row */
.wlt-prof-stats{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid rgba(0,152,234,.1);flex-shrink:0}
.wlt-prof-stat{padding:12px 14px;display:flex;flex-direction:column;gap:2px;border-right:1px solid rgba(0,152,234,.08)}
.wlt-prof-stat:last-child{border-right:none}
.wlt-prof-stat-lbl{font-size:9.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--t3)}
.wlt-prof-stat-val{font-size:15px;font-weight:800;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wlt-prof-stat-sub{font-size:10px;color:var(--t3)}

/* Profile tab bar */
.wlt-prof-tabs{display:flex;border-bottom:1.5px solid rgba(0,152,234,.1);overflow-x:auto;position:sticky;top:0;z-index:10;background:var(--bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.wlt-prof-tabs::-webkit-scrollbar{display:none}
.wlt-prof-tab{flex:1;text-align:center;padding:10px 4px;font-size:12px;font-weight:700;color:var(--t3);border:none;border-bottom:2.5px solid transparent;background:none;cursor:pointer;white-space:nowrap;transition-property:background,color,box-shadow,transform;transition-duration:.15s;font-family:'Inter',sans-serif}
.wlt-prof-tab:hover{color:var(--t2)}
.wlt-prof-tab.active{color:var(--blue);border-bottom-color:var(--blue)}

/* Tab content areas */
.wlt-prof-tab-content{display:none}
.wlt-prof-tab-content.active{display:flex;flex-direction:column}
.wlt-prof-tab-content::-webkit-scrollbar{width:4px}
.wlt-prof-tab-content::-webkit-scrollbar-thumb{background:rgba(0,152,234,.2);border-radius:4px}

.wlt-hist-feed{
  padding:12px 20px 24px;
  display:flex;flex-direction:column;gap:6px
}

/* Holdings table */
.wlt-hold-header{display:grid;grid-template-columns:1fr 90px 88px;gap:8px;padding:8px 20px 6px;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--t3);border-bottom:1px solid rgba(0,152,234,.07);text-align:right}
.wlt-hold-header span:first-child{text-align:left}
.wlt-hold-row{display:grid;grid-template-columns:1fr 90px 88px;gap:8px;align-items:center;padding:11px 20px;border-bottom:1px solid rgba(0,152,234,.05);cursor:pointer;transition:background .12s}
.wlt-hold-row:hover{background:rgba(0,152,234,.04)}
.wlt-hold-coin{display:flex;align-items:center;gap:10px;min-width:0;overflow:hidden}
.wlt-hold-ico-ton{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#0098EA,#0065a8);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:900;color:#fff;flex-shrink:0;letter-spacing:-.3px}
.wlt-hold-coin-info{min-width:0;flex:1}
.wlt-hold-name{font-size:13px;font-weight:600;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wlt-hold-ticker{font-size:11px;color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wlt-hold-mc{font-size:13px;color:var(--t2);font-weight:600;text-align:right}
.wlt-hold-val{font-size:14px;font-weight:800;color:var(--t1);text-align:right}
.wlt-hold-val-sub{font-size:11px;color:var(--t3);text-align:right;margin-top:1px}

/* Creator Rewards box in tracker profile */
.wlt-rew-box{text-align:center;padding:36px 24px;margin:20px;background:rgba(234,246,255,.94);border:1.5px solid rgba(0,152,234,.12);border-radius:16px}
.wlt-rew-icon{margin-bottom:10px}
.wlt-rew-title{font-size:17px;font-weight:800;color:var(--t1);margin-bottom:4px}
.wlt-rew-sub{font-size:12px;color:var(--t3);margin-bottom:18px;line-height:1.5}
.wlt-rew-val{font-size:30px;font-weight:900;color:var(--blue);margin-bottom:4px;letter-spacing:-.5px}
.wlt-rew-lbl{font-size:12px;color:var(--t3)}

/* Created coins list */
.wlt-created-list{padding:12px 20px;display:flex;flex-direction:column;gap:8px}
.wlt-created-item{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:12px;background:rgba(255,255,255,.85);border:1.5px solid rgba(0,152,234,.09);cursor:pointer;transition:border-color .15s}
.wlt-created-item:hover{border-color:rgba(0,152,234,.22)}
.wlt-created-ico{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.wlt-created-info{flex:1;min-width:0}
.wlt-created-name{font-size:13px;font-weight:600;color:var(--t1)}
.wlt-created-meta{font-size:11px;color:var(--t3)}
.wlt-created-mc{font-size:13px;font-weight:700;color:var(--t1);flex-shrink:0}
.wlt-prof-empty{text-align:center;color:var(--t3);font-size:13px;padding:36px 20px}

/* Followers/Following tab — empty state (no social-graph backend yet) */
.wlt-follow-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:56px 24px;text-align:center}
.wlt-follow-empty-ico{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(10,37,64,.05);color:var(--t3)}
.wlt-follow-empty-title{font-size:15px;font-weight:800;color:var(--t1)}
.wlt-follow-empty-sub{font-size:12.5px;color:var(--t3);max-width:260px;line-height:1.5}
[data-theme="dark"] .wlt-follow-empty-ico{background:rgba(255,255,255,.05)}

/* Ready for real data: avatar + name + count + action, one row per person */
.wlt-follow-row{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:14px;cursor:pointer;transition-property:background;transition-duration:.15s}
.wlt-follow-row:hover{background:rgba(0,152,234,.05)}
.wlt-follow-row-av{width:44px;height:44px;border-radius:50%;flex-shrink:0;overflow:hidden;background:rgba(0,152,234,.08);display:flex;align-items:center;justify-content:center;font-size:18px;outline:1px solid rgba(0,0,0,.06);outline-offset:-1px}
.wlt-follow-row-av img{width:100%;height:100%;object-fit:cover}
.wlt-follow-row-id{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:0;flex:1}
.wlt-follow-row-name{font-size:15.5px;font-weight:800;color:var(--t1);letter-spacing:-.2px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Copyable blue address pill — same language as the balance/vault address chips */
.wlt-follow-addr{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:20px;border:1.5px solid rgba(0,152,234,.2);background:rgba(0,152,234,.06);color:var(--blue);font-family:monospace;font-size:12px;font-weight:600;cursor:pointer;flex-shrink:0;transition-property:background,border-color;transition-duration:.15s}
.wlt-follow-addr:hover{background:rgba(0,152,234,.12);border-color:rgba(0,152,234,.32)}
.wlt-follow-addr svg{opacity:.75;flex-shrink:0}
.wlt-follow-addr.is-copied{color:var(--grn);background:rgba(0,200,131,.08);border-color:rgba(0,200,131,.4)}
.wlt-follow-count{flex-shrink:0;font-size:13px;color:var(--t3);font-weight:600;white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}
.wlt-follow-count strong{color:var(--t1);font-weight:800}
/* Prettier Follow button — gradient fill, tactile; Following = calm outline */
.wlt-follow-row-btn{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border-radius:11px;border:none;background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;font-size:13px;font-weight:800;font-family:'Inter',sans-serif;cursor:pointer;white-space:nowrap;box-shadow:0 4px 14px rgba(0,152,234,.3);transition-property:box-shadow,transform;transition-duration:.15s}
.wlt-follow-row-btn:hover{box-shadow:0 6px 20px rgba(0,152,234,.45);transform:translateY(-1px)}
.wlt-follow-row-btn:active{transform:scale(.96)}
.wlt-follow-row-btn.is-following{background:rgba(0,152,234,.08);color:var(--blue);border:1.5px solid rgba(0,152,234,.22);box-shadow:none;cursor:default}
.wlt-follow-row-btn.is-following:hover{transform:none;box-shadow:none}
[data-theme="dark"] .wlt-follow-row:hover{background:rgba(255,255,255,.04)}
[data-theme="dark"] .wlt-follow-row-av{background:rgba(255,255,255,.06);outline-color:rgba(255,255,255,.1)}
[data-theme="dark"] .wlt-follow-addr{background:rgba(0,152,234,.12);border-color:rgba(0,152,234,.25);color:#4DB8FF}
[data-theme="dark"] .wlt-follow-row-btn.is-following{background:rgba(0,152,234,.14);color:#4DB8FF;border-color:rgba(0,152,234,.28)}
@media(max-width:600px){
  .wlt-follow-row{gap:11px;padding:12px 12px}
  .wlt-follow-row-av{width:40px;height:40px}
  .wlt-follow-count{display:none}          /* secondary — drop it, keep avatar · id · button */
  .wlt-follow-addr{font-size:11px;padding:4px 9px}
  .wlt-follow-row-name{font-size:14.5px}
  .wlt-follow-row-btn{padding:8px 14px;font-size:12.5px}
}
.wlt-hist-loading{text-align:center;color:var(--t3);font-size:13px;padding:32px 0}

/* ── Wallet Stats Tab ── */
.wlt-stats-wrap{display:flex;flex-direction:column;gap:12px;padding:16px 18px 28px}
.wlt-stats-hero{display:flex;align-items:center;background:rgba(0,152,234,.05);border:1.5px solid rgba(0,152,234,.1);border-radius:14px;padding:18px 16px}
.wlt-stats-hero-item{flex:1;text-align:center}
.wlt-stats-divider{width:1px;height:48px;background:rgba(0,152,234,.15);flex-shrink:0}
.wlt-stats-hero-lbl{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--t3);margin-bottom:5px}
.wlt-stats-hero-val{font-size:20px;font-weight:900;letter-spacing:-.4px;margin-bottom:2px}
.wlt-stats-hero-sub{font-size:11px;color:var(--t3)}
.wlt-pos{color:var(--grn)}
.wlt-neg{color:var(--red)}
.wlt-blu{color:var(--blue)}
.wlt-stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.wlt-stats-tile{background:rgba(0,152,234,.05);border:1.5px solid rgba(0,152,234,.09);border-radius:12px;padding:12px 14px}
.wlt-stats-tile-val{font-size:15px;font-weight:800;color:var(--t1);margin-bottom:3px}
.wlt-stats-tile-lbl{font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--t3)}
.wlt-stats-dist-card{background:rgba(0,152,234,.04);border:1.5px solid rgba(0,152,234,.09);border-radius:12px;padding:14px 16px}
.wlt-stats-dist-title{font-size:12px;font-weight:700;color:var(--t2);margin-bottom:10px;display:flex;align-items:center;justify-content:space-between}
.wlt-stats-dist-total{font-size:11px;font-weight:500;color:var(--t3)}
.wlt-stats-dist-bar{display:flex;height:6px;border-radius:3px;overflow:hidden;gap:2px;margin-bottom:12px}
.wlt-stats-dist-bar > div{border-radius:2px}
.wlt-stats-dist-rows{display:flex;flex-direction:column;gap:7px}
.wlt-stats-dist-row{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--t2)}
.wlt-stats-dist-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.wlt-stats-dist-cnt{margin-left:auto;font-weight:700;color:var(--t1)}

.wlt-hist-event{
  display:flex;align-items:center;gap:12px;
  padding:11px 14px;
  border-radius:11px;
  background:rgba(255,255,255,.85);
  border:1.5px solid rgba(0,152,234,.09);
  cursor:pointer;transition:background .15s,border-color .15s
}
.wlt-hist-event:hover{background:#fff;border-color:rgba(0,152,234,.2)}

.wlt-hist-ev-icon{
  width:32px;height:32px;border-radius:9px;
  display:flex;align-items:center;justify-content:center;
  font-size:15px;font-weight:700;flex-shrink:0
}
.wlt-hist-ev-icon.buy  {background:rgba(0,200,83,.12);color:var(--grn)}
.wlt-hist-ev-icon.sell {background:rgba(245,54,92,.10);color:var(--red)}
.wlt-hist-ev-icon.launch{background:rgba(0,152,234,.12);color:var(--blue)}
.wlt-hist-ev-icon.grad     {background:rgba(255,179,0,.13);color:var(--gold)}
.wlt-hist-ev-icon.transfer{background:rgba(0,152,234,.08);color:var(--blue2)}

.wlt-hist-ev-body{flex:1;min-width:0}
.wlt-hist-ev-detail{
  font-size:13px;font-weight:500;color:var(--t1);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.wlt-hist-ev-ticker{font-weight:700;color:var(--blue)}
.wlt-hist-ev-ticker-link{cursor:pointer;text-decoration:underline;text-decoration-color:rgba(0,152,234,.35);text-underline-offset:2px;transition:color .12s}
.wlt-hist-ev-ticker-link:hover{color:var(--blue2)}
.wlt-hist-ev-sub{font-size:11.5px;color:var(--t2);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wlt-hist-ev-sub strong{color:var(--t1);font-weight:600}
.wlt-hist-ev-mc{font-size:11.5px;color:var(--t3);font-weight:700}
.wlt-hist-ev-time{font-size:11px;color:var(--t3);margin-top:3px}
/* Coin chip (icon+ticker+live MC+24h%) reused from Telegram Tracker's
   .tgt-coin-chip — same component, just a touch smaller for this denser row. */
.wlt-ev-chip-wrap{margin-top:5px}
.wlt-ev-chip{padding:3px 8px 3px 6px}
.wlt-ev-chip .tgt-coin-img,.wlt-ev-chip .tgt-coin-emoji{width:15px;height:15px}
.wlt-ev-chip .tgt-coin-ticker{font-size:11px}
.wlt-ev-chip .tgt-coin-mc,.wlt-ev-chip .tgt-coin-chg{font-size:10px}

.wlt-ev-grad{
  display:inline-flex;align-items:center;gap:4px;
  font-size:10px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;
  color:var(--gold);background:rgba(255,179,0,.12);
  border:1.5px solid rgba(255,179,0,.3);border-radius:6px;padding:2px 7px;flex-shrink:0
}
/* Same amber "Custodial" language as .wm-custodial-badge (Wallet Manager) —
   only shown on rows that came from the vault half of a linked pair, so a
   tracked person's two wallets read as one entry with the source called
   out, not two silently-merged identities. */
.wlt-ev-via-vault{
  display:inline-flex;align-items:center;
  font-size:9.5px;font-weight:700;letter-spacing:.2px;
  color:#f59e0b;background:rgba(245,158,11,.15);
  border:1px solid rgba(245,158,11,.3);border-radius:5px;padding:2px 6px;flex-shrink:0
}

/* ── Wallet row — clickable area ── */
.wlt-wallet-click-area{
  display:flex;align-items:center;gap:10px;
  flex:1;min-width:0;cursor:pointer;
  border-radius:8px;padding:2px 4px;
  transition:background .12s
}
.wlt-wallet-click-area:hover{background:rgba(0,152,234,.07)}

/* ── Address validation indicator ── */
.aw-addr-status{
  width:8px;height:8px;border-radius:50%;flex-shrink:0;
  background:transparent;transition:background .15s
}
.aw-addr-status.valid  {background:var(--grn)}
.aw-addr-status.invalid{background:var(--red)}

.wlt-hero{
  background:linear-gradient(120deg,rgba(0,152,234,.12) 0%,rgba(77,184,255,.07) 100%);
  border:1.5px solid rgba(0,152,234,.15);border-radius:var(--r);
  padding:28px 32px;margin-bottom:16px;backdrop-filter:blur(12px);
  box-shadow:0 4px 20px rgba(10,37,64,.05);
  display:flex;flex-direction:column;align-items:flex-start;gap:8px
}
.wlt-hero-icon .te{width:40px;height:40px;filter:drop-shadow(0 0 12px rgba(0,152,234,.5))}
.wlt-hero-title{font-size:26px;font-weight:900;color:var(--t1);letter-spacing:-.4px}
.wlt-hero-sub{font-size:14px;color:var(--t2)}

/* panel header (profile tab) */
.wlt-panel-header{padding:16px 0 12px;border-bottom:1px solid rgba(0,152,234,.1);margin-bottom:14px}
.wlt-panel-title{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:800;color:var(--t1);margin-bottom:4px}
.wlt-panel-sub{font-size:12px;color:var(--t3)}

.wlt-body{display:flex;flex-direction:column}

/* search + add row */
.wlt-search-row{display:flex;gap:8px;margin-bottom:16px}
.wlt-search-wrap{flex:1;min-width:0;position:relative;display:flex;align-items:center}
.wlt-search-ico{
  position:absolute;left:12px;pointer-events:none;
  width:16px;height:16px;object-fit:contain;opacity:.5;display:block
}
.wlt-search-input{
  width:100%;
  background:rgba(255,255,255,.92);border:1.5px solid rgba(0,152,234,.18);
  border-radius:10px;padding:10px 14px 10px 36px;
  font-family:'Inter',sans-serif;font-size:13px;color:var(--t1);
  outline:none;transition:border-color .15s,box-shadow .15s
}
.wlt-search-input::placeholder{color:var(--t3)}
.wlt-search-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,152,234,.12)}
.wlt-add-btn{
  padding:10px 18px;border-radius:10px;flex-shrink:0;
  background:linear-gradient(90deg,var(--blue),var(--blue2));
  border:none;font-family:'Inter',sans-serif;font-size:13px;font-weight:700;
  color:#fff;cursor:pointer;white-space:nowrap;
  box-shadow:0 3px 12px rgba(0,152,234,.3);transition-property:box-shadow,transform;transition-duration:.15s}
.wlt-add-btn:hover{box-shadow:0 5px 18px rgba(0,152,234,.45);transform:translateY(-1px)}

/* ── Add Wallet Modal (compact) ── */
#addWalletModal .modal{max-width:440px;padding:0;overflow:hidden;display:flex;flex-direction:column;max-height:min(640px,88vh)}
/* Add-wallet is a focused sub-dialog that can be opened from ON TOP of the
   manage-wallets modal, so it needs to sit above the shared z-index:400. */
#addWalletModal{z-index:410}
.aw-inner{flex:1 1 auto;overflow-y:auto;min-height:0}
.aw-head{
  display:flex;align-items:center;gap:10px;
  padding:16px 18px 14px;border-bottom:1px solid rgba(0,152,234,.1)
}
.aw-head-icon{
  width:34px;height:34px;border-radius:9px;flex-shrink:0;
  background:rgba(0,152,234,.1);border:1.5px solid rgba(0,152,234,.18);
  display:flex;align-items:center;justify-content:center
}
.aw-head-title{font-size:15px;font-weight:800;color:var(--t1)}
.aw-body{padding:14px 18px 4px;display:flex;flex-direction:column;gap:12px}
.aw-name-row{display:flex;gap:8px;align-items:stretch}
.aw-name-row .ep-input{flex:1;min-width:0}
/* Read-only — mirrors the target's real platform avatar (avatarFor()), never
   manually picked. See _awLookupProfile() in wallet-tracker.js. */
.aw-av-preview{
  width:42px;height:42px;border-radius:10px;border:1.5px solid rgba(0,152,234,.18);
  background:rgba(255,255,255,.9);flex-shrink:0;overflow:hidden;
  display:flex;align-items:center;justify-content:center
}
.aw-av-preview img{width:100%;height:100%;object-fit:cover;display:block}
.aw-footer{
  display:flex;width:100%;gap:10px;justify-content:flex-end;flex-shrink:0;box-sizing:border-box;
  padding:18px 24px max(24px,env(safe-area-inset-bottom)) 32px;
  border-top:1px solid rgba(0,152,234,.08)
}
.btn-ep-cancel{
  margin-left:auto;
  padding:11px 24px;border-radius:10px;
  background:rgba(10,37,64,.05);border:1.5px solid rgba(10,37,64,.1);
  font-family:'Inter',sans-serif;font-size:14px;font-weight:700;
  color:var(--t2);cursor:pointer;transition-property:background,border-color,color;transition-duration:.15s}
.btn-ep-cancel:hover{background:rgba(0,152,234,.08);border-color:rgba(0,152,234,.25);color:var(--t1)}

/* ── Our Story auth modal (base / light defaults) ── */
.story-auth-modal{
  max-width:360px;
  width:calc(100% - 32px);
  padding:28px 28px 24px;
}
.story-auth-head{
  display:flex;align-items:center;gap:10px;margin-bottom:16px;
}
.story-auth-ico{width:22px;height:22px;flex-shrink:0}
.story-auth-title{font-size:15px;font-weight:700;color:var(--t1);letter-spacing:-.01em}
.story-auth-lead{font-size:13px;color:var(--t2);margin:0 0 14px;line-height:1.45}
.story-auth-inp{
  width:100%;
  margin:0 0 10px;
  color-scheme:light;
  -webkit-text-fill-color:var(--t1);
  transition-property:border-color,box-shadow,background,color;
}
.story-auth-inp:-webkit-autofill,
.story-auth-inp:-webkit-autofill:hover,
.story-auth-inp:-webkit-autofill:focus{
  -webkit-text-fill-color:var(--t1);
  caret-color:var(--t1);
  box-shadow:0 0 0 1000px rgba(255,255,255,.95) inset;
  border:1.5px solid rgba(0,152,234,.14);
  transition:background-color 99999s ease-out 0s;
}
.story-auth-err{
  font-size:12px;color:var(--red);min-height:16px;margin-bottom:10px;line-height:1.35;
}
.story-auth-actions{
  display:flex;gap:8px;justify-content:flex-end;align-items:center;
}
.story-auth-actions .btn-ep-cancel{margin-left:0;flex:0 0 auto}
.story-auth-open{
  width:auto;height:38px;font-size:13px;border-radius:10px;padding:0 20px;
  flex:0 0 auto;
}

.btn-aw-add{
  padding:11px 28px;border-radius:10px;
  background:linear-gradient(90deg,var(--blue),var(--blue2));
  border:none;font-family:'Inter',sans-serif;font-size:14px;font-weight:700;
  color:#fff;cursor:pointer;
  box-shadow:0 4px 16px rgba(0,152,234,.35);transition-property:box-shadow,transform;transition-duration:.18s}
.btn-aw-add:hover{box-shadow:0 5px 18px rgba(0,152,234,.5);transform:translateY(-1px)}

/* ── Wallet Tracker — Notification Settings ── */
.wlt-notif-card{
  background:rgba(244,250,255,.98);border:1.5px solid rgba(0,152,234,.13);
  border-radius:14px;overflow:hidden;backdrop-filter:blur(14px);margin-bottom:4px;
  box-shadow:0 2px 10px rgba(10,37,64,.04)
}
.wlt-notif-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:15px 18px;gap:14px
}
.wlt-notif-sub-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:15px 18px;gap:14px;
  background:rgba(0,152,234,.03);border-top:1px solid rgba(0,152,234,.08)
}
.wlt-notif-sep{height:1px;background:rgba(0,152,234,.09);margin:0 18px}
.wlt-notif-info{display:flex;align-items:center;gap:14px}
.wlt-notif-ico{font-size:20px;line-height:1;flex-shrink:0}
.wlt-notif-ico-sm{font-size:16px}
.wlt-notif-ico-img{width:26px;height:26px;object-fit:contain;flex-shrink:0;display:block}
.wlt-notif-ico-img-sm{width:26px;height:26px}
.wlt-notif-name{font-size:13px;font-weight:700;color:var(--t1)}
.wlt-notif-name-sm{font-size:13px;font-weight:700}
.wlt-notif-sub{font-size:11px;color:var(--t3);margin-top:2px}

/* Toggle switch */
.wlt-toggle{display:inline-flex;align-items:center;cursor:pointer;user-select:none}
.wlt-toggle input{display:none}
.wlt-toggle-track{
  width:44px;height:24px;border-radius:12px;flex-shrink:0;
  background:rgba(10,37,64,.12);border:1.5px solid rgba(10,37,64,.1);
  position:relative;transition-property:background,border-color;transition-duration:.22s cubic-bezier(.4,0,.2,1)}
.wlt-toggle-track::after{
  content:'';position:absolute;top:2px;left:2px;
  width:18px;height:18px;border-radius:50%;
  background:#fff;box-shadow:0 1px 4px rgba(10,37,64,.2);
  transition:transform .22s cubic-bezier(.4,0,.2,1)
}
.wlt-toggle input:checked + .wlt-toggle-track{background:var(--blue2);border-color:var(--blue2)}
.wlt-toggle input:checked + .wlt-toggle-track::after{transform:translateX(20px)}
.wlt-toggle-sm .wlt-toggle-track{width:36px;height:20px;border-radius:10px}
.wlt-toggle-sm .wlt-toggle-track::after{width:14px;height:14px}
.wlt-toggle-sm input:checked + .wlt-toggle-track::after{transform:translateX(16px)}

/* section label */
.wlt-section-lbl{
  font-size:10.5px;font-weight:800;color:var(--t3);
  text-transform:uppercase;letter-spacing:1px;margin-bottom:10px;padding:0 2px
}
.wlt-section-lbl-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;flex-wrap:wrap;gap:8px}
.wlt-section-lbl-row .wlt-section-lbl{margin-bottom:0}

/* Coordinated-buy banner — 2+ tracked wallets buying the same coin.
   Site's signature blue instead of amber — premium/on-brand, not a warning. */
.wlt-cluster-banner{
  margin-bottom:14px;padding:12px 14px;border-radius:12px;
  background:linear-gradient(135deg,rgba(0,152,234,.12),rgba(0,152,234,.03));
  border:1.5px solid rgba(0,152,234,.28)
}
.wlt-cluster-title{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:800;color:var(--blue);margin-bottom:8px}
.wlt-cluster-title img{width:16px;height:16px;flex-shrink:0}
.wlt-cluster-list{display:flex;flex-wrap:wrap;gap:6px}
.wlt-cluster-chip{
  align-items:center;gap:8px;padding:8px 12px 8px 8px;height:auto;
  background:rgba(255,255,255,.88);border-color:rgba(0,152,234,.32);
  transition-property:transform,border-color,background,box-shadow;transition-duration:.15s
}
.wlt-cluster-chip:hover{
  transform:translateY(-1px);
  border-color:rgba(0,152,234,.5);
  box-shadow:0 6px 16px rgba(0,152,234,.12);
  z-index:5
}
.wlt-cluster-chip:active{transform:scale(.96)}
.wlt-cluster-count{
  font-size:10px;font-weight:800;color:var(--blue);
  font-variant-numeric:tabular-nums;padding-left:2px;white-space:nowrap
}
.wlt-coord-chip-meta{display:flex;flex-direction:row;align-items:center;gap:8px;min-width:0}
.wlt-coord-avs{display:flex;align-items:center;flex-shrink:0}
.wlt-coord-av{
  width:18px;height:18px;border-radius:50%;overflow:hidden;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,0,.06);outline:1.5px solid #fff;margin-left:-5px
}
.wlt-coord-av:first-child{margin-left:0}
.wlt-coord-av img,.wlt-coord-av canvas{width:100%;height:100%;object-fit:cover;display:block}
.wlt-coord-av-more{
  margin-left:4px;font-size:9px;font-weight:800;color:var(--t3);
  font-variant-numeric:tabular-nums;letter-spacing:-.02em
}
/* Same signal, inline on a matching activity row */
.wlt-cluster-tag{
  display:inline-flex;align-items:center;gap:3px;
  font-size:10px;font-weight:800;color:var(--blue);
  background:rgba(0,152,234,.12);border:1px solid rgba(0,152,234,.28);
  padding:1px 6px 1px 4px;border-radius:5px;margin-left:5px;vertical-align:middle;
  font-variant-numeric:tabular-nums;cursor:default
}
.wlt-cluster-tag img{width:11px;height:11px;flex-shrink:0}

/* Coordinated-buy CARD — headline signal above the feed. */
.wlt-coord{
  margin:0 0 16px;padding:14px 16px;border-radius:14px;
  background:linear-gradient(135deg,rgba(0,152,234,.14),rgba(0,152,234,.03));
  border:1.5px solid rgba(0,152,234,.30);
  box-shadow:0 4px 18px rgba(0,152,234,.10)
}
.wlt-coord-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.wlt-coord--signal .wlt-coord-head{flex-direction:column;align-items:flex-start;gap:8px}
.wlt-coord-kicker{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.wlt-coord-pulse{
  width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--blue2);
  box-shadow:0 0 0 0 rgba(0,152,234,.45);
  animation:wlt-coord-pulse 1.8s ease-out infinite
}
@keyframes wlt-coord-pulse{
  0%{box-shadow:0 0 0 0 rgba(0,152,234,.45)}
  70%{box-shadow:0 0 0 8px rgba(0,152,234,0)}
  100%{box-shadow:0 0 0 0 rgba(0,152,234,0)}
}
.wlt-coord-badge{
  display:inline-flex;align-items:center;gap:6px;flex-shrink:0;
  font-size:12px;font-weight:800;color:#fff;letter-spacing:.02em;
  background:linear-gradient(90deg,var(--blue),var(--blue2));
  padding:5px 11px 5px 9px;border-radius:8px;box-shadow:0 2px 8px rgba(0,152,234,.35);white-space:nowrap
}
.wlt-coord-badge img{width:15px;height:15px;flex-shrink:0}
.wlt-coord-sub{font-size:12.5px;font-weight:600;color:var(--t2);line-height:1.4;min-width:0;text-wrap:pretty}
.wlt-coord-list{display:flex;flex-wrap:wrap;gap:8px}
[data-theme="dark"] .wlt-coord{
  background:linear-gradient(135deg,rgba(0,152,234,.20),rgba(0,152,234,.05));
  border-color:rgba(0,152,234,.4)
}

/* Collapsed tracking list: the "view all N" button opens the manage modal */
.wlt-showall-btn{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin:2px 0 14px;padding:11px 16px;border-radius:12px;cursor:pointer;
  background:rgba(0,152,234,.05);border:1.5px dashed rgba(0,152,234,.28);
  font-family:inherit;transition-property:background,border-color;transition-duration:.14s
}
.wlt-showall-btn:hover{background:rgba(0,152,234,.1);border-color:rgba(0,152,234,.45)}
.wlt-showall-cap{font-size:12px;color:var(--t3);font-weight:600;text-align:left}
.wlt-showall-cta{font-size:13px;color:var(--blue);font-weight:800;white-space:nowrap}

/* Manage-wallets modal */
.mw-modal{max-width:440px;width:100%;display:flex;flex-direction:column;max-height:82vh;padding:0}
.mw-head{display:flex;align-items:center;gap:12px;padding:22px 24px 14px}
.mw-head-titles{min-width:0}
.mw-head-sub{font-size:12px;color:var(--t3);font-weight:600;margin-top:2px}
.mw-search-wrap{flex:none;margin:0 24px 12px}
.mw-list{flex:1 1 auto;overflow-y:auto;padding:2px 24px;display:flex;flex-direction:column;gap:7px;min-height:120px}
.mw-footer{display:flex;gap:10px;padding:16px 24px 22px;border-top:1px solid rgba(0,152,234,.1);margin-top:6px}
.mw-add{flex:1;justify-content:center;text-align:center}
.mw-done{flex:0 0 auto}
[data-theme="dark"] .mw-footer{border-top-color:rgba(255,255,255,.08)}

/* Hover popover — which tracked wallets are behind a coordinated-buy signal.
   Same dark-card language as .dv-ev-tip (chart/trade popups) so it reads as
   the same component family, just anchored + hover-triggered instead of a
   click-to-open centered modal. */
.wlt-cluster-chip,.wlt-cluster-tag{position:relative;overflow:visible}
.wlt-coord--signal,.wlt-coord-list{overflow:visible}
.wlt-cluster-tip{
  display:none;position:absolute;top:calc(100% + 6px);left:0;z-index:120;
  min-width:150px;max-width:220px;background:rgba(9,14,26,.97);
  border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:8px 10px;
  box-shadow:0 14px 40px rgba(0,0,0,.7);cursor:default;white-space:normal
}
/* Hover reveals it where there is a pointer; elsewhere a tap adds .is-tip-open
   (see initTapTips). The hover rule is gated so a :hover that sticks after a
   touch cannot hold a tip open with no way to dismiss it. */
@media (hover:hover){
  .wlt-cluster-chip:hover .wlt-cluster-tip,.wlt-cluster-tag:hover .wlt-cluster-tip{display:block}
}
.wlt-cluster-chip.is-tip-open .wlt-cluster-tip,
.wlt-cluster-tag.is-tip-open .wlt-cluster-tip,
.tgt-topcoin-chip.is-tip-open .mention-tip{display:block}
.wlt-cluster-tip-hd{font-size:9.5px;font-weight:800;color:#6a7e92;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}
.wlt-cluster-tip-row{display:flex;align-items:center;gap:7px;padding:4px 2px;cursor:pointer;border-radius:6px}
.wlt-cluster-tip-row:hover{background:rgba(255,255,255,.06)}
.wlt-cluster-tip-av{width:22px;height:22px;border-radius:50%;flex-shrink:0;overflow:hidden;display:flex;align-items:center;justify-content:center}
.wlt-cluster-tip-name{font-size:11.5px;font-weight:600;color:#ddeeff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
[data-theme="light"] .wlt-cluster-tip{background:rgba(255,255,255,.98);border-color:rgba(0,0,0,.1);box-shadow:0 10px 30px rgba(0,0,0,.14)}
[data-theme="light"] .wlt-cluster-tip-hd{color:#8090a0}
[data-theme="light"] .wlt-cluster-tip-row:hover{background:rgba(0,0,0,.04)}
[data-theme="light"] .wlt-cluster-tip-name{color:#1a2a3a}

/* ── "Most mentioned" hover tip (TG / X trackers) ───────────────────────────
   Reuses the coordinated-buy tip shell; a coin can be mentioned hundreds of
   times, so this lists only the five loudest voices, ranked by audience. */
.tgt-topcoin-chip{position:relative}
@media (hover:hover){ .tgt-topcoin-chip:hover .mention-tip{display:block} }
.mention-tip{min-width:196px;max-width:252px}
.mention-tip-row{cursor:default}
.mention-tip-row:hover{background:none}
.mention-tip .wlt-cluster-tip-name{flex:1;min-width:0}
.mention-tip-av{
  width:22px;height:22px;border-radius:50%;flex-shrink:0;overflow:hidden;
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.08);font-size:10px;font-weight:800;color:#9fb3c8
}
.mention-tip-av img{width:100%;height:100%;object-fit:cover}
.mention-tip-subs{
  margin-left:auto;flex-shrink:0;font-size:10.5px;font-weight:700;
  color:#7d8fa3;font-variant-numeric:tabular-nums
}
.mention-tip-more{
  margin-top:5px;padding-top:5px;border-top:1px solid rgba(255,255,255,.08);
  font-size:10px;font-weight:600;color:#6a7e92
}
[data-theme="light"] .mention-tip-av{background:rgba(0,0,0,.06);color:#6b7a8d}
[data-theme="light"] .mention-tip-subs{color:#8090a0}
[data-theme="light"] .mention-tip-more{border-top-color:rgba(0,0,0,.08);color:#8090a0}

/* Import / Export */
.wlt-io-row{display:flex;gap:10px;margin-top:12px}
.wlt-io-btn{
  flex:1;display:flex;align-items:center;justify-content:center;gap:7px;
  padding:13px 10px;border-radius:12px;height:46px;
  background:rgba(255,255,255,.88);border:1.5px solid rgba(0,152,234,.2);
  font-family:'Inter',sans-serif;font-size:13px;font-weight:700;color:var(--t2);
  cursor:pointer;transition-property:background,border-color,color,transform;transition-duration:.15s}
.wlt-io-btn:hover{border-color:var(--blue);color:var(--blue);background:rgba(0,152,234,.07)}
.wlt-io-btn-primary{
  background:linear-gradient(90deg,var(--blue),var(--blue2));
  border:none;color:#fff;
  box-shadow:0 4px 16px rgba(0,152,234,.35)
}
.wlt-io-btn-primary:hover{
  box-shadow:0 6px 24px rgba(0,152,234,.5);
  transform:translateY(-1px);color:#fff;background:linear-gradient(90deg,var(--blue),var(--blue2))
}
.wlt-io-btn-sec{
  background:rgba(0,152,234,.07);border:1.5px solid rgba(0,152,234,.2);color:var(--t2)
}
.wlt-io-btn-sec:hover{background:rgba(0,152,234,.12);border-color:var(--blue);color:var(--blue)}

/* tracked wallets list */
.wlt-wallets-list{display:flex;flex-direction:column;gap:7px;margin-bottom:4px}
.wlt-wallet-row{
  display:flex;align-items:center;gap:13px;
  background:rgba(244,250,255,.97);border:1.5px solid rgba(0,152,234,.12);
  border-radius:14px;padding:13px 16px;
  backdrop-filter:blur(14px);transition-property:border-color,box-shadow,transform;transition-duration:.15s;
  box-shadow:0 1px 6px rgba(10,37,64,.04)
}
.wlt-wallet-row:hover{border-color:rgba(0,152,234,.3);box-shadow:0 3px 14px rgba(0,152,234,.1)}
.wlt-wallet-av{
  width:40px;height:40px;border-radius:50%;flex-shrink:0;
  background:rgba(0,152,234,.1);border:2px solid rgba(0,152,234,.18);
  display:flex;align-items:center;justify-content:center;font-size:20px
}
.wlt-wallet-info{flex:1;min-width:0}
.wlt-wallet-name{font-size:14px;font-weight:700;color:var(--t1);margin-bottom:2px}
.wlt-wallet-addr{font-size:11.5px;color:var(--t3);font-family:monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wlt-remove-btn{
  width:30px;height:30px;border-radius:8px;flex-shrink:0;
  background:rgba(10,37,64,.05);border:1.5px solid rgba(10,37,64,.1);
  color:var(--t3);font-size:12px;cursor:pointer;display:flex;
  align-items:center;justify-content:center;transition-property:background,border-color,transform,opacity;transition-duration:.15s}
.wlt-remove-btn:hover{background:rgba(245,54,92,.1);border-color:rgba(245,54,92,.4);transform:scale(1.08)}
.wlt-remove-btn img{width:14px;height:14px;object-fit:contain;display:block;opacity:.55}
.wlt-remove-btn:hover img{opacity:1}

.wlt-empty{font-size:13px;color:var(--t3);padding:20px 0;text-align:center}

/* ════════════ Wallet Tracker — premium pass (Vella) ════════════ */
/* Empty states */
.wlt-empty-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;
  padding:36px 24px;border:1.5px dashed rgba(0,152,234,.22);border-radius:16px;
  background:linear-gradient(180deg,rgba(0,152,234,.05),transparent);animation:cardIn var(--dur-3) var(--ease-out) backwards}
.wlt-empty-card-sm{padding:30px 20px;border-style:solid;border-color:rgba(0,152,234,.1)}
.wlt-empty-ico{width:54px;height:54px;border-radius:16px;display:flex;align-items:center;justify-content:center;
  background:rgba(0,152,234,.1);box-shadow:0 4px 14px rgba(0,152,234,.15);margin-bottom:2px}
.wlt-empty-ico .te{width:30px;height:30px}
.wlt-empty-title{font-size:16px;font-weight:800;color:var(--t1);letter-spacing:-.2px}
.wlt-empty-sub{font-size:12.5px;color:var(--t3);line-height:1.55;max-width:300px}
.wlt-empty-cta{margin-top:8px;height:42px;padding:0 22px;border:none;border-radius:12px;
  background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;font-size:13.5px;font-weight:800;cursor:pointer;
  box-shadow:0 6px 18px rgba(0,152,234,.38);transition:transform var(--dur-2) var(--ease-spring),box-shadow var(--dur-2) var(--ease-out)}
.wlt-empty-cta:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(0,152,234,.55)}
.wlt-empty-cta:active{transform:translateY(0) scale(.97)}

/* Recent Activity feed — color rail by type + hover lift + icon glow */
.wlt-ev-feed-row{border-left:3px solid transparent;
  transition:background var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-spring),box-shadow var(--dur-2) var(--ease-out)}
.wlt-ev-feed-row:hover{transform:translateY(-1px);box-shadow:0 5px 16px rgba(10,37,64,.07)}
.wlt-ev-feed-row:has(.wlt-hist-ev-icon.buy){border-left-color:var(--grn)}
.wlt-ev-feed-row:has(.wlt-hist-ev-icon.sell){border-left-color:var(--red)}
.wlt-ev-feed-row:has(.wlt-hist-ev-icon.launch){border-left-color:var(--blue)}
.wlt-ev-feed-row:has(.wlt-hist-ev-icon.grad){border-left-color:var(--gold)}
.wlt-ev-feed-row:has(.wlt-hist-ev-icon.transfer){border-left-color:var(--blue2)}
.wlt-hist-ev-icon{transition:box-shadow .2s}
.wlt-ev-feed-row:hover .wlt-hist-ev-icon{box-shadow:0 0 12px -2px currentColor}

/* Wallet cards + remove button */
.wlt-wallet-row{transition:border-color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-spring)}
.wlt-wallet-row:hover{transform:translateY(-1px)}
.wlt-remove-btn{transition:background .15s,border-color .15s,transform var(--dur-2) var(--ease-spring)}
.wlt-remove-btn:active{transform:scale(.95)}

/* Detail panel — stat tiles + spring tabs */
.wlt-prof-stat{transition:background .15s}
.wlt-prof-stat:hover{background:rgba(0,152,234,.04)}
.wlt-prof-stat-val{font-variant-numeric:tabular-nums}
.wlt-prof-tab{transition:color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),transform var(--dur-1) var(--ease-spring)}
.wlt-prof-tab:active{transform:scale(.96)}

/* Buttons spring */
.wlt-add-btn{transition:box-shadow var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-spring)}
.wlt-add-btn:active{transform:scale(.97)}
.wlt-io-btn{transition-property:background,border-color,color,transform;transition-duration:var(--dur-2) var(--ease-out)}
.wlt-io-btn:active{transform:scale(.97)}

/* ════ Wallet detail panel — premium polish (Vella) ════ */
.wlt-hist-tonscan{transition:background .15s,border-color .15s,transform var(--dur-2) var(--ease-spring)}
.wlt-hist-tonscan:active{transform:scale(.96)}
/* stats: accent total + bigger tabular values */
.wlt-prof-stat-val{font-size:16px;letter-spacing:-.3px;font-variant-numeric:tabular-nums}
.wlt-prof-stat:first-child .wlt-prof-stat-val{color:var(--blue)}
/* activity rows: color rail by type + hover lift + icon glow */
.wlt-hist-event{border-left:3px solid transparent;
  transition:background var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-spring),box-shadow var(--dur-2) var(--ease-out)}
.wlt-hist-event:hover{transform:translateY(-1px);box-shadow:0 5px 16px rgba(10,37,64,.07)}
.wlt-hist-event:has(.wlt-hist-ev-icon.buy){border-left-color:var(--grn)}
.wlt-hist-event:has(.wlt-hist-ev-icon.sell){border-left-color:var(--red)}
.wlt-hist-event:has(.wlt-hist-ev-icon.launch){border-left-color:var(--blue)}
.wlt-hist-event:has(.wlt-hist-ev-icon.grad){border-left-color:var(--gold)}
.wlt-hist-event:has(.wlt-hist-ev-icon.transfer){border-left-color:var(--blue2)}
.wlt-hist-event:hover .wlt-hist-ev-icon{box-shadow:0 0 12px -2px currentColor}

/* ── Stats → premium tiles ── */
.wlt-prof-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:10px 12px 8px;border-bottom:none}
.wlt-prof-stat{border-right:none;border-radius:12px;padding:10px 12px;
  background:linear-gradient(180deg,rgba(0,152,234,.07),rgba(0,152,234,.025));border:1px solid rgba(0,152,234,.1);
  transition:transform var(--dur-2) var(--ease-spring),box-shadow var(--dur-2) var(--ease-out)}
.wlt-prof-stat:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(10,37,64,.06)}
.wlt-prof-stat-lbl{font-size:9px;letter-spacing:.55px}
.wlt-prof-stat-val{font-size:22px;font-weight:900;letter-spacing:-.5px}
.wlt-prof-stat:first-child .wlt-prof-stat-val{color:var(--blue)}
.wlt-prof-stat-sub{font-size:10px}

/* ── Tabs → segmented switcher ── */
.wlt-prof-tabs{gap:4px;padding:4px;margin:0 14px 12px;background:rgba(0,152,234,.06);border-radius:13px;border-bottom:none;box-shadow:inset 0 0 0 1.5px rgba(0,152,234,.1)}
.wlt-prof-tab{border:none;border-radius:10px;padding:9px 4px;font-size:12px;
  transition:color var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),transform var(--dur-1) var(--ease-spring)}
.wlt-prof-tab:hover:not(.active){background:rgba(0,152,234,.06);color:var(--t2)}
.wlt-prof-tab.active{background:#fff;color:var(--blue);border-bottom:none;box-shadow:0 2px 8px rgba(10,37,64,.1),0 0 0 1px rgba(0,152,234,.14)}
.wlt-prof-tab:active{transform:scale(.97)}

/* ── Balances section header (Wallet tab) ── */
.wlt-hold-sect-hdr{padding:0 12px 12px}
.wlt-hold-sect-title{font-size:15px;font-weight:800;color:var(--t1);display:flex;align-items:center;gap:8px}
.wlt-hold-sect-count{font-size:11px;font-weight:700;color:var(--t3);background:rgba(10,37,64,.06);padding:2px 8px;border-radius:99px}
.wlt-hold-sect-sub{font-size:12.5px;color:var(--t3);margin-top:3px}

/* ── Search + dust filter toolbar ── */
.wlt-hold-toolbar{display:flex;align-items:center;gap:10px;padding:0 12px 12px;flex-wrap:wrap}
.wlt-hold-search{flex:1;min-width:160px;height:38px;padding:0 14px;border-radius:10px;border:1.5px solid rgba(10,37,64,.1);background:rgba(10,37,64,.03);font-size:13px;color:var(--t1);font-family:'Inter',sans-serif;outline:none;transition-property:border-color,background;transition-duration:.15s}
.wlt-hold-search:focus{border-color:var(--blue);background:rgba(0,152,234,.05)}
.wlt-hold-search::placeholder{color:var(--t3)}
.wlt-hold-dust-toggle{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--t2);cursor:pointer;white-space:nowrap;user-select:none}
/* Dust filter as a dropdown (pump.fun-style) instead of a bare checkbox */
.wlt-hold-dust{position:relative;flex-shrink:0}
.wlt-hold-dust-btn{display:flex;align-items:center;gap:8px;height:38px;padding:0 12px;border-radius:10px;border:1.5px solid rgba(0,152,234,.18);background:rgba(0,152,234,.05);color:var(--t2);font-size:13px;font-weight:600;font-family:'Inter',sans-serif;cursor:pointer;white-space:nowrap;transition-property:background,border-color;transition-duration:.15s}
.wlt-hold-dust-btn:hover{background:rgba(0,152,234,.1);border-color:rgba(0,152,234,.3)}
.wlt-hold-dust-caret{color:var(--t3);flex-shrink:0}
.wlt-hold-dust-menu{display:none;position:absolute;top:calc(100% + 6px);right:0;min-width:196px;z-index:60;background:rgba(240,249,255,.99);border:1.5px solid rgba(0,152,234,.16);border-radius:12px;padding:5px;box-shadow:0 16px 44px rgba(10,37,64,.16);backdrop-filter:blur(16px)}
.wlt-hold-dust-menu.open{display:block;animation:wbdFade .16s ease}
.wlt-hold-dust-opt{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:9px 11px;border:none;border-radius:8px;background:none;color:var(--t2);font-size:13px;font-weight:600;font-family:'Inter',sans-serif;cursor:pointer;text-align:left;transition-property:background,color;transition-duration:.12s}
.wlt-hold-dust-opt:hover{background:rgba(0,152,234,.08);color:var(--t1)}
.wlt-hold-dust-check{opacity:0;color:var(--blue);flex-shrink:0}
.wlt-hold-dust-opt.is-active{color:var(--t1)}
.wlt-hold-dust-opt.is-active .wlt-hold-dust-check{opacity:1}
[data-theme="dark"] .wlt-hold-dust-btn{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.1)}
[data-theme="dark"] .wlt-hold-dust-menu{background:rgba(10,22,36,.99);border-color:rgba(255,255,255,.1)}
[data-theme="dark"] .wlt-hold-dust-opt:hover{background:rgba(255,255,255,.06)}
.wlt-hold-dust-toggle input{accent-color:var(--blue);cursor:pointer}

/* ── Holdings table → clear, bigger, TON image icon ── */
.wlt-hold-header{display:grid;grid-template-columns:minmax(0,1.6fr) 100px 90px 100px 110px;gap:0;padding:6px 14px 12px;font-size:13px;font-weight:800;letter-spacing:.01em;color:var(--t2);text-transform:uppercase;border:none}
.wlt-hold-header span:not(:first-child){text-align:right}
/* No per-row divider / no zebra — solid page background; hover lifts a row.
   border:none also clears the leak from the older 3-col .wlt-hold-row rule. */
.wlt-hold-row{position:relative;display:grid;grid-template-columns:minmax(0,1.6fr) 100px 90px 100px 110px;gap:0;align-items:center;padding:12px 14px;border:none;border-radius:12px;background:transparent;transition-property:background;transition-duration:.15s}
/* Left signal rail — mirrors Activity, but its meaning is per-table (Balances:
   position P/L; Created coins: 24h momentum). Neutral rows get no rail. */
.wlt-hold-row::before{content:'';position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:transparent}
.wlt-hold-row.wlt-rail-pos::before{background:var(--grn)}
.wlt-hold-row.wlt-rail-neg::before{background:var(--red)}
.wlt-hold-row:hover{background:rgba(0,152,234,.10)}
.wlt-hold-coin{display:flex;align-items:center;gap:12px;min-width:0}
.wlt-hold-coin > img{
  flex-shrink:0;width:40px;height:40px;min-width:40px;min-height:40px;
  aspect-ratio:1;object-fit:cover;display:block;border-radius:50%
}
.wlt-hold-ico-ton{width:40px;height:40px;border-radius:50%;overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:none;box-shadow:0 2px 8px rgba(0,152,234,.25)}
.wlt-hold-ico-ton img{width:100%;height:100%;object-fit:cover;display:block}
.wlt-hold-name{font-size:16px;font-weight:700;letter-spacing:-.1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wlt-hold-ticker{font-size:13px;color:var(--t3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wlt-hold-mc{font-size:15.5px;font-weight:700;color:var(--t1);text-align:right;font-variant-numeric:tabular-nums}
.wlt-hold-mc-chg{font-size:12.5px;font-weight:700;text-align:right;margin-top:2px;font-variant-numeric:tabular-nums}
.wlt-hold-val{font-size:16.5px;font-weight:800;letter-spacing:-.2px;text-align:right;font-variant-numeric:tabular-nums}
.wlt-hold-val-sub{font-size:12.5px;color:var(--t3);text-align:right;margin-top:2px;font-variant-numeric:tabular-nums}
.wlt-hold-dim{font-size:14.5px;color:var(--t2);text-align:right;font-variant-numeric:tabular-nums}
/* Invested carries the same weight as Value/MC — a primary figure, not a muted one */
.wlt-hold-invested{font-size:15.5px;font-weight:700;color:var(--t1);text-align:right;font-variant-numeric:tabular-nums}
.wlt-hold-pnl{font-size:15px;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}
.wlt-hold-row>div:nth-child(2),.wlt-hold-row>div:nth-child(3){text-align:right}
/* GRAM is the base asset — no market cap, nothing "invested", no PnL. Rather
   than three dashes, one caption spanning those columns says why. */
.wlt-hold-native{grid-column:3 / -1;display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}
.wlt-hold-native-badge{flex-shrink:0;font-size:10.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--blue);background:rgba(0,152,234,.1);border:1px solid rgba(0,152,234,.22);border-radius:7px;padding:4px 9px}
.wlt-hold-native-sub{font-size:12.5px;color:var(--t3);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wlt-hold-native-rate{font-size:13px;color:var(--t2);font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}
[data-theme="dark"] .wlt-hold-native-badge{background:rgba(0,152,234,.16);border-color:rgba(0,152,234,.3);color:#4DB8FF}

/* PnL column: big total, realized/unrealized split beneath */
.wlt-hold-pnl{text-align:right;line-height:1.2}
.wlt-hold-pnl-total{font-size:15.5px;font-weight:800;letter-spacing:-.2px;font-variant-numeric:tabular-nums}
.wlt-hold-pnl-split{font-size:11.5px;color:var(--t3);font-weight:600;margin-top:3px;white-space:nowrap;font-variant-numeric:tabular-nums}
.wlt-hold-pnl-split b{font-weight:800}
.wlt-hold-pnl-dot{margin:0 5px;opacity:.55}

/* ── Pagination ── */
.wlt-hold-pager{display:flex;align-items:center;justify-content:center;gap:14px;padding:16px 12px 4px}
.wlt-hold-pager-btn{padding:7px 14px;border-radius:9px;border:1.5px solid rgba(10,37,64,.1);background:rgba(10,37,64,.03);color:var(--t2);font-size:12.5px;font-weight:600;cursor:pointer;font-family:'Inter',sans-serif;transition-property:background,border-color,opacity;transition-duration:.15s}
.wlt-hold-pager-btn:hover:not(:disabled){background:rgba(0,152,234,.08);border-color:rgba(0,152,234,.25)}
.wlt-hold-pager-btn:disabled{opacity:.4;cursor:default}
.wlt-hold-pager-cur{font-size:12.5px;font-weight:800;color:var(--t1);min-width:20px;text-align:center;font-variant-numeric:tabular-nums}

[data-theme="dark"] .wlt-hold-search,[data-theme="dark"] .wlt-hold-pager-btn{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.09)}
[data-theme="dark"] .wlt-hold-sect-count{background:rgba(255,255,255,.07)}
[data-theme="dark"] .wlt-hold-row:hover{background:rgba(255,255,255,.06)}

/* ── Holdings: desktop — a touch more breathing room ── */
@media (min-width:601px) {
  #wltHoldingsContent{max-width:840px;margin:0 auto}
  /* Comfortable, competitor-style spacing: each column carries a primary value
     with a lighter secondary under it, so give them room rather than cramming.
     PnL is widest (total + realized/unrealized split) and sits at the right. */
  .wlt-hold-header{grid-template-columns:minmax(0,1.5fr) 120px 112px 120px minmax(206px,1fr);gap:18px;padding:6px 24px 12px}
  .wlt-hold-row{grid-template-columns:minmax(0,1.5fr) 120px 112px 120px minmax(206px,1fr);gap:18px;padding:16px 24px}
  .wlt-cr-header,.wlt-cr-row{grid-template-columns:minmax(0,1.5fr) 120px 130px 110px minmax(0,1fr)}
  .wlt-hold-native{grid-column:3 / -1}
}
@media (max-width:600px) {
  .wlt-hold-header span:nth-child(3),.wlt-hold-header span:nth-child(4),
  .wlt-hold-row .wlt-hold-mc,.wlt-hold-row .wlt-hold-invested{display:none}
  .wlt-hold-header{grid-template-columns:minmax(0,1fr) 96px 104px}
  .wlt-hold-row{grid-template-columns:minmax(0,1fr) 96px 104px}
  /* Only the badge survives here — the sub-line can't fit a narrow column */
  .wlt-hold-native-sub,.wlt-hold-native-rate{display:none}
  .wlt-hold-native{grid-column:2 / -1}
  /* Total only — the Unr/Real split needs width it doesn't have here */
  .wlt-hold-pnl-split{display:none}
}

/* ── Created Coins → premium rows ── */
.wlt-created-list{padding:12px 18px;gap:9px}
.wlt-created-item{padding:13px 16px;gap:12px;
  transition:border-color var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-spring)}
.wlt-created-item:hover{transform:translateY(-1px);box-shadow:0 5px 16px rgba(10,37,64,.07)}
.wlt-created-name{font-size:15px;font-weight:800;letter-spacing:-.1px}
.wlt-created-meta{font-size:11.5px;color:var(--blue);font-weight:700}
.wlt-created-mc{font-size:16px;font-weight:900;letter-spacing:-.3px;color:var(--t1);text-align:right;font-variant-numeric:tabular-nums;line-height:1.1}
.wlt-created-mc::after{content:'MARKET CAP';display:block;font-size:8px;font-weight:700;letter-spacing:.5px;color:var(--t3);margin-top:3px}

/* events feed */
.wlt-events-feed{display:flex;flex-direction:column;gap:6px}

/* Recent Activity feed row — matches Activity-tab style + wallet avatar */
.wlt-ev-feed-row{
  display:flex;align-items:center;gap:10px;
  padding:11px 16px;
  border-radius:11px;
  background:rgba(255,255,255,.85);
  border:1.5px solid rgba(0,152,234,.09);
  cursor:pointer;
  transition:background .15s,border-color .15s;
  animation:cardIn .3s ease backwards
}
.wlt-ev-feed-row:hover{background:#fff;border-color:rgba(0,152,234,.2)}
/* Nickname was var(--t3) — the dimmest tier in the palette, same as
   timestamps — so it vanished into the row once more than one wallet was
   tracked. It's the primary "who did this" signal, so it gets full-contrast
   text and the heaviest weight on the row, ahead of the action verb. */
.wlt-ev-feed-who{font-size:13px;font-weight:800;color:var(--t1);letter-spacing:-.1px}

.wlt-event{
  display:flex;gap:12px;
  background:rgba(234,246,255,.94);border:1.5px solid rgba(0,152,234,.1);
  border-radius:var(--r);padding:12px 14px;backdrop-filter:blur(12px);
  transition:border-color .15s,box-shadow .15s;
  animation:cardIn .3s ease backwards
}
.wlt-event:hover{border-color:rgba(0,152,234,.26);box-shadow:0 3px 14px rgba(10,37,64,.06)}
.wlt-ev-av{
  width:40px;height:40px;border-radius:50%;flex-shrink:0;
  background:rgba(0,152,234,.1);border:2px solid rgba(0,152,234,.16);
  display:flex;align-items:center;justify-content:center;font-size:18px;
  overflow:hidden
}
.wlt-ev-body{flex:1;min-width:0}
.wlt-ev-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:4px}
.wlt-ev-name{font-size:13px;font-weight:800;color:var(--t1)}
.wlt-ev-action{
  font-size:10px;font-weight:800;padding:2px 7px;border-radius:5px;
  text-transform:uppercase;letter-spacing:.4px;flex-shrink:0
}
.wlt-ev-buy{background:rgba(0,200,83,.12);color:var(--grn);border:1px solid rgba(0,200,83,.22)}
.wlt-ev-sell{background:rgba(245,54,92,.1);color:var(--red);border:1px solid rgba(245,54,92,.2)}
.wlt-ev-launch{background:rgba(0,152,234,.1);color:var(--blue);border:1px solid rgba(0,152,234,.22)}
.wlt-ev-transfer{background:rgba(0,152,234,.08);color:var(--blue2);border:1px solid rgba(77,184,255,.3)}
.wlt-ev-unknown{background:rgba(107,114,128,.09);color:#6b7280;border:1px solid rgba(107,114,128,.2)}
.wlt-ev-coin-pill{
  display:inline-flex;align-items:center;gap:4px;
  background:rgba(0,152,234,.07);border:1px solid rgba(0,152,234,.15);
  border-radius:20px;padding:2px 8px 2px 3px;
  transition:background .15s,border-color .15s
}
.wlt-ev-coin-pill:hover{background:rgba(0,152,234,.14);border-color:rgba(0,152,234,.3)}
.wlt-ev-coin-ico{
  width:18px;height:18px;border-radius:4px;display:inline-flex;
  align-items:center;justify-content:center;font-size:10px;flex-shrink:0
}
.wlt-ev-ticker{font-size:12px;font-weight:700;color:var(--blue)}
.wlt-ev-amounts{display:flex;align-items:center;gap:8px;margin-bottom:3px;flex-wrap:wrap}
.wlt-ev-amt-ton{font-size:12px;font-weight:700;color:var(--red)}
.wlt-ev-amt-tok{font-size:12px;font-weight:700;color:var(--grn)}
.wlt-ev-sold .wlt-ev-amt-ton{color:var(--t2)}
.wlt-ev-amt-mc{font-size:12px;font-weight:700;color:var(--t3);margin-left:auto}
.wlt-ev-time{font-size:11px;color:var(--t3)}

/* ═══════════════ WATCHLIST VIEW ═══════════════ */
.watchlist-view{display:none;padding:22px 24px 40px;flex:1;min-width:0}
.watchlist-view.active{display:block}

/* ── Holdings page ───────────────────────────────────────────────────────── */
.holdings-view{display:none;padding:22px 24px 40px;flex:1;min-width:0}
.holdings-view.active{display:block}

.hv-page,.wl-page{display:flex;flex-direction:column;gap:0;max-width:none;width:100%}
.hv-page-head,.wl-page-head{margin:0 0 16px}
.hv-page-title,.wl-page-title{
  font-size:22px;font-weight:900;letter-spacing:-.4px;color:var(--t1);line-height:1.15
}
.hv-page-sub,.wl-page-sub{font-size:13px;color:var(--t3);margin-top:4px;line-height:1.4}

.hv-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:56px 24px;text-align:center;
  background:var(--bg2);border:1px solid var(--b1);border-radius:18px}
.hv-empty-ico{font-size:48px;display:flex;justify-content:center}
.hv-empty-title{font-size:16px;font-weight:700;color:var(--t1)}
.hv-empty-sub{font-size:13px;color:var(--t3);max-width:260px;line-height:1.6}

/* portfolio weight badge — top-left corner of c-img (not 24h price change) */
.hld-pct-badge{
  position:absolute;top:8px;left:8px;
  display:flex;align-items:baseline;gap:4px;
  background:rgba(0,0,0,.55);color:#fff;
  font-size:11px;font-weight:800;
  padding:4px 8px;border-radius:8px;
  backdrop-filter:blur(6px);pointer-events:none;z-index:2;
  font-variant-numeric:tabular-nums;letter-spacing:.02em
}
.hld-pct-n{font-weight:800}
.hld-pct-l{font-size:9px;font-weight:700;opacity:.72;letter-spacing:.04em;text-transform:lowercase}
/* holdings data section below c-row2 */
.hld-lbl{font-size:10px;font-weight:800;color:var(--t3);text-transform:uppercase;letter-spacing:.08em;flex-shrink:0;margin-bottom:5px}
.hld-holding{border-top:1px solid var(--b1);margin-top:10px;padding-top:10px}
.hld-hold-row{display:flex;align-items:baseline;gap:8px}
.hld-ton{font-size:17px;font-weight:800;color:var(--t1);line-height:1.2;letter-spacing:-.3px}
.hld-tok{font-size:11px;color:var(--t3);margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Per-holding P&L — right-aligned next to the position value */
.hld-pnl{margin-left:auto;font-size:15px;font-weight:800;font-variant-numeric:tabular-nums}
.hld-pnl.up{color:var(--grn)} .hld-pnl.dn{color:var(--red)}

/* ── Holdings: portfolio summary hero ── */
.hv-summary{
  display:flex;flex-wrap:wrap;align-items:center;gap:18px 28px;
  margin:0 0 14px;padding:20px 22px;border-radius:18px;
  background:var(--bg2);border:1px solid var(--b1);
  box-shadow:var(--el-1)
}
.hv-sum-main{min-width:0}
.hv-sum-lbl{font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--t3)}
.hv-sum-val{font-size:32px;font-weight:900;letter-spacing:-.6px;color:var(--t1);line-height:1.05;margin-top:4px;font-variant-numeric:tabular-nums}
.hv-sum-chg{font-size:13px;font-weight:800;margin-top:5px}
.hv-sum-chg.up{color:var(--grn)} .hv-sum-chg.dn{color:var(--red)}
.hv-sum-stats{display:flex;gap:8px;margin-left:auto;flex-wrap:wrap}
.hv-sum-stat{
  display:flex;flex-direction:column;gap:3px;min-width:108px;
  padding:10px 14px;border-radius:12px;
  background:rgba(10,37,64,.04);border:1px solid rgba(10,37,64,.08)
}
.hv-sum-v{font-size:16px;font-weight:900;color:var(--t1);line-height:1.1;font-variant-numeric:tabular-nums}
.hv-sum-v.up{color:var(--grn)} .hv-sum-v.dn{color:var(--red)}
.hv-sum-tick{color:var(--t1)}
.hv-sum-sl{font-size:10.5px;font-weight:600;color:var(--t3)}
[data-theme="dark"] .hv-summary{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08)}
[data-theme="dark"] .hv-sum-stat{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08)}

/* ── Holdings: sort bar ── */
.hv-sortbar{display:flex;align-items:center;gap:10px;margin:0 0 16px}
.hv-scopebar{display:flex;align-items:center;gap:10px;margin:0 0 14px}
.hv-src-badge{display:inline-flex;align-items:center;font-size:9px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:2px 6px;border-radius:5px;margin-left:6px;vertical-align:middle;line-height:1.2}
.hv-src-main{background:rgba(0,152,234,.12);color:var(--blue)}
.hv-src-vault{background:rgba(255,179,0,.14);color:#c98a00}
.hv-src-both{background:rgba(0,200,100,.12);color:var(--grn)}
[data-theme="dark"] .hv-src-vault{color:#FFD24D;background:rgba(255,179,0,.18)}
/* Light: match Market/Limit segmented control (blue active pill) */

/* Legacy limit MC/status row — removed from markup */
.hv-sort-lbl{font-size:12px;font-weight:700;color:var(--t3)}
.hv-seg{display:inline-flex;gap:2px;padding:3px;border-radius:10px;background:rgba(10,37,64,.05);border:1.5px solid rgba(10,37,64,.1)}
.hv-seg-btn{border:none;background:none;cursor:pointer;font-family:inherit;font-size:12px;font-weight:700;color:var(--t3);padding:6px 14px;border-radius:7px;transition-property:background,color,box-shadow;transition-duration:.13s}
.hv-seg-btn:hover:not(.active){color:var(--t1)}
.hv-seg-btn.active{background:var(--t1);color:#fff;box-shadow:0 1px 4px rgba(10,37,64,.2)}
[data-theme="dark"] .hv-seg{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12)}

/* ── On desktop (sidebar visible): redundant controls hidden ── */
@media(min-width:701px){
  #pvSectHoldings{display:none}
  #pvWatchlistsContainer{display:none}
  .pv-wl-new-btn{display:none}
  .btn-pnl{display:none}
}

.wl-empty{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:72px 24px;gap:14px;text-align:center;
  background:var(--bg2);border:1px solid var(--b1);
  border-radius:18px
}
.wl-empty-ico{font-size:56px;display:flex;justify-content:center}
.wl-empty-title{font-size:16px;font-weight:700;color:var(--t1)}
.wl-empty-sub{font-size:13px;color:var(--t3);max-width:280px;line-height:1.6}
.wl-grid,
.hv-grid,
.port-tiles{
  --home-grid-gap:16px;
  display:grid;
  gap:var(--home-grid-gap);
  grid-template-columns:repeat(5,minmax(0,1fr));
  justify-content:stretch;
  width:100%;
  max-width:none;
  margin-inline:0;
}
@media (max-width:1199px){
  .wl-grid,.hv-grid,.port-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:999px){
  .wl-grid,.hv-grid,.port-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:799px){
  .wl-grid,.hv-grid,.port-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:519px){
  .wl-grid,.hv-grid,.port-tiles{grid-template-columns:minmax(0,1fr)}
}
.port-sheet{
  padding:16px;
  border-radius:24px;
  background:rgba(10,37,64,.03);
  box-shadow:0 0 0 1px rgba(10,37,64,.06);
}
.port-tiles .home-card .c-heart{
  width:40px;height:40px;
}
.port-tiles .hld-pnl{
  margin-left:auto;
  font-size:14px;font-weight:800;
  font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;
  white-space:nowrap;
}
.port-tiles .hld-pnl.up{color:var(--grn)}
.port-tiles .hld-pnl.dn{color:var(--red)}
.port-tiles .hld-pnl.nil{color:var(--t3);font-weight:600}
.port-tiles .hld-src,
.port-tiles .hld-port{
  font-size:11px;font-weight:600;color:var(--t3);
  font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;
}
.port-tiles .hld-src{
  letter-spacing:.04em;
  min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.port-tiles .hld-port{flex-shrink:0}

/* ── heart button on cards ── */
.c-heart{
  position:absolute;top:8px;right:8px;
  width:30px;height:30px;border-radius:50%;
  background:rgba(255,255,255,.72);border:1.5px solid rgba(255,255,255,.6);
  backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition-property:background,border-color,transform;transition-duration:.18s;z-index:2;flex-shrink:0
}
.c-heart::after{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px}
.c-heart:hover{background:rgba(255,255,255,.92);border-color:rgba(10,37,64,.35);transform:scale(1.12)}
.c-heart img{width:16px;height:16px;display:block;opacity:.55}

/* Watchlist summary strip — mirrors holdings hero language */
.wl-summary{
  display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px;
  margin:0 0 16px;padding:18px 20px;border-radius:18px;
  background:var(--bg2);border:1px solid var(--b1);box-shadow:var(--el-1)
}
.wl-sum-main{min-width:0;margin-right:auto}
.wl-sum-lbl{font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--t3)}
.wl-sum-val{font-size:26px;font-weight:900;color:var(--t1);letter-spacing:-.4px;line-height:1.1;margin-top:3px;font-variant-numeric:tabular-nums}
.wl-sum-val-unit{font-size:14px;font-weight:700;color:var(--t3);letter-spacing:0}
.wl-sum-stats{display:flex;gap:8px;flex-wrap:wrap}
.wl-sum-item{
  display:flex;flex-direction:column;gap:3px;min-width:100px;
  padding:10px 14px;border-radius:12px;
  background:rgba(10,37,64,.04);border:1px solid rgba(10,37,64,.08)
}
.wl-sum-v{font-size:16px;font-weight:900;color:var(--t1);line-height:1.1;font-variant-numeric:tabular-nums}
.wl-sum-v.up{color:var(--grn)} .wl-sum-v.dn{color:var(--red)}
.wl-sum-tick{color:var(--t1)}
.wl-sum-l{font-size:10.5px;font-weight:600;color:var(--t3)}
[data-theme="dark"] .wl-summary{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08)}
[data-theme="dark"] .wl-sum-item{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08)}
.c-heart.c-heart-on{background:rgba(10,37,64,.1);border-color:rgba(10,37,64,.28)}
.c-heart.c-heart-on:hover{background:rgba(10,37,64,.16);border-color:rgba(10,37,64,.4)}
.c-heart.c-heart-on img{opacity:1;filter:none}

/* ── Holdings sidebar ── */
.sb-holdings{margin-bottom:2px}
.sb-hld-trigger{
  display:flex;align-items:center;justify-content:center;
  width:40px;height:40px;min-width:40px;min-height:40px;
  padding:0;margin:3px auto;border-radius:12px;
  cursor:pointer;user-select:none;color:var(--t2);
  font-size:14px;font-weight:600;position:relative;
  transition-property:background,color,box-shadow,transform;transition-duration:.15s;
  border-left:none
}
.sb-hld-trigger:hover{background:rgba(0,152,234,.08);color:var(--t1)}
.sb-hld-trigger:active{transform:scale(.96)}
.sb-hld-trigger.active{color:var(--blue);background:rgba(0,152,234,.14);box-shadow:inset 0 0 0 1px rgba(0,152,234,.16)}
.sb-hld-trigger.active::before{
  content:'';
  position:absolute;left:-6px;top:50%;transform:translateY(-50%);
  width:3px;height:16px;border-radius:99px;
  background:var(--blue);
  box-shadow:0 0 8px rgba(0,152,234,.45);
}
.sb-hld-lbl,.sb-hld-arr,.sb-hld-manage,.sb-hld-fulltable{display:none}
.sb-hld-ico{width:22px;height:22px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--blue2)}
.sb-hld-ico svg{width:22px;height:22px}
.sb-hld-lbl{flex:1}
.sb-hld-arr{font-size:10px;color:var(--t3);transition:transform .22s cubic-bezier(.4,0,.2,1);flex-shrink:0}
.sb-hld-arr.open{transform:rotate(180deg)}
.sb-hld-body{overflow:hidden;animation:slideDown .2s ease}
@keyframes slideDown{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.sb-hld-manage{
  display:flex;align-items:center;gap:9px;
  padding:8px 16px 9px 20px;cursor:pointer;font-size:12px;
  font-weight:500;color:var(--t3);transition:background .12s,color .12s;
  border-top:1px solid rgba(0,152,234,.08);margin-top:2px
}
.sb-hld-manage:hover{background:rgba(0,152,234,.06);color:var(--t2)}
.sb-hld-fulltable{
  border-top:none;margin-top:0;margin-bottom:4px;
  color:var(--blue);font-weight:600;opacity:.8
}
.sb-hld-fulltable:hover{background:rgba(0,152,234,.09);opacity:1}
/* sidebar list sections — watchlists as top-level nav items */
.sb-list-section{margin-bottom:1px}
.sb-ls-header{
  display:flex;align-items:center;justify-content:center;
  width:40px;height:40px;min-width:40px;min-height:40px;
  padding:0;margin:3px auto;border-radius:12px;
  cursor:pointer;font-size:14px;
  font-weight:500;color:var(--t2);position:relative;
  transition-property:background,color,box-shadow,transform;transition-duration:.15s;
  border-left:none;user-select:none
}
.sb-ls-header:hover{background:rgba(0,152,234,.08);color:var(--t1)}
.sb-ls-header:active{transform:scale(.96)}
.sb-ls-header.wl-active{color:var(--blue);background:rgba(0,152,234,.14);font-weight:600;box-shadow:inset 0 0 0 1px rgba(0,152,234,.16)}
.sb-ls-header.wl-active::before{
  content:'';
  position:absolute;left:-6px;top:50%;transform:translateY(-50%);
  width:3px;height:16px;border-radius:99px;
  background:var(--blue);
  box-shadow:0 0 8px rgba(0,152,234,.45);
}
.sb-ls-name,.sb-ls-count,.sb-ls-arr,.sb-ls-coins,.sb-ls-seemore{display:none}
.sb-ls-ico{width:22px;height:22px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:20px}
.sb-ls-ico svg{width:22px;height:22px}
.sb-ls-ico img{width:22px;height:22px;object-fit:cover;border-radius:5px;display:block}
.sb-ls-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb-ls-count{
  font-size:10px;font-weight:800;color:var(--blue);
  background:rgba(0,152,234,.12);padding:1px 7px;border-radius:10px;flex-shrink:0;min-width:20px;text-align:center
}
.sb-ls-arr{font-size:11px;color:var(--t3);transition:transform .22s cubic-bezier(.4,0,.2,1);flex-shrink:0}
.sb-ls-arr.open{transform:rotate(180deg)}
.sb-ls-coins{padding:0 0 0;max-height:0;overflow:hidden;
  transition:max-height var(--dur-3) var(--ease-out),padding var(--dur-3) var(--ease-out)}
.sb-list-section.open>.sb-ls-coins{max-height:700px;padding:2px 0 6px}
.sb-list-section.open .sb-ls-arr{transform:rotate(180deg)}
.sb-ls-empty{
  padding:6px 16px 6px 52px;font-size:11px;color:var(--t3);line-height:1.5
}
.sb-ls-coin{
  display:flex;align-items:center;gap:10px;
  padding:7px 12px;cursor:pointer;
  transition:background .12s;border-radius:9px;margin:1px 8px
}
.sb-ls-coin:hover{background:rgba(0,152,234,.06)}
.sb-ls-c-ico{
  width:30px;height:30px;border-radius:9px;flex-shrink:0;overflow:hidden;
  display:flex;align-items:center;justify-content:center;font-size:15px;
  box-shadow:0 1px 4px rgba(10,37,64,.12)
}
.sb-ls-c-ico img{width:100%;height:100%;object-fit:cover;border-radius:9px!important}
.sb-ls-c-info{flex:1;min-width:0}
.sb-ls-c-name{font-size:12px;font-weight:700;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb-ls-c-mc{font-size:10.5px;color:var(--t3);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.sb-ls-c-chg{font-size:11px;font-weight:800;flex-shrink:0;min-width:42px;text-align:right;font-variant-numeric:tabular-nums}
.sb-ls-c-chg.up{color:var(--grn)}
.sb-ls-c-chg.dn{color:var(--red)}
.sb-ls-seemore{
  padding:4px 16px 8px 52px;font-size:11px;
  color:var(--blue);font-weight:600;cursor:pointer;transition:color .12s;opacity:.8
}
.sb-ls-seemore:hover{color:var(--blue2);opacity:1}

/* ── Manage Lists Modal ── */
#manageListsModal .modal{
  max-width:540px;padding:0;
  display:flex;flex-direction:column;
  max-height:84vh;overflow:hidden
}
  display:flex;align-items:flex-start;gap:12px;
  padding:20px 20px 12px;flex-shrink:0
}
  display:flex;align-items:center;gap:6px;
  height:32px;padding:0 12px;border-radius:8px;flex-shrink:0;
  background:rgba(0,152,234,.09);border:1.5px solid rgba(0,152,234,.2);
  font-family:'Inter',sans-serif;font-size:12px;font-weight:700;color:var(--blue);
  cursor:pointer;transition-property:background,border-color,color;transition-duration:.15s;white-space:nowrap
}
  width:32px;height:32px;border-radius:8px;flex-shrink:0;
  background:rgba(0,0,0,.05);border:1.5px solid rgba(0,0,0,.08);
  font-size:18px;color:var(--t2);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition-property:background,border-color,color;transition-duration:.13s;font-family:'Inter',sans-serif;line-height:1
}
  padding:0 20px 14px;flex-shrink:0;
  border-bottom:1.5px solid rgba(0,152,234,.1)
}
  flex:1;height:44px;background:rgba(0,152,234,.06);
  border:1.5px solid rgba(0,152,234,.15);border-radius:10px;
  padding:0 14px;font-size:13px;color:var(--t1);
  font-family:'Inter',sans-serif;outline:none;transition-property:border-color,box-shadow;transition-duration:.15s
}
  height:44px;padding:0 16px;border-radius:10px;flex-shrink:0;
  background:linear-gradient(135deg,var(--grn),#00E676);border:none;
  font-family:'Inter',sans-serif;font-size:13px;font-weight:700;color:#fff;
  cursor:pointer;box-shadow:0 4px 14px rgba(0,200,83,.3);
  transition-property:box-shadow,transform;transition-duration:.16s;white-space:nowrap
}

/* List body scroll */
  overflow-y:auto;flex:1;padding:14px 16px 20px;
  display:flex;flex-direction:column;gap:8px
}

/* Each section */
  border:1.5px solid rgba(0,152,234,.12);border-radius:12px;
  overflow:hidden;background:rgba(255,255,255,.72);
  transition:border-color .15s,box-shadow .15s
}
  border-color:rgba(0,152,234,.2);
  background:rgba(234,246,255,.7)
}
  display:flex;align-items:center;gap:8px;
  padding:11px 14px;cursor:pointer;user-select:none;
  transition:background .12s
}
  flex:1;font-size:14px;font-weight:700;color:var(--t1);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0
}
  flex:1;height:28px;min-width:0;
  background:rgba(0,152,234,.08);border:1.5px solid var(--blue);
  border-radius:6px;padding:0 8px;font-family:'Inter',sans-serif;
  font-size:13px;font-weight:700;color:var(--t1);outline:none
}
  font-size:11px;font-weight:800;color:var(--blue);
  background:rgba(0,152,234,.12);padding:2px 8px;
  border-radius:10px;flex-shrink:0;min-width:24px;text-align:center
}
  width:26px;height:26px;border-radius:6px;flex-shrink:0;
  background:rgba(0,152,234,.07);border:1.5px solid rgba(0,152,234,.15);
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  transition-property:background,border-color;transition-duration:.13s
}
  width:26px;height:26px;border-radius:6px;flex-shrink:0;
  background:rgba(245,54,92,.07);border:1.5px solid rgba(245,54,92,.18);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition-property:background,border-color;transition-duration:.13s
}
  font-size:11px;color:var(--t3);flex-shrink:0;
  transition:transform .22s cubic-bezier(.4,0,.2,1)
}

/* Coins inside section */
  display:flex;align-items:center;gap:10px;
  padding:9px 14px;transition:background .12s;
  border-bottom:1px solid rgba(0,152,234,.06)
}
  width:36px;height:36px;border-radius:9px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:18px
}
  width:22px;height:22px;border-radius:5px;flex-shrink:0;
  background:transparent;border:1.5px solid rgba(245,54,92,.2);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition-property:background,border-color;transition-duration:.13s
}

/* ═══════════════ ALL LISTS PAGE ═══════════════ */


#allListsContent{
  padding:0 28px;
  display:flex;flex-direction:column;gap:16px;
  max-width:820px
}

  border:1.5px solid rgba(0,152,234,.12);border-radius:16px;
  overflow:hidden;background:rgba(255,255,255,.92);
  box-shadow:0 2px 16px rgba(10,37,64,.05);
  transition-property:border-color,background,box-shadow;transition-duration:.15s
}
  border-color:rgba(0,152,234,.22);
  background:rgba(237,248,255,.92)
}
  display:flex;align-items:center;gap:12px;
  padding:16px 20px;
  border-bottom:1.5px solid rgba(0,152,234,.08)
}
  font-size:11px;font-weight:800;color:var(--blue);
  background:rgba(0,152,234,.12);padding:2px 9px;
  border-radius:10px;flex-shrink:0
}
  font-size:10px;font-weight:700;color:var(--t3);
  background:rgba(0,0,0,.05);padding:2px 8px;
  border-radius:8px;flex-shrink:0;letter-spacing:.4px;text-transform:uppercase
}

  display:flex;align-items:center;gap:14px;
  padding:13px 20px;border-bottom:1px solid rgba(0,152,234,.07);
  cursor:pointer;transition:background .12s
}
  width:42px;height:42px;border-radius:10px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:22px
}
  width:30px;height:30px;border-radius:8px;flex-shrink:0;
  background:rgba(10,37,64,.05);border:1.5px solid rgba(10,37,64,.09);
  color:var(--t3);cursor:pointer;font-size:15px;line-height:1;
  display:flex;align-items:center;justify-content:center;
  transition-property:background,border-color,color;transition-duration:.13s;font-family:'Inter',sans-serif
}
  padding:20px 18px;font-size:12px;color:var(--t3);
  text-align:center;line-height:1.6
}

/* ═══════════════ FULL TABLE MODAL ═══════════════ */
#fullTableModal .modal{
  max-width:660px;padding:0;
  display:flex;flex-direction:column;
  max-height:88vh;overflow:hidden
}
  overflow-y:auto;flex:1;padding:14px 16px 20px;
  display:flex;flex-direction:column;gap:10px
}
  border:1.5px solid rgba(0,152,234,.12);border-radius:12px;
  overflow:hidden;background:rgba(255,255,255,.82)
}
  border-color:rgba(0,152,234,.22);
  background:rgba(234,246,255,.82)
}
  display:flex;align-items:center;gap:9px;
  padding:11px 15px;
  background:rgba(0,152,234,.03);
  border-bottom:1.5px solid rgba(0,152,234,.08)
}
  font-size:11px;font-weight:800;color:var(--blue);
  background:rgba(0,152,234,.12);padding:2px 8px;border-radius:10px;flex-shrink:0
}
  font-size:10px;font-weight:700;color:var(--t3);
  background:rgba(0,0,0,.05);padding:2px 8px;border-radius:8px;flex-shrink:0;
  text-transform:uppercase;letter-spacing:.4px
}
  display:flex;align-items:center;gap:11px;
  padding:10px 15px;border-bottom:1px solid rgba(0,152,234,.06);
  cursor:pointer;transition:background .12s
}
  width:38px;height:38px;border-radius:9px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:20px
}
  width:28px;height:28px;border-radius:7px;flex-shrink:0;
  background:rgba(10,37,64,.05);border:1.5px solid rgba(10,37,64,.09);
  color:var(--t3);cursor:pointer;font-size:14px;line-height:1;
  display:flex;align-items:center;justify-content:center;
  transition-property:background,border-color,color;transition-duration:.13s;font-family:'Inter',sans-serif
}

/* ═══════════════ PROFILE — COINS SECTIONS ═══════════════ */
.pv-coins-section{margin-bottom:24px}
.pv-coins-section:last-child{margin-bottom:0}
.pv-csect-hdr{
  display:flex;align-items:center;gap:8px;
  padding:0 0 10px;margin-bottom:2px;
  border-bottom:1.5px solid rgba(0,152,234,.1);
  cursor:pointer;user-select:none
}
.pv-csect-hdr:hover .pv-csect-chevron{color:var(--blue)}
.pv-csect-ico{font-size:16px;line-height:1}
.pv-csect-title{flex:1;font-size:15px;font-weight:800;color:var(--t1)}
.pv-csect-chevron{font-size:13px;color:var(--t3);margin-left:auto;transition:color .15s}
.pv-csect-count{
  font-size:11px;font-weight:800;color:var(--blue);
  background:rgba(0,152,234,.1);padding:2px 8px;border-radius:10px
}
.pv-empty-ico{font-size:32px;margin-bottom:8px}
.pv-empty-txt{font-size:13px;color:var(--t3);margin-bottom:14px}
.pv-create-btn{width:auto;padding:0 28px;font-size:13px;height:42px}
.pv-hold-row{
  display:flex;align-items:center;gap:12px;min-height:48px;
  padding:11px 4px;border-bottom:1px solid rgba(0,152,234,.07);
  cursor:pointer;transition:background .12s;border-radius:8px;
}
.pv-hold-row:last-child{border-bottom:none}
.pv-hold-row:hover{background:rgba(0,152,234,.05);padding-left:8px;padding-right:8px}

/* ── Profile > Coins — watchlist management ── */
.pv-wl-body{padding-top:6px}
.pv-wl-empty{padding:14px 4px;font-size:13px;color:var(--t3);text-align:center}
.pv-wl-actions{display:flex;align-items:center;gap:4px;margin-left:auto}
.pv-wl-action-btn{
  display:flex;align-items:center;justify-content:center;
  width:26px;height:26px;border:none;background:transparent;
  border-radius:6px;cursor:pointer;color:var(--t3);transition:background .12s,color .12s;flex-shrink:0
}
.pv-wl-action-btn svg{width:13px;height:13px}
.pv-wl-action-btn:hover{background:rgba(0,152,234,.1);color:var(--blue)}
.pv-wl-action-btn.pv-wl-del:hover{background:rgba(240,54,73,.1);color:var(--red)}
.pv-wl-rm-btn{
  display:flex;align-items:center;justify-content:center;
  width:26px;height:26px;border:none;background:transparent;
  border-radius:6px;cursor:pointer;color:var(--t3);opacity:0;transition:opacity .12s,background .12s,color .12s;flex-shrink:0;margin-left:auto
}
.pv-wl-rm-btn svg{width:12px;height:12px}
.pv-hold-row:hover .pv-wl-rm-btn{opacity:1}
.pv-wl-rm-btn:hover{background:rgba(240,54,73,.1);color:var(--red);opacity:1}
.pv-wl-rename-inp{
  flex:1;min-width:0;font-size:15px;font-weight:800;color:var(--t1);
  background:rgba(0,152,234,.07);border:1.5px solid rgba(0,152,234,.2);
  border-radius:7px;padding:3px 8px;outline:none;font-family:inherit
}
.pv-wl-new-btn{
  display:flex;align-items:center;gap:8px;width:100%;
  margin-top:6px;padding:10px 14px;
  background:rgba(0,152,234,.06);border:1.5px dashed rgba(0,152,234,.2);
  border-radius:var(--r);font-size:13px;font-weight:700;color:var(--blue);
  cursor:pointer;transition:background .15s,border-color .15s
}
.pv-wl-new-btn svg{width:14px;height:14px;flex-shrink:0}
.pv-wl-new-btn:hover{background:rgba(0,152,234,.11);border-color:rgba(0,152,234,.35)}

/* Custom confirm dialog (replaces native confirm(), blocked in Telegram WebView) */
.ui-confirm-modal{max-width:340px;text-align:center;padding:24px 22px}
.ui-confirm-msg{font-size:15px;font-weight:600;color:var(--t1);line-height:1.4;margin-bottom:20px}
.ui-confirm-actions{display:flex;gap:10px}
.ui-confirm-actions button{flex:1;padding:11px 14px;border-radius:var(--r);font-size:14px;font-weight:700;cursor:pointer;border:1.5px solid transparent;transition:background .15s,border-color .15s}
.ui-confirm-cancel{background:transparent;border-color:var(--bd);color:var(--t2)}
.ui-confirm-cancel:hover{background:rgba(0,0,0,.04);color:var(--t1)}
.ui-confirm-ok{background:var(--red);color:#fff}
.ui-confirm-ok:hover{filter:brightness(.94)}
.pv-wl-action-btn.pv-wl-save{color:#16c784}
.pv-wl-action-btn.pv-wl-save:hover{background:rgba(22,199,132,.12);color:#16c784}
.pv-hold-ico{
  width:42px;height:42px;border-radius:10px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:22px
}
.pv-hold-info{flex:1;min-width:0}
.pv-hold-name{font-size:14px;font-weight:700;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pv-hold-tick{font-size:11px;color:var(--t3);margin-top:2px}
.pv-hold-right{text-align:right;flex-shrink:0}
.pv-hold-val{font-size:14px;font-weight:700;color:var(--t1)}
.pv-hold-chg{font-size:12px;font-weight:700;margin-top:2px}

/* ── Trade settings ── */
.ts-slip-input-wrap{background:rgba(0,152,234,.09);border-color:rgba(0,152,234,.2)}
.ts-slip-input-wrap:focus-within{box-shadow:0 0 0 3px rgba(0,152,234,.13)}
.ts-slider{height:6px}
.ts-slider::-webkit-slider-thumb{width:20px;height:20px;
  box-shadow:0 2px 8px rgba(0,152,234,.4),0 0 0 4px rgba(0,152,234,.08);
  transition:transform var(--dur-2) var(--ease-spring),box-shadow var(--dur-2) var(--ease-out)}
.ts-slider::-webkit-slider-thumb:hover{transform:scale(1.18);box-shadow:0 3px 14px rgba(0,152,234,.55),0 0 0 7px rgba(0,152,234,.13)}
.ts-slider::-webkit-slider-thumb:active{transform:scale(1.06)}

/* MEV → premium segmented control */
.ts-toggle-row{background:rgba(0,152,234,.05);padding:3px;gap:3px;border-radius:12px;border-color:rgba(0,152,234,.12)}
.ts-tog-btn{border-radius:9px;padding:9px 0;transition:color var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}
.ts-tog-btn:first-child{border-right:none}
.ts-tog-btn.active{background:#fff;color:var(--blue);box-shadow:0 2px 8px rgba(10,37,64,.1),0 0 0 1px rgba(0,152,234,.15)}
#tsMevOn.active{color:var(--grn);box-shadow:0 2px 8px rgba(0,200,83,.18),0 0 0 1px rgba(0,200,83,.28)}

/* Done → gradient + spring + glow */
.ts-done-btn{background:linear-gradient(135deg,var(--blue),var(--blue2));box-shadow:0 6px 18px rgba(0,152,234,.38);
  transition:transform var(--dur-2) var(--ease-spring),box-shadow var(--dur-2) var(--ease-out),opacity .15s}
.ts-done-btn:hover{opacity:1;transform:translateY(-2px);box-shadow:0 10px 26px rgba(0,152,234,.55)}
.ts-done-btn:active{transform:translateY(0) scale(.98)}

/* ════════════════ SLIPPAGE — premium redesign (Vella) ════════════════ */
.ts-hero{display:flex;align-items:center;justify-content:center;gap:14px;margin:10px 0 2px}
.ts-hero-val{display:flex;align-items:baseline;gap:3px}
.ts-slip-inp{width:96px;font-size:44px;font-weight:900;letter-spacing:-1.5px;text-align:right;line-height:1;color:var(--t1)}
.ts-hero-pct{font-size:24px;font-weight:800;color:var(--t3)}
.ts-risk{font-size:12px;font-weight:800;padding:6px 13px;border-radius:999px;letter-spacing:.3px;transition-property:background,color;transition-duration:var(--dur-2) var(--ease-out)}
.ts-risk-lo{background:rgba(0,200,83,.12);color:var(--grn)}
.ts-risk-mid{background:rgba(0,152,234,.12);color:var(--blue)}
.ts-risk-hi{background:rgba(255,176,0,.16);color:#c98a00}
.ts-risk-max{background:rgba(245,54,92,.12);color:var(--red)}
.ts-presets{display:flex;gap:8px;margin:8px 0 2px}
.ts-preset{flex:1;padding:9px 0;border-radius:10px;border:1.5px solid rgba(0,152,234,.16);background:rgba(0,152,234,.04);
  font-family:ui-monospace,'SF Mono',Menlo,monospace;font-size:12px;font-weight:700;color:var(--t2);cursor:pointer;
  transition:transform var(--dur-2) var(--ease-spring),background var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out)}
.ts-preset:hover{border-color:var(--blue);color:var(--blue)}
.ts-preset:active{transform:scale(.95)}
.ts-preset.active{background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;border-color:transparent;box-shadow:0 4px 14px rgba(0,152,234,.4)}
/* slider shows the full risk spectrum; thumb marks your position */
.ts-slider{height:7px;border-radius:99px;
  background:linear-gradient(to right,var(--grn) 0%,var(--blue) 14%,#FFB300 62%,var(--red) 100%)}
.ts-slider::-webkit-slider-thumb{border-color:#0a2540}
.ts-slider::-moz-range-thumb{border-color:#0a2540}
/* MEV → card */
.ts-section:has(.ts-toggle-row){background:rgba(0,152,234,.04);border:1.5px solid rgba(0,152,234,.1);border-radius:14px;padding:14px 14px 13px}

.sb-mgr-ico{width:16px;height:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.sb-mgr-ico svg{width:16px;height:16px;color:currentColor}
.sb-mgr-ico img{width:16px;height:16px;object-fit:contain;display:block}
.pill{display:flex;align-items:center;gap:5px}
.pill-ico{width:18px;height:18px;flex-shrink:0}

/* ─── PNL VIEW ─── */
.pnl-view{display:none;flex:1;min-width:0;padding:22px 24px 52px}
.pnl-view.active{display:block}

/* ─── CAMPAIGN DASHBOARD ─── */
.campaign-view{
  display:none;flex:1;min-width:0;padding:22px 24px 52px;
  -webkit-font-smoothing:antialiased;
}
.campaign-view.active{display:block}
.camp-page{max-width:1180px;display:flex;flex-direction:column;gap:0}
.camp-page-head{margin:0 0 22px}
.camp-kicker{
  display:inline-flex;align-items:center;gap:8px;
  min-height:28px;padding:4px 10px 4px 8px;margin-bottom:12px;
  border-radius:999px;
  font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  color:var(--blue);
  background:var(--bg2);
  box-shadow:var(--el-1);
}
.camp-kicker-dot{
  width:7px;height:7px;border-radius:50%;background:#22c55e;
  box-shadow:0 0 0 0 rgba(34,197,94,.5);
  animation:camp-pulse 1.8s cubic-bezier(.2,0,0,1) infinite;
}
@keyframes camp-pulse{
  0%{box-shadow:0 0 0 0 rgba(34,197,94,.45)}
  70%{box-shadow:0 0 0 7px rgba(34,197,94,0)}
  100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}
}
.camp-page-title{
  font-size:26px;font-weight:900;letter-spacing:-.45px;color:var(--t1);line-height:1.15;
  text-wrap:balance;
}
.camp-page-sub{
  font-size:14px;color:var(--t2);margin-top:8px;line-height:1.45;max-width:42em;
  text-wrap:pretty;
}

.camp-kpis{
  display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:18px;
}
.camp-kpi{
  padding:14px 16px 13px;
  border-radius:18px;
  background:var(--bg2);
  box-shadow:var(--el-1);
  animation:camp-in .45s cubic-bezier(.2,0,0,1) both;
}
.camp-kpi:nth-child(2){animation-delay:.08s}
.camp-kpi:nth-child(3){animation-delay:.16s}
.camp-kpi:nth-child(4){animation-delay:.24s}
.camp-kpi:nth-child(5){animation-delay:.32s}
.camp-kpi-lbl{
  font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  color:var(--t3);margin-bottom:6px;
}
.camp-kpi-val{
  font-size:20px;font-weight:800;letter-spacing:-.4px;color:var(--t1);
  font-variant-numeric:tabular-nums;line-height:1.15;
}
.camp-kpi-hint{font-size:11px;color:var(--t3);margin-top:5px;font-variant-numeric:tabular-nums}
.camp-kpi--skel,.camp-skel-row{
  background:linear-gradient(90deg,var(--bg2),var(--bg3),var(--bg2));
  background-size:200% 100%;
  animation:camp-shimmer 1.2s ease-in-out infinite;
  min-height:72px;
}
.camp-kpis--skel .camp-kpi--skel{box-shadow:none}

/* Mobile board switch — desktop shows both boards side by side and never
   needs this; hidden by default, shown + wired at the stacking breakpoint. */
.camp-mtabs{
  display:none;gap:4px;padding:3px;margin-bottom:10px;
  border-radius:12px;background:var(--bg2);
  box-shadow:var(--el-2);width:fit-content;
}
.camp-mtab{
  padding:8px 18px;border:none;border-radius:9px;background:none;
  font-family:'Inter',sans-serif;font-size:13px;font-weight:700;color:var(--t3);
  cursor:pointer;transition:background .15s,color .15s;
}
.camp-mtab.active{background:var(--blue);color:#fff}

.camp-boards{
  display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start;
}
.camp-board{
  padding:12px;
  border-radius:26px;
  background:var(--bg2);
  box-shadow:var(--el-2);
  animation:camp-in .5s cubic-bezier(.2,0,0,1) both;
}
.camp-boards .camp-board:nth-child(2){animation-delay:.1s}
.camp-board-head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:12px;
  padding:6px 8px 12px;
}
.camp-board-kicker{
  font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
  color:var(--blue);margin-bottom:4px;
}
.camp-board-title{
  font-size:18px;font-weight:800;letter-spacing:-.3px;color:var(--t1);
  text-wrap:balance;
}
.camp-board-sub{font-size:12px;color:var(--t3);text-align:right;max-width:16em;text-wrap:pretty}

/* Boards can now hold hundreds of ranked rows (no more hard 50-cap) — bound
   the list to a scrollable pane and keep the column header + your pinned
   row stuck to its top, so neither scrolls out of view. */
.camp-board-scroll{
  max-height:min(620px,68vh);overflow-y:auto;overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
}
/* Header + pinned "you" row stick together as one unit, so the pinned row
   doesn't need to know the header's exact pixel height to sit below it. */
.camp-sticky-top{position:sticky;top:0;z-index:2;background:var(--bg2)}
.camp-cols{
  display:grid;gap:8px;padding:0 10px 8px;
  font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--t3);
}
/* Header text-align must match the .camp-cell value below it (left header
   over a right-aligned number reads as misaligned): narrow fixed-width count
   columns (Traders/Trades, Brought) center; the wider ones (Volume, 24h/7d,
   Last) stay right-aligned, matching the numeric-right-align convention. */
.camp-cols--infl span:nth-child(3),
.camp-cols--infl span:nth-child(4),
.camp-cols--act span:nth-child(3){text-align:center}
.camp-cols--infl span:nth-child(5),
.camp-cols--infl span:nth-child(6),
.camp-cols--act span:nth-child(4),
.camp-cols--act span:nth-child(5){text-align:right}
.camp-cols--infl{grid-template-columns:28px minmax(0,1.6fr) 64px 64px minmax(72px,.9fr) 64px 20px}
.camp-cols--act{grid-template-columns:28px minmax(0,1.7fr) 64px minmax(72px,.9fr) 72px}
.camp-list{display:flex;flex-direction:column;gap:4px}
.camp-row{
  display:grid;align-items:center;gap:8px;
  min-height:44px;padding:8px 10px;border-radius:14px;
  text-decoration:none;color:inherit;cursor:pointer;
  transition-property:transform,background-color,box-shadow;
  transition-duration:var(--dur-2);transition-timing-function:cubic-bezier(.2,0,0,1);
  animation:camp-in .4s cubic-bezier(.2,0,0,1) both;
  animation-delay:calc(var(--i, 0) * 70ms);
}
.camp-cols--infl + .camp-list .camp-row,
.camp-board:has(.camp-cols--infl) .camp-row{grid-template-columns:28px minmax(0,1.6fr) 64px 64px minmax(72px,.9fr) 64px 20px}
.camp-cols--act + .camp-list .camp-row,
.camp-board:has(.camp-cols--act) .camp-row{grid-template-columns:28px minmax(0,1.7fr) 64px minmax(72px,.9fr) 72px}

/* Influencer-row drill-down: who did this person actually refer. */
.camp-expand{
  display:flex;align-items:center;justify-content:center;
  width:20px;height:20px;border-radius:6px;color:var(--t3);
  transition:background .15s,color .15s,transform .15s;
}
.camp-expand:hover{background:var(--bg3);color:var(--t1)}
.camp-expand.open svg{transform:rotate(180deg)}
.camp-expand svg{transition:transform .2s cubic-bezier(.2,0,0,1)}
/* display:none (not max-height:0) so the collapsed panel doesn't still
   claim a flex gap in .camp-list between it and the next row. */
.camp-refs{display:none}
.camp-refs.open{display:block;max-height:600px;overflow-y:auto}
.camp-refs-inner{padding:4px 10px 10px 46px;display:flex;flex-direction:column;gap:2px}
.camp-refs-empty{padding:8px 0;color:var(--t3);font-size:11px}
.camp-refs-loading{padding:8px 0;color:var(--t3);font-size:11px}
.camp-ref-row{
  display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:10px;
  text-decoration:none;color:inherit;
}
.camp-ref-row:hover{background:var(--bg3)}
.camp-ref-av{width:22px;height:22px;border-radius:50%;flex-shrink:0;overflow:hidden;background:var(--bg3)}
.camp-ref-av img{width:100%;height:100%;object-fit:cover;display:block}
.camp-ref-name{font-size:12px;font-weight:650;color:var(--t1);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.camp-ref-stat{font-size:11px;color:var(--t3);font-variant-numeric:tabular-nums;flex-shrink:0}
.camp-row:hover{background:var(--bg3)}
.camp-row:active{transform:scale(.96)}
/* Pinned "Your rank" row — sits above the board when you're outside the
   public top 50; the same accent highlights your row in-place otherwise. */
.camp-list--pinned{margin-bottom:8px;padding-bottom:8px;border-bottom:1px dashed var(--b1)}
.camp-row--pinned{background:rgba(0,200,83,.07);box-shadow:inset 0 0 0 1.5px rgba(0,200,83,.25)}
.camp-row--pinned:hover{background:rgba(0,200,83,.12)}
.camp-you{
  display:inline-flex;align-items:center;width:fit-content;flex-shrink:0;
  margin-left:4px;padding:2px 7px;border-radius:999px;
  font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  color:var(--grn);background:rgba(0,200,83,.12);
}
.camp-rank{
  font-size:12px;font-weight:800;color:var(--t3);
  font-variant-numeric:tabular-nums;
}
.camp-row:nth-child(-n+3) .camp-rank{color:var(--t1)}
.camp-id{min-width:0;display:flex;align-items:center;gap:10px}
.camp-av{
  width:36px;height:36px;border-radius:50%;flex-shrink:0;overflow:hidden;
  background:var(--bg3);
  outline:1px solid rgba(0,0,0,.1);outline-offset:0;
  display:flex;align-items:center;justify-content:center;
}
html:is([data-theme="dark"],[data-theme="voidtype"],[data-scheme="dark"]) .camp-av{
  outline-color:rgba(255,255,255,.1);
}
.camp-av img{width:100%;height:100%;object-fit:cover;display:block}
.camp-who{min-width:0;display:flex;flex-direction:column;gap:2px}
.camp-who-row{min-width:0;display:flex;align-items:center;gap:0}
.camp-who-name{
  min-width:0;font-size:13px;font-weight:700;color:var(--t1);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.camp-who-addr{font-size:11px;color:var(--t3);font-variant-numeric:tabular-nums}
.camp-badge{
  display:inline-flex;align-items:center;width:fit-content;
  margin-top:3px;padding:1px 6px;border-radius:999px;
  font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  color:var(--blue);background:var(--bg-blue);
}
.camp-cell{
  font-size:12px;font-weight:650;color:var(--t2);
  font-variant-numeric:tabular-nums;text-align:right;
}
.camp-cell-pri{color:var(--t1);font-weight:800}
/* Narrow fixed-width count columns (Traders/Trades, Brought) read better
   centered than hugging the right edge — wider columns (Volume, 24h/7d,
   Last) keep the numeric-right-align convention. */
.camp-cell-pri,.camp-cell-brought{text-align:center}
.camp-cell-vol{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.camp-cell-sep{margin:0 3px;color:var(--t3);font-weight:600}
.camp-empty,.camp-status{
  padding:28px 16px;text-align:center;color:var(--t3);font-size:13px;line-height:1.5;
  text-wrap:pretty;
}
.camp-status--err{border-radius:18px;background:var(--bg2);box-shadow:var(--el-1)}
.camp-skel{display:flex;flex-direction:column;gap:6px;padding:4px 0}
.camp-skel-row{min-height:40px;border-radius:12px}

@keyframes camp-in{
  from{opacity:0;transform:translateY(8px)}
  to{opacity:1;transform:none}
}
@keyframes camp-shimmer{
  0%{background-position:100% 0}
  100%{background-position:-100% 0}
}

@media (max-width:980px){
  .camp-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
  .camp-boards{grid-template-columns:1fr}
  .camp-mtabs{display:flex}
  .camp-boards[data-mobile="infl"] .camp-board:nth-child(2),
  .camp-boards[data-mobile="act"] .camp-board:nth-child(1){display:none}
}
@media (max-width:720px){
  .campaign-view{padding:16px 14px 40px}
  .camp-page-title{font-size:22px}
  .camp-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .camp-kpi{padding:12px 12px 11px;border-radius:16px}
  .camp-kpi-val{font-size:17px}
  .camp-board{padding:10px;border-radius:18px}
  .camp-board-head{flex-wrap:wrap;align-items:flex-start}
  .camp-board-sub{text-align:left;max-width:none}
  .camp-cols{display:none}
  /* Compact card layout has no spare grid cell for it — the row itself
     still opens the profile, drill-down stays a bigger-screen affordance. */
  .camp-expand{display:none}
  .camp-refs-inner{padding-left:10px}
  .camp-cols--infl + .camp-list .camp-row,
  .camp-board:has(.camp-cols--infl) .camp-row,
  .camp-cols--act + .camp-list .camp-row,
  .camp-board:has(.camp-cols--act) .camp-row{
    grid-template-columns:28px minmax(0,1fr) auto;
    grid-template-areas:"rank who pri" "rank who vol";
    row-gap:2px;
  }
  .camp-rank{grid-area:rank}
  .camp-id{grid-area:who}
  .camp-cell-pri{grid-area:pri}
  .camp-cell:not(.camp-cell-pri){display:none}
  .camp-cell-vol{display:block;grid-area:vol;font-size:11px}
}
.pnl-page{max-width:1120px;display:flex;flex-direction:column;gap:0}
.pnl-page-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
  margin:0 0 18px
}
.pnl-page-title{
  font-size:22px;font-weight:900;letter-spacing:-.4px;color:var(--t1);line-height:1.15
}
.pnl-page-sub{font-size:13px;color:var(--t3);margin-top:4px;line-height:1.4}
#pnl-capture-container{overflow:visible;width:100%}

/* Shareable stage — Void charcoal + new atmosphere image */
.pnl-hero-bg{
  position:relative;
  background-color:#070707;
  background-size:cover;background-position:center;
  padding:22px 22px 20px;overflow:hidden;
  border-radius:20px;
  border:1px solid rgba(255,255,255,.1);
  box-shadow:0 18px 50px rgba(0,0,0,.45)
}
.pnl-hero-plate,.coin-pnl-plate{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center;
  z-index:0;pointer-events:none;user-select:none;
  border-radius:inherit
}
/* Scrim ABOVE the plate — match card radius exactly (no overscan fringe) */
.pnl-hero-bg::before{
  content:'';position:absolute;inset:0;pointer-events:none;z-index:1;
  border-radius:inherit;
  background:
    linear-gradient(90deg,
      rgba(0,0,0,.14) 0%,
      rgba(0,0,0,.32) 40%,
      rgba(0,0,0,.62) 70%,
      rgba(0,0,0,.74) 100%),
    linear-gradient(180deg,
      rgba(0,0,0,.18) 0%,
      rgba(0,0,0,.12) 38%,
      rgba(0,0,0,.58) 78%,
      rgba(0,0,0,.72) 100%);
}
.pnl-hero-bg::after{
  content:'';position:absolute;inset:0;pointer-events:none;z-index:1;
  border-radius:inherit;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.045'/%3E%3C/svg%3E");
  opacity:.7;mix-blend-mode:overlay
}
.pnl-hero-bg>*:not(.pnl-hero-plate){position:relative;z-index:2}
.pnl-topbar--share-only{display:none}

/* During share capture only — drop SVG noise / soft shadow fringe that blurs edges */
body.pnl-share-exporting .pnl-hero-bg::after,
body.pnl-share-exporting .coin-pnl-hero::after{display:none!important;content:none!important}
body.pnl-share-exporting .pnl-hero-bg,
body.pnl-share-exporting .coin-pnl-hero{
  box-shadow:none!important;
  filter:none!important;
  outline:none!important
}
.pnl-share-clone::after{display:none!important;content:none!important}

/* Page-level share CTA (outside capture) */
.pnl-share-btn{
  display:inline-flex;align-items:center;gap:8px;
  background:#E8E8E0;color:#0A0A0A;border:none;border-radius:12px;
  padding:10px 16px;font-size:13px;font-weight:800;
  cursor:pointer;letter-spacing:.01em;
  box-shadow:0 1px 0 rgba(255,255,255,.2) inset,0 8px 22px rgba(0,0,0,.35);
  transition-property:transform,background,box-shadow;transition-duration:.16s;
  flex-shrink:0
}
.pnl-share-btn:hover{background:#F5F5F0;transform:translateY(-1px)}
.pnl-share-btn:active{transform:scale(.96)}
.pnl-share-btn:disabled{opacity:.55;cursor:wait;transform:none}
.pnl-share-btn svg{flex-shrink:0}

/* Stage: Net PNL + period (equity curve removed — room for character plate) */
.pnl-stage{
  display:block;margin-bottom:18px
}

/* Right-align identity / period / Net PNL so character plates stay clear on the left.
   Sit content in the right ~55% of the hero; bottom .pnl-stats-row stays full-width (sibling). */
.pnl-hero-bg > .pnl-stage > .pnl-stage-main,
.pnl-stage-main{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-end !important;
  justify-content:flex-start;
  text-align:right !important;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  padding-left:45%;
  margin-left:0
}
.pnl-stage-main > .pnl-hero-head,
.pnl-stage-main > .pnl-big-block{
  width:100%;
  max-width:100%;
  text-align:right;
  box-sizing:border-box
}
.pnl-stage-main .pnl-hero-tag,
.pnl-stage-main .pnl-hero-title,
.pnl-stage-main .pnl-big-label,
.pnl-stage-main .pnl-big-pct{
  text-align:right;
  margin-left:auto;
  margin-right:0
}
.pnl-stage-main > .pnl-period-tabs,
.pnl-stage-main .pnl-period-tabs{
  display:inline-flex !important;
  width:auto !important;
  max-width:100%;
  align-self:flex-end;
  margin-left:auto;
  margin-right:0;
  box-sizing:border-box
}
.pnl-stage-main .pnl-big-num{
  justify-content:flex-end !important;
  width:100%;
  box-sizing:border-box
}

.pnl-hero-head{margin-bottom:16px}
.pnl-hero-tag{
  display:inline-flex;align-items:center;gap:6px;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);
  border-radius:999px;padding:5px 11px;
  font-size:10px;font-weight:800;color:rgba(244,244,239,.72);
  letter-spacing:.12em;text-transform:uppercase;margin-bottom:10px
}
.pnl-hero-title{
  font-size:clamp(28px,4vw,40px);font-weight:900;color:#F4F4EF;
  letter-spacing:-.04em;line-height:1.05;
  text-wrap:balance;
  text-shadow:0 2px 18px rgba(0,0,0,.78),0 1px 2px rgba(0,0,0,.55)
}

.pnl-period-tabs{
  display:inline-flex;max-width:100%;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.12);
  border-radius:12px;padding:3px;gap:2px;margin-bottom:20px
}
.pnl-ptab{
  padding:8px 14px;border:none;border-radius:9px;
  background:transparent;font-size:12px;font-weight:700;
  color:rgba(244,244,239,.45);cursor:pointer;
  transition-property:background,color,box-shadow;transition-duration:.15s;
  font-variant-numeric:tabular-nums
}
.pnl-ptab:hover{color:rgba(244,244,239,.85);background:rgba(255,255,255,.06)}
.pnl-ptab.active{
  background:#E8E8E0;color:#0A0A0A;font-weight:800;
  box-shadow:0 1px 5px rgba(0,0,0,.35)
}

.pnl-big-block{margin:0}
.pnl-big-label{
  font-size:10px;font-weight:800;color:rgba(244,244,239,.7);
  text-transform:uppercase;letter-spacing:.14em;margin-bottom:10px;
  text-shadow:0 1px 8px rgba(0,0,0,.7)
}
.pnl-big-num{
  font-size:clamp(40px,6vw,56px);font-weight:900;letter-spacing:-.045em;
  line-height:1;color:#F4F4EF;
  display:flex;align-items:center;gap:10px;
  transition:opacity .2s;
  font-variant-numeric:tabular-nums;
  text-shadow:0 2px 16px rgba(0,0,0,.82),0 1px 2px rgba(0,0,0,.6)
}
.pnl-big-num.flash{opacity:.35}
.pnl-big-num.up{color:#3DDB8A;text-shadow:0 2px 14px rgba(0,0,0,.85),0 0 36px rgba(61,219,138,.28)}
.pnl-big-num.dn{color:#FF5C6A;text-shadow:0 2px 14px rgba(0,0,0,.85),0 0 36px rgba(255,92,106,.26)}
.pnl-big-pct{
  font-size:18px;font-weight:800;margin-top:8px;letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;color:rgba(244,244,239,.78);
  text-shadow:0 1px 10px rgba(0,0,0,.75)
}
.pnl-big-pct.up{color:#3DDB8A}
.pnl-big-pct.dn{color:#FF5C6A}
.pnl-ton-big{
  width:84px;height:84px;object-fit:contain;flex-shrink:0;
  filter:drop-shadow(0 2px 10px rgba(0,0,0,.55)) drop-shadow(0 0 8px rgba(255,255,255,.12))
}

.pnl-stage-chart{
  background:rgba(0,0,0,.28);
  border:1px solid rgba(255,255,255,.08);
  border-radius:16px;padding:14px 14px 10px;
  min-height:0
}
.pnl-chart-meta{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:8px}
.pnl-chart-lbl{font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:rgba(244,244,239,.45)}
.pnl-chart-hint{font-size:11px;font-weight:600;color:rgba(244,244,239,.32)}
.pnl-sparkline{width:100%;height:148px;display:block;border-radius:8px}

/* Stats tiles */
.pnl-stats-row{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;margin-top:2px
}
@media(max-width:640px){
  .pnl-stats-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pnl-sparkline{height:112px}
}
.pnl-stat{
  display:flex;flex-direction:column;gap:6px;
  padding:14px 14px 12px;
  background:rgba(0,0,0,.58);
  border:1px solid rgba(255,255,255,.14);
  border-radius:14px;
  backdrop-filter:blur(12px) saturate(1.05);
  -webkit-backdrop-filter:blur(12px) saturate(1.05);
  box-shadow:0 6px 18px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.06)
}
.pnl-stat-val{
  font-size:17px;font-weight:900;color:#F4F4EF;
  display:flex;align-items:center;gap:6px;white-space:nowrap;letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;
  text-shadow:0 1px 8px rgba(0,0,0,.55)
}
.pnl-stat-val.up{color:#3DDB8A}
.pnl-stat-val.dn{color:#FF5C6A}
.pnl-stat-lbl{font-size:10px;font-weight:800;color:rgba(244,244,239,.72);text-transform:uppercase;letter-spacing:.1em}
.pnl-stat-div{display:none}
.pnl-ton-stat{width:36px;height:36px;object-fit:contain;flex-shrink:0;opacity:.95;filter:drop-shadow(0 1px 6px rgba(0,0,0,.55))}
.pnl-ton-coin{width:18px;height:18px;object-fit:contain;vertical-align:middle;margin-left:3px;flex-shrink:0}

/* Brand strip for share cards */
.pnl-brand{
  display:flex;align-items:center;justify-content:space-between;
  margin-top:16px;padding-top:14px;border-top:1px solid rgba(255,255,255,.1)
}
.pnl-brand-left{display:flex;align-items:center;gap:9px}
.pnl-brand-logo{
  width:26px;height:26px;border-radius:8px;background:#E8E8E0;
  display:flex;align-items:center;justify-content:center;color:#0A0A0A;font-size:14px;font-weight:900
}
.pnl-brand-name{font-size:16px;font-weight:900;letter-spacing:-.3px;color:#F4F4EF}
.pnl-brand-url{font-size:11px;font-weight:600;color:rgba(244,244,239,.4);font-family:ui-monospace,'SF Mono',Menlo,monospace;letter-spacing:.2px}

/* Background carousel — outside the shareable card */
.pnl-bg-switcher{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 12px;
  margin:12px 0 4px;padding:0
}
.pnl-bg-arrow,
.pnl-bg-tool{
  width:34px;height:34px;border-radius:11px;
  display:inline-flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);
  color:rgba(244,244,239,.7);cursor:pointer;padding:0;
  transition-property:background,border-color,color,transform;transition-duration:.14s
}
.pnl-bg-arrow:hover,
.pnl-bg-tool:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.28);color:#F4F4EF}
.pnl-bg-arrow:active,
.pnl-bg-tool:active{transform:scale(.96)}
.pnl-bg-tool svg{width:15px;height:15px;display:block}
.pnl-bg-tool.is-on{color:#F5C542;border-color:rgba(245,197,66,.45);background:rgba(245,197,66,.14)}
.pnl-bg-tool.pnl-bg-random{width:auto;padding:0 12px;gap:6px;font-size:11px;font-weight:800;font-family:inherit;letter-spacing:.02em}

/* Shared fav.webp icon — inactive muted, active crisp */
.pnl-fav-ico{
  width:16px;height:16px;display:block;object-fit:contain;flex-shrink:0;
  opacity:.42;filter:grayscale(.4) saturate(.65);
  transform:scale(.92);
  transition-property:opacity,filter,transform;transition-duration:.14s;
  pointer-events:none;user-select:none
}
.pnl-bg-tool:hover .pnl-fav-ico,
.pnl-pos-fav:hover .pnl-fav-ico,
.coin-pnl-fav:hover .pnl-fav-ico{
  opacity:.72;filter:grayscale(.15) saturate(.85)
}
.pnl-bg-tool.is-on .pnl-fav-ico,
.pnl-pos-fav.is-on .pnl-fav-ico,
.coin-pnl-fav.is-on .pnl-fav-ico{
  opacity:1;filter:none;transform:scale(1.06)
}
.pnl-fav-ico--lbl{
  display:inline-block;width:10px;height:10px;margin-left:2px;
  vertical-align:-1px;opacity:1;filter:none;transform:none
}
.pnl-bg-meta{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:72px}
.pnl-bg-dots{display:flex;align-items:center;gap:6px}
.pnl-bg-dot{
  width:6px;height:6px;border-radius:50%;
  background:rgba(244,244,239,.28);border:none;padding:0;cursor:pointer;
  transition-property:background,transform;transition-duration:.14s
}
.pnl-bg-dot.active{background:#E8E8E0;transform:scale(1.25)}
.pnl-bg-dot:hover:not(.active){background:rgba(244,244,239,.5)}
.pnl-bg-lbl{
  font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:rgba(244,244,239,.4);font-variant-numeric:tabular-nums
}
.pnl-bg-filters{
  display:inline-flex;align-items:center;gap:4px;
  padding:3px;border-radius:11px;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12)
}
.pnl-bg-chip{
  border:none;background:transparent;color:rgba(244,244,239,.45);
  font-size:11px;font-weight:800;font-family:inherit;
  padding:6px 10px;border-radius:8px;cursor:pointer;
  transition-property:background,color;transition-duration:.14s
}
.pnl-bg-chip:hover{color:rgba(244,244,239,.85);background:rgba(255,255,255,.06)}
.pnl-bg-chip.active{background:#E8E8E0;color:#0A0A0A}
.pnl-hero-bg.pnl-bg-flash{
  animation:pnlBgFlash .65s cubic-bezier(.2,0,0,1)
}
@keyframes pnlBgFlash{
  0%{box-shadow:0 18px 50px rgba(0,0,0,.45),0 0 0 0 rgba(232,232,224,.0)}
  35%{box-shadow:0 18px 50px rgba(0,0,0,.45),0 0 0 3px rgba(232,232,224,.55)}
  100%{box-shadow:0 18px 50px rgba(0,0,0,.45),0 0 0 0 rgba(232,232,224,.0)}
}

/* Below hero — recent trade posters */
.pnl-below{padding:26px 0 8px}
.pnl-section-head{
  margin:0 0 16px;
  display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap
}
.pnl-section-title{font-size:18px;font-weight:900;color:var(--t1);letter-spacing:-.35px}
.pnl-section-sub{font-size:12px;color:var(--t3);margin-top:4px;line-height:1.4}
.pnl-section-tools{
  display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:auto
}
.pnl-trades-filters{
  display:inline-flex;align-items:center;gap:4px;
  padding:3px;border-radius:11px;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1)
}
.pnl-trades-chip{
  border:none;background:transparent;color:var(--t3);
  font-size:11px;font-weight:800;font-family:inherit;
  padding:6px 10px;border-radius:8px;cursor:pointer;
  transition-property:background,color;transition-duration:.14s
}
.pnl-trades-chip:hover{color:var(--t1);background:rgba(255,255,255,.06)}
.pnl-trades-chip.active{background:var(--t1);color:var(--bg,#0A0A0A)}
.pnl-trades-random{
  display:inline-flex;align-items:center;gap:6px;
  height:32px;padding:0 12px;border-radius:10px;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);
  color:var(--t2);font-size:11px;font-weight:800;font-family:inherit;cursor:pointer;
  transition-property:background,border-color,color,transform;transition-duration:.14s
}
.pnl-trades-random svg{width:13px;height:13px}
.pnl-trades-random:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.22);color:var(--t1)}
.pnl-trades-random:active{transform:scale(.96)}

.pnl-coins{
  display:grid;
  /* Wider cards on desktop (2–3 cols) — 240px 4-col was too tall/narrow */
  grid-template-columns:repeat(auto-fill,minmax(320px,1fr));
  gap:14px
}
@media(max-width:700px){
  .pnl-coins{grid-template-columns:1fr;gap:10px}
}
.pnl-empty{
  grid-column:1/-1;
  text-align:center;padding:44px 20px;
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:18px;
  color:var(--t3);font-size:13px;line-height:1.5;
  display:flex;flex-direction:column;align-items:center;gap:12px
}
.pnl-empty-cta{
  border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.06);
  color:#F4F4EF;border-radius:10px;padding:8px 14px;font-size:12px;font-weight:700;
  cursor:pointer;font-family:inherit;
  transition-property:background,border-color;transition-duration:.14s
}
.pnl-empty-cta:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.28)}

.pnl-pos{
  position:relative;
  display:flex;flex-direction:column;gap:12px;
  padding:16px 16px 14px;
  background:#0C0C0C;
  border:1px solid rgba(255,255,255,.1);
  border-radius:18px;
  overflow:hidden;
  cursor:pointer;
  isolation:isolate;
  transition-property:border-color,transform,box-shadow;
  transition-duration:.18s;
  animation:pnlCardIn .4s cubic-bezier(.2,0,0,1) backwards
}
@keyframes pnlCardIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.pnl-pos:hover{
  border-color:rgba(255,255,255,.22);
  transform:translateY(-2px);
  box-shadow:0 14px 36px rgba(0,0,0,.45)
}
.pnl-pos:active{transform:scale(.985)}
.pnl-pos-wash{
  display:none
}
.pnl-pos-plate{
  display:block;
  position:absolute;inset:0;z-index:0;pointer-events:none;
  border-radius:inherit;
  background-image:var(--pnl-plate);background-size:cover;background-position:center;
}
/* Dark scrim over plate — fade out at bottom so Open card has no dark bar */
.pnl-pos::after{
  content:'';
  position:absolute;inset:0;z-index:1;pointer-events:none;
  border-radius:inherit;
  background:
    linear-gradient(90deg,rgba(0,0,0,.18) 0%,rgba(0,0,0,.4) 55%,rgba(0,0,0,.52) 100%),
    linear-gradient(180deg,rgba(0,0,0,.16) 0%,rgba(0,0,0,.1) 45%,rgba(0,0,0,.2) 70%,transparent 100%);
}
.pnl-pos>*:not(.pnl-pos-wash):not(.pnl-pos-plate){position:relative;z-index:2}

.pnl-pos-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.pnl-pos-id{display:flex;align-items:center;gap:10px;min-width:0}
.pnl-pos-ico{
  width:42px;height:42px;border-radius:12px;
  flex-shrink:0;overflow:hidden;
  display:flex;align-items:center;justify-content:center;
  outline:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.06)
}
.pnl-pos-ico img{width:100%;height:100%;object-fit:cover;display:block}
.pnl-pos-emoji{font-size:20px;line-height:1}
.pnl-pos-meta{min-width:0;flex:1}
.pnl-pos-name{
  font-size:14px;font-weight:800;color:#F4F4EF;letter-spacing:-.2px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%
}
.pnl-pos-tick{font-size:11px;font-weight:700;color:rgba(244,244,239,.42);margin-top:2px}

.pnl-pos-share{
  display:inline-flex;align-items:center;gap:6px;
  padding:7px 10px;border-radius:10px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.06);
  color:rgba(244,244,239,.72);
  font-size:11px;font-weight:800;font-family:inherit;
  cursor:pointer;flex-shrink:0;
  transition-property:background,color,border-color,transform;transition-duration:.14s
}
.pnl-pos-share svg{width:13px;height:13px}
.pnl-pos-share:hover{
  background:#E8E8E0;color:#0A0A0A;border-color:#E8E8E0
}
.pnl-pos-share:active{transform:scale(.96)}

.pnl-pos-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}
/* Favorite star — next to Share, does not fight the CTA */
.pnl-pos-fav{
  width:32px;height:32px;border-radius:10px;padding:0;
  display:inline-flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);
  color:rgba(244,244,239,.55);cursor:pointer;
  transition-property:background,color,border-color,transform;transition-duration:.14s
}
.pnl-pos-fav:hover{background:rgba(255,255,255,.12);color:#F4F4EF;border-color:rgba(255,255,255,.28)}
.pnl-pos-fav:active{transform:scale(.96)}
.pnl-pos-fav.is-on{color:#F5C542;border-color:rgba(245,197,66,.45);background:rgba(245,197,66,.14)}
.pnl-pos-fav.is-on:hover{color:#FFD76A;background:rgba(245,197,66,.22)}

/* List cards: full-width stack (no character-plate gutter — that broke 4-col desktop). */
.pnl-pos-hero{
  padding:0;
  text-align:left;
  margin:0;
  width:100%;
  box-sizing:border-box
}
.pnl-pos-pnl{
  font-size:28px;font-weight:900;letter-spacing:-.045em;line-height:1;
  display:flex;align-items:center;justify-content:flex-start;gap:8px;
  font-variant-numeric:tabular-nums
}
.pnl-pos.up .pnl-pos-pnl{color:#3DDB8A;text-shadow:0 0 28px rgba(61,219,138,.18)}
.pnl-pos.dn .pnl-pos-pnl{color:#FF5C6A;text-shadow:0 0 28px rgba(255,92,106,.16)}
.pnl-pos-pct{
  margin-top:6px;font-size:13px;font-weight:800;
  font-variant-numeric:tabular-nums;letter-spacing:-.01em;
  text-align:left
}
.pnl-pos.up .pnl-pos-pct{color:rgba(61,219,138,.85)}
.pnl-pos.dn .pnl-pos-pct{color:rgba(255,92,106,.85)}
.pnl-ton-micro{width:28px;height:28px;object-fit:contain;flex-shrink:0}

.pnl-pos-stats{
  display:grid;grid-template-columns:1fr 1fr;gap:8px;
  margin:0;
  width:100%;
  max-width:none;
  box-sizing:border-box
}
.pnl-pos-stat{
  padding:12px 12px 10px;
  border-radius:12px;
  background:rgba(255,255,255,.035);
  border:1px solid rgba(255,255,255,.07);
  min-width:0
}
.pnl-pos-stat-v{
  font-size:13px;font-weight:800;color:#F4F4EF;
  display:flex;align-items:center;gap:5px;flex-wrap:wrap;
  font-variant-numeric:tabular-nums;letter-spacing:-.15px;
  line-height:1.15
}
.pnl-pos-stat-v.up{color:#3DDB8A}
.pnl-pos-stat-v.dn{color:#FF5C6A}
.pnl-pos-stat-l{
  margin-top:5px;font-size:10px;font-weight:800;
  color:rgba(244,244,239,.42);text-transform:uppercase;letter-spacing:.08em
}

/* Not a <footer> — avoid site chrome; reset any leftover footer rules */
.pnl-pos-foot{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  margin:2px 0 0;padding:8px 0 0;
  border:none;border-top:none;
  background:transparent!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  filter:none;
  box-shadow:none;
  position:relative;
  z-index:3
}
.pnl-pos-when{
  font-size:12px;font-weight:700;color:rgba(244,244,239,.45);
  font-variant-numeric:tabular-nums
}
.pnl-pos-cta{
  font-size:12px;font-weight:800;color:rgba(232,232,224,.62);
  letter-spacing:.01em;
  transition-property:color,transform;transition-duration:.14s
}
.pnl-pos:hover .pnl-pos-cta{color:#E8E8E0;transform:translateX(2px)}

/* ══════════════════════════════════════════
   PER-COIN PNL MODAL
══════════════════════════════════════════ */
#coinPnlModal .modal{
  max-width:520px;padding:0;overflow:hidden;
  background:transparent;border:none;box-shadow:none
}
.coin-pnl-hero{
  position:relative;
  background-color:#070707;
  background-size:cover;background-position:center;
  padding:20px 20px 22px;overflow:hidden;border-radius:20px;
  border:1px solid rgba(255,255,255,.14);
  box-shadow:none;
  isolation:isolate
}
.coin-pnl-hero::before{
  content:'';position:absolute;inset:0;pointer-events:none;z-index:1;
  border-radius:inherit;
  background:
    linear-gradient(90deg,
      rgba(0,0,0,.14) 0%,
      rgba(0,0,0,.32) 40%,
      rgba(0,0,0,.62) 70%,
      rgba(0,0,0,.74) 100%),
    linear-gradient(180deg,
      rgba(0,0,0,.18) 0%,
      rgba(0,0,0,.12) 38%,
      rgba(0,0,0,.58) 78%,
      rgba(0,0,0,.72) 100%);
}
.coin-pnl-hero>*:not(.coin-pnl-plate){position:relative;z-index:2}
/* Right-align NET PNL like main hero; stats row stays full-width below. */
.coin-pnl-hero .pnl-big-block{
  margin-top:16px;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  text-align:right;
  width:100%;
  box-sizing:border-box;
  padding-left:42%
}
.coin-pnl-hero .pnl-big-label,
.coin-pnl-hero .pnl-big-pct{text-align:right;margin-left:auto;margin-right:0}
.coin-pnl-hero .pnl-big-num{justify-content:flex-end;width:100%;box-sizing:border-box}
.coin-pnl-hero .pnl-sparkline{height:120px;margin:4px 0 14px}
.coin-pnl-chart-meta{margin:12px 0 0}

#coinPnlModal .modal-close{
  color:rgba(255,255,255,.55);
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.14)
}
#coinPnlModal .modal-close:hover{
  background:rgba(255,255,255,.16);color:#fff;border-color:rgba(255,255,255,.3)
}

.coin-pnl-topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;gap:12px}
.coin-pnl-identity{display:flex;align-items:center;gap:12px;min-width:0}
.coin-pnl-ico{
  width:44px;height:44px;border-radius:12px;
  overflow:hidden;display:flex;align-items:center;justify-content:center;
  flex-shrink:0;border:1px solid rgba(255,255,255,.16);
  outline:1px solid rgba(255,255,255,.08)
}
.coin-pnl-name{font-size:17px;font-weight:800;color:#F4F4EF;letter-spacing:-.25px;line-height:1.2}
.coin-pnl-tick{font-size:12px;color:rgba(244,244,239,.45);font-weight:700;margin-top:2px}
.coin-pnl-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.coin-pnl-fav{
  width:32px;height:32px;border-radius:10px;padding:0;
  display:inline-flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);
  color:rgba(244,244,239,.55);cursor:pointer;
  transition-property:background,color,border-color,transform;transition-duration:.14s
}
.coin-pnl-fav:hover{background:rgba(255,255,255,.16);color:#F4F4EF;border-color:rgba(255,255,255,.28)}
.coin-pnl-fav:active{transform:scale(.96)}
.coin-pnl-fav.is-on{color:#F5C542;border-color:rgba(245,197,66,.45);background:rgba(245,197,66,.14)}
.coin-pnl-share-btn{
  padding:8px 14px;font-size:12px;font-weight:800;
  background:#E8E8E0;border:none;border-radius:10px;color:#0A0A0A;cursor:pointer;
  transition-property:background,transform;transition-duration:.14s;white-space:nowrap
}
.coin-pnl-share-btn:hover{background:#F5F5F0}
.coin-pnl-share-btn:active{transform:scale(.96)}
.coin-pnl-close-btn{
  width:32px;height:32px;border-radius:10px;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);
  color:rgba(244,244,239,.65);font-size:18px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition-property:background,color,border-color;transition-duration:.12s;flex-shrink:0
}
.coin-pnl-close-btn:hover{background:rgba(255,255,255,.16);color:#fff;border-color:rgba(255,255,255,.28)}

[data-theme="dark"] .pnl-coin-card{
  background:#0C0C0C;border-color:rgba(255,255,255,.1)
}
[data-theme="dark"] .pnl-coin-card:hover{
  border-color:rgba(255,255,255,.22);box-shadow:0 8px 28px rgba(0,0,0,.5)
}
[data-theme="dark"] .pnl-coin-ico{outline-color:rgba(255,255,255,.1)}
[data-theme="dark"] .pnl-coin-mini-stats{background:rgba(255,255,255,.03);border-top-color:rgba(255,255,255,.08)}
[data-theme="dark"] .pnl-coin-ms-item{border-right-color:rgba(255,255,255,.08)}
[data-theme="dark"] .pnl-coin-share-btn{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.12);color:#A8A8A0}
[data-theme="dark"] .pnl-coin-share-btn:hover{background:#E8E8E0;border-color:#E8E8E0;color:#0A0A0A}
[data-theme="dark"] .pnl-empty{background:#0C0C0C;border-color:rgba(255,255,255,.1)}

/* ── TOP HOLDERS CARD (right panel) ───────────────────────────────────────── */
.th-card{background:rgba(234,246,255,.94);border:1.5px solid rgba(0,152,234,.12);border-radius:var(--r);overflow:hidden;backdrop-filter:blur(12px);box-shadow:0 4px 20px rgba(10,37,64,.05)}
.th-hdr{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 10px;border-bottom:1px solid rgba(0,152,234,.09)}
.th-title{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:700;color:var(--t1)}
.th-bubble-btn{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:var(--blue);background:rgba(77,184,255,.12);border:1px solid rgba(77,184,255,.25);border-radius:20px;padding:5px 11px;cursor:pointer;transition:background .15s,border-color .15s;white-space:nowrap}
.th-bubble-btn:hover{background:rgba(77,184,255,.22);border-color:rgba(77,184,255,.45)}
.th-bubble-btn.open{background:rgba(0,152,234,.22);border-color:rgba(0,152,234,.5)}
.th-card .bm-body{border-top:1px solid rgba(0,152,234,.09)}
.th-row{display:flex;align-items:flex-start;gap:8px;padding:7px 16px;transition:background .15s}
.th-row:hover{background:rgba(0,152,234,.05)}
.th-row+.th-row{border-top:1px solid rgba(0,152,234,.06)}
.th-rank{width:16px;font-size:10px;font-weight:700;color:var(--t3);text-align:center;flex-shrink:0}
.th-rank-top{color:var(--t1)}
.th-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.th-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.th-addr-wrap{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.th-name{font-size:10px;font-family:monospace;color:var(--t2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.th-badges{display:flex;align-items:center;flex-wrap:wrap;gap:3px;margin-top:1px}
.th-row-creator{background:rgba(0,200,100,.04)}
.th-row-creator:hover{background:rgba(0,200,100,.08)!important}
.th-row-amm{background:rgba(245,158,11,.06)}
.th-row-amm:hover{background:rgba(245,158,11,.12)!important}
.th-rank-amm{color:#f59e0b!important;font-size:11px}
.th-rank-burn{color:#9ca3af!important;font-size:11px}
.th-pct-amm{color:#f59e0b!important}
.th-row-pool{background:rgba(61,214,140,.05)}
.th-row-pool:hover{background:rgba(61,214,140,.1)!important}
.th-row-burn{background:rgba(107,114,128,.05)}
.th-row-burn:hover{background:rgba(107,114,128,.1)!important}
.th-bar-wrap{width:100%;height:4px;background:rgba(0,152,234,.12);border-radius:3px;overflow:hidden;flex-shrink:0}
.th-bar{height:100%;border-radius:3px;transition:width .5s ease}
.th-pct{font-size:10px;font-weight:700;color:var(--blue);text-align:right;min-width:32px;flex-shrink:0}
.th-empty{padding:16px;font-size:11px;color:var(--t3);text-align:center}
.th-bm-btn{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:#0ea5e9;background:rgba(14,165,233,.12);border:1px solid rgba(14,165,233,.28);border-radius:20px;padding:5px 12px;cursor:pointer;transition:background .15s,border-color .15s,transform .1s;white-space:nowrap}
.th-bm-btn:hover{background:rgba(14,165,233,.22);border-color:rgba(14,165,233,.5)}
.th-bm-btn.active{background:rgba(14,165,233,.28);border-color:rgba(14,165,233,.65);box-shadow:0 0 10px rgba(14,165,233,.3)}

/* ── BUBBLE MAP V2 — coin detail tab (after Holders) ──────────────────── */
#dvBubbleTabBody{padding:4px 2px 8px}
.bm2-section{margin-top:0;border-radius:var(--r);overflow:hidden;background:#edf4ff;border:1.5px solid rgba(0,152,234,.18);box-shadow:0 4px 20px rgba(0,152,234,.08);position:relative}
.bm2-section--tab{margin-top:0}
.bm2-section.hidden{display:none}
.bm2-toolbar{display:flex;justify-content:flex-end;gap:6px;padding:8px 10px 0}
.bm2-ctrl-btn{width:30px;height:30px;border-radius:8px;border:1px solid rgba(14,165,233,.28);background:rgba(14,165,233,.1);color:#7dd3fc;font-size:15px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s;line-height:1}
.bm2-ctrl-btn:hover{background:rgba(14,165,233,.24);border-color:rgba(14,165,233,.5)}
.bm2-canvas-wrap{width:100%;height:420px;position:relative;display:block;background:#edf4ff}
.bm2-canvas-wrap canvas{display:block;width:100%;height:100%}
.bm2-zoom-controls{position:absolute;bottom:16px;left:16px;z-index:6;display:flex;flex-direction:column;align-items:center;gap:2px;padding:5px;pointer-events:auto}
.bm2-loading{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#edf4ff}
.bm-lottie-loader{width:120px;height:120px}
.bm2-err{padding:24px;font-size:12px;color:rgba(125,211,252,.6);text-align:center}
.bm2-tip{position:absolute;display:flex;align-items:center;gap:6px;padding:6px 10px;background:rgba(255,255,255,.95);border:1px solid rgba(0,152,234,.2);border-radius:8px;font-size:11px;pointer-events:none;backdrop-filter:blur(8px);transition:opacity .12s;white-space:nowrap;z-index:10;box-shadow:0 2px 12px rgba(0,100,200,.1)}
.bm2-tip--off{opacity:0;pointer-events:none}
.bm2-tip-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.bm2-tip-lbl{color:var(--t2);font-family:monospace}
.bm2-tip-pct{color:#0098ea;font-weight:700;margin-left:2px}
/* BubbleMapV2 — node info sheet (slides up from bottom by default) */
.bm2-sheet{position:absolute;bottom:0;left:0;right:0;z-index:20;background:rgba(255,255,255,.97);border-top:1.5px solid rgba(0,152,234,.15);backdrop-filter:blur(14px);padding:12px 14px 14px;transform:translateY(0);transition:transform .22s cubic-bezier(.22,1,.36,1),opacity .18s;pointer-events:auto;box-shadow:0 -4px 20px rgba(0,100,200,.08)}
.bm2-sheet--off{transform:translateY(102%);opacity:0;pointer-events:none}
/* Page-view mode: sheet slides in from left as a floating panel */
.bm2-pg-mode .bm2-sheet{top:12px;left:12px;bottom:12px;right:auto;width:290px;border:1.5px solid rgba(0,152,234,.15);border-top:1.5px solid rgba(0,152,234,.15);border-radius:14px;box-shadow:0 4px 24px rgba(0,100,200,.12);overflow-y:auto;transform:translateX(0)}
.bm2-pg-mode .bm2-sheet--off{transform:translateX(calc(-100% - 24px));opacity:0;pointer-events:none}
.bm2-sh-row{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.bm2-sh-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.bm2-sh-addr{flex:1;font-size:12px;font-family:monospace;color:var(--t2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bm2-sh-close{width:24px;height:24px;border-radius:6px;border:1px solid rgba(0,152,234,.2);background:rgba(0,152,234,.08);color:var(--t2);font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;line-height:1;padding:0}
.bm2-sh-pct{font-size:22px;font-weight:800;color:var(--t1);line-height:1;margin-bottom:3px}
.bm2-sh-pct-unit{font-size:12px;font-weight:500;color:var(--t3);margin-left:4px}
.bm2-sh-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:4px 8px;margin-bottom:8px;background:rgba(0,152,234,.05);border-radius:8px;padding:8px 10px}
.bm2-sh-stat{display:flex;flex-direction:column;justify-content:space-between;gap:2px}
.bm2-sh-stat-lbl{font-size:10px;color:var(--t3);font-weight:600;text-transform:uppercase;letter-spacing:.4px;white-space:nowrap}
.bm2-sh-stat-val{font-size:14px;font-weight:800;color:var(--t1)}
.bm2-sh-cluster{font-size:11px;color:var(--t3);margin-bottom:10px}
/* Wallet attribute tags (annotation only) */
.bm2-sh-actions{display:flex;gap:8px;margin-bottom:0}
/* Cluster block */
.bm2-sh-cblock{margin-top:10px;border-top:1.5px solid rgba(0,0,0,.07);padding-top:10px}
.bm2-sh-ctitle{font-size:13px;font-weight:800;display:flex;align-items:center;gap:6px;margin-bottom:8px}
.bm2-sh-cdot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.bm2-sh-ctotal{display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:700;color:var(--t2);background:rgba(0,0,0,.04);border-radius:7px;padding:5px 10px;margin-bottom:6px}
.bm2-sh-cmembers{display:flex;flex-direction:column;gap:1px;max-height:90px;overflow-y:auto}
.bm2-sh-cm{display:flex;justify-content:space-between;align-items:center;font-size:11px;padding:3px 8px;border-radius:5px;color:var(--t3)}
.bm2-sh-cm--self{background:rgba(0,0,0,.04);color:var(--t1);font-weight:700}
.bm2-sh-cm-addr{font-family:'JetBrains Mono',monospace;letter-spacing:-.02em}
.bm2-sh-cm-pct{font-weight:600;flex-shrink:0}
.bm2-sh-no-cluster{font-size:11px;color:var(--t3);text-align:center;padding:8px 0 2px;margin-top:6px;border-top:1px solid rgba(0,0,0,.06)}
/* Cluster reason (why it formed) + per-node relationship annotations w/ on-chain proof */
.bm2-sh-creason{font-size:10.5px;font-weight:700;color:var(--t2);margin:-2px 0 8px;letter-spacing:.01em;opacity:.9}
.bm2-sh-conns{margin-top:10px;border-top:1.5px solid rgba(0,0,0,.07);padding-top:9px;display:flex;flex-direction:column;gap:3px;max-height:150px;overflow-y:auto}
.bm2-sh-conns-hd{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--t3);margin-bottom:3px}
.bm2-sh-conn{display:flex;align-items:center;gap:6px;font-size:11px;padding:3px 6px;border-radius:6px;background:rgba(0,0,0,.03)}
.bm2-sh-conn-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.bm2-sh-conn-lbl{font-weight:700;color:var(--t1);flex-shrink:0}
.bm2-sh-conn-addr{color:var(--t3);font-family:'JetBrains Mono',monospace;letter-spacing:-.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
.bm2-sh-tx{flex-shrink:0;font-size:10px;font-weight:800;color:#0098ea;text-decoration:none;padding:1px 5px;border-radius:5px;background:rgba(0,152,234,.1)}
.bm2-sh-tx:hover{background:rgba(0,152,234,.2)}
html:is([data-theme="dark"],[data-scheme="dark"],[data-theme="voidtype"]) .bm2-sh-conn{background:rgba(255,255,255,.04)}
html:is([data-theme="dark"],[data-scheme="dark"],[data-theme="voidtype"]) .bm2-sh-tx{color:#5ab8ff;background:rgba(90,184,255,.14)}
.bm2-sh-btn{flex:1;height:34px;border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s;text-decoration:none;font-family:'Inter',sans-serif}
.bm2-sh-copy{background:rgba(0,152,234,.08);border:1px solid rgba(0,152,234,.22);color:#0098ea}
.bm2-sh-copy:hover{background:rgba(0,152,234,.16)}
.bm2-sh-explorer{background:linear-gradient(90deg,var(--blue),var(--blue2));border:none;color:#fff;box-shadow:0 2px 8px rgba(0,152,234,.3)}
.bm2-sh-explorer:hover{opacity:.9}

/* ── BUBBLE MAP MODAL ─────────────────────────────────────────────────────── */
.bm-modal{position:fixed;inset:0;z-index:9000;display:flex;align-items:center;justify-content:center}
.bm-backdrop{position:absolute;inset:0;background:rgba(10,37,64,.42);backdrop-filter:blur(6px)}
.bm-panel{position:relative;z-index:1;width:min(95vw,960px);height:min(90vh,650px);background:#f2f8ff;border-radius:20px;box-shadow:0 28px 90px rgba(10,37,64,.28),0 0 0 1.5px rgba(77,184,255,.22);display:flex;flex-direction:column;overflow:hidden}
.bm-top{display:flex;align-items:center;justify-content:space-between;padding:13px 20px;border-bottom:1px solid rgba(0,152,234,.11);flex-shrink:0;background:rgba(255,255,255,.72);backdrop-filter:blur(8px)}
.bm-modal-title{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:700;color:var(--t1)}
.bm-top-right{display:flex;align-items:center;gap:9px}
.bm-updated-lbl{font-size:11px;color:var(--t3)}
.bm-refresh{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:rgba(77,184,255,.12);border:1px solid rgba(77,184,255,.2);cursor:pointer;color:var(--blue);transition:background .15s}
.bm-refresh:hover{background:rgba(77,184,255,.26)}
.bm-close-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:rgba(0,0,0,.05);border:none;cursor:pointer;color:var(--t2);transition:background .15s}
.bm-close-btn:hover{background:rgba(0,0,0,.1)}
.bm-content{display:flex;flex:1;min-height:0}
.bm-canvas-wrap{flex:1;position:relative;background:#edf4ff;overflow:hidden;cursor:grab}
.bm-canvas-wrap:active{cursor:grabbing}
#bmCanvas{position:absolute;top:0;left:0;width:100%;height:100%;display:block}
.bm-tooltip{position:absolute;z-index:20;background:rgba(255,255,255,.97);border:1.5px solid rgba(0,152,234,.18);border-radius:10px;padding:8px 12px;box-shadow:0 6px 24px rgba(10,37,64,.13);min-width:140px;max-width:210px;pointer-events:none;backdrop-filter:blur(8px)}
.bm-tip-addr{font-size:9.5px;font-family:monospace;color:var(--t2);margin-bottom:4px;word-break:break-all}
.bm-tip-pct{font-size:11px;font-weight:700;color:var(--blue)}
.bm-tip-row{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--t2);margin-bottom:4px}
.bm-tip-row b{color:var(--t1);font-weight:700}
.bm-tip-badge{margin-top:6px;display:inline-block;font-size:10px;font-weight:700;padding:2px 7px;border-radius:5px;letter-spacing:.3px}
.bm-tip-creator{background:rgba(0,200,100,.12);color:#00c864}
.bm-tip-cluster{background:rgba(255,140,0,.12);color:#ff8c00}
.bm-holder-detail{display:flex;flex-direction:column;overflow-y:auto;flex:1;min-height:0}
.bm-detail-back{padding:8px 11px;border-bottom:1px solid rgba(0,152,234,.08);flex-shrink:0}
.bm-detail-back button{display:flex;align-items:center;gap:5px;background:none;border:none;cursor:pointer;font-size:12px;font-weight:600;color:var(--blue);font-family:inherit}
.bm-detail-back button:hover{opacity:.75}
.bm-detail-addr{font-size:9px;font-family:monospace;color:var(--t2);padding:10px 12px 4px;word-break:break-all;flex-shrink:0}
.bm-detail-badges{display:flex;align-items:center;gap:5px;padding:0 12px 6px;flex-shrink:0}
.bm-detail-rank{font-size:10px;font-weight:700;color:var(--t3)}
.bm-detail-pct{font-size:26px;font-weight:800;color:var(--blue);padding:0 12px 10px;flex-shrink:0}
.bm-detail-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1px;background:rgba(0,152,234,.08);border-top:1px solid rgba(0,152,234,.08);border-bottom:1px solid rgba(0,152,234,.08);margin-bottom:8px;flex-shrink:0}
.bm-detail-stat{background:rgba(255,255,255,.92);padding:8px 4px;text-align:center}
.bm-detail-stat-val{font-size:11.5px;font-weight:700;color:var(--t1)}
.bm-detail-stat-lbl{font-size:8.5px;color:var(--t3);margin-top:2px}
.bm-detail-tx-title{font-size:10px;font-weight:700;color:var(--t3);padding:4px 12px 5px;text-transform:uppercase;letter-spacing:.5px;flex-shrink:0}
.bm-detail-txlist{padding:0 8px;overflow-y:auto}
.bm-tx-row{display:flex;align-items:center;gap:6px;padding:5px 4px;border-bottom:1px solid rgba(0,152,234,.05)}
.bm-tx-badge{font-size:8.5px;font-weight:700;padding:2px 5px;border-radius:4px;text-transform:uppercase;letter-spacing:.3px;flex-shrink:0}
.bm-tx-badge.buy{background:rgba(0,200,83,.12);color:#00c853}
.bm-tx-badge.sell{background:rgba(245,54,92,.1);color:var(--red)}
.bm-tx-amount{flex:1;font-size:10.5px;font-weight:600;color:var(--t1)}
.bm-tx-time{font-size:9px;color:var(--t3);flex-shrink:0}
.bm-side{width:232px;border-left:1px solid rgba(0,152,234,.09);display:flex;flex-direction:column;background:rgba(255,255,255,.82);flex-shrink:0}
.bm-side-search{padding:9px 11px;border-bottom:1px solid rgba(0,152,234,.08)}
.bm-search-inp{width:100%;box-sizing:border-box;background:rgba(0,152,234,.07);border:1px solid rgba(0,152,234,.15);border-radius:8px;padding:6px 10px;font-size:11.5px;color:var(--t1);outline:none;transition:border-color .15s,background .15s}
.bm-search-inp:focus{border-color:rgba(77,184,255,.5);background:rgba(255,255,255,.92)}
.bm-search-inp::placeholder{color:var(--t3)}
.bm-side-list{flex:1;overflow-y:auto;padding:2px 0}
.bm-side-row{display:flex;align-items:center;gap:7px;padding:7px 11px;cursor:pointer;transition:background .12s;border-bottom:1px solid rgba(0,152,234,.04)}
.bm-side-row:hover{background:rgba(0,152,234,.06)}
.bm-side-row-sel{background:rgba(77,184,255,.13)!important}
.bm-side-rank{width:16px;font-size:10px;font-weight:700;color:var(--t3);text-align:center;flex-shrink:0}
.bm-side-info{flex:1;min-width:0}
.bm-side-addr{font-size:9.5px;font-family:monospace;color:var(--t2);display:flex;align-items:center;gap:4px;flex-wrap:wrap;word-break:break-all}
.bm-side-tokens{font-size:9px;color:var(--t3);margin-top:2px}
.bm-side-pct{font-size:11px;font-weight:700;color:var(--blue);flex-shrink:0}
.bm-tag{font-size:8px;font-weight:700;padding:1px 4px;border-radius:3px;letter-spacing:.3px}
.bm-tag-creator{background:rgba(0,200,100,.12);color:#00c864}
.bm-tag-cluster{background:rgba(255,140,0,.12);color:#ff8c00}

/* Tablet/phone: expandable watchlist coins stay collapsed; icons remain in rail (see ≤1000) */
@media(max-width:1000px){.sb-hld-manage{display:none}#sbHldLists .sb-ls-coins{display:none!important}}
@media(max-width:700px){
  #allListsContent{padding:0 14px}
  .alt-hero{padding:20px 14px 14px}
  .alt-row-mid{display:none}
  .ft-row-right{display:none}
}

/* ══════════════════════════════════════════════════════════════════════════
   VISUAL POLISH — Final pass: consistent spacing, typography, hover, empty states
   ══════════════════════════════════════════════════════════════════════════ */

/* ── Global: better line-height, sharper text rendering ── */
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}

/* ── Coin cards: equal height via flex column ── */
.coin-grid{gap:18px}
.coin-card{
  display:flex;flex-direction:column;
  height:100%;
  border-radius:16px;
  border:1.5px solid rgba(0,152,234,.12);
  box-shadow:0 2px 12px rgba(10,37,64,.05);
}
.coin-card:hover{
  transform:translateY(-4px);
  border-color:rgba(0,152,234,.45);
  box-shadow:0 16px 48px rgba(10,37,64,.10),0 0 0 3px rgba(0,152,234,.09),0 0 32px rgba(0,152,234,.10);
}
/* Card image: fixed square, always fills container */
.c-img{
  aspect-ratio:1;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  position:relative;overflow:hidden;font-size:62px;
  background-size:cover;background-position:center;
}
.c-body{padding:14px 15px 15px;display:flex;flex-direction:column;flex:1;gap:0}

/* ════════ DESIGN POLISH — coin card depth & motion (Vella v2) ════════ */
.coin-card{
  transition:transform var(--dur-2) var(--ease-spring),
             border-color var(--dur-2) var(--ease-out),
             box-shadow var(--dur-2) var(--ease-out);
  will-change:transform;
}
.coin-card:hover{
  transform:translateY(-6px) scale(1.012);
  border-color:var(--blue);
  box-shadow:var(--el-3), var(--glow-accent);
}
.coin-card:active{transform:translateY(-2px) scale(.998);transition-duration:var(--dur-1)}
/* Image gently zooms within its frame on hover */
.c-img > img, .c-img > span{transition:transform var(--dur-3) var(--ease-out);will-change:transform}
.coin-card:hover .c-img > img, .coin-card:hover .c-img > span{transform:scale(1.07)}
/* Aligned, non-jittery numbers */
.c-mc, .c-chg{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}
/* Springier, slightly richer card entrance (overrides earlier cardIn) */
@keyframes cardIn{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}
.coin-card{animation:cardIn var(--dur-3) var(--ease-out) backwards}
@media (prefers-reduced-motion:reduce){
  .coin-card,.coin-card:hover,.coin-card:active,
  .c-img > img,.c-img > span{transition:none;animation:none;transform:none}
}
/* Subtle depth outline on real (user-uploaded) images — coin art, avatars,
   deal/tg-tracker media. Neutral separator, not themed to the accent color. */
.c-img > img,.lc-img > img,.sr-img img,.dv-img img,.wlt-hist-av img,
.tgt-av-img,.tgt-coin-img,.tgt-pod-av-img,.tgt-rk-av img,.tgt-dv-av img,
.aw-av-preview img{outline:1px solid rgba(0,0,0,.1);outline-offset:-1px}
[data-theme="dark"] .c-img > img,[data-theme="dark"] .lc-img > img,
[data-theme="dark"] .sr-img img,[data-theme="dark"] .dv-img img,
[data-theme="dark"] .wlt-hist-av img,[data-theme="dark"] .tgt-av-img,
[data-theme="dark"] .tgt-coin-img,[data-theme="dark"] .tgt-pod-av-img,
[data-theme="dark"] .tgt-rk-av img,[data-theme="dark"] .tgt-dv-av img,
[data-theme="dark"] .aw-av-preview img{outline-color:rgba(255,255,255,.1)}
.c-row1{margin-bottom:5px}
.c-name{font-size:14px;font-weight:800;line-height:1.3;letter-spacing:-.15px}
.c-tick{font-size:11px;font-weight:700;letter-spacing:.1px}
.c-row2{margin-bottom:4px}
.c-mc{font-size:15px;font-weight:900;letter-spacing:-.3px}
.c-chg{font-size:12px;font-weight:700;padding:2px 7px;border-radius:6px}
.c-meta{font-size:11px;line-height:1.4;margin-bottom:7px;color:var(--t3)}
.c-desc{
  font-size:12px;color:var(--t2);line-height:1.55;
  word-break:break-word;overflow-wrap:break-word;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  height:calc(1.55em * 2);margin-bottom:10px;
}
.c-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:auto}
.ctag{padding:3px 9px;border-radius:6px;font-size:10px;font-weight:700;letter-spacing:.2px}

/* ── LIVE badge: pulse dot and typography ── */
.c-live{font-size:9px;font-weight:800;padding:3px 8px;border-radius:6px;letter-spacing:.6px}


/* ── Profile tabs: bigger hit area, smoother active ── */
.pv-tabs-row{gap:6px;margin-bottom:20px}
.pv-tab{
  padding:9px 18px;border-radius:22px;
  font-size:13px;font-weight:600;
  border:1.5px solid rgba(0,152,234,.14);
  color:var(--t3);gap:7px;
  transition-property:background,border-color,color,box-shadow,transform;transition-duration:.15s;
}
.pv-tab.active{
  background:rgba(0,152,234,.11);
  border-color:rgba(0,152,234,.4);
  color:var(--blue);font-weight:700;
  box-shadow:0 2px 10px rgba(0,152,234,.12);
}
.pv-tab:hover:not(.active){color:var(--t2);border-color:rgba(0,152,234,.28);background:rgba(0,152,234,.04)}

/* ── Profile header: breathing room ── */
.pv-header{padding:26px;gap:22px;border-radius:14px;box-shadow:0 6px 28px rgba(10,37,64,.06)}
.pv-avatar{width:76px;height:76px;font-size:34px;box-shadow:0 8px 24px rgba(0,152,234,.28)}
.pv-name{font-size:22px;font-weight:800;letter-spacing:-.3px}
.pv-stats{gap:28px;margin-top:2px}
.pv-stat-n{font-size:19px;font-weight:900;letter-spacing:-.4px}
.pv-stat-l{font-size:11.5px;margin-top:1px;font-weight:500}

/* ── Balance card: clean center ── */
.pv-balance-main{padding:40px 28px 24px;border-radius:14px;box-shadow:0 6px 28px rgba(10,37,64,.06)}
.pv-bal-amount{font-size:36px;font-weight:900;letter-spacing:-1.5px}
.pv-bal-usd{font-size:15px;margin-top:2px}
.pv-bal-btn{height:48px;border-radius:13px;font-size:14px}
.pv-bal-breakdown{margin-top:16px;border-top:1px solid rgba(0,152,234,.12);padding-top:12px;display:flex;flex-direction:column;gap:6px}
.pv-bal-row{display:flex;justify-content:space-between;align-items:center;padding:3px 0;font-size:13px}
.pv-bal-row-lbl{color:var(--t3)}
.pv-bal-row-val{font-weight:600;color:var(--t2)}
.pv-bal-row-total .pv-bal-row-lbl,.pv-bal-row-total .pv-bal-row-val{color:var(--t1);font-weight:700}

/* ── Universal empty state ── */
.pv-coins-empty,.empty-state-box{
  padding:64px 28px;border-radius:14px;
  background:rgba(234,246,255,.88);
  border:1.5px solid rgba(0,152,234,.1);
  box-shadow:0 4px 20px rgba(10,37,64,.04);
  backdrop-filter:blur(12px);
}
.pv-coins-empty>div:first-child{font-size:52px;margin-bottom:4px}
.pv-coins-empty>div:nth-child(2){font-size:14px;color:var(--t3);font-weight:500;line-height:1.6}

/* ── Creator Rewards card ── */
.pv-rewards-box{padding:44px 28px;border-radius:14px;box-shadow:0 6px 28px rgba(10,37,64,.06)}
.pv-rew-icon{font-size:52px}
.pv-rew-title{font-size:20px;font-weight:800;letter-spacing:-.3px}
.pv-rew-val{font-size:36px;font-weight:900;letter-spacing:-1px}

.ev-pill{
  padding:8px 18px;border-radius:22px;font-size:13px;font-weight:600;
  border:1.5px solid rgba(0,152,234,.16);
  gap:7px;transition-property:background,border-color,color,box-shadow;transition-duration:.14s;
}
.ev-pill.active{
  background:rgba(0,152,234,.11);border-color:rgba(0,152,234,.38);color:var(--blue);
  box-shadow:0 2px 10px rgba(0,152,234,.12);
}
.ev-pill:hover:not(.active){background:rgba(0,152,234,.05);border-color:rgba(0,152,234,.3)}

/* ── TG Tracker feed: row polish ── */
.tg-post-row{
  padding:13px 20px;
  border-bottom:1px solid rgba(0,152,234,.06);
  transition:background .12s;
  border-radius:0;
}
.tg-post-row:hover{background:rgba(0,152,234,.04)}
.tg-post-av{width:40px;height:40px;border-radius:50%;flex-shrink:0;object-fit:cover}
.tg-post-ch{font-size:13px;font-weight:700;letter-spacing:-.1px}
.tg-post-txt{font-size:13px;line-height:1.55;color:var(--t2)}
.tg-post-time{font-size:11px;font-weight:500;color:var(--t3)}

/* ── Wallets page: row spacing ── */
.wt-row,.tracked-row{
  padding:14px 20px;
  border-bottom:1px solid rgba(0,152,234,.07);
  transition:background .12s;align-items:center;
}
.wt-row:hover,.tracked-row:hover{background:rgba(0,152,234,.04)}
.wt-av{width:42px;height:42px;border-radius:50%;flex-shrink:0;object-fit:cover;box-shadow:0 2px 8px rgba(10,37,64,.1)}

/* ── Trades table: row spacing ── */
.tr-row{
  border-bottom:1px solid rgba(0,152,234,.06);
  transition:background .12s;
}
.tr-row:hover{background:rgba(0,152,234,.04)}
.tr-av{width:30px;height:30px;border-radius:50%;flex-shrink:0;object-fit:cover}

/* ── All Lists page ── */
  padding:16px 20px;
  border-bottom:1px solid rgba(0,152,234,.07);
  transition:background .12s;align-items:center;
}

/* ── Create coin modal polish ── */
.cm-form{padding:30px}
.cm-title{font-size:21px;font-weight:900;letter-spacing:-.4px}
.cm-sub{font-size:13.5px;line-height:1.5;margin-bottom:8px}
.fg label{font-size:12.5px;font-weight:600;margin-bottom:7px}
.fi,.fta{font-size:14px;border-radius:10px;height:46px}
.fta{height:80px;padding-top:12px}
.fi:focus,.fta:focus{box-shadow:0 0 0 3px rgba(0,152,234,.12)}
.btn-launch{height:52px;font-size:15px;border-radius:13px;letter-spacing:.1px}

/* ── Search modal ── */
.search-modal-wrap{border-radius:16px;overflow:hidden;box-shadow:0 16px 56px rgba(10,37,64,.16)}

/* ── Profile notification settings rows ── */
.notif-row{
  padding:16px 20px;
  border-bottom:1px solid rgba(0,152,234,.07);
  align-items:center;gap:16px;
}
.notif-ico{width:40px;height:40px;border-radius:10px;flex-shrink:0;font-size:18px}
.notif-title{font-size:14px;font-weight:700;letter-spacing:-.1px}
.notif-sub{font-size:12px;color:var(--t3);line-height:1.45;margin-top:2px}

/* ── Toggle switch: larger hit area ── */
.tog-sw{width:46px;height:26px;border-radius:13px}
.tog-sw::after{width:20px;height:20px;top:3px;left:3px}
.tog-sw.on::after{transform:translateX(20px)}

/* ── General button hover states ── */
button,a{-webkit-tap-highlight-color:transparent}
.btn-more:hover{box-shadow:0 6px 20px rgba(0,152,234,.18);transform:translateY(-1px)}

/* ── Stat cards on detail page ── */
.stat-card{
  border-radius:14px;
  padding:16px 20px;
  border:1.5px solid rgba(0,152,234,.1);
  box-shadow:0 3px 14px rgba(10,37,64,.05);
  transition:box-shadow .18s,transform .18s;
}
.stat-card:hover{box-shadow:0 8px 28px rgba(10,37,64,.09);transform:translateY(-2px)}
.stat-val{font-size:20px;font-weight:900;letter-spacing:-.5px;margin-top:4px}
.stat-sub{font-size:12px;margin-top:2px;line-height:1.4}

/* ── Referral card polish ── */
.pv-ref-hero{padding:36px 24px 28px;border-radius:16px;border:1.5px solid rgba(0,152,234,.12);box-shadow:0 8px 32px rgba(10,37,64,.07)}

/* ── Modals: consistent headers and padding ── */
.modal-overlay .modal,.modal{
  border-radius:18px;
  box-shadow:0 24px 64px rgba(10,37,64,.18),0 4px 20px rgba(10,37,64,.08);
}
.modal-header{padding:24px 26px 16px;border-bottom:1.5px solid rgba(0,152,234,.09)}
.modal-title{font-size:18px;font-weight:800;letter-spacing:-.3px}

/* ── Detail page: header section ── */
.dv-head{padding:22px 24px;border-radius:14px;margin-bottom:16px;box-shadow:0 4px 20px rgba(10,37,64,.06)}
.dv-cname{font-size:22px;font-weight:900;letter-spacing:-.4px}
.dv-ctick{font-size:14px;font-weight:700;letter-spacing:.1px}
.dv-cmeta{font-size:12px;line-height:1.45}

/* ── Bonding curve card ── */
.bc-card{border-radius:14px;padding:18px 20px;box-shadow:0 4px 20px rgba(10,37,64,.06)}
.bc-title{font-size:16px;font-weight:800;letter-spacing:-.2px;margin-bottom:14px}

/* ── Live ticker strip: tighten ── */
.ticker-wrap{border-radius:0;box-shadow:none}
.ticker-item{padding:0 18px;gap:6px}
.ticker-name{font-size:12px;font-weight:700}
.ticker-price{font-size:12px;font-weight:600}
.ticker-chg{font-size:11.5px;font-weight:700}

/* ── PNL hero stats strip ── */
.pnl-stats{gap:0}
.pnl-stat-box{padding:20px 24px}
.pnl-stat-n{font-size:24px;font-weight:900;letter-spacing:-.6px}
.pnl-stat-l{font-size:11px;font-weight:600;letter-spacing:.06em;margin-top:3px}

/* ── PNL coin breakdown (polish layer — no overrides needed, new structure) ── */

/* ── Holdings sidebar entries ── */
.sb-hld-item{padding:10px 12px;border-radius:10px;gap:10px;transition:background .12s}
.sb-hld-item:hover{background:rgba(0,152,234,.06)}

/* ── Top holders card ── */
.th-row{padding:10px 16px;border-bottom:1px solid rgba(0,152,234,.06);transition:background .12s}
.th-row:hover{background:rgba(0,152,234,.04)}
.th-rank{font-size:12px;font-weight:700;width:20px;text-align:center;color:var(--t3)}
.th-name{font-size:12.5px;font-weight:600}
.th-pct{font-size:13px;font-weight:800}

/* ── Sidebar nav: active item glow ── */
.sb-nav-item.active{
  background:rgba(0,152,234,.11);
  box-shadow:inset 3px 0 0 var(--blue),0 2px 10px rgba(0,152,234,.09);
}
.sb-nav-item{border-radius:10px;transition:background .14s,box-shadow .14s}
.sb-nav-item:hover:not(.active){background:rgba(0,152,234,.06)}

/* ── "Add wallet" search input: consistent ── */
.wt-search,.wt-search-inp{
  height:46px;border-radius:12px;
  border:1.5px solid rgba(0,152,234,.18);
  font-size:14px;
}
.wt-add-btn{height:46px;border-radius:12px;font-size:14px;font-weight:700}

/* ── Manage Lists modal ── */
  padding:13px 18px;border-radius:10px;
  border:1.5px solid rgba(0,152,234,.09);
  margin-bottom:8px;
  transition:border-color .14s,box-shadow .14s;
  align-items:center;gap:12px;
}
  border-color:rgba(0,152,234,.25);
  box-shadow:0 3px 14px rgba(0,152,234,.09);
}

/* ── Bubble map modal ── */
.bm-modal{border-radius:16px;overflow:hidden}
.bm-header{padding:16px 20px;border-bottom:1.5px solid rgba(0,152,234,.09)}
.bm-title{font-size:16px;font-weight:800;letter-spacing:-.2px}

/* ── "Back" nav button ── */
.nav-back-btn,.btn-back{
  height:38px;padding:0 16px;border-radius:20px;
  font-size:13px;font-weight:700;
  border:1.5px solid rgba(0,152,234,.2);
  transition-property:background,border-color,box-shadow;transition-duration:.14s;gap:6px;
}
.nav-back-btn:hover,.btn-back:hover{
  background:rgba(0,152,234,.08);
  border-color:rgba(0,152,234,.4);
  box-shadow:0 3px 12px rgba(0,152,234,.14);
}

/* ── Top bar polish ── */
.topbar{box-shadow:0 1px 0 rgba(0,152,234,.1),0 2px 16px rgba(10,37,64,.05)}
.search-bar{
  border-radius:22px;height:42px;
  border:1.5px solid rgba(0,152,234,.15);
  transition:border-color .15s,box-shadow .15s;
}
.search-bar:focus-within{border-color:rgba(0,152,234,.4);box-shadow:0 0 0 3px rgba(0,152,234,.1)}
.ms-wrap.is-open .search-bar,
.ms-wrap.is-open .search-bar:hover,
.ms-wrap.is-open .search-bar:focus-within{
  border-color:transparent;transform:none
}

/* ── Scrollbar: thinner and themed ── */
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(0,152,234,.2);border-radius:4px}
::-webkit-scrollbar-thumb:hover{background:rgba(0,152,234,.38)}

/* ══════════════════════════════════════════
   DARK MODE
   Applied via: document.documentElement.setAttribute('data-theme','dark')
══════════════════════════════════════════ */
[data-theme="dark"]{
  --bg:    #040810;
  --bg2:   #0A1624;
  --bg3:   #0E1E30;
  --bg4:   #12263C;
  --b1:    rgba(255,255,255,.07);
  --b2:    rgba(255,255,255,.12);
  --b3:    rgba(255,255,255,.22);
  --blue2: #4DB8FF;
  --blue3: #00D4FF;
  --bg-blue: rgba(0,152,234,.12);
  --glow:  rgba(0,152,234,.32);
  --t1:    #FFFFFF;
  --t2:    #7B91B0;
  --t3:    #3D5270;
  --card-bg: var(--bg2);
  --card-border: rgba(255,255,255,.07);
}

/* ── Layout ── */
[data-theme="dark"] body{
  background:linear-gradient(160deg,#040810 0%,#060C18 50%,#071020 100%);
}
[data-theme="dark"] .sidebar{
  background:rgba(4,8,16,.97);
  border-right-color:rgba(255,255,255,.07);
}
[data-theme="dark"] .topbar{
  background:rgba(4,8,16,.96);
  border-bottom-color:rgba(255,255,255,.07);
}
[data-theme="dark"] #starfield{ opacity:.15 }

/* ── Generic cards ── */
[data-theme="dark"] .coin-card{
  background:var(--bg2);
  border-color:rgba(255,255,255,.07);
}
[data-theme="dark"] .coin-card:hover{
  border-color:rgba(255,255,255,0.17);
  box-shadow:0 8px 32px rgba(0,80,160,.3);
}
[data-theme="dark"] .pv-sec-hero{background:linear-gradient(120deg,rgba(0,152,234,.13) 0%,rgba(77,184,255,.07) 100%);border-bottom-color:rgba(255,255,255,.07)}
[data-theme="dark"] .pv-notif-card,
[data-theme="dark"] .pv-tab-panel,
[data-theme="dark"] .pv-header,
[data-theme="dark"] .wlt-card,
[data-theme="dark"] .tgt-card,
[data-theme="dark"] .pnl-card,
[data-theme="dark"] .modal-box,
[data-theme="dark"] .buy-panel,
[data-theme="dark"] .detail-left,
[data-theme="dark"] .detail-right,
[data-theme="dark"] .lc-stat-card{
  background:var(--bg2);
  border-color:rgba(255,255,255,.07);
}

/* ── Profile: all white/light boxes ── */
[data-theme="dark"] .pv-balance-main,
[data-theme="dark"] .pv-coins-empty,
[data-theme="dark"] .pv-rewards-box,
[data-theme="dark"] .pv-ref-hero,
[data-theme="dark"] .pv-ref-link-card,
[data-theme="dark"] .pv-ref-history,
[data-theme="dark"] .pv-ref-claim,
[data-theme="dark"] .pv-coins-section{
  background:var(--bg2);
  border-color:rgba(255,255,255,.08);
  box-shadow:none;
}
[data-theme="dark"] .pv-ref-steps{
  background:rgba(255,255,255,.04);
  box-shadow:none;
}
[data-theme="dark"] .pv-ref-step{
  background:rgba(255,255,255,.05);
  box-shadow:none;
}
[data-theme="dark"] .pv-ref-scoreboard{
  background:rgba(255,255,255,.03);
  box-shadow:none;
}
[data-theme="dark"] .pv-ref-score{
  background:rgba(255,255,255,.04);
  box-shadow:none;
}
[data-theme="dark"] .pv-ref-kpi{background:rgba(255,255,255,.05)}
[data-theme="dark"] .pv-ref-person{
  background:rgba(255,255,255,.04);
  box-shadow:none;
}
[data-theme="dark"] .pv-ref-kicker{color:#7dd3fc}
[data-theme="dark"] .pv-ref-pill--in{color:#7dd3fc;background:rgba(77,184,255,.16)}
[data-theme="dark"] .pv-camp-stage{
  background:linear-gradient(180deg,#141414 0%,#0A0A0A 100%);
  box-shadow:none;
}
[data-theme="dark"] .pv-camp-aurora{
  background:
    radial-gradient(ellipse 50% 80% at 28% 40%,rgba(255,255,255,.1),transparent 70%),
    radial-gradient(ellipse 40% 70% at 80% 18%,rgba(255,255,255,.06),transparent 70%);
}
[data-theme="dark"] .pv-camp-grid{
  opacity:.22;
  background-image:
    linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);
}
[data-theme="dark"] .pv-camp-badge{
  color:#C8C8C0;background:rgba(255,255,255,.06);box-shadow:none;
}
[data-theme="dark"] .pv-camp-mark{outline-color:rgba(255,255,255,.1)}
[data-theme="dark"] .pv-camp-title,[data-theme="dark"] .pv-camp-metric-n,
[data-theme="dark"] .pv-camp-split-n,[data-theme="dark"] .pv-camp-path-step span{color:#F4F4EF}
[data-theme="dark"] .pv-camp-lead{color:#A8A8A0}
[data-theme="dark"] .pv-camp-lead strong{color:#F4F4EF}
[data-theme="dark"] .pv-camp-path{background:rgba(255,255,255,.04)}
[data-theme="dark"] .pv-camp-path-step{background:rgba(255,255,255,.05);box-shadow:none}
[data-theme="dark"] .pv-camp-path-step em{color:#C8C8C0}
[data-theme="dark"] .pv-camp-board,[data-theme="dark"] .pv-camp-cta,[data-theme="dark"] .pv-camp-roll{
  background:rgba(255,255,255,.03);box-shadow:none;
}
[data-theme="dark"] .pv-camp-metric{background:rgba(255,255,255,.04)}
[data-theme="dark"] .pv-camp-split,[data-theme="dark"] .pv-camp-person{background:rgba(255,255,255,.05)}
[data-theme="dark"] .pv-camp-cta-url{background:rgba(255,255,255,.05);color:#F4F4EF}
[data-theme="dark"] .pv-camp-copy{
  background:#E8E8E0;color:#0A0A0A;box-shadow:none;
}
[data-theme="dark"] .pv-camp-copy:hover{box-shadow:none;background:#fff}
[data-theme="dark"] .pv-camp-tg{
  background:#E8E8E0;color:#0A0A0A;box-shadow:none;
}
[data-theme="dark"] .pv-camp-tg:hover{background:#fff;box-shadow:none}
[data-theme="dark"] .pv-camp-in{color:#E8E8E0;background:rgba(255,255,255,.1)}
[data-theme="dark"] .pv-camp-in--active{color:#4ade80;background:rgba(0,200,83,.16)}
[data-theme="dark"] .pv-camp-person-mark{background:#C8C8C0;box-shadow:none}
[data-theme="dark"] .pv-ref-hero-img{outline-color:rgba(255,255,255,.12)}
[data-theme="dark"] .pv-ref-hero-pill{
  color:#7dd3fc;background:rgba(0,152,234,.14);border-color:rgba(0,152,234,.28);
}
[data-theme="dark"] .pv-wl-rename-inp{
  background:rgba(0,152,234,.08);border-color:rgba(0,152,234,.25);color:var(--t1)
}
[data-theme="dark"] .pv-wl-new-btn{
  background:rgba(0,152,234,.05);border-color:rgba(0,152,234,.18);color:var(--blue)
}
[data-theme="dark"] .pv-wl-new-btn:hover{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,0.24)}
[data-theme="dark"] .pv-ref-stats{
  background:rgba(255,255,255,.03);
  border-color:rgba(255,255,255,.08);
  box-shadow:none;
}
[data-theme="dark"] .pv-ref-stat-val{color:#fff}
[data-theme="dark"] .pv-ref-stat--pending .pv-ref-stat-val{color:#fbbf24}
[data-theme="dark"] .pv-ref-stat-div{
  background:rgba(255,255,255,.08);
}
[data-theme="dark"] .pv-ref-claim[data-state="ready"]{
  background:linear-gradient(180deg,rgba(0,152,234,.14),rgba(10,22,36,.6));
  border-color:rgba(0,152,234,.45);
  box-shadow:0 0 0 3px rgba(0,152,234,.12);
}
[data-theme="dark"] .pv-ref-claim-title{color:#fff}
[data-theme="dark"] .pv-ref-claim-sub{color:rgba(255,255,255,.55)}
[data-theme="dark"] .pv-ref-copy-btn{
  background:rgba(255,255,255,.04);
  border-color:rgba(255,255,255,.14);
  color:var(--blue2);
  box-shadow:none;
}
[data-theme="dark"] .pv-ref-copy-btn:hover{
  background:rgba(0,152,234,.14);
  border-color:rgba(0,152,234,.4);
  color:#fff;
}
[data-theme="dark"] .pv-ref-link-url{
  background:rgba(0,152,234,.1);
  border-color:rgba(255,255,255,.1);
  color:var(--blue2);
}
[data-theme="dark"] .pv-ref-tg-btn{
  background:#2AABEE;color:#fff;
}
[data-theme="dark"] .pv-ref-tg-btn:hover{background:#229ED9}
[data-theme="dark"] .pv-ref-row{
  background:rgba(255,255,255,.04);
  border-color:rgba(255,255,255,.07);
}
[data-theme="dark"] .pv-ref-hist-empty{
  color:var(--t3);
}
[data-theme="dark"] .pv-ref-pending{
  background:rgba(251,191,36,.08);
  border-color:rgba(251,191,36,.22);
  color:#fde68a;
}
[data-theme="dark"] .pv-csect-hdr{
  border-bottom-color:rgba(255,255,255,0.06);
}

/* ── Profile: chips and buttons ── */
[data-theme="dark"] .pv-addr-chip{
  background:rgba(0,152,234,.08);
  border-color:rgba(255,255,255,0.13);
}
[data-theme="dark"] .pv-explorer-btn{
  background:rgba(255,255,255,.05);
  border-color:rgba(255,255,255,.16);
  color:#E8E8E0;
}
[data-theme="dark"] .pv-bal-btn-sec{
  background:rgba(0,152,234,.09);
  border-color:rgba(255,255,255,.13);
  color:var(--t2);
}
[data-theme="dark"] .pv-edit-btn{
  background:rgba(0,152,234,.09);
  border-color:rgba(255,255,255,0.13);
  color:var(--t2);
}

/* ── Notifications toggles ── */
[data-theme="dark"] .pv-nrow-section{
  background:rgba(0,152,234,.06);
  border-color:rgba(255,255,255,0.08);
}
[data-theme="dark"] .pv-nrow{
  border-bottom-color:rgba(255,255,255,0.05);
}
[data-theme="dark"] .pv-nrow-ico{
  background:rgba(0,152,234,.07);
}

/* ── Tabs ── */
[data-theme="dark"] .tab-pill,
[data-theme="dark"] .pv-tab{
  color:var(--t2);
}
[data-theme="dark"] .tab-pill.active,
[data-theme="dark"] .pv-tab.active{
  background:rgba(0,152,234,.12);
  color:var(--t1);
}

/* ── TG Tracker ── */
[data-theme="dark"] .tgt-hero{
  background:linear-gradient(120deg,rgba(13,29,64,.9) 0%,rgba(17,35,70,.8) 100%);
  border-color:rgba(255,255,255,0.08);
}
[data-theme="dark"] .xtr-view .tgt-hero{
  background:linear-gradient(180deg,#141414 0%,#0A0A0A 100%);
  border-color:rgba(255,255,255,.1);
}
[data-theme="dark"] .xtr-view .tgt-post{border-left-color:rgba(255,138,61,.5)}
[data-theme="dark"] .xtr-view .tgt-post:hover{border-left-color:#FF8A3D}
[data-theme="dark"] .xtr-view .tgt-hero-icon img,
[data-theme="dark"] .nav-ico-x img,
[data-theme="dark"] .xtr-empty-logo,
[data-theme="dark"] .xtr-badge-logo,
[data-theme="dark"] .xtr-tray-logo{
  filter:invert(1);
}
[data-theme="dark"] .dv-ev-x{background:#FF8A3D;color:#fff;border-color:#FFA05C}
[data-theme="dark"] .dv-ev-x:hover,[data-theme="dark"] .dv-ev-x.active{
  border-color:#FFA05C;box-shadow:0 0 0 3px rgba(255,138,61,.28)
}
[data-theme="dark"] .xtr-verified{background:#E8E8E0;color:#0A0A0A}
[data-theme="dark"] .tgt-post{
  background:var(--bg2);
  border-color:rgba(255,255,255,.07);
}
[data-theme="dark"] .tgt-post:hover{
  border-color:rgba(255,255,255,0.17);
  box-shadow:0 4px 18px rgba(0,50,120,.25);
}
[data-theme="dark"] .tgt-post-av{
  background:rgba(0,152,234,.07);
  border-color:rgba(255,255,255,0.13);
}
[data-theme="dark"] .tgt-s-bull{background:rgba(34,197,94,.15);color:#4ade80}
[data-theme="dark"] .tgt-s-bear{background:rgba(239,68,68,.15);color:#f87171}
[data-theme="dark"] .tgt-s-neu{background:rgba(255,255,255,.07);color:var(--blue)}
[data-theme="dark"] .tgt-first-badge{background:rgba(234,179,8,.15);color:#fbbf24;border-color:rgba(234,179,8,.3)}
[data-theme="dark"] .tgt-fchip{background:rgba(255,255,255,0.05);border-color:rgba(255,255,255,0.13);color:var(--t2)}
[data-theme="dark"] .tgt-fchip:hover{background:rgba(255,255,255,0.1);color:var(--blue)}
[data-theme="dark"] .tgt-fchip.active{background:var(--blue);color:#fff}
[data-theme="dark"] .tgt-fbell{background:rgba(255,255,255,0.04);border-color:rgba(255,255,255,0.1)}
/* Podium dark overrides — card bg gradient set inline via isDark in JS */
[data-theme="dark"] .tgt-rank-panel{background:var(--bg2);border-color:rgba(255,255,255,0.08)}
[data-theme="dark"] .tgt-rank-hdr{border-bottom-color:rgba(255,255,255,0.08)}
[data-theme="dark"] .tgt-rk-row{background:rgba(255,255,255,0.03);border-color:rgba(255,255,255,.07)}
[data-theme="dark"] .tgt-rk-row:hover{background:rgba(255,255,255,0.08);border-color:rgba(255,255,255,0.17)}
[data-theme="dark"] .tgt-rk-av{background:rgba(255,255,255,0.06);border-color:rgba(255,255,255,0.1)}
[data-theme="dark"] .tgt-post{background:var(--bg2);border-color:rgba(255,255,255,.07);border-left-color:rgba(0,152,234,.45)}
[data-theme="dark"] .tgt-post:hover{border-color:rgba(255,255,255,0.17);border-left-color:#0098EA}
[data-theme="dark"] .tgt-first-badge{background:rgba(255,255,255,.07);color:var(--blue);border-color:rgba(255,255,255,.22)}
[data-theme="dark"] .tgt-search-inp{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,0.13);color:var(--t1)}
[data-theme="dark"] .tgt-search-inp:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,152,234,.12)}
[data-theme="dark"] .tgt-search-clr{background:rgba(255,255,255,.1);color:var(--t2)}
[data-theme="dark"] .tgt-rk-row{background:rgba(255,255,255,0.03);border-color:rgba(255,255,255,0.06);border-left-color:rgba(0,152,234,.45)}
[data-theme="dark"] .tgt-rk-row:hover{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.13);border-left-color:#0098EA}
[data-theme="dark"] .xtr-view .tgt-rk-row{border-left-color:rgba(255,138,61,.5)}
[data-theme="dark"] .xtr-view .tgt-rk-row:hover{border-left-color:#FF8A3D}
@keyframes tgtPingDark{
  0%  {box-shadow:0 0 0 0 rgba(0,152,234,.0);border-color:rgba(255,255,255,.07)}
  18% {box-shadow:0 0 0 6px rgba(0,152,234,.22),0 6px 28px rgba(0,152,234,.18);border-color:rgba(77,184,255,.7);transform:scale(1.008)}
  55% {box-shadow:0 0 0 12px rgba(0,152,234,.08),0 8px 32px rgba(0,152,234,.12);border-color:rgba(77,184,255,.35);transform:scale(1.003)}
  100%{box-shadow:0 0 0 0 rgba(0,152,234,.0);border-color:rgba(255,255,255,.07);transform:scale(1)}
}
[data-theme="dark"] .tgt-dv-feed.tgt-dv-card--ping,
[data-theme="dark"] .tgt-dv-post.tgt-dv-card--ping{animation:tgtPingDark .9s cubic-bezier(.22,1,.36,1) forwards}
[data-theme="dark"] .tgt-dv-mc{background:rgba(255,255,255,.06);color:var(--t2)}
[data-theme="dark"] .dv-ev-tip-tgtext{background:rgba(255,255,255,.05)}
[data-theme="dark"] .tgt-coin-chip{
  background:rgba(0,152,234,.08);
  border-color:rgba(255,255,255,0.13);
}
[data-theme="dark"] .tgt-coin-chip:hover{
  background:rgba(0,152,234,.16);
  border-color:var(--blue);
}
[data-theme="dark"] .tgt-header{
  border-bottom-color:rgba(255,255,255,.07);
}

/* ── Wallet Tracker ── */
[data-theme="dark"] .wlt-hero{
  background:linear-gradient(120deg,rgba(13,29,64,.9) 0%,rgba(17,35,70,.8) 100%);
  border-color:rgba(255,255,255,0.08);
}
[data-theme="dark"] .wlt-wallet-row{
  background:var(--bg2);border-color:rgba(0,152,234,.07);box-shadow:none;
}
[data-theme="dark"] .wlt-wallet-row:hover{
  border-color:rgba(0,152,234,.25);box-shadow:0 3px 14px rgba(0,50,120,.2);
}
[data-theme="dark"] .wlt-search-input{
  background:var(--bg3);border-color:rgba(255,255,255,.14);color:var(--t1);
}
[data-theme="dark"] .wlt-search-input:focus{
  border-color:rgba(232,232,224,.4);box-shadow:0 0 0 3px rgba(232,232,224,.08);
}
[data-theme="dark"] .wlt-hero-icon .te{
  filter:drop-shadow(0 0 12px rgba(255,255,255,.25));
}
[data-theme="dark"] .wlt-ev-feed-row{background:var(--bg2);border-color:rgba(255,255,255,.07);}
[data-theme="dark"] .wlt-ev-feed-row:hover{background:var(--bg3);border-color:rgba(255,255,255,0.15);}
[data-theme="dark"] .wlt-event{background:var(--bg2);border-color:rgba(255,255,255,.07);}
[data-theme="dark"] .wlt-event:hover{
  border-color:rgba(0,152,234,.22);box-shadow:0 3px 14px rgba(0,50,120,.2);
}
[data-theme="dark"] .wlt-ev-av{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,0.13);}
[data-theme="dark"] .wlt-ev-coin-pill{background:rgba(255,255,255,0.06);border-color:rgba(255,255,255,0.13);}
[data-theme="dark"] .wlt-ev-coin-pill:hover{background:rgba(255,255,255,0.1);border-color:rgba(255,255,255,.22);}
[data-theme="dark"] .wlt-ev-amt-ton{color:#ff7b7b;}
[data-theme="dark"] .wlt-ev-amt-tok{color:#4cff9e;}
[data-theme="dark"] .wlt-remove-btn{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.1);color:var(--t3);}
[data-theme="dark"] .wlt-notif-card{background:var(--bg2);border-color:rgba(255,255,255,.07);}
[data-theme="dark"] .wlt-panel-header{border-bottom-color:rgba(255,255,255,.07);}
[data-theme="dark"] .wlt-wallet-av{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,0.13);}
[data-theme="dark"] .wlt-prof-stats{border-bottom-color:rgba(255,255,255,.07);}
[data-theme="dark"] .wlt-prof-stat{border-right-color:rgba(255,255,255,0.06);}
[data-theme="dark"] .wlt-prof-tabs{border-bottom-color:rgba(255,255,255,.07);}
[data-theme="dark"] .wlt-hold-header{color:rgba(180,200,255,.45);border-bottom-color:rgba(255,255,255,.07);}
[data-theme="dark"] .wlt-hold-row{border-bottom-color:rgba(255,255,255,0.04);}
[data-theme="dark"] .wlt-hold-row:hover{background:rgba(255,255,255,0.03);}
[data-theme="dark"] .wlt-hist-topbar{
  background:rgba(4,8,16,.96);
  border-bottom-color:rgba(255,255,255,.07);
  backdrop-filter:blur(16px);
}
[data-theme="dark"] .wlt-hist-back{
  background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.12);
  color:var(--t2);
}
[data-theme="dark"] .wlt-hist-back:hover{background:rgba(0,152,234,.12);border-color:var(--blue);color:var(--blue)}
[data-theme="dark"] .wlt-hist-av{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.1)}
[data-theme="dark"] .wlt-hist-event{
  background:var(--bg2);
  border-color:rgba(255,255,255,.07);
}
[data-theme="dark"] .wlt-hist-event:hover{background:var(--bg3);border-color:rgba(255,255,255,.13)}
[data-theme="dark"] .wlt-created-item{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.07);}
[data-theme="dark"] .wlt-created-item:hover{border-color:rgba(255,255,255,0.17);}
[data-theme="dark"] .wlt-rew-box{background:rgba(0,50,100,.4);border-color:rgba(255,255,255,0.1);}

/* ── Watchlist ── */
[data-theme="dark"] .wl-pill{
  background:var(--bg3);
  border-color:rgba(255,255,255,0.1);
  color:var(--t2);
}
[data-theme="dark"] .wl-pill.active{
  background:rgba(0,152,234,.12);
  border-color:var(--blue);
  color:var(--t1);
}
[data-theme="dark"] .wl-empty{
  background:var(--bg2);
  border-color:rgba(255,255,255,.07);
}

/* ── Manage Lists modal ── */
[data-theme="dark"] .ml-section{
  background:var(--bg3);
  border-color:rgba(255,255,255,0.08);
}
[data-theme="dark"] .ml-section-hld{
  background:rgba(0,152,234,.08);
  border-color:rgba(255,255,255,.13);
}
[data-theme="dark"] .ml-sect-hdr:hover{
  background:rgba(0,152,234,.06);
}
[data-theme="dark"] .ml-inp{
  background:rgba(0,152,234,.08);
  border-color:rgba(255,255,255,0.13);
  color:var(--t1);
}
[data-theme="dark"] .ml-inp:focus{
  background:rgba(0,152,234,.12);
  border-color:var(--blue);
}
[data-theme="dark"] .ml-body{
  background:var(--bg2);
}
[data-theme="dark"] .aw-head{
  background:var(--bg2);
  border-bottom-color:rgba(255,255,255,.07);
}
[data-theme="dark"] .aw-body{
  background:var(--bg2);
}
[data-theme="dark"] .aw-av-preview{
  background:var(--bg3);
  border-color:rgba(255,255,255,0.13);
}

/* ── PNL coin cards ── */
[data-theme="dark"] .pnl-coin-card{
  background:#0C0C0C;
  border-color:rgba(255,255,255,.1);
}
[data-theme="dark"] .pnl-coin-card:hover{
  border-color:rgba(255,255,255,.22);
  box-shadow:0 8px 28px rgba(0,0,0,.5);
}
[data-theme="dark"] .pnl-coin-mini-stats{
  background:rgba(255,255,255,.03);
  border-top-color:rgba(255,255,255,.08);
}
[data-theme="dark"] .pnl-coin-ms-div{
  background:rgba(255,255,255,.08);
}
[data-theme="dark"] .pnl-coin-share-btn{
  border-color:rgba(255,255,255,.12);
  background:rgba(255,255,255,.05);
  color:#A8A8A0;
}
[data-theme="dark"] .pnl-coin-share-btn:hover{
  background:#E8E8E0;
  border-color:#E8E8E0;
  color:#0A0A0A;
}

/* ── Search bar ── */
[data-theme="dark"] .search-bar{
  background:var(--bg2);
  border-color:rgba(255,255,255,0.1);
}


/* ── Modal base ── */
[data-theme="dark"] .modal{
  background:var(--bg2);
  border-color:rgba(255,255,255,.07);
}
[data-theme="dark"] .modal-overlay{
  background:rgba(0,10,28,.7);
}
[data-theme="dark"] .ep-input{
  background:var(--bg3);
  border-color:rgba(255,255,255,0.13);
  color:var(--t1);
}

/* ── Toast ── */
[data-theme="dark"] .toast{
  --toast-card-bg: rgba(6,10,20,.97);
  box-shadow:
    0 8px 30px rgba(0,0,0,.38),
    0 2px 8px  rgba(0,0,0,.2),
    inset 0 0 0 1px rgba(255,255,255,.07),
    inset 0 1px 0   rgba(255,255,255,.05);
}
[data-theme="dark"] .toast-title{ color:#FFFFFF }
[data-theme="dark"] .toast-body { color:#7B91B0 }
[data-theme="dark"] .toast-close{ color:rgba(200,220,240,.35) }
[data-theme="dark"] .toast-close:hover{ background:rgba(255,255,255,.08); color:rgba(200,220,240,.7) }

/* ── Detail page cards ── */
[data-theme="dark"] .desc-card,
[data-theme="dark"] .trades-wrap,
[data-theme="dark"] .holders-wrap,
[data-theme="dark"] .bond-card,
[data-theme="dark"] .cr-card,
[data-theme="dark"] .lc-header,
[data-theme="dark"] .lc-links-row{
  background:var(--bg2);
  border-color:rgba(255,255,255,.07);
}
[data-theme="dark"] .lc-holder-row{
  border-bottom-color:rgba(255,255,255,0.06);
}
[data-theme="dark"] .lc-holder-row:hover{
  background:rgba(0,152,234,.05);
}
[data-theme="dark"] .lc-ath-bar{
  background:rgba(255,255,255,.08);
}
[data-theme="dark"] .buy-tab,
[data-theme="dark"] .sell-tab{
  background:var(--bg3);
  border-color:rgba(255,255,255,0.08);
}
[data-theme="dark"] .bs-bal-row{
  background:transparent;
  border-color:transparent;
}
[data-theme="dark"] .lc-stat-card{
  background:var(--bg2);
  border-color:rgba(255,255,255,.07);
}
[data-theme="dark"] .trade-row{
  border-bottom-color:rgba(255,255,255,0.05);
}
[data-theme="dark"] .trade-row:hover{
  background:rgba(0,152,234,.04);
}

/* ── All Lists (full-page) ── */
[data-theme="dark"] .alt-section{
  background:var(--bg2);
  border-color:rgba(255,255,255,0.08);
  box-shadow:none;
}
[data-theme="dark"] .alt-section:hover{
  border-color:rgba(255,255,255,0.15);
  box-shadow:0 4px 22px rgba(0,50,120,.2);
}
[data-theme="dark"] .alt-section-hld{
  background:rgba(0,152,234,.08);
  border-color:rgba(255,255,255,.13);
}
[data-theme="dark"] .alt-sect-hdr{
  border-bottom-color:rgba(255,255,255,0.06);
}
[data-theme="dark"] .alt-sect-hdr:hover{
  background:rgba(0,152,234,.05);
}

/* ── Coin preview card (prv-card) ── */
[data-theme="dark"] .prv-card{
  background:var(--bg2);
  border-color:rgba(255,255,255,.07);
}

/* ── Top holders card ── */
[data-theme="dark"] .th-card{
  background:var(--bg2);
  border-color:rgba(255,255,255,.07);
}
[data-theme="dark"] .th-hdr{
  border-bottom-color:rgba(255,255,255,0.06);
}
[data-theme="dark"] .th-row:hover{
  background:rgba(0,152,234,.05);
}
[data-theme="dark"] .th-row+.th-row{
  border-top-color:rgba(255,255,255,0.04);
}
[data-theme="dark"] .th-row-creator{
  background:rgba(0,200,100,.05);
}
[data-theme="dark"] .th-row-amm{
  background:rgba(245,158,11,.07);
}
[data-theme="dark"] .th-row-amm:hover{
  background:rgba(245,158,11,.13)!important;
}

/* ── Wallet notif card sub-rows ── */
[data-theme="dark"] .wlt-notif-sub-row{
  background:rgba(0,152,234,.04);
  border-top-color:rgba(255,255,255,0.06);
}
[data-theme="dark"] .wlt-notif-sep{
  background:rgba(0,152,234,.09);
}

/* ── Toggle tracks (notification toggles) ── */
[data-theme="dark"] .wlt-toggle-track{
  background:rgba(255,255,255,.12);
  border-color:rgba(255,255,255,.08);
}

/* ── WL coin grid cards ── */
[data-theme="dark"] .wl-grid .coin-card:not(.home-card){
  background:var(--bg2);
  border-color:rgba(255,255,255,.07);
}

/* ── Sidebar items ── */
[data-theme="dark"] .sb-hld-manage,
[data-theme="dark"] .sb-hld-fulltable{
  color:var(--t3);
}
[data-theme="dark"] .sb-hld-manage:hover,
[data-theme="dark"] .sb-hld-fulltable:hover{
  color:var(--t2);
  background:rgba(0,152,234,.06);
}

/* ── Profile coins section divider ── */
[data-theme="dark"] .pv-csect-hdr{
  border-bottom-color:rgba(255,255,255,0.06);
}

/* ── Home filter pills ── */
[data-theme="dark"] .pill{
  background:var(--bg3);
  border-color:rgba(255,255,255,0.1);
  color:var(--t2);
}
[data-theme="dark"] .pill:hover{
  background:rgba(0,152,234,.07);
  border-color:var(--blue);
  color:var(--blue);
}
[data-theme="dark"] .pill.active{
  background:linear-gradient(90deg,rgba(0,152,234,.15),rgba(0,152,234,.07));
  border-color:var(--blue);
  color:var(--blue);
}
[data-theme="dark"] .pill-wl{
  border-color:rgba(0,152,234,.3);
  color:var(--blue2);
}
[data-theme="dark"] .pill-wl:hover,
[data-theme="dark"] .pill-wl.active{
  background:rgba(0,152,234,.12);
  border-color:var(--blue);
  color:var(--blue2);
}

/* ── Back button + dv-btn (Share, Address, Favourite) ── */
[data-theme="dark"] .btn-back,
[data-theme="dark"] .btn-topbar-back,
[data-theme="dark"] .dv-btn{
  background:var(--bg3);
  border-color:rgba(255,255,255,.13);
  color:var(--t2);
  box-shadow:none;
}
[data-theme="dark"] .btn-back:hover,
[data-theme="dark"] .btn-topbar-back:hover,
[data-theme="dark"] .dv-btn:hover{
  background:rgba(0,152,234,.07);
  border-color:var(--blue);
  color:var(--blue);
}

/* ── Coin detail header ── */
[data-theme="dark"] .dv-header{
  background:var(--bg2);
  border-color:rgba(255,255,255,.07);
}
[data-theme="dark"] .dv-img{
  outline-color:rgba(255,255,255,.1);
}
[data-theme="dark"] .dv-mc{background:none;border:none}
[data-theme="dark"] .dv-mc-lbl{color:var(--t3)}
[data-theme="dark"] .dv-mc-val{color:var(--t1)}
[data-theme="dark"] .dv-viewers{
  background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.1);color:var(--t2)
}
[data-theme="dark"] .dv-viewers-tip{
  background:rgba(8,14,24,.96);color:#eaf3ff
}

/* ── Stat strip (above chart) ── */
[data-theme="dark"] .lc-stat{
  background:transparent;border:none;box-shadow:none
}
[data-theme="dark"] .lc-stat-cell{
  background:var(--bg2);
  border-color:rgba(255,255,255,.07);
  box-shadow:none
}
[data-theme="dark"] .lc-ath-pct{color:var(--t2)}
[data-theme="dark"] .lc-ath-bar{background:rgba(255,255,255,.08)}
[data-theme="dark"] .lc-ath-fill{
  background:linear-gradient(90deg,rgba(255,255,255,.55),rgba(255,255,255,.85));
  box-shadow:none;animation:none
}
@media(max-width:700px){
  [data-theme="dark"] .lc-stat{background:transparent;border:none}
  [data-theme="dark"] .lc-stat-cell{background:var(--bg2);border-color:rgba(255,255,255,.07)}
}

/* ── Stat cards (Volume, Holders, Price Change) ── */
[data-theme="dark"] .stat-card{
  background:var(--bg2);
  border-color:rgba(255,255,255,.07);
}
[data-theme="dark"] .stat-card:hover{
  box-shadow:0 8px 28px rgba(0,50,120,.25);
}
[data-theme="dark"] .dv-flow-tfs{
  background:rgba(255,255,255,.06);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),0 1px 2px rgba(0,0,0,.28)
}
[data-theme="dark"] .dv-flow-tf.active{background:rgba(255,255,255,.12);color:var(--t1)}
[data-theme="dark"] .dv-audit-cell{
  background:rgba(255,255,255,.04);
  box-shadow:0 2px 8px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.05)
}
[data-theme="dark"] .stat-chg-item{
  background:rgba(0,152,234,.06);
}

/* ── Trades table ── */
[data-theme="dark"] .trades-wrap{
  background:var(--bg2);
  border-color:rgba(255,255,255,.07);
}
[data-theme="dark"] .trades-hdr{
  border-bottom-color:rgba(255,255,255,.07);
}
[data-theme="dark"] .trades-table th{
  border-bottom-color:rgba(255,255,255,.07);
  background:var(--bg3);
}
[data-theme="dark"] .trades-table td{
  border-bottom-color:rgba(255,255,255,0.04);
}
[data-theme="dark"] .trades-table tbody tr:hover{
  background:rgba(0,152,234,.05);
}
[data-theme="dark"] .tf-btn{
  border-color:rgba(255,255,255,0.1);
  color:var(--t3);
}
[data-theme="dark"] .tf-btn.active{
  border-color:var(--blue);
  background:rgba(0,152,234,.07);
  color:var(--blue);
}
[data-theme="dark"] .dv-vtabs{
  background:rgba(255,255,255,.04);
  border-color:rgba(255,255,255,.08);
}
[data-theme="dark"] .dv-ht-title-ct{background:rgba(0,152,234,.15)}
[data-theme="dark"] .dv-ht-table thead th{border-bottom-color:rgba(255,255,255,.07)}
[data-theme="dark"] .dv-ht-table tbody td{border-bottom-color:rgba(255,255,255,.04)}
[data-theme="dark"] .dv-ht-table tbody tr:hover{background:rgba(255,255,255,.03)}

/* ── Holders table ── */
[data-theme="dark"] .holders-wrap{
  background:var(--bg2);
  border-color:rgba(255,255,255,.07);
}
[data-theme="dark"] .holder-row+.holder-row{
  border-top-color:rgba(255,255,255,0.04);
}
[data-theme="dark"] .holder-row:hover{
  background:rgba(0,152,234,.05);
}

/* ── Bond card + Creator Rewards card (detail right panel) ── */
[data-theme="dark"] .bond-card,
[data-theme="dark"] .cr-card{
  background:var(--bg2);
  border-color:rgba(255,255,255,.07);
}

/* ── Right panel (buy/sell) ── */
[data-theme="dark"] .bs-card{
  background:var(--bg2);
  border-color:rgba(255,255,255,.07);
}
[data-theme="dark"] .bs-graduating-overlay{background:rgba(22,29,40,.93)}
[data-theme="dark"] .bs-grad-title{color:#0098ea}
[data-theme="dark"] .bs-grad-sub{color:#6a7f99}
[data-theme="dark"] .bs-card-head{
  border-bottom-color:rgba(255,255,255,.07);
}
[data-theme="dark"] .bs-tabs{
  background:rgba(255,255,255,.05);
  border-color:rgba(255,255,255,0.08);
}
[data-theme="dark"] .bs-tab{
  color:var(--t3);
}
[data-theme="dark"] .bs-amount-card{
  background:var(--bg3);
  border-color:rgba(255,255,255,0.1);
}
[data-theme="dark"] .bs-inp::placeholder{
  color:rgba(200,220,255,.18);
}
[data-theme="dark"] .bs-send-card{
  background:var(--bg3);
  border-color:rgba(255,255,255,0.1);
}
[data-theme="dark"] .bs-send-addr{
  background:rgba(255,255,255,0.04);
  border-color:rgba(255,255,255,0.1);
  color:var(--t1)
}
[data-theme="dark"] .bs-send-addr:focus{
  border-color:rgba(255,255,255,.35);
  background:rgba(255,255,255,.07)
}
[data-theme="dark"] .bs-send-addr::placeholder{color:rgba(200,220,255,.25)}
[data-theme="dark"] .bs-send-paste{
  background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.12);
  color:var(--t1)
}
[data-theme="dark"] .bs-send-gas-note{
  background:rgba(255,255,255,.03);
  border-color:rgba(255,255,255,.08)
}
[data-theme="dark"] .bs-recv{
  background:rgba(255,255,255,.04);
  border-color:rgba(255,255,255,.07);
}
[data-theme="dark"] .bs-pre{
  background:rgba(255,255,255,.04);
  border-color:rgba(255,255,255,0.1);
  color:var(--t2);
}
[data-theme="dark"] .bs-gear-btn{
  background:rgba(255,255,255,.04);
  border-color:rgba(255,255,255,0.13);
}
[data-theme="dark"] .bs-preset-panel{
  background:var(--bg3);
  border-color:rgba(255,255,255,.07);
}

/* ── Desc card socials ── */
[data-theme="dark"] .desc-card{
  background:var(--bg2);
  border-color:rgba(255,255,255,.07);
}
[data-theme="dark"] .desc-socials a{
  background:var(--bg3);
  border-color:rgba(255,255,255,0.1);
  color:var(--t2);
}
[data-theme="dark"] .desc-socials a:hover{
  background:rgba(0,152,234,.07);
  border-color:var(--blue);
  color:var(--blue);
}

/* ── Site footer dark mode ── */
[data-theme="dark"] footer{
  background:var(--bg2);
  border-top-color:rgba(255,255,255,.07);
}
[data-theme="dark"] .fc h4{
  color:var(--t3);
}
[data-theme="dark"] .fc a{
  color:var(--t2);
}
[data-theme="dark"] .fc a:hover{
  color:var(--blue);
}

/* ── Per-coin PNL modal: currency icon beside big-num ── */
#coinPnlModal .pnl-big-num .pnl-ton-stat{
  width:104px;
  height:104px;
  filter:drop-shadow(0 3px 14px rgba(255,255,255,0.59));
}

/* ── Skeleton loading cards ──────────────────────────────────────────────── */
@keyframes skel-pulse{
  0%,100%{opacity:.55}
  50%{opacity:.25}
}
.skel-card{
  background:rgba(100,110,160,.10);
  border-radius:16px;
  overflow:hidden;
  animation:skel-pulse 1.6s ease-in-out infinite;
}
.skel-img-wrap{
  width:100%;
  padding-top:60%;
  background:rgba(255,255,255,.06);
}
.skel-body-wrap{
  padding:12px 14px 14px;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.skel-line{
  height:10px;
  border-radius:6px;
  background:rgba(255,255,255,.08);
}
.skel-w40{width:40%}
.skel-w60{width:60%}
.skel-w80{width:80%}

/* Delay each card slightly for a staggered wave effect */
.skel-card:nth-child(2){animation-delay:.12s}
.skel-card:nth-child(3){animation-delay:.24s}
.skel-card:nth-child(4){animation-delay:.36s}
.skel-card:nth-child(5){animation-delay:.48s}
.skel-card:nth-child(6){animation-delay:.60s}
.skel-card:nth-child(7){animation-delay:.72s}
.skel-card:nth-child(8){animation-delay:.84s}

/* Skeleton rows inside the trades table */
.tr-skel td{padding:6px 10px}
.tr-skel .skel-line{height:12px;border-radius:5px;width:100%;background:rgba(255,255,255,.07);animation:skel-pulse 1.6s ease-in-out infinite}
.tr-skel:nth-child(2) .skel-line{animation-delay:.1s}
.tr-skel:nth-child(3) .skel-line{animation-delay:.2s}
.tr-skel:nth-child(4) .skel-line{animation-delay:.3s}
.tr-skel:nth-child(5) .skel-line{animation-delay:.4s}
.tr-skel:nth-child(6) .skel-line{animation-delay:.5s}
.tr-skel:nth-child(7) .skel-line{animation-delay:.6s}
.th-row-skel .skel-line,.holder-row-skel .skel-line{
  height:10px;border-radius:5px;background:rgba(255,255,255,.07);
  animation:skel-pulse 1.6s ease-in-out infinite
}
.th-row-skel:nth-child(2) .skel-line,.holder-row-skel:nth-child(2) .skel-line{animation-delay:.1s}
.th-row-skel:nth-child(3) .skel-line,.holder-row-skel:nth-child(3) .skel-line{animation-delay:.2s}
.th-row-skel:nth-child(4) .skel-line,.holder-row-skel:nth-child(4) .skel-line{animation-delay:.3s}
.th-row-skel:nth-child(5) .skel-line,.holder-row-skel:nth-child(5) .skel-line{animation-delay:.4s}

/* ════════════════════════════════════════════════════════════════════════════
   MOBILE BOTTOM NAV
   ════════════════════════════════════════════════════════════════════════════ */
.mobile-bottom-nav{
  display:none;
  position:fixed;bottom:0;left:0;right:0;z-index:100;
  background:rgba(234,244,255,.97);
  border-top:1px solid rgba(0,152,234,.12);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  box-shadow:0 -4px 24px rgba(10,37,64,.08);
  flex-direction:row;
  padding-bottom:env(safe-area-inset-bottom,0px)
}
.mbn-item{
  flex:1;display:flex;flex-direction:column;
  align-items:center;justify-content:flex-end;gap:3px;
  padding:8px 0 10px;min-height:62px;
  text-decoration:none;background:none;border:none;
  color:var(--t3);cursor:pointer;font-family:'Inter',sans-serif;
  transition:color .15s;user-select:none;
  -webkit-tap-highlight-color:transparent;touch-action:manipulation
}
.mbn-item.active{color:var(--blue)}
.mbn-item.active .mbn-ico-wrap{background:rgba(0,152,234,.12);border-color:rgba(0,152,234,.25)}
.mbn-ico-wrap{
  width:34px;height:34px;border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  border:1.5px solid transparent;transition:background .15s,border-color .15s
}
.mbn-ico{width:20px;height:20px;display:block}
.mbn-lbl{font-size:10px;font-weight:600;letter-spacing:.1px;line-height:1}

/* Create button — raised circle in center */
.mbn-create-btn{flex:1.1;padding-top:0;justify-content:flex-end}
.mbn-create-ring{
  width:46px;height:46px;border-radius:50%;
  background:linear-gradient(135deg,var(--blue),var(--blue2));
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 18px rgba(0,152,234,.5);
  margin-bottom:2px;flex-shrink:0;
  transform:translateY(-6px);
  transition:transform .15s,box-shadow .15s
}
.mbn-create-btn:active .mbn-create-ring{transform:translateY(-4px);box-shadow:0 2px 10px rgba(0,152,234,.4)}
.mbn-create-ring .mbn-ico{width:22px;height:22px}
.mbn-create-btn .mbn-lbl{margin-top:-2px}

/* ════════ DESIGN POLISH — Phase 2: nav, topbar, bottom-nav (Vella v2) ════════ */

/* Topbar + search: token shadow, spring focus with accent glow */
.topbar{box-shadow:var(--el-1)}
.search-bar{transition:border-color var(--dur-2) var(--ease-out),
            background var(--dur-2) var(--ease-out),
            box-shadow var(--dur-2) var(--ease-out),
            transform var(--dur-2) var(--ease-spring)}
.search-bar:hover{transform:translateY(-1px)}
.search-bar:focus-within{box-shadow:var(--glow-accent)}
.ms-wrap.is-open .search-bar:hover,
.ms-wrap.is-open .search-bar:focus-within{transform:none}

/* Topbar back: spring lift + press feedback */
.btn-topbar-back{transition:border-color var(--dur-1) var(--ease-out),
                 color var(--dur-1) var(--ease-out),
                 background var(--dur-1) var(--ease-out),
                 transform var(--dur-2) var(--ease-spring),
                 box-shadow var(--dur-2) var(--ease-out)}
.btn-topbar-back:hover{transform:translateY(-1px);box-shadow:var(--el-2)}
.btn-topbar-back:active{transform:translateY(0) scale(.97)}

/* Sidebar nav: smooth slide-in on hover + animated glowing active rail */
.nav-item{transition:color var(--dur-2) var(--ease-out),
          background var(--dur-2) var(--ease-out),
          box-shadow var(--dur-2) var(--ease-out),
          transform var(--dur-2) var(--ease-spring)}
.nav-item:hover{transform:translateX(2px)}
.nav-item.active{
  background:linear-gradient(90deg,rgba(0,152,234,.16),rgba(0,152,234,.05));
  border-left-color:transparent;
}
.nav-item.active::before{
  content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:3px;height:62%;border-radius:0 3px 3px 0;
  background:linear-gradient(180deg,var(--blue),var(--blue2));
  box-shadow:0 0 10px rgba(0,152,234,.6);
  animation:navRail var(--dur-3) var(--ease-spring) backwards;
}
@keyframes navRail{from{height:0;opacity:0}to{height:62%;opacity:1}}

/* Sidebar Create + logo mark */
.btn-sb-create{transition:transform var(--dur-2) var(--ease-spring),box-shadow var(--dur-2) var(--ease-out)}
.btn-sb-create:active{transform:translateY(0) scale(.98)}
.sb-logo-ico{transition:transform var(--dur-2) var(--ease-spring),box-shadow var(--dur-2) var(--ease-out)}
.sb-logo:hover .sb-logo-ico{transform:rotate(-6deg) scale(1.07);box-shadow:0 6px 18px rgba(0,152,234,.5)}

/* Mobile bottom-nav: pop the active icon, spring the FAB, gentle pulse ring */
.mbn-ico-wrap{transition:background var(--dur-2) var(--ease-out),
              border-color var(--dur-2) var(--ease-out),
              transform var(--dur-2) var(--ease-spring)}
.mbn-item.active .mbn-ico-wrap{transform:translateY(-3px) scale(1.08)}
.mbn-item:active .mbn-ico-wrap{transform:scale(.95)}
.mbn-create-ring{position:relative;transition:transform var(--dur-2) var(--ease-spring),box-shadow var(--dur-2) var(--ease-out)}
.mbn-create-btn:hover .mbn-create-ring{transform:translateY(-9px) scale(1.05)}
.mbn-create-btn:active .mbn-create-ring{transform:translateY(-3px) scale(.95)}
.mbn-create-ring::after{
  content:'';position:absolute;inset:-4px;border-radius:50%;
  border:2px solid rgba(0,152,234,.4);pointer-events:none;
  animation:fabPulse 2.6s var(--ease-out) infinite;
}
@keyframes fabPulse{0%{transform:scale(1);opacity:.7}70%{transform:scale(1.4);opacity:0}100%{opacity:0}}

/* ════ Mobile bottom-nav: More tray ════ */

/* DEX button icon */
#mbnDex .mbn-ico{width:20px;height:20px;object-fit:contain}

/* More/grid button */
.mbn-more-btn{flex:1}
.mbn-more-svg{transition:transform .28s cubic-bezier(.34,1.36,.64,1)}
.mbn-more-btn.tray-open .mbn-more-svg{transform:rotate(90deg) scale(.85)}
.mbn-more-btn.active .mbn-ico-wrap{background:rgba(0,152,234,.12);border-color:rgba(0,152,234,.25)}

/* Backdrop — pointer-events:none by default so it never blocks page clicks */
.mbn-tray-backdrop{
  display:none;
  position:fixed;inset:0;z-index:98;
  background:rgba(10,37,64,.28);
  opacity:0;
  pointer-events:none;
  transition:opacity .22s ease;
  -webkit-tap-highlight-color:transparent
}
.mbn-tray-backdrop.open{opacity:1;pointer-events:auto}

/* Tray panel */
.mbn-tray{
  display:none;
  position:fixed;left:0;right:0;
  bottom:calc(62px + env(safe-area-inset-bottom,0px));
  z-index:99;
  background:rgba(232,242,255,.97);
  backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  border-radius:20px 20px 0 0;
  border-top:1px solid rgba(0,152,234,.14);
  box-shadow:0 -8px 32px rgba(10,37,64,.14);
  padding:6px 10px 14px;
  transform:translateY(100%);
  transition:transform .3s cubic-bezier(.34,1.36,.64,1);
  will-change:transform
}
.mbn-tray.open{transform:translateY(0)}

/* Drag handle */
.mbn-tray-handle{
  width:36px;height:4px;border-radius:2px;
  background:rgba(0,100,200,.18);
  margin:0 auto 10px
}
.mbn-tray-head{text-align:center;margin:0 0 12px}
.mbn-tray-title{
  font-size:13px;font-weight:800;color:var(--t1);letter-spacing:-.15px
}
.mbn-tray-sub{
  margin-top:3px;font-size:11px;font-weight:600;color:var(--t3)
}

/* 2-row grid of secondary items */
.mbn-tray-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px
}
.mbn-tray-item{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:5px;padding:10px 4px 9px;border-radius:14px;
  text-decoration:none;color:var(--t2);
  font-family:'Inter',sans-serif;
  border:none;background:none;cursor:pointer;
  transition:background .12s,transform .12s cubic-bezier(.34,1.56,.64,1),color .12s;
  -webkit-tap-highlight-color:transparent;touch-action:manipulation
}
.mbn-tray-item:active{background:rgba(0,152,234,.1);transform:scale(.95)}
.mbn-tray-item.active{color:var(--blue)}
.mbn-tray-ico-wrap{
  width:46px;height:46px;border-radius:13px;
  background:rgba(0,0,0,.05);
  border:1.5px solid transparent;
  display:flex;align-items:center;justify-content:center;
  transition:background .15s,border-color .15s,transform .18s cubic-bezier(.34,1.56,.64,1)
}
.mbn-tray-item.active .mbn-tray-ico-wrap{
  background:rgba(0,152,234,.14);
  border-color:rgba(0,152,234,.28);
  transform:translateY(-2px) scale(1.07)
}
.mbn-tray-ico{width:22px;height:22px;display:block}
.mbn-tray-lbl{font-size:10.5px;font-weight:600;letter-spacing:.05px;line-height:1}

/* Show tray + backdrop only on mobile (same breakpoint as .mobile-bottom-nav) */
@media(max-width:600px){
  .mbn-tray-backdrop,.mbn-tray{display:block}
  .mbn-tray-backdrop.open{pointer-events:auto}
}

/* Dark theme */
[data-theme="dark"] .mbn-tray{background:rgba(10,10,10,.97);border-color:rgba(255,255,255,.12)}
[data-theme="dark"] .mbn-tray-handle{background:rgba(244,244,239,.22)}
[data-theme="dark"] .mbn-tray-ico-wrap{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.08)}
[data-theme="dark"] .mbn-tray-item.active .mbn-tray-ico-wrap{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.24)}

@media (prefers-reduced-motion:reduce){
  .nav-item,.nav-item:hover,.mbn-ico-wrap,.mbn-create-ring,.search-bar,
  .btn-topbar-back,.btn-sb-create,.btn-top-create,.sb-logo-ico{transition:none;transform:none}
  .nav-item.active::before,.mbn-create-ring::after{animation:none}
}

/* ════════ DESIGN POLISH — Phase 3: coin detail page ════════ */
.dv-img{animation:cardIn var(--dur-3) var(--ease-out) backwards}
.dv-btn{transition:border-color var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out),
        box-shadow var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-spring)}
.dv-btn:active{transform:scale(.96)}
.stat-card{transition:box-shadow var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-spring)}
.stat-card:hover{transform:translateY(-2px);box-shadow:var(--el-2)}
.bs-tab{transition:color var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out),transform var(--dur-1) var(--ease-spring)}
.bs-tab:active{transform:scale(.96)}
.bs-gear-btn{transition:background var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),transform var(--dur-3) var(--ease-spring)}
.bs-gear-btn:hover{transform:rotate(40deg)}

/* ════════ DESIGN POLISH — Phase 4: modals, states, shimmer ════════ */
.modal{animation:modalPop var(--dur-3) var(--ease-spring)}
@keyframes modalPop{from{opacity:0;transform:translateY(20px) scale(.96)}to{opacity:1;transform:none}}
.modal-overlay.open{animation:overlayIn var(--dur-2) var(--ease-out)}
@keyframes overlayIn{from{opacity:0}to{opacity:1}}
.modal-close{transition:background var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out),
             border-color var(--dur-1) var(--ease-out)}
/* No rotate — keeps the hit target steady (light + dark parity) */
.wl-empty,.pv-coins-empty{animation:cardIn var(--dur-3) var(--ease-out) backwards}
/* Skeleton shimmer sweep */
.skel{position:relative;overflow:hidden}
.skel::after{content:'';position:absolute;inset:0;transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);
  animation:shimmer 1.5s var(--ease-out) infinite}
@keyframes shimmer{100%{transform:translateX(100%)}}

/* ════════ DESIGN POLISH — Phase 5: dark elevation + page transitions ════════ */
[data-theme="dark"]{
  --el-1: 0 1px 2px rgba(0,0,0,.4), 0 2px 8px rgba(0,0,0,.5);
  --el-2: 0 2px 6px rgba(0,0,0,.45), 0 10px 28px rgba(0,0,0,.55);
  --el-3: 0 10px 24px rgba(0,0,0,.5), 0 28px 64px rgba(0,0,0,.62);
  --glow-accent: 0 0 0 3px rgba(255,255,255,0.11), 0 0 36px rgba(255,255,255,0.15);
}
[data-theme="dark"] .skel::after{background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent)}
/* Page/view entrance — subtle fade+rise when a route becomes active */
#detailView.active,#profileView.active,#tgTrackerView.active,
#walletTrackerView.active,#watchlistView.active,#allListsView.active,#holdingsView.active{
  animation:viewIn var(--dur-3) var(--ease-out)
}
@keyframes viewIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

@media (prefers-reduced-motion:reduce){
  .dv-img,.dv-btn,.stat-card,.bs-tab,.bs-gear-btn,.modal,.modal-close,.modal-overlay.open,
  .wl-empty,.pv-coins-empty,#detailView.active,#profileView.active,#tgTrackerView.active,
  #walletTrackerView.active,#watchlistView.active,#allListsView.active,#holdingsView.active{transition:none;animation:none;transform:none}
  .skel::after{animation:none;display:none}
}

/* ════════════════ VELLA INTRO — glitch / spin splash (disconnected users) ════════════════ */
.vella-intro{
  position:fixed;inset:0;z-index:9999;display:flex;
  flex-direction:column;align-items:center;justify-content:center;
  background:#06101f;color:#eaf3ff;overflow:hidden;
  font-family:'Inter',sans-serif;
  transition:opacity .5s var(--ease-out),transform .5s var(--ease-out);
}
.vella-intro.vi-hiding{opacity:0;transform:scale(1.03);pointer-events:none}
/* vi-open removed — splash screen deleted */
/* Keep the TonConnect modal above the splash overlay */
tc-root,#tc-widget-root{z-index:2147483647!important}

/* Ambient background built from the app icon (dark blue), blurred + veiled */
.vi-bg{position:absolute;inset:0;background:url('icon.webp') center/cover no-repeat;
  filter:saturate(1.25);opacity:.6;transform:scale(1.06)}
.vi-bg-veil{position:absolute;inset:0;
  background:radial-gradient(ellipse at 50% 38%, rgba(6,16,31,.35) 0%, rgba(6,16,31,.84) 68%, rgba(6,16,31,.96) 100%)}

/* Corner crop marks */
.vi-corner{position:absolute;width:26px;height:26px;border:1.5px solid rgba(120,180,255,.4);pointer-events:none;z-index:2}
.vi-corner.tl{top:28px;left:28px;border-right:none;border-bottom:none}
.vi-corner.tr{top:28px;right:28px;border-left:none;border-bottom:none}
.vi-corner.bl{bottom:28px;left:28px;border-right:none;border-top:none}
.vi-corner.br{bottom:28px;right:28px;border-left:none;border-top:none}

/* Full-bleed faint crosshair */
.vi-cross{position:absolute;inset:0;pointer-events:none;z-index:1}
.vi-cross::before{content:'';position:absolute;left:0;right:0;top:50%;height:1px;background:rgba(140,190,255,.08)}
.vi-cross::after{content:'';position:absolute;top:0;bottom:0;left:50%;width:1px;background:rgba(140,190,255,.08)}

/* Technical credits panel, top-right — powered by Acton */
.vi-meta{position:absolute;top:40px;right:50px;text-align:left;z-index:3;
  font-family:ui-monospace,'SF Mono',Menlo,monospace;line-height:1.4;letter-spacing:.3px}
.vi-meta-grp{margin-bottom:15px}
.vi-meta-grp span{display:block;font-size:11px;letter-spacing:1.6px;color:#6f9ac9;text-transform:uppercase}
.vi-meta-grp span::before{content:'▮';color:#4DB8FF;margin-right:6px;font-size:9px;vertical-align:1px}
.vi-meta-grp b{display:block;color:#eaf3ff;font-weight:700;font-size:15px;letter-spacing:.2px;margin-left:15px}
.vi-meta-note{margin-left:15px;font-size:11px;color:#6f9ac9;letter-spacing:.2px}
.vi-meta-note a{color:#5cc6ff;text-decoration:none;border-bottom:1px solid rgba(92,198,255,.35)}

/* Glitch TON-logo stage with faint guide ring */
.vi-stage{position:relative;display:flex;align-items:center;justify-content:center;z-index:2;
  width:min(42vmin,330px);height:min(42vmin,330px)}
.vi-stage::before{content:'';position:absolute;inset:-10%;border:1px solid rgba(120,180,255,.18);border-radius:50%}
#viSphere{width:100%;height:100%;display:block}

/* Editorial copy below */
.vi-title{margin-top:26px;font-family:Georgia,'Times New Roman',serif;z-index:2;
  font-weight:500;font-size:clamp(48px,9vw,86px);letter-spacing:-.01em;line-height:1;color:#f3f8ff;
  text-shadow:0 6px 50px rgba(0,150,255,.45)}
.vi-sub{margin-top:14px;max-width:410px;font-size:14px;line-height:1.65;color:#9fc1e4;text-align:center;z-index:2}

/* Bracketed, working Connect button */
.vi-connect{margin-top:30px;background:none;border:none;cursor:pointer;z-index:2;
  font-family:ui-monospace,'SF Mono',Menlo,monospace;font-size:14px;font-weight:600;
  letter-spacing:2px;text-transform:uppercase;color:#5cc6ff;
  padding:12px 10px;position:relative;transition:color .2s var(--ease-out),letter-spacing .25s var(--ease-out)}
.vi-connect::before{content:'[';margin-right:16px;color:#5e87b3;transition:margin .25s var(--ease-spring),color .2s}
.vi-connect::after{content:']';margin-left:16px;color:#5e87b3;transition:margin .25s var(--ease-spring),color .2s}
.vi-connect:hover{color:#fff;letter-spacing:2.5px}
.vi-connect:hover::before{margin-right:22px;color:#5cc6ff}
.vi-connect:hover::after{margin-left:22px;color:#5cc6ff}
.vi-connect:active{color:#5cc6ff}

.vi-skip{margin-top:4px;background:none;border:none;cursor:pointer;z-index:2;
  font-size:12px;color:#6f8fb3;letter-spacing:.3px;transition:color .2s}
.vi-skip:hover{color:#9fc1e4}

/* Entrance: quiet editorial fade-up */
.vi-meta,.vi-title,.vi-sub,.vi-connect,.vi-skip{animation:viUp .7s var(--ease-out) both}
.vi-stage{animation:viStageIn .9s var(--ease-out) both}
.vi-title{animation-delay:.2s}.vi-sub{animation-delay:.3s}
.vi-connect{animation-delay:.4s}.vi-skip{animation-delay:.48s}.vi-meta{animation-delay:.55s}
@keyframes viUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes viStageIn{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}

@media (max-width:600px){
  /* Keep the tech labels up top — compact row of three pairs */
  .vi-meta{top:16px;left:0;right:0;bottom:auto;transform:none;
    display:flex;justify-content:center;align-items:flex-start;gap:16px;flex-wrap:wrap;padding:0 46px}
  .vi-meta-grp{margin-bottom:0;text-align:center}
  .vi-meta-grp span{font-size:8.5px;letter-spacing:.8px}
  .vi-meta-grp span::before{display:none}
  .vi-meta-grp b{margin-left:0;font-size:12px}
  .vi-meta-note{display:none}
  .vi-corner{width:18px;height:18px}
}
@media (prefers-reduced-motion:reduce){
  .vi-meta,.vi-title,.vi-sub,.vi-connect,.vi-skip,.vi-stage{animation:none;opacity:1;transform:none}
}

/* ════════════════════════════════════════════════════════════════════════════
   MOBILE RESPONSIVE — 700px and below
   ════════════════════════════════════════════════════════════════════════════ */
@media(max-width:700px){

  /* ── Overflow prevention ── */
  /* html/body/page-wrap block page-level horizontal scroll */
  html,body,.page-wrap,.detail-view{overflow-x:hidden;max-width:100%}
  /* right-area and content must NOT have overflow-x:hidden — it would block child scroll containers */
  .right-area,.content{max-width:100%;min-width:0}
  html{-webkit-overflow-scrolling:touch}

  /* Profile tab row: horizontal touch scroll */
  .pv-tabs-row{
    overflow-x:auto!important;
    -webkit-overflow-scrolling:touch;
    scroll-behavior:smooth;
    overscroll-behavior-x:contain
  }

  /* ── Bottom nav: re-declare display after base rule at line ~4274 ── */
  .mobile-bottom-nav{display:flex!important}

  /* ── Topbar ── */
  :root{--tb-h:52px}
  .topbar{
    height:calc(52px + env(safe-area-inset-top,0px));
    padding:env(safe-area-inset-top,0px) 10px 0;
    gap:8px;
    box-sizing:border-box;
  }
  .search-bar{height:40px;padding:0 12px;gap:6px;border-radius:20px}
  .search-bar .s-ph{font-size:12px}
  .search-bar kbd{display:none}
  .btn-topbar-back{height:34px;padding:0 10px;font-size:12px;gap:4px;flex-shrink:0}
  .btn-signin{height:40px;padding:0 14px;font-size:13px;flex-shrink:0}
  .topbar-right{gap:6px}
  .topbar-launch-row{gap:8px}
  .btn-top-create{padding:0;width:40px;height:40px;min-width:40px}
  .btn-top-create .ct-lbl{display:none}

  /* Remove duplicate nav items from topbar — they live in bottom nav */
  .btn-pnl{display:none!important}

  /* Top-right → keep just the avatar; balance lives in the profile on mobile */
  .wallet-bal-chip{display:none}
  .wallet-bal-dropdown{width:min(340px,calc(100vw - 16px))}

  /* ── Coin grid ── */
  .coin-grid{gap:10px}
  .c-body{padding:10px 11px 11px}
  .c-name{font-size:13px}
  .c-mc{font-size:14px}

  /* ── Home / main content padding ── */
  .content{padding:14px 12px 20px}
  .page-title{font-size:18px}

  /* ── Topbar when Back is shown (detail page) ── */
  .btn-topbar-back~.search-bar{min-width:0;flex-shrink:1}

  /* ── Detail view ── */
  .detail-view{padding:0}
  .dv-header{
    display:flex;flex-wrap:wrap;
    align-items:center;justify-content:space-between;
    gap:10px 12px;
    padding:12px;margin:8px 12px 8px;
    border-radius:20px
  }
  .dv-hleft{display:flex;align-items:center;gap:10px;min-width:0;flex:1 1 auto}
  .dv-img{width:56px;height:56px;border-radius:12px;font-size:28px}
  .dv-hinfo{display:flex;align-items:center;gap:12px;min-width:0;flex:1 1 auto}
  .dv-hname{font-size:18px}
  .dv-htick{font-size:12px}
  .dv-mc{align-items:flex-start;padding:0;gap:1px}
  .dv-mc-lbl{font-size:10px;letter-spacing:.01em}
  .dv-mc-val{font-size:28px;letter-spacing:-.7px}
  .dv-actions{flex:1 1 100%;width:100%;gap:6px}
  .dv-btn{flex:1 1 0;min-width:0;min-height:40px;height:40px;padding:0 10px;font-size:12px;gap:5px}

  /* Reorder detail sections on mobile — display:contents flattens both columns into one flex list */
  .dv-grid{display:flex;flex-direction:column;gap:12px;padding:0 12px 20px;overflow-x:hidden;max-width:100%}
  .dv-left,.dv-right{display:contents}
  /* 1-header(outside grid) 2-vol/holders 3-buy/sell 4-chart 5-top holders 6-pool/curve 7-about 8-trades */
  .stats-row{order:1}
  .bs-card{order:2}
  .dv-chart-wrap{order:4}
  .tv-partner-banner{order:5}
  .th-card{order:6}
  .bond-card{order:7}
  .desc-card{order:8}
  .trades-wrap{order:9}
  .bm2-toolbar{display:none}
  .bm2-zoom-controls{bottom:12px;left:12px;padding:4px}
  /* All sections must fill the full column width */
  .stats-row,.bs-card,.dv-chart-wrap,.tv-partner-banner,.bond-card,.th-card,.desc-card,.trades-wrap{
    width:100%;box-sizing:border-box;min-width:0;max-width:100%}

  /* ── Chart ── */
  .dv-chart-el{height:300px}
  .dv-chart-ctrl{top:7px;left:7px;gap:4px}
  .dv-tf-btn{font-size:10px;padding:3px 8px}
  .dv-tf-menu{width:120px}
  .dv-tf-opt{font-size:11px;padding:5px 3px}
  .dv-fs-btn{width:26px;height:24px;border-radius:6px}
  /* Area chart floating tooltip — compact on mobile */
  .dv-area-tip{padding:7px 10px;border-radius:8px}
  .dv-at-price{font-size:13px}
  .dv-at-time{font-size:10px}
  /* Event dots — slightly larger touch target */
  .dv-ev-dot{width:28px;height:28px}
  /* TG marker pulse on hover (touch feedback) */
  .dv-ev-tg:active{border-color:#29b6f6;box-shadow:0 0 0 4px rgba(41,182,246,.3)}
  .dv-ev-x:active{border-color:#FF8A3D;box-shadow:0 0 0 4px rgba(255,138,61,.3)}
  .dv-ev-grad:active{border-color:#8B5CF6;box-shadow:0 0 0 4px rgba(139,92,246,.3)}
  .dv-ev-wallet.dv-ev-buy:active{border-color:#3DDB8A;box-shadow:0 0 0 4px rgba(61,219,138,.28)}
  .dv-ev-wallet.dv-ev-sell:active{border-color:#FF5C6A;box-shadow:0 0 0 4px rgba(255,92,106,.28)}

  /* ── Stat strip → 2×2 mini-panels on mobile ── */
  .lc-stat{
    display:grid;grid-template-columns:1fr 1fr;gap:8px;
    background:transparent;border:none;box-shadow:none;overflow:visible
  }
  .lc-stat-cell{flex:unset!important;padding:14px 16px;min-width:0;overflow:hidden}
  .lc-stat-ath{flex:unset!important}
  .lc-stat-div{display:none}
  .lc-stat-lbl{font-size:10px;overflow:hidden;text-overflow:ellipsis;max-width:100%;margin-bottom:2px}
  .lc-stat-val{font-size:18px;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .lc-ath-bar{height:5px}
  .lc-ath-pct{font-size:13px}
  .lc-ath-top{flex-wrap:nowrap;overflow:hidden;margin-bottom:6px;justify-content:space-between}

  /* ── Stats cards ── */
  .stats-row{gap:8px}
  .stat-card{padding:12px 14px}
  .stat-val{font-size:18px}

  /* ── Trades table ── */
  .trades-wrap{border-radius:10px;overflow:hidden;max-width:100%}
  .table-scroll{max-width:100%;overflow-x:auto}
  .trades-hdr{padding:10px 12px;flex-wrap:wrap;row-gap:8px}
  /* Filter buttons wrap below Trades/Holders tabs on narrow screens */
  .trades-filter{width:100%;order:2}
  .dv-vtabs{order:1}
  .trades-table{font-size:11px}
  .trades-table th,.trades-table td{padding:7px 8px}
  .tr-acc-cell{gap:5px}
  .tr-av{width:22px;height:22px}
  /* Holders table mobile */
  .dv-ht-table th,.dv-ht-table td{padding:9px 10px}
  .dv-ht-av-wrap{width:24px;height:24px}
  .dv-ht-av-wrap::after{line-height:24px;font-size:10px}
  .dv-ht-av{width:24px;height:24px}
  .dv-ht-th-full{display:none}
  .dv-ht-th-short{display:inline}
  .trades-table th:nth-child(3),.trades-table td:nth-child(3){min-width:72px}
  /* Token amount and Time also dropped on mobile (Txn is already hidden for
     everyone above) — Account/Type/GRAM is enough at a glance, the rest is
     one tap away in the trader modal. This is what actually kills the
     horizontal scroll on narrow screens. */
  .trades-table th:nth-child(4),.trades-table td:nth-child(4){display:none}
  .trades-table th:nth-child(5),.trades-table td:nth-child(5){display:none}

  /* ── Buy/Sell card ── */
  .bs-card{border-radius:10px}
  .bs-tab{height:40px;font-size:13px}
  .bs-inp{font-size:20px}
  .btn-trade-main{height:54px;font-size:16px;border-radius:14px}
  .bs-presets{gap:6px}
  .bs-preset-btn{height:34px;padding:0 10px;font-size:12px}

  /* Move YOU RECEIVE directly below the input so it stays visible when the keyboard is open */
  .bs-body .bs-amount-card{order:1}
  .bs-body .bs-recv{order:2;margin-top:6px;padding:9px 12px}
  .bs-body .bs-presets{order:3}
  .bs-body .bs-bal-row{order:4}
  .bs-body .bs-min-recv{order:5}
  .bs-body .bs-slip-warn{order:5}
  .bs-body .bs-impact-warn{order:5}
  .bs-body .btn-trade-main{order:6}
  .bs-body .bs-trade-settings-btn{order:7}
  /* Approx row carries the receive estimate on mobile — make it slightly more prominent */
  .bs-approx{font-size:12px;color:var(--t2);font-weight:600}

  /* ── Bond / Creator / Holders cards ── */
  .bond-card,.cr-card,.th-card,.desc-card{border-radius:10px;padding:14px}

  /* ── Profile view ── */
  .profile-view{padding:0 12px 12px}
  .pv-header{flex-direction:column;align-items:center;padding:20px 16px 16px;gap:12px;text-align:center}
  .pv-avatar{width:64px;height:64px;font-size:30px}
  .pv-hinfo{width:100%}
  .pv-name-row{justify-content:center;flex-wrap:wrap;gap:8px}
  .pv-addr-row{justify-content:center;flex-wrap:wrap;gap:8px}
  .pv-addr-chip{font-size:12px}
  .pv-explorer-btn{width:36px;padding:0;border-radius:11px}
  .pv-explorer-lbl{display:none}
  .pv-tg-btn{width:100%;justify-content:center}
  .pv-stats{justify-content:center;gap:20px}

  /* ── TG Tracker / Wallet Tracker views ── */
  .tgt-view,.wt-view{padding:12px 12px 20px}
  .tgt-hero{padding:16px}
  .tgt-hero-title{font-size:20px}
  .alt-hero{padding:16px}

  /* ── Wallet profile: 2×2 card grid (pump.fun style) ── */
  .wlt-prof-stats{
    display:grid;grid-template-columns:1fr 1fr;
    gap:10px;padding:14px 14px 6px;
    border-bottom:none;background:transparent
  }
  .wlt-prof-stat{
    border-right:none;
    background:rgba(255,255,255,.92);
    border:1.5px solid rgba(0,152,234,.1);
    border-radius:14px;
    padding:14px 16px;gap:5px;
    box-shadow:0 2px 10px rgba(10,37,64,.05)
  }
  .wlt-prof-stat-lbl{font-size:10px;letter-spacing:.04em;white-space:nowrap}
  .wlt-prof-stat-val{font-size:18px;white-space:normal;overflow:visible;text-overflow:clip}
  .wlt-prof-stat-sub{font-size:11px}
  /* Dark mode stat cards */
  [data-theme="dark"] .wlt-prof-stat{background:rgba(15,30,55,.9);border-color:rgba(255,255,255,0.08)}

  /* ── Wallet profile: iOS segmented-control tab bar ── */
  .wlt-prof-tabs{
    margin:8px 12px 4px;padding:4px;gap:2px;
    border-bottom:none;border-radius:14px;
    background:rgba(0,152,234,.1);
    flex-wrap:nowrap;flex-shrink:0
  }
  .wlt-prof-tab{
    flex:1;min-width:0;
    border-radius:10px;padding:8px 2px;
    border:none;border-bottom:none;
    font-size:10.5px;font-weight:700;
    background:transparent;color:var(--t2);
    text-align:center;white-space:nowrap;
    overflow:hidden;text-overflow:ellipsis
  }
  .wlt-prof-tab:hover{color:var(--blue)}
  .wlt-prof-tab.active{
    background:#fff;color:var(--blue);
    border-bottom-color:transparent;
    box-shadow:0 1px 6px rgba(10,37,64,.1)
  }
  [data-theme="dark"] .wlt-prof-tabs{background:var(--bg)}
  [data-theme="dark"] .wlt-prof-tab.active{background:var(--bg2);color:var(--blue)}

  /* ── Recent Activity feed rows: allow sub-line to wrap ── */
  .wlt-hist-ev-sub{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.5}
  .wlt-hist-ev-detail{white-space:normal;line-height:1.4}
  .wlt-ev-feed-row{padding:9px 12px;gap:8px}

  /* ── Holdings table: drop MC col, tighter padding ── */
  .wlt-hold-header{grid-template-columns:1fr 80px;padding:8px 14px 6px}
  .wlt-hold-row{grid-template-columns:1fr 80px;padding:10px 14px}
  .wlt-hold-mc{display:none}
  .wlt-hold-header span:nth-child(2){display:none}
  .wlt-hist-feed{padding:10px 12px 20px}

  /* ── Wallet profile top bar — handled in mobile adaptations block below ── */

  /* ── Modals → bottom sheet ── */
  .modal-overlay{padding:0;align-items:flex-end}
  .modal{
    border-radius:20px 20px 0 0;
    max-height:92dvh;max-height:92vh;
    animation:mInSheet .28s cubic-bezier(.32,0,.67,0) both
  }
  @keyframes mInSheet{from{transform:translateY(100%)}to{transform:none}}
  .modal-close{top:14px;right:14px}
  #createModal .modal{max-width:100%;border-radius:20px 20px 0 0}
  /* One scroll surface for Create — kill nested form/modal/page chaining.
     Preview moves to a compact strip at the top so it no longer peeks awkwardly
     under the form at the bottom of the sheet. */
  #createModal.modal-overlay{
    overscroll-behavior:none;
  }
  #createModal .modal{
    display:flex;flex-direction:column;
    max-height:min(92dvh,100%);
    overflow:hidden;
    overscroll-behavior:contain;
  }
  #createModal .cm-inner{
    flex:1;min-height:0;
    display:flex;flex-direction:column;
    overflow-y:auto;
    overflow-x:hidden;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
  }
  #createModal .cm-form{
    max-height:none!important;
    overflow:visible!important;
    border-right:none;
    padding:18px 16px 28px;
  }
  #createModal .cm-prv{
    order:-1;
    width:auto;
    flex-shrink:0;
    flex-direction:row;
    flex-wrap:wrap;
    align-items:stretch;
    gap:10px;
    padding:16px 16px 14px;
    border-top:none;
    border-bottom:1px solid rgba(0,152,234,.1);
    border-radius:0;
    background:var(--bg3);
  }
  #createModal .cm-prv-glow{display:none!important}
  #createModal .prv-lbl{
    width:100%;
    margin:0;
    font-size:9.5px;
    letter-spacing:.12em;
  }
  #createModal .prv-card{
    display:flex;flex-direction:row;align-items:stretch;
    flex:1;min-width:0;
    border-radius:14px;
  }
  #createModal .prv-img{
    width:76px;min-width:76px;aspect-ratio:1;height:auto;
    font-size:30px;flex-shrink:0;
  }
  #createModal .prv-body{
    flex:1;min-width:0;
    padding:10px 12px;
    display:flex;flex-direction:column;justify-content:center;
  }
  #createModal .prv-name{font-size:14px;margin-bottom:2px}
  #createModal .prv-tick{font-size:11.5px;margin-bottom:4px}
  #createModal .prv-desc{-webkit-line-clamp:2}
  #createModal .prv-immutable{display:none}
  #createModal .cm-foot{
    padding-bottom:max(18px,env(safe-area-inset-bottom,0px));
  }

  /* ── Search modal: stays at TOP (not bottom sheet) ── */
  #searchModal.modal-overlay{padding:0;align-items:flex-start}
  #searchModal .modal{border-radius:0 0 16px 16px;max-height:80dvh;max-height:80vh;animation:mIn .2s ease both}
  .search-modal-wrap{border-radius:0 0 16px 16px}

  /* Touch-friendly list items */
  .th-row,.holder-row{padding:10px 12px;min-height:44px}
  .tgt-post{padding:10px 12px}
  .wd-item{min-height:46px}

  /* Wallet dropdown: cap width on small screens */
  .wallet-dropdown{min-width:190px;max-width:min(220px,calc(100vw - 16px))}

  /* Toast notifications: keep below topbar */
  #toastContainer{top:60px}

  /* ── All lists / full table views ── */
  .allListsView,.all-lists-view{padding:0 12px}

  /* ── PNL hero stats: 2×2 tiles ── */
  .pnl-view{padding:16px 14px 40px}
  .pnl-stats-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .pnl-stat{padding:12px}
  .pnl-stat-val{font-size:15px}
  .pnl-stat-lbl{font-size:10px}
  .pnl-sparkline{height:112px}
  .pnl-coin-mini-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pnl-coin-ms-item{padding:10px 6px;border-right:none;border-bottom:1px solid var(--b1)}
  .pnl-coin-ms-item:nth-child(odd){border-right:1px solid var(--b1)}
  .pnl-coin-ms-item:nth-last-child(-n+2){border-bottom:none}
  .pnl-coin-ms-val{font-size:12px;gap:2px}
  .pnl-coin-ms-lbl{font-size:9px}
  .pnl-ton-coin{width:14px;height:14px}
  .pnl-below{padding:18px 0 0}
  .pnl-page-head{flex-wrap:wrap}

  /* ── Trades / Chat: avatar only — hide address text, EXCEPT when the row
     carries no badge at all (no Dev/Tracked pill) — otherwise that row is
     just a bare avatar with a wide empty gap next to it. */
  .tr-addr{display:none}
  .tr-acc-cell:not(.tr-acc-dev):not(.tr-acc-tracked) .tr-addr{display:inline}
  /* ── Holders: hide wallet address/name to make room for badges ── */
  .dv-ht-name{display:none}
  /* ── Tab buttons: compact — 6 tabs scroll horizontally on narrow screens ── */
  .dv-vtab{padding:6px 11px;font-size:11px}
  /* ── Profile Created tab: hide creator badge row + bonding progress bar ── */
  .cr-hdr{display:none}
  .cr-prog-outer{display:none}
  /* ── Wallet card: let badges wrap so they don't overlap the balance ── */
  /* ── Chat: wrap message text; Message header stays visible (TXN hide is trades-only) ── */
  #dvChatTabBody .trades-table th:last-child,
  #dvChatTabBody .chat-msg-cell{display:table-cell;white-space:normal;word-break:break-word;overflow-wrap:anywhere}
  #dvChatTabBody .chat-msg-text{white-space:normal;word-break:break-word}
  /* ── Profile Created tab: 1-column coin grid on mobile ── */
  .cr-grid{grid-template-columns:1fr}
  /* ── Profile Created tab: sticky TOKEN column in list/table view ── */
  .cr-tbl-outer{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .cr-tbl{min-width:480px}
  .cr-tbl thead .cr-th:first-child,
  .cr-tbl tbody .cr-td:first-child{
    position:sticky;left:0;z-index:2;
    background:rgba(228,239,255,.97);
    border-right:1px solid rgba(0,152,234,.15);
  }
  [data-theme="dark"] .cr-tbl thead .cr-th:first-child,
  [data-theme="dark"] .cr-tbl tbody .cr-td:first-child{background:#0d1f35}
}

/* ════════════════════════════════════════════════════════════════════════════
   MOBILE — 480px and below (small phones, 320px iPhones, TMA)
   ════════════════════════════════════════════════════════════════════════════ */
@media(max-width:480px){
  :root{--r:10px;--r2:7px}

  /* Typography scale down */
  .dv-hname{font-size:16px}
  .dv-mc-val{font-size:26px}
  .stat-val{font-size:16px}
  .lc-stat-val{font-size:14px}
  .c-name{font-size:12px}
  .c-mc{font-size:13px}
  .bs-inp{font-size:18px}

  /* Topbar: hide PNL label on tiny screens */
  .btn-pnl{padding:0 8px}
  .topbar{gap:5px;padding:0 8px}
  .search-bar{padding:0 8px}
  .topbar-launch-row{gap:6px;min-width:0}
  .btn-top-create{width:40px;height:40px;min-width:40px;padding:0}

  /* Stats 1 column below stat strip */
  .lc-stat-cell{flex:1 1 50%}

  /* Coin grid: always 2 columns at 480px, 1 col at 360px */
  .coin-grid{grid-template-columns:repeat(2,1fr);gap:8px}

  /* Trades: hide TXN column on tiny screens (not Chat — Message stays visible) */
  #dvTradesTableWrap .trades-table th:last-child,
  #dvTradesTableWrap .trades-table td:last-child{display:none}
  #dvChatTabBody .trades-table th:last-child,
  #dvChatTabBody .trades-table td.chat-msg-cell{display:table-cell}

  /* Bottom nav labels: slightly smaller */
  .mbn-lbl{font-size:9.5px}

  /* Modals: tighter padding */
  .modal-overlay{padding:0}

  /* Add wallet modal: full-width buttons on small screens */
  .aw-footer{justify-content:stretch;gap:8px}
  .btn-ep-cancel,.btn-aw-add{flex:1;text-align:center;justify-content:center;font-size:14px;padding:11px 8px}

  /* Profile coins grid: 1 column on small screens */
  .pv-coins-grid{grid-template-columns:1fr;gap:8px}
}

@media(max-width:360px){
  .coin-grid{grid-template-columns:1fr}
  .lc-stat-cell{flex:1 1 100%}
  .dv-actions{gap:4px}
  .dv-btn{flex:1 1 calc(50% - 4px);font-size:11px;padding:0 9px;min-height:40px;height:40px}
  .pnl-big-num{font-size:40px;word-break:break-all}
  .pnl-ton-big{width:80px;height:80px}
}

/* ════════════════════════════════════════════════════════════════════════════
   DARK MODE — mobile overrides
   ════════════════════════════════════════════════════════════════════════════ */
/* Floating dark dock needs extra page clearance (gap + bar + FAB overhang) */
@media(max-width:700px){
  html:is([data-theme="dark"],[data-theme="voidtype"],[data-scheme="dark"]){
    --mnb-clearance:calc(78px + max(10px,env(safe-area-inset-bottom,0px)));
  }
}
[data-theme="dark"] .mobile-bottom-nav{
  left:10px;right:10px;
  bottom:max(10px,env(safe-area-inset-bottom,0px));
  width:auto;border-radius:22px;
  background:rgba(10,10,10,.92);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 12px 36px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.06);
  padding-bottom:4px
}
[data-theme="dark"] .mbn-item{color:#7A7A72}
[data-theme="dark"] .mbn-item.active{color:#F4F4EF}
[data-theme="dark"] .mbn-item.active .mbn-ico-wrap{
  background:rgba(255,255,255,.12);
  border-color:rgba(255,255,255,.22);
  box-shadow:0 0 0 1px rgba(255,255,255,.06)
}
[data-theme="dark"] .mbn-more-btn.active .mbn-ico-wrap,
[data-theme="dark"] .mbn-more-btn.tray-open .mbn-ico-wrap{
  background:rgba(255,255,255,.12);
  border-color:rgba(255,255,255,.22)
}
[data-theme="dark"] .mbn-create-ring{
  background:#E8E8E0;
  box-shadow:0 4px 18px rgba(0,0,0,.45),0 0 0 1px rgba(255,255,255,.12)
}
[data-theme="dark"] .mbn-create-ring::after{
  border-color:rgba(232,232,224,.35)
}
[data-theme="dark"] .mbn-create-btn:active .mbn-create-ring{
  box-shadow:0 2px 10px rgba(0,0,0,.4)
}
[data-theme="dark"] .mbn-tray-backdrop{background:rgba(0,0,0,.58)}
[data-theme="dark"] .mbn-tray{
  left:10px;right:10px;
  bottom:calc(74px + max(10px,env(safe-area-inset-bottom,0px)));
  border-radius:22px;
  background:rgba(12,12,12,.96);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 -16px 48px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.06);
  padding:8px 12px 16px
}
[data-theme="dark"] .mbn-tray-handle{background:rgba(244,244,239,.22)}
[data-theme="dark"] .mbn-tray-title{color:#F4F4EF}
[data-theme="dark"] .mbn-tray-sub{color:#7A7A72}
[data-theme="dark"] .mbn-tray-item{color:#A8A8A0}
[data-theme="dark"] .mbn-tray-item.active{color:#F4F4EF}
[data-theme="dark"] .mbn-tray-ico-wrap{
  background:rgba(255,255,255,.05);
  border-color:rgba(255,255,255,.08)
}
[data-theme="dark"] .mbn-tray-item:active{background:rgba(255,255,255,.06)}
[data-theme="dark"] .mbn-tray-item.active .mbn-tray-ico-wrap{
  background:rgba(255,255,255,.14);
  border-color:rgba(255,255,255,.24);
  box-shadow:0 4px 16px rgba(0,0,0,.35)
}

/* ══════════════════════════════════════════════════
   BUBBLE MAP
════════════════════════════════════════════════════ */
.bm-section{
  background:rgba(234,246,255,.94);border:1.5px solid rgba(0,152,234,.12);
  border-radius:var(--r);overflow:hidden;
  backdrop-filter:blur(12px);box-shadow:0 4px 20px rgba(10,37,64,.05);
  margin-top:16px
}
.bm-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 18px;cursor:pointer;user-select:none;
  border-bottom:1px solid rgba(0,152,234,.08);transition:background .15s
}
.bm-header:hover{background:rgba(0,152,234,.04)}
.bm-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;color:var(--t1)}
.bm-title-ico{font-size:16px}
.bm-beta-badge{
  font-size:9px;font-weight:800;padding:2px 6px;border-radius:4px;
  background:rgba(0,152,234,.12);color:var(--blue);border:1px solid rgba(0,152,234,.22);
  letter-spacing:.6px;text-transform:uppercase
}
.bm-expand-btn{
  width:28px;height:28px;border-radius:7px;border:none;background:transparent;
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  color:var(--t3);transition-property:background,color,transform;transition-duration:.2s}
.bm-expand-btn.open{transform:rotate(180deg)}
.bm-expand-btn:hover{background:rgba(0,152,234,.08);color:var(--blue)}

.bm-body{
  display:none;flex-direction:column;gap:0;
  animation:cardIn .25s ease
}
.bm-body.open{display:flex}

/* ── Standalone Bubble Map page ──────────────────────────────────────────── */
/* ── Bubble Map page — full dark instrument theme ──────────────────────── */
.bm-pg-view{
  /* flex:1 like every sibling view (.wlt-view/.tgt-view/.pnl-view). This used
     to be min-height:100%, which resolves against .right-area's height, so the
     column asked for topbar(58) + view(100%) and overflowed by exactly the
     topbar — WebKit then shrank it to min-content (45px). Chromium resolves the
     percentage as auto, which is why it only showed up in Safari. */
  display:none;flex-direction:column;flex:1;min-width:0;
  /* Critical layout: keep Dither bg out of document flow even if
     bubble-dither.css fails to load (same pattern as .dex-view / #dexFaultyBg). */
  position:relative;
  isolation:isolate;
  overflow-x:hidden;
}
.bm-pg-view.active{display:flex}
/* Dither host — absolute fill so canvas never pushes Bubble Map UI down */
.bm-dither-bg{
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  overflow:hidden;
  min-height:100%;
}
.bm-pg-view > *:not(.bm-dither-bg){
  position:relative;
  z-index:2;
}
.bm-pg-hero{
  background:linear-gradient(120deg,rgba(0,152,234,.12) 0%,rgba(0,152,234,.07) 100%);
  border:1.5px solid rgba(0,152,234,.15);border-radius:var(--r);
  padding:28px 32px;margin:20px 24px 0;
  box-shadow:0 4px 20px rgba(10,37,64,.05);
  display:flex;flex-direction:column;align-items:flex-start;gap:8px;flex-shrink:0
}
.bm-pg-title{
  font-size:26px;font-weight:900;color:var(--t1);letter-spacing:-.4px;
  display:flex;align-items:center;gap:8px
}
.bm-pg-sub{font-size:14px;color:var(--t2);margin-top:0}
.bm-pg-search{
  display:flex;gap:10px;padding:14px 20px;
  position:sticky;top:0;z-index:10;flex-shrink:0
}
.bm-pg-input{
  flex:1;padding:10px 14px;border-radius:10px;
  background:#fff;border:1.5px solid rgba(0,152,234,.22);
  color:var(--t1);font-size:13px;font-family:monospace;outline:none;
  transition:border-color .15s,box-shadow .15s
}
.bm-pg-input::placeholder{color:var(--t3)}
.bm-pg-input:focus{border-color:rgba(0,152,234,.6);box-shadow:0 0 0 3px rgba(0,152,234,.12)}
.bm-pg-input.bm-input-err{border-color:rgba(233,30,99,.6);animation:shake .3s ease}
@keyframes shake{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-5px)}40%,80%{transform:translateX(5px)}}
.bm-pg-load-btn{
  padding:10px 22px;border-radius:10px;flex-shrink:0;
  background:linear-gradient(90deg,var(--blue),var(--blue2));
  border:none;font-family:'Inter',sans-serif;font-size:13px;font-weight:700;
  color:#fff;cursor:pointer;white-space:nowrap;
  box-shadow:0 3px 12px rgba(0,152,234,.3);transition-property:box-shadow,transform;transition-duration:.15s}
.bm-pg-load-btn:hover{box-shadow:0 5px 18px rgba(0,152,234,.45);transform:translateY(-1px)}
/* Canvas on the standalone page fills all remaining height */
.bm-pg-view .bm-body{display:flex;flex-direction:column;flex:1;min-height:0}
.bm-pg-view .bm-canvas-wrap{flex:1;height:auto !important;min-height:420px !important}
.bm-placeholder{font-size:13px;color:var(--t3);text-align:center;padding:12px 24px}
/* Holders sidebar (right panel on desktop) */
.bm-pg-holders-sidebar{display:flex;flex-direction:column;background:#fff;border-top:1px solid rgba(0,152,234,.1);flex-shrink:0}
.bm-pg-hl-hdr{padding:14px 16px 10px;font-size:15px;font-weight:800;color:var(--t1);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(0,152,234,.10);flex-shrink:0}
.bm-pg-hl-hdr-count{font-size:12px;font-weight:700;color:var(--t3);background:rgba(0,152,234,.09);border-radius:10px;padding:2px 9px}
.bm-hl-cluster{font-size:10px;font-weight:800;flex-shrink:0;padding:2px 6px;border-radius:5px;background:rgba(0,0,0,.06);color:var(--cc);cursor:pointer;transition:background .12s,color .12s}
.bm-hl-cluster:hover,.bm-hl-cluster.active{background:var(--cc);color:#fff}
.bm-hl-item.bm-hl-hov{background:rgba(0,152,234,.07)}
[data-theme="dark"] .bm-hl-item.bm-hl-hov{background:rgba(255,255,255,0.06)}
@media(min-width:769px){
  .bm-pg-view .bm-body{flex-direction:row;align-items:stretch}
  /* Fixed-height window so a long holders list scrolls INSIDE the sidebar
     instead of stretching the whole page. Canvas (flex:1) and sidebar both
     inherit this bounded height; the holders list is the only part that
     grows past it, and it has overflow-y:auto (below). */
  .bm-pg-view .bm-body:not(.fullscreen){max-height:min(78vh,760px)}
  /* .bm-pg-view .bm-body itself is already the one shared frame (border +
     radius + shadow + overflow:hidden, further down this file) — giving the
     sidebar its OWN separate margin/border/shadow on top of that produced a
     "card inside a card" look, with a mismatched gap around the sidebar's
     top/right/bottom that the flush-to-the-frame canvas never had. Sidebar
     now sits flush in that same frame; a divider comes from the canvas's own
     border-right so it spans the full frame height regardless of how tall
     the holders list itself ends up.
     Height: stretched to match the canvas again — a content-sized card was
     the right call while it was its own separately-bordered box (dangling
     an odd height next to a taller box), but inside one continuous frame a
     short card just left a bare unstyled gap below it. Letting the holders
     list (not the header/summary) flex to fill the remaining height means
     any leftover space just reads as room in the same panel, not a seam.
     Widened 320→360px so addresses/badges/percentages read with less
     truncation and more room per the "make it stand out" ask. */
  .bm-pg-holders-sidebar{
    flex:0 0 360px;width:360px;
    margin:0;border:none;border-radius:0;box-shadow:none;
    background:rgba(255,255,255,.97);
    backdrop-filter:blur(14px);
    max-height:none
  }
  .bm-pg-view .bm-canvas-wrap{border-right:1.5px solid rgba(0,152,234,.12)}
  /* display:block is deliberate: the list is a flex *item* (flex:1) of the
     sidebar, but must stay a normal block *container* so its rows keep their
     natural height and simply overflow-scroll. Without this, Safari can treat
     the bounded list as a flex/So context and vertically compress the top
     rows (clusters) into thin lines. */
  .bm-pg-view .bm-holders-list{display:block;flex:1 1 auto;min-height:0;max-height:none !important;border-top:none;overflow-y:auto;background:transparent}
  #bmHlConc{flex-shrink:0}
}
[data-theme="dark"] .bm-pg-holders-sidebar{background:rgba(3,6,12,.82)}
[data-theme="dark"] .bm-pg-view .bm-canvas-wrap{border-right-color:rgba(255,255,255,.08)}

.bm-canvas-wrap{
  flex:none;position:relative;width:100%;height:400px;min-height:400px;overflow:hidden;
  background:#edf4ff;
  box-shadow:inset 0 1px 0 rgba(0,152,234,.1)
}
#bmCanvas{display:block;width:100%;height:100%;cursor:grab}
#bmCanvas:active{cursor:grabbing}

.bm-overlay-loading{
  position:absolute;inset:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:12px;
  background:rgba(237,244,255,.88);backdrop-filter:blur(4px);
  pointer-events:none;transition:opacity .3s;z-index:9
}
.bm-overlay-loading.hidden{opacity:0;pointer-events:none}
.bm-loading-txt{font-size:13px;color:var(--t2);font-weight:600}

/* Zoom control toolbar (bottom-left) */
.bm-zoom-controls{
  position:absolute;bottom:44px;left:12px;z-index:8;
  display:flex;flex-direction:column;gap:3px
}
.bm-zoom-btn{
  width:32px;height:32px;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.9);backdrop-filter:blur(8px);
  border:1px solid rgba(0,152,234,.25);border-radius:8px;
  color:rgba(0,80,160,.75);font-size:16px;font-weight:700;line-height:1;
  cursor:pointer;transition:background .15s,color .15s;padding:0
}
.bm-zoom-btn:hover{background:rgba(0,152,234,.12);color:#0098ea;border-color:rgba(0,152,234,.55)}

/* Floating hover tooltip */
.bm-tooltip{
  position:absolute;pointer-events:none;z-index:20;
  background:rgba(255,255,255,.96);backdrop-filter:blur(10px);
  border:1px solid rgba(0,152,234,.22);border-radius:9px;
  padding:6px 11px;display:flex;align-items:center;gap:7px;
  white-space:nowrap;transition:opacity .1s;box-shadow:0 4px 20px rgba(0,0,0,.1)
}
.bm-tooltip.hidden{display:none}
.bm-tip-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.bm-tip-addr{font-size:11.5px;color:var(--t1);font-family:monospace}
.bm-tip-pct{font-size:12px;font-weight:800;color:#0098ea;margin-left:2px}

/* Fullscreen expand button (top-right corner of canvas, desktop only) */
.bm-fs-btn{
  display:none;position:absolute;top:9px;right:9px;z-index:8;
  background:rgba(255,255,255,.85);backdrop-filter:blur(6px);
  border:1px solid rgba(0,152,234,.28);border-radius:7px;
  color:rgba(0,120,220,.9);font-size:15px;line-height:1;
  cursor:pointer;padding:5px 9px;transition:background .15s,color .15s
}
.bm-fs-btn:hover{background:rgba(0,152,234,.1);color:#0098ea}
@media(min-width:769px){.bm-fs-btn{display:block}}

/* Fullscreen mode */
.bm-body.fullscreen{
  position:fixed;inset:0;z-index:9000;
  background:rgba(3,6,14,.98);border-radius:0;
  display:flex;flex-direction:column
}
.bm-body.fullscreen .bm-canvas-wrap{
  flex:1;height:auto !important;min-height:0 !important
}
.bm-body.fullscreen .bm-holders-list{max-height:25vh}
.bm-body.fullscreen .bm-fs-btn{top:14px;right:14px;font-size:17px}
/* Sidebar resets in fullscreen: strip card styling, sit below canvas */
.bm-body.fullscreen .bm-pg-holders-sidebar{
  flex:0 0 auto;width:100%;
  margin:0;border-radius:0;border:none;box-shadow:none;backdrop-filter:none;
  border-top:1px solid rgba(255,255,255,0.08);background:rgba(3,6,14,.98)
}

/* Node info sheet (slides up from bottom of canvas) */
.bm-node-sheet{
  position:absolute;bottom:0;left:0;right:0;
  background:rgba(6,12,28,.96);backdrop-filter:blur(16px);
  border-top:1.5px solid var(--nc, rgba(0,152,234,.3));
  box-shadow:0 -8px 32px rgba(0,0,0,.4),0 -1px 0 var(--nc, rgba(0,152,234,.15));
  padding:13px 16px 16px;display:flex;flex-direction:column;gap:6px;
  z-index:12;animation:cardIn .18s ease
}
.bm-node-sheet.hidden{display:none}
.bm-ns-close{
  position:absolute;top:8px;right:8px;background:none;border:none;
  cursor:pointer;color:rgba(255,255,255,.38);font-size:15px;
  padding:3px 7px;line-height:1
}
.bm-ns-close:hover{color:rgba(255,255,255,.75)}
.bm-ns-addr{
  font-size:11.5px;font-weight:600;color:rgba(255,255,255,.88);
  font-family:monospace;word-break:break-all;padding-right:28px;
  display:flex;align-items:center;gap:6px;flex-wrap:wrap
}
.bm-ns-copy{
  background:none;border:1px solid rgba(0,152,234,.35);border-radius:4px;
  cursor:pointer;color:rgba(0,152,234,.9);font-size:10px;
  padding:2px 6px;flex-shrink:0;white-space:nowrap
}
.bm-ns-copy:hover{background:rgba(0,152,234,.12)}
.bm-ns-meta{font-size:12px;color:rgba(0,152,234,1);font-weight:700}
.bm-ns-cluster-lbl{font-size:10px;color:rgba(255,255,255,.36);font-weight:500;margin-left:8px}
.bm-ns-explorer{
  display:inline-flex;align-items:center;gap:4px;
  font-size:11.5px;color:rgba(0,152,234,.9);text-decoration:none;
  border:1px solid rgba(0,152,234,.3);border-radius:6px;
  padding:5px 11px;margin-top:3px;width:fit-content;
  transition:background .15s
}
.bm-ns-explorer:hover{background:rgba(0,152,234,.12)}

/* Holders list panel — identical row language to the coin detail page's Top
   Holders card (.th-row: rank pill, stacked name+badges, gradient bar,
   colored %). Clusters are the one thing with no .th-row equivalent (the
   plain holders list has no concept of "wallets that move together"), so
   only cluster/member rows additionally get a color dot tying them to
   their cluster's color on the canvas — everything else matches exactly. */
.bm-holders-list{
  max-height:220px;overflow-y:auto;padding:4px 0;
  background:#fff;
  border-top:1px solid rgba(0,152,234,.1)
}
.bm-hl-item{
  display:flex;align-items:center;gap:10px;
  padding:12px 18px;cursor:pointer;transition:background .15s;
  flex-shrink:0
}
/* Rows must never shrink vertically inside the bounded, scrollable list —
   they overflow-scroll at full height instead of collapsing to thin lines. */
.bm-hl-group,.bm-hl-member{flex-shrink:0}
.bm-hl-item:hover{background:rgba(0,152,234,.05)}
.bm-hl-item.sel{background:rgba(0,152,234,.1)}
.bm-hl-item+.bm-hl-item,.bm-hl-group+.bm-hl-item,.bm-hl-group+.bm-hl-group{border-top:1px solid rgba(0,152,234,.06)}
.bm-hl-dot{
  width:8px;height:8px;border-radius:50%;flex-shrink:0
}
.bm-hl-rank{font-size:12px;font-weight:700;color:var(--t3);min-width:18px;text-align:center;flex-shrink:0}
/* Same convention as the coin detail page: pool's rank number reuses the
   amm amber rather than its own green (.th-rank-amm covers both there),
   mirrored exactly rather than "corrected" for literal cross-page parity. */
.bm-hl-rank-curve{color:#f59e0b;font-weight:900}
.bm-hl-rank-pool{color:#f59e0b}
.bm-hl-rank-burn{color:#9ca3af}
.bm-hl-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.bm-hl-addr{
  font-size:13px;font-weight:600;color:var(--t1);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.bm-hl-badges{display:flex;align-items:center;flex-wrap:wrap;gap:4px;margin-top:2px}
.bm-hl-bar-wrap{flex:0 0 48px;height:5px;background:rgba(0,152,234,.12);border-radius:3px;overflow:hidden}
.bm-hl-bar{height:100%;border-radius:3px;transition:width .5s ease}
.bm-hl-pct{font-size:12px;font-weight:700;color:var(--blue);min-width:42px;text-align:right;flex-shrink:0;font-variant-numeric:tabular-nums}

/* ── Holders: curve/pool/burn tints, clusters-as-one-holder, expandable members ── */
/* Bonding curve — identical treatment to .th-row-curve on the coin detail
   page: amber accent rail + gradient bar/pct, not just a flat tint. */
.bm-hl-row-curve{position:relative;background:linear-gradient(90deg,rgba(245,158,11,.12),transparent 72%)!important}
.bm-hl-row-curve::before{content:'';position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;
  background:linear-gradient(180deg,#FFB300,#fb923c);box-shadow:0 0 8px rgba(245,158,11,.5)}
.bm-hl-row-curve .bm-hl-bar{background:linear-gradient(90deg,#FFB300,#fb923c)!important;box-shadow:0 0 6px rgba(245,158,11,.5)}
.bm-hl-row-curve .bm-hl-pct{color:#c98a00}
.bm-hl-row-pool{background:rgba(61,214,140,.05)}
.bm-hl-row-pool:hover{background:rgba(61,214,140,.1)!important}
.bm-hl-row-burn{background:rgba(107,114,128,.05)}
.bm-hl-row-burn:hover{background:rgba(107,114,128,.1)!important}
.bm-hl-group{border-left:3px solid var(--cc,#0EA5E9)}
.bm-hl-cluster-row .bm-hl-addr{font-weight:800;color:var(--t1);font-size:13.5px}
/* Same visual family as badge-pill (small uppercase, tinted bg, colored
   border) instead of a solid filled chip — tinted dynamically per cluster
   via the --cc custom property already set on .bm-hl-group. */
.bm-hl-cnt{
  display:inline-flex;align-items:center;
  font-size:8.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;
  padding:1.5px 6px;border-radius:5px;line-height:1.5;flex-shrink:0;
  color:var(--cc,#0EA5E9);
  background:color-mix(in srgb, var(--cc,#0EA5E9) 14%, transparent);
  border:1px solid color-mix(in srgb, var(--cc,#0EA5E9) 32%, transparent);
}
.bm-hl-exp{flex-shrink:0;width:24px;height:24px;border:none;background:none;cursor:pointer;color:var(--t3);font-size:12px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:transform var(--dur-2) var(--ease-spring),background .15s}
.bm-hl-exp:hover{background:rgba(0,152,234,.1);color:var(--blue)}
.bm-hl-group.expanded .bm-hl-exp{transform:rotate(180deg)}
.bm-hl-members{max-height:0;overflow:hidden;transition:max-height var(--dur-3) var(--ease-out)}
.bm-hl-group.expanded .bm-hl-members{max-height:420px}
.bm-hl-member{display:flex;align-items:center;gap:10px;padding:8px 18px 8px 34px;cursor:pointer;transition:background .15s}
.bm-hl-member:hover,.bm-hl-member.bm-hl-hov{background:rgba(0,152,234,.06)}
.bm-hl-mdot{width:7px;height:7px;border-radius:50%;flex-shrink:0;opacity:.85}
.bm-hl-member .bm-hl-addr{font-size:12.5px;font-weight:600;flex:1;min-width:0}
.bm-hl-member .bm-hl-pct{font-size:12px;color:var(--t2);min-width:auto}

/* ════════════ Bubble Map — premium visual polish (Vella) ════════════ */
/* Canvas: soft gradient field + dot grid + edge vignette */
.bm-canvas-wrap, .bm2-canvas-wrap{
  background:
    radial-gradient(circle at 1px 1px, rgba(0,122,200,.10) 1px, transparent 1.6px) 0 0/22px 22px,
    radial-gradient(ellipse at 50% 30%, #eef6ff 0%, #e4eefc 55%, #dbe7f9 100%);
}
.bm-canvas-wrap::after{content:'';position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 130px rgba(10,37,64,.07)}

/* Node-detail sheet → premium glass card */
.bm2-pg-mode .bm2-sheet{border-radius:18px;border:1px solid rgba(0,152,234,.14);
  background:rgba(255,255,255,.9);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);
  box-shadow:var(--el-3);padding:16px}
.bm2-sh-row{margin-bottom:13px}
.bm2-sh-dot{width:11px;height:11px;box-shadow:0 0 10px currentColor}
.bm2-sh-addr{font-family:ui-monospace,'SF Mono',Menlo,monospace;font-size:12px;font-weight:600;color:var(--t1)}
.bm2-sh-close{border-radius:8px;transition:background .15s,color .15s,transform var(--dur-2) var(--ease-spring)}
.bm2-sh-close:hover{background:rgba(245,54,92,.1);color:var(--red);border-color:rgba(245,54,92,.25)}
.bm2-sh-close:active{transform:scale(.95)}
/* stat tiles */
.bm2-sh-stats{background:none;padding:0;gap:7px;margin-bottom:12px}
.bm2-sh-stat{background:linear-gradient(180deg,rgba(0,152,234,.07),rgba(0,152,234,.025));
  border:1px solid rgba(0,152,234,.1);border-radius:11px;padding:9px 9px;gap:4px}
.bm2-sh-stat-lbl{font-size:8.5px;letter-spacing:.5px}
.bm2-sh-stat-val{font-size:14px;letter-spacing:-.2px;font-variant-numeric:tabular-nums}
/* action buttons */
.bm2-sh-btn{height:38px;border-radius:10px;
  transition:transform var(--dur-2) var(--ease-spring),background .15s,box-shadow .15s,opacity .15s}
.bm2-sh-copy:active,.bm2-sh-explorer:active{transform:scale(.97)}
.bm2-sh-explorer:hover{opacity:1;transform:translateY(-1px);box-shadow:0 6px 18px rgba(0,152,234,.45)}
/* cluster block (border tinted to cluster colour via inline style) */
.bm2-sh-cblock{margin-top:12px;padding:12px;border:1.5px solid;border-radius:12px;background:rgba(0,152,234,.025)}
.bm2-sh-ctotal{background:rgba(0,0,0,.035);border-radius:8px;font-size:11px;padding:7px 11px}
.bm2-sh-cm{padding:5px 9px;border-radius:7px;transition:background .12s}
.bm2-sh-cm:hover{background:rgba(0,152,234,.06)}
.bm2-sh-cm-pct{font-variant-numeric:tabular-nums}

/* Holders header + count chip */
.bm-pg-hl-hdr{padding:16px 16px 12px}
.bm-pg-hl-hdr-count{background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;font-weight:800;
  padding:3px 11px;border-radius:999px;box-shadow:0 2px 8px rgba(0,152,234,.35)}

/* Expand chevron → soft pill */
.bm-hl-exp{width:24px;height:24px;background:rgba(0,152,234,.06);border:1px solid rgba(0,152,234,.14)}
.bm-hl-exp:hover{background:rgba(0,152,234,.14)}

[data-theme="dark"] .bm-canvas-wrap, [data-theme="dark"] .bm2-canvas-wrap{
  background:
    radial-gradient(circle at 1px 1px, rgba(255,255,255,0.07) 1px, transparent 1.6px) 0 0/22px 22px,
    radial-gradient(ellipse at 50% 30%, #0c1730 0%, #0a1124 60%, #070d1c 100%);
}
[data-theme="dark"] .bm2-pg-mode .bm2-sheet{background:rgba(4,8,18,.92);border-color:rgba(255,255,255,0.11)}

/* Frame the map field into a contained, rounded premium panel */
.bm-pg-view .bm-body:not(.fullscreen){
  margin:16px 24px 24px;border:1.5px solid rgba(0,152,234,.14);border-radius:20px;overflow:hidden;
  box-shadow:0 10px 34px rgba(10,37,64,.09)}
.bm-pg-view .bm-body:not(.fullscreen) .bm-pg-holders-sidebar{border-top-color:rgba(0,152,234,.12)}
@media(max-width:768px){
  .bm-pg-view .bm-body:not(.fullscreen){margin:12px 0 0;border-radius:0;border-left:none;border-right:none}
  .bm-pg-view .bm-canvas-wrap{min-height:360px !important}
}

/* Zoom controls → floating glass capsule */
.bm-zoom-controls{bottom:18px;left:18px;gap:2px;padding:4px;border-radius:14px;
  background:rgba(255,255,255,.82);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(0,152,234,.16);box-shadow:0 8px 24px rgba(10,37,64,.14)}
.bm-zoom-btn{width:34px;height:34px;background:none;border:none;border-radius:10px;
  color:var(--t2);font-size:17px;
  transition:background var(--dur-2) var(--ease-out),color .15s,transform var(--dur-2) var(--ease-spring)}
.bm-zoom-btn:hover{background:rgba(0,152,234,.12);color:var(--blue);border-color:transparent}
.bm-zoom-btn:active{transform:scale(.95)}
.bm-zoom-btn:nth-child(2){color:var(--t3)}
.bm-zoom-btn:nth-child(2):hover{color:var(--blue)}
[data-theme="dark"] .bm-zoom-controls{background:rgba(4,8,18,.8);border-color:rgba(255,255,255,0.13)}
[data-theme="dark"] .bm-zoom-btn{color:rgba(140,190,240,.8)}

/* ════════════ Profile — premium header polish (Vella) ════════════ */
.pv-header{position:relative;overflow:hidden}
/* Desktop: full-height gradient fill (no mid-header band cutting through text) */
.pv-header::before{content:'';position:absolute;inset:0;pointer-events:none;z-index:0;
  background:linear-gradient(125deg,rgba(0,152,234,.15),rgba(0,152,234,.07) 55%,transparent 82%)}
/* Mobile: keep the original cover band (looks great there) */
@media(max-width:700px){
  .pv-header::before{inset:0 0 auto 0;height:74px;
    background:linear-gradient(120deg,rgba(0,152,234,.18),rgba(0,152,234,.09) 55%,transparent)}
}
.pv-header>*{position:relative;z-index:1}
.pv-avatar{box-shadow:0 6px 20px rgba(0,152,234,.32),0 0 0 4px rgba(255,255,255,.75),0 0 0 6px rgba(0,152,234,.18);
  transition:transform var(--dur-2) var(--ease-spring)}
.pv-avatar:hover{transform:scale(1.05) rotate(-3deg)}
/* stats with hairline dividers in the gap + tabular numbers */
.pv-stat{position:relative}
.pv-stat:not(:last-child)::after{content:'';position:absolute;right:-12px;top:3px;bottom:3px;width:1px;background:rgba(0,152,234,.16)}
.pv-stat-n{font-variant-numeric:tabular-nums}
/* tabs: spring hover + press, glow on active */
.pv-tab{transition:background var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-spring)}
.pv-tab:hover{transform:translateY(-1px)}
.pv-tab:active{transform:scale(.96)}
.pv-tab.active{box-shadow:0 4px 14px rgba(0,152,234,.25)}
[data-theme="dark"] .pv-header::before{background:linear-gradient(120deg,rgba(255,255,255,0.11),rgba(0,152,234,.08) 55%,transparent)}

/* ════════ Profile › Coins — Holdings / Watchlist rows & sections (Vella) ════════ */
/* section headers — badge icon + bigger title */
.pv-csect-hdr{padding:0 2px 11px;gap:10px}
.pv-csect-title{font-size:16px;letter-spacing:-.2px}
.pv-csect-ico{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:9px;background:rgba(0,152,234,.1);font-size:15px}
.pv-csect-ico .te{width:18px;height:18px}
.pv-csect-count{font-size:11.5px;padding:3px 10px;border-radius:999px}
/* rows → roomy premium list items */
.pv-hold-row{min-height:62px;padding:12px 10px;border-radius:13px;border-bottom:1px solid rgba(0,152,234,.06);
  transition:background var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-spring),box-shadow var(--dur-2) var(--ease-out)}
.pv-hold-row:hover{background:linear-gradient(90deg,rgba(0,152,234,.08),rgba(0,152,234,.02));padding-left:12px;padding-right:12px;transform:translateY(-1px);box-shadow:0 5px 16px rgba(10,37,64,.06)}
.pv-hold-ico{width:46px;height:46px;border-radius:13px;font-size:24px;box-shadow:0 3px 10px rgba(10,37,64,.1)}
.pv-hold-ico img{width:100%;height:100%;object-fit:cover;border-radius:13px;display:block}
.pv-hold-name{font-size:15.5px;font-weight:800;letter-spacing:-.1px}
.pv-hold-tick{font-size:12px;margin-top:3px;color:var(--t2);font-variant-numeric:tabular-nums}
.pv-hold-val{font-size:16px;font-weight:900;letter-spacing:-.3px;font-variant-numeric:tabular-nums}
.pv-hold-chg{display:inline-block;font-size:11.5px;font-weight:800;margin-top:5px;padding:2px 9px;border-radius:999px;font-variant-numeric:tabular-nums}
.pv-hold-chg.up{color:var(--grn);background:rgba(0,200,83,.1)}
.pv-hold-chg.dn{color:var(--red);background:rgba(245,54,92,.1)}
/* empty state + create button */
.pv-coins-empty{padding:54px 24px;gap:14px}
.pv-create-btn{height:46px;border-radius:13px;padding:0 30px;font-size:14px;
  box-shadow:0 6px 18px rgba(0,152,234,.38);
  transition:transform var(--dur-2) var(--ease-spring),box-shadow var(--dur-2) var(--ease-out)}
.pv-create-btn:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(0,152,234,.55)}
.pv-create-btn:active{transform:translateY(0) scale(.98)}
/* new watchlist button */
.pv-wl-new-btn{margin-top:10px;padding:12px 16px;border-radius:13px;font-size:13.5px;justify-content:center;
  transition:background var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),transform var(--dur-2) var(--ease-spring)}
.pv-wl-new-btn:hover{transform:translateY(-1px)}
.pv-wl-new-btn:active{transform:scale(.98)}

/* Dark mode overrides */
[data-theme="dark"] .bm2-section{background:#040810;border-color:rgba(255,255,255,0.08)}
[data-theme="dark"] .bm-canvas-wrap{background:#040810}
[data-theme="dark"] .bm-overlay-loading{background:rgba(3,6,14,.88)}
[data-theme="dark"] .bm-holders-list{background:rgba(3,6,12,.82)}
[data-theme="dark"] .bm-hl-item:hover{background:rgba(255,255,255,0.05)}
[data-theme="dark"] .bm-hl-item.sel{background:rgba(0,152,234,.15)}
[data-theme="dark"] .bm-zoom-btn{background:rgba(4,8,16,.82);color:rgba(140,190,240,.85)}
[data-theme="dark"] .bm-zoom-btn:hover{background:rgba(0,152,234,.18);color:#fff}
[data-theme="dark"] .bm-tooltip{background:rgba(4,8,16,.94);color:rgba(200,225,255,.85)}
[data-theme="dark"] .bm-tip-addr{color:rgba(200,225,255,.85)}
[data-theme="dark"] .bm-fs-btn{background:rgba(4,10,20,.72);color:rgba(0,152,234,.9)}
[data-theme="dark"] .bm-fs-btn:hover{background:rgba(0,152,234,.18);color:#fff}
[data-theme="dark"] .bm-pg-input{background:rgba(0,80,160,.1);color:rgba(200,230,255,.92)}
[data-theme="dark"] .bm-hl-item.sel{background:rgba(255,255,255,.07)}
[data-theme="dark"] .bm-fs-btn{background:rgba(3,6,14,.82);border-color:rgba(255,255,255,0.17);color:rgba(255,255,255,0.59)}

/* ════════════════════════════════════════════════════════════
   GLOBAL POLISH — site-wide finishing touches
   (text selection, focus ring, section headings, hairlines)
════════════════════════════════════════════════════════════ */

/* Brand-tinted text selection everywhere */
::selection{background:rgba(0,152,234,.22);color:var(--t1)}
[data-theme="dark"] ::selection{background:rgba(255,255,255,0.2);color:#eaf4ff}

/* Consistent, premium keyboard focus ring (mouse clicks unaffected) */
a:focus-visible,button:focus-visible,input:focus-visible,
textarea:focus-visible,[tabindex]:focus-visible,[role="button"]:focus-visible{
  outline:none;
  box-shadow:0 0 0 3px var(--glow);
  border-radius:8px;
}

/* Page titles get a subtle accent rule + tighter optical contrast */
.page-title{position:relative;display:inline-block}
.page-title::after{
  content:'';position:absolute;left:0;bottom:-9px;
  width:34px;height:3px;border-radius:3px;
  background:linear-gradient(90deg,var(--blue),var(--blue2));
  box-shadow:0 1px 6px rgba(0,152,234,.35);
}

/* Crisper hairline between major content sections */
.section-line{height:1px;border:0;margin:22px 0;
  background:linear-gradient(90deg,transparent,rgba(0,152,234,.18),transparent)}
[data-theme="dark"] .section-line{background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent)}

/* chart wrap dark — deeper than cards, matches ton.org instrument panel feel */
[data-theme="dark"] .dv-chart-wrap{background:linear-gradient(160deg,#0A1624 0%,#06101C 100%);border-color:rgba(255,255,255,.08)}
[data-theme="dark"] .dv-tf-menu{background:#0A1624;border-color:rgba(255,255,255,.10)}

/* ── Live ticker dark ── */
[data-theme="dark"] .ticker-wrap{
  background:var(--bg2);
  border-color:rgba(255,255,255,.07);
}
[data-theme="dark"] .ticker-label{
  background:linear-gradient(90deg,rgba(0,152,234,.1),transparent);
  border-right-color:rgba(255,255,255,.07);
}
[data-theme="dark"] .tk-item:hover{background:rgba(255,255,255,.05)}
[data-theme="dark"] .tk-sep{background:rgba(255,255,255,.28)}

/* ── Wallet dropdown dark ── */
[data-theme="dark"] .wallet-dropdown{
  background:rgba(18,18,18,.98);
  border-color:transparent;
  box-shadow:
    0 0 0 1px rgba(255,255,255,.08),
    0 1px 0 rgba(255,255,255,.04) inset,
    0 24px 64px rgba(0,0,0,.5);
}
[data-theme="dark"] .wd-header,
[data-theme="dark"] .wd-card-head{
  background:none;
  border-bottom-color:transparent;
}
[data-theme="dark"] .wd-sep{background:rgba(255,255,255,.07)}
[data-theme="dark"] .wd-item:hover{background:rgba(255,255,255,.05)}

/* ── Modal field containers & inputs dark ── */
[data-theme="dark"] .ep-field-wrap{
  background:var(--bg3);
  border-color:rgba(255,255,255,.08);
}
[data-theme="dark"] .ep-textarea{
  background:var(--bg4);
  border-color:rgba(255,255,255,.13);
  color:var(--t1);
}
[data-theme="dark"] .ep-textarea::placeholder{color:var(--t3)}
[data-theme="dark"] .ep-input::placeholder{color:var(--t3)}
[data-theme="dark"] .ep-top{
  background:rgba(255,255,255,.03);
  border-bottom-color:rgba(255,255,255,.1);
}
[data-theme="dark"] .ep-avatar{
  background:#141414;
  border-color:rgba(255,255,255,.2);
  box-shadow:0 8px 24px rgba(0,0,0,.45);
}
[data-theme="dark"] .ep-max-badge{
  color:#A8A8A0;
  background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.14);
}
[data-theme="dark"] .ep-input:focus,
[data-theme="dark"] .ep-textarea:focus{
  border-color:rgba(255,255,255,.4);
  box-shadow:0 0 0 3px rgba(255,255,255,.08);
}
[data-theme="dark"] .ep-footer{border-top-color:rgba(255,255,255,.1)}
[data-theme="dark"] .btn-ep-save{
  background:#E8E8E0;color:#0A0A0A;
  box-shadow:0 6px 22px rgba(0,0,0,.4)
}
[data-theme="dark"] .btn-ep-save:hover{
  background:#F4F4EF;box-shadow:0 8px 28px rgba(0,0,0,.5)
}
[data-theme="dark"] .aw-footer{border-top-color:rgba(255,255,255,.07)}
[data-theme="dark"] .btn-ep-cancel{
  background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.12);
  color:var(--t2);
}
[data-theme="dark"] .btn-ep-cancel:hover{background:rgba(255,255,255,.1);color:var(--t1)}

/* Smooth, premium scrollbar thumb transition */
::-webkit-scrollbar-thumb{transition:background var(--dur-2) var(--ease-out)}

/* ════════════════════════════════════════════════════════════
   CHART CONTROLS & STATES — type toggle, fullscreen, graduation
════════════════════════════════════════════════════════════ */
.dv-chart-ctrl{gap:6px}

/* Candles ⇄ Line segmented toggle */
.dv-type-toggle{display:flex;gap:1px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:7px;padding:2px}
.dv-type-seg{display:flex;align-items:center;justify-content:center;width:26px;height:22px;border:none;background:none;color:#5e6a7a;border-radius:5px;cursor:pointer;transition:background .12s,color .12s}
.dv-type-seg:hover{color:#dce8f4}
.dv-type-seg.active{background:rgba(0,152,234,.22);color:#4db8ff}

/* Fullscreen icon button */
.dv-chart-iconbtn{display:flex;align-items:center;justify-content:center;width:28px;height:26px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:7px;color:#8fa4bc;cursor:pointer;transition:background .12s,color .12s}
.dv-chart-iconbtn:hover{background:rgba(255,255,255,.1);color:#dce8f4}

[data-theme="light"] .dv-type-toggle,[data-theme="light"] .dv-chart-iconbtn{background:rgba(0,0,0,.04);border-color:rgba(0,0,0,.1)}
[data-theme="light"] .dv-type-seg{color:#8090a0}
[data-theme="light"] .dv-type-seg.active{background:rgba(0,152,234,.16);color:#0080cc}
[data-theme="light"] .dv-chart-iconbtn{color:#6b7a8d}


/* Approaching graduation (≥85%) — gentle gold glow around the chart */
@keyframes dvGradPulse{0%,100%{box-shadow:0 0 0 1px rgba(255,179,0,0),0 0 0 rgba(255,179,0,0)}50%{box-shadow:0 0 0 1px rgba(255,179,0,.45),0 0 22px rgba(255,179,0,.22)}}
.dv-chart-wrap.near-grad{animation:dvGradPulse 2.4s ease-in-out infinite}
@media (prefers-reduced-motion: reduce){.dv-chart-wrap.near-grad{animation:none;box-shadow:0 0 0 1px rgba(255,179,0,.4)}}

/* Fullscreen chart overlay — chart only, no header bar */
body.dv-chart-fs-open{overflow:hidden;touch-action:none}
body.dv-chart-fs-open::before{content:'';position:fixed;inset:0;background:#000;z-index:9400;pointer-events:auto}
/* Beat .mobile-bottom-nav{display:flex!important} and .fb-fab.is-on */
body.dv-chart-fs-open .mobile-bottom-nav,
body.dv-chart-fs-open #mbnTray,
body.dv-chart-fs-open #mbnTrayBackdrop,
body.dv-chart-fs-open .fb-fab,
body.dv-chart-fs-open .fb-fab.is-on,
body.dv-chart-fs-open .fb-recbar,
body.dv-chart-fs-open .fb-recbar.is-on{
  display:none!important;
  pointer-events:none!important;
  visibility:hidden!important
}

/*
 * Mobile two-layer FS:
 *   .dv-chart-fs-shell — fixed portrait/landscape viewport frame (never rotates)
 *   .dv-chart-wrap.fs  — chart stage; .fs-rot + rotate(90deg) only in portrait
 * Desktop keeps body-portaled .dv-chart-wrap.fs { position:fixed; inset:0 }.
 */
.dv-chart-fs-shell{
  position:fixed;inset:0;z-index:9500;
  overflow:hidden;background:#0C0C0C;touch-action:none;
  overscroll-behavior:none
}
[data-theme="light"] .dv-chart-fs-shell{background:#f5f8fc}


.dv-chart-wrap.fs{
  position:fixed;inset:0;z-index:9500;
  display:flex;flex-direction:column;
  /* Theme layers round the in-page chart card; fullscreen is edge to edge. */
  border-radius:0!important;overflow:hidden;border:none;
  box-shadow:none;width:100%;height:100%;
  max-width:none;max-height:none;
  /* Theme layers give the in-page chart a tall min-height (540–560px); in fullscreen
     that pushed the stage past the screen edge (HUD and price scale cut off). */
  min-height:0!important;
  background:#0C0C0C
}
/* Inside the mobile shell — fill the frame (landscape phone / no rotate) */
.dv-chart-fs-shell > .dv-chart-wrap.fs{
  position:absolute !important;
  inset:0 !important;
  z-index:1;
  width:auto !important;height:auto !important;
  max-width:none !important;max-height:none !important;
  transform:none
}
/* Portrait viewport: a landscape stage (screen height × width) centred on the shell and
   turned 90° clockwise, so it fills the screen sideways. Size and offset are px from the
   shell's own box (js/chart.js _chartFsLayout). The stage's left edge lies along the top
   of the screen and its right edge along the bottom — pad those for the notch / home bar. */
.dv-chart-fs-shell.is-rot > .dv-chart-wrap.fs.fs-rot{
  position:absolute !important;
  inset:auto !important;
  left:var(--dv-fs-x, 0px) !important;
  top:var(--dv-fs-y, 0px) !important;
  width:var(--dv-fs-w, 100vh) !important;
  height:var(--dv-fs-h, 100vw) !important;
  max-width:none !important;
  max-height:none !important;
  padding:0 env(safe-area-inset-bottom, 0px) 0 env(safe-area-inset-top, 0px);
  box-sizing:border-box;
  transform:rotate(90deg);
  transform-origin:center center;
  background:#0C0C0C
}
.dv-chart-fs-shell.is-rot .dv-fs-bar{
  top:8px;
  left:max(10px, env(safe-area-inset-top, 0px));
  right:max(10px, env(safe-area-inset-bottom, 0px))
}
body > .dv-chart-wrap.fs{z-index:9500}
[data-theme="light"] .dv-chart-wrap.fs,
[data-theme="light"] .dv-chart-fs-shell.is-rot > .dv-chart-wrap.fs.fs-rot{background:#f5f8fc}
.dv-chart-wrap.fs .dv-chart-el{
  flex:1 1 auto;width:100%;height:100%!important;min-height:0!important;border-radius:0
}
.dv-chart-wrap.fs .dv-chart-empty{inset:0}
/* Don't CSS-stretch LWC bitmaps (blurry / ghosted price scale) */
.dv-chart-wrap.fs .dv-chart-el canvas{
  max-width:none!important;max-height:none!important
}

/* Floating HUD — one compact top row (Close · type · TF dropdown; OHLC desktop-only) */
.dv-fs-hud{
  display:none;
  position:absolute;inset:0;z-index:30;
  pointer-events:none;
  padding:0;
  box-sizing:border-box
}
.dv-chart-wrap.fs .dv-fs-hud[hidden]{display:none!important}
.dv-chart-wrap.fs .dv-fs-hud:not([hidden]){display:block}
.dv-fs-bar{
  position:absolute;
  top:max(8px, env(safe-area-inset-top, 0px));
  left:max(10px, env(safe-area-inset-left, 0px));
  right:max(10px, env(safe-area-inset-right, 0px));
  display:flex;align-items:center;gap:6px;
  min-height:34px;
  pointer-events:none
}
/* OHLC hidden on mobile FS (shell). Desktop body-portaled FS may still show it. */
.dv-fs-ohlc{
  display:none;
  align-items:center;gap:6px;flex-wrap:nowrap;
  min-width:0;flex:0 1 auto;
  padding:5px 8px;border-radius:9px;
  background:rgba(12,12,12,.92);border:1px solid rgba(255,255,255,.12);
  box-shadow:0 2px 10px rgba(0,0,0,.35);
  pointer-events:none;
  overflow:hidden
}
body > .dv-chart-wrap.fs .dv-fs-ohlc:not(:empty){display:flex}
.dv-chart-fs-shell .dv-fs-ohlc{display:none!important}
.dv-fs-pair{
  font-size:11px;font-weight:800;color:#e8eef6;letter-spacing:.01em;white-space:nowrap;flex-shrink:0
}
.dv-fs-ohlc-chips{display:inline-flex;align-items:center;gap:3px;flex-wrap:nowrap;min-width:0;overflow:hidden}
.dv-fs-ohlc-chips.is-empty{opacity:.35}
.dv-fs-ohlc .dv-cl-chip{
  padding:1px 5px;border-radius:5px;
  background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.08)
}
.dv-fs-ohlc .dv-cl-k{font-size:8px;color:#7a8798}
.dv-fs-ohlc .dv-cl-v{font-size:10px;color:#d7e0ec}
.dv-fs-close{
  pointer-events:auto;
  position:static;flex-shrink:0;
  display:inline-flex;align-items:center;gap:5px;
  min-height:32px;padding:6px 10px;
  border-radius:999px;border:1px solid rgba(255,255,255,.14);
  background:#161616;color:#f0f4fa;
  font-size:11px;font-weight:700;font-family:inherit;
  cursor:pointer;box-shadow:none;
  backdrop-filter:none;-webkit-backdrop-filter:none;
  -webkit-tap-highlight-color:transparent;
  transition:background .12s,transform .12s
}
.dv-fs-close:active{transform:scale(.97);background:#222}
.dv-fs-close svg{flex-shrink:0}

/* FS tools sit next to Cancel: type toggle + same TF dropdown as non-FS */
.dv-fs-tools{
  pointer-events:auto;
  display:flex;align-items:center;gap:6px;
  flex:0 0 auto;min-width:0;margin-left:0
}
.dv-fs-tools .dv-type-toggle{flex-shrink:0}
.dv-fs-tools .dv-tf-drop{z-index:60}
.dv-fs-tools .dv-tf-menu{
  left:0;right:auto;
  z-index:70
}

[data-theme="light"] body.dv-chart-fs-open::before{background:#0a1018}
[data-theme="light"] .dv-fs-ohlc{background:rgba(255,255,255,.96);border-color:rgba(0,0,0,.1);box-shadow:0 2px 8px rgba(0,0,0,.08)}
[data-theme="light"] .dv-fs-pair{color:#1a2a3a}
[data-theme="light"] .dv-fs-close{background:#f3f5f8;color:#1a2a3a;border-color:rgba(0,0,0,.12);box-shadow:none}

.dv-chart-wrap.fs.fs-rot .dv-chart-el{
  flex:1 1 auto;min-width:0;min-height:0;width:100%;height:100%!important
}
/* Kill any frosted strip over the LWC price-axis column */
.dv-chart-el table tr > td:last-child{
  background:#0C0C0C !important;
  backdrop-filter:none !important;-webkit-backdrop-filter:none !important;
  filter:none !important
}
.dv-chart-el table tr > td:last-child canvas{
  filter:none !important;
  max-width:none!important;max-height:none!important
}
.dv-chart-wrap.fs .dv-chart-el table tr > td:last-child canvas{
  image-rendering: -webkit-optimize-contrast
}
[data-theme="light"] .dv-chart-el table tr > td:last-child{background:#f5f8fc !important}
html:is([data-theme="dark"], [data-scheme="dark"], [data-theme="voidtype"]) .dv-chart-el table tr > td:last-child{
  background:#0C0C0C !important
}

/* ════════════════════════════════════════════════════════════
   CHART EVENT OVERLAY — tracked wallets · creator · graduation
════════════════════════════════════════════════════════════ */
.dv-ev-layer{position:absolute;inset:0;pointer-events:none;z-index:3;overflow:hidden}

/* Custom price badges — sit inside the right price-scale column */
.dv-ax-badges{position:absolute;inset:0;pointer-events:none;z-index:4;overflow:hidden}
.dv-ax-badge{
  position:absolute;right:var(--ax-inset, 2px);transform:translateY(-50%);
  display:flex;align-items:center;gap:4px;
  max-width:92px;
  padding:2px 6px 2px 5px;border-radius:3px;
  background:rgba(12,12,12,.96);border:1px solid rgba(255,255,255,.12);
  box-shadow:0 1px 6px rgba(0,0,0,.4);
  white-space:nowrap;font-variant-numeric:tabular-nums;
  letter-spacing:.01em;
  backdrop-filter:none;-webkit-backdrop-filter:none;
  box-sizing:border-box
}
/* On-scale: the live price as a tag in the scale column, inset from its edge */
.dv-ax-badge.is-on-scale{
  /* Stops short of the right edge instead of bleeding off it — the tag reads as
     a tag rather than a full-bleed band. It still has to cover the tick label
     behind it, and that text is left-aligned in the column, so the gap comes
     off the right only. */
  --ax-gap:6px;
  right:var(--ax-gap);
  width:calc(var(--ax-scale-w, 58px) - var(--ax-gap));
  max-width:none;
  flex-direction:row;
  align-items:center;
  justify-content:center;
  gap:0;
  padding:2px 1px;
  border-radius:3px;
  border:0;
  box-shadow:none;
  backdrop-filter:none;-webkit-backdrop-filter:none;
  background:#111;
  overflow:visible;
}
.dv-ax-badge.is-on-scale .dv-ax-v{
  /* Same size as the tick labels — layout.fontSize in _chartOpts(). */
  text-align:center;width:100%;font-size:12px;font-weight:700;line-height:1.1;
  overflow:hidden;text-overflow:ellipsis
}
.dv-ax-badge[hidden]{display:none !important}
.dv-ax-badge.is-now{z-index:2}
.dv-ax-v{font-size:10px;font-weight:700;line-height:1;color:inherit}
.dv-ax-badge.is-now.is-up{color:#3DDB8A;border-color:rgba(61,219,138,.4);border-left:2px solid #3DDB8A}
.dv-ax-badge.is-now.is-dn{color:#FF5C6A;border-color:rgba(255,92,106,.4);border-left:2px solid #FF5C6A}
/* Scale chips: flat fill (reads as native axis labels, covers one tick) */
/* Live price tag carries the candle's own green/red — same hexes as upColor /
   downColor on the series — so it flips with the market instead of sitting a
   shade off it. Green is bright enough to need near-black text. */
.dv-ax-badge.is-on-scale.is-now.is-up{
  color:#07120C;border:0;background:#3DDB8A
}
.dv-ax-badge.is-on-scale.is-now.is-dn{
  color:#fff;border:0;background:#FF5C6A
}
.dv-ax-badge.is-on-scale.is-now.is-line{
  color:#F4F4EF;border:0;background:#1A1A1A
}
/* Line chart NOW — same chip layout as candles, bone/white (no green/red) */
.dv-ax-badge.is-now.is-line{
  color:#E8E8E0;border-color:rgba(232,232,224,.4);border-left:2px solid rgba(232,232,224,.7)
}
/* Line chart: pulse on last point + dashed stub to the scale (always bone) */
.dv-line-now{position:absolute;inset:0;pointer-events:none;z-index:3}
.dv-line-now[hidden]{display:none !important}
.dv-line-now-dot{
  position:absolute;width:7px;height:7px;margin:-3.5px 0 0 -3.5px;border-radius:50%;
  background:#E8E8E0;box-shadow:0 0 0 1.5px rgba(12,12,12,.85);
  animation:dvLineNowPulse 2.2s ease-in-out infinite
}
.dv-line-now-dot::after{
  content:'';position:absolute;inset:-5px;border-radius:50%;
  border:1px solid rgba(232,232,224,.55);
  animation:dvLineNowRing 2.2s ease-out infinite
}
.dv-line-now-ray{
  position:absolute;height:0;border-top:1px dashed rgba(232,232,224,.4);
  transform:translateY(-50%);pointer-events:none
}
@keyframes dvLineNowPulse{
  0%,100%{transform:scale(1);opacity:1}
  50%{transform:scale(1.28);opacity:.88}
}
@keyframes dvLineNowRing{
  0%{transform:scale(.55);opacity:.65}
  70%{transform:scale(2.1);opacity:0}
  100%{transform:scale(2.1);opacity:0}
}

/* ── Crosshair axis marks — compact rectangles on price + time scales ── */
.dv-xh-marks{position:absolute;inset:0;pointer-events:none;z-index:5;overflow:hidden}
/* Crosshair readouts: the same tag as the live price, in neutral grey. #111 sat
   too close to the plot background to read as a chip at all — it looked like
   bare text laid over the scale. */
.dv-xh-price,.dv-xh-time{
  position:absolute;
  display:flex;align-items:center;justify-content:center;
  font-variant-numeric:tabular-nums;letter-spacing:0;
  color:#F4F4EF;
  pointer-events:none;
  box-sizing:border-box;
  border-radius:3px;
  background:#4D4D4D;
  -webkit-font-smoothing:antialiased;
}
.dv-xh-price[hidden],.dv-xh-time[hidden]{display:none!important}
.dv-xh-v{font-size:9px;font-weight:700;line-height:1;white-space:nowrap}

/* Price — same tag shape as the live-price badge it shares the column with */
.dv-xh-price{
  --ax-gap:6px;
  right:var(--ax-gap);
  width:calc(var(--ax-scale-w, 58px) - var(--ax-gap));
  max-width:none;
  transform:translateY(-50%);
  padding:2px 1px;
}
.dv-xh-price .dv-xh-v{
  text-align:center;width:100%;font-size:12px;
  overflow:hidden;text-overflow:ellipsis
}

/* Time — hug the timestamp, sit in the time-scale strip. Same dressing as the
   price chip; it just runs wider because a date and a clock live in it. */
.dv-xh-time{
  bottom:5px;
  transform:translateX(-50%);
  padding:3px 8px;
  min-width:0;
}
.dv-xh-time .dv-xh-v{font-size:12px;font-weight:700}

[data-theme="light"] .dv-xh-price,
[data-theme="light"] .dv-xh-time{
  color:#0A2540;
  background:#fff;
  box-shadow:0 0 0 1px rgba(10,37,64,.14);
}
[data-theme="light"] .dv-xh-price .dv-xh-v,
[data-theme="light"] .dv-xh-time .dv-xh-v{text-shadow:none}

@media(max-width:700px){
  .dv-xh-price{--ax-gap:3px;padding:2px 1px}
  .dv-xh-price .dv-xh-v{font-size:11px}
  .dv-xh-time{padding:2px 6px;bottom:4px}
  .dv-xh-time .dv-xh-v{font-size:11px}
}
[data-theme="light"] .dv-ax-badge{
  background:rgba(255,255,255,.96);border-color:rgba(0,152,234,.14);
  box-shadow:0 2px 8px rgba(10,37,64,.08)
}
[data-theme="light"] .dv-ax-badge.is-on-scale{
  box-shadow:none;background:#fff;border:0
}
[data-theme="light"] .dv-ax-badge.is-now.is-up{color:#12B76A;border-color:rgba(18,183,106,.32);border-left-color:#12B76A}
[data-theme="light"] .dv-ax-badge.is-now.is-dn{color:#F04438;border-color:rgba(240,68,56,.32);border-left-color:#F04438}
[data-theme="light"] .dv-ax-badge.is-now.is-line{color:#0A2540;border-color:rgba(0,152,234,.22);border-left-color:#0098EA}
[data-theme="light"] .dv-ax-badge.is-on-scale.is-now.is-up{
  color:#fff;border:0;background:#12B76A
}
[data-theme="light"] .dv-ax-badge.is-on-scale.is-now.is-dn{
  color:#fff;border:0;background:#F04438
}
[data-theme="light"] .dv-ax-badge.is-on-scale.is-now.is-line{
  color:#0A2540;border:0;background:#fff;box-shadow:0 0 0 1px rgba(10,37,64,.12)
}
[data-theme="light"] .dv-line-now-dot{background:#0098EA;box-shadow:0 0 0 1.5px rgba(255,255,255,.95),0 0 8px rgba(0,152,234,.35)}
[data-theme="light"] .dv-line-now-dot::after{border-color:rgba(0,152,234,.4)}
[data-theme="light"] .dv-line-now-ray{border-top-color:rgba(0,152,234,.35)}
@media(max-width:700px){
  .dv-ax-badge{max-width:78px;padding:2px 5px;gap:3px}
  .dv-ax-badge.is-on-scale{--ax-gap:3px;padding:2px 1px;max-width:none}
  .dv-ax-badge.is-on-scale .dv-ax-v{font-size:11px}
  .dv-ax-v{font-size:9px}
  .dv-line-now-dot{width:6px;height:6px;margin:-3px 0 0 -3px}
}
.dv-ev-dot{position:absolute;transform:translate(-50%,-50%);width:28px;height:28px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:13px;line-height:1;
  background:#1a2540;border:2px solid #4db8ff;box-shadow:0 2px 8px rgba(0,0,0,.45);
  cursor:pointer;pointer-events:auto;padding:0;overflow:visible;
  transition-property:transform,box-shadow,border-color;transition-duration:.12s;z-index:1}
.dv-ev-dot:hover,.dv-ev-dot.active{transform:translate(-50%,-50%) scale(1.18);z-index:5}
.dv-ev-dot:active{transform:translate(-50%,-50%) scale(0.96)}
.dv-ev-dot>span,.dv-ev-dot>svg{pointer-events:none}
.dv-ev-dot img,.dv-ev-av{width:100%;height:100%;border-radius:50%;object-fit:cover;outline:1px solid rgba(255,255,255,.1);outline-offset:-1px;position:relative;z-index:1}
.dv-ev-dot img.dv-ev-sticker{
  width:72%;height:72%;object-fit:contain;border-radius:0;outline:none;background:transparent
}
.dv-ev-glyph{width:15px;height:15px;display:block;flex-shrink:0}
.dv-ev-fallback{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:800;color:#fff;line-height:1;pointer-events:none;z-index:0
}
.dv-ev-wallet{overflow:visible;color:#fff}
.dv-ev-wallet > img.dv-ev-av{
  position:absolute;inset:0;width:100%;height:100%;
  border-radius:50%;object-fit:cover;pointer-events:none;
  outline:1px solid rgba(255,255,255,.1);outline-offset:-1px;
  opacity:0;transition-property:opacity;transition-duration:.18s;transition-timing-function:cubic-bezier(0.2, 0, 0, 1);z-index:1
}
.dv-ev-wallet > img.dv-ev-av.is-ready{opacity:1}
.dv-ev-rail{
  position:absolute;transform:translate(-50%,0);width:3px;border-radius:3px;
  background:rgba(77,184,255,.55);box-shadow:0 0 10px rgba(77,184,255,.35);
  pointer-events:none;z-index:0
}
.dv-ev-dot.dv-ev-creator.dv-ev-buy,.dv-ev-dot.dv-ev-me.dv-ev-buy{background:#22C55E;border-color:#16A34A;color:#fff}
.dv-ev-dot.dv-ev-creator.dv-ev-sell,.dv-ev-dot.dv-ev-me.dv-ev-sell{background:#EF4444;border-color:#DC2626;color:#fff}
.dv-ev-creator:hover,.dv-ev-creator.active,.dv-ev-me:hover,.dv-ev-me.active{box-shadow:0 0 0 3px rgba(255,255,255,.16)}
.dv-ev-me,.dv-ev-creator{z-index:2}
.dv-ev-bs{
  font-size:14px;font-weight:800;letter-spacing:.02em;line-height:1;color:#fff;
  font-variant-numeric:tabular-nums
}
.dv-ev-dot.dv-ev-tg{background:#229ED9;border-color:#47C1F5;color:#fff;overflow:hidden}
.dv-ev-dot.dv-ev-x{background:#FF8A3D;border-color:#FFA05C;color:#fff;overflow:hidden}
.dv-ev-wallet.dv-ev-buy{background:#22C55E;border-color:#3DDB8A}
.dv-ev-wallet.dv-ev-buy:hover,.dv-ev-wallet.dv-ev-buy.active{border-color:#5EE4A0;box-shadow:0 0 0 3px rgba(61,219,138,.28)}
.dv-ev-wallet.dv-ev-sell{background:#EF4444;border-color:#FF5C6A}
.dv-ev-wallet.dv-ev-sell:hover,.dv-ev-wallet.dv-ev-sell.active{border-color:#FF7A86;box-shadow:0 0 0 3px rgba(255,92,106,.28)}
.dv-ev-wallet:not(.has-av) > img.dv-ev-av{
  position:relative;inset:auto;width:68%;height:68%;
  object-fit:contain;border-radius:0;outline:none
}
.dv-ev-dot.dv-ev-grad{background:#8B5CF6;border-color:#C4B5FD;color:#fff;overflow:hidden}
.dv-ev-dot.dv-ev-grad:hover,.dv-ev-dot.dv-ev-grad.active{border-color:#DDD6FE;box-shadow:0 0 0 3px rgba(139,92,246,.28)}
.dv-ev-devtag{
  position:absolute;left:50%;bottom:-3px;transform:translateX(-50%);
  font-size:7px;font-weight:800;letter-spacing:.08em;line-height:1;
  padding:2px 5px;border-radius:4px;
  background:#fff;color:#111;
  box-shadow:0 1px 4px rgba(0,0,0,.45);
  pointer-events:none;z-index:2
}
.dv-ev-dev-pill{
  display:inline-flex;align-items:center;justify-content:center;
  margin-left:6px;padding:2px 6px;border-radius:6px;
  font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  background:rgba(255,179,0,.18);color:#FFB300;border:1px solid rgba(255,179,0,.4)
}
.dv-ev-n{
  position:absolute;right:-6px;bottom:-5px;
  min-width:16px;height:16px;padding:0 4px;border-radius:999px;
  background:#fff;color:#111;
  font-size:9px;font-weight:800;font-variant-numeric:tabular-nums;
  font-style:normal;line-height:1;
  display:flex;align-items:center;justify-content:center;
  border:0;
  box-shadow:0 1px 4px rgba(0,0,0,.45);
  pointer-events:none;z-index:3
}
.dv-ev-n.is-wide{font-size:8px;min-width:20px;padding:0 5px}
/* Count sits top-right when the DEV caption occupies the bottom, so both stay readable */
.dv-ev-dot:has(.dv-ev-devtag) .dv-ev-n{
  top:-5px;bottom:auto
}
/* position:fixed, not absolute — _ctmShowPopup()/_wltHoldShowPopup() compute
   top/left from window.innerWidth/innerHeight (viewport-relative), but
   `absolute` positions against the document, not the viewport. On a page
   scrolled down (long Wallet Tracker activity feed, long chat), that put the
   popup off-screen above the fold — looked like clicking did nothing. */
.dv-ev-tip{
  position:fixed;z-index:9999;
  width:min(360px,calc(100vw - 24px));
  min-width:min(320px,calc(100vw - 24px));
  max-width:360px;
  background:rgba(9,14,26,0.97);
  border-radius:20px;
  padding:16px;
  box-shadow:
    0 0 0 1px rgba(255,255,255,.10),
    0 22px 56px rgba(0,0,0,.72),
    0 0 0 1px rgba(255,255,255,.04) inset;
  pointer-events:auto;
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
}
.dv-ev-tip.is-buy{
  box-shadow:
    0 0 0 1px rgba(61,219,138,.22),
    3px 0 0 0 #3DDB8A inset,
    0 22px 56px rgba(0,0,0,.72),
    0 0 0 1px rgba(255,255,255,.04) inset;
}
.dv-ev-tip.is-sell{
  box-shadow:
    0 0 0 1px rgba(255,92,106,.22),
    3px 0 0 0 #FF5C6A inset,
    0 22px 56px rgba(0,0,0,.72),
    0 0 0 1px rgba(255,255,255,.04) inset;
}
/* header row */
.dv-ev-tip-hd2{display:flex;align-items:center;gap:10px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.08)}
.dv-ev-tip-dot2{width:10px;height:10px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 3px rgba(255,255,255,.06)}
.dv-ev-tip-type2{font-size:12px;font-weight:800;color:#c0d8f0;letter-spacing:.08em;text-transform:uppercase;text-wrap:balance}
.dv-ev-tip-close{
  margin-left:auto;width:40px;height:40px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.07);
  box-shadow:0 0 0 1px rgba(255,255,255,.08);
  color:#8a9eb2;cursor:pointer;font-size:18px;line-height:1;border-radius:10px;border:0;
  transition-property:background,color,box-shadow,transform;transition-duration:.15s;transition-timing-function:ease-out;
  padding:0;font-family:inherit;flex-shrink:0
}
.dv-ev-tip-close:hover{background:rgba(255,255,255,.14);color:#ddeeff;box-shadow:0 0 0 1px rgba(255,255,255,.16)}
.dv-ev-tip-close:active{transform:scale(0.96)}
/* avatar + name */
.dv-ev-tip-who-row{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.dv-ev-tip-av2{
  width:44px;height:44px;border-radius:50%;
  background:rgba(255,255,255,.07);border:1.5px solid rgba(255,255,255,.12);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden
}
.dv-ev-tip-av2 img{outline:1px solid rgba(255,255,255,.1);outline-offset:-1px}
.dv-ev-tip-who-info{min-width:0;flex:1}
.dv-ev-tip-name{font-size:15px;font-weight:800;color:#ddeeff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:7px;letter-spacing:-.02em;text-wrap:balance}
.dv-ev-tip-action-txt{font-size:12.5px;color:#6a7a8c;margin-top:3px;font-weight:600}
.dv-ev-tip-side.is-buy{color:#3DDB8A}
.dv-ev-tip-side.is-sell{color:#FF5C6A}
.dv-ev-tip-xn{
  display:inline-flex;align-items:center;justify-content:center;
  margin-left:7px;padding:1px 7px;min-height:18px;border-radius:999px;
  font-size:11px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:.02em;
  background:rgba(255,255,255,.08);color:inherit
}
.dv-ev-tc-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;font-size:10px;font-weight:800;background:rgba(0,152,234,.2);color:#4db8ff;border-radius:6px;padding:0 6px}
/* 2×2 data grid */
.dv-ev-tip-grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}
.dv-ev-tip-cell{
  background:rgba(255,255,255,.045);
  border-radius:10px;padding:12px 12px 11px;
  box-shadow:0 0 0 1px rgba(255,255,255,.08)
}
.dv-ev-tip-cell-lbl{font-size:10px;font-weight:700;color:#5a6a7c;letter-spacing:.07em;text-transform:uppercase;margin-bottom:5px}
.dv-ev-tip-cell-val{font-size:16px;font-weight:800;color:#ddeeff;line-height:1.2;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.dv-ev-tip-cell-time{font-size:13px!important;color:#6a7a8c!important;font-weight:700!important}
/* graduation note */
.dv-ev-tip-note{
  font-size:13px;font-weight:700;text-align:center;
  color:#4db8ff;padding:11px 12px;margin-top:2px;
  background:rgba(0,152,234,.1);
  border-radius:10px;
  box-shadow:0 0 0 1px rgba(0,152,234,.22)
}
/* action buttons */
.dv-ev-tip-btns{display:flex;gap:8px}
.dv-ev-tip-btn{
  display:inline-flex;align-items:center;justify-content:center;flex:1;
  padding:11px 12px;min-height:42px;
  background:rgba(0,152,234,.12);
  border:0;border-radius:10px;font-size:13px;font-weight:700;color:#4db8ff;
  text-decoration:none;
  box-shadow:0 0 0 1px rgba(0,152,234,.26);
  transition-property:background,color,box-shadow,transform;transition-duration:.15s;transition-timing-function:ease-out;
  cursor:pointer;font-family:inherit
}
.dv-ev-tip-btn:hover{background:rgba(0,152,234,.22)}
.dv-ev-tip-btn:active{transform:scale(0.96)}
@keyframes dvEvTipIn{
  from{opacity:0;transform:translateY(10px)}
  to{opacity:1;transform:none}
}
#dvEvTip.dv-ev-tip-open{
  animation:dvEvTipIn .32s cubic-bezier(.2,0,0,1)
}
@media (prefers-reduced-motion:reduce){
  #dvEvTip.dv-ev-tip-open{animation:none}
}
[data-theme="light"] .dv-ev-dot{background:#fff;box-shadow:0 2px 8px rgba(10,37,64,.18)}
[data-theme="light"] .dv-ev-x{background:#FF8A3D;color:#fff}
[data-theme="light"] .dv-ev-tg{background:#229ED9;color:#fff}
[data-theme="light"] .dv-ev-dot.dv-ev-grad{background:#8B5CF6;border-color:#C4B5FD;color:#fff}
[data-theme="light"] .dv-ev-dot.dv-ev-grad:hover,[data-theme="light"] .dv-ev-dot.dv-ev-grad.active{border-color:#A78BFA;box-shadow:0 0 0 3px rgba(139,92,246,.22)}
[data-theme="light"] .dv-ev-creator.dv-ev-buy,[data-theme="light"] .dv-ev-me.dv-ev-buy{background:#22C55E;border-color:#16A34A;color:#fff}
[data-theme="light"] .dv-ev-creator.dv-ev-sell,[data-theme="light"] .dv-ev-me.dv-ev-sell{background:#EF4444;border-color:#DC2626;color:#fff}
[data-theme="light"] .dv-ev-wallet.dv-ev-buy{background:#22C55E;border-color:#16A34A}
[data-theme="light"] .dv-ev-wallet.dv-ev-sell{background:#EF4444;border-color:#DC2626}
[data-theme="light"] .dv-ev-bs{color:#fff}
[data-theme="light"] .dv-ev-dot img{outline-color:rgba(0,0,0,.1)}
[data-theme="light"] .dv-ev-devtag{background:#fff;color:#111;box-shadow:0 1px 4px rgba(10,37,64,.2)}
[data-theme="light"] .dv-ev-dev-pill{background:rgba(255,179,0,.12);color:#b88600;border-color:rgba(255,179,0,.35)}
[data-theme="light"] .dv-ev-n{background:#fff;color:#111;box-shadow:0 1px 4px rgba(10,37,64,.2)}
[data-theme="light"] .dv-ev-dot:active{transform:translate(-50%,-50%) scale(0.96)}
/* light theme tooltip */
[data-theme="light"] .dv-ev-tip{
  background:rgba(255,255,255,0.98);
  box-shadow:0 0 0 1px rgba(0,0,0,.08),0 18px 48px rgba(10,37,64,.18)
}
[data-theme="light"] .dv-ev-tip.is-buy{
  box-shadow:0 0 0 1px rgba(16,185,129,.28),3px 0 0 0 #10B981 inset,0 18px 48px rgba(10,37,64,.18)
}
[data-theme="light"] .dv-ev-tip.is-sell{
  box-shadow:0 0 0 1px rgba(239,68,68,.25),3px 0 0 0 #EF4444 inset,0 18px 48px rgba(10,37,64,.18)
}
[data-theme="light"] .dv-ev-tip-hd2{border-bottom-color:rgba(0,0,0,.08)}
[data-theme="light"] .dv-ev-tip-type2{color:#1a2a3a}
[data-theme="light"] .dv-ev-tip-close{background:rgba(0,0,0,.05);box-shadow:0 0 0 1px rgba(0,0,0,.06);color:#7a8a9a}
[data-theme="light"] .dv-ev-tip-close:hover{background:rgba(0,0,0,.1);color:#1a2a3a}
[data-theme="light"] .dv-ev-tip-av2{background:rgba(0,0,0,.04);border-color:rgba(0,0,0,.1)}
[data-theme="light"] .dv-ev-tip-av2 img{outline-color:rgba(0,0,0,.1)}
[data-theme="light"] .dv-ev-tip-name{color:#1a2a3a}
[data-theme="light"] .dv-ev-tip-action-txt{color:#7a8a9a}
[data-theme="light"] .dv-ev-tip-side.is-buy{color:#059669}
[data-theme="light"] .dv-ev-tip-side.is-sell{color:#DC2626}
[data-theme="light"] .dv-ev-tip-xn{background:rgba(0,0,0,.06)}
[data-theme="light"] .dv-ev-tip-cell{background:rgba(0,0,0,.035);box-shadow:0 0 0 1px rgba(0,0,0,.06)}
[data-theme="light"] .dv-ev-tip-cell-lbl{color:#8090a0}
[data-theme="light"] .dv-ev-tip-cell-val{color:#1a2a3a}
[data-theme="light"] .dv-ev-tip-cell-time{color:#8090a0!important}
[data-theme="light"] .dv-ev-tip-note{
  color:#0070c0;background:rgba(0,152,234,.08);box-shadow:0 0 0 1px rgba(0,152,234,.18)
}
[data-theme="light"] .dv-ev-tip-btn{background:rgba(0,152,234,.08);box-shadow:0 0 0 1px rgba(0,152,234,.2);color:#0070c0}
[data-theme="light"] .dv-ev-tip-btn:hover{background:rgba(0,152,234,.15)}

/* Creator "dev" marking — trades feed, holders */
.dv-area-tip{position:absolute;display:flex;flex-direction:column;gap:3px;padding:9px 13px;background:rgba(10,18,32,0.88);border:1px solid rgba(0,152,234,0.22);border-radius:10px;pointer-events:none;z-index:10;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 4px 20px rgba(0,0,0,0.4)}
.dv-at-price{font-size:15px;font-weight:700;color:#e8f4ff;letter-spacing:-.01em;white-space:nowrap}
.dv-at-time{font-size:10.5px;color:rgba(150,170,200,0.6);white-space:nowrap}
[data-theme="light"] .dv-area-tip{background:rgba(255,255,255,0.92);border-color:rgba(0,120,200,0.2);box-shadow:0 4px 20px rgba(0,0,0,0.12)}
[data-theme="light"] .dv-at-price{color:#1a2a3a}
[data-theme="light"] .dv-at-time{color:rgba(80,100,130,0.7)}
.tr-acc-dev .tr-av{border-color:rgba(0,200,100,.5)}
.tr-acc-tracked .tr-av{border-color:rgba(0,201,141,.5)}
.th-dev-pepe{width:11px;height:11px;border-radius:50%;object-fit:cover}

/* TG Tracker — "View post" link in a signal card */
.tgt-link{color:var(--blue);text-decoration:none;font-weight:700;font-size:11px}
.tgt-link:hover{text-decoration:underline}

/* ── Wallet profile: name row + DNA badge ────────────────────────────────── */
.wlt-hist-name-row{display:flex;align-items:center;gap:6px;min-width:0}
.wlt-hist-name-row .wlt-hist-name{flex-shrink:1;min-width:0}

/* ── Follow button ───────────────────────────────────────────────────────── */
.wlt-follow-btn{display:flex;align-items:center;gap:5px;padding:6px 11px;border-radius:9px;border:1.5px solid var(--blue);background:var(--blue);color:#fff;font-size:11px;font-weight:700;font-family:'Inter',sans-serif;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background .15s,opacity .15s}
.wlt-follow-btn:hover{background:#007bc9}
.wlt-follow-btn--active{background:rgba(0,152,234,.07);border-color:rgba(0,152,234,.2);color:var(--t3);cursor:default}
.wlt-follow-btn--active:hover{background:rgba(0,152,234,.07)}
.wlt-follow-btn:disabled{pointer-events:none}

/* ── Inline Stats (wallet profile, above tabs) ───────────────────────────── */
.wlt-stats-inline{padding:0}
/* ── Inline stats: base (mobile-first) ──────────────────────────────────── */
.wlt-istat-wrap{position:relative;border-radius:14px;overflow:hidden;border:1.5px solid rgba(0,152,234,.1);background:rgba(0,152,234,.03)}
/* top: PnL col only (icon-btns are absolute on mobile) */
.wlt-istat-top{display:flex;align-items:flex-start;padding:12px 14px 10px;border-bottom:1.5px solid rgba(0,152,234,.08);padding-right:88px}
/* second row: Win Rate + sep + Best Trade */
.wlt-istat-row2{display:flex;align-items:stretch;border-bottom:1.5px solid rgba(0,152,234,.08)}
.wlt-istat-col{display:flex;flex-direction:column;gap:2px;flex:1;padding:10px 14px;min-width:0}
.wlt-istat-best-col{background:linear-gradient(90deg,rgba(0,200,83,.07),transparent)}
.wlt-istat-vsep{width:1.5px;background:rgba(0,152,234,.1);flex-shrink:0;align-self:stretch}
/* icon buttons — absolute on mobile, static on desktop */
.wlt-istat-icon-btns{position:absolute;top:10px;right:10px;display:flex;flex-direction:row;gap:6px}
.wlt-istat-icon-btn{width:34px;height:34px;border-radius:9px;border:1.5px solid rgba(0,152,234,.16);background:rgba(0,152,234,.07);color:var(--t3);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}
.wlt-istat-icon-btn:hover{background:rgba(0,152,234,.14);color:var(--blue)}
/* labels & values */
.wlt-istat-lbl{font-size:9px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--t3)}
.wlt-istat-val{font-size:22px;font-weight:900;letter-spacing:-.5px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wlt-istat-sub{font-size:10.5px;color:var(--t3);margin-top:1px}
/* tile grid */
.wlt-istat-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.wlt-istat-tile{padding:8px 6px;text-align:center;border-right:1.5px solid rgba(0,152,234,.08)}
.wlt-istat-tile:last-child{border-right:none}
.wlt-istat-tile-val{font-size:16px;font-weight:900;color:var(--t1);line-height:1.1;letter-spacing:-.3px}
.wlt-istat-tile-lbl{font-size:9px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--t3);margin-top:2px}

/* ── Desktop: flat horizontal strip (no repeated card boxes) ─────────────── */
@media (min-width:601px) {
  .wlt-istat-wrap{
    display:flex;flex-direction:row;align-items:stretch;
    /* kill card appearance */
    border-radius:0;overflow:visible;background:none;
    border:none;border-top:1.5px solid rgba(0,152,234,.1);border-bottom:1.5px solid rgba(0,152,234,.1);
    position:static;margin:0 -1px; /* bleed to edges */
  }
  /* PnL: leftmost column with green/red left accent */
  .wlt-istat-top{
    flex:0 0 auto;border-bottom:none;padding:14px 22px 14px 20px;
    padding-right:22px; /* reset mobile right-padding */
    border-right:1.5px solid rgba(0,152,234,.1);
    align-items:flex-start;
  }
  .wlt-istat-top .wlt-istat-col{padding:0}
  /* Win Rate + Best Trade: middle section */
  .wlt-istat-row2{flex:0 0 auto;border-bottom:none;border-right:1.5px solid rgba(0,152,234,.1)}
  .wlt-istat-col{justify-content:center}
  /* Tile grid: fills remaining space */
  .wlt-istat-grid{
    display:flex;flex:1;align-items:stretch;border-bottom:none
  }
  .wlt-istat-tile{
    flex:1;display:flex;flex-direction:column;justify-content:center;
    padding:14px 18px;text-align:left;
    border-right:1.5px solid rgba(0,152,234,.08);border-bottom:none
  }
  .wlt-istat-tile:last-child{border-right:none}
  .wlt-istat-tile-val{font-size:18px;letter-spacing:-.4px}
  /* Icon buttons: rightmost column, vertical stack */
  .wlt-istat-icon-btns{
    position:static;flex-direction:column;gap:5px;
    padding:12px 12px;justify-content:center;align-self:stretch;
    border-left:1.5px solid rgba(0,152,234,.1)
  }
  /* Accent left bar for PnL */
  .wlt-istat-top::before{
    content:'';display:block;width:3px;height:100%;
    position:absolute;left:0;top:0;border-radius:0;
    background:var(--grn);opacity:.7
  }
  .wlt-istat-top{position:relative}
  /* Larger PnL value on desktop */
  .wlt-istat-val{font-size:24px}
}


/* ── Created tab: overview header ────────────────────────────────────────── */
.wlt-created-overview{padding:0;border-bottom:1.5px solid rgba(0,152,234,.08);margin-bottom:4px}
.wlt-created-chart-wrap{display:flex;flex-direction:column;gap:0}
.wlt-created-chart-card{display:flex;align-items:center;gap:20px;padding:20px 18px 18px;background:linear-gradient(135deg,rgba(0,152,234,.05) 0%,rgba(0,152,234,.02) 100%)}
.wlt-created-donut-container{position:relative;flex-shrink:0;width:130px;height:130px}
.wlt-created-donut{width:130px;height:130px;display:block}
.wlt-created-donut-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;pointer-events:none}
.wlt-created-donut-pct{font-size:26px;font-weight:900;letter-spacing:-.8px;line-height:1}
.wlt-created-donut-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--t3)}
.wlt-created-chart-legend{display:flex;flex-direction:column;gap:10px}
.wlt-created-leg-item{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--t2);font-weight:500}
.wlt-created-leg-item b{color:var(--t1);font-weight:800}
.wlt-created-leg-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.wlt-created-stat-strip{display:grid;grid-template-columns:repeat(4,1fr);border-top:1.5px solid rgba(0,152,234,.08)}
.wlt-created-stat{display:flex;flex-direction:column;align-items:center;padding:12px 6px;border-right:1.5px solid rgba(0,152,234,.08);gap:3px}
.wlt-created-stat:last-child{border-right:none}
.wlt-created-stat-val{font-size:19px;font-weight:900;color:var(--t1);letter-spacing:-.4px;line-height:1}
.wlt-created-stat-lbl{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--t3)}
.wlt-created-grad-badge{font-size:9px;font-weight:800;background:rgba(0,200,83,.12);color:var(--grn);border:1px solid rgba(0,200,83,.25);border-radius:5px;padding:1px 5px;margin-left:5px;vertical-align:middle;letter-spacing:.03em}

/* ── Dark theme overrides ────────────────────────────────────────────────── */
[data-theme="dark"] .wlt-follow-btn--active{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.1)}
[data-theme="dark"] .wlt-istat-wrap{background:rgba(255,255,255,.03);border-color:rgba(255,255,255,.07)}
[data-theme="dark"] .wlt-istat-sep{background:rgba(255,255,255,.07)}
[data-theme="dark"] .wlt-istat-hero{border-bottom-color:rgba(255,255,255,.06)}
[data-theme="dark"] .wlt-istat-tile{border-right-color:rgba(255,255,255,.06)}
[data-theme="dark"] .wlt-istat-cal-btn{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.1)}
[data-theme="dark"] .wlt-pnl-cal-panel{background:#111827}
[data-theme="dark"] .wlt-created-chart-card{background:linear-gradient(135deg,rgba(255,255,255,.04),rgba(255,255,255,.02))}
[data-theme="dark"] .wlt-created-stat-strip{border-top-color:rgba(255,255,255,.07)}
[data-theme="dark"] .wlt-created-stat{border-right-color:rgba(255,255,255,.06)}
[data-theme="dark"] .wlt-pnl-cal-panel{background:#0e1724}
/* ── Wallet address copy ─────────────────────────────────────────────────── */
.wlt-hist-addr--copy{cursor:pointer;user-select:none;transition-property:background,border-color;transition-duration:.15s}
.wlt-hist-addr--copy:hover{background:rgba(0,152,234,.12);border-color:rgba(0,152,234,.3)}
.wlt-hist-addr--copy:active{opacity:.75}
.wlt-addr-copied{color:var(--blue)!important;font-weight:700}

/* ── Inline stats: actions row + Best Trade ──────────────────────────────── */
/* ── Mobile wallet profile adaptations ──────────────────────────────────── */
@media (max-width: 600px) {
  /* Unified single scroll: the whole panel (topbar + content) scrolls together */
  .wlt-hist-panel{overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}
  .wlt-hist-body{overflow-y:visible;overflow-x:hidden;flex:none;min-height:auto;-webkit-overflow-scrolling:auto;overscroll-behavior:auto}
  /* Header: 2-row topbar — actions on top, identity below */
  .wlt-hist-topbar{flex-wrap:wrap;align-items:center;padding:10px 12px 0;gap:8px}
  /* Row 1 left: back icon */
  .wlt-hist-back{order:1;margin-right:auto;padding:6px 8px;font-size:0;gap:0}
  /* Row 1 right: follow + tonscan */
  .wlt-follow-btn{order:2;padding:6px 10px;font-size:11px}
  .wlt-hist-tonscan{order:3;font-size:0;padding:6px 8px;gap:0;min-width:32px;justify-content:center}
  .wlt-hist-tonscan svg{width:14px;height:14px}
  /* Redesigned hero: stack it. The actions (Telegram + Edit + Tonviewer) don't
     shrink, so side-by-side they squeezed the name to zero width and spilled
     past the card at ~390px. */
  .wlt-hist-hero{gap:12px;padding:14px;margin:10px 10px 8px;flex-wrap:wrap}
  .wlt-hist-hero-av{width:56px;height:56px;font-size:26px}
  .wlt-hist-hero-row{flex-direction:column;align-items:stretch;gap:10px}
  .wlt-hist-hero-actions{flex-wrap:wrap;width:100%}
  .wlt-hist-hero .wlt-hist-name{font-size:19px}
  .wlt-hist-chips{gap:6px}

  /* Row 2: avatar + name + address — full width, below the action row */
  .wlt-hist-ident{order:4;flex:none;width:100%;flex-basis:100%;min-width:0;
    padding:10px 0 12px;border-top:1px solid rgba(0,152,234,.08);margin-top:2px}
  .wlt-hist-av{width:44px;height:44px;border-radius:12px;font-size:24px}
  .wlt-hist-av img{width:44px;height:44px;border-radius:12px}
  .wlt-hist-name{font-size:15px}
  /* Address: show more now that it has full row width */
  .wlt-hist-addr{font-size:10px;max-width:none}
  /* Prof stats: 2×2 on very narrow */
  .wlt-prof-stats{grid-template-columns:repeat(2,1fr)!important;gap:5px;padding:8px 10px 6px}
  /* Inline stats: compact on narrow screens */
  .wlt-istat-val{font-size:18px}
  .wlt-istat-col{padding:8px 12px}
  .wlt-istat-top{padding:10px 12px 8px;padding-right:84px}
  .wlt-istat-tile-val{font-size:14px}
  /* Calendar: full height */
  .wlt-pnl-cal-panel{max-height:92dvh;padding:16px 12px 24px}
}

/* ── Unrealized PnL in holdings ──────────────────────────────────────────── */
.wlt-hold-unreal{font-size:11px;font-weight:700;margin-top:2px;letter-spacing:-.2px;line-height:1}
.wlt-hold-unreal.wlt-pos{color:var(--grn)}
.wlt-hold-unreal.wlt-neg{color:var(--red)}

/* Dark overrides for istat (mobile card) */
[data-theme="dark"] .wlt-istat-wrap{background:rgba(255,255,255,.03);border-color:rgba(255,255,255,.08)}
[data-theme="dark"] .wlt-istat-top{border-bottom-color:rgba(255,255,255,.07)}
[data-theme="dark"] .wlt-istat-row2{border-bottom-color:rgba(255,255,255,.07)}
[data-theme="dark"] .wlt-istat-vsep{background:rgba(255,255,255,.07)}
[data-theme="dark"] .wlt-istat-icon-btn{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.1);color:rgba(255,255,255,.5)}
[data-theme="dark"] .wlt-istat-icon-btn:hover{background:rgba(0,152,234,.15);color:var(--blue)}
[data-theme="dark"] .wlt-istat-tile{border-right-color:rgba(255,255,255,.07)}
[data-theme="dark"] .wlt-istat-best-col{background:linear-gradient(90deg,rgba(0,200,83,.1),transparent)}
/* Dark overrides for istat desktop strip */
@media (min-width:601px) {
  [data-theme="dark"] .wlt-istat-wrap{background:none;border-left:none;border-right:none;border-top-color:rgba(255,255,255,.08);border-bottom-color:rgba(255,255,255,.08)}
  [data-theme="dark"] .wlt-istat-top{border-right-color:rgba(255,255,255,.08)}
  [data-theme="dark"] .wlt-istat-row2{border-right-color:rgba(255,255,255,.08)}
  [data-theme="dark"] .wlt-istat-tile{border-right-color:rgba(255,255,255,.06)}
  [data-theme="dark"] .wlt-istat-icon-btns{border-left-color:rgba(255,255,255,.08)}
}

/* ── Activity tab: trading-performance card (volume/trades/win-rate) ── */
.wlt-stats-inline{margin:0}
.wlt-ov-divider{height:1px;background:rgba(10,37,64,.08);margin:18px 0}
.wlt-ov-row{display:flex;flex-wrap:wrap;gap:18px 40px}
.wlt-ov-stat{display:flex;flex-direction:column;gap:3px;min-width:84px}
.wlt-ov-stat-lbl{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--t3)}
.wlt-ov-stat-val{font-size:19px;font-weight:800;color:var(--t1);letter-spacing:-.3px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wlt-ov-stat-sub{font-size:11px;color:var(--t3)}

/* ── Wallet tab: four stat cards (Total Value / Top Holding / Coins /
   Wallet Age), matching the reference's actual-card treatment ── */
.wlt-stat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:0 14px 10px;opacity:0;transform:translateY(8px);transition-property:opacity,transform;transition-duration:320ms;transition-timing-function:cubic-bezier(.2,0,0,1)}
.wlt-stat-cards.wlt-snap-animate{opacity:1;transform:none}
.wlt-stat-card{padding:13px 16px;background:rgba(234,246,255,.92);border:1.5px solid rgba(0,152,234,.14);border-radius:14px}
.wlt-stat-card-lbl{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--t3)}
.wlt-stat-card-val{font-size:23px;font-weight:800;color:var(--t1);letter-spacing:-.4px;margin-top:4px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-flex;align-items:center;gap:6px;max-width:100%}
.wlt-stat-card-val .wlt-pnl-amt-ico,.wlt-stat-card-val .pnl-ton-stat{width:40px;height:40px;object-fit:contain;flex-shrink:0;opacity:.95}
.wlt-stat-card-sub{font-size:12px;color:var(--t3);margin-top:2px}

/* ── Wallet tab: all-time Profit/Loss card ── */
.wlt-pnl-card{margin:0 14px 10px;padding:15px 20px;background:rgba(234,246,255,.92);border:1.5px solid rgba(0,152,234,.14);border-radius:14px}
.wlt-pnl-lbl{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--t3)}
.wlt-pnl-period{font-weight:500;text-transform:none;letter-spacing:0;opacity:.7;margin-left:2px}
.wlt-pnl-main{display:flex;align-items:baseline;gap:10px;margin-top:5px}
.wlt-pnl-val{font-size:32px;font-weight:900;letter-spacing:-.7px;font-variant-numeric:tabular-nums}
.wlt-pnl-pct{font-size:16px;font-weight:700;font-variant-numeric:tabular-nums}
.wlt-pnl-row{display:flex;flex-wrap:wrap;gap:14px 36px;margin-top:12px;padding-top:12px;border-top:1px solid rgba(0,152,234,.12)}
.wlt-pnl-stat{display:flex;flex-direction:column;gap:2px}
.wlt-pnl-stat-lbl{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--t3)}
.wlt-pnl-stat-val{font-size:15px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--t1)}

/* Win-rate: a single horizontal bar replaces the illustrated balance scale */
.wlt-wr-hdr{display:flex;align-items:center;justify-content:space-between}
.wlt-wr-lbl{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--t3)}
.wlt-wr-pct{font-size:19px;font-weight:800;letter-spacing:-.3px;font-variant-numeric:tabular-nums}
.wlt-wr-neu{color:rgba(217,119,6,.95)}
.wlt-wr-bar{height:6px;border-radius:99px;background:rgba(239,68,68,.16);margin-top:9px;overflow:hidden}
.wlt-wr-fill{height:100%;background:linear-gradient(90deg,#16a34a,#22c55e);border-radius:99px;transition-property:width;transition-duration:600ms;transition-timing-function:cubic-bezier(.2,0,0,1)}
.wlt-wr-foot{display:flex;align-items:center;justify-content:space-between;margin-top:9px;font-size:11.5px;color:var(--t3);font-variant-numeric:tabular-nums}
.wlt-wr-streak{font-size:11px;font-weight:700;white-space:nowrap}

/* Tab icons */
.wlt-prof-tab{display:flex;align-items:center;gap:6px}
.wlt-prof-tab .te{width:17px;height:17px}

/* Dark theme */
[data-theme="dark"] .wlt-ov-divider{background:rgba(255,255,255,.08)}
[data-theme="dark"] .wlt-wr-bar{background:rgba(239,68,68,.22)}
[data-theme="dark"] .wlt-stat-card{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08)}
[data-theme="dark"] .wlt-pnl-card{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08)}
[data-theme="dark"] .wlt-pnl-row{border-top-color:rgba(255,255,255,.08)}

/* Mobile */
@media (max-width:600px) {
  .wlt-stats-inline{margin:0}
  .wlt-ov-row{gap:14px 24px}
  .wlt-stat-cards{margin:0 8px 8px;grid-template-columns:repeat(2,1fr)}
  .wlt-pnl-card{margin:0 8px 8px}
}

/* ╔══════════════════════════════════════════════════════════╗
   ║       WALLET PROFILE — ANIMATIONS & MICRO-INTERACTIONS  ║
   ╚══════════════════════════════════════════════════════════╝ */

/* Keyframes ───────────────────────────────────────────────── */
@keyframes wltFadeUp {
  from { opacity:0; transform:translateY(12px); }
  to   { opacity:1; transform:none; }
}
@keyframes wltScaleIn {
  from { opacity:0; transform:scale(.93); }
  to   { opacity:1; transform:none; }
}
@keyframes wltCountPop {
  0%   { transform:scale(1); }
  45%  { transform:scale(1.07); }
  100% { transform:scale(1); }
}
@keyframes wltPnlFlash {
  0%   { text-shadow:none; }
  30%  { text-shadow:0 0 18px currentColor,0 0 36px currentColor; }
  100% { text-shadow:none; }
}

/* Number pop – applied via JS after count-up ─────────────── */
.wlt-val-pop { animation:wltCountPop 340ms cubic-bezier(.34,1.56,.64,1) both; }

/* ── Wallet Overview card: entrance + hover (see .wlt-ov above) ─────── */
.wlt-ov-row .wlt-ov-stat { animation:wltFadeUp 240ms ease-out both; }
.wlt-ov-row .wlt-ov-stat:nth-child(1) { animation-delay:40ms; }
.wlt-ov-row .wlt-ov-stat:nth-child(2) { animation-delay:80ms; }
.wlt-ov-row .wlt-ov-stat:nth-child(3) { animation-delay:120ms; }
.wlt-ov-row .wlt-ov-stat:nth-child(4) { animation-delay:160ms; }
.wlt-wr { animation:wltFadeUp 260ms ease-out 80ms both; }

/* ── Icon buttons ───────────────────────────────────────────── */
.wlt-istat-icon-btn {
  transition:background 180ms ease-out,color 180ms ease-out,
             transform 120ms ease-out,box-shadow 180ms ease-out;
}
.wlt-istat-icon-btn:hover {
  transform:translateY(-1px);
  box-shadow:0 3px 10px rgba(0,152,234,.22);
}
.wlt-istat-icon-btn:active {
  transform:scale(.91) !important;
  transition-duration:70ms !important;
}

/* ── Follow button ──────────────────────────────────────────── */
.wlt-follow-btn {
  transition:background 200ms ease-out,transform 120ms ease-out,
             box-shadow 200ms ease-out,border-color 200ms ease-out;
}
.wlt-follow-btn:not(.wlt-follow-btn--active):hover {
  transform:translateY(-1px);
  box-shadow:0 5px 16px rgba(0,152,234,.42);
  background:#0088d4;
}
.wlt-follow-btn:not(.wlt-follow-btn--active):active {
  transform:scale(.93);
  transition-duration:70ms;
}

/* ── Tabs ───────────────────────────────────────────────────── */
.wlt-prof-tab {
  transition:color 200ms ease-out,background 200ms ease-out,
             box-shadow 200ms ease-out,transform 120ms ease-out;
}
.wlt-prof-tab:active {
  transform:scale(.94) !important;
  transition-duration:70ms !important;
}

/* Tab content fade-in is handled via JS inline style */

/* ── PnL big value: accent left border on hover ─────────────── */
.wlt-perf-pnl-block .wlt-perf-big {
  transition:text-shadow 200ms ease-out;
}

/* ── Accessibility: respect reduced-motion ──────────────────── */
@media (prefers-reduced-motion:reduce) {
  .wlt-portfolio-snapshot,.wlt-ov-row .wlt-ov-stat,.wlt-wr,.wlt-wr-fill,
  .wlt-val-pop,.wlt-istat-icon-btn,.wlt-follow-btn,.wlt-prof-tab {
    animation:none !important;
    transition:none !important;
  }
}

/* ╔══════════════════════════════════════════════════════════╗
   ║            CREATED TAB — Premium Creator Dashboard      ║
   ╚══════════════════════════════════════════════════════════╝ */

/* Wrapper */
.cr-wrap{display:flex;flex-direction:column;min-height:100%}

/* ── Header ─────────────────────────────────────────────── */
.cr-hdr{display:flex;justify-content:space-between;align-items:center;padding:14px 16px 10px;flex-shrink:0}
.cr-launch-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:10px;background:linear-gradient(135deg,#0098EA,#006fc4);color:#fff;font-size:12px;font-weight:800;border:none;cursor:pointer;font-family:inherit;transition-property:background,box-shadow,transform;transition-duration:200ms ease-out;box-shadow:0 2px 12px rgba(0,152,234,.4),inset 0 1px 0 rgba(255,255,255,.15);letter-spacing:.01em}
.cr-launch-btn:hover{background:linear-gradient(135deg,#10a8ff,#007cd8);box-shadow:0 4px 18px rgba(0,152,234,.6);transform:translateY(-1px)}
.cr-launch-btn:active{transform:scale(.95);transition-duration:70ms}

/* Level badge */
.cr-lvl-badge{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:20px;font-size:11px;font-weight:800;border:1.5px solid;letter-spacing:.01em}
.cr-lvl-next{opacity:.5;font-weight:600;font-size:9.5px;margin-left:2px}
.cr-lvl-new      {background:rgba(107,114,128,.08);border-color:rgba(107,114,128,.18);color:var(--t3)}
.cr-lvl-creator  {background:rgba(0,200,83,.08);border-color:rgba(0,200,83,.22);color:#00C853}
.cr-lvl-pro      {background:rgba(0,152,234,.1);border-color:rgba(0,152,234,.25);color:var(--blue)}
.cr-lvl-master   {background:rgba(168,85,247,.1);border-color:rgba(168,85,247,.25);color:#A855F7}
.cr-lvl-legendary{background:linear-gradient(135deg,rgba(255,215,0,.12),rgba(255,180,0,.07));border-color:rgba(255,215,0,.4);color:#d4a600}

/* ── Overview ───────────────────────────────────────────── */
.cr-ov{padding:0 14px 14px;flex-shrink:0}

/* Progress bar */
.cr-prog-outer{margin-bottom:12px}
.cr-prog-meta{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px;font-size:12px;color:var(--t2)}
.cr-prog-meta strong{color:var(--t1);font-weight:800}
.cr-prog-meta-l,.cr-prog-meta-r{display:flex;align-items:center;gap:6px}
.cr-prog-pct{font-size:18px;font-weight:900;color:var(--t1);letter-spacing:-.4px}
.cr-ldot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}
.cr-ldot-g{background:#00C853;box-shadow:0 0 5px rgba(0,200,83,.55)}
.cr-ldot-b{background:#0098EA;box-shadow:0 0 5px rgba(0,152,234,.55)}
.cr-prog-track{display:flex;height:8px;border-radius:99px;overflow:hidden;background:rgba(10,37,64,.07)}
.cr-prog-g{background:#00C853;transition-property:width;transition-duration:.7s;transition-timing-function:cubic-bezier(.16,1,.3,1)}
.cr-prog-b{background:var(--blue);transition-property:width;transition-duration:.7s;transition-timing-function:cubic-bezier(.16,1,.3,1)}
/* Redundant with the "Graduated N / Bonding N" labels already shown in
   .cr-prog-meta above — the bar itself stays a clean, unlabeled ratio. */
.cr-prog-inner{display:none}

/* KPI row — plain typographic stats, no per-metric icon or card chrome
   (icons were purely decorative; consistent label+number reads calmer) */
.cr-kpi-row{display:grid;grid-template-columns:repeat(5,1fr);gap:0;border-top:1px solid rgba(10,37,64,.07);padding-top:14px;margin-top:14px}
.cr-kpi{border-right:1px solid rgba(10,37,64,.07);padding:0 8px;display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center;cursor:default}
.cr-kpi:last-child{border-right:none}
.cr-kpi:hover{background:none;transform:none;box-shadow:none}
.cr-kpi-ico{display:none}
.cr-kpi-val{font-size:15px;font-weight:800;color:var(--t1);letter-spacing:-.3px;line-height:1.1;font-variant-numeric:tabular-nums}
.cr-kpi-lbl{font-size:9px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--t3)}
.cr-kpi-pos .cr-kpi-val{color:#00C853}
[data-theme="dark"] .cr-prog-track{background:rgba(255,255,255,.08)}
[data-theme="dark"] .cr-kpi-row{border-top-color:rgba(255,255,255,.08)}
[data-theme="dark"] .cr-kpi{border-right-color:rgba(255,255,255,.08)}

/* ── Toolbar ─────────────────────────────────────────────── */
.cr-tb{padding:10px 14px;flex-shrink:0;display:flex;flex-direction:column;gap:7px;border-bottom:1.5px solid rgba(0,152,234,.07)}
.cr-tb-r1{display:flex;align-items:center;gap:8px}
.cr-tb-r2{display:flex;align-items:center;justify-content:space-between;gap:8px}

/* Search */
.cr-search-wrap{flex:1;position:relative}
.cr-search-ico{position:absolute;left:9px;top:50%;transform:translateY(-50%);color:var(--t3);pointer-events:none}
.cr-search-inp{width:100%;padding:7px 10px 7px 28px;border-radius:9px;border:1.5px solid rgba(0,152,234,.12);background:rgba(0,152,234,.04);font-size:12px;color:var(--t1);font-family:inherit;outline:none;transition:border-color .15s,background .15s;box-sizing:border-box}
.cr-search-inp:focus{border-color:rgba(0,152,234,.3);background:rgba(0,152,234,.06)}
.cr-search-inp::placeholder{color:var(--t3)}

/* View toggle */
.cr-view-tog{display:flex;border:1.5px solid rgba(0,152,234,.12);border-radius:9px;overflow:hidden;flex-shrink:0}
.cr-vbtn{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border:none;background:none;cursor:pointer;color:var(--t3);transition-property:background,color;transition-duration:.15s;font-family:inherit}
.cr-vbtn.active{background:rgba(0,152,234,.12);color:var(--blue)}
.cr-vbtn:hover:not(.active){background:rgba(0,152,234,.06);color:var(--t2)}

/* Filter pills */
.cr-fpills{display:flex;gap:5px;flex-wrap:wrap}
.cr-fpill{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;border-radius:20px;border:1.5px solid rgba(0,152,234,.12);background:rgba(0,152,234,.04);font-size:11px;font-weight:700;color:var(--t2);cursor:pointer;transition-property:background,border-color,color,transform;transition-duration:.15s;font-family:inherit;white-space:nowrap}
.cr-fpill.active{background:rgba(0,152,234,.12);border-color:rgba(0,152,234,.28);color:var(--blue)}
.cr-fpill:hover:not(.active){border-color:rgba(0,152,234,.2)}
.cr-fpill:active{transform:scale(.95);transition-duration:70ms}
.cr-fct{opacity:.6;font-weight:600;font-size:10px}
.cr-fdot{width:6px;height:6px;border-radius:50%;display:inline-block;flex-shrink:0}
.cr-fdot-g{background:#00C853}
.cr-fdot-b{background:#0098EA}

/* Sort select */
.cr-sort-sel{padding:5px 8px;border-radius:8px;border:1.5px solid rgba(0,152,234,.12);background:rgba(0,152,234,.04);font-size:11px;font-weight:700;color:var(--t2);cursor:pointer;outline:none;font-family:inherit;transition:border-color .15s;flex-shrink:0}
.cr-sort-sel:focus{border-color:rgba(0,152,234,.28)}

/* ── Table ───────────────────────────────────────────────── */
.cr-tbl-outer{overflow-x:auto;-webkit-overflow-scrolling:touch}
.cr-tbl{width:100%;border-collapse:collapse;min-width:340px}
.cr-thead-r{border-bottom:1.5px solid rgba(0,152,234,.08)}
.cr-th{padding:8px 12px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--t3);text-align:left;white-space:nowrap}
.cr-th-r{text-align:right}
.cr-tr{cursor:pointer;transition:background 140ms;border-bottom:1px solid rgba(0,152,234,.05)}
.cr-tr:hover{background:rgba(0,152,234,.04)}
.cr-tr:hover .cr-act-btn{opacity:1}
.cr-tr:last-child{border-bottom:none}
.cr-td{padding:9px 12px;vertical-align:middle;font-size:13px}
.cr-td-tok{display:flex;align-items:center;gap:8px}
.cr-td-info{min-width:0}
.cr-td-name{font-size:13px;font-weight:700;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:110px}
.cr-td-ticker{font-size:10px;font-weight:600;color:var(--t3)}
.cr-td-r{text-align:right}
.cr-td-mc{font-size:13px;font-weight:800;color:var(--t1)}
.cr-td-mc-ton{font-size:10px;color:var(--t3);margin-top:1px}
.cr-td-dim{color:var(--t3);font-size:12px}

/* Graduated badge */
.cr-badge-g{display:inline-flex;align-items:center;padding:3px 8px;border-radius:20px;font-size:10px;font-weight:800;background:rgba(0,200,83,.1);color:#00C853;border:1px solid rgba(0,200,83,.24);white-space:nowrap}
.cr-badge-g-sm{padding:2px 6px;font-size:9px}

/* Bonding progress in table */
.cr-bond-cell{display:flex;align-items:center;gap:6px;min-width:80px}
.cr-bond-bar{flex:1;height:5px;border-radius:3px;background:rgba(0,152,234,.1);overflow:hidden}
.cr-bond-prog{height:100%;border-radius:3px;background:linear-gradient(90deg,#0098EA,#00b8ea)}
.cr-bond-pct{font-size:11px;font-weight:800;color:var(--blue);white-space:nowrap;min-width:28px}

/* Action button */
.cr-act-btn{width:28px;height:28px;border-radius:7px;border:1.5px solid rgba(0,152,234,.14);background:rgba(0,152,234,.06);color:var(--t3);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition-property:background,border-color,color,transform,opacity;transition-duration:.15s;opacity:.55}
.cr-act-btn:hover{background:rgba(0,152,234,.14);color:var(--blue);border-color:rgba(0,152,234,.28);opacity:1}
.cr-act-btn:active{transform:scale(.95);transition-duration:60ms}

/* Sparkline */
.cr-spark{display:block;vertical-align:middle}
.cr-hide-xs{display:table-cell}

/* ── Grid ────────────────────────────────────────────────── */
.cr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(144px,1fr));gap:10px;padding:12px 14px}
.cr-card{background:rgba(0,152,234,.04);border:1.5px solid rgba(0,152,234,.1);border-radius:14px;padding:12px;cursor:pointer;transition:transform 220ms ease-out,border-color 220ms,background 220ms,box-shadow 220ms;display:flex;flex-direction:column;gap:9px}
.cr-card:hover{border-color:rgba(0,152,234,.26);background:rgba(0,152,234,.07);transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,152,234,.12)}
.cr-card:active{transform:scale(.97);transition-duration:70ms}
.cr-card-g{border-color:rgba(0,200,83,.16);background:rgba(0,200,83,.04)}
.cr-card-g:hover{border-color:rgba(0,200,83,.3);background:rgba(0,200,83,.07);box-shadow:0 6px 20px rgba(0,200,83,.12)}
.cr-card-hdr{display:flex;align-items:center;gap:8px}
.cr-card-id{flex:1;min-width:0}
.cr-card-name{font-size:12px;font-weight:800;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cr-card-tick{font-size:10px;color:var(--t3);font-weight:600}
.cr-card-spark{border-radius:8px;overflow:hidden;line-height:0}
.cr-card-foot{display:flex;align-items:flex-end;justify-content:space-between}
.cr-card-mc{font-size:14px;font-weight:900;color:var(--t1);letter-spacing:-.3px}
.cr-card-lbl{font-size:8.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--t3)}
.cr-card-prog-wrap{text-align:right}
.cr-card-prog-lbl{font-size:9px;font-weight:800;color:var(--blue);margin-bottom:3px}
.cr-card-prog-bar{width:56px;height:4px;border-radius:2px;background:rgba(0,152,234,.12);overflow:hidden;margin-left:auto}
.cr-card-prog-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,#0098EA,#00b8ea)}
.cr-card-grad-ico{font-size:18px;line-height:1}

/* ── Activity feed ───────────────────────────────────────── */
.cr-activity{padding:12px 14px;border-top:1.5px solid rgba(0,152,234,.07);margin-top:2px}
.cr-act-ttl{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--t3);margin-bottom:9px}
.cr-act-list{display:flex;flex-direction:column;gap:8px}
.cr-act-row{display:flex;align-items:center;gap:8px}
.cr-act-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.cr-act-dot-b{background:#00C853;box-shadow:0 0 5px rgba(0,200,83,.45)}
.cr-act-dot-s{background:#F5365C;box-shadow:0 0 5px rgba(245,54,92,.45)}
.cr-act-body{flex:1;display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
.cr-act-main{font-size:12px;font-weight:600;color:var(--t2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cr-act-time{font-size:10px;color:var(--t3);white-space:nowrap;flex-shrink:0}
.cr-act-amt{font-size:11px;font-weight:800;flex-shrink:0}

/* ── Empty state ─────────────────────────────────────────── */
.cr-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:52px 24px 48px;gap:12px;text-align:center;flex:1;position:relative;overflow:hidden}
.cr-empty-orb{position:absolute;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,rgba(0,152,234,.1),transparent 70%);pointer-events:none;top:50%;left:50%;transform:translate(-50%,-50%)}
.cr-empty-ico{position:relative;display:flex;align-items:center;justify-content:center;animation:crFloat 3.5s ease-in-out infinite}
.cr-empty-ico .te{width:56px;height:56px;opacity:.9;filter:drop-shadow(0 4px 14px rgba(0,152,234,.22))}
@keyframes crFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.cr-empty-title{font-size:18px;font-weight:900;color:var(--t1);letter-spacing:-.3px;position:relative}
.cr-empty-sub{font-size:13px;color:var(--t3);max-width:240px;line-height:1.55;position:relative}
.cr-empty-btn{display:inline-flex;align-items:center;gap:7px;padding:12px 26px;border-radius:12px;background:linear-gradient(135deg,#0098EA,#006fc4);color:#fff;font-size:14px;font-weight:800;border:none;cursor:pointer;font-family:inherit;transition-property:background,box-shadow,transform;transition-duration:200ms;box-shadow:0 4px 18px rgba(0,152,234,.45);position:relative;margin-top:4px}
.cr-empty-btn:hover{background:linear-gradient(135deg,#10a8ff,#007cd8);box-shadow:0 6px 26px rgba(0,152,234,.65);transform:translateY(-1px)}
.cr-empty-btn:active{transform:scale(.96);transition-duration:70ms}

/* No-results */
.cr-no-results{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:36px;gap:8px;color:var(--t3);font-size:13px;text-align:center}
.cr-no-results-ico{font-size:28px;margin-bottom:2px}

/* ── Dark theme ──────────────────────────────────────────── */
[data-theme="dark"] .cr-kpi{background:rgba(255,255,255,.03);border-color:rgba(255,255,255,.07)}
[data-theme="dark"] .cr-kpi:hover{background:rgba(255,255,255,.06);border-color:rgba(0,152,234,.2)}
[data-theme="dark"] .cr-prog-track{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.06)}
[data-theme="dark"] .cr-search-inp{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.08);color:var(--t1)}
[data-theme="dark"] .cr-search-inp:focus{border-color:rgba(0,152,234,.35);background:rgba(255,255,255,.07)}
[data-theme="dark"] .cr-fpill{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08);color:var(--t2)}
[data-theme="dark"] .cr-fpill.active{background:rgba(0,152,234,.16);border-color:rgba(0,152,234,.3)}
[data-theme="dark"] .cr-sort-sel{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.08);color:var(--t1)}
[data-theme="dark"] .cr-view-tog{border-color:rgba(255,255,255,.09)}
[data-theme="dark"] .cr-vbtn{color:rgba(255,255,255,.35)}
[data-theme="dark"] .cr-vbtn.active{background:rgba(0,152,234,.16);color:var(--blue)}
[data-theme="dark"] .cr-tr{border-bottom-color:rgba(255,255,255,.05)}
[data-theme="dark"] .cr-tr:hover{background:rgba(255,255,255,.04)}
[data-theme="dark"] .cr-card{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.07)}
[data-theme="dark"] .cr-card:hover{background:rgba(255,255,255,.07);border-color:rgba(0,152,234,.22)}
[data-theme="dark"] .cr-card-g{background:rgba(0,200,83,.05);border-color:rgba(0,200,83,.15)}
[data-theme="dark"] .cr-card-g:hover{background:rgba(0,200,83,.09)}
[data-theme="dark"] .cr-act-btn{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.08);color:rgba(255,255,255,.4)}
[data-theme="dark"] .cr-act-btn:hover{background:rgba(0,152,234,.15);color:var(--blue);border-color:rgba(0,152,234,.28)}
[data-theme="dark"] .cr-bond-bar{background:rgba(255,255,255,.08)}
[data-theme="dark"] .cr-card-prog-bar{background:rgba(255,255,255,.07)}
[data-theme="dark"] .cr-thead-r{border-bottom-color:rgba(255,255,255,.06)}
[data-theme="dark"] .cr-activity{border-top-color:rgba(255,255,255,.06)}
[data-theme="dark"] .cr-tb{border-bottom-color:rgba(255,255,255,.06)}

/* ── Mobile ──────────────────────────────────────────────── */
@media (max-width:600px) {
  .cr-kpi-row{grid-template-columns:repeat(3,1fr)}
  .cr-kpi:nth-child(4),.cr-kpi:nth-child(5){display:none}
  .cr-hide-xs{display:none!important}
  .cr-grid{grid-template-columns:1fr;padding:8px 10px}
  .cr-prog-meta{font-size:11px}
  .cr-prog-pct{font-size:15px}
  .cr-ov{padding:0 10px 12px}
  .cr-tb{padding:8px 10px}
  .cr-hdr{padding:12px 10px 8px}
  .cr-tbl-outer{padding:0}
}

/* ═══════════════ PERFORMANCE v2 — asymmetric premium layout ═══════════════ */
.wlt-perf2{margin:0 12px 12px;border:1.5px solid rgba(0,152,234,.12);border-radius:16px;overflow:hidden;background:rgba(0,152,234,.02);animation:wltFadeUp 280ms ease-out both}
.wlt-perf2-hdr{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1.5px solid rgba(0,152,234,.08);gap:8px}
.wlt-perf2-title{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--t3);flex:1}
.wlt-perf2-actions{display:flex;align-items:center;gap:6px}
.wlt-perf2-cal-btn{display:flex;align-items:center;gap:5px;padding:5px 10px 5px 8px;border:1.5px solid rgba(0,152,234,.2);border-radius:8px;background:rgba(0,152,234,.07);font-family:'Inter',sans-serif;font-size:11px;font-weight:700;color:var(--blue);cursor:pointer;transition-property:background,border-color,transform;transition-duration:.15s;white-space:nowrap}
.wlt-perf2-cal-btn:hover{background:rgba(0,152,234,.14);border-color:var(--blue)}
.wlt-perf2-cal-btn:active{transform:scale(.96)}
.wlt-perf2-hero{display:grid;grid-template-columns:2fr 1.5fr 1.2fr;border-bottom:1.5px solid rgba(0,152,234,.08)}
.wlt-perf2-col{display:flex;flex-direction:column;padding:14px 14px 12px}
.wlt-perf2-col+.wlt-perf2-col{border-left:1.5px solid rgba(0,152,234,.08)}
.wlt-perf2-lbl{font-size:9px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--t3);flex-shrink:0}
.wlt-perf2-pnl{background:linear-gradient(135deg,rgba(0,200,83,.06),transparent 70%);gap:1px}
.wlt-perf2-pnl-num{font-size:26px;font-weight:900;letter-spacing:-.7px;line-height:1.05;margin-top:4px}
.wlt-perf2-pnl-usd{font-size:11px;color:var(--t3);margin-top:1px}
.wlt-perf2-spark{width:100%;height:28px;margin-top:8px;flex-shrink:0}
.wlt-perf2-wr{align-items:center;justify-content:center;gap:4px;background:rgba(0,152,234,.03)}
.wlt-perf2-donut-wrap{position:relative;margin-top:4px}
.wlt-perf2-donut{display:block;max-width:100%}
.wlt-perf2-wl{font-size:10.5px;font-weight:700;color:var(--t2);text-align:center}
.wlt-perf2-best{background:linear-gradient(135deg,rgba(255,165,0,.04),transparent 65%);gap:3px;justify-content:center}
.wlt-perf2-best-ico{display:flex;align-items:center;gap:6px;margin-top:6px}
.wlt-perf2-best-sym{font-size:12px;font-weight:800;color:var(--t1);letter-spacing:-.2px}
.wlt-perf2-best-num{font-size:16px;font-weight:900;letter-spacing:-.4px;color:#00C853;line-height:1.1;margin-top:2px}
.wlt-perf2-best-unit{font-size:10px;font-weight:700}
.wlt-perf2-no-data{font-size:18px;color:var(--t3);margin-top:8px}
.wlt-perf2-foot{display:grid;grid-template-columns:repeat(4,1fr)}
.wlt-perf2-metric{display:flex;align-items:center;gap:8px;padding:10px 10px 10px 12px;border-right:1.5px solid rgba(0,152,234,.08);transition:background .15s}
.wlt-perf2-metric:last-child{border-right:none}
.wlt-perf2-metric-ico{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .15s,box-shadow .15s}
.wlt-perf2-metric-ico--blue{background:rgba(0,152,234,.12);color:#0098EA}
.wlt-perf2-metric-ico--teal{background:rgba(0,200,180,.12);color:#00B8B0}
.wlt-perf2-metric-ico--amber{background:rgba(255,170,0,.12);color:#FFAA00}
.wlt-perf2-metric-ico--green{background:rgba(0,200,83,.12);color:#00C853}
.wlt-perf2-metric--blue{background:rgba(0,152,234,.015)}
.wlt-perf2-metric--teal{background:rgba(0,200,180,.015)}
.wlt-perf2-metric--amber{background:rgba(255,170,0,.01)}
.wlt-perf2-metric--green{background:rgba(0,200,83,.015)}
.wlt-perf2-metric:hover .wlt-perf2-metric-ico{transform:scale(1.12)}
.wlt-perf2-metric--blue:hover{background:rgba(0,152,234,.04)}
.wlt-perf2-metric--teal:hover{background:rgba(0,200,180,.04)}
.wlt-perf2-metric--amber:hover{background:rgba(255,170,0,.03)}
.wlt-perf2-metric--green:hover{background:rgba(0,200,83,.04)}
.wlt-perf2-metric-body{display:flex;flex-direction:column;gap:1px;min-width:0}
.wlt-perf2-metric-val{font-size:14px;font-weight:900;color:var(--t1);letter-spacing:-.3px;line-height:1;white-space:nowrap}
.wlt-perf2-metric-lbl{font-size:9px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--t3);white-space:nowrap}
[data-theme="dark"] .wlt-perf2{background:rgba(255,255,255,.02);border-color:rgba(255,255,255,.08)}
[data-theme="dark"] .wlt-perf2-hdr{border-bottom-color:rgba(255,255,255,.07)}
[data-theme="dark"] .wlt-perf2-hero{border-bottom-color:rgba(255,255,255,.07)}
[data-theme="dark"] .wlt-perf2-col+.wlt-perf2-col{border-left-color:rgba(255,255,255,.07)}
[data-theme="dark"] .wlt-perf2-pnl{background:linear-gradient(135deg,rgba(0,200,83,.08),transparent 70%)}
[data-theme="dark"] .wlt-perf2-wr{background:rgba(255,255,255,.02)}
[data-theme="dark"] .wlt-perf2-best{background:linear-gradient(135deg,rgba(255,165,0,.06),transparent 65%)}
[data-theme="dark"] .wlt-perf2-metric{border-right-color:rgba(255,255,255,.07)}
[data-theme="dark"] .wlt-perf2-metric--blue{background:rgba(0,152,234,.03)}
[data-theme="dark"] .wlt-perf2-metric--teal{background:rgba(0,200,180,.03)}
[data-theme="dark"] .wlt-perf2-metric--amber{background:rgba(255,170,0,.02)}
[data-theme="dark"] .wlt-perf2-metric--green{background:rgba(0,200,83,.03)}
[data-theme="dark"] .wlt-perf2-metric-ico--blue{background:rgba(0,152,234,.18);color:#0098EA}
[data-theme="dark"] .wlt-perf2-metric-ico--teal{background:rgba(0,200,180,.18);color:#00C8B8}
[data-theme="dark"] .wlt-perf2-metric-ico--amber{background:rgba(255,170,0,.18);color:#FFBA00}
[data-theme="dark"] .wlt-perf2-metric-ico--green{background:rgba(0,200,83,.18);color:#00E060}
[data-theme="dark"] .wlt-perf2-cal-btn{border-color:rgba(0,152,234,.3);background:rgba(0,152,234,.12)}
[data-theme="dark"] .wlt-perf2-metric--blue:hover{background:rgba(0,152,234,.06)}
[data-theme="dark"] .wlt-perf2-metric--teal:hover{background:rgba(0,200,180,.06)}
[data-theme="dark"] .wlt-perf2-metric--amber:hover{background:rgba(255,170,0,.05)}
[data-theme="dark"] .wlt-perf2-metric--green:hover{background:rgba(0,200,83,.06)}
@media(max-width:480px){
  .wlt-perf2{margin:0 8px 8px}
  .wlt-perf2-hero{grid-template-columns:1.9fr 1.4fr 1fr}
  .wlt-perf2-col{padding:12px 10px 10px}
  .wlt-perf2-pnl-num{font-size:21px;letter-spacing:-.5px}
  .wlt-perf2-best-num{font-size:14px}
  .wlt-perf2-best-sym{font-size:11px}
  .wlt-perf2-metric{padding:8px 6px 8px 8px;gap:6px}
  .wlt-perf2-metric-ico{width:24px;height:24px;border-radius:7px}
  .wlt-perf2-metric-val{font-size:12px}
  .wlt-perf2-metric-lbl{font-size:8px}
}
@media(prefers-reduced-motion:reduce){.wlt-perf2{animation:none}}



/* ═══════════════════════════════════════════════════════════════
   DEX VIEW — VellaSwap
   ═══════════════════════════════════════════════════════════════ */

/* ── Nav badge ── */
.nav-dex-badge{
  font-size:10px;font-weight:700;letter-spacing:.3px;
  background:linear-gradient(90deg,var(--blue),var(--blue2));
  color:#fff;border-radius:5px;padding:2px 6px;margin-left:auto;
  flex-shrink:0
}

/* ── Outer view ── */
.dex-view{
  display:none;flex-direction:column;
  padding:24px 28px 40px;
  min-height:calc(100vh - 58px);
  gap:20px;
  flex:1;min-width:0;
  /* Critical layout: keep Faulty Terminal bg out of document flow even if
     dex-terminal.css fails to load (e.g. missing from a deploy manifest). */
  position:relative;
  isolation:isolate;
  overflow-x:hidden;
}
.dex-view.active{display:flex}

/* Faulty Terminal host — absolute fill so canvas never pushes swap UI down */
.dex-faulty-bg{
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  overflow:hidden;
  background:#040806;
  min-height:100%;
}
.dex-faulty-canvas{
  display:block;
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  pointer-events:none;
}
/* Emergency no-WebGL grid if dex-terminal.css fails to load */
.dex-faulty-fallback{
  background-color:#040806;
  background-image:
    linear-gradient(180deg, transparent 0%, rgba(167,239,158,.10) 48%, transparent 100%),
    radial-gradient(ellipse 90% 70% at 46% 36%, rgba(167,239,158,.30), transparent 68%),
    repeating-linear-gradient(0deg, transparent 0 12px, rgba(167,239,158,.14) 12px 13px),
    repeating-linear-gradient(90deg, transparent 0 8px, rgba(167,239,158,.10) 8px 9px),
    repeating-linear-gradient(0deg, rgba(167,239,158,.14) 0 1px, transparent 1px 3px);
  background-size:100% 180%, 100% 100%, 100% 100%, 100% 100%, 100% 100%;
  background-position:0 -30%, 0 0, 0 0, 0 0, 0 0;
  animation:dex-term-scan-fallback 5.5s linear infinite;
}
@keyframes dex-term-scan-fallback{
  0%{background-position:0 -50%,0 0,0 0,0 0,0 0}
  100%{background-position:0 160%,0 0,0 0,0 0,0 0}
}
.dex-view > *:not(.dex-faulty-bg){
  position:relative;
  z-index:2;
}

/* ── Hero ── */
.dex-hero{
  background:var(--bg2);border:1px solid var(--b2);border-radius:16px;
  padding:20px 24px;box-shadow:var(--el-1);display:flex;flex-direction:column;gap:14px
}
.dex-hero-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
.dex-hero-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.dex-ext-btn{
  display:flex;align-items:center;gap:6px;
  font-size:11px;font-weight:600;border-radius:8px;
  padding:6px 11px;text-decoration:none;transition:opacity .15s,transform .12s;
  white-space:nowrap
}
.dex-ext-btn:hover{opacity:.85;transform:translateY(-1px)}
.dex-ext-dsc{background:var(--bg3);color:var(--t2);border:1px solid var(--b1)}
.dex-ext-gecko{background:var(--bg3);color:var(--t2);border:1px solid var(--b1)}
.dex-badges{display:flex;flex-wrap:wrap;gap:6px}
.dex-badge{
  display:inline-flex;align-items:center;gap:5px;
  font-size:11px;font-weight:600;color:var(--t2);
  background:var(--bg3);border:1px solid var(--b1);
  border-radius:99px;padding:4px 10px;
}
.dex-badge-live{color:#00c853;border-color:rgba(0,200,83,.25);background:rgba(0,200,83,.07)}
.dex-badge-dot{
  width:6px;height:6px;border-radius:50%;background:#00c853;
  animation:dexDotPulse 2s ease-in-out infinite
}
.dex-hero-left{display:flex;align-items:center;gap:12px;flex:1;min-width:220px}
.dex-hero-icon{
  width:44px;height:44px;border-radius:12px;
  background:linear-gradient(135deg,var(--blue),var(--blue2));
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 16px rgba(0,152,234,.35);flex-shrink:0
}
.dex-hero-text{flex:1}
.dex-hero-title{font-size:20px;font-weight:800;letter-spacing:-.4px;color:var(--t1)}
.dex-hero-sub{font-size:12px;color:var(--t3);margin-top:2px}
.dex-dev-badge{
  display:flex;align-items:center;gap:6px;
  font-size:11px;font-weight:600;
  color:var(--gold);
  background:rgba(255,179,0,.1);
  border:1px solid rgba(255,179,0,.25);
  border-radius:99px;padding:5px 12px;white-space:nowrap;flex-shrink:0
}
.dex-dev-dot{
  width:6px;height:6px;border-radius:50%;
  background:var(--gold);
  animation:dexDotPulse 2s ease-in-out infinite
}
@keyframes dexDotPulse{
  0%,100%{opacity:1;transform:scale(1)}
  50%{opacity:.4;transform:scale(.7)}
}
.dex-hero-stats{
  display:flex;align-items:center;gap:0;
  background:var(--bg3);border:1px solid var(--b1);border-radius:12px;
  overflow:hidden
}
.dex-hero-stat{padding:10px 20px;text-align:center}
.dex-hero-stat-div{width:1px;background:var(--b2);align-self:stretch}
.dex-hs-lbl{font-size:11px;color:var(--t3);font-weight:500;margin-bottom:2px}
.dex-hs-val{font-size:16px;font-weight:700;color:var(--t1)}

/* ── Panels ── */
.dex-panel{display:flex;flex-direction:column;gap:16px}

/* ── SWAP layout ── */
.dex-swap-layout{
  display:grid;
  grid-template-columns:440px 1fr;
  gap:20px;align-items:start
}
@media(max-width:900px){.dex-swap-layout{grid-template-columns:1fr}}

/* ── Swap card ── */
.dex-swap-card{
  background:var(--bg2);
  border:1px solid var(--b2);border-radius:20px;
  padding:0;overflow:hidden;
  box-shadow:var(--el-2)
}
/* First box breathes now that the settings header is gone */
.dex-sc-pay{margin-top:16px}
/* Trade-settings bar under the Swap CTA (mirrors market order) */
.dex-sc-slip{margin:10px 14px 16px;width:calc(100% - 28px)}

/* Token input boxes */
.dex-sc-box{
  margin:12px 14px 0;
  background:var(--bg3);border:1.5px solid var(--b1);
  border-radius:14px;padding:14px 16px;
  transition:border-color .15s
}
.dex-sc-box:focus-within{border-color:var(--b3);background:var(--bg2)}
.dex-sc-box-lbl{font-size:11px;font-weight:600;color:var(--t3);letter-spacing:.3px;text-transform:uppercase;margin-bottom:8px}
.dex-sc-inp-row{display:flex;align-items:center;gap:10px}
.dex-sc-inp{
  flex:1;border:none;background:transparent;-webkit-appearance:none;appearance:none;
  font-family:'Inter',sans-serif;font-size:26px;font-weight:600;
  color:var(--t1);outline:none;min-width:0;width:100%
}
.dex-sc-inp:focus,.dex-sc-inp:focus-visible{outline:none;box-shadow:none!important;border:none}
.dex-sc-inp::placeholder{color:var(--b3)}
.dex-sc-inp::-webkit-outer-spin-button,.dex-sc-inp::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.dex-sc-inp{-moz-appearance:textfield}
.dex-sc-inp-out{color:var(--t2)}
.dex-sc-out{
  flex:1;font-family:'Inter',sans-serif;font-size:26px;font-weight:600;
  color:var(--t1);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  user-select:text
}
.dex-sc-tok{
  display:flex;align-items:center;gap:7px;
  padding:8px 12px;border-radius:99px;border:1.5px solid var(--b2);
  background:var(--bg2);cursor:pointer;flex-shrink:0;
  font-family:'Inter',sans-serif;font-size:14px;font-weight:700;color:var(--t1);
  transition-property:background,border-color;transition-duration:.15s;white-space:nowrap
}
.dex-sc-tok:hover{border-color:var(--b3);background:var(--bg3)}
.dex-sc-tok-gram{background:linear-gradient(135deg,rgba(0,152,234,.08),rgba(77,184,255,.12));border-color:rgba(0,152,234,.25)}
.dex-sc-tok-select{color:var(--blue);border-color:var(--b3)}
.dex-sc-box-foot{display:flex;justify-content:space-between;align-items:center;margin-top:8px}
.dex-sc-box-usd{font-size:12px;color:var(--t3)}
.dex-sc-bal{font-size:12px;color:var(--t3);display:flex;gap:5px;align-items:center}
.dex-sc-max{
  font-size:11px;font-weight:700;color:var(--blue);
  background:rgba(0,152,234,.1);border-radius:4px;padding:1px 6px;
  cursor:pointer
}
.dex-sc-max:hover{background:rgba(0,152,234,.2)}

/* Flip button */
.dex-sc-flip-wrap{
  display:flex;justify-content:center;align-items:center;
  padding:6px 0;position:relative;z-index:1
}
.dex-sc-flip{
  width:36px;height:36px;border-radius:10px;
  background:var(--bg2);border:2px solid var(--b2);
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  color:var(--t2);transition-property:background,border-color,color,box-shadow,transform;transition-duration:.2s}
.dex-sc-flip:hover{
  background:linear-gradient(135deg,var(--blue),var(--blue2));
  color:#fff;border-color:transparent;
  box-shadow:0 4px 12px rgba(0,152,234,.35);
  transform:rotate(180deg)
}
.dex-sc-flip svg{width:16px;height:16px}

/* Receive second box */
.dex-sc-recv{margin-bottom:0}

/* Details section */
.dex-sc-details{
  margin:10px 14px 0;
  background:var(--bg3);border:1px solid var(--b1);border-radius:12px;
  padding:12px 16px;display:flex;flex-direction:column;gap:7px
}
.dex-sc-det-row{display:flex;justify-content:space-between;align-items:baseline;font-size:12px}
.dex-sc-det-lbl{color:var(--t3);font-weight:500}
.dex-sc-det-val{color:var(--t1);font-weight:500;text-align:right}
.dex-sc-det-sub{color:var(--t3);font-size:11px;margin-left:4px}

/* CTA button */
.dex-sc-cta{
  display:flex;align-items:center;justify-content:center;gap:8px;
  width:calc(100% - 28px);margin:12px 14px;
  height:52px;border-radius:14px;border:none;cursor:pointer;
  font-family:'Inter',sans-serif;font-size:15px;font-weight:700;
  background:linear-gradient(90deg,var(--blue),var(--blue2));
  color:#fff;border:1.5px solid transparent;
  box-shadow:0 4px 20px rgba(0,152,234,.4);
  transition-property:box-shadow,transform;transition-duration:.2s}
.dex-sc-cta:hover{
  box-shadow:0 6px 28px rgba(0,152,234,.55);transform:translateY(-1px)
}
.dex-sc-cta svg{width:16px;height:16px;flex-shrink:0}

/* Notice */
.dex-sc-notice{
  display:flex;align-items:center;justify-content:center;gap:6px;
  margin:0 14px 16px;
  font-size:11px;color:var(--t3);
  background:var(--bg3);border-radius:8px;padding:8px 12px;text-align:center
}
.dex-sc-notice svg{flex-shrink:0;color:var(--blue)}

/* ── Side panel ── */
.dex-side{display:flex;flex-direction:column;gap:16px}
.dex-side-card{
  background:var(--bg2);border:1px solid var(--b1);border-radius:16px;
  padding:18px 20px;box-shadow:var(--el-1)
}
.dex-side-hdr{
  display:flex;align-items:center;gap:8px;
  font-size:13px;font-weight:700;color:var(--t1);
  margin-bottom:14px
}
.dex-why-list{display:flex;flex-direction:column;gap:12px}
.dex-why-row{display:flex;align-items:flex-start;gap:10px}
.dex-why-ico{
  width:22px;height:22px;border-radius:6px;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0
}
.dex-why-ico-grn{background:rgba(0,200,83,.12);color:var(--grn)}
.dex-why-ico-blue{background:rgba(0,152,234,.1);color:var(--blue)}
.dex-why-ico-purple{background:rgba(120,80,255,.1);color:#7850ff}
.dex-why-ico-gold{background:rgba(255,179,0,.12);color:var(--gold)}
.dex-why-ico svg{width:12px;height:12px}
.dex-why-text{}
.dex-why-title{font-size:13px;font-weight:600;color:var(--t1)}
.dex-why-sub{font-size:12px;color:var(--t3);margin-top:1px}

/* Fee bars in side card */
.dex-fee-list{display:flex;flex-direction:column;gap:9px}
.dex-fee-row{display:flex;align-items:center;gap:10px}
.dex-fee-name{font-size:12px;color:var(--t2);min-width:150px}
.dex-fee-track{flex:1;height:6px;background:var(--bg3);border-radius:99px;overflow:hidden}
.dex-fee-fill{height:100%;border-radius:99px;transition:width .5s}
.dex-fee-fill--lp{background:var(--blue)}
.dex-fee-pct{font-size:12px;font-weight:600;color:var(--t1);min-width:36px;text-align:right}
.dex-fee-total{font-size:12px;font-weight:700;color:var(--blue);text-align:right;margin-top:4px}

/* Progress card */
.dex-prog-card{
  background:var(--bg2);border:1px solid var(--b1);border-radius:14px;
  padding:20px 24px;box-shadow:var(--el-1)
}
.dex-prog-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px;flex-wrap:wrap;gap:8px}
.dex-prog-lbl{font-size:11px;text-transform:uppercase;letter-spacing:.7px;color:var(--t3);font-weight:600}
.dex-prog-val{font-size:13px;font-weight:700;color:var(--grn)}
.dex-prog-track{height:8px;background:var(--bg3);border-radius:99px;overflow:hidden}
.dex-prog-fill{height:100%;background:linear-gradient(90deg,var(--blue),var(--grn));border-radius:99px;transition:width .5s}
.dex-prog-note{font-size:12px;color:var(--t3);margin-top:8px}

/* Tasks */
.dex-tasks{display:flex;flex-direction:column;gap:6px}
.dex-task{
  display:flex;align-items:center;gap:12px;
  background:var(--bg2);border:1px solid var(--b1);
  border-radius:10px;padding:11px 14px;
  transition:border-color .15s
}
.dex-task-done{border-color:rgba(0,200,83,.2);background:rgba(0,200,83,.03)}
.dex-task-todo{opacity:.6}
.dex-task-ico{
  width:20px;height:20px;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:700
}
.dex-task-done .dex-task-ico{background:rgba(0,200,83,.15);color:var(--grn)}
.dex-task-todo .dex-task-ico{background:var(--bg3);color:var(--t3)}
.dex-task-name{flex:1;font-size:13px;color:var(--t1)}
.dex-task-name em{font-style:normal;color:var(--t3);font-size:12px;margin-left:6px}
.dex-task-tag{
  font-size:10px;font-weight:600;
  background:var(--bg3);border:1px solid var(--b1);
  border-radius:4px;padding:2px 7px;color:var(--t3);
  flex-shrink:0;white-space:nowrap
}
.dex-task-done .dex-task-tag{background:rgba(0,200,83,.1);border-color:rgba(0,200,83,.2);color:var(--grn)}

/* ── Architecture diagram ─────────────────────────────── */
.dex-arch{
  background:#0d0f14;border-radius:14px;
  padding:20px 24px;overflow-x:auto;
  border:1px solid rgba(255,255,255,.06)
}
.dex-arch-pre{
  font-family:'JetBrains Mono','Fira Code','Cascadia Code',monospace;
  font-size:12px;color:#c9d1d9;line-height:1.85;
  white-space:pre;tab-size:2
}
.da-c{color:#6b7280}
.da-g{color:#3dd68c}
.da-b{color:#4f8fff}
.da-p{color:#a78bfa}
.da-y{color:#fbbf24}
.da-r{color:#f5365c}

/* Two-col layout for gas table + fee */
.dex-doc-2col{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media(max-width:700px){.dex-doc-2col{grid-template-columns:1fr}}
.dex-doc-section-col{margin:0}

/* Tables */
.dex-doc-table{width:100%;border-collapse:collapse}
.dex-doc-table thead th{
  text-align:left;font-size:11px;font-weight:600;
  text-transform:uppercase;letter-spacing:.7px;
  color:var(--t3);border-bottom:1px solid var(--b1);
  padding:8px 12px;background:var(--bg3)
}
.dex-doc-table tbody td{
  padding:9px 12px;font-size:12px;
  border-bottom:1px solid var(--b1);color:var(--t2)
}
.dex-doc-table tbody tr:last-child td{border-bottom:none}
.dex-doc-table tbody tr:hover td{background:var(--bg3)}
.dex-doc-table{background:var(--bg2);border:1px solid var(--b1);border-radius:12px;overflow:hidden}
.dex-tbl-bold td{font-weight:700;color:var(--t1) !important}
.dex-mono{font-family:'JetBrains Mono','Fira Code',monospace;font-size:11px;color:var(--blue)}
.dex-op{color:#7850ff}
.dex-col-r{text-align:right;font-family:'JetBrains Mono','Fira Code',monospace;color:var(--grn)}
.dex-muted{color:var(--t3)}

/* Doc fee bars */
.dex-doc-fees{
  background:var(--bg2);border:1px solid var(--b1);border-radius:12px;
  padding:16px 18px;display:flex;flex-direction:column;gap:10px
}
.dex-df-row{display:flex;align-items:center;gap:10px}
.dex-df-lbl{font-size:12px;color:var(--t2);min-width:140px;flex-shrink:0}
.dex-df-track{flex:1;height:6px;background:var(--bg3);border-radius:99px;overflow:hidden}
.dex-df-fill{height:100%;border-radius:99px}
.dex-df-pct{font-size:12px;font-weight:600;color:var(--t1);min-width:38px;text-align:right}
.dex-df-total{display:flex;align-items:center;gap:10px;padding-top:10px;border-top:1px solid var(--b1)}
.dex-df-note{font-size:12px;color:var(--t3);margin-top:4px}

/* Risks */
.dex-risks{
  background:var(--bg2);border:1px solid var(--b1);border-radius:12px;
  padding:4px 16px
}
.dex-risk-row{
  display:flex;gap:12px;align-items:flex-start;
  padding:12px 0;border-bottom:1px solid var(--b1)
}
.dex-risk-row:last-child{border-bottom:none}
.dex-risk-badge{
  font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;
  padding:3px 8px;border-radius:4px;flex-shrink:0;margin-top:2px;white-space:nowrap
}
.dex-risk-low{background:rgba(0,200,83,.12);color:var(--grn)}
.dex-risk-med{background:rgba(255,179,0,.12);color:var(--gold)}
.dex-risk-high{background:rgba(245,54,92,.12);color:var(--red)}
.dex-risk-body{flex:1}
.dex-risk-body strong{font-size:13px;font-weight:600;color:var(--t1);display:block;margin-bottom:2px}
.dex-risk-body span{font-size:12px;color:var(--t3)}

/* ── Mobile adjustments ── */
@media(max-width:600px){
  .dex-view{padding:16px 14px 32px;gap:14px}
  .dex-hero{flex-direction:column;align-items:flex-start;padding:16px}
  .dex-hero-stats{width:100%;justify-content:space-between;overflow-x:auto}
  .dex-hero-stat{padding:8px 12px}
  .dex-hs-val{font-size:14px}
  .dex-sc-inp{font-size:20px}
  .dex-sc-out{font-size:20px}
  .dex-doc-2col{grid-template-columns:1fr}
  .dex-arch{padding:14px}
  .dex-arch-pre{font-size:10px}
}

/* ── TOKEN SELECTOR MODAL ────────────────────────────────────────────────── */
.tsel-backdrop{position:fixed;inset:0;background:transparent;z-index:1100}
.tsel-modal{
  position:fixed;top:0;left:0;transform:none;
  width:min(400px,94vw);max-height:min(70vh,420px);
  background:rgba(248,252,255,.97);border:none;
  border-radius:16px;z-index:1101;display:flex;flex-direction:column;overflow:hidden;
  box-shadow:
    0 0 0 1px rgba(0,152,234,.14),
    0 1px 0 rgba(255,255,255,.7) inset,
    0 24px 64px rgba(10,37,64,.2);
  animation:wbdRise .28s cubic-bezier(0.2,0,0,1);
}
[data-theme="dark"] .tsel-modal{
  background:#161616;
  box-shadow:
    0 0 0 1px rgba(255,255,255,.1),
    0 1px 0 rgba(255,255,255,.05) inset,
    0 24px 64px rgba(0,0,0,.55);
}
.tsel-top{
  display:flex;align-items:center;gap:10px;padding:12px 14px;
  border-bottom:1px solid rgba(0,152,234,.08);
}
[data-theme="dark"] .tsel-top{border-bottom-color:rgba(255,255,255,.08)}
.tsel-top-ico{width:16px;height:16px;object-fit:contain;opacity:.55;flex-shrink:0}
.tsel-search{
  flex:1;min-width:0;background:none;border:none;outline:none;
  font-family:inherit;font-size:14px;font-weight:500;color:var(--t1,#f1f5f9);
  letter-spacing:-.01em;box-shadow:none!important;
}
.tsel-search:focus,.tsel-search:focus-visible{outline:none;box-shadow:none!important;border:none}
.tsel-search::placeholder{color:var(--t3,#64748b);font-weight:500}
.tsel-esc{
  flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;
  background:rgba(0,152,234,.08);border:1px solid rgba(0,152,234,.2);
  border-radius:6px;padding:4px 8px;font-size:10px;color:var(--t2,#94a3b8);cursor:pointer;
  font-weight:700;font-family:inherit;line-height:1;
}
.tsel-esc:hover{background:rgba(0,152,234,.13);color:var(--blue)}
[data-theme="dark"] .tsel-esc{
  background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12);color:#8A8A82
}
[data-theme="dark"] .tsel-esc:hover{background:rgba(255,255,255,.1);color:#F4F4EF}
.tsel-body{overflow-y:auto;flex:1;padding:6px 8px 10px;max-height:min(52vh,340px)}
.tsel-section{
  font-size:10px;font-weight:700;letter-spacing:.08em;color:var(--t3,#64748b);
  text-transform:uppercase;margin:8px 10px 4px;
}
.tsel-row{
  display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:8px;
  cursor:pointer;transition-property:background,transform;transition-duration:.15s;
  transition-timing-function:cubic-bezier(0.2,0,0,1);min-height:44px;
}
.tsel-row:hover,.tsel-row.tsel-row--active{background:rgba(0,0,0,.045)}
[data-theme="dark"] .tsel-row:hover,[data-theme="dark"] .tsel-row.tsel-row--active{background:rgba(255,255,255,.06)}
.tsel-row:active{transform:scale(.96)}
.tsel-ico{
  width:36px;height:36px;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:16px;overflow:hidden;
  outline:1px solid rgba(0,0,0,.1);outline-offset:-1px;
}
[data-theme="dark"] .tsel-ico{outline-color:rgba(255,255,255,.1)}
.tsel-ico img{width:100%;height:100%;object-fit:cover;display:block;border-radius:50%}
.tsel-ico-emoji{border-radius:50%!important}
.tsel-info{flex:1;min-width:0}
.tsel-name{font-size:14px;font-weight:600;color:var(--t1,#f1f5f9);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tsel-ticker{font-size:12px;font-weight:500;color:var(--t3,#64748b);margin-top:2px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.tsel-meta{margin-left:auto;text-align:right;flex-shrink:0}
.tsel-meta-main{font-size:12.5px;font-weight:700;color:var(--t1,#f1f5f9);font-variant-numeric:tabular-nums}
.tsel-meta-sub{font-size:10.5px;color:var(--t3,#64748b);margin-top:2px;font-variant-numeric:tabular-nums}
.tsel-badge-dex,
.tsel-badge-curve{
  display:inline-flex;align-items:center;gap:3px;font-size:9px;font-weight:800;
  padding:2px 6px;border-radius:5px;letter-spacing:.04em;
  background:rgba(0,0,0,.05);color:var(--t3,#64748b);
}
[data-theme="dark"] .tsel-badge-dex,
[data-theme="dark"] .tsel-badge-curve{
  background:rgba(255,255,255,.08);color:#8A8A82;
}
.tsel-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}
.tsel-act-btn{
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);border-radius:7px;
  color:var(--t3,#64748b);font-size:10px;font-weight:700;padding:4px 8px;cursor:pointer;
  transition-property:color,border-color,background;transition-duration:.12s;text-decoration:none;
}
.tsel-act-btn:hover{color:var(--t1,#f1f5f9);border-color:rgba(255,255,255,.28);background:rgba(255,255,255,.08)}
.tsel-empty{padding:40px 20px;text-align:center;color:var(--t3,#64748b)}
.tsel-empty-t{font-size:14px;font-weight:700;color:var(--t2,#94a3b8)}
.tsel-empty-s{font-size:12px;margin-top:4px}
.tsel-foot{
  display:flex;align-items:center;gap:14px;padding:10px 16px;
  border-top:1px solid var(--b1,rgba(255,255,255,.08));background:rgba(255,255,255,.02);
}
.tsel-foot-hint{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:var(--t3,#64748b)}
.tsel-foot-hint--end{margin-left:auto}
.tsel-foot kbd{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:18px;height:18px;padding:0 5px;border-radius:5px;font-size:10px;font-weight:700;font-family:inherit;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);color:var(--t2,#94a3b8);
}
@media(max-width:500px){
  .tsel-backdrop{background:rgba(0,0,0,.45)}
  .tsel-modal{top:auto;bottom:0;left:0;right:0;transform:none;width:100%;max-height:88vh;border-radius:18px 18px 0 0}
  .tsel-foot{display:none}
}
/* DEX swap selected token display */
.dex-sc-tok-selected{display:flex;align-items:center;gap:6px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:6px 10px 6px 6px;cursor:pointer;font-size:13px;font-weight:700;color:var(--t1,#f1f5f9);transition:background .12s}
.dex-sc-tok-selected:hover{background:rgba(255,255,255,.12)}
.dex-sc-tok-selected img{width:20px;height:20px;border-radius:50%;object-fit:cover}
.dex-sc-tok-ico-emoji{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px}

/* ── Market / Limit toggle ────────────────────────────────────────────────── */
.dex-mode-toggle{display:flex;gap:2px;background:var(--bg2,#1e2230);border-radius:8px;padding:2px}
.dex-mode-btn{
  padding:5px 16px;border-radius:6px;font-size:12px;font-weight:600;
  color:var(--t2,#94a3b8);border:none;background:transparent;cursor:pointer;
  transition:background .15s,color .15s
}
.dex-mode-btn.active{background:var(--bg3,#252b3b);color:var(--t1,#f1f5f9)}

/* ── Limit order form ─────────────────────────────────────────────────────── */
.dex-lo-cur{
  font-size:12px;color:var(--t2,#94a3b8);
  padding:9px 12px;background:var(--bg2,#1e2230);
  border-radius:8px;margin-bottom:12px;line-height:1.5
}
.dex-lo-cur b{color:var(--t1,#f1f5f9)}
.dex-lo-badge-dex{
  display:inline-flex;align-items:center;font-size:9px;font-weight:700;
  padding:1px 5px;border-radius:4px;
  background:rgba(61,214,140,.15);color:#3dd68c;margin-left:5px;vertical-align:middle
}
.dex-lo-badge-curve{
  display:inline-flex;align-items:center;font-size:9px;font-weight:700;
  padding:1px 5px;border-radius:4px;
  background:rgba(245,158,11,.14);color:#f59e0b;margin-left:5px;vertical-align:middle
}
.dex-lo-dir-row{display:flex;gap:6px;margin-bottom:12px}
.dex-lo-dir-btn{
  flex:1;padding:9px;border-radius:8px;font-size:13px;font-weight:600;
  border:1px solid var(--b1,rgba(255,255,255,.08));
  background:var(--bg2,#1e2230);color:var(--t2,#94a3b8);cursor:pointer;
  transition-property:background,border-color,color;transition-duration:.15s}
.dex-lo-dir-btn.active[data-dir="buy"] {background:rgba(34,197,94,.12);color:#22c55e;border-color:rgba(34,197,94,.28)}
.dex-lo-dir-btn.active[data-dir="sell"]{background:rgba(239,68,68,.12);color:#ef4444;border-color:rgba(239,68,68,.28)}
.dex-lo-field{margin-bottom:10px}
.dex-lo-label{display:block;font-size:11px;color:var(--t2,#94a3b8);margin-bottom:5px}
.dex-lo-inp-row{display:flex;align-items:center;gap:8px}
.dex-lo-inp{
  flex:1;width:100%;background:var(--bg2,#1e2230);
  border:1px solid var(--b1,rgba(255,255,255,.08));
  border-radius:10px;padding:11px 13px;
  font-size:14px;color:var(--t1,#f1f5f9);box-sizing:border-box;
  transition:border-color .15s
}
.dex-lo-inp:focus{outline:none;border-color:var(--acc,#6366f1)}
.dex-lo-unit{font-size:11px;color:var(--t2,#94a3b8);white-space:nowrap;flex-shrink:0}
.dex-lo-exp-row{display:flex;align-items:center;gap:6px;margin-bottom:14px;flex-wrap:wrap}
.dex-lo-exp-lbl{font-size:11px;color:var(--t2,#94a3b8)}
.dex-lo-exp-btn{
  padding:4px 11px;border-radius:6px;font-size:11px;font-weight:500;
  border:1px solid var(--b1,rgba(255,255,255,.08));
  background:var(--bg2,#1e2230);color:var(--t2,#94a3b8);cursor:pointer;
  transition-property:background,border-color,color;transition-duration:.15s}
.dex-lo-exp-btn.active{background:var(--acc,#6366f1);color:#fff;border-color:var(--acc,#6366f1)}
.dex-lo-err{font-size:11px;color:#ef4444;margin-top:8px;min-height:0}

/* ── Orders panel ─────────────────────────────────────────────────────────── */
.dex-panel-orders{display:flex;flex-direction:column;gap:10px}
.dex-orders-wrap{padding:0}
.dex-orders-section{
  font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;
  color:var(--t3,#475569);padding:12px 20px 6px
}
.dex-orders-empty{text-align:center;padding:40px 16px;color:var(--t2,#94a3b8);font-size:13px;line-height:1.6}
/* ── Row (trades-style list) ── */
.dex-order-row{
  display:flex;flex-direction:column;
  padding:14px 20px 14px 24px;
  border-bottom:1px solid rgba(0,152,234,.06);
  position:relative;transition:background .15s;
}
.dex-order-row:hover{background:rgba(0,152,234,.04)}
.dex-order-row:last-child{border-bottom:none}
/* Colored left rail — buy green / sell red / done gray */
.dex-order-row::before{
  content:'';position:absolute;left:0;top:14px;bottom:14px;
  width:3px;border-radius:0 3px 3px 0;
}
.dex-order-row.do-buy::before {background:var(--grn,#22c55e)}
.dex-order-row.do-sell::before{background:var(--red,#ef4444)}
.dex-order-row.do-done::before{background:var(--t3,#475569);opacity:.4}
/* ── Head: direction + status + age ── */
.dex-order-head{display:flex;align-items:center;gap:7px;margin-bottom:10px}
.dex-order-dir{
  padding:3px 10px;border-radius:20px;
  font-size:10px;font-weight:700;flex-shrink:0;letter-spacing:.02em
}
.dex-order-dir-buy {background:rgba(34,197,94,.15);color:var(--grn,#22c55e)}
.dex-order-dir-sell{background:rgba(239,68,68,.15);color:var(--red,#ef4444)}
.dex-order-age{margin-left:auto;font-size:10px;color:var(--t3,#475569)}
/* ── Flow: spend → receive ── */
.dex-order-flow{display:flex;align-items:baseline;gap:9px;margin-bottom:8px}
.dex-order-spend{font-size:17px;font-weight:700;color:var(--t1,#f1f5f9)}
.dex-order-arrow{font-size:14px;color:var(--t3,#475569)}
.dex-order-recv{font-size:15px;font-weight:600;color:var(--t2,#94a3b8)}
/* ── Trigger MC (plain, no strip) ── */
.dex-order-target{
  display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 10px;
  margin-bottom:10px
}
.dex-order-target-k{
  font-size:12px;font-weight:650;color:var(--t2,#94a3b8)
}
.dex-order-target-v{
  font-size:20px;font-weight:750;color:var(--t1,#f1f5f9);
  font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1.1
}
.dex-order-target-now{
  font-size:12px;font-weight:550;color:var(--t3,#475569);
  font-variant-numeric:tabular-nums
}
.dex-order-row.do-buy .dex-order-target-v{color:var(--grn,#22c55e)}
.dex-order-row.do-sell .dex-order-target-v{color:var(--red,#ef4444)}
.dex-order-row.do-done .dex-order-target-v{color:var(--t2,#94a3b8)}
/* ── Outcome flag (filled / bounce / fail) ── */
.dex-order-flag{
  display:flex;flex-direction:column;gap:3px;
  margin:0 0 11px;padding:9px 11px;border-radius:10px;
  border:1px solid transparent
}
.dex-order-flag-k{
  font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase
}
.dex-order-flag-v{
  font-size:12.5px;font-weight:550;line-height:1.4;color:inherit;word-break:break-word
}
.dex-order-flag.is-ok{
  background:rgba(34,197,94,.12);border-color:rgba(34,197,94,.22);color:var(--grn,#22c55e)
}
.dex-order-flag.is-warn{
  background:rgba(245,158,11,.12);border-color:rgba(245,158,11,.25);color:#f59e0b
}
.dex-order-flag.is-err{
  background:rgba(239,68,68,.1);border-color:rgba(239,68,68,.22);color:var(--red,#ef4444)
}
.dex-order-flag.is-wait{
  background:rgba(14,165,233,.1);border-color:rgba(14,165,233,.22);color:#0ea5e9
}
.dex-order-flag.is-muted{
  background:rgba(100,116,139,.1);border-color:rgba(100,116,139,.18);color:var(--t2,#94a3b8)
}
/* ── Footer: expiry + cancel ── */
.dex-order-foot{display:flex;align-items:center;gap:8px}
.dex-order-exp{font-size:11px;color:var(--t3,#475569)}
.dex-order-slip{
  font-size:10px;font-weight:600;color:var(--t2,#94a3b8);
  background:rgba(100,116,139,.12);border-radius:5px;padding:2px 7px;
  letter-spacing:.02em;white-space:nowrap
}
/* ── Status badges ── */
.dex-order-status{
  font-size:10px;font-weight:750;letter-spacing:.04em;text-transform:uppercase;
  padding:3px 8px;border-radius:6px
}
.dex-order-st-pending  {background:rgba(100,116,139,.15);color:var(--t2,#94a3b8)}
.dex-order-st-funded   {background:rgba(14,165,233,.15);color:#0ea5e9}
.dex-order-st-triggered{background:rgba(245,158,11,.15);color:#f59e0b}
.dex-order-st-executed {background:rgba(34,197,94,.15);color:var(--grn,#22c55e)}
.dex-order-st-cancel   {background:rgba(239,68,68,.1);color:var(--red,#ef4444)}
.dex-order-st-expired  {background:rgba(100,116,139,.1);color:var(--t2,#94a3b8)}
.dex-order-st-failed   {background:rgba(239,68,68,.1);color:var(--red,#ef4444)}
/* ── Cancel button ── */
.dex-order-cancel{
  margin-left:auto;flex-shrink:0;
  padding:5px 13px;border-radius:8px;font-size:11px;font-weight:500;
  border:1px solid var(--b1,rgba(255,255,255,.08));
  background:transparent;color:var(--t2,#94a3b8);cursor:pointer;
  white-space:nowrap;transition:color .15s,border-color .15s
}
.dex-order-cancel:hover{border-color:rgba(239,68,68,.5);color:var(--red,#ef4444)}

/* ═══════════════════════════════════════════════════════════════════════════
   Holder-only Chat  —  table-row style matching Trades
   ═══════════════════════════════════════════════════════════════════════════ */

/* Chat panel: flex column so the scrollable table + footer stack correctly */
#dvChatTabBody{display:flex;flex-direction:column}
#dvChatTabBody .table-scroll{
  flex:1;overflow-y:auto;max-height:360px;
}

/* Own-message row: subtle blue left border accent */
.chat-row-own td:first-child::before{background:var(--blue)!important}

/* Badge-based stripe colors (populated after first modal open for that addr) */
.chat-row[data-badge="whale"]  td:first-child::before{background:var(--blue)!important}
.chat-row[data-badge="shark"]  td:first-child::before{background:#a78bfa!important}
.chat-row[data-badge="holder"] td:first-child::before{background:#22c55e!important}
.chat-row[data-badge="shrimp"] td:first-child::before{background:var(--t3)!important}
.chat-row-own .tr-addr{color:var(--blue)}

/* Message text cell — wrappable, full width */
.chat-msg-cell{width:100%;overflow:hidden}
.chat-msg-text{
  display:block;white-space:pre-wrap;word-break:break-word;
  font-size:12.5px;line-height:1.5;color:var(--t1,#f1f5f9);
}

/* Empty state inside tbody */
.chat-empty-row td{
  text-align:center;
  padding:32px 16px!important;
  color:var(--t3,#64748b);
  font-size:12px;
  border-bottom:none!important;
}

/* Row entrance animation */
.chat-row{transition:opacity .2s ease,transform .2s ease}

/* ── Footer (input + lock) ── */
.chat-footer{
  flex-shrink:0;
  border-top:1px solid rgba(0,152,234,.08);
  padding:10px 14px;
}
.chat-input-row{display:flex;align-items:flex-end;gap:8px}
.chat-input{
  flex:1;
  background:rgba(255,255,255,.04);
  border:1.5px solid rgba(255,255,255,.09);
  border-radius:10px;
  padding:8px 12px;
  font-family:'Inter',sans-serif;
  font-size:13px;color:var(--t1,#f1f5f9);
  resize:none;outline:none;
  min-height:36px;max-height:90px;
  overflow-y:auto;overflow-x:hidden;line-height:1.4;
  white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word;
  transition:border-color .18s;
}
.chat-input::placeholder{color:var(--t3,#64748b)}
.chat-input:focus{border-color:rgba(0,152,234,.35)}

.chat-send-btn{
  flex-shrink:0;width:36px;height:36px;
  border-radius:9px;border:none;
  background:var(--blue);
  color:#fff;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:opacity .15s,transform .12s;
  box-shadow:0 2px 8px rgba(0,152,234,.3);
}
.chat-send-btn:hover{opacity:.85;transform:scale(1.05)}
.chat-send-btn:active{transform:scale(.95)}
.chat-send-btn:disabled{opacity:.3;cursor:not-allowed;transform:none}

.chat-lock{
  display:flex;align-items:center;gap:8px;
  padding:8px 12px;
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.07);
  border-radius:9px;
}
.chat-lock-icon{font-size:14px;line-height:1}
.chat-lock-text{font-size:12px;font-weight:500;color:var(--t2,#94a3b8)}
.chat-lock-text strong{color:var(--blue)}

.chat-connect-hint{
  text-align:center;font-size:12px;color:var(--t3,#64748b);padding:6px 0;
}

/* ── Chat Trader Modal ── */
.ctm-modal{max-width:380px;padding:0;overflow:hidden}

/* Address row with badge */
.ctm-addr-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap}

/* Stats grid — 4 cols */
.ctm-stats{grid-template-columns:repeat(4,1fr)!important}

/* Meta row under stats */
.ctm-meta{
  display:flex;align-items:center;justify-content:space-between;
  padding:8px 20px;
  font-size:11px;color:var(--t3);
  border-bottom:1px solid rgba(0,152,234,.07);
}
.ctm-meta span:empty{display:none}

/* ── Chat Trader Popup — overrides to make dv-ev-tip work as fixed popup ─── */
#chatTraderPopup,#wltHoldingsPopup,#dvEvTip{
  position:fixed!important;z-index:9999;
  width:min(360px,calc(100vw - 24px));max-width:360px
}
.ctp-prof-inline{
  font-size:10px;font-weight:700;color:#4db8ff;text-decoration:none;
  padding:1px 6px;border:1px solid rgba(0,152,234,.3);border-radius:5px;
  display:inline-flex;align-items:center;white-space:nowrap;
}
.ctp-prof-inline:hover{background:rgba(0,152,234,.12)}
[data-theme="light"] .ctp-prof-inline{color:#0070c0;border-color:rgba(0,152,234,.25)}
.ctp-trades-wrap{max-height:120px;overflow-y:auto;margin-top:6px}
.ctp-trade-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:4px 0;font-size:11px;
  border-bottom:1px solid rgba(255,255,255,.05);
}
[data-theme="light"] .ctp-trade-row{border-bottom-color:rgba(0,0,0,.05)}
.ctp-trade-row:last-child{border-bottom:none}
.ctp-trade-info{display:flex;align-items:center;gap:5px;min-width:0}
.ctp-trade-tok{font-weight:600;color:#ddeeff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
[data-theme="light"] .ctp-trade-tok{color:#1a2a3a}
.ctp-trade-right{display:flex;flex-direction:column;align-items:flex-end;gap:1px;flex-shrink:0}
.ctp-trade-ton{font-size:10.5px;font-weight:600;color:#c0d8f0}
[data-theme="light"] .ctp-trade-ton{color:#3a4a5a}
.ctp-trade-time{font-size:9.5px;color:#4a6070}
[data-theme="light"] .ctp-trade-time{color:#8090a0}

/* Tracked-wallet Holdings popup — list of every coin the wallet holds,
   same compact-row language as the trader popup's recent-trades list above. */
.wlt-hold-pop-wrap{max-height:220px;overflow-y:auto;margin-top:2px}
.wlt-hold-pop-row{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:6px 0;border-bottom:1px solid rgba(255,255,255,.05);cursor:pointer;
}
[data-theme="light"] .wlt-hold-pop-row{border-bottom-color:rgba(0,0,0,.05)}
.wlt-hold-pop-row:last-child{border-bottom:none}
.wlt-hold-pop-row:hover{background:rgba(255,255,255,.04)}
[data-theme="light"] .wlt-hold-pop-row:hover{background:rgba(0,0,0,.03)}
.wlt-hold-pop-info{display:flex;align-items:center;gap:7px;min-width:0}
.wlt-hold-pop-text{min-width:0}
.wlt-hold-pop-tok{font-weight:700;font-size:11.5px;color:#ddeeff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
[data-theme="light"] .wlt-hold-pop-tok{color:#1a2a3a}
.wlt-hold-pop-pct{font-size:9.5px;color:#4a6070}
[data-theme="light"] .wlt-hold-pop-pct{color:#8090a0}
.wlt-hold-pop-right{display:flex;flex-direction:column;align-items:flex-end;gap:1px;flex-shrink:0}
.wlt-hold-pop-val{font-size:11.5px;font-weight:700;color:#ddeeff}
[data-theme="light"] .wlt-hold-pop-val{color:#1a2a3a}
.wlt-hold-pop-amt{font-size:9.5px;color:#4a6070}
[data-theme="light"] .wlt-hold-pop-amt{color:#8090a0}
.wlt-hold-pop-empty{font-size:11px;color:#6a7e92;text-align:center;padding:10px 0}
.ctm-copy-btn{
  font-size:10px;font-weight:700;color:#4db8ff;background:transparent;
  border:1px solid rgba(0,152,234,.3);border-radius:5px;
  padding:1px 6px;cursor:pointer;white-space:nowrap;line-height:1.4;
}
.ctm-copy-btn:hover{background:rgba(0,152,234,.12)}
[data-theme="light"] .ctm-copy-btn{color:#0070c0;border-color:rgba(0,152,234,.25)}

/* ════════ DESIGN POLISH — Phase 6: Profile & Vault visual refresh ════════
   Same data, calmer chrome. Three goals:
   1) Less blue-tinted noise on the profile header/panels — neutral surfaces,
      color reserved for actionable/data elements.
   2) Vault pulled out of the tab cluster (pushed right, own color language)
      instead of sitting as just another pill next to Coins/Rewards.
   3) The Vault panel becomes one cohesive dark "secure chamber" — previously
      .wm-hero/.wm-card were already dark but floated on the panel's default
      light background, and .wm-connected-wallet was still light-blue-glass,
      so the vault read as inconsistent rather than a distinct zone. */

/* -- Calmer header: less blue saturation, quieter chrome -- */
.pv-header{background:rgba(255,255,255,.92);border-color:rgba(10,37,64,.08);box-shadow:0 2px 18px rgba(10,37,64,.045)}
.pv-avatar{box-shadow:0 4px 16px rgba(0,152,234,.18),0 0 0 3px rgba(255,255,255,.85)}
.pv-addr-chip{background:rgba(10,37,64,.035);border-color:rgba(10,37,64,.1)}
.pv-explorer-btn{background:rgba(10,37,64,.03);border-color:rgba(10,37,64,.1)}
.pv-stat:not(:last-child)::after{background:rgba(10,37,64,.1)}

/* -- Calmer panel surfaces: Balances / Rewards / Referral -- */
.pv-balance-main{
  background:rgba(255,255,255,.9);border-color:rgba(10,37,64,.08);
}

/* Rewards tab keeps its own surface; referral surfaces live in Referral Panel block. */

/* -- Tab row: Vault detaches from the everyday cluster -- */
.pv-tab[data-tab="wallets"]{
  order:99;margin-left:auto;
  background:rgba(15,23,32,.05);border-color:rgba(15,23,32,.16);color:#3d4a58;
}
.pv-tab[data-tab="wallets"]:hover:not(.active){
  background:rgba(15,23,32,.09);border-color:rgba(15,23,32,.26);color:#232c35;
}
.pv-tab[data-tab="wallets"].active{
  background:linear-gradient(135deg,#1c2833,#0e1821);
  border-color:#1c2833;color:#fff;
  box-shadow:0 4px 14px rgba(10,20,30,.35);
}

/* -- Vault chamber: one cohesive dark surface hosting hero + cards -- */
/* Text inside the chamber must not fall back to the light-theme var(--t1)
   (near-black navy) — it would be unreadable on this always-dark surface. */

/* Connected TonConnect card — align to the chamber's dark language
   (was light blue-glass, clashed with the dark hero/cards around it) */

/* ════════ DESIGN POLISH — Phase 7: public wallet-profile panel ════════
   Same calming direction as Phase 6, applied to the OTHER profile surface:
   the wallet-history overlay (.wlt-hist-panel) used to view any wallet
   (yours or someone else's) from Wallet Tracker / Holders / Bubble Map.
   Less blue-glass tint on the portfolio snapshot + tab bar; primary
   actions (Follow) keep their color since those are the one thing on
   this screen actually meant to grab the eye. */
.wlt-hist-tonscan:hover{background:rgba(0,152,234,.14);border-color:var(--blue)}

.wlt-prof-tabs{background:rgba(10,37,64,.035);box-shadow:inset 0 0 0 1.5px rgba(10,37,64,.06)}
.wlt-prof-tab.active{box-shadow:0 2px 8px rgba(10,37,64,.1),0 0 0 1px rgba(10,37,64,.08)}

[data-theme="dark"] .wlt-hist-back{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.09)}
[data-theme="dark"] .wlt-hist-hero{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08)}
[data-theme="dark"] .wlt-hist-hero-av{background:rgba(255,255,255,.06)}
[data-theme="dark"] .wlt-hist-addr,[data-theme="dark"] .wlt-hist-linked{background:rgba(0,152,234,.12);border-color:rgba(0,152,234,.25);color:#4DB8FF}
[data-theme="dark"] .wlt-hist-addr--copy:hover,[data-theme="dark"] .wlt-hist-linked:hover{background:rgba(0,152,234,.2);border-color:var(--blue2)}
[data-theme="dark"] .wlt-prof-tabs{background:rgba(255,255,255,.03);box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.06)}
[data-theme="dark"] .wlt-prof-tab.active{background:rgba(255,255,255,.08);box-shadow:0 2px 8px rgba(0,0,0,.3),0 0 0 1px rgba(255,255,255,.08)}

/* ════════ DESIGN POLISH — Phase 8: wallet-profile 1:1 with reference ════════
   Compact left tabs, a section-card system, and table-style Activity/Created
   to match pump.fun's profile layout (keeping vella-blue as the accent). */

/* ── Tabs: compact, left-aligned pills, horizontally scrollable ── */
.wlt-prof-tabs{
  display:flex;justify-content:flex-start;gap:6px;
  margin:0 14px 10px;padding:6px;
  border:1.5px solid rgba(10,37,64,.08);border-radius:14px;
  background:rgba(255,255,255,.5);
  box-shadow:none;border-bottom:none;
  overflow-x:auto;position:static
}
.wlt-prof-tabs::-webkit-scrollbar{display:none}
.wlt-prof-tab{
  flex:0 0 auto;display:flex;align-items:center;gap:6px;
  padding:9px 15px;border-radius:10px;
  font-size:14px;font-weight:700;color:var(--t3);
  border:none;background:transparent;cursor:pointer;white-space:nowrap;
  transition-property:background,color;transition-duration:.15s
}
.wlt-prof-tab:hover:not(.active){background:rgba(10,37,64,.04);color:var(--t1)}
.wlt-prof-tab.active{background:var(--blue);color:#fff;box-shadow:0 2px 10px rgba(0,152,234,.35);border-bottom:none}
.wlt-prof-tab:active{transform:scale(.97)}
.wlt-prof-tab-count{font-size:11px;font-weight:800;padding:1px 7px;border-radius:99px;background:rgba(10,37,64,.08);color:var(--t2);font-variant-numeric:tabular-nums}
.wlt-prof-tab.active .wlt-prof-tab-count{background:rgba(255,255,255,.25);color:#fff}
.wlt-prof-tab-count:empty{display:none}
[data-theme="dark"] .wlt-prof-tabs{border-color:rgba(255,255,255,.08);background:rgba(255,255,255,.03)}
[data-theme="dark"] .wlt-prof-tab:hover:not(.active){background:rgba(255,255,255,.05)}
[data-theme="dark"] .wlt-prof-tab-count{background:rgba(255,255,255,.1);color:var(--t2)}

/* ── Section-card system (each tab's content sits in a bordered card) ── */
.wlt-section{margin:0 14px 10px;border:1.5px solid rgba(0,152,234,.14);border-radius:16px;background:rgba(234,246,255,.92);box-shadow:0 2px 16px rgba(10,37,64,.05);overflow:hidden}
.wlt-section-hdr{padding:15px 18px 13px}
.wlt-section-hdr--row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.wlt-section-title{font-size:16.5px;font-weight:800;color:var(--t1);display:flex;align-items:center;gap:8px}
.wlt-section-count{font-size:12px;font-weight:700;color:var(--t2);background:rgba(10,37,64,.06);padding:2px 9px;border-radius:99px;font-variant-numeric:tabular-nums}
.wlt-section-sub{font-size:13px;color:var(--t3);margin-top:3px}
.wlt-section-toolbar{padding:0 18px 14px}
[data-theme="dark"] .wlt-section{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08)}
[data-theme="dark"] .wlt-section-count{background:rgba(255,255,255,.08)}

/* Balances table now lives inside .wlt-section — drop the old standalone width */
#wltHoldingsContent{max-width:none;margin:0}
/* Effective side padding for the tables (out-specifies the @media rule) — keep
   the right-most column off the edge. */
.wlt-section .wlt-hold-header,.wlt-section .wlt-hold-row{padding-left:24px;padding-right:24px}
.wlt-section #wltHoldTableWrap,.wlt-section #crCoinsWrap{border-top:1px solid rgba(10,37,64,.06)}
[data-theme="dark"] .wlt-section #wltHoldTableWrap,[data-theme="dark"] .wlt-section #crCoinsWrap{border-top-color:rgba(255,255,255,.06)}
.wlt-hold-toolbar{padding:0}

/* ── Activity table (Coin | Action | Amount | Time) ── */
.wlt-hist-feed{padding:0}
.wlt-act-header{display:grid;grid-template-columns:minmax(0,1.5fr) 130px 170px minmax(0,1fr);gap:14px;padding:6px 24px 12px;font-size:13px;font-weight:800;letter-spacing:.01em;color:var(--t2);text-transform:uppercase;border:none}
.wlt-act-header span:nth-child(3),.wlt-act-header span:nth-child(4){text-align:right}
.wlt-act-row{position:relative;display:grid;grid-template-columns:minmax(0,1.5fr) 130px 170px minmax(0,1fr);gap:14px;align-items:center;padding:13px 24px;border-radius:12px;cursor:pointer;background:transparent;transition-property:background;transition-duration:.15s}
/* Borderless solid rows (no zebra); coloured left rails stay */
.wlt-act-row::before{content:'';position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:transparent}
.wlt-rail-buy::before{background:var(--grn)}
.wlt-rail-sell::before{background:var(--red)}
.wlt-rail-transfer::before{background:var(--blue)}
/* Launch/Graduate — lifecycle info lines, each railed in its own badge colour:
   violet for the launch, curve-amber for the graduation to the pool. Kept
   deliberately flat — no row gradient, no rail box-shadow (i.e. no glow). */
.wlt-rail-launch::before{background:#7c4dff}
.wlt-rail-curve::before{background:#f59e0b}
.wlt-act-row:hover{background:rgba(0,152,234,.10)}
.wlt-act-coin{display:flex;align-items:center;gap:12px;min-width:0}
.wlt-act-coin img,.wlt-act-coin>div:first-child{flex-shrink:0}
.wlt-act-ico-fallback{width:36px;height:36px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:rgba(10,37,64,.06);font-size:12px;font-weight:800;color:var(--t2);text-transform:uppercase}
.wlt-act-coin-info{min-width:0}
.wlt-act-name{font-size:15px;font-weight:700;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wlt-act-ticker{font-size:12.5px;color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wlt-act-badge-cell{display:flex;align-items:center;gap:6px}
.wlt-act-badge{display:inline-flex;font-size:12px;font-weight:700;padding:4px 12px;border-radius:8px}
.wlt-act-buy{color:#16a34a;background:rgba(34,197,94,.12)}
.wlt-act-sell{color:#ef4444;background:rgba(239,68,68,.12)}
.wlt-act-transfer{color:var(--blue);background:rgba(0,152,234,.12)}
.wlt-act-launch{color:#7c4dff;background:rgba(124,77,255,.12)}
.wlt-act-grad{color:#d97706;background:rgba(217,119,6,.14)}
.wlt-act-via{font-size:9px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;color:#f59e0b;background:rgba(245,158,11,.15);border:1px solid rgba(245,158,11,.3);border-radius:4px;padding:1px 5px}
.wlt-act-amt-cell{text-align:right;min-width:0}
.wlt-act-amt{font-size:14.5px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--t1)}
/* Amount takes the action's colour — needs to out-specify .wlt-act-amt above */
.wlt-act-amt.wlt-pos{color:var(--grn)}
.wlt-act-amt.wlt-neg{color:var(--red)}
.wlt-act-amt.wlt-blu{color:var(--blue)}
.wlt-act-amt.wlt-vio{color:#7c4dff}
.wlt-act-amt.wlt-amb{color:#d97706}
.wlt-act-amt-sub{font-size:12.5px;color:var(--t3);margin-top:2px;font-variant-numeric:tabular-nums}
.wlt-act-time-cell{display:flex;align-items:center;justify-content:flex-end;gap:6px}
.wlt-act-time{font-size:13px;color:var(--t3);text-align:right;white-space:nowrap}
.wlt-act-tx{color:var(--t3);display:flex;transition-property:color;transition-duration:.15s}
.wlt-act-tx:hover{color:var(--blue)}
[data-theme="dark"] .wlt-act-row:hover{background:rgba(255,255,255,.06)}
[data-theme="dark"] .wlt-act-ico-fallback{background:rgba(255,255,255,.08)}

/* ── Created table extras ── */
.wlt-cr-header{grid-template-columns:minmax(0,1.5fr) 120px 130px 110px minmax(0,1fr)}
.wlt-cr-row{grid-template-columns:minmax(0,1.5fr) 120px 130px 110px minmax(0,1fr)}
.wlt-cr-dex{color:#16a34a;font-weight:800}
/* Created-coins stage badges + rails: violet on the bonding curve, amber on DEX */
.wlt-cr-badge{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;padding:1px 6px;border-radius:5px;vertical-align:middle}
.wlt-cr-badge-curve{color:#7c4dff;background:rgba(124,77,255,.12);border:1px solid rgba(124,77,255,.25)}
.wlt-cr-badge-dex{color:#d97706;background:rgba(245,158,11,.14);border:1px solid rgba(245,158,11,.3)}
.wlt-hold-row.wlt-cr-rail-curve::before{background:#7c4dff}
.wlt-hold-row.wlt-cr-rail-dex::before{background:#f59e0b}
[data-theme="dark"] .wlt-cr-badge-curve{color:#a385ff}
[data-theme="dark"] .wlt-cr-badge-dex{color:#fbbf24}
/* Created-coins metric cells (Volume, Traders) — same weight as MC, right-aligned */
.wlt-cr-metric{font-size:15.5px;font-weight:700;color:var(--t1);text-align:right;font-variant-numeric:tabular-nums}
.wlt-cr-metric-sub{font-size:11.5px;color:var(--t3);font-weight:600;text-align:right;margin-top:2px;font-variant-numeric:tabular-nums}
.wlt-cr-earned{color:var(--grn)}
.wlt-cr-age{white-space:nowrap}
@media(max-width:600px){
  /* Narrow: keep Coin · MC · Age; drop Volume + Traders. Re-show MC (the shared
     .wlt-hold-mc mobile hide would otherwise take it out here too). */
  .wlt-cr-header,.wlt-cr-row{grid-template-columns:minmax(0,1fr) 96px 84px}
  .wlt-cr-header span:nth-child(3),.wlt-cr-header span:nth-child(4),
  .wlt-cr-row>div:nth-child(3),.wlt-cr-row>div:nth-child(4){display:none}
  .wlt-cr-row .wlt-hold-mc{display:block}
}

/* ── Rewards body ── */
.wlt-rew-body{padding:0 18px 22px}
.wlt-rew-big{font-size:34px;font-weight:900;letter-spacing:-.8px;color:var(--t1);font-variant-numeric:tabular-nums}
.wlt-rew-note{font-size:12.5px;color:var(--t3);margin-top:6px;line-height:1.5}

/* Follow-empty inside a section shouldn't double the border */
.wlt-section .wlt-follow-empty{padding:44px 24px}

@media (max-width:600px){
  .wlt-act-header span:nth-child(2){display:none}
  .wlt-act-header{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) 90px}
  .wlt-act-row{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) 90px}
  .wlt-act-badge-cell{display:none}
}

/* Rewards tab in the wallet-profile reuses the Profile's .pv-rewards-box — give it panel margins */
#wltRewardsContent .pv-rewards-box{margin:0 14px}

/* ── Own-mode: unified profile viewing yourself (Edit Profile + management tabs) ── */
.wlt-prof-tab--own{display:none}
.wlt-hist-panel.is-own .wlt-prof-tab--own{display:flex}
.wlt-hist-edit-btn{background:rgba(0,152,234,.06);border:1.5px solid rgba(0,152,234,.2);color:var(--blue);font-size:12px;font-weight:600;box-shadow:none}
.wlt-hist-edit-btn:hover{background:rgba(0,152,234,.14);border-color:var(--blue);color:var(--blue)}
[data-theme="dark"] .wlt-hist-edit-btn{background:rgba(0,152,234,.12);border-color:rgba(0,152,234,.25);color:#4DB8FF}
[data-theme="dark"] .wlt-hist-edit-btn:hover{background:rgba(0,152,234,.2);border-color:var(--blue2);color:#4DB8FF}
/* Re-homed management panels sit flush in the unified tab slot */
#wltTabContent_referral>.pv-panel,#wltTabContent_settings>.pv-panel{display:block}

/* Campaign CRT Warp host — absolute fill like #dexView / #dexFaultyBg so the
   canvas never sits in document flow (even if camp-crt-warp.css fails to load). */
#wltTabContent_referral{
  padding:0;
  position:relative;
  isolation:isolate;
  overflow:hidden;
  min-height:calc(100vh - var(--tb-h, 58px) - 210px);
}
#wltTabContent_referral.active{flex:1 1 auto}
.camp-crt-bg{
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  overflow:hidden;
  min-height:100%;
}
.camp-crt-canvas{
  display:block;
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  pointer-events:none;
  max-width:none;
  max-height:none;
  border:none;
}
#wltTabContent_referral.has-crt{background:#f4f9fc}
html:is([data-theme="dark"], [data-scheme="dark"], [data-theme="voidtype"])
  #wltTabContent_referral.has-crt{background:#000}
#wltTabContent_referral.has-crt > *:not(.camp-crt-bg){
  position:relative;
  z-index:2;
  background:transparent;
}

/* Own Profile opened via the sidebar nav switches in place like other views
   (viewIn fade+rise), not as a drawer sliding in from the side. Public
   profiles opened as an overlay (from trades/tracker) keep the slide. */
.wlt-hist-panel--page{transition:none;transform:none}
.wlt-hist-panel--page:not(.open){display:none}
.wlt-hist-panel--page.open{transform:none;animation:viewIn var(--dur-3) var(--ease-out)}

/* ════════ Account area (top-right): separate balance chip + avatar menu (pump.fun-style) ════════ */
.w-caret{color:var(--t3);flex-shrink:0}

/* Avatar → standalone circular button opening the account menu */
.wallet-av-chip .w-avatar{width:40px;height:40px;border-radius:50%;overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:17px;background:#ececec;border:none;outline:1px solid rgba(0,0,0,.1);outline-offset:-1px;box-shadow:none;transition-property:outline-color;transition-duration:.15s}
.wallet-av-chip .w-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.wallet-av-chip:hover .w-avatar{outline-color:rgba(0,0,0,.18)}
[data-theme="dark"] .wallet-av-chip .w-avatar{background:#1a1a1a;outline-color:rgba(255,255,255,.1)}
[data-theme="dark"] .wallet-av-chip:hover .w-avatar{outline-color:rgba(255,255,255,.2)}

/* Balance panel (opens from the balance chip) — larger, tactile, self-consistent */
.wallet-bal-dropdown{display:none;position:absolute;top:calc(100% + 10px);right:0;width:340px;z-index:350;
  background:rgba(240,249,255,.99);border:1.5px solid rgba(0,152,234,.15);border-radius:22px;padding:20px;
  box-shadow:0 24px 70px rgba(10,37,64,.16);backdrop-filter:blur(20px)}
.wallet-bal-dropdown.open{display:block;animation:wbdFade .2s ease}
@keyframes wbdFade{from{opacity:0}to{opacity:1}}
/* Split + stagger the reveal so the card feels assembled, not popped */
.wallet-bal-dropdown.open > *{animation:wbdRise .32s cubic-bezier(0.2,0,0,1) backwards}
.wallet-bal-dropdown.open > :nth-child(1){animation-delay:.02s}
.wallet-bal-dropdown.open > :nth-child(2){animation-delay:.06s}
.wallet-bal-dropdown.open > :nth-child(3){animation-delay:.10s}
.wallet-bal-dropdown.open > :nth-child(4){animation-delay:.14s}
@keyframes wbdRise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.wbd-lbl{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--t3)}
.wbd-valrow{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:6px}
.wbd-val{font-size:32px;font-weight:900;color:var(--t1);letter-spacing:-.6px;font-variant-numeric:tabular-nums;line-height:1.05}
.wbd-toggles{display:flex;align-items:center;gap:6px;flex-shrink:0}
.wbd-tgl{position:relative;display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:none;border-radius:11px;background:none;color:var(--t3);cursor:pointer;transition-property:background,color,scale;transition-duration:.15s}
/* Extend the hit area to 40×40 without overlapping the neighbouring toggle (centres are 42px apart) */
.wbd-tgl::after{content:"";position:absolute;top:50%;left:50%;width:40px;height:40px;transform:translate(-50%,-50%)}
.wbd-tgl:hover{background:rgba(0,152,234,.09);color:var(--blue)}
.wbd-tgl:active{scale:.96}
/* Eye toggle: cross-fade the two states (scale + opacity + blur) instead of swapping */
.wbd-eye .wbd-eye-ico{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;
  transition-property:opacity,transform,filter;transition-duration:.3s;transition-timing-function:cubic-bezier(0.2,0,0,1)}
.wbd-eye .wbd-eye--off{opacity:0;transform:scale(.25);filter:blur(4px)}
.wbd-eye.is-off .wbd-eye--open{opacity:0;transform:scale(.25);filter:blur(4px)}
.wbd-eye.is-off .wbd-eye--off{opacity:1;transform:scale(1);filter:blur(0)}
.wbd-sub{font-size:12.5px;color:var(--t3);margin-top:3px;font-weight:600;font-variant-numeric:tabular-nums}
.wbd-sub strong,.wbd-sub #wbdSubVal{color:var(--t2);font-weight:700}
[data-theme="dark"] .wbd-tgl:hover{background:rgba(255,255,255,.07)}
.wbd-addr{position:relative;display:inline-flex;align-items:center;gap:7px;margin-top:16px;padding:7px 13px;border-radius:22px;
  border:1.5px solid rgba(0,152,234,.18);background:rgba(0,152,234,.06);color:var(--blue);
  font-size:13px;font-weight:700;cursor:pointer;font-family:'Inter',sans-serif;font-variant-numeric:tabular-nums;
  transition-property:background,scale;transition-duration:.15s}
.wbd-addr:hover{background:rgba(0,152,234,.12)}
.wbd-addr:active{scale:.96}
.wbd-addr svg{opacity:.75;flex-shrink:0}
.wbd-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}
.wbd-tile{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:14px 15px;border-radius:14px;
  border:1.5px solid rgba(0,152,234,.12);background:rgba(0,152,234,.04);cursor:pointer;text-align:left;
  transition-property:background,border-color,scale;transition-duration:.15s;font-family:'Inter',sans-serif}
.wbd-tile:hover{background:rgba(0,152,234,.09);border-color:rgba(0,152,234,.3)}
.wbd-tile:active{scale:.96}
.wbd-tile-ico{color:var(--blue);margin-bottom:7px;line-height:0;transition-property:transform;transition-duration:.15s}
.wbd-tile:hover .wbd-tile-ico{transform:translateY(-1px)}
.wbd-tile-t{font-size:14px;font-weight:800;color:var(--t1)}
.wbd-tile-s{font-size:11.5px;color:var(--t3);font-weight:600}
[data-theme="dark"] .wallet-bal-dropdown{background:rgba(10,22,36,.98);border-color:rgba(255,255,255,.10);box-shadow:0 24px 70px rgba(0,0,0,.5)}
[data-theme="dark"] .wbd-tile{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.09)}
[data-theme="dark"] .wbd-tile:hover{background:rgba(255,255,255,.07)}
[data-theme="dark"] .wbd-addr{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.10)}

/* Account menu — beUI wallet-card, scoped to this dropdown only */
.wallet-dropdown{
  width:312px;min-width:0;padding:16px 16px 18px;border-radius:24px;
  overflow:hidden;border:none;
  box-shadow:
    0 0 0 1px rgba(0,0,0,.08),
    0 24px 64px rgba(10,37,64,.16);
}
.wallet-dropdown.open{animation:wbdFade .2s ease}
.wallet-dropdown.open > *{animation:wbdRise .3s cubic-bezier(0.2,0,0,1) backwards}
.wallet-dropdown.open > :nth-child(1){animation-delay:.02s}
.wallet-dropdown.open > :nth-child(2){animation-delay:.08s}
.wallet-dropdown.open > :nth-child(3){animation-delay:.14s}
.wallet-dropdown.open > :nth-child(4){animation-delay:.18s}
.wallet-dropdown.open > :nth-child(5){animation-delay:.22s}

/* Header: identity chip + copy — no tinted strip */
.wd-card-head,.wd-header{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:0;background:none;
}
.wd-ident{display:flex;align-items:center;gap:10px;min-width:0;flex:1}
.wd-avatar{
  width:36px;height:36px;box-sizing:border-box;overflow:hidden;
  font-size:15px;flex-shrink:0;display:flex;align-items:center;justify-content:center;
  border-radius:50%;background:#ececec;
  outline:1px solid rgba(0,0,0,.1);outline-offset:-1px;
}
.wd-avatar img{
  width:100%;height:100%;object-fit:cover;display:block;border-radius:50%;background:#111;
  outline:1px solid rgba(0,0,0,.1);outline-offset:-1px;
}
.wd-hinfo{flex:1;min-width:0}
.wd-name-row{display:flex;align-items:center;gap:4px;min-width:0}
.wd-name{
  font-size:15px;font-weight:600;color:var(--t1);letter-spacing:-.2px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-wrap:balance;
}
.wd-name-caret{flex-shrink:0;color:var(--t3);opacity:.7;transform:translateY(1px)}
.wd-social{display:none}
.wd-social strong{color:var(--t2);font-weight:600}
.wd-head-tools{display:flex;align-items:center;gap:4px;flex-shrink:0}
.wd-tool{
  position:relative;width:36px;height:36px;padding:0;border:none;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:none;color:var(--t3);cursor:pointer;
  transition-property:background,color,scale;transition-duration:.15s;transition-timing-function:cubic-bezier(0.2,0,0,1);
}
.wd-tool::after{content:"";position:absolute;inset:-2px;border-radius:50%}
.wd-tool:hover{background:rgba(0,0,0,.05);color:var(--t1)}
.wd-tool:active{scale:.96}

/* Balance — centered, tabular, eye sits with the label */
.wd-bal-block{margin-top:18px;text-align:center}
.wd-bal-lbl{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  font-size:12px;font-weight:600;color:var(--t3);letter-spacing:.01em;
}
.wd-eye{
  position:relative;width:28px;height:28px;padding:0;border:none;border-radius:8px;
  display:inline-flex;align-items:center;justify-content:center;
  background:none;color:var(--t3);cursor:pointer;
  transition-property:background,color,scale;transition-duration:.15s;transition-timing-function:cubic-bezier(0.2,0,0,1);
}
.wd-eye::after{content:"";position:absolute;top:50%;left:50%;width:40px;height:40px;transform:translate(-50%,-50%)}
.wd-eye:hover{background:rgba(0,0,0,.05);color:var(--t1)}
.wd-eye:active{scale:.96}
.wd-eye-ico{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  transition-property:opacity,transform,filter;transition-duration:.3s;transition-timing-function:cubic-bezier(0.2,0,0,1)}
.wd-eye--off{opacity:0;transform:scale(.25);filter:blur(4px)}
.wd-eye.is-off .wd-eye--open{opacity:0;transform:scale(.25);filter:blur(4px)}
.wd-eye.is-off .wd-eye--off{opacity:1;transform:scale(1);filter:blur(0)}
.wd-bal-amt{
  display:block;width:100%;margin-top:6px;padding:0;border:none;background:none;
  font-family:'Inter',sans-serif;font-size:30px;font-weight:700;color:var(--t1);
  letter-spacing:-.7px;line-height:1.1;font-variant-numeric:tabular-nums;
  cursor:pointer;text-align:center;
  transition-property:color,opacity;transition-duration:.15s;
}
.wd-bal-amt:hover{opacity:.82}
.wd-bal-sub{margin-top:4px;font-size:12.5px;font-weight:600;color:var(--t3);font-variant-numeric:tabular-nums}

/* Four circular actions — Swap→Profile, Buy→Disconnect */
.wd-circles{display:flex;align-items:flex-start;justify-content:space-between;gap:6px;margin-top:20px;padding:0 2px}
.wd-circle{
  flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:8px;
  padding:0;border:none;background:none;cursor:pointer;font-family:'Inter',sans-serif;
  transition-property:opacity;transition-duration:.15s;
}
.wd-circle-ico{
  width:48px;height:48px;border-radius:16px;display:flex;align-items:center;justify-content:center;
  color:var(--t1);background:rgba(0,0,0,.05);
  transition-property:background,transform;transition-duration:.15s;transition-timing-function:cubic-bezier(0.2,0,0,1);
}
.wd-circle-ico svg{display:block}
.wd-circle:hover .wd-circle-ico{background:rgba(0,0,0,.08);transform:translateY(-1px)}
.wd-circle:active .wd-circle-ico{transform:scale(.96)}
.wd-circle:hover .wd-circle-t{color:var(--t1)}
.wd-circle-t{font-size:11px;font-weight:600;color:var(--t3);text-align:center;line-height:1.2;letter-spacing:-.1px}

.wallet-dropdown .wd-sep{margin:14px -16px 0;background:rgba(0,0,0,.06)}
.wd-item{width:100%;text-align:left;border:none;background:none;padding:12px 8px;margin:2px 0 0;gap:12px;border-radius:12px;font-size:14px;font-weight:600;color:var(--t2);font-family:'Inter',sans-serif;cursor:pointer;transition-property:background,color;transition-duration:.13s}
.wd-item:hover{background:rgba(0,0,0,.04);color:var(--t1)}
.wd-item:active{scale:.96}
.wd-ico-svg{width:16px;height:16px;flex-shrink:0;color:var(--t3);transition-property:color;transition-duration:.15s}
.wd-item:hover .wd-ico-svg{color:var(--t1)}
[data-theme="dark"] .wd-avatar{
  background:#1a1a1a;
  outline-color:rgba(255,255,255,.1);
}
[data-theme="dark"] .wd-avatar img{outline-color:rgba(255,255,255,.1)}
[data-theme="dark"] .wd-tool:hover,[data-theme="dark"] .wd-eye:hover{background:rgba(255,255,255,.08)}
[data-theme="dark"] .wd-circle-ico{
  background:rgba(255,255,255,.08);color:#F4F4EF;
}
[data-theme="dark"] .wd-circle:hover .wd-circle-ico{background:rgba(255,255,255,.12)}
[data-theme="dark"] .wd-bal-lbl{color:#8A8A82}
[data-theme="dark"] .wallet-dropdown .wd-sep{background:rgba(255,255,255,.08)}
[data-theme="dark"] .wd-item:active{background:rgba(255,255,255,.06)}

/* Phase 2: own-mode hero — hide the self DNA badge */
.wlt-hist-tg-btn{display:none;align-items:center;gap:5px;padding:6px 11px;border-radius:9px;border:1.5px solid rgba(0,152,234,.2);background:rgba(0,152,234,.06);color:var(--blue);font-size:12px;font-weight:600;font-family:'Inter',sans-serif;text-decoration:none;white-space:nowrap;flex-shrink:0;transition-property:background,border-color,transform;transition-duration:.15s}
.wlt-hist-tg-btn svg{color:currentColor;width:13px;height:13px}
.wlt-hist-tg-btn:hover{border-color:var(--blue);background:rgba(0,152,234,.14)}
.wlt-hist-tg-btn:active{transform:scale(.96)}
/* Vault info lives only in the Vault tab for the owner — no duplicate hero chip */
.wlt-hist-panel.is-own .wlt-hist-linked{display:none}

/* ── Vault tab: single platform (custodial) wallet, styled after the balance panel ── */
@keyframes vltSpin{to{transform:rotate(360deg)}}
/* 3 equal columns that can shrink below label min-content (iPhone ~390).
   Default grid min-width:auto + "Send to a wallet" was pushing Backup off-screen. */
/* Must out-specify the rule above, which would otherwise grey out the ON state */
[data-theme="dark"] .wlt-hist-tg-btn{background:rgba(0,152,234,.12);border-color:rgba(0,152,234,.25);color:#4DB8FF}
[data-theme="dark"] .wlt-hist-tg-btn:hover{background:rgba(0,152,234,.2);border-color:var(--blue2)}

/* ════════ Vault modals — Deposit / Withdraw / Recovery ════════
   Restyled to the Vault tab's language: light-blue surfaces, blue borders,
   the same pill/tile vocabulary. Scoped to #wmModal so nothing else shifts.
   Only presentation — the money flows in wallet-manager.js are untouched. */
#wmModal .wm-modal-box{
  background:rgba(240,249,255,.99);
  border:1.5px solid rgba(0,152,234,.16);
  border-radius:22px;
  padding:34px 22px 22px;
  box-shadow:0 24px 70px rgba(10,37,64,.18);
}
#wmModal .wm-modal-close{
  top:12px;right:12px;width:32px;height:32px;border-radius:10px;
  background:rgba(0,152,234,.07);border:1.5px solid rgba(0,152,234,.16);color:var(--t2);
  transition-property:background,color,scale;transition-duration:.15s;
}
#wmModal .wm-modal-close:hover{background:rgba(0,152,234,.15);color:var(--blue)}
#wmModal .wm-modal-close:active{scale:.96}

/* Emblem: the same blue gradient tile as the vault card's flag */

/* ── Deposit ── */

/* ── Withdraw ── */
/* The inputs carried dark-theme values (white @6% on white), so on the light
   modal both the field and its border were all but invisible. */

/* ── Recovery phrase ── */
/* Blue like the rest of the vault: an amber emblem here was the only warm note
   left on the screen and read as a stray rather than a signal. */

[data-theme="dark"] #wmModal .wm-modal-box{background:rgba(10,22,36,.99);border-color:rgba(255,255,255,.1)}
[data-theme="dark"] #wmModal .wm-modal-close{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12)}

/* ════════ Recovery phrase — two steps in one dialog ════════
   Step 1 gates on a safety brief; step 2 widens the dialog so all 24 words fit
   a 4×6 grid at a readable size (they used to scroll inside the 440px box). */
/* Width animates on the dialog itself, so the step switch doesn't snap */
#wmModal .wm-modal-box{transition-property:max-width;transition-duration:.28s;transition-timing-function:cubic-bezier(0.2,0,0,1)}

/* Sheet header: back · title · panic-hide */

/* 4×6 — every word visible at once, no scrolling */

/* Seed sheet: close moves inline next to the blur toggle, so the corner one goes */

/* Masked words are the obvious thing to click, so say so */

/* Profile boot loader — shown while a stored TonConnect session auto-restores,
   so the profile route never flashes the retired legacy design first. */
.profile-boot-view{display:none;flex-direction:column;align-items:center;justify-content:center;gap:16px;min-height:60vh;padding:40px}
.profile-boot-view.active{display:flex}
.pbv-spinner{width:38px;height:38px;border-radius:50%;border:3px solid rgba(0,152,234,.18);border-top-color:var(--blue);animation:pbvSpin .7s linear infinite}
@keyframes pbvSpin{to{transform:rotate(360deg)}}
.pbv-txt{font-size:14px;font-weight:600;color:var(--t3)}

/* Native GRAM banner — the base asset gets its own line above the columned
   table (larger type), instead of being forced into the Coin/Value/MC/PnL grid. */
.wlt-native-banner{display:flex;align-items:center;gap:14px;margin:0 24px 14px;padding:14px 18px;border-radius:14px;background:rgba(0,152,234,.06);border:1.5px solid rgba(0,152,234,.15)}
.wlt-native-banner-ico{width:46px;height:46px;flex-shrink:0;border-radius:13px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:rgba(0,152,234,.1)}
.wlt-native-banner-ico img{width:100%;height:100%;object-fit:cover;display:block}
.wlt-native-banner-main{min-width:0}
.wlt-native-banner-val{font-size:21px;font-weight:900;color:var(--t1);letter-spacing:-.4px;font-variant-numeric:tabular-nums;line-height:1.1}
.wlt-native-banner-usd{font-size:15px;font-weight:700;color:var(--t3);margin-left:7px;letter-spacing:0}
.wlt-native-banner-txt{font-size:13.5px;color:var(--t2);font-weight:600;margin-top:4px;text-wrap:pretty}
[data-theme="dark"] .wlt-native-banner{background:rgba(0,152,234,.1);border-color:rgba(0,152,234,.2)}
@media(max-width:600px){
  .wlt-native-banner{margin:0 12px 12px;padding:12px 14px;gap:11px}
  .wlt-native-banner-val{font-size:18px}
  .wlt-native-banner-txt{font-size:12px}
}

/* Token-amount line inside a Balances row — desktop keeps it in the Value
   column; only the mobile layout below surfaces it on the left. */
.wlt-hold-amt-m{display:none;font-size:12.5px;color:var(--t3);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ══════════════════════════════════════════════════════════════════════
   Profile tables — authoritative mobile layout (≤600px)
   Balances, Created-coins and Activity share the .wlt-hold-* classes and had
   several competing 600px rules that reflowed 5 grid cells into 2–3 columns,
   overlapping the content. This block is the single source of truth: it is
   last in the file and id-scoped, so it wins over every earlier 600px rule.
   Each row collapses to two columns — coin identity on the left, the two most
   important numbers stacked on the right.
   ══════════════════════════════════════════════════════════════════════ */
@media (max-width:600px){
  /* ── Balances → exchange-style two-line row ──
       name           value      (top)
       amount·ticker  P / L      (bottom)
     The token amount moves to the LEFT (.wlt-hold-amt-m, replacing the ticker)
     and pairs with P/L, so the right side is just Value over P/L. No 5-line
     cramp, no labels needed — position carries the meaning. */
  #wltHoldTableWrap .wlt-hold-header{display:none}
  #wltHoldTableWrap .wlt-hold-row{
    grid-template-columns:minmax(0,1fr) auto;
    column-gap:12px;row-gap:4px;padding:13px 16px;align-items:center;
  }
  #wltHoldTableWrap .wlt-hold-row>.wlt-hold-coin{grid-column:1;grid-row:1 / span 2;align-self:center}
  #wltHoldTableWrap .wlt-hold-coin .wlt-hold-ticker{display:none}
  #wltHoldTableWrap .wlt-hold-coin .wlt-hold-amt-m{display:block}
  #wltHoldTableWrap .wlt-hold-row>div:nth-child(2){grid-column:2;grid-row:1;text-align:right;align-self:center}      /* Value */
  #wltHoldTableWrap .wlt-hold-row>div:nth-child(2) .wlt-hold-val-sub{display:none}               /* token amt now on left */
  #wltHoldTableWrap .wlt-hold-row>div:nth-child(3){display:none}                                 /* MC */
  #wltHoldTableWrap .wlt-hold-row>.wlt-hold-invested{display:none}                               /* Invested */
  #wltHoldTableWrap .wlt-hold-row>.wlt-hold-pnl{grid-column:2;grid-row:2;text-align:right;align-self:center}         /* P/L */

  /* ── Created coins → Coin | (MC over Earned) ──
     Earned is the creator's headline number, so it survives to mobile; Volume
     and Age are dropped. The display:block re-shows the Earned cell that an
     earlier 600px rule hid. */
  #crCoinsWrap .wlt-hold-header{display:none}
  #crCoinsWrap .wlt-cr-row{
    grid-template-columns:minmax(0,1fr) auto;
    column-gap:12px;row-gap:2px;padding:12px 16px;align-items:center;
  }
  #crCoinsWrap .wlt-cr-row>.wlt-hold-coin{grid-column:1;grid-row:1 / span 2;align-self:center}
  #crCoinsWrap .wlt-cr-row>div:nth-child(2){display:block;grid-column:2;grid-row:1;text-align:right} /* MC */
  #crCoinsWrap .wlt-cr-row>div:nth-child(2) .wlt-hold-mc{display:block}
  /* Drop the MC % change here — too little room; the coin's chart carries it */
  #crCoinsWrap .wlt-cr-row .wlt-hold-mc-chg{display:none}
  #crCoinsWrap .wlt-cr-row>div:nth-child(3){display:none}                                        /* Volume */
  #crCoinsWrap .wlt-cr-row>div:nth-child(4){display:block;grid-column:2;grid-row:2;text-align:right} /* Earned */
  #crCoinsWrap .wlt-cr-row>.wlt-cr-age{display:none}                                             /* Age */

  /* ── Activity → Coin | (Amount+USD over Time) ──
     The old 3-column layout squeezed Amount into a fixed slot, so "3.5M MTONGA"
     and "Curve → Pool" got ellipsised. Stacking gives Amount the full width it
     needs; the coloured left rail already carries the action, so its badge is
     dropped here. */
  .wlt-hist-feed .wlt-act-header{display:none}
  .wlt-hist-feed .wlt-act-row{
    grid-template-columns:minmax(0,1fr) auto;
    column-gap:12px;row-gap:2px;padding:12px 16px;align-items:center;
  }
  .wlt-hist-feed .wlt-act-row>.wlt-act-coin{grid-column:1;grid-row:1 / span 2;align-self:center}
  .wlt-hist-feed .wlt-act-row>.wlt-act-badge-cell{display:none}                                  /* Action */
  .wlt-hist-feed .wlt-act-row>.wlt-act-amt-cell{
    grid-column:2;grid-row:1;text-align:right;
    display:flex;flex-direction:column;align-items:flex-end;gap:2px;
  }
  /* Mobile stack: $ equiv → accent amount → time (accent sits in the middle) */
  .wlt-hist-feed .wlt-act-amt-sub{order:-1;margin-top:0}
  .wlt-hist-feed .wlt-act-amt{order:0}
  .wlt-hist-feed .wlt-act-row>.wlt-act-time-cell{grid-column:2;grid-row:2;justify-content:flex-end} /* Time */

  /* ── Micro column-labels for Created coins ──
     Its right side stacks two same-type $ figures (Mkt Cap, Earned) with no
     header to name them, so each gets a tiny caption. Balances doesn't need
     these — its name|value / amount|P/L pairing is self-describing; Activity
     (amount + time) reads for itself too. */
  #crCoinsWrap .wlt-cr-row>div:nth-child(2)::before,
  #crCoinsWrap .wlt-cr-row>div:nth-child(4)::before{
    display:block;font-size:9px;font-weight:800;letter-spacing:.05em;
    text-transform:uppercase;color:var(--t3);line-height:1.3;margin-bottom:1px;
  }
  #crCoinsWrap .wlt-cr-row>div:nth-child(2)::before{content:"Mkt Cap"}
  #crCoinsWrap .wlt-cr-row>div:nth-child(4)::before{content:"Earned"}

  /* ── Clear the floating bottom nav: last vault actions must sit fully above it.
     Floating dock ≈ 10px gap + ~66px bar + Create FAB overhang — 94px was short. ── */
  .wlt-hist-panel{padding-bottom:calc(var(--mnb-clearance, calc(var(--mnb-h, 88px) + env(safe-area-inset-bottom, 0px))) + 20px)}
}

/* ════════════════════════════════════════════════════════════════════════════
   DEVICE ADAPTATION PASS — tablet (701–999) + phone polish (≤700)
   Breakpoints: phone ≤700 | tablet 701–999 | desktop ≥1000
   ════════════════════════════════════════════════════════════════════════════ */

/* ── Tablet: app shell ── */
@media(max-width:999px) and (min-width:701px){
  .content{padding:18px 16px 28px}
  .page-title{font-size:20px}
  .ticker-wrap{height:46px;margin-bottom:16px}
  .nav-item,.sb-hld-trigger,.sb-ls-header{min-height:44px}
  .btn-sb-create{min-width:42px;min-height:42px}
}

@media(max-width:999px) and (min-width:701px){
  .coin-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
}

/* ── Phone: PNL hero + period tabs + recent cards ── */
@media(max-width:700px){
  .pnl-hero-bg{padding:16px 14px}
  .pnl-hero-bg > .pnl-stage > .pnl-stage-main,
  .pnl-stage-main{padding-left:40%}
  .pnl-stage-main > .pnl-period-tabs,
  .pnl-stage-main .pnl-period-tabs,
  .pnl-period-tabs{display:inline-flex !important;width:auto !important;max-width:100%;box-sizing:border-box;align-self:flex-end;margin-left:auto}
  .pnl-ptab{flex:0 1 auto;min-width:0;padding:8px 8px;text-align:center}
  .pnl-coins{grid-template-columns:1fr;gap:10px}
  .coin-pnl-hero .pnl-big-block{padding-left:36%}
  .pnl-section-tools{width:100%;justify-content:flex-start}
  .pnl-share-btn{white-space:nowrap}
  .pnl-ton-big{width:72px;height:72px}
  .pnl-hero-title{font-size:clamp(24px,7vw,34px)}
}

@media(max-width:480px){
  .pnl-page-head{flex-direction:column;align-items:stretch;gap:10px}
  .pnl-share-btn{width:100%;justify-content:center}
  .pnl-ton-big{width:64px;height:64px}
  .pnl-big-num{font-size:clamp(34px,10vw,44px)}
}

/* ── Tablet + phone: coin detail mid-band ── */
@media(max-width:900px) and (min-width:701px){
  .dv-grid{display:flex;flex-direction:column;gap:14px}
  .dv-left,.dv-right{display:contents}
  .stats-row{order:1}
  .bs-card{order:2}
  .dv-chart-wrap{order:4}
  .tv-partner-banner{order:5}
  .th-card{order:6}
  .bond-card{order:7}
  .desc-card{order:8}
  .trades-wrap{order:9}
  .stats-row,.bs-card,.dv-chart-wrap,.tv-partner-banner,.bond-card,.th-card,.desc-card,.trades-wrap{
    width:100%;box-sizing:border-box;min-width:0;max-width:100%
  }
}

@media(max-width:700px){
  .dv-vtabs{
    overflow-x:auto;-webkit-overflow-scrolling:touch;
    scrollbar-width:none;flex-wrap:nowrap;
  }
  .dv-vtabs::-webkit-scrollbar{display:none}
  .dv-vtab{flex-shrink:0}
}

/* ── Phone: Holdings / Watchlist padding + summary ── */
@media(max-width:700px){
  .holdings-view,.watchlist-view{padding:14px 12px 28px}
  .hv-page-title,.wl-page-title{font-size:18px}
  .hv-summary,.wl-summary{padding:14px 14px;gap:12px;margin-bottom:12px}
  .hv-sum-val{font-size:26px}
  .wl-sum-val{font-size:22px}
  .hv-sum-stats,.wl-sum-stats{
    margin-left:0;width:100%;
    display:grid;grid-template-columns:1fr 1fr;gap:8px
  }
  .hv-sum-stat,.wl-sum-item{min-width:0;padding:10px 12px}
  .hv-sortbar{flex-wrap:wrap;gap:8px}
  .hv-scopebar{flex-wrap:wrap;gap:8px}
  .hv-seg{flex:1;min-width:0;width:100%}
  .hv-seg-btn{flex:1;text-align:center;padding:8px 10px}
  .port-sheet{padding:12px;border-radius:20px}
}

/* ── Tablet: Holdings / Watchlist ── */
@media(max-width:999px) and (min-width:701px){
  .holdings-view,.watchlist-view{padding:18px 16px 32px}
  .hv-sum-val{font-size:28px}
  .hv-sum-stats{gap:8px}
}

/* ── Phone/tablet: DEX — align padding to ≤700 rhythm ── */
@media(max-width:700px){
  .dex-view{padding:14px 12px 32px;gap:14px;min-height:0}
  .dex-hero{padding:14px 14px;gap:12px}
  .dex-hero-left{min-width:0}
  .dex-hero-title{font-size:18px}
  .dex-hero-stats{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .dex-sc-inp,.dex-sc-out{font-size:20px;min-width:0}
}

@media(max-width:999px) and (min-width:701px){
  .dex-view{padding:20px 18px 36px}
}

/* ── Tablet: profile wallet holdings — 4-col denser table ── */
@media(max-width:999px) and (min-width:701px){
  #wltHoldingsContent{max-width:none;margin:0}

  /* Invested is often empty (—) and steals width from PnL — drop it here */
  .wlt-hold-header span:nth-child(4),
  .wlt-hold-row > .wlt-hold-invested{display:none}

  .wlt-hold-header,
  .wlt-hold-row{
    grid-template-columns:minmax(0,1.45fr) 92px 84px minmax(148px,1.05fr);
    gap:14px;
    padding-left:14px;padding-right:14px
  }
  .wlt-hold-header{padding-top:6px;padding-bottom:10px}
  .wlt-hold-row{padding-top:13px;padding-bottom:13px;align-items:center}

  /* Headers match right-aligned numeric cells */
  .wlt-hold-header span:nth-child(2),
  .wlt-hold-header span:nth-child(3),
  .wlt-hold-header span:nth-child(5){text-align:right}

  .wlt-hold-coin{gap:10px;min-width:0}
  .wlt-hold-coin > img{width:36px;height:36px;min-width:36px;min-height:36px}
  .wlt-hold-coin-info{min-width:0}
  .wlt-hold-name{font-size:14px;max-width:100%}
  .wlt-hold-ticker{font-size:12px}

  .wlt-hold-val{font-size:15px}
  .wlt-hold-val-sub{font-size:11.5px}
  .wlt-hold-mc{font-size:14px}
  .wlt-hold-mc-chg{font-size:11.5px}

  /* Stack Unr / Real so PnL isn't one long cramped line */
  .wlt-hold-pnl{min-width:0}
  .wlt-hold-pnl-total{font-size:14.5px}
  .wlt-hold-pnl-split{
    display:flex;flex-direction:column;align-items:flex-end;
    gap:1px;margin-top:3px;white-space:normal;font-size:11px;line-height:1.25
  }
  .wlt-hold-pnl-dot{display:none}

  .wlt-hold-native{grid-column:3 / -1}
  .wlt-section-hdr--row{gap:12px;align-items:flex-start}
  .wlt-hold-toolbar{flex-wrap:wrap;gap:8px}
}

/* ── Tablet: Bubble Map — denser chrome, more room for map + holders ── */
@media(max-width:999px) and (min-width:701px){
  .bm-pg-hero{
    margin:12px 14px 0;padding:16px 18px;gap:4px;border-radius:14px
  }
  .bm-pg-title{font-size:20px;letter-spacing:-.2px}
  .bm-pg-sub{font-size:13px;line-height:1.35}
  .bm-pg-search{padding:10px 14px;gap:8px}
  .bm-pg-input{padding:9px 12px;font-size:12.5px}
  .bm-pg-load-btn{padding:9px 16px;font-size:12.5px}
  .bm-pg-view .bm-body:not(.fullscreen){
    margin:10px 14px 18px;border-radius:16px
  }
  .bm-pg-view .bm-canvas-wrap{min-height:0!important;flex:1}
  .bm-pg-view .bm-body{min-height:min(62vh,560px)}
  .bm-pg-holders-sidebar{
    flex:0 0 260px!important;width:260px!important
  }
  .bm-pg-hl-hdr{padding:12px 14px 8px;font-size:13px}
  .bm-zoom-controls{bottom:14px;left:14px}
}

/* ── Bubble Map: unify to 700 + phone padding ── */
@media(max-width:700px){
  .bm-pg-hero{
    margin:12px 12px 0;padding:18px 16px;
    border-radius:14px
  }
  .bm-pg-title{font-size:20px}
  .bm-pg-sub{font-size:13px}
  .bm-pg-search{
    flex-direction:column;align-items:stretch;
    padding:12px;gap:8px
  }
  .bm-pg-load-btn{width:100%;justify-content:center}
  .bm-pg-view .bm-body:not(.fullscreen){
    margin:12px 0 0;border-radius:0;border-left:none;border-right:none
  }
  .bm-pg-view .bm-canvas-wrap{min-height:360px!important}
  .bm-pg-view{
    padding-bottom:calc(var(--mnb-clearance, var(--mnb-h, 62px)) + 8px)
  }
  .bm-zoom-controls{bottom:calc(12px + env(safe-area-inset-bottom,0px));left:12px}
}

/* ── Profile phone: ensure content clears bottom nav ── */
@media(max-width:700px){
  .profile-view{padding-bottom:12px}
  #toastContainer{top:calc(var(--tb-h) + env(safe-area-inset-top,0px) + 8px)}
}

/* Very narrow: single-column explore cards (after 480px 2-col reassert) */
@media(max-width:360px){
  .coin-grid{grid-template-columns:1fr}
}

/* ── Feedback mode — calm, Apple-style path capture ──
   Frosted translucent surfaces, soft ambient shadows, one restrained accent
   (Vella blue), generous padding, short interruptible transitions. Reuses
   the app's own tokens (--t1/--t2/--t3/--blue) so it always matches the
   active light/dark theme. Deliberately not a "mission report" — no ticket
   stamps, cut corners, or rainbow chip fills. See vella-living-world +
   make-interfaces-feel-better skill for the "why". */
.fb-fab,
.fb-recbar,
.fb-backdrop,
.fb-sheet{
  --fb-surface:    rgba(255,255,255,.86);
  --fb-line:       rgba(10,37,64,.09);
  --fb-line-soft:  rgba(10,37,64,.05);
  --fb-chip-bg:    rgba(10,37,64,.045);
  --fb-shadow:     0 1px 2px rgba(10,37,64,.05), 0 24px 56px rgba(10,37,64,.14);
  --fb-shadow-h:   0 2px 4px rgba(10,37,64,.06), 0 28px 64px rgba(10,37,64,.18);
  --fb-scrim:      rgba(10,25,42,.26);
  /* Primary CTA + accent tints: kept as explicit tokens (not var(--blue) directly)
     because Void Type remaps --blue to bone/white for dark — a white-on-white
     gradient button would be illegible there, so dark gets its own solid
     bone-on-black treatment mirroring .ts-done-btn / .flt-apply-btn. */
  --fb-cta-bg:       linear-gradient(135deg,var(--blue2),var(--blue));
  --fb-cta-fg:       #fff;
  --fb-cta-shadow:   0 6px 18px rgba(0,152,234,.28);
  --fb-cta-shadow-h: 0 8px 22px rgba(0,152,234,.36);
  --fb-accent-tint:  rgba(0,152,234,.12);
  --fb-accent-ring:  rgba(0,152,234,.14);
  --fb-grn-tint:     rgba(0,200,83,.12);
  --fb-red-tint:     rgba(245,54,92,.1);
  /* Category tones for chips/step-badges — tuned per-theme for contrast,
     shared between the live-bar chip dot and the review-list badge so the
     two never drift out of sync. */
  --fb-wallet:       #2563EB;
  --fb-amber:        #B9790A;
  --fb-notice:       #7C5CFC;
  font-family:inherit;
  display:none !important;
}
.fb-fab.is-on{display:inline-flex !important}
.fb-recbar.is-on{display:flex !important}
.fb-backdrop.is-on{display:block !important}
.fb-sheet.is-on{display:block !important}
.fb-fab[hidden],
.fb-recbar[hidden],
.fb-backdrop[hidden],
.fb-sheet[hidden]{display:none !important}

/* Match Void Type theme selectors (dark / voidtype / data-scheme).
   Narrow `[data-theme="dark"]` alone missed voidtype and left light
   frosted-white surfaces + blue CTAs leaking into Void Mode. */
html:is([data-theme="dark"], [data-scheme="dark"], [data-theme="voidtype"]) .fb-fab,
html:is([data-theme="dark"], [data-scheme="dark"], [data-theme="voidtype"]) .fb-recbar,
html:is([data-theme="dark"], [data-scheme="dark"], [data-theme="voidtype"]) .fb-backdrop,
html:is([data-theme="dark"], [data-scheme="dark"], [data-theme="voidtype"]) .fb-sheet{
  --fb-surface:    #12141a;
  --fb-line:       rgba(255,255,255,.12);
  --fb-line-soft:  rgba(255,255,255,.07);
  --fb-chip-bg:    rgba(255,255,255,.06);
  --fb-shadow:     0 0 0 1px rgba(255,255,255,.04), 0 24px 56px rgba(0,0,0,.6);
  --fb-shadow-h:   0 0 0 1px rgba(255,255,255,.08), 0 28px 64px rgba(0,0,0,.7);
  --fb-scrim:      rgba(0,0,0,.55);
  /* Bone CTA — Void remaps --blue to cream; never use white-on-bone. */
  --fb-cta-bg:       #E8E8E0;
  --fb-cta-fg:       #0A0A0A;
  --fb-cta-shadow:   0 6px 18px rgba(0,0,0,.4);
  --fb-cta-shadow-h: 0 8px 22px rgba(0,0,0,.5);
  --fb-accent-tint:  rgba(255,255,255,.1);
  --fb-accent-ring:  rgba(232,232,224,.18);
  --fb-grn-tint:     rgba(61,219,138,.14);
  --fb-red-tint:     rgba(255,92,106,.14);
  --fb-wallet:       #A8B4C4;
  --fb-amber:        #E8C56A;
  --fb-notice:       #C4B5FD;
}

/* ── FAB: quiet pill, calm breathing dot instead of radar sweep ── */
.fb-fab{
  position:fixed;right:18px;bottom:22px;z-index:8500;
  align-items:center;gap:8px;
  padding:12px 18px 12px 14px;border-radius:999px;
  border:1px solid var(--fb-line);
  background:var(--fb-surface);
  backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);
  color:var(--t1);
  font-weight:600;font-size:14px;letter-spacing:-.01em;
  cursor:pointer;-webkit-font-smoothing:antialiased;
  box-shadow:var(--fb-shadow);
  transition-property:transform,box-shadow;
  transition-duration:.2s;transition-timing-function:cubic-bezier(.22,1,.36,1);
}
.fb-fab:hover{transform:translateY(-1px);box-shadow:var(--fb-shadow-h)}
.fb-fab:active{transform:scale(.96)}
.fb-fab-dot{
  width:8px;height:8px;border-radius:50%;flex-shrink:0;
  background:var(--blue);
  animation:fbBreathe 2.4s ease-in-out infinite;
}
@keyframes fbBreathe{0%,100%{opacity:.5;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}
@media(max-width:700px){
  .fb-fab{bottom:calc(var(--mnb-h, 62px) + 14px + env(safe-area-inset-bottom,0px));right:14px}
}

/* ── Live bar: frosted strip, no grid texture or cut corners ── */
.fb-recbar{
  position:fixed;left:50%;transform:translateX(-50%);
  top:calc(var(--tb-h, 56px) + 10px);z-index:8600;
  width:min(640px, calc(100% - 24px));
  align-items:center;justify-content:space-between;gap:14px;
  padding:10px 12px 10px 16px;border-radius:18px;
  border:1px solid var(--fb-line);
  background:var(--fb-surface);
  backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);
  box-shadow:var(--fb-shadow);
  animation:fbSlideDown .3s cubic-bezier(.22,1,.36,1) both;
}
@keyframes fbSlideDown{
  from{opacity:0;transform:translateX(-50%) translateY(-10px)}
  to{opacity:1;transform:translateX(-50%) translateY(0)}
}
.fb-rec-left{display:flex;align-items:center;gap:10px;min-width:0;flex:1}
.fb-rec-live{
  width:8px;height:8px;border-radius:50%;background:var(--blue);flex-shrink:0;
  box-shadow:0 0 0 4px var(--fb-accent-ring);
  animation:fbPulse 1.6s ease-in-out infinite;
}
@keyframes fbPulse{0%,100%{opacity:1}50%{opacity:.4}}
.fb-rec-meta{display:flex;flex-direction:column;gap:1px;flex-shrink:0}
.fb-rec-lbl{font-size:13px;font-weight:650;color:var(--t1);white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.fb-rec-lbl b{color:var(--blue);font-weight:700}
.fb-rec-sub{font-size:11px;font-weight:500;color:var(--t3)}
.fb-rec-chips{
  display:flex;align-items:center;gap:6px;overflow:hidden;min-width:0;flex:1;
  mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
}
.fb-chip{
  flex-shrink:0;display:inline-flex;align-items:center;gap:6px;
  padding:5px 10px 5px 8px;border-radius:999px;
  background:var(--fb-chip-bg);border:1px solid var(--fb-line-soft);
  font-size:11.5px;font-weight:600;color:var(--t2);
  animation:fbChipIn .3s cubic-bezier(.22,1,.36,1) both;
}
.fb-chip::before{content:'';width:6px;height:6px;border-radius:50%;flex-shrink:0;background:var(--fb-dot, var(--blue))}
.fb-chip b{color:var(--t1);font-weight:650;letter-spacing:-.01em}
.fb-chip--trade,.fb-chip--amount{--fb-dot:var(--grn)}
.fb-chip--wallet{--fb-dot:var(--fb-wallet)}
.fb-chip--settings,.fb-chip--toast{--fb-dot:var(--fb-amber)}
.fb-chip--coin,.fb-chip--route,.fb-chip--nav{--fb-dot:var(--blue)}
.fb-chip--action{--fb-dot:var(--red)}
.fb-chip--notice{--fb-dot:var(--fb-notice)}
.fb-chip--click{--fb-dot:var(--t3)}
.fb-chip-sep{color:var(--t3);opacity:.5;font-size:11px;flex-shrink:0}
@keyframes fbChipIn{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}
.fb-rec-actions{display:flex;gap:8px;flex-shrink:0}

/* ── Backdrop + sheet: rounded frosted card, no clip-path or grid ── */
.fb-backdrop{
  position:fixed;inset:0;z-index:8700;
  background:var(--fb-scrim);
  backdrop-filter:blur(14px) saturate(1.1);-webkit-backdrop-filter:blur(14px) saturate(1.1);
  animation:fbFade .25s ease both;
}
@keyframes fbFade{from{opacity:0}to{opacity:1}}
.fb-sheet{
  position:fixed;left:50%;bottom:18px;transform:translateX(-50%);
  z-index:8800;width:min(420px, calc(100% - 24px));
  border-radius:28px;
  border:1px solid var(--fb-line);
  background:var(--fb-surface);
  backdrop-filter:blur(28px) saturate(1.5);-webkit-backdrop-filter:blur(28px) saturate(1.5);
  box-shadow:var(--fb-shadow);
  animation:fbRise .35s cubic-bezier(.22,1,.36,1) both;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
@media(max-width:700px){
  .fb-sheet{bottom:calc(var(--mnb-h, 62px) + 12px + env(safe-area-inset-bottom,0px));border-radius:24px}
}
@keyframes fbRise{
  from{opacity:0;transform:translateX(-50%) translateY(16px) scale(.97)}
  to{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}
}
.fb-sheet-body{padding:26px 24px 22px;max-height:min(78vh,720px);overflow-y:auto;scrollbar-width:thin}
.fb-sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
.fb-kicker{font-size:12px;font-weight:600;color:var(--t3);margin-bottom:3px}
.fb-sheet-title{
  font-size:21px;font-weight:700;letter-spacing:-.02em;
  color:var(--t1);line-height:1.2;text-wrap:balance;
}
.fb-lead{
  margin:0 0 20px;font-size:14px;line-height:1.5;color:var(--t2);text-wrap:pretty;
}
.fb-x{
  width:32px;height:32px;border-radius:50%;border:none;flex-shrink:0;
  display:grid;place-items:center;
  background:var(--fb-chip-bg);color:var(--t2);font-size:18px;line-height:1;cursor:pointer;
  transition-property:color,background,transform;transition-duration:.15s;
}
.fb-x:hover{color:var(--t1);background:var(--fb-line)}
.fb-x:active{transform:scale(.9)}

/* ── Briefing guide (3-step onboarding), flat list not boxed cards ── */
.fb-guide{display:flex;flex-direction:column;margin-bottom:20px}
.fb-guide-item{
  display:flex;gap:12px;align-items:flex-start;
  padding:12px 2px;
}
.fb-guide-item + .fb-guide-item{border-top:1px solid var(--fb-line-soft)}
.fb-guide-n{
  width:26px;height:26px;border-radius:50%;flex-shrink:0;margin-top:1px;
  display:grid;place-items:center;
  font-size:12px;font-weight:700;color:var(--blue);
  background:var(--fb-accent-tint);
  font-variant-numeric:tabular-nums;
}
.fb-guide-item b{display:block;font-size:14px;font-weight:600;color:var(--t1);margin-bottom:2px;letter-spacing:-.01em}
.fb-guide-item span{font-size:12.5px;color:var(--t3);line-height:1.4}

.fb-in{animation:fbIn .4s cubic-bezier(.22,1,.36,1) both;animation-delay:var(--d,0s)}
@keyframes fbIn{from{opacity:0;transform:translateY(8px);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}

.fb-sheet-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:4px}
.fb-btn{
  appearance:none;border:none;cursor:pointer;font:inherit;font-weight:600;font-size:14px;
  border-radius:980px;padding:11px 20px;min-height:42px;
  transition-property:transform,box-shadow,background,color,opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.22,1,.36,1);
}
.fb-btn:active:not(:disabled){transform:scale(.96)}
.fb-btn:disabled{opacity:.45;cursor:not-allowed}
.fb-btn.sm{padding:9px 16px;font-size:13px;min-height:36px}
.fb-btn.primary{
  background:var(--fb-cta-bg);color:var(--fb-cta-fg);
  box-shadow:var(--fb-cta-shadow);
}
.fb-btn.primary:hover:not(:disabled){box-shadow:var(--fb-cta-shadow-h)}
.fb-btn.ghost{background:var(--fb-chip-bg);color:var(--t2)}
.fb-btn.ghost:hover{color:var(--t1);background:var(--fb-line)}

.fb-edit-list{
  display:flex;flex-direction:column;gap:2px;max-height:min(280px,42vh);
  overflow:auto;margin-bottom:16px;padding-right:2px;
  scrollbar-width:thin;
}
.fb-edit-row{
  display:flex;align-items:center;gap:8px;
  padding:6px 6px;border-radius:14px;
  transition-property:background;transition-duration:.15s;
}
.fb-edit-row:hover{background:var(--fb-chip-bg)}
.fb-step-badge{
  width:22px;height:22px;border-radius:50%;flex-shrink:0;
  display:grid;place-items:center;font-size:10.5px;font-weight:700;font-variant-numeric:tabular-nums;
  background:var(--fb-chip-bg);color:var(--t2);
}
.fb-step-badge--trade,.fb-step-badge--amount{color:var(--grn)}
.fb-step-badge--wallet{color:var(--fb-wallet)}
.fb-step-badge--settings,.fb-step-badge--toast{color:var(--fb-amber)}
.fb-step-badge--action{color:var(--red)}
.fb-step-badge--coin,.fb-step-badge--route,.fb-step-badge--nav{color:var(--blue)}
.fb-step-badge--notice{color:var(--fb-notice)}
.fb-edit-inp{
  flex:1;min-width:0;border-radius:10px;border:1px solid transparent;
  background:transparent;color:var(--t1);font:inherit;font-size:13.5px;font-weight:500;
  padding:8px 10px;outline:none;letter-spacing:-.01em;
  transition-property:border-color,background;transition-duration:.15s;
}
.fb-edit-inp:hover{background:var(--fb-chip-bg)}
.fb-edit-inp:focus{border-color:var(--blue);background:var(--fb-chip-bg)}
.fb-edit-t{font-size:10.5px;font-weight:600;color:var(--t3);font-variant-numeric:tabular-nums;min-width:26px}
.fb-edit-del{
  width:30px;height:30px;border-radius:50%;border:none;flex-shrink:0;
  background:transparent;color:var(--t3);font-size:16px;cursor:pointer;
  transition-property:background,color,transform;transition-duration:.12s;
}
.fb-edit-del:hover{background:var(--fb-red-tint);color:var(--red)}
.fb-edit-del:active{transform:scale(.9)}
.fb-empty{font-size:13.5px;color:var(--t3);padding:20px 4px;text-align:center;line-height:1.5}
.fb-field{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
.fb-field label{font-size:12px;font-weight:600;color:var(--t3)}
.fb-field textarea,
.fb-field input{
  width:100%;border-radius:16px;
  border:1px solid var(--fb-line);background:var(--fb-chip-bg);
  color:var(--t1);font:inherit;font-size:14px;line-height:1.5;padding:13px 14px;outline:none;
  transition-property:border-color,box-shadow,background;transition-duration:.15s;
}
.fb-field textarea{min-height:96px;resize:vertical}
.fb-field textarea::placeholder,
.fb-field input::placeholder{color:var(--t3);opacity:1}
.fb-field textarea:focus,
.fb-field input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--fb-accent-tint);background:var(--fb-surface)}
.fb-err{font-size:13px;color:var(--red);margin-bottom:12px}
.fb-thanks{text-align:center;padding:12px 4px 4px}
.fb-thanks-ico{
  width:56px;height:56px;margin:0 auto 16px;border-radius:50%;
  display:grid;place-items:center;background:var(--fb-grn-tint);
  color:var(--grn);font-size:24px;font-weight:700;
  animation:fbPop .4s cubic-bezier(.34,1.4,.5,1) both;
}
@keyframes fbPop{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}
.fb-thanks .fb-sheet-title{text-align:center}
.fb-thanks p{color:var(--t2);font-size:14px;margin:8px 0 0;line-height:1.5;text-wrap:pretty}
.fb-ticket{
  display:inline-block;margin-top:16px;font-size:12px;font-weight:500;
  color:var(--t3);font-variant-numeric:tabular-nums;
}

/* ── VizKit (bklit-inspired premium stats) ── */
.vk-heatmap{
  position:relative;
  padding:14px 14px 12px;
  border-radius:14px;
  background:rgba(255,255,255,.03);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
}
.vk-hm-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.vk-hm-title{font-size:13px;font-weight:700;color:var(--t1);letter-spacing:-.02em}
.vk-hm-nav{
  width:30px;height:30px;border:0;border-radius:8px;cursor:pointer;
  background:rgba(255,255,255,.05);color:var(--t2);font-size:18px;line-height:1;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
  transition:background 140ms ease,color 140ms ease,transform 120ms ease;
}
.vk-hm-nav:hover{background:rgba(255,255,255,.1);color:var(--t1)}
.vk-hm-nav:active{transform:scale(.96)}
.vk-hm-dow{
  display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:6px;
  font-size:10px;font-weight:600;letter-spacing:.06em;color:var(--t3);text-align:center;
}
.vk-hm-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.vk-hm-cell{
  aspect-ratio:1 / 1;border-radius:6px;min-height:0;height:auto;width:100%;
  background:rgba(255,255,255,.04);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.06);
  display:flex;align-items:center;justify-content:center;
  font-size:clamp(8px,2.1vw,10px);font-weight:700;font-variant-numeric:tabular-nums;color:rgba(255,255,255,.75);
  opacity:0;transform:scale(.85);
  animation:vkCellIn .35s cubic-bezier(.2,0,0,1) forwards;
  animation-delay:calc(var(--i, 0) * 12ms);
}
@keyframes vkCellIn{to{opacity:1;transform:none}}
.vk-hm-cell--empty{background:transparent;box-shadow:none;animation:none;opacity:1}
.vk-hm-cell--idle{background:rgba(255,255,255,.03)}
.vk-hm-cell--pos{background:rgba(61,219,138,var(--a,.4))}
.vk-hm-cell--neg{background:rgba(255,92,106,var(--a,.4))}
.vk-hm-val{pointer-events:none;line-height:1}
.vk-heatmap--compact .vk-hm-cell{border-radius:4px}
.vk-tip{
  position:absolute;z-index:5;min-width:120px;padding:8px 10px;border-radius:10px;
  background:#121212;color:#F4F4EF;font-size:11px;line-height:1.35;
  box-shadow:0 10px 28px rgba(0,0,0,.45),inset 0 0 0 1px rgba(255,255,255,.1);
  pointer-events:none;display:flex;flex-direction:column;gap:2px;
}
/* .vk-tip sets display:flex, which would otherwise beat the UA [hidden] rule */
.vk-tip[hidden]{display:none}
.vk-tip strong{font-weight:600}
.vk-tip .up{color:#3DDB8A}.vk-tip .dn{color:#FF5C6A}
.vk-tip small{color:#8E8E86}

.vk-pl{position:relative;width:100%;min-height:112px}
.vk-pl-svg{display:block;width:100%;overflow:visible}
.vk-pl-empty{
  height:112px;display:grid;place-items:center;font-size:12px;color:var(--t3);
  border-radius:10px;background:rgba(255,255,255,.03);
}

.vk-gauge{
  position:relative;width:100%;max-width:180px;margin:0 auto;
  min-height:118px;display:flex;flex-direction:column;align-items:center;
}
.vk-gauge-svg{width:100%;height:auto;display:block}
.vk-gauge-center{
  position:absolute;left:50%;top:58%;transform:translate(-50%,-40%);
  text-align:center;pointer-events:none;
}
.vk-gauge-val{
  font-size:22px;font-weight:800;letter-spacing:-.03em;color:var(--t1);
  font-variant-numeric:tabular-nums;line-height:1;
}
.vk-gauge-lbl{margin-top:4px;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--t3)}
.vk-gauge-sub{margin-top:2px;font-size:11px;color:var(--t2)}

.vk-dist{
  padding:14px 16px;border-radius:14px;
  background:rgba(255,255,255,.03);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
}
.vk-dist-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;gap:8px}
.vk-dist-title{font-size:12px;font-weight:700;color:var(--t2)}
.vk-dist-total{font-size:11px;color:var(--t3);font-variant-numeric:tabular-nums}
.vk-dist-bar{display:flex;height:8px;border-radius:99px;overflow:hidden;gap:2px;margin-bottom:12px;background:rgba(255,255,255,.04)}
.vk-dist-seg{min-width:4px;border-radius:2px}
.vk-dist-seg--empty{flex:1;background:rgba(255,255,255,.06)}
.vk-dist-rows{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px}
.vk-dist-row{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--t2)}
.vk-dist-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.vk-dist-cnt{margin-left:auto;font-weight:700;color:var(--t1);font-variant-numeric:tabular-nums}

/* Composed chart — daily bars + cumulative line/area (bklit-inspired) */
.vk-cmp{--vk-line:#8FC7FF;position:relative;width:100%}
.vk-cmp-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap}
.vk-cmp-meta{display:flex;flex-direction:column;gap:2px;min-width:0}
.vk-cmp-title{font-size:13px;font-weight:700;color:var(--t1);letter-spacing:-.02em}
.vk-cmp-sub{font-size:11px;color:var(--t3);line-height:1.35}
.vk-cmp-tabs{
  display:flex;gap:2px;padding:2px;border-radius:10px;
  background:rgba(255,255,255,.04);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.07);
}
.vk-cmp-tab{
  border:0;cursor:pointer;padding:5px 11px;border-radius:8px;background:transparent;
  font-size:11px;font-weight:700;letter-spacing:.02em;color:var(--t3);
  transition:background 140ms ease,color 140ms ease;
}
.vk-cmp-tab:hover{color:var(--t1)}
.vk-cmp-tab.active{background:rgba(255,255,255,.1);color:var(--t1)}
.vk-cmp-legend{display:flex;gap:14px;margin:8px 0 2px;flex-wrap:wrap}
.vk-cmp-key{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--t3)}
.vk-cmp-swatch{display:inline-block;width:9px;height:9px;border-radius:2px;flex-shrink:0}
.vk-cmp-swatch--bar{background:linear-gradient(180deg,#3DDB8A 0 50%,#FF5C6A 50% 100%)}
.vk-cmp-swatch--line{height:2px;border-radius:2px;background:var(--vk-line)}
.vk-cmp-plot{position:relative;width:100%}
.vk-cmp-svg{display:block;width:100%;touch-action:pan-y}
.vk-cmp-grid{stroke:rgba(255,255,255,.07);stroke-width:1}
.vk-cmp-zero{stroke:rgba(255,255,255,.2);stroke-width:1}
.vk-cmp-ytick,.vk-cmp-xtick{
  fill:var(--t3);font-size:9px;font-weight:600;letter-spacing:.02em;
  font-variant-numeric:tabular-nums;
}
.vk-cmp-ytick{text-anchor:end}
.vk-cmp-hoverband{fill:rgba(255,255,255,.05);transition:opacity 120ms ease}
.vk-cmp-bars{animation:vkFadeIn .42s cubic-bezier(.2,0,0,1) both}
@keyframes vkFadeIn{from{opacity:0}to{opacity:1}}
.vk-cmp-bar{opacity:.88;transition:opacity 140ms ease,filter 140ms ease}
.vk-cmp-bar--pos{fill:#3DDB8A}
.vk-cmp-bar--neg{fill:#FF5C6A}
.vk-cmp-bar--flat{fill:rgba(255,255,255,.14)}
.vk-cmp-bar.is-dim{opacity:.28}
.vk-cmp-bar.is-hot{opacity:1;filter:brightness(1.12)}
.vk-cmp-marker{transition:opacity 120ms ease}
.vk-cmp-capture{cursor:crosshair}
.vk-cmp-tip{top:0;left:0}
.vk-cmp-empty,.vk-cmp-skeleton{
  height:200px;display:grid;place-items:center;margin-top:10px;
  font-size:12px;color:var(--t3);border-radius:12px;
  background:rgba(255,255,255,.03);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.06);
}
.vk-cmp-skeleton{
  background:linear-gradient(100deg,rgba(255,255,255,.03) 30%,rgba(255,255,255,.07) 50%,rgba(255,255,255,.03) 70%);
  background-size:220% 100%;animation:vkShimmer 1.4s linear infinite;
}
@keyframes vkShimmer{from{background-position:120% 0}to{background-position:-40% 0}}

.pnl-pl-host{width:100%;min-height:148px}
.pnl-cal-host{min-height:0}

/* Daily-flow section — sits below the share card, never inside it */
.pnl-flow{padding:26px 0 0}
/* Calendar column capped so cells stay square on wide desktops */
.pnl-flow-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(240px,320px);
  gap:12px;align-items:start;
}
@media (max-width:980px){.pnl-flow-grid{grid-template-columns:1fr}}
.pnl-flow-card{
  padding:14px 16px 10px;border-radius:16px;
  background:rgba(255,255,255,.03);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
}
.pnl-flow-side{display:flex;flex-direction:column;gap:12px;min-width:0}
.pnl-composed-host{width:100%;min-height:220px}

/* Allocation ring (bklit-inspired) */
.pnl-alloc{padding:22px 0 0}
.pnl-alloc-card{
  padding:16px 18px;border-radius:16px;
  background:rgba(255,255,255,.03);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
}
.pnl-ring-host,.wlt-ring-host{width:100%;min-height:200px}
.vk-ring{width:100%}
.vk-ring-head{margin-bottom:10px}
.vk-ring-title{font-size:13px;font-weight:700;color:var(--t1);letter-spacing:-.02em}
.vk-ring-sub{margin-top:3px;font-size:11px;font-weight:500;color:var(--t3);line-height:1.35}
.vk-ring-legend-count{font-weight:600;color:var(--t2);letter-spacing:0;text-transform:none}
.vk-ring-body{
  display:grid;grid-template-columns:minmax(180px,240px) minmax(0,1fr);
  gap:20px 28px;align-items:center;
}
@media (max-width:720px){.vk-ring-body{grid-template-columns:1fr;justify-items:center}}
.vk-ring-chart{position:relative;width:max-content;margin:0 auto}
.vk-ring-svg{display:block}
.vk-ring-arc{
  transform-origin:center;cursor:pointer;
  transition:opacity 160ms ease,filter 160ms ease;
  animation:vkRingDraw .9s cubic-bezier(.2,0,0,1) both;
}
@keyframes vkRingDraw{
  from{stroke-dasharray:0 var(--len, 1000)}
  to{stroke-dasharray:var(--dash, 0) calc(var(--len, 1000) - var(--dash, 0))}
}
.vk-ring-arc.is-dim{opacity:.28}
.vk-ring-arc.is-hot{opacity:1;filter:brightness(1.15)}
.vk-ring-center{
  position:absolute;inset:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;pointer-events:none;text-align:center;
  padding:18%;
}
.vk-ring-cval{
  font-size:22px;font-weight:800;letter-spacing:-.03em;color:var(--t1);
  font-variant-numeric:tabular-nums;line-height:1.05;
}
.vk-ring-clbl{margin-top:4px;font-size:11px;font-weight:600;color:var(--t3);letter-spacing:.02em}
.vk-ring-legend{
  width:100%;min-width:0;display:flex;flex-direction:column;gap:8px;
  max-height:320px;overflow-y:auto;overscroll-behavior:contain;
  padding-right:2px;
}
.vk-ring-legend::-webkit-scrollbar{width:4px}
.vk-ring-legend::-webkit-scrollbar-thumb{background:rgba(255,255,255,.14);border-radius:4px}
.vk-ring-legend-title{font-size:11px;font-weight:700;color:var(--t3);letter-spacing:.06em;text-transform:uppercase;margin-bottom:2px}
.vk-ring-row{
  display:grid;grid-template-columns:1fr auto;gap:2px 10px;align-items:center;
  padding:6px 8px;border-radius:10px;cursor:default;
  transition:background 140ms ease;
}
.vk-ring-row.is-hot{background:rgba(255,255,255,.05)}
.vk-ring-row-left{display:flex;align-items:center;gap:8px;min-width:0}
.vk-ring-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.vk-ring-row-lbl{font-size:13px;font-weight:600;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vk-ring-row-right{display:flex;align-items:baseline;gap:8px;font-variant-numeric:tabular-nums}
.vk-ring-row-val{font-size:12px;font-weight:700;color:var(--t1)}
.vk-ring-row-pct{font-size:11px;font-weight:600;color:var(--t3);min-width:2.4em;text-align:right}
.vk-ring-row-bar{
  grid-column:1 / -1;height:3px;border-radius:99px;background:rgba(255,255,255,.06);overflow:hidden;
}
.vk-ring-row-fill{height:100%;border-radius:inherit;min-width:2px}
.vk-ring-empty{
  min-height:180px;display:grid;place-items:center;font-size:12px;color:var(--t3);
  border-radius:12px;background:rgba(255,255,255,.03);
}

/* Keep heatmap cells square: width-driven grid, no stretch */
.pnl-cal-host .vk-heatmap,
.wlt-pflow-cal .vk-heatmap{
  width:100%;
  max-width:320px;
}
.pnl-cal-host .vk-hm-grid,
.wlt-pflow-cal .vk-hm-grid{
  width:100%;
  grid-auto-rows:auto;
}
.pnl-cal-host .vk-hm-cell,
.wlt-pflow-cal .vk-hm-cell{
  aspect-ratio:1 / 1;
  width:100%;
  height:auto;
  max-height:none;
}

.wlt-premium-strip{
  display:grid;grid-template-columns:160px 1fr;gap:12px;
  margin:0 14px 12px;
}
@media (max-width:900px){.wlt-premium-strip{grid-template-columns:1fr;margin:0 8px 10px}}
.wlt-premium-gauge,.wlt-premium-dist{
  padding:12px;border-radius:14px;
  background:rgba(255,255,255,.03);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
}
.wlt-premium-gauge{display:flex;align-items:center;justify-content:center}

/* Profile · PNL tab (daily flow) */
.wlt-pflow-tab{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,320px);
  gap:12px;padding:0 14px 14px;align-items:start;
}
.wlt-pflow-tab #wltPnlSummary{grid-column:1 / -1;margin:0}
@media (max-width:900px){.wlt-pflow-tab{grid-template-columns:1fr;padding:0 8px 10px}}
.wlt-wallet-ring-card{
  margin:0 14px 12px;padding:14px 16px;border-radius:14px;
  background:rgba(255,255,255,.03);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
}
.wlt-wallet-ring-card[hidden]{display:none !important}
@media (max-width:720px){.wlt-wallet-ring-card{margin:0 8px 10px}}

/* Created coins — Bonding vs DEX pie */
.wlt-created-pie-card{
  margin:0 0 12px;padding:14px 16px;border-radius:14px;
  background:rgba(255,255,255,.03);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
}
.wlt-created-pie-card[hidden]{display:none !important}
.wlt-created-pie-host{width:100%;min-height:160px}

.vk-pie{width:100%}
.vk-pie-head{margin-bottom:12px}
.vk-pie-title{font-size:15px;font-weight:700;color:var(--t1);letter-spacing:-.02em}
.vk-pie-body{
  display:grid;grid-template-columns:minmax(150px,188px) minmax(0,1fr);
  gap:18px 28px;align-items:center;
}
@media (max-width:640px){.vk-pie-body{grid-template-columns:1fr;justify-items:center}}
.vk-pie-chart{width:max-content;margin:0 auto}
.vk-pie-svg{display:block;overflow:visible}
.vk-pie-slice{
  transform-box:fill-box;transform-origin:center;
  transition:transform 180ms cubic-bezier(.2,0,0,1),opacity 160ms ease;
  cursor:pointer;
  animation:vkPieIn .55s cubic-bezier(.2,0,0,1) both;
  animation-delay:calc(var(--i, 0) * 60ms);
}
@keyframes vkPieIn{from{opacity:0;transform:scale(.86)}to{opacity:1;transform:none}}
.vk-pie-slice.is-hot{
  transform:translate(calc(var(--mx, 0) * 8px), calc(var(--my, 0) * 8px));
  filter:brightness(1.08);
}
.vk-pie-slice.is-dim{opacity:.38}
.vk-pie-legend{width:100%;min-width:0;display:flex;flex-direction:column;gap:8px}
.vk-pie-legend-title{
  font-size:12px;font-weight:700;color:var(--t3);letter-spacing:.06em;
  text-transform:uppercase;margin-bottom:4px;
}
.vk-pie-row{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:10px 12px;border-radius:10px;cursor:default;
  transition:background 140ms ease;
}
.vk-pie-row.is-hot{background:rgba(255,255,255,.05)}
.vk-pie-row-left{display:flex;align-items:center;gap:10px;min-width:0}
.vk-pie-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.vk-pie-row-lbl{font-size:15px;font-weight:600;color:var(--t1)}
.vk-pie-row-right{display:flex;align-items:baseline;gap:10px;font-variant-numeric:tabular-nums}
.vk-pie-row-val{font-size:15px;font-weight:700;color:var(--t1)}
.vk-pie-row-pct{font-size:13px;font-weight:600;color:var(--t3);min-width:2.6em;text-align:right}
.vk-pie-empty{
  min-height:140px;display:grid;place-items:center;font-size:13px;color:var(--t3);
  border-radius:12px;background:rgba(255,255,255,.03);
}
.wlt-pflow-card{
  padding:14px 16px 10px;border-radius:14px;
  background:rgba(255,255,255,.03);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
}
/* The calendar host paints its own .vk-heatmap panel — no wrapper plate. */
.wlt-pflow-cal{min-height:0;min-width:0}
.wlt-pflow-side{display:flex;flex-direction:column;gap:10px;min-width:0}
.wlt-pflow-host{width:100%;min-height:220px}


/* ── Demo-data trigger ──────────────────────────────────────────────────────
   Hidden unless armed per-browser (?demo / vellaDemoButton()), so it never
   reaches real visitors. Bottom-left keeps it clear of the mobile nav. */
.demo-mode-btn{
  position:fixed;left:16px;bottom:16px;z-index:900;
  display:flex;align-items:center;gap:8px;
  height:38px;padding:0 14px;border-radius:999px;
  border:1px solid var(--b1);background:var(--bg2);color:var(--t2);
  font-family:'Inter',sans-serif;font-size:12.5px;font-weight:700;
  cursor:pointer;box-shadow:var(--el-2);
  transition:transform .15s cubic-bezier(.2,0,0,1),background .15s,color .15s;
}
.demo-mode-btn:hover{transform:translateY(-1px);color:var(--t1)}
.demo-mode-btn:active{transform:scale(.96)}
.demo-mode-btn.is-on{color:var(--grn);border-color:rgba(0,200,83,.35)}
.demo-mode-dot{
  width:7px;height:7px;border-radius:50%;flex-shrink:0;
  background:var(--t3);transition:background .15s,box-shadow .15s;
}
.demo-mode-btn.is-on .demo-mode-dot{background:var(--grn);box-shadow:0 0 8px var(--grn)}
@media (max-width:720px){
  /* Clear the bottom nav (min-height 62px) plus its safe-area padding. */
  .demo-mode-btn{
    left:12px;height:34px;font-size:12px;
    bottom:calc(62px + env(safe-area-inset-bottom,0px) + 12px);
  }
}

/* ══════════════════════════════════════════════════════════════════════════
   HOME EXPLORE — pons forms, Vella orange/purple
   Pool / Graduated: #FF8A3D (X / campaign orange)
   Curve / Explore:  #A78BFA / #8B5CF6 (bonding violet)
   ══════════════════════════════════════════════════════════════════════════ */
:root{
  --home-pool:#FF8A3D;
  --home-pool-wash:rgba(255,138,61,.26);
  --home-pool-wash-mid:rgba(255,138,61,.10);
  --home-curve:#A78BFA;
  --home-curve-fill:#8B5CF6;
  --home-curve-wash:rgba(139,92,246,.24);
  --home-curve-wash-mid:rgba(167,139,250,.10);
}
.home-stage{
  background:transparent;
  border:none;
  border-radius:0;
  padding:0;
  box-shadow:none;
  width:100%;
  max-width:none;
  min-width:0;
}
.home-page-title,
.home-stage .ticker-wrap.is-home-hidden,
.ticker-wrap.is-home-hidden{display:none}
.home-boards{display:flex;flex-direction:column;gap:28px;margin-bottom:8px}
.home-sec{
  --home-glow:rgba(0,152,234,.10);
  --home-edge:rgba(10,37,64,.10);
  --home-edge-soft:rgba(10,37,64,.04);
  position:relative;
  isolation:isolate;
  display:flex;flex-direction:column;gap:20px;min-width:0;
  width:100%;max-width:none;box-sizing:border-box;
  padding:28px 28px 32px;
  border-radius:32px;
  background:rgba(255,255,255,.78);
  box-shadow:
    0 0 0 1px var(--home-edge),
    inset 0 0 0 1px rgba(255,255,255,.35),
    0 0 18px var(--home-edge-soft),
    0 18px 44px rgba(10,37,64,.06);
}
.home-sec::before{
  content:'';
  position:absolute;inset:0;border-radius:inherit;
  pointer-events:none;z-index:0;
  background:
    radial-gradient(ellipse 92% 80% at 0% 0%,var(--home-glow),transparent 64%),
    linear-gradient(145deg,var(--home-glow) 0%,var(--home-glow-mid,transparent) 38%,transparent 72%);
}
.home-sec > *{position:relative;z-index:1}
.home-sec-pool{
  --home-glow:var(--home-pool-wash);
  --home-glow-mid:var(--home-pool-wash-mid);
  --home-edge:rgba(255,138,61,.28);
  --home-edge-soft:rgba(255,138,61,.14);
}
.home-sec-curve{
  --home-glow:var(--home-curve-wash);
  --home-glow-mid:var(--home-curve-wash-mid);
  --home-edge:rgba(139,92,246,.24);
  --home-edge-soft:rgba(139,92,246,.12);
}
.home-sec-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px 16px;flex-wrap:wrap}
.home-sec-titles{flex:1 1 160px;min-width:0}
.home-explore-filters{
  display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;
  gap:8px 16px;margin-left:auto;min-width:0;
}
.home-explore-pills{display:flex;align-items:center;flex-wrap:wrap;gap:2px}
.home-explore-pill{
  position:relative;
  display:inline-flex;align-items:center;justify-content:center;
  min-height:40px;min-width:40px;padding:0 13px;
  border:0;border-radius:999px;
  background:transparent;
  color:var(--t3);
  font-family:'Inter',sans-serif;font-size:13px;font-weight:600;line-height:1;
  white-space:nowrap;cursor:pointer;
  font-variant-numeric:tabular-nums;
  -webkit-font-smoothing:antialiased;
  transition-property:background,color,transform;
  transition-duration:.16s;
  transition-timing-function:cubic-bezier(.2,0,0,1);
}
.home-explore-pill:hover{color:var(--t1);background:rgba(10,37,64,.06)}
.home-explore-pill.is-active{
  color:#5B21B6;
  background:rgba(167,139,250,.22);
}
.home-explore-pill:active{transform:scale(.96)}
.home-explore-pill:focus-visible{
  outline:none;
  box-shadow:0 0 0 2px rgba(139,92,246,.45);
}
.home-sec-title{
  display:flex;align-items:center;gap:10px;
  font-size:28px;font-weight:800;letter-spacing:-.55px;color:var(--t1);
  text-wrap:balance;line-height:1.15;margin:0;
}
.home-sec-count{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:28px;height:22px;padding:0 9px;
  border-radius:99px;
  font-size:11px;font-weight:700;letter-spacing:.02em;
  color:var(--t2);background:rgba(10,37,64,.06);
  font-variant-numeric:tabular-nums;
}
.home-sec-pool .home-sec-count{color:#C05612;background:rgba(255,138,61,.14)}
.home-sec-curve .home-sec-count{color:#6D28D9;background:rgba(167,139,250,.16)}
.home-sec-sub{
  margin:8px 0 0;font-size:13.5px;font-weight:500;color:var(--t3);line-height:1.45;
  text-wrap:pretty;
}
.home-sec-empty{
  padding:36px 16px;text-align:center;
  border-radius:20px;
  background:rgba(10,37,64,.03);
  color:var(--t3);font-size:13px;font-weight:500;
}
.home-sec-empty--page{padding:48px 16px}
.home-sec-empty-t{font-size:14px;font-weight:700;color:var(--t2);margin-bottom:6px}
.home-sec-empty-s{font-size:12px;color:var(--t3)}

.home-boards .coin-grid{
  --home-grid-gap:16px;
  gap:var(--home-grid-gap);
  grid-template-columns:repeat(5,minmax(0,1fr));
  justify-content:stretch;
  width:100%;
  max-width:none;
  margin-inline:0;
  margin-bottom:0;
}
@media (max-width:1199px){
  .home-boards .coin-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:999px){
  .home-boards .coin-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:799px){
  .home-boards .coin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:519px){
  .home-boards .coin-grid{grid-template-columns:minmax(0,1fr)}
}

/* Shared pons tile — home / watchlist / holdings */
.home-boards .home-card,
.port-tiles .home-card{
  width:auto;
  min-width:0;
  max-width:none;
  box-sizing:border-box;
  padding:8px;
  border-radius:20px;
  overflow:hidden;
  background:rgba(255,255,255,.92);
  border:none;
  box-shadow:
    0 0 0 1px rgba(10,37,64,.08),
    inset 0 0 0 1px rgba(255,255,255,.55),
    0 2px 10px rgba(10,37,64,.04);
  transition-property:transform,box-shadow;
  transition-duration:.2s;
  transition-timing-function:var(--ease-out);
}
.home-boards .home-card.coin-card-bonding,.port-tiles .home-card.coin-card-bonding{
  background:rgba(255,255,255,.92);
  border-color:transparent!important;
  box-shadow:
    0 0 0 1px rgba(139,92,246,.16),
    inset 0 0 0 1px rgba(255,255,255,.55),
    0 2px 10px rgba(10,37,64,.04)!important;
}
.home-boards .home-card.coin-card-dex,.port-tiles .home-card.coin-card-dex{
  background:rgba(255,255,255,.92);
  border-color:transparent!important;
  box-shadow:
    0 0 0 1px rgba(255,138,61,.16),
    inset 0 0 0 1px rgba(255,255,255,.55),
    0 2px 10px rgba(10,37,64,.04)!important;
}
.home-boards .home-card:hover,.port-tiles .home-card:hover{
  transform:translateY(-3px);
  box-shadow:
    0 0 0 1px rgba(10,37,64,.12),
    inset 0 0 0 1px rgba(255,255,255,.65),
    0 16px 36px rgba(10,37,64,.10);
}
.home-boards .home-card.coin-card-bonding:hover,.port-tiles .home-card.coin-card-bonding:hover{
  box-shadow:
    0 0 0 1px rgba(139,92,246,.32),
    inset 0 0 0 1px rgba(255,255,255,.65),
    0 16px 36px rgba(10,37,64,.10),
    0 0 22px rgba(167,139,250,.10);
}
.home-boards .home-card.coin-card-dex:hover,.port-tiles .home-card.coin-card-dex:hover{
  box-shadow:
    0 0 0 1px rgba(255,138,61,.32),
    inset 0 0 0 1px rgba(255,255,255,.65),
    0 16px 36px rgba(10,37,64,.10),
    0 0 22px rgba(255,138,61,.10);
}
.home-boards .home-card:active,.port-tiles .home-card:active{
  transform:scale(.96);
  transition-duration:.12s;
}
.home-boards .home-card .c-img,.port-tiles .home-card .c-img{
  position:relative;
  border-radius:12px; /* 20 card − 8 pad */
  overflow:hidden;
}
.home-boards .home-card .c-img::after,.port-tiles .home-card .c-img::after{display:none}
.home-boards .home-card .c-img > img,.home-boards .home-card .c-img-photo,.port-tiles .home-card .c-img > img,.port-tiles .home-card .c-img-photo{
  width:100%;height:100%;object-fit:cover;display:block;
  outline:1px solid rgba(0,0,0,.1);
  outline-offset:-1px;
}
.home-boards .home-card .c-heart,.port-tiles .home-card .c-heart{
  top:8px;right:8px;
  width:28px;height:28px;
}
.home-boards .c-stage,.port-tiles .c-stage{
  position:absolute;top:8px;left:8px;z-index:2;
  padding:3px 8px;border-radius:99px;
  font-size:10px;font-weight:800;letter-spacing:.03em;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  pointer-events:none;
}
.home-boards .c-stage-curve,.port-tiles .c-stage-curve{
  color:#6D28D9;background:rgba(167,139,250,.22);
}
.home-boards .c-stage-pool,.port-tiles .c-stage-pool{
  color:#C05612;background:rgba(255,255,255,.78);
}
.home-boards .home-card .c-body,.port-tiles .home-card .c-body{
  padding:12px 6px 6px;
  gap:3px;
  align-items:stretch;
}
.home-boards .home-card .c-name,.port-tiles .home-card .c-name{
  display:block;
  font-size:15px;font-weight:800;letter-spacing:-.2px;line-height:1.25;
  color:var(--t1);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.home-boards .home-card .c-tick,.port-tiles .home-card .c-tick{
  display:block;
  font-size:12px;font-weight:600;color:var(--t3);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.home-boards .c-mc-line,.port-tiles .c-mc-line{
  display:flex;align-items:baseline;gap:5px;
  margin-top:5px;
  min-width:0;
}
.home-boards .c-mc-home,.port-tiles .c-mc-home{
  font-size:14px;font-weight:800;letter-spacing:-.2px;
  color:var(--t1);
  font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;
  white-space:nowrap;
}
.home-boards .c-mc-lbl,.port-tiles .c-mc-lbl{
  font-size:12px;font-weight:600;color:var(--t3);
  letter-spacing:.01em;
}
.home-boards .c-prog,.port-tiles .c-prog{
  display:flex;align-items:center;gap:8px;
  margin-top:7px;
  min-width:0;
}
.home-boards .c-prog[hidden],.port-tiles .c-prog[hidden]{display:none}
.home-boards .c-prog-pct,.port-tiles .c-prog-pct{
  flex-shrink:0;
  font-size:11px;font-weight:600;color:var(--t3);
  font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;
}
.home-boards .c-prog-track,.port-tiles .c-prog-track{
  flex:1;min-width:0;
  height:2px;border-radius:99px;
  background:rgba(10,37,64,.10);
  overflow:hidden;
}
.home-boards .c-prog-fill,.port-tiles .c-prog-fill{
  height:100%;width:0;border-radius:inherit;
  background:var(--home-curve-fill);
}
.home-boards .c-prog-done .c-prog-fill,.port-tiles .c-prog-done .c-prog-fill{background:var(--home-pool)}
.home-boards .c-prog-pct,.port-tiles .c-prog-pct{color:#6D28D9}
.home-boards .c-foot,.port-tiles .c-foot{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  margin-top:8px;
  font-size:11px;font-weight:500;color:var(--t3);
  font-variant-numeric:tabular-nums;
}
.home-boards .c-addr,.port-tiles .c-addr{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:-.2px;
  font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;
  min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.home-boards .c-addr-go,.port-tiles .c-addr-go{
  display:inline-flex;align-items:center;
  min-height:40px;max-width:100%;
  padding:0 8px;margin:-6px 0 -6px -8px;
  border:0;border-radius:8px;
  background:transparent;color:inherit;
  text-decoration:none;cursor:pointer;
  font:inherit;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;
  letter-spacing:-.2px;
  transition-property:color,background,box-shadow,transform;
  transition-duration:.16s;
  transition-timing-function:var(--ease-out);
}
.home-boards .home-card.coin-card-bonding .c-addr-go:hover,.port-tiles .home-card.coin-card-bonding .c-addr-go:hover{
  color:#6D28D9;
  background:rgba(167,139,250,.14);
  box-shadow:0 0 0 1px rgba(139,92,246,.32);
}
.home-boards .home-card.coin-card-dex .c-addr-go:hover,.port-tiles .home-card.coin-card-dex .c-addr-go:hover{
  color:#C05612;
  background:rgba(255,138,61,.14);
  box-shadow:0 0 0 1px rgba(255,138,61,.36);
}
.home-boards .c-addr-go:active,.port-tiles .c-addr-go:active{transform:scale(.96)}
.home-boards .c-addr-go:focus-visible,.port-tiles .c-addr-go:focus-visible{
  outline:none;
  color:#6D28D9;
  box-shadow:0 0 0 2px rgba(139,92,246,.45);
}
.home-boards .home-card.coin-card-dex .c-addr-go:focus-visible,.port-tiles .home-card.coin-card-dex .c-addr-go:focus-visible{
  color:#C05612;
  box-shadow:0 0 0 2px rgba(255,138,61,.5);
}
.home-boards .c-addr-none,.port-tiles .c-addr-none{
  opacity:.55;cursor:default;pointer-events:none;
}
.home-boards .c-ago,.port-tiles .c-ago{color:var(--t3);font-weight:600;flex-shrink:0}

.home-pager{
  display:flex;align-items:center;justify-content:center;flex-wrap:wrap;
  gap:6px;
  margin-top:2px;
  min-height:44px;
  -webkit-font-smoothing:antialiased;
}
.home-pager-btn,
.home-pager-ellipsis{
  box-sizing:border-box;
  width:40px;height:40px;min-width:40px;
  display:inline-flex;align-items:center;justify-content:center;
  border:0;border-radius:99px;
  padding:0;
  font:inherit;
  font-size:13px;font-weight:700;
  font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;
  line-height:1;
  color:var(--t2);
  background:rgba(0,0,0,.06);
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.06);
  cursor:pointer;
  user-select:none;
  transition-property:transform,background,color,box-shadow;
  transition-duration:.16s;
  transition-timing-function:var(--ease-out);
}
.home-pager-ellipsis{
  cursor:default;pointer-events:none;
  background:transparent;box-shadow:none;
  color:var(--t3);font-weight:600;
}
.home-pager-btn:hover{
  background:rgba(0,0,0,.10);
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.10);
  color:var(--t1);
}
.home-pager-btn:active{transform:scale(.96)}
.home-pager-btn:focus-visible{
  outline:none;
  box-shadow:0 0 0 2px rgba(10,37,64,.28);
}
.home-pager-btn.is-current{
  background:#111;color:#fff;
  box-shadow:none;
  cursor:default;pointer-events:none;
}
.home-pager-btn.is-disabled{
  opacity:.32;cursor:default;pointer-events:none;
}
.home-pager-btn.home-pager-arrow{
  width:44px;height:44px;min-width:44px;
  font-size:32px;font-weight:600;
  color:var(--t1);
  padding-bottom:2px;
}
.home-pager-btn.home-pager-arrow.is-disabled{
  opacity:.48;color:var(--t2);
}
.home-sec-pool .home-pager-btn:focus-visible{
  box-shadow:0 0 0 2px rgba(255,138,61,.45);
}
.home-sec-curve .home-pager-btn:focus-visible{
  box-shadow:0 0 0 2px rgba(139,92,246,.45);
}

.home-stage .pill{
  padding:7px 16px;
  border-radius:999px;
  border-width:1px;
  background:rgba(255,255,255,.7);
  box-shadow:0 1px 2px rgba(10,37,64,.03);
  transition-property:background,border-color,color,box-shadow,transform;
  transition-duration:.16s;
}
.home-stage .pill:active{transform:scale(.96)}

@media (max-width:700px){
  .home-sec{padding:18px 14px 20px;border-radius:24px}
  .home-sec-title{font-size:22px}
  .home-explore-filters{justify-content:flex-start;margin-left:0;width:100%}
  .home-explore-pill{padding:0 10px;font-size:12px}
  .home-boards{gap:18px}
  .home-boards .coin-grid{gap:10px}
  .nav-item[aria-label]::after,
  .sb-hld-trigger[aria-label]::after,
  .sb-ls-header[aria-label]::after{display:none}
}
@media (prefers-reduced-motion:reduce){
  .home-boards .home-card,.home-boards .home-card:hover,.home-boards .home-card:active,.home-boards .c-addr-go,.home-boards .c-addr-go:hover,.home-boards .c-addr-go:active,.home-pager-btn,.home-pager-btn:hover,.home-pager-btn:active,.port-tiles .home-card,.port-tiles .home-card:hover,.port-tiles .c-addr-go,.port-tiles .c-addr-go:hover,.port-tiles .c-addr-go:active,.home-explore-pill,.home-explore-pill:hover,.home-explore-pill:active{transition:none;transform:none}
}
.port-tiles .home-card .c-heart{width:40px;height:40px}

/* ════ Site review fixes (2026-09-14) ════ */

/* Actions in empty / error states (home, coin page, campaign). #0077C2 keeps
   white text above 4.5:1; dark uses the theme's off-white fill. */
.home-sec-empty-btn,.camp-retry{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:40px;padding:0 18px;margin-top:14px;border:0;border-radius:12px;
  background:#0077C2;color:#fff;font:600 13px/1 var(--sans,'Inter',system-ui,sans-serif);cursor:pointer;
  transition-property:background-color,transform;transition-duration:.15s
}
.home-sec-empty-btn:active,.camp-retry:active{transform:scale(.97)}
.home-sec-empty-btn:focus-visible,.camp-retry:focus-visible{outline:2px solid #0077C2;outline-offset:2px}
html:is([data-theme="dark"],[data-scheme="dark"],[data-theme="voidtype"]) .home-sec-empty-btn,
html:is([data-theme="dark"],[data-scheme="dark"],[data-theme="voidtype"]) .camp-retry{background:#EDEDE6;color:#0A0A0A}
.camp-status--err p{margin:0}

/* Coin page that failed to load: the message replaces the page body. */

/* Create coin: required-field errors under the inputs. */
/* On its own dark chip: the create modal is glass over busy art, so a bare red line can vanish. */
.fi-err{display:inline-block;margin-top:6px;padding:3px 8px;border-radius:6px;background:rgba(24,6,10,.86);font-size:12px;font-weight:600;line-height:1.35;color:#FF9AA4}
.fi[aria-invalid="true"]{border-color:#FF6B78!important}

/* Buy form: amount error under the field. */
.bs-amt-err{margin:6px 2px 0;font-size:12px;font-weight:600;line-height:1.35;color:#C92547}
html:is([data-theme="dark"],[data-scheme="dark"],[data-theme="voidtype"]) .bs-amt-err{color:#FF6B78}

/* Coin cards: a stretched link covers the card; the heart and creator link stay on top. */
.coin-card{position:relative}
.c-link{position:absolute;inset:0;z-index:1;border-radius:inherit}
.c-link:focus-visible{outline:2px solid var(--blue);outline-offset:-3px}
.coin-card .c-body :is(a[href],button){position:relative;z-index:2}
a.tgt-coin-chip{color:inherit;text-decoration:none}
a.tgt-coin-chip:focus-visible{outline:2px solid var(--blue);outline-offset:2px}

/* Clickable text that is now a real <button>: drop the UA chrome. */
button.sb-ls-header{background:transparent;border:0;font-family:inherit}
button.wlt-hist-social-stat{background:none;border:0;padding:0;font-family:inherit;line-height:inherit}
button.wlt-hist-addr{line-height:inherit}
:is(.sb-ls-header,.wlt-hist-social-stat,.wlt-hist-addr--copy):focus-visible{outline:2px solid var(--blue);outline-offset:2px}

/* Touch: grow the hit area of the small chart / tracker / PNL controls without
   changing how they look (vertical only, so neighbours in a row never overlap). */
@media (pointer:coarse){
  .dv-tf-btn,.dv-type-seg,.tgt-seg-btn,.vk-cmp-tab,.pnl-bg-chip{position:relative}
  .dv-tf-btn::after,.dv-type-seg::after,.tgt-seg-btn::after,.vk-cmp-tab::after,.pnl-bg-chip::after{
    content:"";position:absolute;inset:-7px 0
  }
}

/* PNL cards: the stat tiles sit on the artwork — a denser scrim keeps the figures readable. */
html:not([data-theme="dark"]):not([data-theme="voidtype"]):not([data-scheme="dark"]) .pnl-stats-row .pnl-stat{
  background:rgba(8,14,24,.58);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)
}
.pnl-pos-stats .pnl-pos-stat{
  background:rgba(8,12,18,.55);border-color:rgba(255,255,255,.12);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)
}
html:not([data-theme="dark"]):not([data-theme="voidtype"]):not([data-scheme="dark"]) .pnl-pos-stats .pnl-pos-stat{
  background:rgba(8,14,24,.55);border-color:rgba(255,255,255,.18);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)
}

/* Coin page stats row: Volume carries buys vs sells, Holders shows the creator's
   share, and the bonding-curve card takes the old Stats/Audit slot. */
#detailView .stats-row{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) minmax(0,1.35fr);align-items:stretch}
#detailView .stats-row > .bond-card{margin:0;min-width:0}
@media (max-width:900px){
  #detailView .stats-row{grid-template-columns:1fr 1fr}
  #detailView .stats-row > .bond-card{grid-column:1 / -1}
}
@media (max-width:700px){
  #detailView .stats-row{grid-template-columns:1fr}
}
.dv-vol-flow,.dv-hold-dev{margin-top:14px;padding-top:12px;border-top:1px solid rgba(10,37,64,.08)}
html:is([data-theme="dark"],[data-scheme="dark"],[data-theme="voidtype"]) :is(.dv-vol-flow,.dv-hold-dev){border-top-color:rgba(255,255,255,.08)}
.dv-vol-flow{display:flex;flex-direction:column;gap:10px}
.dv-vol-flow-hd{display:flex;align-items:center;justify-content:space-between;gap:8px 10px;flex-wrap:wrap}
.dv-vol-flow-lbl,.dv-hold-dev-lbl{font-size:12px;font-weight:600;color:var(--t2)}
.dv-hold-dev{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.stat-card .dv-hold-dev-val{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}

/* ── Mobile pass fixes (2026-09-14) ── */
@media (max-width:360px){
  /* Quick amounts: 2×2 instead of clipping the last one. */
  .bs-presets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  #platformHeader .ms-kbd{display:none}
}
/* Curve / pool rows: the label never wraps; a long value wraps on the right. */
.bond-row{gap:10px}
.bond-row span:first-child{white-space:nowrap}
.bond-row span:last-child{text-align:right}
/* PNL: the big figure shrinks with the screen instead of breaking between digits. */
@media (max-width:420px){
  .pnl-big-num{font-size:clamp(26px,10.5vw,40px);word-break:normal;overflow-wrap:normal;white-space:nowrap}
}
/* Touch: small text links and the preset-panel close get a taller hit area. */
button.wlt-hist-social-stat{padding-block:4px}
@media (pointer:coarse){
  .bspp-close{position:relative}
  .bspp-close::after{content:"";position:absolute;inset:-8px}
  .tgt-stat.tgt-link{display:inline-block;padding-block:4px;margin-block:-4px}
}
/* Dark: the curve card in the stats row matches its neighbours (no extra outline). */
html:is([data-theme="dark"],[data-scheme="dark"],[data-theme="voidtype"]) #detailView .stats-row > .bond-card{border-color:transparent}
