  @font-face {
    font-family: 'Syne Fallback';
    src: local('Arial');
    size-adjust: 88%;
    ascent-override: 95%;
    descent-override: 25%;
    line-gap-override: 0%;
  }
  .th-name { font-family: 'Syne', 'Syne Fallback', sans-serif !important; }


/* ═══════════════════════════════════════════════════════════════ */
/* DESIGN TOKENS                                                   */
/* ═══════════════════════════════════════════════════════════════ */
:root {
  /* Surface — Bloomberg Black */
  --bg:        #000000;
  --bg2:       #0a0a0a;
  --bg3:       #141414;
  --bg4:       #1a1a1a;
  /* Borders */
  --bdr:       #222222;
  --bdr2:      #2a2a2a;
  --bdr3:      #333333;
  /* Text */
  --dim:       #8a8a8a;
  --muted:     #999999;
  --body:      #bbbbbb;
  --bright:    #dddddd;
  --white:     #f0f0f0;
  /* Brand — Bloomberg amber */
  --green:     #FFB000;
  --green-dim: rgba(255,176,0,0.08);
  --green-glow:rgba(255,176,0,0.18);
  --red:       #ff3333;
  --orange:    #FFB000;
  --blue:      #3399ff;
  --purple:    #aa77ff;
  /* Positive/Negative (separate from brand) */
  --up:        #00cc66;
  --down:      #ff3333;
  /* Chart */
  --chart-bg:  #000000;
  /* Stale indicator */
  --amber:     #f5a623;
  /* Layout */
  --sidebar-width: 225px;
  --right-panel-width: 400px;
  --numeric-font: 'IBM Plex Sans', sans-serif;
  /* Z-index layers (ascending) */
  --z-sidebar:      50;
  --z-loader:       100;
  --z-modal:        9000;
  --z-tooltip:      9500;
  --z-cursor:       9600;
  --z-cmd:          9800;
  --z-mobile-gate:  9900;
  --z-maintenance:  9950;
  /* Depth — whisper-level shadows for surface separation */
  --shadow-sm: 0 1px 2px rgba(0,0,0,0.3);
  --shadow-md: 0 2px 8px rgba(0,0,0,0.25);
  --shadow-lg: 0 4px 24px rgba(0,0,0,0.35);
  /* Translucent borders — Linear-style surface layering */
  --border-subtle: rgba(255,255,255,0.04);
  --border-medium: rgba(255,255,255,0.06);
  --surface-hover: rgba(255,255,255,0.03);
  --surface-active: rgba(255,255,255,0.06);
}
html[data-theme="light"] {
  --bg:        #f5f1e8;
  --bg2:       #eee7d8;
  --bg3:       #e4dbc8;
  --bg4:       #dad0bc;
  --bdr:       #c9bea8;
  --bdr2:      #bdae95;
  --bdr3:      #a9997f;
  --dim:       #7f735f;
  --muted:     #6f6454;
  --body:      #4b4338;
  --bright:    #2f2a23;
  --white:     #14110d;
  --chart-bg:  #f5f1e8;
  --shadow-sm: 0 1px 2px rgba(0,0,0,0.08);
  --shadow-md: 0 2px 8px rgba(0,0,0,0.1);
  --shadow-lg: 0 4px 24px rgba(0,0,0,0.12);
  --border-subtle: rgba(0,0,0,0.05);
  --border-medium: rgba(0,0,0,0.08);
  --surface-hover: rgba(0,0,0,0.035);
  --surface-active: rgba(0,0,0,0.07);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; overflow: hidden; }
html[data-numfont="inter"] { --numeric-font: 'Inter', sans-serif; }
html[data-numfont="ibm"] { --numeric-font: 'IBM Plex Sans', sans-serif; }
body {
  font-family: 'JetBrains Mono', monospace;
  font-feature-settings: 'zero' 1, 'tnum' 1;
  font-size: 12px;
  background: var(--bg);
  color: var(--body);
  min-height: 100vh;
  min-width: 1100px;
  -webkit-font-smoothing: antialiased;
}
::selection { background: rgba(255,176,0,0.25); color: var(--white); }

/* Tabular numbers on all financial data (Stripe pattern) */
.tt-price, .tt-change, .tt-nav-val, .tt-treasury, .tt-mcap,
.pnav-badge, .rp-stat-val, .rp-chg-val, .snap-value,
.dp-nav-val, .dp-treas-total, .dp-val, .dp-trow-usdc, .dp-trow-tokens,
.hs-val, .hs-chg, .th-price, .tp-price, .tp-chg-row,
.ac-value, .am-pct, .am-amount,
.ns-value, .tc-runway-val, .bb-tape-price, .bb-tape-chg,
.re-card-eff, .re-card-val, .timeline-index {
  font-family: var(--numeric-font) !important;
  font-variant-numeric: tabular-nums;
}

/* Bloomberg: sharp corners everywhere */
*, *::before, *::after { border-radius: 0 !important; }
/* Exceptions — circles (dots and status indicators only — NOT logos or info tips) */
#live-dot-nav, #live-dot-price, #live-dot-forecast,
.live-dot, .th-live-dot,
.th-dot, .dp-tdot, .backend-health-dot,
.tp-lp-sublabel .tp-section-arrow,
.hldr-legend-dot { border-radius: 50% !important; }
/* Exceptions — tooltips */
.stat-tip::after, .stat-tip[data-tip]::after,
.beta-warn-tip::after, .price-check-badge::after,
#stale-tooltip, .tm-tooltip { border-radius: 6px !important; }
/* Exceptions — search, command palette, auth */
.tp-search, .cmd-item, .auth-modal { border-radius: 6px !important; }
.cmd-kbd, .auth-btn, .auth-input { border-radius: 4px !important; }
/* Exceptions — pill badges */
.lp-badge { border-radius: 20px !important; }
/* Exceptions — progress bars, scrollbar thumbs */
.ns-progress, .ns-progress-fill,
.util-bar, .util-fill, .dp-tbar,
.hldr-distro-bar, .hldr-seg:first-child, .hldr-seg:last-child,
.hldr-conc-bar-track, .hldr-conc-bar-fill,
.hldr-bar-wrap, .hldr-bar-fill { border-radius: 2px !important; }
::-webkit-scrollbar-thumb { border-radius: 2px !important; }
/* Exceptions — chart control pills */
.chart-pill { border-radius: 5px !important; }
.chart-pill-btn { border-radius: 3px !important; }

/* Bloomberg: green/red for up/down (override amber brand) */
.up, .tt-change.up, .tt-change .up, .hs-chg .up, .rp-chg-val.up, .rp-stat-val.above, .dp-val.green, .dp-nav-badge.above, .pnav-badge.above, .tp-chg-row .up { color: #00cc66 !important; }
.down, .tt-change.down, .tt-change .down, .hs-chg .down, .rp-chg-val.down, .rp-stat-val.below, .dp-val.red, .dp-nav-badge.below, .pnav-badge.below, .tp-chg-row .down { color: #ff3333 !important; }
.pnav-badge.above { background: rgba(0,204,102,0.1) !important; }
.pnav-badge.below { background: rgba(255,51,51,0.1) !important; }
.dp-nav-badge.above { background: rgba(0,204,102,0.08) !important; border-color: rgba(0,204,102,0.18) !important; }
.dp-nav-badge.below { background: rgba(255,51,51,0.08) !important; border-color: rgba(255,51,51,0.18) !important; }

/* Bloomberg: disable decorative animations by default */
*, *::before, *::after { animation: none; }
/* Selective micro-transitions on interactive elements (120ms — Linear standard) */
a, button, [role="button"], .tp-item, .cmd-item, .re-card,
.token-table tbody tr, .token-table tbody td,
.nav-link, .cbtn, .layer-btn, .chart-pill-btn, .chart-fs-btn,
.lp-filter-btn, .rp-link-btn, .rp-action-btn, .tc-toggle-btn,
.addr-copy, .refresh-btn, .wl-star, .tx-filter-btn,
.tp-search, .auth-input, .cmd-input,
.tp-section-arrow, .chg-rotate-frame,
.view-toggle-btn, .treemap-size-btn {
  transition: color 120ms ease, background 120ms ease, border-color 120ms ease, box-shadow 120ms ease, opacity 120ms ease;
}
/* Tooltip fade — slightly longer */
.stat-tip::after, .stat-tip[data-tip]::after,
.beta-warn-tip::after, .price-check-badge::after,
#stale-tooltip {
  transition: opacity 150ms ease;
}
/* Section collapse animation */
.tp-section-body {
  transition: max-height 220ms cubic-bezier(0.4,0,0.2,1) !important;
}
/* Animations that must run */
.token-switch-circle svg,
.chart-loading .chart-loading-spinner,
.refresh-btn.spinning svg { animation: tss-spin 0.8s linear infinite !important; }
.live-dot { animation: greenPulse 1.5s ease-in-out infinite !important; }
.th-live-dot { animation: livePulse 2s ease-in-out infinite !important; }
.loading-shimmer { animation: shimmer 1.5s infinite !important; }
/* Chart live dots — static, no animated glow */
#live-dot-nav, #live-dot-price, #live-dot-forecast { animation: none !important; }
/* Bloomberg: tighter spacing */
.dp-row { padding: 3px 14px; }
.rp-stat-box { padding: 10px 14px; }
.dp-treasury { padding: 8px 14px 10px; }
/* Reserve uniform space for the four right-rail sections so boxes don't pop in at varying sizes */
#tc-card, #es-card, #perf-tabs-group, #history-group { min-height: 160px; }
/* Bloomberg: all fonts monospace */
.nav-link, .lp-filter-btn, .rp-link-btn, .dp-key, .hero-sub, .tt-name, .tt-ticker,
.nav-breadcrumb, .rp-stat-label, .dp-sec-label, .dp-group-label, .footer,
.hs-label, .cmd-input, .auth-btn, .auth-input, .tp-section-label, .rp-contract-label {
  font-family: 'JetBrains Mono', monospace !important;
}
/* Bloomberg: amber labels */
.hs-label, .rp-stat-label, .dp-sec-label, .dp-group-label, .rp-contract-label,
.dp-nav-eyebrow, .dp-subheading, .tp-section-label {
  color: var(--orange) !important;
}

/* ── Scrollbar ── */
::-webkit-scrollbar { width: 4px; height: 4px; }
::-webkit-scrollbar-track { background: #000; }
::-webkit-scrollbar-thumb { background: var(--bdr3); border-radius: 0; }
::-webkit-scrollbar-thumb:hover { background: #555; }

/* ═══════════════════════════════════════════════════════════════ */
/* LAYOUT                                                          */
/* ═══════════════════════════════════════════════════════════════ */
/* ═══════════════════════════════════════════════════════════════ */
/* APP SHELL — DexScreener-style full-height sidebar layout        */
/* ═══════════════════════════════════════════════════════════════ */

/* Kill the old wrap padding — shell is full-bleed */
.wrap { max-width: none; margin: 0; padding: 0; }

/* App shell: sidebar left, content right */
.app-shell {
  display: flex;
  width: max(100vw, 1100px);
  height: max(100vh, 700px);
  overflow: visible;
}

/* ── Left sidebar — always visible ── */
.app-left {
  width: var(--sidebar-width);
  flex-shrink: 0;
  background: var(--bg);
  border-right: 1px solid var(--bdr);
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  overscroll-behavior: none;
  position: relative;
  z-index: var(--z-sidebar);
  -webkit-overflow-scrolling: auto;
  box-shadow: 1px 0 0 var(--border-subtle), 2px 0 8px rgba(0,0,0,0.3);
}

/* Brand area at top of left rail */
.app-brand {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 6px;
  padding: 0;
  text-decoration: none;
  flex-shrink: 0;
  box-sizing: border-box;
}
.app-brand-mark {
  width: 32px; height: 32px;
  background: var(--green);
  border-radius: 0;
  display: flex; align-items: center; justify-content: center;
  font-family: 'JetBrains Mono', monospace;
  font-size: 16px; font-weight: 800;
  color: #000;
  letter-spacing: -0.5px;
  flex-shrink: 0;
}
.app-brand-text {
  font-family: 'JetBrains Mono', monospace;
  font-size: 18px; font-weight: 700;
  color: var(--white); letter-spacing: -0.3px;
}
.app-brand-text span { color: var(--green); }

/* Token list lives in the left rail */
.app-token-list {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* ── Right area — topbar + content ── */
.app-right {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  position: relative;
}

/* ── Single unified topnav — same on all pages ── */
.topnav {
  display: flex;
  align-items: center;
  padding: 0 20px 0 0;
  height: 48px;
  overflow: hidden;
  border-bottom: 1px solid var(--bdr);
  background: var(--bg);
  flex-shrink: 0;
  gap: 0;
  transition: opacity 0.15s ease;
}

/* Left anchor: on token pages this is empty (sidebar has the brand);
   on landing it shows the brand — both use var(--sidebar-width) so
   nav links land at the same X position on every page. */
.nav-brand {
  width: var(--sidebar-width);
  flex-shrink: 0;
  display: flex; align-items: center; gap: 10px;
  padding: 0 14px;
  text-decoration: none;
  border-right: 1px solid var(--bdr);
  height: 100%;
  box-sizing: border-box;
}
/* Sidebar always shows brand — collapse the topnav brand anchor always */
body:not(.is-token) .rp-via-strip { display: none; }
/* Hide topnav on landing page — sidebar has branding, breadcrumb is redundant */
body:not(.is-token) .topnav { display: none; }
/* Sidebar always shows brand — collapse the topnav brand anchor always */
body .topnav .nav-brand {
  display: none;
}
/* Breadcrumb in topnav */
.nav-breadcrumb {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: var(--muted);
  padding: 0 16px;
}
.nav-breadcrumb .bc-crumb {
  color: var(--muted);
  text-decoration: none;
  transition: color 0.15s;
  cursor: pointer;
}
.nav-breadcrumb .bc-crumb:hover { color: var(--white); }
.nav-breadcrumb .bc-crumb.bc-current { color: var(--white); font-weight: 500; }
.nav-breadcrumb .bc-sep { color: var(--dim); }
/* Landing get internal padding */
.landing { padding: 0 32px 80px; }
.nav-brand-mark {
  width: 26px; height: 26px;
  background: var(--green); border-radius: 0;
  display: flex; align-items: center; justify-content: center;
  font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 800;
  color: #000; letter-spacing: -0.5px; flex-shrink: 0;
}
.nav-brand-text {
  font-family: 'JetBrains Mono', monospace; font-size: 15px; font-weight: 700;
  color: var(--white); letter-spacing: -0.3px;
}
.nav-brand-text span { color: var(--green); }
.topnav .nav-center {
  flex: 1; display: flex; gap: 2px; align-items: center; padding: 0 12px;
}
.nav-link {
  font-family: 'Geist Sans', sans-serif;
  font-size: 12px; font-weight: 500;
  color: var(--muted);
  text-decoration: none;
  padding: 5px 12px;
  border-radius: 6px;
  transition: color 0.15s, background 0.15s;
}
.nav-link:hover { color: var(--white); background: var(--bg3); }
.nav-link.nav-active { color: var(--white); font-weight: 600; }
.nav-right { display: flex; align-items: center; gap: 8px; padding-right: 20px; margin-left: auto; }
.nav-btn-solid {
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px; font-weight: 600;
  color: #000; background: var(--green);
  text-decoration: none;
  padding: 5px 14px;
  border-radius: 0;
}
.nav-btn-solid:hover { opacity: 0.88; }

/* Content area scrolls within the right panel */
.app-content {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: thin;
  scrollbar-color: var(--bdr3) transparent;
  overscroll-behavior: none;
}
.app-content::-webkit-scrollbar { width: 4px; }
.app-content::-webkit-scrollbar-track { background: transparent; }
.app-content::-webkit-scrollbar-thumb { background: var(--bdr3); border-radius: 2px; }
body.is-token .app-content::-webkit-scrollbar { display: none; }
body.is-token .app-content { scrollbar-width: none; }

/* Views */
.landing  { display: none; }
.landing.active  { display: block; }
.dashboard { display: none; }
.dashboard.active { display: flex; flex-direction: column; flex: 1; min-height: 0; }
.token-switch-loader { display:none; position:fixed; top:0; bottom:0; left:var(--sidebar-width); right:0; z-index:var(--z-loader); background:var(--bg); justify-content:center; align-items:center; gap:10px; }
.token-switch-loader.active { display:flex; }
.token-switch-spinner { width:0; height:0; border:none; display:none; }
.token-switch-loader.active .token-switch-circle { display:block; }
.token-switch-circle { display:none; width:18px; height:18px; flex-shrink:0; }
.token-switch-circle svg { animation:tss-spin .8s linear infinite !important; }
.token-switch-label { font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--muted); }
@keyframes tss-spin { to { transform:rotate(360deg); } }


/* ═══════════════════════════════════════════════════════════════ */
/* LANDING — HERO STATS STRIP                                      */
/* ═══════════════════════════════════════════════════════════════ */
.hero-strip {
  display: block;
  min-height: 96px;
  box-sizing: border-box;
  border-bottom: 1px solid var(--bdr);
  padding: 10px 0 12px;
}
.hero-title {
  font-family: 'JetBrains Mono', monospace;
  font-size: 22px;
  font-weight: 700;
  color: var(--white);
  letter-spacing: 0;
  line-height: 1.2;
  text-transform: none;
  white-space: nowrap;
}
.hero-title-accent {
  color: var(--orange);
}
.hero-title-main {
  color: var(--white);
}
.hero-sub {
  font-size: 13px;
  color: var(--muted);
  margin-top: 4px;
  letter-spacing: 0.1px;
}
.hero-stats {
  display: grid;
  grid-template-columns: repeat(8, minmax(92px, 1fr));
  gap: 0;
  width: 100%;
}
.hs-item {
  min-width: 0;
  padding: 0 14px;
  text-align: right;
  border-right: 1px solid var(--bdr);
}
.hs-item:first-child { padding-left: 0; }
.hs-item:last-child { padding-right: 0; border-right: none; }
.hs-label {
  font-size: 12px; font-weight: 600;
  color: var(--dim);
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 3px;
}
.hs-val {
  font-family: 'JetBrains Mono', monospace;
  font-size: 18px; font-weight: 500;
  color: var(--white);
  letter-spacing: -0.5px;
}
.hs-chg {
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px; font-weight: 500;
  margin-top: 2px; min-height: 14px;
}
.hs-chg .up { color: var(--green); }
.hs-chg .down { color: var(--red); }

/* ═══════════════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════════════ */
/* RESTRUCTURING EVENTS LEADERBOARD                                */
/* ═══════════════════════════════════════════════════════════════ */
.re-card {
  flex: 1;
  min-width: 140px;
  padding: 10px 14px;
  background: var(--bg2);
  border: 1px solid var(--bdr);
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
}
.re-card:hover { border-color: var(--bdr3); background: var(--bg3); }
.re-card-head {
  display: flex; align-items: center; gap: 8px; margin-bottom: 6px;
}
.re-card-logo { width: 20px; height: 20px; border-radius: 50%; object-fit: cover; }
.re-card-ticker {
  font-family: 'JetBrains Mono', monospace;
  font-size: 13px; font-weight: 700; color: var(--white);
}
.re-card-status {
  font-size: 10px; font-weight: 600; margin-left: auto;
}
.re-card-eff {
  font-family: 'JetBrains Mono', monospace;
  font-size: 20px; font-weight: 300; color: var(--bright);
  letter-spacing: -0.5px; margin-bottom: 4px;
}
.re-card-row {
  display: flex; justify-content: space-between; align-items: center;
  font-size: 11px; line-height: 1.7;
}
.re-card-label { color: var(--dim); }
.re-card-val { font-family: 'JetBrains Mono', monospace; color: var(--muted); }

/* ═══════════════════════════════════════════════════════════════ */
/* TOKEN TABLE                                                     */
/* ═══════════════════════════════════════════════════════════════ */
.lp-filter-bar {
  display: flex; align-items: center; gap: 6px;
  padding: 8px 16px 6px;
  background: var(--bg);
  border-bottom: 1px solid var(--bdr);
}
.lp-filter-btn {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 12px; font-weight: 600; font-family: 'JetBrains Mono', monospace;
  padding: 4px 10px;
  border-radius: 0;
  border: 1px solid var(--bdr2);
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  white-space: nowrap;
  text-transform: uppercase;
}
.lp-filter-btn:hover { border-color: var(--bdr3); color: var(--bright); }
.lp-filter-btn.active { background: var(--green-dim); border-color: var(--green); color: var(--green); }
.lp-filter-btn[data-lp="permissionless"] { order: 3; }
.lp-filter-btn-graveyard { order: 4; margin-left: 0; margin-right: 0; }
.lp-filter-btn-graveyard.active {
  background: rgba(255, 51, 102, 0.08);
  border-color: rgba(255, 51, 102, 0.55);
  color: #ff5c7a;
}
.lp-filter-btn.disabled {
  opacity: 1;
  pointer-events: none;
  cursor: default;
  color: #4d4d4d;
  background: #050505;
  border-color: rgba(255,255,255,0.05);
}
html[data-theme="light"] .lp-filter-btn.disabled {
  color: #8d8270;
  background: #ddd3be;
  border-color: #c2b49b;
}
.lp-filter-btn img { width: 14px; height: 14px; border-radius: 3px; object-fit: cover; }
/* View toggle bar (table / treemap) — own row above filter bar */
.lp-view-bar {
  display: flex; align-items: center; gap: 6px;
  padding: 8px 16px 6px;
  background: var(--bg);
  border-bottom: 1px solid var(--bdr);
}
.view-toggle-btn {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 12px; font-weight: 600; font-family: 'JetBrains Mono', monospace;
  padding: 4px 10px;
  border: 1px solid var(--bdr2);
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  text-transform: uppercase;
}
.view-toggle-btn:hover { border-color: var(--bdr3); color: var(--bright); }
.view-toggle-btn.active { background: var(--green-dim); border-color: var(--green); color: var(--green); }
/* Treemap */
.treemap-controls {
  display: flex; align-items: center; gap: 6px;
  padding: 6px 16px;
  background: var(--bg);
  border-bottom: 1px solid var(--bdr);
}
.treemap-controls .tm-label {
  font-size: 12px; font-weight: 600; font-family: 'JetBrains Mono', monospace;
  color: var(--dim); text-transform: uppercase; letter-spacing: 0.5px;
}
.treemap-size-btn {
  display: inline-flex; align-items: center;
  font-size: 12px; font-weight: 600; font-family: 'JetBrains Mono', monospace;
  padding: 3px 8px;
  border: 1px solid var(--bdr2);
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  text-transform: uppercase;
}
.treemap-size-btn:hover { border-color: var(--bdr3); color: var(--bright); }
.treemap-size-btn.active { background: var(--green-dim); border-color: var(--green); color: var(--green); }
.treemap-wrap {
  position: relative;
  width: 100%;
  flex: 1;
  min-height: 0;
  background: var(--bg);
}
.tm-cell {
  position: absolute;
  overflow: hidden;
  cursor: pointer;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  text-align: center;
  border: 1px solid rgba(0,0,0,0.6);
  transition: filter 0.15s;
  font-family: 'JetBrains Mono', monospace;
}
.tm-cell:hover { filter: brightness(1.25); z-index: 2; }
.tm-cell .tm-logo { width: 28px; height: 28px; object-fit: cover; margin-bottom: 3px; }
.tm-cell .tm-ticker { font-size: 16px; font-weight: 700; color: #fff; text-shadow: 0 1px 3px rgba(0,0,0,0.6); line-height: 1.2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; padding: 0 2px; }
.tm-cell .tm-change { font-size: 12px; font-weight: 600; color: rgba(255,255,255,0.9); text-shadow: 0 1px 3px rgba(0,0,0,0.6); }
.tm-cell .tm-value { font-size: 12px; font-weight: 500; color: rgba(255,255,255,0.7); text-shadow: 0 1px 3px rgba(0,0,0,0.6); margin-top: 1px; }
/* small: no logo, no value */
.tm-cell.tm-small .tm-logo { display: none; }
.tm-cell.tm-small .tm-ticker { font-size: 12px; }
.tm-cell.tm-small .tm-change { font-size: 12px; }
.tm-cell.tm-small .tm-value { display: none; }
/* tiny: ticker only */
.tm-cell.tm-tiny .tm-logo { display: none; }
.tm-cell.tm-tiny .tm-ticker { font-size: 12px; }
.tm-cell.tm-tiny .tm-change { display: none; }
.tm-cell.tm-tiny .tm-value { display: none; }
/* micro: just a letter */
.tm-cell.tm-micro .tm-logo, .tm-cell.tm-micro .tm-ticker,
.tm-cell.tm-micro .tm-change, .tm-cell.tm-micro .tm-value { display: none; }
.tm-cell.tm-micro::after {
  content: attr(data-ticker);
  font-size: 7px; font-weight: 700; color: rgba(255,255,255,0.8);
  text-shadow: 0 1px 2px rgba(0,0,0,0.8);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%;
}
/* Treemap hover tooltip */
.tm-tooltip {
  position: fixed; z-index: var(--z-cursor); pointer-events: none;
  background: var(--bg4); border: 1px solid var(--bdr2);
  padding: 8px 12px;
  font-family: 'JetBrains Mono', monospace;
  min-width: 140px;
  box-shadow: 0 0 0 1px var(--border-subtle), 0 4px 16px rgba(0,0,0,0.4), 0 1px 2px rgba(0,0,0,0.2);
}
.tm-tooltip .tm-tt-name {
  font-size: 13px; font-weight: 700; color: var(--white); margin-bottom: 4px;
}
.tm-tooltip .tm-tt-row {
  display: flex; justify-content: space-between; gap: 12px;
  font-size: 12px; line-height: 1.6;
}
.tm-tooltip .tm-tt-label { color: var(--dim); }
.tm-tooltip .tm-tt-val { color: var(--bright); font-weight: 600; }
.token-table-wrap { margin: 0; }
.token-table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  font-family: 'JetBrains Mono', monospace;
}

.token-table thead th {
  font-size: 12px;
  font-weight: 600;
  color: var(--green);
  text-transform: uppercase;
  letter-spacing: 1px;
  padding: 6px 10px;
  text-align: right;
  cursor: pointer;
  user-select: none;
  white-space: nowrap;
  border-bottom: 1px solid var(--bdr3);
  overflow: visible;
  position: relative;
}
.token-table thead th .stat-tip { font-size: 10px; width: 11px; height: 11px; top: -1px; }
.token-table thead th .stat-tip::after { white-space: normal; width: 180px; left: 0; transform: none; }
.token-table thead th:nth-child(1),
.token-table thead th:nth-child(2) { text-align: center; }
.token-table thead th:nth-child(3) { text-align: left; }
.token-table thead th:nth-child(3),
.token-table tbody td:nth-child(3) {
  width: 18%;
  min-width: 180px;
}
.token-table thead th:nth-child(10),
.token-table tbody td:nth-child(10) {
  width: 72px;
  min-width: 72px;
  text-align: center;
  padding-left: 6px;
  padding-right: 6px;
}

.token-table tbody tr {
  cursor: pointer;
  transition: all 0.18s;
  position: relative;
}
.token-table tbody td {
  padding: 4px 10px;
  background: var(--bg);
  border-bottom: 1px solid #1a1a1a;
  font-size: 13px;
  color: var(--body);
  text-align: right;
  white-space: nowrap;
  vertical-align: middle;
}
.token-table tbody td:first-child {
  text-align: center;
  width: 28px;
  padding: 4px 4px;
  border-left: 2px solid transparent;
}
.token-table .wl-star svg { width: 15px; height: 15px; }
.token-table tbody td:nth-child(2) {
  text-align: center;
  color: var(--dim);
  font-size: 13px;
  font-weight: 500;
  padding-left: 4px; padding-right: 4px;
}
.token-table tbody td:nth-child(3) { text-align: left; }
.token-table tbody td:last-child {
}

.token-table tbody tr:hover td {
  background: rgba(255,255,255,0.03);
  box-shadow: inset 0 1px 0 var(--border-subtle), inset 0 -1px 0 var(--border-subtle);
}
.token-table tbody tr:hover td:first-child {
  border-left: 2px solid var(--green);
  box-shadow: inset 0 1px 0 var(--border-subtle), inset 0 -1px 0 var(--border-subtle), 3px 0 8px -2px rgba(255,176,0,0.06);
}

/* Name cell */
.tt-name-cell { display: flex; align-items: center; gap: 12px; min-height: 40px; }
.tt-name-cell > div { display: flex; flex-direction: column; justify-content: center; gap: 2px; min-width: 0; }
.tt-icon {
  width: 38px; height: 38px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: var(--bg3);
}
.tt-icon img { width: 100%; height: 100%; object-fit: cover; }
.tt-icon.graveyard-square-icon,
.tp-icon.graveyard-square-icon,
.th-icon.graveyard-square-icon {
  border-radius: 6px;
  background: #f4f6f2;
  border: 1px solid var(--bdr2);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,0.18);
}
.tt-icon.graveyard-square-icon img,
.tp-icon.graveyard-square-icon img,
.th-icon.graveyard-square-icon img {
  object-fit: contain;
  background: #f4f6f2;
}
.th-icon.graveyard-square-icon > div { border-radius: 0 !important; }
.bb-tape-logo.graveyard-square-icon {
  border-radius: 3px;
  background: #f4f6f2;
  border: 1px solid var(--bdr2);
  box-sizing: border-box;
  object-fit: contain;
}
.tt-name { font-weight: 700; color: var(--white); font-size: 15px; line-height: 1.05; text-transform: uppercase; }
.tt-ticker { color: var(--green); font-size: 13px; margin-top: 0; letter-spacing: 0.6px; text-transform: uppercase; }

/* Price cell */
.tt-price {
  font-family: 'JetBrains Mono', monospace;
  font-size: 15px; font-weight: 500;
  color: var(--bright);
  line-height: 1.1;
}
.tt-change { font-size: 13px; margin-top: 2px; }
.tt-change.up, .tt-change .up { color: var(--green); }
.tt-change.down, .tt-change .down { color: var(--red); }

/* NAV badge */
.tt-nav-val {
  font-family: 'JetBrains Mono', monospace;
  font-size: 15px; font-weight: 500; color: var(--body);
  line-height: 1.1;
}

/* P/NAV badge */
.pnav-badge {
  display: inline-block;
  padding: 4px 9px;
  border-radius: 5px;
  font-size: 14px;
  font-weight: 600;
  font-family: 'JetBrains Mono', monospace;
}
.pnav-badge.above { color: var(--green); }
.pnav-badge.below { color: var(--red); }
.pnav-badge.neutral { background: var(--bg3); color: var(--muted); }
.pnav-badge.flat { background: rgba(255,255,255,0.06); color: var(--white); }
.pnav-badge.rainbow-new, .rainbow-new { background: linear-gradient(90deg, #ff6b6b, #ffa94d, #ffd43b, #69db7c, #4dabf7, #cc5de8); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; font-weight: 800; letter-spacing: 1.5px; }

/* Launchpad pill */
.lp-badge {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 13px; font-weight: 600;
  padding: 4px 9px;
  border-radius: 20px;
  white-space: nowrap;
  border: 1px solid transparent;
  transition: all 0.15s;
}
.lp-badge.metadao {
  background: transparent;
  color: transparent;
  border-color: transparent;
  font-size: 0;
  padding: 4px 7px;
}
.lp-badge.metadao::before {
  content: '';
  width: 18px; height: 18px;
  border-radius: 3px;
  background: url('logos/meta.jpg') center/cover no-repeat;
  flex-shrink: 0;
}
.lp-badge.starfun {
  background: rgba(255, 215, 0, 0.08);
  color: transparent;
  border-color: rgba(255, 215, 0, 0.15);
  font-size: 0;
  padding: 4px 7px;
}
.lp-badge.starfun::before {
  content: '';
  width: 18px; height: 18px;
  border-radius: 3px;
  background: url('logos/star.png') center/cover no-repeat;
  flex-shrink: 0;
}
.lp-badge.unknown {
  background: var(--bg3); color: var(--muted);
  border-color: var(--bdr2);
}
.lp-indicator {
  display: inline-grid;
  grid-template-columns: 14px 22px;
  align-items: center;
  justify-content: center;
  column-gap: 6px;
  width: 46px;
  vertical-align: middle;
}
.lp-indicator > svg {
  display: block;
  width: 14px;
  height: 14px;
  justify-self: center;
  flex-shrink: 0;
}
.lp-indicator .lp-badge {
  justify-self: center;
}

/* Treasury */
.tt-treasury {
  font-family: 'JetBrains Mono', monospace;
  font-size: 15px; font-weight: 500; color: var(--white);
  line-height: 1.1;
}

/* Mcap */
.tt-mcap { font-family: 'JetBrains Mono', monospace; font-size: 15px; font-weight: 500; color: var(--white); line-height: 1.1; }

/* Sparkline */
.tt-sparkline { width: 180px; height: 42px; }
.spark-container { width: 180px; height: 42px; }

/* Skeleton placeholder — shown for unhydrated cells while /api/current is in flight */
.tt-skel {
  display: inline-block;
  height: 13px;
  width: 56px;
  border-radius: 3px;
  vertical-align: middle;
  background: linear-gradient(90deg, rgba(255,255,255,0.04) 0%, rgba(255,255,255,0.10) 50%, rgba(255,255,255,0.04) 100%);
  background-size: 200% 100%;
  animation: ttSkelShimmer 1.4s ease-in-out infinite;
}
.tt-skel.tt-skel-sm { width: 38px; height: 12px; }
.tt-skel.tt-skel-lg { width: 72px; height: 14px; }
.tt-skel.tt-skel-xl { width: 96px; height: 18px; }
.tt-skel.tt-skel-spark { width: 100%; height: 24px; max-width: 160px; }
@keyframes ttSkelShimmer {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* Star */
.wl-star {
  color: var(--dim);
  cursor: pointer;
  transition: color 0.15s, transform 0.15s;
  display: inline-flex; align-items: center; justify-content: center;
  padding: 5px;
  margin: -5px;
}
.wl-star:hover, .wl-star.active { color: var(--green); }
.wl-star:active { transform: scale(0.97); }
.tp-item .wl-star { display: none; }
#tlp-wl-list .tp-item .wl-star { display: inline-flex; }

.tt-coming {
  font-size: 12px; font-weight: 600;
  color: var(--dim);
  letter-spacing: 1.5px;
  text-transform: uppercase;
}
.tt-liquidated {
  font-size: 11px; font-weight: 700;
  color: #ff3333;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  background: rgba(255,51,51,0.1);
  padding: 2px 8px;
  border-radius: 4px;
  border: 1px solid rgba(255,51,51,0.2);
}
.liquidated-banner {
  display: none;
  padding: 10px 14px;
  background: rgba(255,51,51,0.08);
  border: 1px solid rgba(255,51,51,0.25);
  border-radius: 6px;
  margin: 8px 14px 0;
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  color: #ff6666;
  line-height: 1.5;
}
.liquidated-banner strong { color: #ff3333; font-weight: 700; }
.liquidation-warning-banner {
  display: none;
  padding: 10px 14px;
  background: rgba(255,176,0,0.08);
  border: 1px solid rgba(255,176,0,0.25);
  border-radius: 6px;
  margin: 8px 14px 0;
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  color: #ffaa33;
  line-height: 1.5;
}
.liquidation-warning-banner strong { color: var(--green); font-weight: 700; }
.tt-liq-warn {
  font-size: 10px; font-weight: 700;
  color: var(--green);
  letter-spacing: 0.5px;
  text-transform: uppercase;
  background: rgba(255,176,0,0.1);
  padding: 1px 6px;
  border-radius: 3px;
  border: 1px solid rgba(255,176,0,0.2);
  margin-left: 6px;
  white-space: nowrap;
}

/* ═══════════════════════════════════════════════════════════════ */
/* DASHBOARD — TOKEN PAGE v4                                       */
/* ═══════════════════════════════════════════════════════════════ */

/* Dashboard fills the app-right content area */
.dashboard.active { margin: 0; flex-direction: column; flex: 1; min-height: 0; overflow: hidden; }
.dash-body  { display: flex; flex-direction: column; flex: 1; min-height: 0; overflow: hidden; }

/* ═══════════════════════════════════════════════════════════════
   TOKEN LIST — lives inside app-left shell
   ═══════════════════════════════════════════════════════════════ */
/* app-left is styled in the LAYOUT section above */
.app-token-list {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
/* Keep .token-panel as alias in case JS references it */
#token-left-panel { display: contents; }
.tp-topbar { padding: 8px 10px; height: 50px; border-bottom: 1px solid var(--bdr); flex-shrink: 0; box-sizing: border-box; display: flex; align-items: center; }
.tp-topbar-label { font-size: 9px; font-weight: 800; color: var(--dim); text-transform: uppercase; letter-spacing: 1.5px; margin-bottom: 7px; display: flex; align-items: center; justify-content: space-between; }
.tp-section-count { background: var(--bg3); border: 1px solid var(--bdr); border-radius: 8px; padding: 1px 5px; color: var(--muted); font-size: 12px; line-height: 1.5; }
.tp-search-wrap { position: relative; }
.tp-search-icon { position: absolute; left: 11px; top: 50%; transform: translateY(-50%); color: var(--bright); pointer-events: none; display: flex; align-items: center; transition: color 0.15s; }
.tp-search-wrap:focus-within .tp-search-icon { color: var(--green); }
.tp-search {
  width: 100%;
  font-family: 'Geist Sans', sans-serif;
  font-size: 14px;
  font-weight: 700;
  padding: 9px 10px 9px 34px;
  border-radius: 8px;
  border: 1px solid var(--bdr3);
  background: var(--bg3);
  color: var(--white);
  outline: none;
  transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
  letter-spacing: 0.2px;
}
.tp-search:focus {
  border-color: var(--green);
  background: var(--bg4);
  box-shadow: 0 0 0 3px rgba(255,176,0,0.08);
}
.tp-search::placeholder { color: var(--bright); font-weight: 700; }
.tp-section-label {
  font-size: 12px; font-weight: 700; color: var(--body);
  text-transform: uppercase; letter-spacing: 1.5px;
  padding: 10px 10px 10px;
  display: flex; align-items: center; justify-content: space-between;
  cursor: pointer; user-select: none;
  transition: color 0.15s;
}
.tp-section-label:active { transform: scale(0.99) !important; }
.tp-section-label:hover { color: var(--white); }
.tp-lp-sublabel { color: var(--body); padding-top: 8px; }
.tp-lp-sublabel:hover { color: var(--white); opacity: 1; }
.tp-lp-sublabel:not(.collapsed) { color: var(--green); }
.tp-lp-sublabel:not(.collapsed):hover { color: var(--green); opacity: 0.85; }
.tp-lp-sublabel .tp-section-arrow { color: var(--green); }
.tp-lp-sublabel.tp-lp-active:not(.collapsed) { background: rgba(255,176,0,0.05); }
.tp-lp-sublabel.tp-lp-active:not(.collapsed)::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 2px; background: var(--green); }
.tp-lp-sublabel { position: relative; }
.tp-lp-name { cursor: pointer; flex: 1; display: flex; align-items: center; gap: 5px; }
.tp-lp-name svg { flex-shrink: 0; }
.tp-section-arrow {
  color: var(--green);
  display: flex; align-items: center; justify-content: center;
  transition: transform 0.2s, color 0.15s;
  flex-shrink: 0;
}
.tp-section-label.collapsed .tp-section-arrow { transform: rotate(180deg); color: var(--dim); }
/* LP sublabel (MetaDAO etc) — green dot when open, grey dash when closed */
.tp-lp-sublabel .tp-section-arrow {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--green);
  box-shadow: 0 0 5px rgba(255,176,0,0.4);
  transform: none !important;
  color: transparent;
}
.tp-lp-sublabel.collapsed .tp-section-arrow {
  width: 8px; height: 2px;
  border-radius: 1px;
  background: var(--dim);
  box-shadow: none;
}
.tp-section-label { background: var(--bg3); }
.tp-lp-sublabel.tp-lp-active { background: rgba(255,176,0,0.05); }
.tp-lp-sublabel.tp-lp-active.collapsed { background: none; }
.tp-section-label.disabled,
.tp-lp-sublabel.disabled {
  opacity: 0.28;
  color: #5a5a5a;
  cursor: default;
  pointer-events: none;
}
.tp-migration-section.disabled {
  opacity: 0.38;
  filter: grayscale(1);
}
.tp-migration-section.disabled #tlp-migration-list {
  display: none;
}
.tp-section-body { overflow: hidden; transition: max-height 0.22s cubic-bezier(0.4,0,0.2,1); max-height: 2000px; }
.tp-section-body.collapsed { max-height: 0; }
.tp-wl-section { padding-bottom: 2px; }
.tp-item { display: flex; align-items: center; padding: 2px 10px; text-decoration: none; position: relative; gap: 8px; border-bottom: 1px solid rgba(255,255,255,0.02); outline: none; -webkit-tap-highlight-color: transparent; }
.tp-item:hover { background: var(--surface-hover); box-shadow: inset 0 0 0 1px var(--border-subtle); }
.tp-item.active { background: var(--surface-active); box-shadow: inset 0 0 0 1px var(--border-medium); }
.tp-item.active::before { display: none; }
.tp-icon { width: 30px; height: 30px; border-radius: 6px; overflow: hidden; flex-shrink: 0; display: flex; align-items: center; justify-content: center; }
.tp-icon img { width: 100%; height: 100%; object-fit: cover; }
.tp-info { flex: 1; min-width: 0; }
.tp-name { font-size: 13px; font-weight: 700; color: var(--bright); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 1; }
.tp-item.active .tp-name { color: var(--white); }
.tp-right { display: flex; flex-direction: column; align-items: flex-end; flex-shrink: 0; }
.tp-price { font-family: 'JetBrains Mono', monospace; font-size: 13px; font-weight: 500; color: var(--bright); white-space: nowrap; line-height: 1; }
.tp-content { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.tp-row { display: flex; justify-content: space-between; align-items: center; }
.tp-chg-row { display: flex; justify-content: space-between; font-family: 'JetBrains Mono', monospace; font-size: 13px; font-weight: 400; line-height: 1; }
.tp-chg-row .tp-chg-label { color: var(--dim); }
.tp-chg-row .up { color: var(--green); }
.tp-chg-row .down { color: var(--red); }
.tp-chg-row .neutral { color: var(--dim); }
.tp-footer { padding: 10px 12px 12px; border-top: 1px solid var(--bdr); flex-shrink: 0; }
.tp-links-section { margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--bdr); }
.tp-links-label { margin-bottom: 6px; font-size: 10px; font-weight: 700; letter-spacing: 0.9px; text-transform: uppercase; color: var(--dim); text-align: center; }
.tp-links-row { display: flex; gap: 6px; }
.tp-footer-link, .tp-footer-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  flex: 1 1 0;
  min-width: 0;
  padding: 7px 0;
  background: var(--bg2);
  border: 1px solid var(--bdr2);
  color: var(--body);
  text-decoration: none;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  transition: color 0.15s, border-color 0.15s, background 0.15s;
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
}
.tp-footer-link:hover, .tp-footer-btn:hover { color: var(--white); border-color: var(--bdr3); background: var(--bg3); }
.tp-footer-link.disabled, .tp-footer-btn.disabled {
  pointer-events: none;
  cursor: default;
  color: #4d4d4d;
  background: #050505;
  border-color: rgba(255,255,255,0.05);
}
html[data-theme="light"] .tp-footer-link.disabled,
html[data-theme="light"] .tp-footer-btn.disabled {
  color: #8d8270;
  background: #ddd3be;
  border-color: #c2b49b;
}
.tp-footer-link span, .tp-footer-btn span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tp-footer-link.icon-only, .tp-footer-btn.icon-only { gap: 0; padding: 8px 0; }
.tp-footer-link.icon-only svg, .tp-footer-btn.icon-only svg { width: 14px; height: 14px; }
.nav-calc-modal-card {
  max-width: 420px;
  margin: 60px auto;
  background: #0a0a0a;
  border: 1px solid #222;
  border-radius: 10px;
  padding: 24px;
  position: relative;
}
.nav-calc-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}
.nav-calc-title {
  font-family: 'Syne', sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: #f0f0f0;
}
.nav-calc-sub {
  margin-top: 4px;
  color: #777;
  font-size: 11px;
  font-family: 'IBM Plex Mono', monospace;
}
.nav-calc-close {
  cursor: pointer;
  color: #777;
  font-size: 18px;
  line-height: 1;
  background: none;
  border: none;
  padding: 0;
}
.nav-calc-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 14px;
}
.nav-calc-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.nav-calc-label {
  color: #999;
  font-size: 11px;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  font-family: 'IBM Plex Mono', monospace;
}
.nav-calc-input {
  width: 100%;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid #222;
  background: #111;
  color: #f0f0f0;
  font-size: 14px;
  font-family: 'IBM Plex Mono', monospace;
  outline: none;
}
.nav-calc-input:focus { border-color: #3a3a3a; }
.nav-calc-meta {
  color: #666;
  font-size: 11px;
  font-family: 'IBM Plex Mono', monospace;
}
.nav-calc-hero {
  padding: 12px;
  background: #0e0e0e;
  border: 1px solid #1a1a1a;
  border-radius: 8px;
  margin-bottom: 14px;
}
.nav-calc-kicker {
  color: #777;
  font-size: 10px;
  letter-spacing: 0.9px;
  text-transform: uppercase;
  font-family: 'IBM Plex Mono', monospace;
}
.nav-calc-value {
  margin-top: 6px;
  color: #ffcc00;
  font-size: 28px;
  font-family: 'IBM Plex Mono', monospace;
  line-height: 1.1;
}
.nav-calc-formula {
  margin-top: 8px;
  color: #777;
  font-size: 12px;
  font-family: 'IBM Plex Mono', monospace;
  line-height: 1.5;
}
.nav-calc-formula .t { color: #00cc66; }
.nav-calc-formula .s { color: #FFB000; }
.nav-calc-compare {
  padding: 12px;
  background: #0e0e0e;
  border: 1px solid #1a1a1a;
  border-radius: 8px;
}
.nav-calc-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 6px 0;
  border-bottom: 1px solid #1a1a1a;
  font-size: 12px;
  font-family: 'IBM Plex Mono', monospace;
}
.nav-calc-row:last-child { border-bottom: none; }
.nav-calc-row-label { color: #999; }
.nav-calc-row-value { color: #f0f0f0; text-align: right; }
.nav-calc-status {
  margin-top: 10px;
  font-size: 12px;
  font-family: 'IBM Plex Mono', monospace;
}
.nav-calc-status.match { color: #00cc66; }
.nav-calc-status.diff { color: #FFB000; }
.nav-calc-status.neutral { color: #999; }
.nav-calc-note {
  margin-top: 10px;
  color: #777;
  font-size: 11px;
  line-height: 1.45;
  font-family: 'IBM Plex Mono', monospace;
}
.nav-calc-actions {
  display: flex;
  gap: 8px;
  margin-top: 14px;
}
.nav-calc-btn {
  flex: 1 1 0;
  padding: 9px 12px;
  border-radius: 8px;
  border: 1px solid #222;
  background: #111;
  color: #ddd;
  font-size: 11px;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  font-family: 'IBM Plex Mono', monospace;
  cursor: pointer;
}
.nav-calc-btn:hover {
  color: #fff;
  border-color: #333;
  background: #151515;
}
.tp-launches-section { flex-shrink: 0; overflow: hidden; display: flex; flex-direction: column; }
.tp-launches-section .tp-section-label.collapsed + #tlp-launches-list { display: none; }
#tlp-launches-list, #tlp-discounts-list, #tlp-premiums-list, #tlp-perm-list, #tlp-permless-list, #tlp-migration-list {
  max-height: 130px;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--bdr2) transparent;
  overscroll-behavior: contain;
}
#tlp-launches-list::-webkit-scrollbar, #tlp-discounts-list::-webkit-scrollbar, #tlp-premiums-list::-webkit-scrollbar, #tlp-perm-list::-webkit-scrollbar, #tlp-permless-list::-webkit-scrollbar, #tlp-migration-list::-webkit-scrollbar { width: 4px; }
#tlp-launches-list::-webkit-scrollbar-track, #tlp-discounts-list::-webkit-scrollbar-track, #tlp-premiums-list::-webkit-scrollbar-track, #tlp-perm-list::-webkit-scrollbar-track, #tlp-permless-list::-webkit-scrollbar-track, #tlp-migration-list::-webkit-scrollbar-track { background: transparent; }
#tlp-launches-list::-webkit-scrollbar-thumb, #tlp-discounts-list::-webkit-scrollbar-thumb, #tlp-premiums-list::-webkit-scrollbar-thumb, #tlp-perm-list::-webkit-scrollbar-thumb, #tlp-permless-list::-webkit-scrollbar-thumb, #tlp-migration-list::-webkit-scrollbar-thumb { background: var(--bdr2); border-radius: 2px; }
.tp-discounts-section { flex-shrink: 0; overflow: hidden; display: flex; flex-direction: column; }
.tp-discounts-section .tp-section-label.collapsed + #tlp-discounts-list { display: none; }
.tp-premiums-section { flex-shrink: 0; overflow: hidden; display: flex; flex-direction: column; }
.tp-premiums-section .tp-section-label.collapsed + #tlp-premiums-list { display: none; }
.tp-perm-section { flex-shrink: 0; overflow: hidden; display: flex; flex-direction: column; }
.tp-perm-section .tp-section-label.collapsed + #tlp-perm-list { display: none; }
.tp-permless-section { flex-shrink: 0; overflow: hidden; display: flex; flex-direction: column; }
.tp-permless-section .tp-section-label.collapsed + #tlp-permless-list { display: none; }
.tp-migration-section { display: none !important; }
.tp-migration-section .tp-section-label.collapsed + #tlp-migration-list { display: none; }
.tp-all-section { flex: 1; min-height: 0; overflow: hidden; display: flex; flex-direction: column; }
.tp-all-section .tp-section-label.collapsed + #tlp-all-list { display: none; }
#tlp-all-list { flex: 1; min-height: 0; overflow-y: auto; scrollbar-width: thin; scrollbar-color: var(--bdr2) transparent; overscroll-behavior: contain; }
#tlp-all-list::-webkit-scrollbar { width: 4px; }
#tlp-all-list::-webkit-scrollbar-track { background: transparent; }
#tlp-all-list::-webkit-scrollbar-thumb { background: var(--bdr2); border-radius: 2px; }
.tp-wl-section { flex-shrink: 0; background: var(--bg3); overflow: hidden; max-height: 240px; position: relative; display: flex; flex-direction: column; }
.wl-section-grip { height: 12px; cursor: ns-resize; flex-shrink: 0; background: transparent; position: relative; display: flex; align-items: center; justify-content: center; z-index: 2; }
.wl-section-grip::before { content: ''; position: absolute; left: 0; right: 0; top: 50%; transform: translateY(-50%); height: 2px; background: var(--bdr); }
.wl-section-grip::after { content: ''; position: absolute; width: 16px; height: 16px; border-radius: 50%; background: var(--bg3); border: 1px solid var(--bdr2); top: 50%; left: 50%; transform: translate(-50%, -50%); }
.wl-section-grip .tx-resize-icon { z-index: 3; }
.wl-section-grip:hover::after { border-color: var(--bdr3); }
.wl-section-grip:hover .tx-resize-icon { color: var(--muted); }
.tp-wl-section .tp-item:hover { background: rgba(255,255,255,0.04); }
.tp-wl-section .tp-item { transition: none; }
.wl-drag-handle { display: inline-flex; align-items: center; color: var(--dim); cursor: grab; padding: 4px 2px; margin: -4px 0; }
#tlp-wl-list .tp-item:hover .wl-drag-handle { color: var(--muted); }
#tlp-wl-list { min-height: 0; overflow-y: auto; scrollbar-width: thin; scrollbar-color: var(--bdr2) transparent; overscroll-behavior: contain; }
#tlp-wl-list::-webkit-scrollbar { width: 4px; }
#tlp-wl-list::-webkit-scrollbar-track { background: transparent; }
#tlp-wl-list::-webkit-scrollbar-thumb { background: var(--bdr2); border-radius: 2px; }
#tlp-wl-list .tp-item { -webkit-user-drag: none; user-select: none; }
#tlp-wl-list .tp-item.wl-dragging { transition: transform 0.15s ease; }
#tlp-wl-list .tp-item * { -webkit-user-drag: none; }
#tlp-wl-list .tp-item.wl-dragging { position: relative; z-index: 99; opacity: 0.85; box-shadow: 0 4px 16px rgba(0,0,0,0.4); background: var(--bg3); }

/* ═══════════════════════════════════════════════════════════════
   MAIN COLUMN
   ═══════════════════════════════════════════════════════════════ */
.dash-main { flex: 1; min-width: 0; min-height: 0; display: flex; flex-direction: column; width: 100%; overflow: hidden; }

/* ═══════════════════════════════════════════════════════════════
   HEADER — token identity + live price side by side
   ═══════════════════════════════════════════════════════════════ */
/* token-header is now merged into .snap-bar — just add sticky */
.token-header {
  position: sticky;
  top: 0;
  z-index: 40;
  background: var(--bg);
}
.th-left  { display: flex; align-items: center; gap: 12px; flex: 1; min-width: 0; }
.th-icon  { width: 52px; height: 52px; border-radius: 50%; overflow: hidden; flex-shrink: 0; outline: 2px solid var(--bdr2); outline-offset: 1px; }
.th-icon img { width: 100%; height: 100%; object-fit: cover; display: block; }
.th-name  { font-family: 'Syne', sans-serif; font-size: 28px; font-weight: 700; color: var(--white); letter-spacing: -0.5px; line-height: 1; white-space: nowrap; overflow: hidden; }
.fonts-loading .th-name { visibility: hidden; }
.th-meta  { display: flex; align-items: center; gap: 8px; margin-top: 4px; }
.th-ticker { font-size: 12px; font-weight: 700; color: var(--body); letter-spacing: 2px; text-transform: uppercase; }
.th-dot   { width: 2px; height: 2px; border-radius: 50%; background: var(--bdr3); }
.th-live-pill { display: flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 700; color: var(--green); }
.th-live-dot  { width: 5px; height: 5px; border-radius: 50%; background: var(--green); flex-shrink: 0; animation: livePulse 2s ease-in-out infinite; }
#th-ca-row:hover #th-ca-val { color: var(--green) !important; }
#th-ca-row:hover #th-ca-copy { color: var(--green) !important; }
@keyframes livePulse {
  0%,100% { box-shadow: 0 0 0 0 rgba(255,176,0,0.6); }
  50%      { box-shadow: 0 0 0 4px rgba(255,176,0,0); }
}
@keyframes greenPulse {
  0%,100% { opacity: 1; }
  50%     { opacity: 0.3; }
}
.live-dot {
  display: inline-block;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: #00e5a0;
  margin-right: 6px;
  vertical-align: middle;
  animation: greenPulse 1.5s ease-in-out infinite !important;
}

/* Price + badges — right side of header */
.th-right { display: flex; align-items: center; gap: 14px; flex-shrink: 0; }
.th-price {
  font-family: 'JetBrains Mono', monospace;
  font-size: 34px; font-weight: 300;
  color: var(--white); letter-spacing: -2px; line-height: 1;
  min-height: 34px;
}
.th-badges { display: none; }

/* ═══════════════════════════════════════════════════════════════
   SNAPSHOT BAR — 4 key numbers below header, full width
   ═══════════════════════════════════════════════════════════════ */
.snap-bar {
  display: grid;
  grid-template-columns: var(--sidebar-width) 1fr 1.15fr 1fr auto;
  border-bottom: 1px solid var(--bdr);
  flex-shrink: 0;
  height: 128px;
  overflow: hidden;
  background: var(--bg);
}
/* Price cell compact — no fixed min-width */
.snap-cell.price-cell {
  padding: 14px 20px 10px 24px;
  border-right: none;
  align-items: flex-end;
  text-align: right;
  min-width: 0;
}
.snap-cell {
  padding: 16px 20px 10px 24px;
  border-right: 1px solid var(--border-subtle);
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  box-shadow: inset 0 1px 0 var(--border-subtle);
}
/* Token identity cell — matches sidebar width, uses flex row for icon+name */
.snap-cell.token-id-cell {
  padding: 0 20px 0 0;
  justify-content: center;
}
.snap-cell.token-id-cell .th-left {
  padding: 0 20px;
  gap: 12px;
}
/* Price cell: already defined in snap-bar block above */
.snap-cell:last-child { border-right: none; }
/* ── Shared section label utility ── */
.snap-label,
.dp-sec-label,
.dp-group-label,
.ns-label,
.sb-title,
.ac-label,
.dp-nav-eyebrow {
  font-size: 9px;
  font-weight: 800;
  color: var(--dim);
  text-transform: uppercase;
  letter-spacing: 1.5px;
}
/* Preserve unique overrides */
.snap-label { margin-bottom: 6px; }
.dp-nav-eyebrow { color: var(--green); opacity: 0.7; margin-bottom: 8px; }
.snap-value {
  font-family: 'JetBrains Mono', monospace;
  font-size: 28px; font-weight: 300;
  color: var(--white); letter-spacing: -1.5px; line-height: 1;
}
.snap-sub { font-size: 12px; color: var(--dim); margin-top: 4px; }
/* P/NAV gets color emphasis */
.snap-cell.pnav { background: var(--bg2); }
.snap-cell.pnav .snap-value { font-size: 30px; font-weight: 300; letter-spacing: -2px; }
.snap-cell.pnav .snap-value.above { color: var(--green); }
.snap-cell.pnav .snap-value.below { color: var(--red); }

/* ═══════════════════════════════════════════════════════════════
   CONTENT BODY — chart col only (right panel is outer sibling)
   ═══════════════════════════════════════════════════════════════ */
.token-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}
.token-chart-col {
  min-width: 0;
  display: flex; flex-direction: column;
  overflow: hidden;
  flex: 1;
}
.token-stats-col {
  width: var(--right-panel-width);
  flex-shrink: 0;
  background: var(--bg2);
  border-left: 1px solid var(--bdr);
  overflow-x: hidden;
  overflow-y: visible;
  display: flex;
  flex-direction: column;
  box-shadow: -1px 0 0 var(--border-subtle), -2px 0 8px rgba(0,0,0,0.3);
}
.token-stats-col * { max-width: 100%; box-sizing: border-box; }
.token-stats-col [style*="grid-template-columns"] > div { min-width: 0; overflow: visible; }
#rp-pair-val, #rp-pair-val * { max-width: none !important; box-sizing: content-box !important; }
#rp-pair-val .pair-coin { display: inline-block !important; width: 22px !important; height: 22px !important; min-width: 22px !important; min-height: 22px !important; border-radius: 50% !important; overflow: hidden !important; border: 1.5px solid var(--bdr2) !important; background: var(--bg3) !important; flex-shrink: 0; position: relative; }
#rp-pair-val .pair-coin img { display: block !important; width: 22px !important; height: 22px !important; min-width: 22px !important; min-height: 22px !important; border-radius: 50% !important; object-fit: cover !important; }
.rp-scroll {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: thin;
  scrollbar-color: var(--bdr3) transparent;
  overscroll-behavior: none;
}
.rp-scroll::-webkit-scrollbar { width: 3px; }
.rp-scroll::-webkit-scrollbar-track { background: transparent; }
.rp-scroll::-webkit-scrollbar-thumb { background: var(--bdr3); border-radius: 2px; }
#decision-markets-section.dm-live {
  position: sticky;
  top: 0;
  z-index: 3;
  background: var(--bg2);
}

/* On token pages: pull stats col out of scroll context so it can overlap the topnav row */
body.is-token .token-stats-col {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  height: auto;
  z-index: 5;
}
/* Prevent chart content from rendering behind the stats col */
body.is-token .app-content { margin-right: var(--right-panel-width); display: flex; flex-direction: column; overflow: hidden; }

/* ═══════════════════════════════════════════════════════════════
   CHART
   ═══════════════════════════════════════════════════════════════ */
.chart-section { flex: 1 1 0; display: flex; flex-direction: column; min-height: 280px; overflow: hidden; }
.chart-topbar {
  display: flex; align-items: center; justify-content: flex-end;
  padding: 0 16px;
  height: 50px;
  border-bottom: 1px solid var(--bdr);
  gap: 8px; flex-wrap: wrap; flex-shrink: 0; box-sizing: border-box;
}
.chart-label { font-size: 12px; font-weight: 700; color: var(--dim); text-transform: uppercase; letter-spacing: 2px; }
.chart-controls { display: flex; gap: 1px; align-items: center; }
.chart-controls + .chart-controls { margin-left: 6px; padding-left: 8px; border-left: 1px solid var(--bdr); }
.cbtn { display: flex; align-items: center; justify-content: center; min-width: 40px; box-sizing: border-box; font-family: 'Geist Sans', sans-serif; font-size: 12px; font-weight: 500; padding: 0 9px; height: 100%; border-radius: 4px; border: none; background: transparent; color: var(--dim); cursor: pointer; transition: all 0.15s ease; }
.cbtn:active { transform: none !important; }
.cbtn-icon { padding: 4px 6px; display: flex; align-items: center; justify-content: center; }
.candle-icon {
  width: 16px;
  height: 16px;
  display: block;
  flex: 0 0 auto;
  background: currentColor;
  -webkit-mask: url('logos/candles-icon.png') center / contain no-repeat;
  mask: url('logos/candles-icon.png') center / contain no-repeat;
}
.nav-action-controls {
  display: grid;
  grid-template-columns: repeat(3, 26px);
  column-gap: 6px;
  align-items: center;
}
.nav-action-btn {
  width: 26px;
  height: 26px;
  padding: 0;
  margin: 0;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--bdr2);
  border-radius: 4px;
  background: var(--bg);
  color: var(--dim);
  cursor: pointer;
  transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}
.nav-action-btn svg {
  width: 14px;
  height: 14px;
  min-width: 14px;
  flex: 0 0 auto;
  display: block;
}
.nav-action-btn:hover {
  color: var(--body);
  border-color: var(--bdr3);
}
.nav-action-btn:active {
  transform: scale(0.97);
}
.nav-action-btn.on {
  color: var(--white);
  background: var(--bg3);
  border-color: var(--bdr2);
}
.nav-action-btn.disabled {
  opacity: 0.25;
  pointer-events: none;
  cursor: default;
}
.layer-btn { display: inline-flex; align-items: center; justify-content: center; padding: 0 8px; height: 28px; border-radius: 4px; border: 1px solid var(--bdr2); background: var(--bg); cursor: pointer; font-family: 'Geist Sans', sans-serif; font-size: 12px; font-weight: 500; color: var(--dim); transition: all 0.15s ease; }
.layer-btn:hover { color: var(--body); border-color: var(--bdr3); }
.layer-btn:active { transform: scale(0.97) !important; }
.chart-pill-btn:active { transform: scale(0.93) !important; }
.layer-btn.on { color: var(--white); background: var(--bg3); border-color: var(--bdr2); }
.layer-btn.disabled { opacity: 0.25; pointer-events: none; cursor: default; }
.chart-topbar .layer-btn:focus,
.chart-topbar .layer-btn:focus-visible,
.chart-topbar .cbtn:focus,
.chart-topbar .cbtn:focus-visible {
  outline: none;
  box-shadow: none;
}
#btn-log-scale.on, #btn-focus-scale.on, #btn-fit-view.on { color: var(--white); }
#btn-collapse-stats,
#btn-collapse-stats:focus,
#btn-collapse-stats:focus-visible {
  box-shadow: none;
  outline: none;
}
#btn-collapse-stats:active { transform: none !important; }

/* Chart type pill toggle */
.chart-pill { display: inline-flex; align-items: center; border-radius: 6px; border: 1px solid var(--bdr2); background: var(--bg); padding: 2px; gap: 0; height: 28px; box-sizing: border-box; }
.chart-pill-btn { display: flex; align-items: center; justify-content: center; width: 34px; height: 100%; border-radius: 4px; border: none; background: transparent; cursor: pointer; color: var(--dim); transition: all 0.15s ease; }
.chart-pill-btn:hover { color: var(--body); }
.chart-pill-btn.on { background: var(--bg3); color: var(--white); }
#lw-chart-container:not(.chart-ready) #overlay-collapse-btns { display: none !important; }

/* Fullscreen button */
.chart-fs-btn { display: flex; align-items: center; justify-content: center; width: 34px; height: 28px; border-radius: 4px; border: 1px solid var(--bdr2); background: var(--bg); cursor: pointer; color: var(--dim); transition: all 0.12s; }
.chart-fs-btn:hover { color: var(--body); border-color: var(--bdr3); }
.chart-fs-btn.active { background: var(--bg3); color: var(--white); }

/* Chart expanded (fills page) */
.token-chart-col.chart-expanded { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; z-index: var(--z-modal); background: var(--bg); overflow: hidden; border: none; }
.token-chart-col.chart-expanded .tx-resize-handle,
.token-chart-col.chart-expanded .tx-table-wrap,
.token-chart-col.chart-expanded .footer { display: none !important; }
.token-chart-col.chart-expanded .chart-body { flex: 1; }
.token-chart-col.chart-expanded ~ .footer { display: none !important; }
body.chart-fs .bb-tape { display: none !important; }
body.chart-fs .bloomberg-status { display: none !important; }
.cbtn:hover { color: var(--body); }
.cbtn.active { color: var(--white); background: var(--bg3); font-weight: 500; }
.cbtn.disabled { opacity: 1; pointer-events: none; cursor: default; color: #4d4d4d; background: #050505; box-shadow: inset 0 0 0 1px rgba(255,255,255,0.04); }
button:active:not(.disabled):not([disabled]) { transform: scale(0.97); }
.chart-body { flex: 1; padding: 0; min-height: 180px; position: relative; overflow: hidden; display: flex; flex-direction: column; }
#lw-chart-container { flex: 1; min-height: 150px; position: relative; cursor: default; }
#proposal-marker-layer { position: absolute; inset: 0; z-index: 3; pointer-events: none; }
.proposal-marker-link {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: auto;
  border-radius: 4px;
  cursor: pointer;
  background: transparent;
  border: 0;
  padding: 0;
}
.proposal-event-bubble {
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  transition: transform 0.12s ease, border-color 0.12s ease;
}
.buyback-event-bubble {
  color: #fff;
}
.buyback-end-event-bubble {
  color: #fff;
}
.restructuring-event-bubble {
  color: #fff;
}
.liquidation-event-bubble {
  color: #fff;
}
.proposal-event-symbol {
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  filter: none;
}
.buyback-event-bubble .proposal-event-symbol {
  color: #fff;
}
.buyback-end-event-bubble .proposal-event-symbol {
  color: #fff;
}
.restructuring-event-bubble .proposal-event-symbol {
  color: #fff;
}
.liquidation-event-bubble .proposal-event-symbol {
  color: #fff;
}
.proposal-event-symbol svg {
  width: 34px;
  height: 34px;
  display: block;
  fill: none;
  stroke: none;
  stroke-width: 2.3;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.proposal-event-img {
  width: 34px;
  height: 34px;
  display: block;
  object-fit: contain;
}
.failed-proposal-event-bubble {
  filter: drop-shadow(0 0 5px rgba(255, 51, 51, 0.9));
}
.failed-proposal-event-bubble .proposal-event-symbol,
.failed-proposal-event-bubble .proposal-event-img {
  width: 40px;
  height: 40px;
}
.proposal-marker-link:hover .proposal-event-bubble,
.proposal-marker-link:focus-visible .proposal-event-bubble {
  transform: translateY(-1px);
}
.proposal-marker-link:focus-visible {
  outline: 1px solid rgba(255,204,0,0.7);
  outline-offset: 2px;
}

/* Hide LWC's built-in attribution — we render our own */
a#tv-attr-logo { display: none !important; }
/* Custom TV attribution circle — DexScreener style */
.tv-logo-circle {
  position: absolute;
  bottom: 38px;
  left: 12px;
  z-index: 4;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,0.18);
  background: #14141e;
  opacity: 1;
  transition: opacity 0.2s;
  text-decoration: none;
}
.tv-logo-circle:hover { opacity: 1; }
.tv-logo-circle svg { width: 22px; height: 12px; }

@keyframes pulse-dot {
  0%, 100% { box-shadow: 0 0 4px 0 rgba(255,255,255,0.40); }
  50%      { box-shadow: 0 0 14px 3px rgba(255,255,255,0.65); }
}
@keyframes pulse-dot-green {
  0%, 100% { box-shadow: 0 0 4px 0 rgba(0,229,160,0.40); }
  50%      { box-shadow: 0 0 14px 3px rgba(0,229,160,0.70); }
}
@keyframes chart-loading-sweep {
  0% {
    opacity: 1;
    clip-path: inset(0 100% 0 0);
  }
  100% {
    opacity: 1;
    clip-path: inset(0 28% 0 0);
  }
}
@keyframes chart-loading-finish {
  0% {
    opacity: 0.9;
    clip-path: inset(0 var(--chart-loading-finish-start, 28%) 0 0);
  }
  100% {
    opacity: 1;
    clip-path: inset(0 0 0 0);
  }
}
@keyframes chart-loading-pending {
  0% {
    clip-path: inset(0 28% 0 0);
  }
  42% {
    clip-path: inset(0 18% 0 0);
  }
  72% {
    clip-path: inset(0 12% 0 0);
  }
  100% {
    clip-path: inset(0 8% 0 0);
  }
}
@keyframes chart-loading-fade-out {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
@keyframes chart-loading-soft-pulse {
  0%, 100% {
    opacity: 0.9;
  }
  50% {
    opacity: 0.58;
  }
}
.chart-loading {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: flex;
  align-items: stretch;
  justify-content: stretch;
  background: #000;
  color: var(--muted);
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  pointer-events: none;
  overflow: hidden;
}
.chart-loading-shell {
  position: absolute;
  inset: 24px 54px 28px 16px;
}
.chart-loading-grid {
  position: absolute;
  inset: 0;
  border-left: 1px solid rgba(255,255,255,0.055);
  border-bottom: 1px solid rgba(255,255,255,0.06);
  background-image:
    linear-gradient(to right, rgba(255,255,255,0.038) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255,255,255,0.038) 1px, transparent 1px);
  background-size: 9.1% 100%, 100% 20%;
  opacity: 0.92;
}
.chart-loading-grid::after {
  content: "";
  position: absolute;
  top: 0;
  right: -34px;
  bottom: 0;
  width: 22px;
  background:
    linear-gradient(to bottom,
      rgba(255,255,255,0.06) 0 2px,
      transparent 2px 20%);
  background-size: 100% 20%;
  opacity: 0.78;
}
.chart-loading-traces {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  clip-path: inset(0 100% 0 0);
  animation:
    chart-loading-sweep 1.25s linear 120ms forwards,
    chart-loading-pending 6s cubic-bezier(0.12, 0.84, 0.22, 1) 1.37s forwards,
    chart-loading-soft-pulse 2.4s ease-in-out 1.6s infinite;
}
.chart-loading.chart-loading-complete {
  animation: chart-loading-fade-out 180ms ease 220ms forwards;
}
.chart-loading.chart-loading-complete .chart-loading-traces {
  animation: chart-loading-finish 220ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
.chart-loading-trace {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}
.chart-loading-trace.price {
  stroke: rgba(164,174,182,0.72);
  stroke-width: 2.25;
}
.chart-loading-trace.nav {
  stroke: rgba(222,190,82,0.56);
  stroke-width: 2.1;
}
.chart-loading-copy {
  position: absolute;
  top: -4px;
  left: 12px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: #8a8a8a;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.06em;
  line-height: 1;
  text-transform: uppercase;
  text-shadow: 0 1px 4px #000;
}
.chart-loading-spinner { flex: 0 0 auto; animation: tss-spin .8s linear infinite !important; }
#live-dot-nav, #live-dot-price, #live-dot-forecast { box-shadow: 0 0 10px rgba(200,216,228,0.35); }
#live-dot-nav[data-momentum="up"], #live-dot-nav[data-momentum="down"], #live-dot-forecast[data-momentum="up"], #live-dot-forecast[data-momentum="down"] { background: #ffcc00 !important; box-shadow: 0 0 10px rgba(255,204,0,0.38); }
#live-dot-price[data-momentum="up"], #live-dot-price[data-momentum="down"] { background: #c8d8e4 !important; box-shadow: 0 0 10px rgba(200,216,228,0.35); }
#live-dot-nav[data-momentum="flat"], #live-dot-forecast[data-momentum="flat"] { background: #ffcc00 !important; box-shadow: 0 0 10px rgba(255,204,0,0.38); }
#live-dot-price[data-momentum="flat"] { background: #c8d8e4 !important; box-shadow: 0 0 10px rgba(200,216,228,0.35); }
#live-dot-price.buyback-active, #live-dot-price.buyback-active[data-momentum="up"], #live-dot-price.buyback-active[data-momentum="down"], #live-dot-price.buyback-active[data-momentum="flat"] { background: #00cc66 !important; box-shadow: 0 0 10px rgba(0,204,102,0.35) !important; border: none !important; outline: none !important; animation: none !important; }
#live-dot-nav::after, #live-dot-price::after, #live-dot-forecast::after {
  position: absolute;
  left: 9px;
  top: -6px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  opacity: 0.9;
  text-shadow: 0 1px 3px #000;
}
#live-dot-nav[data-momentum="up"]::after, #live-dot-price[data-momentum="up"]::after, #live-dot-forecast[data-momentum="up"]::after { content: ""; color: var(--up); }
#live-dot-nav[data-momentum="down"]::after, #live-dot-price[data-momentum="down"]::after, #live-dot-forecast[data-momentum="down"]::after { content: ""; color: var(--down); }
.live-value-badge {
  position: absolute;
  transform: translate(24px, -50%);
  z-index: 2;
  display: none;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 46px;
  padding: 4px 0;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(0,0,0,0.82);
  color: var(--bright);
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1;
  pointer-events: none;
  white-space: nowrap;
  box-shadow: 0 2px 10px rgba(0,0,0,0.35);
  text-align: center;
}
.live-value-badge.price { border-color: rgba(200,216,228,0.22); color: #c8d8e4; }
.live-value-badge.nav { border-color: rgba(255,204,0,0.28); color: #ffcc00; }
.live-value-badge.pnav { border-color: rgba(255,176,0,0.28); color: #FFB000; }
.chart-legend { display: block; gap: 14px; padding: 8px 180px 12px 24px; font-size: 12px; color: var(--dim); flex-shrink: 0; align-items: center; border-bottom: 1px solid var(--bdr); flex-wrap: wrap; position: relative; min-height: 62px; }
.leg-item { display: flex; align-items: center; gap: 5px; }
#chart-legend-items { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; min-height: 40px; align-content: flex-start; }
#chart-legend-actions { display: flex; gap: 6px; position: absolute; top: 8px; right: 16px; }
.leg-line { width: 14px; height: 2px; border-radius: 1px; }
.leg-line-dotted { width: 18px; height: 2px; background: repeating-linear-gradient(to right, #ffcc00 0px, #ffcc00 2px, transparent 2px, transparent 4px); }
.leg-dash { width: 14px; height: 2px; background: repeating-linear-gradient(to right, rgba(255,255,255,0.35) 0, rgba(255,255,255,0.35) 3px, transparent 3px, transparent 6px); }

/* ═══════════════════════════════════════════════════════════════
   TRANSACTIONS TABLE (DexScreener-style)
   ═══════════════════════════════════════════════════════════════ */

/* Resize handle between chart and table */
.tx-resize-handle {
  height: 2px;
  cursor: ns-resize;
  flex-shrink: 0;
  background: var(--bdr);
  transition: background 0.15s;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
.tx-resize-handle::after {
  content: '';
  position: absolute;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--bg3);
  border: 1px solid var(--bdr2);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.tx-resize-icon {
  position: absolute;
  z-index: 1;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: var(--dim);
  pointer-events: none;
}
.tx-resize-handle:hover { background: var(--bdr3); }
.tx-resize-handle:hover::after { border-color: var(--bdr3); }
.tx-resize-handle:hover .tx-resize-icon { color: var(--muted); }

/* Table container */
.tx-table-wrap {
  flex: none;
  height: 120px;
  min-height: 120px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  background: var(--bg);
}

/* Table header */
.tx-table-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 16px;
  border-bottom: 1px solid var(--bdr);
  flex-shrink: 0;
}
.tx-table-title {
  font: 600 11px/1 'Syne', sans-serif;
  color: var(--bright);
  letter-spacing: 0.3px;
}

/* Scrollable table body */
.tx-table-scroll {
  flex: 1;
  overflow-y: auto;
  overflow-x: auto;
}
.tx-table-scroll::-webkit-scrollbar { width: 4px; height: 4px; }
.tx-table-scroll::-webkit-scrollbar-thumb { background: var(--bdr3); border-radius: 2px; }

/* Table */
.tx-table {
  width: 100%;
  min-width: 580px;
  border-collapse: collapse;
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
}
.tx-table thead {
  position: sticky;
  top: 0;
  background: var(--bg);
  z-index: 2;
}
.tx-table thead th {
  position: relative;
  z-index: 2;
}
.tx-table th {
  padding: 6px 8px;
  text-align: right;
  font-size: 12px;
  font-weight: 600;
  color: var(--dim);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  border-bottom: 1px solid var(--bdr);
  border-right: 1px solid var(--bdr);
  white-space: nowrap;
  background: var(--bg);
}
.tx-table th:first-child { text-align: left; padding-left: 12px; }
.tx-table th:last-child { padding-right: 12px; border-right: none; }
.tx-table tbody tr {
  border-bottom: 1px solid var(--bdr);
  transition: background 0.1s;
}
.tx-table tbody tr:hover { background: var(--bg2); }
.tx-table td {
  padding: 5px 8px;
  text-align: right;
  color: var(--body);
  white-space: nowrap;
  border-right: 1px solid var(--bdr);
}
.tx-table td:first-child { text-align: left; padding-left: 12px; }
.tx-table td:last-child { padding-right: 12px; text-align: center; border-right: none; }

/* Row colors based on type */
.tx-table tr.tx-buy td { color: #00cc66; }
.tx-table tr.tx-sell td { color: var(--red); }

/* USD column gradient bar */
.tx-col-usd { position: relative; }
.tx-col-usd .tx-bar { position: absolute; top: 0; bottom: 0; left: 0; pointer-events: none; }
.tx-buy .tx-col-usd .tx-bar { background: linear-gradient(to right, rgba(0,204,102,0.15), transparent); }
.tx-sell .tx-col-usd .tx-bar { background: linear-gradient(to right, rgba(251,113,133,0.15), transparent); }
.tx-col-usd .tx-val { position: relative; z-index: 1; }

/* Specific column styling */
.tx-col-date { color: var(--dim) !important; font-size: 12px; }
.tx-col-type { font-weight: 600; text-transform: uppercase; font-size: 12px; }
.tx-col-maker { color: var(--muted) !important; }
.tx-col-txn a { color: var(--dim); transition: color 0.15s; }
.tx-col-txn a:hover { color: var(--blue); }

/* Filter pills */
.tx-filter-pills { display: flex; gap: 2px; }
.tx-filter-btn { background: none; border: 1px solid var(--bdr); color: var(--dim); font: 500 9px/1 'Geist Sans', sans-serif; padding: 3px 8px; border-radius: 4px; cursor: pointer; transition: all 0.15s; }
.tx-filter-btn:hover { color: var(--muted); border-color: var(--bdr2); }
.tx-filter-btn.on { background: var(--bg3); color: var(--bright); border-color: var(--bdr3); }

/* Filter visibility */
.tx-table.tx-filter-buy .tx-sell { display: none; }
.tx-table.tx-filter-sell .tx-buy { display: none; }

/* Tooltip */


.refresh-btn {
  display: flex; align-items: center; justify-content: center;
  width: 20px; height: 20px; border: none; background: transparent;
  color: var(--dim); cursor: pointer; border-radius: 4px; padding: 0;
  transition: color 0.15s, background 0.15s; flex-shrink: 0; margin-left: 6px;
}
.refresh-btn:hover { color: var(--bright); background: rgba(255,255,255,0.06); }
.refresh-btn.spinning svg { animation: spin 0.7s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

/* Snapshot info popup — styled to match the .stat-tip info tooltip. */
.nav-snap-info {
  display: none; flex-direction: column; align-items: flex-start;
  gap: 2px;
  font-family: 'Geist Sans', sans-serif;
  font-size: 12px; font-weight: 400; line-height: 1.5;
  color: var(--bright);
  letter-spacing: 0;
  position: fixed;
  z-index: var(--z-tooltip);
  background: var(--bg4);
  border: 1px solid var(--bdr2);
  padding: 7px 10px;
  border-radius: 6px;
  box-shadow: 0 0 0 1px var(--border-subtle), 0 4px 16px rgba(0,0,0,0.4), 0 1px 2px rgba(0,0,0,0.2);
  white-space: nowrap;
  text-align: left;
}
.nav-snap-info.is-open { display: flex; }
.nav-snap-row { color: var(--bright); }
.nav-snap-row-sub { color: var(--bright); }
.nav-snap-info #nav-snap-age, .nav-snap-info #nav-snap-next {
  color: var(--bright); font-weight: 400;
  font-family: 'Geist Sans', sans-serif;
  letter-spacing: 0;
}
.nav-snap-info.is-status-ok .nav-snap-row { color: #00cc66; }
.nav-snap-info.is-status-err .nav-snap-row { color: var(--red); }
.nav-snap-info.is-status-busy .nav-snap-row { color: var(--bright); }
.nav-snap-info.is-late #nav-snap-next { color: var(--red); }
.nav-snap-btn {
  position: absolute; top: 6px; right: 6px;
  display: flex; align-items: center; justify-content: center;
  width: 18px; height: 18px;
  border: 1px solid var(--bdr2); background: transparent;
  color: var(--muted); cursor: pointer; padding: 0;
  transition: color 0.15s, background 0.15s, border-color 0.15s;
}
.nav-snap-btn:hover { color: var(--bright); background: rgba(255,255,255,0.05); border-color: var(--bdr3); }
.nav-snap-btn.spinning svg { animation: spin 0.7s linear infinite; }
.nav-snap-btn:disabled, .nav-snap-btn.is-disabled { opacity: 0.35; cursor: not-allowed; pointer-events: none; }

/* ═══════════════════════════════════════════════════════════════
   NAV HISTORY (rendered by JS into #nav-stats-outer)
   ═══════════════════════════════════════════════════════════════ */
.nav-stats-bar { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--bdr); flex-shrink: 0; }
.nav-stats-bar .ns-col { border-right: 1px solid var(--bdr); }
.nav-stats-bar .ns-col:last-child { border-right: none; }
.nav-stats-bar .ns-col .ns-item:first-child { border-bottom: 1px solid var(--bdr); }
.ns-item { padding: 5px 14px 6px 16px; text-align: center; }
.ns-label { font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 2px; color: var(--body); margin-bottom: 2px; }
.ns-value { font-family: 'JetBrains Mono', monospace; font-size: 14px; font-weight: 300; letter-spacing: -0.5px; margin-bottom: 1px; }
.ns-sub { font-size: 12px; color: var(--dim); margin-top: 1px; }
.ns-progress { height: 2px; border-radius: 1px; margin-top: 4px; background: rgba(255,255,255,0.05); overflow: hidden; }
.ns-progress-fill { height: 100%; border-radius: 1px; }
.ns-above .ns-label { color: #00cc66; }
.ns-above .ns-value { color: #00cc66; }
.ns-below .ns-label { color: var(--red); }
.ns-below .ns-value { color: var(--red); }
.ns-neutral .ns-label { color: var(--dim); }
.ns-neutral .ns-value { color: var(--bright); }

/* ═══════════════════════════════════════════════════════════════
   BOTTOM SECTIONS — addresses, allowance
   ═══════════════════════════════════════════════════════════════ */
.section-block { border-top: 1px solid var(--bdr); flex-shrink: 0; }
.sb-header { display: flex; align-items: center; justify-content: space-between; padding: 9px 24px; border-bottom: 1px solid var(--bdr); }
.sb-title { font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 2px; color: var(--body); }
.sb-sub   { font-size: 12px; color: var(--dim); }
.addr-inner { padding: 0 18px; }
.addr-row { display: flex; align-items: center; justify-content: space-between; padding: 6px 0; border-bottom: 1px solid rgba(255,255,255,0.03); gap: 8px; }
.addr-row:last-child { border-bottom: none; }
.addr-expandable { cursor: pointer; }
.addr-expandable:hover { background: rgba(255,255,255,0.02); border-radius: 4px; }
.addr-label { color: var(--muted); font-weight: 500; font-size: 12px; flex-shrink: 0; }
.addr-val { display: flex; align-items: center; gap: 6px; }
.addr-val a { color: var(--body); text-decoration: none; font-family: 'JetBrains Mono', monospace; font-size: 12px; transition: color 0.15s; white-space: nowrap; }
.addr-val a:hover { color: var(--green); }
#th-ca-row:active { transform: scale(0.97); }
.addr-copy { background: none; border: none; color: var(--dim); padding: 2px; cursor: pointer; transition: color 0.15s; display: inline-flex; align-items: center; flex-shrink: 0; }
.addr-copy:hover, .addr-copy.copied { color: var(--green); }

.bal-sep { color: var(--bdr2); }
.allowance-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); }
.allowance-card { padding: 12px 20px; border-right: 1px solid var(--bdr); border-top: 1px solid var(--bdr); }
.allowance-card:last-child { border-right: none; }
.ac-label { margin-bottom: 4px; }
.ac-value { font-family: 'JetBrains Mono', monospace; font-size: 15px; font-weight: 300; color: var(--bright); }
.ac-sub   { font-size: 12px; color: var(--dim); margin-top: 2px; }
.util-bar { height: 2px; border-radius: 1px; background: var(--bdr); margin-top: 6px; overflow: hidden; }
.util-fill { height: 100%; border-radius: 1px; }
.allowance-history { padding: 10px 24px; border-top: 1px solid var(--bdr); }
.allowance-month { display: flex; align-items: center; gap: 10px; padding: 4px 8px; border-radius: 4px; position: relative; overflow: hidden; margin-bottom: 2px; }
.am-bar-bg { position: absolute; left: 0; top: 0; height: 100%; border-radius: 4px; opacity: 0.08; pointer-events: none; }
.am-label { color: var(--body); font-size: 12px; min-width: 52px; font-family: 'JetBrains Mono', monospace; position: relative; }
.am-pct   { color: var(--bright); font-size: 12px; min-width: 38px; text-align: right; font-family: 'JetBrains Mono', monospace; font-weight: 500; position: relative; }
.am-amount { color: var(--muted); font-size: 12px; font-family: 'JetBrains Mono', monospace; position: relative; margin-left: auto; }

/* Holders section */
.hldr-summary {
  display: grid; grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--bdr); border-bottom: 1px solid var(--bdr);
}
.hldr-stat {
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  padding: 10px 0;
}
.hldr-stat + .hldr-stat { border-left: 1px solid var(--bdr); }
.hldr-stat-val {
  font-family: 'JetBrains Mono', monospace; font-size: 14px; font-weight: 500;
  color: var(--bright);
}
.hldr-stat-label { font-size: 9px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--dim); }
.hldr-distro-wrap { padding: 10px 18px 8px; }
.hldr-distro-bar {
  display: flex; height: 6px; border-radius: 3px; overflow: hidden;
  background: var(--bdr);
}
.hldr-seg { height: 100%; transition: width 0.5s ease; }
.hldr-seg-whale { background: var(--green); border-radius: 3px 0 0 3px; }
.hldr-seg-mid { background: var(--blue); }
.hldr-seg-retail { background: var(--dim); border-radius: 0 3px 3px 0; }
.hldr-distro-legend {
  display: flex; gap: 12px; margin-top: 6px; justify-content: center;
}
.hldr-legend-item { font-size: 10px; color: var(--muted); display: flex; align-items: center; gap: 4px; }
.hldr-legend-dot { width: 6px; height: 6px; border-radius: 50%; display: inline-block; }
.hldr-conc { padding: 8px 18px 10px; }
.hldr-conc-row { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 3px; }
.hldr-conc-label { font-size: 12px; color: var(--muted); }
.hldr-conc-val { font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--body); }
.hldr-conc-bar-track { height: 3px; background: var(--bdr2); border-radius: 2px; overflow: hidden; }
.hldr-conc-bar-fill {
  height: 100%; border-radius: 2px; width: 0%;
  background: var(--green); transition: width 0.5s ease;
}
.hldr-conc-bar-20 { background: var(--blue); }
.hldr-group-label { text-align: center; }
.hldr-list { padding: 6px 18px 4px; }
.hldr-row {
  display: flex; align-items: center; gap: 8px; padding: 4px 0;
  border-bottom: 1px solid var(--bdr);
}
.hldr-row:last-child { border-bottom: none; }
.hldr-rank {
  font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--dim);
  min-width: 18px; text-align: right;
}
.hldr-rank-top { color: var(--green); }
.hldr-entity {
  display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
  min-width: 0; flex-shrink: 1;
}
.hldr-addr {
  font-family: 'IBM Plex Mono', monospace; font-size: 12px; color: var(--muted);
  text-decoration: none; flex-shrink: 0;
}
.hldr-addr:hover { color: var(--bright); }
.hldr-tag {
  display: inline-flex; align-items: center;
  padding: 2px 6px;
  border: 1px solid rgba(255, 176, 0, 0.24);
  border-radius: 999px;
  background: rgba(255, 176, 0, 0.08);
  color: #ffcc00;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  white-space: nowrap;
}
.hldr-bar-wrap { flex: 1; height: 3px; background: var(--bdr); border-radius: 2px; overflow: hidden; min-width: 30px; }
.hldr-bar-fill { height: 100%; background: var(--green); border-radius: 2px; opacity: 0.6; }
.hldr-pct {
  font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--body);
  min-width: 42px; text-align: right;
}
.hldr-toggle-btn {
  display: flex; align-items: center; justify-content: center; gap: 4px;
  width: 100%; padding: 6px 0; background: none; border: none; border-top: 1px solid var(--bdr);
  font-size: 11px; color: var(--dim); cursor: pointer; font-family: 'Geist', sans-serif;
  transition: color 0.15s;
}
.hldr-toggle-btn:hover { color: var(--muted); }
.hldr-toggle-btn svg { transition: transform 0.2s; }
.hldr-toggle-btn.expanded svg { transform: rotate(180deg); }
.hldr-error {
  display: none;
  padding: 12px 18px;
  text-align: center;
  color: var(--dim);
  font-size: 11px;
  border-top: 1px solid var(--bdr);
}

/* ═══════════════════════════════════════════════════════════════
   RIGHT PANEL IDENTITY STRIP
   ═══════════════════════════════════════════════════════════════ */
/* Identity hero — logo + name, matches snap-bar height */
/* Option A: tinted via/on strip on top, hero row below */
.rp-via-strip {
  flex-shrink: 0;
  height: 42px;
  border-bottom: 1px solid var(--bdr);
  padding: 0 16px;
  display: flex; align-items: center; justify-content: center; gap: 8px;
  background: var(--bg2);
  box-sizing: border-box;
}
.rp-action-bar {
  display: flex;
  gap: 8px;
  padding: 10px 18px;
  border-bottom: 1px solid var(--bdr);
  flex-shrink: 0;
  background: var(--bg);
}
.rp-action-btn {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 6px 14px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.5px;
  cursor: pointer;
  border: 1px solid var(--bdr2);
  background: var(--bg3);
  color: var(--body);
  transition: color 0.15s, border-color 0.15s, background 0.15s;
}
.rp-action-btn:hover { border-color: var(--bdr3); color: var(--white); }
.rp-action-btn.watched { color: var(--green); border-color: rgba(255,176,0,0.3); background: rgba(255,176,0,0.06); }
.rp-action-btn.disabled {
  color: var(--bdr3);
  border-color: var(--bdr);
  cursor: not-allowed;
  background: var(--bg2);
}

/* Trading Activity Panel */
.ta-panel { padding: 10px 18px 14px; border-bottom: 1px solid var(--bdr); }
.ta-pair-bar { display: flex; align-items: center; justify-content: space-between; background: var(--bg); border: 1px solid var(--bdr2); border-radius: 8px; padding: 8px 12px; margin-bottom: 12px; }
.ta-pair-bar button:hover { color: var(--white); border-color: var(--muted); }
.ta-pair-icons { position: relative; width: 36px; height: 24px; flex-shrink: 0; }
.ta-pair-icon-base { position: absolute; left: 0; top: 0; width: 24px; height: 24px; border-radius: 50%; object-fit: cover; z-index: 2; box-shadow: 0 0 0 2px var(--dim); background: var(--bg3); }
.ta-pair-icon-quote { position: absolute; left: 14px; top: 0; width: 24px; height: 24px; border-radius: 50%; object-fit: cover; z-index: 1; border: 2px solid var(--bg); }
.ta-tf-row { display: flex; border: 1px solid var(--bdr2); border-radius: 8px; overflow: hidden; margin-bottom: 0; }
.ta-tf-tab { flex: 1; text-align: center; padding: 10px 4px 8px; cursor: pointer; border-right: 1px solid var(--bdr2); transition: background 0.12s; }
.ta-tf-tab:last-child { border-right: none; }
.ta-tf-tab:hover { background: rgba(255,255,255,0.03); }
.ta-tf-tab.active { background: var(--bg3); }
.ta-tf-label { font-size: 12px; font-weight: 600; color: var(--dim); letter-spacing: 0.5px; margin-bottom: 4px; }
.ta-tf-tab.active .ta-tf-label { color: var(--white); }
.ta-tf-val { font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 500; }
.ta-fut-row { display: flex; justify-content: space-between; margin-top: 14px; }
.ta-fut-label { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 1px; color: var(--dim); margin-bottom: 3px; }
.ta-fut-val { font-family: 'JetBrains Mono', monospace; font-size: 15px; font-weight: 600; color: var(--white); }

.rp-identity {
  flex-shrink: 0;
  border-bottom: 1px solid var(--bdr);
  padding: 0 18px;
  height: 96px;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 14px;
  box-sizing: border-box;
  background: var(--bg);
}
.rp-pills {
  display: flex;
  align-items: center;
  gap: 10px;
  justify-content: center;
}
.rp-id-item {
  display: flex;
  flex-direction: column;
  align-items: center;
}
/* Hero bottom row: big icon + name */
.rp-hero-bottom {
  display: flex;
  align-items: center;
  gap: 12px;
}
.rp-id-logo {
  width: 22px; height: 22px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  background: var(--bg4);
  border: 1px solid var(--bdr2);
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 800;
  color: var(--white);
  font-family: 'Syne', sans-serif;
  position: relative;
}
.rp-id-logo[data-label]:hover::after {
  content: attr(data-label);
  position: absolute;
  right: calc(100% + 6px);
  top: 50%;
  transform: translateY(-50%);
  background: var(--bg3);
  color: var(--body);
  font-size: 12px;
  font-weight: 500;
  padding: 2px 6px;
  border-radius: 4px;
  white-space: nowrap;
  border: 1px solid var(--bdr);
  pointer-events: none;
  z-index: 10;
}
.rp-token-icon {
  width: 22px; height: 22px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  background: var(--bg4);
  border: 1px solid var(--bdr2);
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 800; font-family: 'Syne', sans-serif;
  color: var(--white);
}
.rp-token-icon img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rp-id-label { display: none; }
.rp-via {
  font-size: 12px;
  color: var(--bright);
  flex-shrink: 0;
}
.rp-launchpad-logo {
  background: rgba(255,176,0,0.08);
  border-color: rgba(255,176,0,0.2);
  color: var(--green);
}
.rp-contract {
  display: flex;
  align-items: center;
  gap: 7px;
}
.rp-contract-label {
  font-size: 9px; font-weight: 800;
  color: var(--dim);
  text-transform: uppercase;
  letter-spacing: 1.2px;
  flex-shrink: 0;
}
.rp-contract-addr {
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  color: var(--muted);
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.rp-contract-copy {
  background: none; border: 1px solid var(--bdr); border-radius: 3px;
  color: var(--dim); font-size: 12px; padding: 1px 5px;
  cursor: pointer; font-family: 'Geist Sans', sans-serif;
  transition: all 0.15s; flex-shrink: 0;
}
.rp-contract-copy:hover { border-color: var(--green); color: var(--green); }

.th-aux-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 4px;
  min-width: 0;
}
.th-ca-btn {
  display: none;
  align-items: center;
  gap: 5px;
  min-width: 0;
  cursor: pointer;
  transition: transform 0.15s;
  background: none;
  border: none;
  padding: 0;
  flex: 0 1 auto;
}
.th-ca-val {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 12px;
  color: var(--white);
  transition: color 0.15s;
  white-space: nowrap;
}
.th-ca-copy {
  display: flex;
  align-items: center;
  padding: 2px;
  color: var(--dim);
  transition: color 0.15s;
  flex-shrink: 0;
}
.th-token-age {
  display: none;
  align-items: center;
  flex: 0 0 auto;
  position: relative;
  cursor: default;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 11px;
  color: var(--dim);
  white-space: nowrap;
}
.th-token-age .age-text {
  display: inline-flex;
  align-items: center;
}
.th-token-age .age-tip {
  display: none;
  position: absolute;
  bottom: calc(100% + 6px);
  left: 50%;
  transform: translateX(-50%);
  background: var(--bg4);
  border: 1px solid var(--bdr2);
  border-radius: 4px;
  padding: 4px 8px;
  white-space: nowrap;
  font-size: 11px;
  color: var(--body);
  z-index: 10;
  pointer-events: none;
}


/* ── Right panel links bar — Option A pill style ── */
.rp-links-bar {
  display: flex;
  align-items: center;
  justify-content: space-evenly;
  gap: 6px;
  padding: 0 12px;
  height: 50px;
  border-bottom: 1px solid var(--bdr);
  flex-shrink: 0;
  background: var(--bg);
  box-sizing: border-box;
}
.rp-link-btn {
  display: flex; align-items: center; justify-content: center;
  flex: 1;
  gap: 5px;
  padding: 6px 0; border-radius: 0;
  font-size: 12px; font-weight: 500; color: var(--body);
  text-decoration: none; text-transform: uppercase;
  background: var(--bg2); border: 1px solid var(--bdr2);
  white-space: nowrap;
}
.rp-link-btn.rp-action-link { flex: 0 0 38px; }
.rp-link-btn.rp-social-link { flex: 1 1 0; font-size: 11px; }
.rp-link-btn:hover { color: var(--white); border-color: var(--bdr3); }
.rp-link-btn.rp-social-link.pending {
  color: var(--dim);
  border-color: var(--bdr2);
  opacity: 0.45;
  pointer-events: none;
}
.rp-link-btn.disabled { display: none; }
.rp-link-btn.rp-social-link.disabled {
  display: flex;
  color: var(--dim);
  border-color: var(--bdr2);
  opacity: 0.35;
  pointer-events: none;
}
.rp-link-btn.watched { color: var(--green); border-color: rgba(255,176,0,0.3); background: var(--green-dim); }
#rp-wl-btn { background: var(--bg2); padding: 6px 0; }
#rp-wl-btn:hover,
#link-website:hover,
#link-twitter:hover,
#link-telegram:hover {
  color: var(--green);
  border-color: rgba(255,176,0,0.3);
}



/* ── Right panel stat boxes (Spot Price, NAV, P/NAV) ── */
.rp-stat-row {
  display: flex;
  border-bottom: 1px solid var(--bdr);
}
.rp-stat-row .rp-stat-box {
  flex: 1 1 0;
  width: 0;
  border-bottom: none;
  min-width: 0;
  overflow: hidden;
}
.rp-stat-row .rp-stat-right {
  border-left: 1px solid var(--bdr);
}
.rp-chg-row .rp-chg-cell { padding: 6px 14px; }
.rp-chg-val {
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px; font-weight: 500;
  letter-spacing: -0.3px;
  line-height: 1;
}
.rp-chg-val.up { color: var(--green); }
.rp-chg-val.down { color: var(--red); }
.rp-stat-box {
  padding: 14px 18px;
  border-bottom: 1px solid var(--border-subtle);
  background: var(--bg);
  text-align: center;
  position: relative;
  box-shadow: inset 0 1px 0 var(--border-subtle);
}
/* Freshness indicator — color set dynamically via --dot-color */
.stale-dot {
  position: absolute; top: 10px; right: 12px;
  width: 12px; height: 12px; border-radius: 2px;
  display: flex; align-items: center; justify-content: center;
  --dot-color: #00cc66;
  background: color-mix(in srgb, var(--dot-color) 18%, transparent);
  border: 1px solid var(--dot-color);
  cursor: default; z-index: 10;
  transition: background 0.4s ease, border-color 0.4s ease;
}
[data-stale-pos="left"] > .stale-dot { right: auto; left: 12px; }
/* Inline variant — sits in flow next to a label, matched to .stat-tip sizing.
   margin-left matches the .stat-tip's margin-left so the freshness square
   sits 4px to the right of the info icon. */
.stale-dot.stale-dot-inline {
  position: relative;
  width: 12px; height: 12px;
  display: inline-flex; vertical-align: middle;
  margin-left: 4px;
  top: -0.5px; right: auto; left: auto;
}
/* Price box (first hero cell): mirror absolute-positioned dot to the outside wall.
   Inline-anchored dots sit in the label and must keep their natural position. */
#hero-stats-grid > [data-stale-box]:first-child .stale-dot:not(.stale-dot-inline) {
  left: 6px; right: auto;
}
.stale-dot::before {
  content: '';
  width: 5px; height: 5px; border-radius: 1px;
  background: var(--dot-color, var(--amber)); flex-shrink: 0;
  transition: background 0.4s ease;
}
#stale-tooltip {
  position: fixed; z-index: var(--z-tooltip); pointer-events: none;
  background: var(--bg3); border: 1px solid var(--bdr3);
  color: var(--bright); font-size: 12px; font-weight: 500;
  padding: 5px 10px; border-radius: 5px;
  white-space: nowrap; font-family: 'Geist Sans', sans-serif;
  box-shadow: 0 4px 16px rgba(0,0,0,0.4);
  display: none;
}
/* Price cross-check badge (DexScreener vs backend) */
.price-check-badge {
  display: none; /* hidden until cross-check runs */
  font-size: 10px; font-weight: 600; letter-spacing: 0.5px;
  padding: 1px 5px; border-radius: 4px; margin-left: 4px;
  vertical-align: middle; cursor: default; position: relative;
  font-family: 'IBM Plex Mono', monospace;
}
.price-check-badge.ok { display: inline; background: rgba(0,204,102,0.12); color: var(--up); border: 1px solid rgba(0,204,102,0.25); }
.price-check-badge.warn { display: inline; background: rgba(245,166,35,0.12); color: #f5a623; border: 1px solid rgba(245,166,35,0.3); }
.price-check-badge.danger { display: inline; background: rgba(255,51,51,0.12); color: var(--red); border: 1px solid rgba(255,51,51,0.25); }
.price-check-badge::after {
  content: attr(data-tip); position: absolute; top: calc(100% + 7px); left: 50%; transform: translateX(-50%);
  background: var(--bg3); border: 1px solid var(--bdr3); color: var(--body); font-size: 11px; font-weight: 400;
  padding: 5px 10px; border-radius: 5px; white-space: nowrap; pointer-events: none;
  opacity: 0; transition: opacity 0.15s; z-index: var(--z-tooltip); box-shadow: 0 4px 16px rgba(0,0,0,0.4);
}
.price-check-badge:hover::after { opacity: 1; }
.rp-stat-box.rp-stat-pnav { background: var(--bg2); box-shadow: inset 0 1px 0 var(--border-medium); }
.rp-stat-label { font-size: 13px; font-weight: 800; color: var(--bright); text-transform: uppercase; letter-spacing: 2px; margin-bottom: 6px; }
.stat-tip[data-tip] { display: inline-flex; align-items: center; justify-content: center; width: 12px; height: 12px; border-radius: 999px; border: 1px solid var(--muted); color: var(--muted); font-size: 12px; font-weight: 700; letter-spacing: 0; text-transform: none; cursor: default; margin-left: 4px; position: relative; top: -0.5px; vertical-align: middle; }
.stat-tip[data-tip]:hover { border-color: var(--body); color: var(--body); }
.rp-stat-label .stat-tip { display: inline-flex; align-items: center; justify-content: center; width: 12px; height: 12px; border-radius: 999px; border: 1px solid var(--muted); color: var(--muted); font-size: 12px; font-weight: 700; letter-spacing: 0; text-transform: none; cursor: default; margin-left: 4px; position: relative; top: -0.5px; vertical-align: middle; }
.rp-stat-label .stat-tip:hover { border-color: var(--body); color: var(--body); }
.rp-stat-label .stat-tip.warn-tip:hover { border-color: #ff3333; color: #ff3333; }
.rp-stat-label .stat-tip::after, .stat-tip[data-tip]::after { content: attr(data-tip); position: absolute; top: calc(100% + 7px); left: 50%; transform: translateX(-50%); background: var(--bg4); border: 1px solid var(--bdr2); color: var(--bright); font-size: 12px; font-weight: 400; letter-spacing: 0; text-transform: none; white-space: normal; width: 200px; padding: 7px 10px; border-radius: 6px; line-height: 1.5; pointer-events: none; opacity: 0; transition: opacity 0.15s; transition-delay: 0.4s; z-index: 999; text-align: left; box-shadow: 0 0 0 1px var(--border-subtle), 0 4px 16px rgba(0,0,0,0.4), 0 1px 2px rgba(0,0,0,0.2); }
.rp-stat-label .stat-tip:hover::after, .stat-tip[data-tip]:hover::after { opacity: 1; }
body.tips-warm .rp-stat-label .stat-tip::after,
body.tips-warm .stat-tip[data-tip]::after { transition-delay: 0s; transition-duration: 0s; }
.rp-stat-label .stat-tip.below::after { bottom: auto; top: calc(100% + 7px); }
.rp-stat-label .stat-tip.above::after, .stat-tip[data-tip].above::after { top: auto; bottom: calc(100% + 7px); }
/* Beta banner */
.beta-banner { display: flex; align-items: center; justify-content: center; gap: 6px; padding: 10px 10px; background: var(--bg3); }
.beta-badge { font-size: 15px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--red); user-select: none; }
.beta-warn-tip { display: inline-flex; align-items: center; justify-content: center; width: 14px; height: 14px; border-radius: 50%; border: 1.5px solid var(--red); color: var(--red); font-size: 10px; font-weight: 800; cursor: default; position: relative; flex-shrink: 0; }
.beta-warn-tip::after { content: attr(data-tip); position: absolute; bottom: calc(100% + 7px); top: auto; right: -40px; left: auto; transform: none; background: var(--bg4); border: 1px solid rgba(255,51,51,0.3); color: var(--body); font-family: 'Geist Sans', sans-serif; font-size: 11px; font-weight: 400; letter-spacing: 0; text-transform: none; white-space: normal; width: 180px; padding: 7px 10px; border-radius: 6px; line-height: 1.45; pointer-events: none; opacity: 0; transition: opacity 0.15s; z-index: 999; box-shadow: 0 4px 16px rgba(0,0,0,0.4); }
.beta-warn-tip:hover::after { opacity: 1; }
.beta-warn-tip:hover { border-color: #ff5555; color: #ff5555; }
.backend-health-banner {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 8px 10px;
  margin-bottom: 8px;
  border: 1px solid rgba(245,166,35,0.28);
  background: rgba(245,166,35,0.08);
  color: #f5a623;
  font-size: 11px;
  letter-spacing: 0.8px;
  text-transform: uppercase;
}
.backend-health-banner.on { display: flex; }
.backend-health-dot {
  width: 6px;
  height: 6px;
  border-radius: 50% !important;
  background: currentColor;
}
.rp-stat-label .stat-tip.put-tip-left::after { left: 0; transform: none; }
.rp-stat-label .stat-tip.put-tip-right::after { left: auto; right: 0; transform: none; }
.rp-stat-val {
  font-family: 'JetBrains Mono', monospace;
  font-size: 24px; font-weight: 400;
  color: var(--white); letter-spacing: -1.5px; line-height: 1;
}
.rp-metric-row {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  border-bottom: 1px solid var(--bdr);
}
.rp-metric-card {
  padding: 9px 10px;
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  position: relative;
  min-height: 56px;
}
.rp-metric-card + .rp-metric-card { border-left: 1px solid var(--bdr); }
.rp-metric-card .rp-stat-label {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 14px;
  margin-bottom: 0;
  line-height: 1;
}
.rp-metric-card .rp-stat-val {
  margin-top: 6px;
  font-size: 16px;
}
.rp-stat-val.rp-stat-price { font-size: 22px; font-weight: 400; letter-spacing: -1.5px; }
.rp-stat-val.above { color: var(--green); }
.rp-stat-val.below { color: var(--red); }
.rp-stat-sub { font-size: 12px; color: var(--dim); margin-top: 4px; }

/* Larger badge variant for token page right panel */
.rp-stat-val .pnav-badge {
  font-size: 16px;
  padding: 5px 12px;
  border-radius: 7px;
  letter-spacing: -0.5px;
}
/* Compact badge for tight 1D/1W/1M change cells */
.rp-chg-val .pnav-badge {
  font-size: 12px;
  padding: 2px 5px;
  border-radius: 4px;
  letter-spacing: 0;
}
/* Larger badges in the 24h stats row */
.rp-chg-lg .pnav-badge {
  font-size: 12px;
  padding: 2px 6px;
  border-radius: 4px;
  white-space: nowrap;
}
/* Rotating change stats (1H / 24H / 7D) */
.chg-rotate-labels {
  display: flex; justify-content: center; gap: 6px; margin-bottom: 4px;
  font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 600; text-transform: uppercase;
}
.chg-tf { color: var(--dim); transition: color 0.3s ease; cursor: pointer; }
.chg-tf:hover { color: var(--muted); }
.chg-tf.chg-tf-on { color: var(--white); }
.chg-rotate-cell { position: relative; }
.chg-rotate-frame {
  transition: opacity 0.4s ease, transform 0.4s ease;
}
.chg-rotate-frame:not(.chg-active) {
  position: absolute; top: 0; left: 0; right: 0;
  opacity: 0; transform: translateY(8px); pointer-events: none;
}
.chg-rotate-frame.chg-active {
  opacity: 1; transform: translateY(0);
}
/* Badge in sidebar dp-row stays standard size */
.dp-val .pnav-badge {
  font-size: 12px;
  padding: 3px 7px;
}


.dp-nav {
  padding: 16px 18px 16px;
  border-bottom: 1px solid var(--bdr);
  position: relative;
  background: var(--bg2);
}
.dp-nav-eyebrow { font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.5px; margin-bottom: 8px; }
.dp-nav-val {
  font-family: 'JetBrains Mono', monospace;
  font-size: 32px; font-weight: 300;
  color: var(--white); letter-spacing: -2px; line-height: 1;
}
.dp-nav-sub { font-size: 12px; color: var(--dim); margin-top: 4px; margin-bottom: 14px; line-height: 1.4; }
.dp-nav-badge {
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 12px; border-radius: 6px;
  font-family: 'JetBrains Mono', monospace; font-size: 15px; font-weight: 500;
}
.dp-nav-badge.above { background: rgba(255,176,0,0.08); color: var(--green); border: 1px solid rgba(255,176,0,0.18); }
.dp-nav-badge.below { background: rgba(251,113,133,0.08);  color: var(--red);   border: 1px solid rgba(251,113,133,0.18); }
.dp-nav-badge-lbl { font-size: 12px; font-weight: 400; font-family: 'Geist Sans', sans-serif; opacity: 0.7; }

/* Treasury section */
.dp-treasury {
  padding: 10px 18px 14px;
  border-bottom: 1px solid var(--bdr);
}
.dp-sec-label { margin-bottom: 10px; }
.dp-treas-total {
  font-family: 'JetBrains Mono', monospace;
  font-size: 20px; font-weight: 300;
  color: var(--bright); letter-spacing: -0.8px; margin-bottom: 10px;
}
.dp-tbar { height: 11px; border-radius: 6px; border: 1px solid var(--bdr3); background: rgba(255,255,255,0.03); overflow: hidden; display: flex; gap: 4px; margin-bottom: 10px; }
.dp-tbar-seg { height: 100%; }
.dp-trows { display: flex; flex-direction: column; gap: 6px; }
.dp-trow { display: flex; align-items: flex-start; justify-content: space-between; font-size: 12px; }
.dp-trow-left { display: flex; align-items: center; gap: 6px; color: var(--bright); padding-top: 1px; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.dp-tdot { width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0; margin-top: 1px; }
.dp-trow-right { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.dp-trow-usdc { font-family: 'JetBrains Mono', monospace; color: var(--body); font-size: 12px; }
.dp-trow-tokens { font-family: 'JetBrains Mono', monospace; color: var(--dim); font-size: 12px; }
.dp-inline-bar {
  position: relative;
  flex: 1;
  height: 11px;
  border-radius: 6px;
  border: 1px solid var(--bdr3);
  background: rgba(255,255,255,0.03);
  overflow: hidden;
}
.dp-inline-bar-fill {
  height: 100%;
  min-width: 38px;
  border-radius: inherit;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding-left: 6px;
  box-sizing: border-box;
  color: #000;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 9px;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
}
.dp-inline-bar-fill.full {
  justify-content: flex-start;
  padding-left: 6px;
}

/* Runway grid (inside treasury card) */
.tc-runway-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 16px;
}
.tc-runway-cell {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}
.tc-runway-label {
  font-family: 'Geist Sans', sans-serif;
  font-size: 12px;
  color: var(--bright);
}
.tc-runway-val {
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  color: var(--body);
}
.tc-runway-val.orange { color: var(--orange); }

/* Treasury view toggle */
.tc-toggle { display: inline-flex; border: 1px solid var(--bdr2); border-radius: 4px; overflow: hidden; margin-left: 8px; }
.tc-toggle-btn {
  font-family: 'Geist Sans', sans-serif; font-size: 12px; font-weight: 600;
  letter-spacing: 0.3px; padding: 2px 8px; cursor: pointer;
  color: var(--dim); background: transparent; border: none;
  border-right: 1px solid var(--bdr2); transition: all 0.12s;
}
.tc-toggle-btn:last-child { border-right: none; }
.tc-toggle-btn:hover { color: var(--muted); background: rgba(255,255,255,0.02); }
.tc-toggle-btn.active { color: var(--white); background: var(--bg3); }
.tc-trow-note { font-size: 12px; color: var(--dim); margin-left: 2px; font-weight: 400; }

/* Data rows — shared for valuation / health / performance */
.dp-group { border-bottom: 1px solid var(--border-medium); }
.dp-group-label {
  padding: 10px 18px 5px;
  font-size: 12px;
  color: var(--bright);
  letter-spacing: 2px;
}
.dp-group-sub { font-size: 12px; color: var(--dim); letter-spacing: 0; font-weight: 400; margin-left: 6px; }
.dp-subheading { padding: 8px 18px 2px; font-size: 12px; color: var(--muted); letter-spacing: 1.5px; text-transform: uppercase; font-family: 'Inter', sans-serif; }
.timeline-list {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 0 18px 12px 36px;
}
.timeline-list::before {
  content: '';
  position: absolute;
  left: 22px;
  top: 0;
  bottom: 12px;
  width: 1px;
  background: var(--bdr2);
}
.timeline-event {
  position: relative;
  border: 1px solid var(--bdr2);
  background: var(--bg2);
  border-radius: 8px;
  padding: 10px 12px;
  scroll-margin-top: 12px;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}
.timeline-event.proposal-jump-target {
  border-color: rgba(255,204,0,0.65);
  box-shadow: inset 0 0 0 1px rgba(255,204,0,0.22), inset 0 0 18px rgba(255,204,0,0.08);
  background: rgba(255,204,0,0.08);
}
.timeline-index {
  position: absolute;
  left: -24px;
  top: 10px;
  width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
  border-radius: 3px;
  background: var(--orange);
  color: #000;
  font-family: var(--numeric-font);
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
  box-shadow: 0 0 0 3px var(--bg);
}
.timeline-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
}
.timeline-title {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--bright);
}
.timeline-date {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: var(--dim);
  white-space: nowrap;
}
.timeline-note {
  font-size: 12px;
  color: var(--muted);
  line-height: 1.45;
  margin-top: 8px;
}
.timeline-collapsed { display: none; flex-direction: column; gap: 10px; }
.timeline-collapsed.is-open { display: flex; }
.timeline-stub {
  position: relative;
  display: block;
  width: 100%;
  text-align: left;
  border: 1px solid var(--bdr2);
  background: var(--bg2);
  border-radius: 8px;
  padding: 7px 12px;
  margin: 0;
  color: var(--muted);
  font: 700 11px/1.3 'Geist Sans', sans-serif;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}
.timeline-stub:hover { border-color: var(--bdr3); background: var(--bg3); color: var(--bright); }
.timeline-stub-marker {
  position: absolute;
  left: -24px; top: 50%;
  transform: translateY(-50%);
  width: 20px; height: 20px;
  display: grid; place-items: center;
  background: var(--orange);
  color: #000;
  border-radius: 3px;
  font-family: var(--numeric-font);
  font-size: 13px;
  font-weight: 800;
  line-height: 1;
  box-shadow: 0 0 0 3px var(--bg);
  z-index: 1;
}
.timeline-stub-label { display: inline-block; }
.timeline-stub::after {
  content: '';
  position: absolute;
  left: -4px; top: 50%;
  width: 4px; height: 1px;
  background: var(--bdr2);
  transform: translateY(-50%);
}
.dp-row { display: flex; align-items: center; justify-content: space-between; padding: 5px 18px; }
.dp-row:last-child { padding-bottom: 12px; }
.dp-key { font-size: 12px; color: var(--bright); }
.dp-val { font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--bright); text-align: right; }
.dp-val.green  { color: var(--green); }
.dp-val.red    { color: var(--red); }
.dp-val.orange { color: var(--orange); }
.dp-val.dim    { color: var(--muted); }
.dp-row:has(.dp-val.green) .dp-key  { color: var(--green); }
.dp-row:has(.dp-val.red) .dp-key    { color: var(--red); }
.dp-row:has(.dp-val.orange) .dp-key { color: var(--orange); }
.dp-row:has(.dp-val.dim) .dp-key    { color: var(--muted); }

/* Performance tabs */
.perf-tab { background: var(--bg2); border: 1px solid var(--bdr); border-radius: 4px; color: var(--muted); font-size: 12px; font-family: 'IBM Plex Mono', monospace; letter-spacing: 0.5px; padding: 4px 8px; cursor: pointer; flex: 1; text-align: center; transition: all 0.15s; }
.perf-tab:hover { color: var(--bright); border-color: var(--dim); }
.perf-tab.active { background: var(--bg3); color: var(--white); border-color: var(--green); }

/* Token page professional polish — tighter hierarchy, quieter chrome */
body.is-token .chart-topbar {
  height: 48px;
  min-height: 48px;
  padding: 0 12px;
  gap: 6px;
  justify-content: flex-start;
  align-content: center;
  background: #030303;
  border-bottom-color: rgba(255,255,255,0.055);
  position: relative;
  z-index: 6;
}
body.is-token .chart-toolbar-row {
  width: 100%;
  justify-content: space-between;
  flex-wrap: nowrap !important;
}
body.is-token #chart-controls {
  margin-right: auto;
}
body.is-token .chart-topbar > div:last-child {
  gap: 6px !important;
}
body.is-token #layer-controls {
  gap: 6px !important;
}
body.is-token #layer-controls > div {
  display: inline-flex !important;
  height: 32px;
  overflow: hidden;
  background: #050505;
  border: 1px solid #1f1f1f;
  border-radius: 4px !important;
  box-shadow: none;
}
body.is-token .chart-pill {
  height: 32px;
  padding: 0;
  background: #050505;
  border-color: #1f1f1f;
  border-radius: 4px !important;
  overflow: hidden;
  box-shadow: none;
}
body.is-token .cbtn,
body.is-token .chart-pill-btn,
body.is-token .layer-btn,
body.is-token .chart-fs-btn {
  height: 32px !important;
  min-height: 32px !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em;
  color: #777;
  background: transparent;
  border-color: #1f1f1f;
  box-shadow: none;
}
body.is-token .cbtn {
  min-width: 44px;
  padding: 0 10px;
  border: 0;
  border-right: 1px solid #1f1f1f;
  border-radius: 0 !important;
}
body.is-token .cbtn:last-child {
  border-right: 0;
}
body.is-token .chart-pill-btn {
  width: 58px !important;
  padding: 0 10px !important;
  border: 0;
  border-right: 1px solid #1f1f1f;
  border-radius: 0 !important;
}
body.is-token .chart-pill-btn:last-child {
  border-right: 0;
}
body.is-token #layer-controls .layer-btn {
  margin-left: 0 !important;
  border: 0 !important;
  border-right: 1px solid #1f1f1f !important;
  border-radius: 0 !important;
  background: transparent;
}
body.is-token #layer-controls .layer-btn:last-child {
  border-right: 0 !important;
}
body.is-token .chart-fs-btn {
  background: #050505;
  border-color: #1f1f1f;
  border-radius: 4px !important;
}
body.is-token .cbtn:hover,
body.is-token .chart-pill-btn:hover,
body.is-token .layer-btn:hover,
body.is-token .chart-fs-btn:hover {
  color: #c8c8c8;
  border-color: #1f1f1f;
}
body.is-token .cbtn.active,
body.is-token .chart-pill-btn.on,
body.is-token .layer-btn.on,
body.is-token .chart-fs-btn.active {
  color: #ededed;
  background: #101010;
  border-color: #1f1f1f;
  box-shadow: none;
}
body.is-token .cbtn.active,
body.is-token .chart-pill-btn.on,
body.is-token #layer-controls .layer-btn.on {
  border-color: #1f1f1f;
  background: #101010 !important;
  color: #ededed !important;
  box-shadow: none;
}
body.is-token #chart-controls,
body.is-token #chart-mode-pill {
  border-color: #1f1f1f;
}
body.is-token .cbtn.disabled {
  color: #3f3f3f;
  background: #020202;
  border-color: rgba(255,255,255,0.035);
}
body.is-token #chart-mode-pill {
  margin-left: 0;
}
body.is-token #btn-price-line {
  width: 54px !important;
}
body.is-token #btn-layer-price,
body.is-token #btn-layer-nav,
body.is-token #btn-layer-ohlc,
body.is-token #nav-hist-toggle {
  width: 42px !important;
}
body.is-token #flow-markers-toggle,
body.is-token #nav-arrow-toggle,
body.is-token #nav-gradient-toggle,
body.is-token #btn-tag-toggle {
  width: 32px !important;
}
body.is-token .nav-action-controls {
  display: grid !important;
  grid-template-columns: repeat(3, 32px) !important;
  column-gap: 6px !important;
  gap: 0 6px !important;
  height: 32px !important;
  overflow: visible !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
body.is-token .nav-action-controls .nav-action-btn {
  width: 32px !important;
  height: 32px !important;
  border-radius: 4px !important;
  border: 1px solid #1f1f1f !important;
  background: #050505 !important;
  box-shadow: none !important;
  margin-left: 0 !important;
}
body.is-token .nav-action-controls .nav-action-btn.on {
  color: #ededed !important;
  background: #101010 !important;
  border-color: #1f1f1f !important;
}
body.is-token #overlay-collapse-btns #btn-tag-toggle {
  transform: translateY(-1px);
}
body.is-token #chart-ohlc-overlay {
  top: 8px !important;
  left: 12px !important;
}
body.is-token #chart-ohlc-line {
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 11px !important;
  line-height: 1.45 !important;
  color: rgba(220,220,220,0.86);
  text-shadow: 0 1px 2px #000;
}
body.is-token #overlay-collapse-btns {
  gap: 3px !important;
  margin-top: 4px !important;
}
body.is-token #overlay-collapse-btns .layer-btn {
  width: 22px !important;
  height: 20px !important;
  min-height: 20px !important;
  padding: 0 !important;
  font-size: 9px !important;
  background: rgba(0,0,0,0.72);
}
body.is-token .chart-loading {
  background: #000;
  color: #868686;
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
body.is-token .chart-loading .chart-loading-spinner {
  width: 16px;
  height: 16px;
  opacity: 0.78;
}
body.is-token .chart-legend {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 46px;
  padding: 8px 12px 8px 16px;
  font-size: 11px;
  color: #777;
  border-top: 1px solid rgba(255,255,255,0.03);
  border-bottom-color: rgba(255,255,255,0.055);
  background: #020202;
}
body.is-token #chart-legend-items {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 24px;
  align-items: center;
  align-content: center;
  gap: 10px 12px;
}
body.is-token #chart-legend-actions {
  position: static;
  flex: 0 0 auto;
  align-items: center;
  gap: 6px;
}
body.is-token #chart-legend-actions .layer-btn {
  height: 24px !important;
  min-height: 24px !important;
  padding: 0 7px;
}
body.is-token .leg-item {
  gap: 6px;
  color: #777;
}
body.is-token .token-stats-col {
  background: #070707;
  border-left-color: rgba(255,255,255,0.07);
  box-shadow: -1px 0 0 rgba(255,255,255,0.025), -8px 0 22px rgba(0,0,0,0.18);
}
body.is-token .rp-stat-box {
  padding: 11px 14px;
  background: #050505;
  border-bottom-color: rgba(255,255,255,0.055);
  box-shadow: none;
}
body.is-token .rp-stat-row .rp-stat-right {
  border-left-color: rgba(255,255,255,0.055);
}
body.is-token .rp-metric-card + .rp-metric-card {
  border-left-color: var(--bdr);
  box-shadow: none;
}
body.is-token .rp-metric-row {
  border-bottom-color: var(--bdr);
}
body.is-token .rp-stat-label,
body.is-token .rp-metric-card .rp-stat-label,
body.is-token .dp-key,
body.is-token .dp-sec-label,
body.is-token .dp-group-label,
body.is-token .rp-contract-label {
  color: #7a7a7a !important;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.08em;
}
body.is-token .rp-stat-label {
  margin-bottom: 5px;
}
body.is-token .rp-hero-stat-label {
  font-size: 13px !important;
}
body.is-token .rp-stat-val {
  font-size: 22px;
  font-weight: 450;
  letter-spacing: -0.045em;
  color: #e8e8e8;
}
body.is-token .rp-stat-val.rp-stat-price {
  font-size: 21px;
}
body.is-token .rp-metric-card {
  padding: 9px 10px;
  min-height: 52px;
  background: #050505;
}
body.is-token .rp-metric-card .rp-stat-val {
  margin-top: 5px;
  font-size: 15px;
}
body.is-token .rp-chg-row .rp-chg-cell {
  padding: 5px 10px;
}
body.is-token .rp-chg-val {
  font-size: 11px;
  letter-spacing: 0;
}
body.is-token .dp-row {
  padding: 4px 14px;
}
body.is-token .dp-val {
  font-size: 11px;
  color: #d0d0d0;
}
body.is-token .dp-row:has(.dp-val.green) .dp-key,
body.is-token .dp-row:has(.dp-val.red) .dp-key,
body.is-token .dp-row:has(.dp-val.orange) .dp-key {
  color: #7a7a7a !important;
}
body.is-token .stat-tip[data-tip],
body.is-token .rp-stat-label .stat-tip {
  width: 12px !important;
  height: 12px !important;
  min-width: 12px !important;
  border-radius: 50% !important;
  color: #777 !important;
  border-color: #555 !important;
  background: #101010 !important;
  font-family: Arial, sans-serif !important;
  font-size: 8px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  padding: 0 !important;
}
body.is-token .pnav-badge {
  background: rgba(255,255,255,0.055);
  border: 1px solid rgba(255,255,255,0.08);
}
.perf-tab .stat-tip { margin-left: 2px; }
.perf-panel { display: none; }
.perf-panel.active { display: block; }


/* ═══════════════════════════════════════════════════════════════ */
/* FOOTER                                                          */
/* ═══════════════════════════════════════════════════════════════ */
.footer {
  font-size: 12px; color: var(--muted);
  text-align: center;
  padding: 20px 0;
  margin-top: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
}
.footer a { color: var(--body); text-decoration: none; font-weight: 500; transition: color 0.15s; }
.footer a:hover { color: var(--white); }

/* ═══════════════════════════════════════════════════════════════ */
/* AUTH MODAL                                                       */
/* ═══════════════════════════════════════════════════════════════ */
.auth-modal-bg {
  position: fixed; inset: 0; z-index: var(--z-modal);
  background: rgba(0,0,0,0.65); backdrop-filter: blur(4px);
  display: flex; align-items: center; justify-content: center;
}
.auth-modal {
  background: var(--bg2); border: 1px solid var(--bdr2); border-radius: 12px;
  padding: 28px 32px; width: 340px; max-width: 90vw;
  box-shadow: 0 8px 32px rgba(0,0,0,0.4);
}
.auth-modal h3 {
  font-family: 'Syne', sans-serif; font-size: 18px; font-weight: 700;
  color: var(--white); margin-bottom: 20px; text-align: center;
}
.auth-btn {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  width: 100%; padding: 10px 16px; border-radius: 8px; border: 1px solid var(--bdr2);
  background: var(--bg3); color: var(--white); font-size: 13px; font-weight: 600;
  cursor: pointer; transition: background 0.15s, border-color 0.15s;
  font-family: 'Geist Sans', sans-serif;
}
.auth-btn:hover { background: var(--bg4); border-color: var(--bdr3); }
.auth-btn svg { flex-shrink: 0; }
.auth-divider {
  display: flex; align-items: center; gap: 12px;
  margin: 18px 0; font-size: 12px; color: var(--dim); text-transform: uppercase; letter-spacing: 0.5px;
}
.auth-divider::before, .auth-divider::after {
  content: ''; flex: 1; height: 1px; background: var(--bdr);
}
.auth-input {
  width: 100%; padding: 9px 12px; border-radius: 8px;
  border: 1px solid var(--bdr2); background: var(--bg); color: var(--white);
  font-size: 13px; font-family: 'Geist Sans', sans-serif; outline: none;
  transition: border-color 0.15s;
}
.auth-input:focus { border-color: var(--green); }
.auth-input::placeholder { color: var(--dim); }
.auth-msg {
  margin-top: 12px; font-size: 12px; text-align: center; min-height: 18px;
}
.auth-msg.success { color: var(--green); }
.auth-msg.error { color: var(--red); }

/* ═══════════════════════════════════════════════════════════════ */
/* RESPONSIVE                                                      */
/* ═══════════════════════════════════════════════════════════════ */
/* Sidebar visibility controlled above in base .app-left rule      */

/* Maintenance mode overlay */
#maintenance-gate { display: none; position: fixed; inset: 0; z-index: var(--z-maintenance); background: var(--bg); flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 32px; gap: 20px; }
body.maintenance-on #maintenance-gate { display: flex; }
body.maintenance-on .app-shell,
body.maintenance-on .bb-tape,
body.maintenance-on .bloomberg-status,
body.maintenance-on #mobile-gate { display: none !important; }
#maintenance-gate .mt-logo { width: 80px; height: 80px; border-radius: 50% !important; overflow: hidden; }
#maintenance-gate .mt-logo img { width: 100%; height: 100%; object-fit: cover; display: block; }
#maintenance-gate .mt-brand { font-family: 'JetBrains Mono', monospace; font-size: 32px; font-weight: 700; color: var(--white); letter-spacing: -0.3px; }
#maintenance-gate .mt-brand span { color: var(--green); }
#maintenance-gate .mt-msg { color: var(--muted); font-size: 14px; line-height: 1.6; max-width: 400px; font-family: 'JetBrains Mono', monospace; }
#maintenance-gate .mt-status { display: inline-block; padding: 4px 12px; border: 1px solid var(--green); color: var(--green); font-size: 11px; font-family: 'JetBrains Mono', monospace; letter-spacing: 1px; text-transform: uppercase; }

/* Mobile gate — desktop only for now */
#mobile-gate { display: none; position: fixed; inset: 0; z-index: var(--z-mobile-gate); background: var(--bg); flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 32px; gap: 16px; }
#mobile-gate .mg-brand { font-family: 'JetBrains Mono', monospace; font-size: 28px; font-weight: 700; color: var(--white); letter-spacing: -0.3px; }
#mobile-gate .mg-brand span { color: var(--green); }
#mobile-gate .mg-msg { color: var(--body); font-size: 15px; line-height: 1.5; max-width: 300px; }
@media (max-width: 900px) {
  #mobile-gate { display: flex; }
  .app-shell { display: none !important; }
}

@media (max-width: 1440px) {
  .hero-sub { display: none; }
}
@media (max-width: 1380px) {
  .landing-blurb { display: none; }
}
@media (max-width: 1180px) {
  .hero-title-block { display: none; }
}
@media (max-width: 1024px) {
  /* Shrink sidebar slightly on smaller desktops */
  .app-left.token-mode { width: 180px; }
}
@media (max-width: 900px) {
  /* Stack layout on tablet/mobile */
  body.is-token .app-content { margin-right: 0; }
  .app-shell { flex-direction: column; height: auto; overflow: visible; }
  .app-left.token-mode { width: 100%; height: auto; border-right: none; border-bottom: 1px solid var(--bdr); flex-direction: row; overflow: hidden; }
  .app-brand { border-bottom: none; border-right: 1px solid var(--bdr); padding: 10px 14px; flex-shrink: 0; justify-content: center; }
  .app-token-list { flex-direction: row; overflow: hidden; }
  .tp-topbar { display: none; }
  .tp-item { flex-direction: column; align-items: center; padding: 6px 8px; gap: 2px; min-width: 52px; border-bottom: none; }
  .tp-item.active::before { top: auto; bottom: 0; left: 0; right: 0; width: 100%; height: 2px; }
  .tp-info { display: none; }
  .tp-right { display: none; }
  .tp-item .wl-star { display: none; }
  .tp-wl-section { display: none !important; }
  .tp-footer { display: none; }
  .app-right { height: auto; overflow: visible; }
  .app-content { overflow: visible; }
  .nav-center { display: none; }
  .snap-bar { grid-template-columns: 1fr 1fr; }
  .snap-cell:nth-child(2) { border-right: none; }
  .snap-cell.pnav { border-top: 1px solid var(--bdr); }
  .snap-cell:last-child { border-right: none; }
  .token-body { grid-template-columns: 1fr; }
  .token-stats-col { position: static; max-height: none; display: flex; flex-direction: column; }
  .rp-scroll { overflow-y: visible; flex: none; }
  .token-table td:nth-child(7), .token-table th:nth-child(7) { display: none; }
}
@media (max-width: 768px) {
  .hero-stats { display: none; }
  .token-table td:nth-child(6), .token-table th:nth-child(6),
  .token-table td:nth-child(8), .token-table th:nth-child(8) { display: none; }
  .spark-container { width: 120px; }
  .tt-sparkline { width: 120px; }
}
@media (max-width: 680px) {
  .token-table td:nth-child(9), .token-table th:nth-child(9) { display: none; }
}
@media (max-width: 560px) {
  .token-table td:nth-child(4), .token-table th:nth-child(4),
  .token-table td:nth-child(5), .token-table th:nth-child(5) { display: none; }
  .landing { padding: 0 16px 60px; }
}

/* ═══════════════════════════════════════════════════════════════ */
/* ANIMATIONS                                                      */
/* ═══════════════════════════════════════════════════════════════ */

/* Pulse on live data update */
@keyframes dataPulse {
  0%   { opacity: 1; }
  40%  { opacity: 0.4; }
  100% { opacity: 1; }
}
.data-refresh { animation: dataPulse 1s ease; }

/* ── hidden compat elements ── */
#sub-line, #title, #desc, #chart-label, #nav, .params { display: none !important; }
#treasury-flow { display: none !important; }

/* ── Command Bar (Cmd+K) ── */
.cmd-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: var(--z-cmd);
  background: rgba(0,0,0,0.55);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  justify-content: center;
  padding-top: min(20vh, 160px);
}
.cmd-overlay.open { display: flex; }
.cmd-box {
  width: 440px;
  max-height: 400px;
  background: #0a0a0a;
  border: 1px solid var(--green);
  border-radius: 0;
  box-shadow: 0 0 20px var(--green-glow);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-self: flex-start;
}
.cmd-input-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--bdr);
}
.cmd-input-wrap svg { flex-shrink: 0; color: var(--dim); }
.cmd-input {
  flex: 1;
  background: none;
  border: none;
  outline: none;
  color: var(--white);
  font-size: 15px;
  font-family: 'Geist Sans', -apple-system, system-ui, sans-serif;
}
.cmd-input::placeholder { color: var(--dim); }
.cmd-kbd {
  font-size: 12px;
  color: var(--dim);
  border: 1px solid var(--bdr);
  border-radius: 4px;
  padding: 2px 6px;
  font-family: 'JetBrains Mono', monospace;
}
.cmd-results {
  overflow-y: auto;
  flex: 1;
  padding: 6px;
}
.cmd-results:empty::after {
  content: 'No results';
  display: block;
  text-align: center;
  color: var(--dim);
  font-size: 12px;
  padding: 24px;
}
.cmd-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border-radius: 8px;
  cursor: pointer;
  text-decoration: none;
  color: var(--body);
  transition: background 0.1s;
}
.cmd-item:hover, .cmd-item.active {
  background: var(--bg3);
}
.cmd-item.active {
  outline: 1px solid var(--bdr2);
}
.cmd-item-logo {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}
.cmd-item-info { flex: 1; min-width: 0; }
.cmd-item-name {
  font-size: 13px;
  font-weight: 500;
  color: var(--bright);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cmd-item-meta {
  font-size: 12px;
  color: var(--dim);
  display: flex;
  gap: 8px;
}
.cmd-item-ticker {
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  color: var(--muted);
}
.cmd-item-arrow {
  color: var(--dim);
  flex-shrink: 0;
  opacity: 0;
  transition: opacity 0.1s;
}
.cmd-item:hover .cmd-item-arrow,
.cmd-item.active .cmd-item-arrow { opacity: 1; }
#cmd-trigger:hover { border-color: var(--bdr2); color: var(--muted); }

/* ── Command hints ── */
.cmd-hint {
  padding: 6px 16px 2px;
  font-size: 12px;
  color: var(--dim);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  font-weight: 600;
}
.cmd-item-cmd {
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  color: var(--green);
  opacity: 0.7;
}

/* ── Compare overlay ── */
#treemap-overlay { padding-top: 0; align-items: center; }
.treemap-overlay-box {
  width: 92vw;
  height: 85vh;
  background: var(--bg2);
  border: 1px solid var(--bdr2);
  border-radius: 12px;
  box-shadow: 0 16px 48px rgba(0,0,0,0.5);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.compare-box {
  width: 90vw;
  max-width: 900px;
  max-height: 80vh;
  background: var(--bg2);
  border: 1px solid var(--bdr2);
  border-radius: 12px;
  box-shadow: 0 16px 48px rgba(0,0,0,0.5);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-self: flex-start;
}
.compare-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border-bottom: 1px solid var(--bdr);
}
.compare-close {
  background: none;
  border: none;
  color: var(--dim);
  font-size: 20px;
  cursor: pointer;
  padding: 0 4px;
  line-height: 1;
}
.compare-close:hover { color: var(--bright); }
.compare-body {
  overflow-y: auto;
  padding: 0;
}
.cmp-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}
.cmp-table th, .cmp-table td {
  padding: 8px 12px;
  border-bottom: 1px solid var(--bdr);
  text-align: right;
  white-space: nowrap;
}
.cmp-table th {
  position: sticky;
  top: 0;
  background: var(--bg2);
  z-index: 2;
}
.cmp-table th:first-child, .cmp-table td:first-child {
  text-align: left;
  color: var(--dim);
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 0.3px;
  position: sticky;
  left: 0;
  background: var(--bg2);
  z-index: 1;
}
.cmp-table th:not(:first-child) {
  color: var(--bright);
  font-size: 12px;
}
.cmp-tok-head {
  display: flex;
  align-items: center;
  gap: 8px;
  justify-content: center;
}
.cmp-tok-head img {
  width: 22px;
  height: 22px;
  border-radius: 50%;
}
.cmp-best { color: #00cc66 !important; font-weight: 600; }
.cmp-worst { color: #ff3333 !important; opacity: 0.7; }


/* ═══════════════════════════════════════════════════════════════ */
/* AMBER CURSOR BLINK — Command Bar                                */
/* ═══════════════════════════════════════════════════════════════ */
@keyframes amberBlink {
  0%, 100% { border-color: var(--green); }
  50%      { border-color: transparent; }
}
.cmd-input {
  caret-color: var(--green) !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 14px !important;
}
.cmd-input:focus {
  animation: none !important;
}
/* Blinking block cursor effect on the input wrap */
.cmd-input-wrap {
  border-bottom-color: var(--green) !important;
}
/* Amber caret everywhere */
input, textarea {
  caret-color: var(--green) !important;
}

/* ═══════════════════════════════════════════════════════════════ */
/* BLOOMBERG STATUS BAR                                            */
/* ═══════════════════════════════════════════════════════════════ */
.bloomberg-status {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: var(--z-cmd);
  height: 22px;
  background: var(--bg3);
  border-top: 1px solid var(--bdr3);
  display: flex;
  align-items: center;
  padding: 0 8px;
  gap: 0;
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  color: var(--dim);
  box-shadow: 0 -1px 4px rgba(0,0,0,0.3);
}
.bb-cell {
  padding: 0 10px;
  border-right: 1px solid var(--bdr);
  white-space: nowrap;
  height: 100%;
  display: flex;
  align-items: center;
}
.bb-cell:last-child { border-right: none; }
.bb-key {
  color: var(--green);
  font-weight: 700;
  margin-right: 4px;
  font-size: 12px;
}
.bb-val {
  color: var(--muted);
}
.bb-val.live {
  color: #00cc66;
}
.bb-val.warn {
  color: var(--green);
}
.bb-val.err {
  color: #ff6666;
}
.bb-spacer { flex: 1; }
.bb-clock {
  color: var(--green);
  font-weight: 500;
  letter-spacing: 0.5px;
}
#system-health-banner[hidden] { display: none !important; }
.system-health-banner {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 10px 16px;
  border-bottom: 1px solid rgba(255,176,0,0.16);
  background: linear-gradient(90deg, rgba(255,176,0,0.12), rgba(255,176,0,0.04) 48%, rgba(0,0,0,0.98));
}
.system-health-banner.status-error {
  border-bottom-color: rgba(255,51,51,0.22);
  background: linear-gradient(90deg, rgba(255,51,51,0.14), rgba(255,51,51,0.05) 48%, rgba(0,0,0,0.98));
}
.system-health-banner.status-ok {
  border-bottom-color: rgba(0,204,102,0.2);
  background: linear-gradient(90deg, rgba(0,204,102,0.11), rgba(0,204,102,0.04) 48%, rgba(0,0,0,0.98));
}
.system-health-badge {
  flex-shrink: 0;
  min-width: 68px;
  padding: 4px 8px;
  border: 1px solid currentColor;
  color: var(--orange);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.9px;
  text-transform: uppercase;
  text-align: center;
}
.system-health-banner.status-error .system-health-badge { color: #ff6666; }
.system-health-banner.status-ok .system-health-badge { color: #00cc66; }
.system-health-copy {
  min-width: 0;
  flex: 1;
}
.system-health-title {
  color: var(--white);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.4;
}
.system-health-meta,
.system-health-findings {
  margin-top: 2px;
  font-size: 11px;
  line-height: 1.5;
}
.system-health-meta { color: var(--muted); }
.system-health-findings { color: var(--bright); }
.system-health-link {
  flex-shrink: 0;
  color: var(--orange);
  font-size: 11px;
  text-decoration: none;
  white-space: nowrap;
}
.system-health-banner.status-error .system-health-link { color: #ff6666; }
.system-health-banner.status-ok .system-health-link { color: #00cc66; }
.system-health-link:hover { color: var(--white); }
/* ── 1. Flashing price ticks ── */
@keyframes tickFlashGreen {
  0% { filter: drop-shadow(0 0 6px rgba(0,204,102,0.8)) brightness(1.25); }
  100% { filter: none; }
}
@keyframes tickFlashRed {
  0% { filter: drop-shadow(0 0 6px rgba(255,51,51,0.8)) brightness(1.25); }
  100% { filter: none; }
}
.tick-up { animation: tickFlashGreen 0.8s ease-out !important; }
.tick-down { animation: tickFlashRed 0.8s ease-out !important; }

/* ── 2. Ticker tape ── */
.bb-tape {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: var(--z-cmd);
  height: 28px;
  background: var(--bg2);
  border-bottom: 1px solid var(--bdr);
  overflow: hidden;
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  cursor: grab;
  box-shadow: 0 1px 4px rgba(0,0,0,0.4);
}
.bb-tape-track {
  display: flex;
  gap: 24px;
  white-space: nowrap;
  height: 100%;
  align-items: center;
  padding: 0 12px;
  width: max-content;
  will-change: transform;
}
.bb-tape-item {
  display: inline-flex;
  gap: 5px;
  align-items: center;
  flex-shrink: 0;
}
.bb-tape-logo { width: 16px; height: 16px; border-radius: 50%; object-fit: cover; }
.bb-tape-sym { color: var(--green); font-weight: 600; }
.bb-tape-price { color: var(--bright); }
.bb-tape-chg { }
.bb-tape-chg.up { color: #00cc66; }
.bb-tape-chg.down { color: #ff3333; }
.bb-tape-sep { color: var(--bdr3); }

/* ── 3. Heat map cells ── */
/* Applied via inline styles in JS */

/* ── 5. Security header bar ── */
.sec-header {
  display: none;
  align-items: center;
  gap: 0;
  height: 24px;
  background: var(--bg2);
  border-bottom: 1px solid var(--bdr);
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  padding: 0 12px;
  flex-shrink: 0;
}
body.is-token .sec-header { display: none; }
.sec-tag {
  padding: 0 10px;
  color: var(--muted);
  border-right: 1px solid var(--bdr);
  height: 100%;
  display: flex;
  align-items: center;
  gap: 4px;
  text-transform: uppercase;
  letter-spacing: 1px;
}
.sec-tag:last-child { border-right: none; }
.sec-tag svg { flex-shrink: 0; }
.sec-tag.sec-name { color: var(--green); font-weight: 700; }
.sec-tag.sec-pair { color: var(--bright); }

/* Offset app content for status bar */
.app-shell {
  height: calc(100vh - 22px) !important;
}

/* ── Reduced motion ── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ── Focus states for keyboard navigation ── */
:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: 2px;
}
.auth-input:focus-visible,
.tp-search-input:focus-visible,
.cmd-input:focus-visible {
  outline: none;
  border-color: var(--green);
  box-shadow: 0 0 0 2px rgba(255,176,0,0.25);
}
.tp-item:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: -2px;
}

/* ── Loading shimmer for API data ── */
.loading-shimmer {
  background: linear-gradient(90deg, var(--bg3) 25%, var(--bg4) 50%, var(--bg3) 75%);
  background-size: 200% 100%;
  animation: shimmer 1.5s infinite;
  border-radius: 4px;
  color: transparent !important;
  user-select: none;
}
.section-loading-skel {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.section-skel-line,
.section-skel-bar,
.section-skel-tab {
  background: linear-gradient(90deg, var(--bg3) 25%, var(--bg4) 50%, var(--bg3) 75%);
  background-size: 200% 100%;
  animation: shimmer 1.5s infinite;
  border-radius: 4px;
}
.section-skel-line {
  height: 12px;
  width: 100%;
}
.section-skel-line.section-skel-md { width: 72%; }
.section-skel-line.section-skel-sm { width: 46%; }
.section-skel-bar {
  height: 11px;
  border-radius: 6px;
  width: 100%;
}
.section-skel-tabs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4px;
}
.section-skel-tab {
  height: 26px;
}
@keyframes shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}
.stat-error {
  color: var(--red) !important;
  font-size: 11px !important;
  font-family: 'IBM Plex Mono', monospace !important;
  letter-spacing: 0 !important;
}

/* ── Button reset for converted div/span→button ── */
button.tp-section-label,
button.ta-tf-tab,
button#th-ca-row {
  appearance: none;
  -webkit-appearance: none;
  border: none;
  background: inherit;
  font: inherit;
  color: inherit;
  text-align: inherit;
  line-height: inherit;
  cursor: pointer;
  width: 100%;
  padding: 0;
  margin: 0;
}
button.tp-section-label { padding: 10px 10px 10px; }

/* 01R-style sidebar search pass */
.app-left > div:nth-child(2) {
  height: 54px !important;
  padding: 0 7.5px !important;
  align-items: center !important;
  background: var(--bg) !important;
  border-bottom-color: rgba(255,255,255,0.08) !important;
}

#cmd-trigger {
  width: 210px !important;
  transform: translateY(4px) !important;
  height: 32px !important;
  padding: 0 13px !important;
  gap: 11px !important;
  background: #0d0d0d !important;
  border: 1px solid #252525 !important;
  border-radius: 10px !important;
  color: #7c7c82 !important;
  font-family: 'Geist Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.035), 0 1px 0 rgba(255,255,255,0.025) !important;
}

#cmd-trigger svg {
  width: 15px !important;
  height: 15px !important;
  color: #626267 !important;
  stroke-width: 2.35 !important;
}

#cmd-trigger span {
  color: #7c7c82 !important;
}

#cmd-trigger:hover,
#cmd-trigger:focus-visible {
  background: #111111 !important;
  border-color: #343434 !important;
  color: #a6a6ab !important;
  outline: none !important;
}

#cmd-trigger:hover svg,
#cmd-trigger:hover span,
#cmd-trigger:focus-visible svg,
#cmd-trigger:focus-visible span {
  color: #a6a6ab !important;
}

/* Search results open over the left-rail token sections */
#cmd-overlay {
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  justify-content: flex-start !important;
  align-items: flex-start !important;
  padding: 99px 0 0 12px !important;
}

#cmd-box {
  width: calc(var(--sidebar-width) - 24px) !important;
  max-height: calc(100vh - 250px) !important;
  background: #0d0d0d !important;
  border: 1px solid #252525 !important;
  border-radius: 10px !important;
  box-shadow: 0 18px 42px rgba(0,0,0,0.42), inset 0 1px 0 rgba(255,255,255,0.035) !important;
}

#cmd-box .cmd-input-wrap {
  padding: 9px 11px !important;
  border-bottom-color: #202020 !important;
}

#cmd-box .cmd-input-wrap svg {
  width: 15px !important;
  height: 15px !important;
  color: #626267 !important;
}

#cmd-input {
  color: #e7e7e7 !important;
  font-size: 13px !important;
}

#cmd-input::placeholder {
  color: #77777d !important;
}

#cmd-box .cmd-kbd {
  color: #77777d !important;
  border-color: #2a2a2a !important;
  background: #111111 !important;
}

#cmd-results {
  padding: 5px !important;
}

#cmd-results .cmd-item {
  border-radius: 8px !important;
  padding: 7px 8px !important;
}

/* 01R-style left sidebar polish pass */
.app-left {
  background: #050505 !important;
  border-right-color: #1b1b1b !important;
  box-shadow: 8px 0 28px rgba(0,0,0,0.18) !important;
}

.app-token-list {
  gap: 0 !important;
}

.tp-section-label {
  min-height: 35px !important;
  padding: 0 12px !important;
  background: transparent !important;
  border-top: 1px solid #111111 !important;
  border-bottom: 1px solid #111111 !important;
  color: #d7d7d7 !important;
  font-family: 'Geist Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
  font-size: 13px !important;
  font-weight: 560 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

.tp-section-label:hover {
  background: #0d0d0d !important;
  color: #ffffff !important;
}

.tp-section-label svg {
  width: 15px !important;
  height: 15px !important;
  opacity: 0.8 !important;
}

.tp-section-label > span:first-child {
  gap: 8px !important;
}

.tp-section-arrow {
  color: #8b8b91 !important;
}

.tp-section-label:hover .tp-section-arrow {
  color: #d7d7d7 !important;
}

.tp-section-label.collapsed .tp-section-arrow {
  color: #707077 !important;
}

.tp-item {
  min-height: 38px !important;
  margin: 2px 8px !important;
  padding: 4px 8px !important;
  border-bottom: 0 !important;
  border-radius: 10px !important;
  color: #d7d7d7 !important;
}

.tp-item:hover {
  background: #101010 !important;
  box-shadow: inset 0 0 0 1px #202020 !important;
}

.tp-item.active {
  background: #171717 !important;
  box-shadow: inset 0 0 0 1px #363636 !important;
}

.tp-item.active::before {
  display: none !important;
}

.tp-empty-watchlist {
  cursor: default !important;
  color: #6f6f76 !important;
  background: #090909 !important;
  box-shadow: inset 0 0 0 1px #161616 !important;
  pointer-events: none;
}

.tp-empty-watchlist .tp-row {
  justify-content: center !important;
}

.tp-empty-watchlist .tp-name {
  color: #77777d !important;
  font-weight: 520 !important;
}

.tp-name {
  color: #f1f1f1 !important;
  font-family: 'Geist Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
  font-size: 13px !important;
  font-weight: 650 !important;
  letter-spacing: 0 !important;
}

.tp-price,
.tp-chg-row {
  font-family: var(--numeric-font) !important;
  letter-spacing: 0 !important;
}

.tp-price {
  color: #e6e6e6 !important;
  font-size: 12px !important;
}

.tp-chg-row {
  font-size: 10px !important;
  color: #7d7d82 !important;
}

.tp-icon {
  width: 28px !important;
  height: 28px !important;
  border-radius: 999px !important;
  box-shadow: 0 0 0 1px rgba(255,255,255,0.07) !important;
}

#tlp-all-list,
#tlp-wl-list,
#tlp-launches-list,
#tlp-discounts-list,
#tlp-premiums-list,
#tlp-perm-list,
#tlp-permless-list {
  padding: 4px 0 !important;
}

#tlp-wl-list {
  max-height: 134px !important;
  flex: 0 1 auto !important;
}

.tp-wl-section {
  background: #101010 !important;
  border-top: 1px solid #1d1d1d !important;
}

.tp-footer {
  border-top-color: #1d1d1d !important;
}

.tp-links-section {
  border-top-color: #1d1d1d !important;
}

.tp-links-label {
  color: #77777d !important;
  font-family: 'Geist Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
  font-weight: 560 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

/* 01R-style right panel polish pass */
body.is-token .token-stats-col {
  background: #050505 !important;
  border-left-color: #1b1b1b !important;
  box-shadow: -8px 0 28px rgba(0,0,0,0.18) !important;
}

body.is-token .rp-identity {
  background: #050505 !important;
  border-bottom-color: #111111 !important;
}

body.is-token .rp-identity > div:last-child > div:first-child {
  background: #1b1b1b !important;
}

body.is-token .rp-scroll {
  padding: 8px !important;
  background: #050505 !important;
}

body.is-token .rp-links-bar,
body.is-token #hero-stats-grid,
body.is-token #rp-prem-disc-box,
body.is-token #tc-card,
body.is-token #es-card {
  border: 1px solid #161616 !important;
  border-radius: 10px !important;
  background: #080808 !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.025) !important;
  overflow: hidden !important;
}

body.is-token .rp-links-bar {
  height: 44px !important;
  padding: 0 6px !important;
  gap: 6px !important;
  margin-bottom: 8px !important;
}

body.is-token .rp-link-btn {
  min-height: 28px !important;
  border-radius: 6px !important;
  border-color: #202020 !important;
  background: #0c0c0c !important;
  color: #9a9a9a !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 0.06em !important;
}

body.is-token .rp-link-btn:hover,
body.is-token #rp-wl-btn:hover,
body.is-token #link-website:hover,
body.is-token #link-twitter:hover,
body.is-token #link-telegram:hover {
  background: #121212 !important;
  border-color: #2d2d2d !important;
  color: #ededed !important;
}

body.is-token .rp-link-btn.watched {
  background: rgba(255,176,0,0.08) !important;
  border-color: rgba(255,176,0,0.28) !important;
  color: #ffcc00 !important;
}

body.is-token #hero-stats-grid {
  margin-bottom: 8px !important;
}

body.is-token #decision-markets-section {
  border-bottom: 0 !important;
  padding: 8px 10px 12px !important;
}

body.is-token #hero-stats-grid > div[data-stale-box="1"] {
  background: #090909 !important;
  padding: 12px 14px !important;
}

body.is-token #hero-stats-grid > div[data-stale-box="1"] + div[data-stale-box="1"] {
  border-left-color: #1b1b1b !important;
}

body.is-token #rp-pnav-badge {
  border-radius: 8px !important;
  background: #111111 !important;
  border-color: #282828 !important;
  padding: 5px 14px !important;
  box-shadow: 0 8px 18px rgba(0,0,0,0.28) !important;
}

body.is-token #rp-pnav-label {
  font-size: 10px !important;
  letter-spacing: 0.08em !important;
}

body.is-token #rp-pnav-value {
  font-size: 17px !important;
}

body.is-token #hero-stats-grid + div {
  border: 1px solid #161616 !important;
  border-radius: 10px !important;
  background: #080808 !important;
  margin-bottom: 8px !important;
  overflow: hidden !important;
}

body.is-token #hero-stats-grid + div > div {
  padding: 6px 9px !important;
  border-left-color: #1b1b1b !important;
  background: #080808 !important;
}

body.is-token #rp-prem-disc-box {
  margin-bottom: 8px !important;
}

body.is-token #rp-prem-disc-box .rp-metric-row,
body.is-token #rp-prem-disc-box .rp-secondary-metric-row {
  background: #080808 !important;
  border-bottom-color: #161616 !important;
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

body.is-token .rp-metric-card,
body.is-token #rp-prem-disc-box .rp-secondary-metric-row > div {
  background: #090909 !important;
  min-height: 64px !important;
  padding: 10px 10px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  gap: 7px !important;
  position: relative !important;
}

body.is-token #rp-prem-disc-box .rp-metric-card,
body.is-token #rp-prem-disc-box .rp-secondary-metric-row > div {
  border-left: 0 !important;
}

body.is-token #rp-prem-disc-box .rp-metric-card + .rp-metric-card,
body.is-token #rp-prem-disc-box .rp-secondary-metric-row > div + div {
  border-left: 1px solid #1b1b1b !important;
}

body.is-token #rp-prem-disc-box .rp-stat-label,
body.is-token #rp-prem-disc-box .rp-metric-card .rp-stat-label {
  margin: 0 !important;
  line-height: 1.1 !important;
}

body.is-token #rp-prem-disc-box .rp-stat-val,
body.is-token #rp-prem-disc-box .rp-metric-card .rp-stat-val {
  margin: 0 !important;
  line-height: 1.05 !important;
}

body.is-token #rp-prem-disc-box #vol24-chg {
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 7px !important;
  line-height: 1 !important;
  text-align: center !important;
}

body.is-token #rp-prem-disc-box #vol24-net,
body.is-token #rp-prem-disc-box #vol24-buy,
body.is-token #rp-prem-disc-box #vol24-sell,
body.is-token #rp-prem-disc-box #rp-pnav-ratio,
body.is-token #rp-prem-disc-box #rp-pnav-sub {
  display: none !important;
}

body.is-token #tc-card,
body.is-token #es-card {
  margin-top: 8px !important;
  padding: 12px 14px 14px !important;
}

body.is-token #tc-card .rp-stat-label,
body.is-token #es-card .rp-stat-label {
  text-align: left !important;
  margin-bottom: 8px !important;
  color: #b6b6b6 !important;
  font-size: 12px !important;
  letter-spacing: 0.06em !important;
}

body.is-token .dp-tbar,
body.is-token .dp-inline-bar,
body.is-token .hldr-bar-wrap,
body.is-token .hldr-conc-bar-track {
  background: #101010 !important;
  border-color: #202020 !important;
  border-radius: 6px !important;
}

body.is-token .dp-trow,
body.is-token .dp-row {
  border-bottom-color: rgba(255,255,255,0.035) !important;
}

body.is-token .dp-key,
body.is-token .dp-trow-left,
body.is-token .tc-runway-label {
  color: #9a9a9a !important;
}

.tp-footer-link,
.tp-footer-btn {
  background: #101010 !important;
  border-color: #242424 !important;
  border-radius: 8px !important;
  color: #cfcfcf !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.025) !important;
}

.tp-footer-link:hover,
.tp-footer-btn:hover {
  background: #191919 !important;
  border-color: #383838 !important;
  color: #ffffff !important;
}

.tp-footer-link.disabled,
.tp-footer-btn.disabled {
  background: #0b0b0b !important;
  border-color: #1f1f1f !important;
  color: #55555a !important;
}

.app-brand-text span {
  font-family: inherit !important;
  font-weight: 400 !important;
  letter-spacing: -0.09em !important;
}

.app-brand > div:first-child {
  margin-right: -4px !important;
}
