/* ═══════════════════════════════════════════════════════════
   VIPER DEPLOYER — Design System
   Dark · Ice Blue/Red/Black · Modern SaaS Dashboard
═══════════════════════════════════════════════════════════ */

/* ── Fonts ─────────────────────────────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&family=Fira+Code:wght@400;500;600&display=swap');

/* ── Variables ─────────────────────────────────────────── */
:root {
  --bg:          #020202;
  --bg1:         #070707;
  --bg2:         #0c0c0c;
  --bg3:         #111111;
  --bg4:         #181818;
  --border:      #181818;
  --border1:     #1e1e1e;
  --border2:     #232323;

  --green:       #7dd3fc;
  --green-dim:   #38bdf8;
  --green-dark:  #082f49;
  --green-glow:  rgba(125,211,252,0.30);
  --green-bg:    rgba(125,211,252,0.09);

  --red:         #ff2255;
  --red-dim:     #dd0a3c;
  --red-dark:    #5a0018;
  --red-glow:    rgba(255,34,85,0.28);
  --red-bg:      rgba(255,34,85,0.09);

  --orange:      #ff8c00;
  --orange-bg:   rgba(255,140,0,0.1);
  --blue:        #3b82f6;
  --blue-bg:     rgba(59,130,246,0.1);
  --purple:      #a855f7;
  --purple-bg:   rgba(168,85,247,0.1);

  --text:        #ededed;
  --text1:       #d4d4d4;
  --text2:       #888888;
  --text3:       #444444;

  --font:        'Inter', system-ui, sans-serif;
  --mono:        'Fira Code', 'JetBrains Mono', monospace;

  --sb-width:    200px;
  --radius:      10px;
  --radius-sm:   6px;
  --transition:  0.15s ease;

  /* Wizard / Stepper */
  --dw-connector: #1e1e1e;
  --dw-step-done: rgba(125,211,252,0.7);
  --dw-step-active-glow: 0 0 14px rgba(125,211,252,0.35);

  /* z-index scale */
  --z-base:    10;
  --z-overlay: 20;
  --z-modal:   30;
  --z-topbar:  100;
}

/* ── Custom icons (emoji replacements) ──────────────────── */
.ico { display: inline-flex; align-items: center; justify-content: center; vertical-align: middle; }
.ico svg { flex-shrink: 0; }
.ico-sm svg { width: 14px; height: 14px; }
.ico-md svg { width: 16px; height: 16px; }
.ico-lg svg { width: 18px; height: 18px; }

/* ── Reset ──────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html, body { height: 100%; }
body {
  font-family: var(--font);
  font-size: 14px;
  background: var(--bg);
  color: var(--text);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
button { font-family: var(--font); cursor: pointer; }
input, select, textarea {
  font-family: var(--font);
  font-size: 13px;
  color: var(--text);
  background: var(--bg3);
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
  padding: 8px 12px;
  width: 100%;
  outline: none;
  transition: border-color var(--transition), box-shadow var(--transition);
}
input:focus, select:focus, textarea:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 3px rgba(125,211,252,0.18), 0 0 18px rgba(125,211,252,0.22);
}
input:disabled { opacity: 0.4; cursor: not-allowed; }
textarea { resize: vertical; min-height: 60px; }
select { cursor: pointer; }
label {
  display: block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: var(--text2);
  margin-bottom: 6px;
  text-transform: uppercase;
}

/* ── App Layout ─────────────────────────────────────────── */
.app {
  display: flex;
  flex-direction: column;
  height: 100vh;
  overflow: hidden;
}

/* ── App Body (sidebar + main) ──────────────────────────── */
.app-body {
  display: flex;
  flex: 1;
  overflow: hidden;
  min-height: 0;
}

.app.trade-active .sidebar {
  display: none;
}
.app.trade-active .main {
  flex: 1;
}

/* ══════════════════════════════════════════════════════════
   TOP BAR
══════════════════════════════════════════════════════════ */
.topbar {
  height: 62px;
  min-height: 62px;
  background: var(--bg1);
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: center;
  gap: 0;
  padding: 0 16px 0 0;
  position: relative;
  z-index: 100;
  box-shadow: 0 2px 20px rgba(0,0,0,0.4);
}
.topbar::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, var(--green), transparent 60%);
  opacity: 0.4;
}

.topbar-brand {
  display: grid;
  grid-template-columns: 32px auto;
  grid-template-rows: auto auto;
  align-content: center;
  align-items: center;
  justify-content: center;
  width: 200px;
  min-width: 200px;
  padding: 0 16px;
  border-right: 1px solid var(--border);
  height: 100%;
  gap: 3px;
}
.topbar-cobra {
  font-family: var(--mono);
  font-size: 21px;
  font-weight: 700;
  letter-spacing: 0.22em;
  color: var(--green);
  text-shadow: 0 0 12px rgba(125,211,252,0.7), 0 0 30px rgba(125,211,252,0.35);
  line-height: 1;
}
.topbar-terminal {
  font-family: var(--mono);
  font-size: 8px;
  font-weight: 600;
  letter-spacing: 0.45em;
  color: var(--text3);
  text-transform: uppercase;
  padding-left: 0.45em;
  line-height: 1;
}

/* Top nav items */
.topbar-nav {
  display: flex;
  align-items: center;
  height: 100%;
  flex: 1;
  padding: 0 8px;
  gap: 2px;
}
.topnav-item {
  display: flex;
  align-items: center;
  gap: 7px;
  height: 36px;
  padding: 0 16px;
  border-radius: var(--radius-sm);
  font-size: 13px;
  font-weight: 600;
  color: var(--text2);
  cursor: pointer;
  transition: background var(--transition), color var(--transition);
  user-select: none;
  letter-spacing: 0.03em;
  white-space: nowrap;
  position: relative;
}
.topnav-item:hover { background: var(--bg3); color: var(--text); }
.topnav-item.active {
  background: var(--green-bg);
  color: var(--green);
  border: 1px solid rgba(125,211,252,0.2);
  box-shadow: inset 0 0 12px rgba(125,211,252,0.06), 0 0 10px rgba(125,211,252,0.08);
  text-shadow: 0 0 10px rgba(125,211,252,0.4);
}
.topnav-icon {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  stroke: currentColor;
}

/* Top bar right side */
.topbar-right {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.topbar-right .status-pill {
  padding: 5px 10px;
  font-size: 10px;
}
.topbar-preflight {
  padding: 6px 14px;
  background: var(--bg3);
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
  color: var(--text2);
  font-size: 11px;
  font-weight: 500;
  transition: background var(--transition), color var(--transition), border-color var(--transition);
  white-space: nowrap;
}
.topbar-preflight:hover { background: var(--bg4); color: var(--text); border-color: var(--green-dark); }

/* ══════════════════════════════════════════════════════════
   BOTTOM BAR
══════════════════════════════════════════════════════════ */
.bottombar {
  height: 32px;
  min-height: 32px;
  background: var(--bg1);
  border-top: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 16px;
  gap: 0;
  position: relative;
  z-index: 100;
}
.bottombar::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, var(--green), transparent 40%);
  opacity: 0.3;
}

.bb-left {
  display: flex;
  align-items: center;
  gap: 0;
  height: 100%;
}
.bb-right {
  display: flex;
  align-items: center;
  gap: 4px;
}

.bb-stat {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 0 14px;
  height: 100%;
}
.bb-divider {
  width: 1px;
  height: 18px;
  background: var(--border2);
}
.bb-label {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--text3);
  text-transform: uppercase;
}
.bb-val {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 600;
  color: var(--text1);
}
.bb-logo-pump,
.bb-logo-sol {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}
.bb-img-logo {
  display: block;
  object-fit: contain;
}
.bb-logo-pump .bb-img-logo {
  filter: brightness(1.4) contrast(1.1);
}

.bb-social {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: var(--radius-sm);
  color: var(--text3);
  transition: background var(--transition), color var(--transition);
}
.bb-social:hover { background: var(--bg3); color: var(--text1); }

/* ══════════════════════════════════════════════════════════
   SIDEBAR — section label
══════════════════════════════════════════════════════════ */
.sb-section-label {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: var(--green);
  text-transform: uppercase;
  padding: 14px 16px 8px;
  opacity: 0.7;
}

/* ══════════════════════════════════════════════════════════
   SIDEBAR
══════════════════════════════════════════════════════════ */
.sidebar {
  width: var(--sb-width);
  min-width: var(--sb-width);
  background: var(--bg1);
  border-right: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  overflow-x: hidden;
  box-shadow: 2px 0 20px rgba(0,0,0,0.5);
  position: relative;
}
.sidebar::before {
  content: none;
}

/* Logo */
.sb-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 22px 18px 18px;
  border-bottom: 1px solid var(--border);
}
.sb-wordmark {
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: 1;
  gap: 3px;
}
.sb-wordmark-cobra {
  font-family: var(--mono);
  font-size: 26px;
  font-weight: 700;
  letter-spacing: 0.22em;
  color: var(--green);
  text-shadow: 0 0 12px rgba(125,211,252,0.7), 0 0 30px rgba(125,211,252,0.35), 0 0 60px rgba(125,211,252,0.12);
}
.sb-wordmark-terminal {
  font-family: var(--mono);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.45em;
  color: var(--text3);
  text-transform: uppercase;
  padding-left: 0.45em; /* optical offset for letter-spacing */
}

/* Status pills */
.sb-status {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--border);
}
.status-pill {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  border-radius: 20px;
  border: 1px solid var(--border2);
  background: var(--bg2);
  font-size: 11px;
}
.status-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--text3);
  flex-shrink: 0;
  transition: background var(--transition), box-shadow var(--transition);
}
.status-pill.on .status-dot { background: var(--green); box-shadow: 0 0 8px rgba(125,211,252,0.8), 0 0 16px rgba(125,211,252,0.4); }
.status-pill.off .status-dot { background: var(--red); box-shadow: 0 0 8px rgba(255,34,85,0.8), 0 0 16px rgba(255,34,85,0.4); }
.status-pill-label { font-weight: 600; color: var(--text3); letter-spacing: 0.05em; }
.status-pill-val { margin-left: auto; font-family: var(--mono); font-size: 10px; color: var(--text3); }
.status-pill.on .status-pill-val { color: var(--green); }

/* Nav */
.sb-nav {
  flex: 1;
  padding: 12px 10px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.sb-nav-section {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--text3);
  padding: 10px 8px 4px;
  text-transform: uppercase;
}
.sb-nav-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 10px;
  border-radius: var(--radius-sm);
  font-size: 13px;
  font-weight: 500;
  color: var(--text2);
  cursor: pointer;
  transition: background var(--transition), color var(--transition);
  user-select: none;
  position: relative;
}
.sb-nav-item:hover:not(.disabled) { background: var(--bg3); color: var(--text); }
.sb-nav-item.active {
  background: var(--green-bg);
  color: var(--green);
  border: 1px solid rgba(125,211,252,0.25);
  box-shadow: inset 0 0 12px rgba(125,211,252,0.06), 0 0 10px rgba(125,211,252,0.08);
  text-shadow: 0 0 10px rgba(125,211,252,0.4);
}
.sb-nav-item.disabled { opacity: 0.4; cursor: default; }
.sb-icon { width: 16px; height: 16px; flex-shrink: 0; stroke: currentColor; }
.sb-badge {
  margin-left: auto;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.06em;
  padding: 2px 6px;
  border-radius: 20px;
}
.sb-badge.soon   { background: var(--bg4); color: var(--text3); border: 1px solid var(--border2); }
.sb-badge.privacy { background: var(--green-bg); color: var(--green); border: 1px solid var(--green-dark); }
.sb-badge.shield  { background: var(--red-bg); color: var(--red); border: 1px solid var(--red-dark); }

/* Deploy: saved configs list (image, token name, X) */
.lc-saved-list {
  margin-top: auto;
  padding: 10px;
  border-top: 1px solid var(--border2);
  background: var(--bg2);
  max-height: 200px;
  overflow-y: auto;
}
.lc-saved-head {
  font-size: 9px;
  font-weight: 700;
  color: var(--text3);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 8px;
}
.lc-saved-list-content { display: flex; flex-direction: column; gap: 6px; }
.lc-saved-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 8px;
  border-radius: var(--radius-sm);
  background: var(--bg3);
  border: 1px solid var(--border2);
  cursor: pointer;
  transition: background .15s, border-color .15s;
}
.lc-saved-item:hover { background: var(--bg4); border-color: var(--border1); }
.lc-saved-img {
  width: 28px;
  height: 28px;
  border-radius: 6px;
  object-fit: cover;
  flex-shrink: 0;
}
.lc-saved-img-placeholder {
  background: var(--bg4);
  border: 1px solid var(--border2);
}
.lc-saved-name {
  flex: 1;
  min-width: 0;
  font-size: 11px;
  font-weight: 600;
  color: var(--text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.lc-saved-del {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  padding: 0;
  border: none;
  background: transparent;
  color: var(--text3);
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color .15s, background .15s;
}
.lc-saved-del:hover { color: var(--red); background: var(--red-bg); }

/* Preflight button (topbar version) */
.sb-footer { display: none; }
.preflight-btn {
  padding: 7px 12px;
  background: var(--bg3);
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
  color: var(--text2);
  font-size: 11px;
  font-weight: 500;
  transition: background var(--transition), color var(--transition), border-color var(--transition);
}
.preflight-btn:hover { background: var(--bg4); color: var(--text); border-color: var(--green-dark); }

/* ══════════════════════════════════════════════════════════
   INNER PAGE TABS
══════════════════════════════════════════════════════════ */
.inner-tabs {
  display: flex;
  align-items: center;
  gap: 4px;
  padding-bottom: 18px;
  margin-bottom: 20px;
  border-bottom: 1px solid var(--border1);
}
.inner-tab-btn {
  height: 34px;
  padding: 0 16px;
  border-radius: var(--radius-sm);
  border: 1px solid transparent;
  background: transparent;
  color: var(--text2);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 7px;
  transition: background var(--transition), color var(--transition), border-color var(--transition);
  white-space: nowrap;
  font-family: var(--font);
}
.inner-tab-btn:hover { background: var(--bg3); color: var(--text1); }
.inner-tab-btn.active {
  background: var(--green-bg);
  color: var(--green);
  border-color: rgba(125,211,252,0.2);
  text-shadow: 0 0 8px rgba(125,211,252,0.3);
}
.inner-tab-btn svg { flex-shrink: 0; stroke: currentColor; }
.inner-tab-spacer { flex: 1; }

/* ══════════════════════════════════════════════════════════
   MAIN CONTENT
══════════════════════════════════════════════════════════ */
.main {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  background: var(--bg);
  min-width: 0;
}

/* Pages — fill main, scroll inside page or tab panel */
.page {
  display: none;
  padding: 16px 24px 20px;
  max-width: 1200px;
  flex: 1;
  min-height: 0;
  flex-direction: column;
  overflow: hidden;
}
.page.active {
  display: flex;
}
/* All pages: no scroll, content fills viewport */
.page.active:has([data-tab-group-panel]) {
  overflow: hidden;
}
.page [data-tab-group-panel] {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
/* Boost pages: panel scrolls (holders/makers) so launch bar stays visible */
#page-holders [data-tab-group-panel],
#page-makers [data-tab-group-panel] {
  overflow-y: auto;
}
/* Pages without tab panels: also fill, no scroll */
.page.active:not(:has([data-tab-group-panel])) {
  overflow: hidden;
}
#page-bundler .page-head { margin-bottom: 14px; }
#page-splitnow.page.active { overflow-y: auto; }
.page-head { margin-bottom: 16px; }
.page .card { margin-bottom: 12px; }
.page .card:last-child { margin-bottom: 0; }

/* ══ Tools / Wallets — lista portfeli jako główny widok ═══════════ */
#page-wallets.page.active {
  display: flex;
  flex-direction: column;
  min-height: 0;
}
#walletTransferCard {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
#walletTransferCard .card-head {
  flex-shrink: 0;
  margin-bottom: 12px;
}
#walletTransferCard.card {
  padding: 16px;
}
#walletTransferCard .wt3-layout {
  flex: 1;
  min-height: 0;
  align-items: stretch;
}
#page-wallets .page-head { margin-bottom: 8px; }
#page-wallets .inner-tabs { margin-bottom: 6px; }
#page-wallets #wallets-manage-panel {
  flex-shrink: 0;
  margin-bottom: 8px;
  overflow: visible;
}
/* Kompaktowa belka akcji (Generate | Import/Export | Warmup) */
.wallets-actions-bar {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
  padding: 10px 16px;
  background: var(--bg1);
  border: 1px solid var(--border1);
  border-radius: var(--radius);
  overflow: visible;
}
.wa-group {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.wa-label {
  font-size: 10px;
  font-weight: 600;
  color: var(--text3);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin: 0;
  flex-shrink: 0;
}
.wa-badge {
  font-size: 9px;
  padding: 2px 6px;
  margin-left: 4px;
  vertical-align: middle;
}
.wa-input {
  width: 52px;
  height: 32px;
  padding: 0 10px;
  font-size: 13px;
  font-family: var(--mono);
  background: var(--bg);
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
  color: var(--text);
  box-sizing: border-box;
}
.wa-input:focus {
  outline: none;
  border-color: var(--green);
  box-shadow: 0 0 0 2px rgba(125,211,252,0.1);
}
.wallets-actions-bar .btn,
.wallets-actions-bar .btn-launch-deploy {
  height: 32px;
  padding: 0 14px;
  font-size: 12px;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border-radius: var(--radius-sm);
}
.wallets-actions-bar .btn svg,
.wallets-actions-bar .btn-launch-deploy svg {
  width: 13px;
  height: 13px;
  flex-shrink: 0;
}
.wallets-actions-bar .warmup-info-wrap {
  margin-left: 0;
}
.wallets-actions-bar .warmup-info-icon {
  width: 20px;
  height: 20px;
  font-size: 11px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.wa-sep {
  width: 1px;
  height: 28px;
  background: var(--border2);
  flex-shrink: 0;
}
.wallets-list-wrap {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.wallets-list-wrap #walletCardList {
  flex: 1;
  min-height: 0;
  margin-top: 6px;
  max-height: none;
  overflow-y: auto;
  gap: 8px;
}
.wallets-list-wrap .wallet-card {
  padding: 8px 12px;
}
.wallets-list-wrap .wallet-card-head {
  margin-bottom: 4px;
  gap: 8px;
}
.wallets-list-wrap .wallet-row {
  padding: 5px 0;
}
.wallets-list-wrap .wf-toolbar {
  margin-bottom: 6px;
}
/* Summary (Wallets/Balance) po lewej, przyciski po prawej */
.wf-summary {
  display: flex;
  align-items: center;
  gap: 16px;
  padding-right: 12px;
  border-right: 1px solid var(--border2);
}
.wf-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
}
.wf-summary-item {
  display: flex;
  align-items: baseline;
  gap: 6px;
}
.wf-summary-lbl {
  font-size: 10px;
  font-weight: 600;
  color: var(--text3);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.wf-summary-val {
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 600;
  color: var(--text);
}

/* Tab panels: content fills, no scroll */
#deploy-tab-meta > .lc-token-info-wrap {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
#deploy-tab-meta .lc-token-info-wrap .lc-token-info-card {
  flex: 1;
  min-height: 0;
  overflow: hidden;
}
#deploy-tab-meta .lc-token-info-wrap .lc-launch-bar {
  flex-shrink: 0;
}
#deploy-tab-wallets,
#deploy-tab-tasks {
  display: flex;
  flex-direction: column;
}
#deploy-tab-tasks {
  overflow-y: auto;
}
#deploy-tab-wallets {
  overflow-y: auto;
  overflow-x: visible;
  min-height: 0;
}
#deploy-tab-wallets .card:not(#lcWalletCard),
#deploy-tab-tasks .card {
  flex-shrink: 0;
}
#deploy-tab-wallets #lcWalletCard {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
#deploy-tab-wallets #lcWalletBody {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
}
#deploy-tab-tasks .tw-task-list {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
}
#deploy-tab-wallets .lc-picker-dropdown {
  position: absolute;
  z-index: 9999;
}
/* Vanish (standalone page + embedded trade tab): lista portfeli scrolluje w panelu */
#page-vanish .page-head {
  flex-shrink: 0;
}
/* Volume Bot — overlay compact mode (Trade Panel floating panel) */
#page-volume.volume-overlay-compact .page-head { display: none; }
#page-volume.volume-overlay-compact { height: auto !important; overflow: visible !important; }
#page-volume.volume-overlay-compact [data-tab-group-panel] {
  flex: none !important;
  min-height: unset !important;
  overflow: visible !important;
  height: auto !important;
}
/* Vanish — overlay compact mode (Trade Panel floating panel) */
#page-vanish.vanish-overlay-compact .page-head { display: none; }
#page-vanish.vanish-overlay-compact .tp-vanish-note { display: none; }
#page-vanish > .card,
#trade-tab-vanish .card {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
#page-vanish .card-head,
#page-vanish .tp-vanish-cfg,
#trade-tab-vanish .card-head,
#trade-tab-vanish .tp-vanish-cfg {
  flex-shrink: 0;
}
#page-vanish .tp-vanish-list-wrap,
#trade-tab-vanish .tp-vanish-list-wrap {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
#page-vanish .tp-vanish-list-head,
#trade-tab-vanish .tp-vanish-list-head {
  flex-shrink: 0;
}
#page-vanish .tp-vanish-cards,
#trade-tab-vanish .tp-vanish-cards {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
#page-vanish .tp-vanish-progress-wrap,
#trade-tab-vanish .tp-vanish-progress-wrap {
  flex-shrink: 0;
}
#trade-tab-vanish {
  display: flex;
  flex-direction: column;
  min-height: 0;
}
#volume-tab-setup,
#volume-tab-live,
#holders-tab-setup,
#holders-tab-progress,
#makers-tab-setup,
#makers-tab-progress {
  display: flex;
  flex-direction: column;
}
#volume-tab-setup .card,
#volume-tab-live .card,
#holders-tab-setup .card,
#holders-tab-progress .card,
#makers-tab-setup .card,
#makers-tab-progress .card {
  flex-shrink: 0;
}
#volume-tab-setup .card {
  margin-bottom: 10px;
}
#volume-tab-setup .card:last-of-type {
  margin-bottom: 0;
}
#volume-tab-live #vbStatsCard,
#volume-tab-live .card:last-of-type { flex: 1; min-height: 0; overflow: hidden; display: flex; flex-direction: column; }
#volume-tab-live .vb-history-wrap { flex: 1; min-height: 0; overflow-y: auto; }
#holders-tab-progress .boost-log,
#makers-tab-progress .boost-log { flex: 1; min-height: 0; overflow-y: auto; }

.page-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 24px;
  gap: 16px;
  flex-wrap: wrap;
}
.page-head-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}

/* ── Vanity pool chip ── */
.vanity-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  border-radius: 20px;
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 700;
  cursor: default;
  border: 1px solid;
  transition: background .2s, color .2s, border-color .2s;
  white-space: nowrap;
}
.vanity-chip.chip-red   { background: rgba(239,68,68,.12);  color: #f87171; border-color: rgba(239,68,68,.3);  }
.vanity-chip.chip-green { background: rgba(125,211,252,.12); color: var(--green); border-color: rgba(125,211,252,.3); }
.vanity-chip.chip-dim   { background: var(--bg2); color: var(--text3); border-color: var(--border2); }

.vm-option {
  padding: 9px 11px;
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
  background: var(--bg);
  cursor: pointer;
  transition: border-color .15s, background .15s;
}
.vm-option:hover { border-color: var(--text3); background: var(--bg3); }

/* ── Launch Config Save/Load dropdown ── */
.lc-config-menu {
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  z-index: 999;
  background: var(--bg2);
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
  min-width: 220px;
  max-height: 280px;
  overflow-y: auto;
  padding: 4px;
  box-shadow: 0 8px 24px rgba(0,0,0,.45);
}
/* Save panel */
.lc-save-panel {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  z-index: 999;
  background: var(--bg2);
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
  padding: 12px;
  min-width: 280px;
  box-shadow: 0 8px 24px rgba(0,0,0,.45);
}
.lc-save-label {
  font-size: 11px;
  color: var(--text3);
  text-transform: uppercase;
  letter-spacing: .05em;
  margin-bottom: 8px;
}
.lc-save-row {
  display: flex;
  gap: 6px;
  align-items: center;
}
.lc-save-input {
  flex: 1;
  font-size: 13px;
  min-width: 0;
}
.lc-config-empty {
  font-size: 12px;
  color: var(--text3);
  padding: 10px 12px;
  text-align: center;
}
.lc-config-item {
  display: flex;
  align-items: center;
  border-radius: 5px;
  overflow: hidden;
}
.lc-config-item-info {
  flex: 1;
  padding: 7px 10px;
  cursor: pointer;
  min-width: 0;
}
.lc-config-item-info:hover { background: rgba(255,255,255,.05); }
.lc-config-item-name {
  display: block;
  font-size: 13px;
  color: var(--text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.lc-config-item-meta {
  display: block;
  font-size: 11px;
  color: var(--text3);
  margin-top: 1px;
}
.lc-config-del {
  background: none;
  border: none;
  color: var(--text3);
  cursor: pointer;
  padding: 6px 9px;
  font-size: 12px;
  flex-shrink: 0;
  transition: color .12s;
}
.lc-config-del:hover { color: #f87171; }
.page-title {
  font-size: 22px;
  font-weight: 700;
  color: var(--text);
  letter-spacing: -0.01em;
}
.page-sub {
  font-size: 13px;
  color: var(--text3);
  margin-top: 3px;
}

/* ══════════════════════════════════════════════════════════
   CARDS
══════════════════════════════════════════════════════════ */
.card {
  background: var(--bg1);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 20px;
  margin-bottom: 16px;
  box-shadow: 0 2px 20px rgba(0,0,0,0.6);
  transition: border-color var(--transition), box-shadow var(--transition);
}
.card:hover {
  border-color: rgba(125,211,252,0.15);
  box-shadow: 0 4px 30px rgba(0,0,0,0.7), 0 0 20px rgba(125,211,252,0.04);
}
.card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
  gap: 12px;
  flex-wrap: wrap;
}
.card-title {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--text);
}
.cbadge {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  padding: 3px 8px;
  border-radius: 20px;
  background: var(--red-bg);
  color: var(--red);
  border: 1px solid var(--red-dark);
  text-transform: uppercase;
}
.cbadge.ok { background: var(--green-bg); color: var(--green); border-color: var(--green-dark); }

/* Card extras */
.card-badge {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  padding: 2px 8px;
  border-radius: 20px;
  background: rgba(125,211,252,.1);
  color: var(--green);
  border: 1px solid rgba(125,211,252,.3);
  text-transform: uppercase;
}
.card-desc {
  font-size: 12px;
  color: var(--text3);
  line-height: 1.6;
  margin-bottom: 14px;
}
.card-note {
  font-size: 11px;
  color: var(--text3);
  margin-top: 10px;
  opacity: 0.75;
}
.warmup-row {
  display: flex;
  align-items: flex-end;
  gap: 12px;
}
.warmup-field { flex: 0 1 180px; margin-bottom: 0; }
.warmup-btn { align-self: flex-end; }

/* Warmup info icon — opis rozwija się on hover */
.warmup-info-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
  margin-left: 6px;
  cursor: help;
}
.warmup-info-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: rgba(255,255,255,0.08);
  border: 1px solid var(--border2);
  font-size: 11px;
  font-weight: 700;
  color: var(--text3);
  transition: background .15s, color .15s, border-color .15s;
}
.warmup-info-wrap:hover .warmup-info-icon {
  background: rgba(125,211,252,0.12);
  border-color: var(--green);
  color: var(--green);
}
.warmup-info-desc {
  position: absolute;
  top: calc(100% + 6px);
  left: 50%;
  transform: translateX(-50%);
  z-index: 100;
  min-width: 280px;
  max-width: 320px;
  padding: 10px 12px;
  background: var(--bg2);
  border: 1px solid var(--border1);
  border-radius: var(--radius-sm);
  font-size: 13px;
  line-height: 1.6;
  color: var(--text2);
  box-shadow: 0 8px 24px rgba(0,0,0,0.4);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .15s, visibility .15s;
}
.warmup-info-wrap:hover .warmup-info-desc {
  opacity: 1;
  visibility: visible;
}

/* Layout helpers */
.two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 16px;
}
@media (max-width: 900px) { .two-col { grid-template-columns: 1fr; } }

.three-col {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 16px;
  margin-bottom: 16px;
}
@media (max-width: 1100px) { .three-col { grid-template-columns: 1fr 1fr; } }
@media (max-width: 700px)  { .three-col { grid-template-columns: 1fr; } }

.fcol { display: flex; flex-direction: column; }
.gap16 { gap: 16px; }

/* ── Fields ─────────────────────────────────────────────── */
.fstack { display: flex; flex-direction: column; gap: 14px; }
.frow   { display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap; }
.field  { display: flex; flex-direction: column; }
.f1     { flex: 1; min-width: 0; }
.field-hint, .field > .field-hint {
  font-size: 11px;
  color: var(--text3);
  margin-top: 4px;
}

/* Input group (input + buttons on one line) */
.igroup { display: flex; gap: 6px; }
.igroup input { flex: 1; }

/* Range slider */
.range-input {
  -webkit-appearance: none;
  appearance: none;
  height: 4px;
  background: var(--bg4);
  border: none;
  border-radius: 2px;
  padding: 0;
  cursor: pointer;
  width: 100%;
}
.range-input:focus { box-shadow: none; border: none; }
.range-input::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 16px; height: 16px;
  border-radius: 50%;
  background: var(--green);
  box-shadow: 0 0 8px var(--green-glow);
  cursor: pointer;
}
.range-labels {
  display: flex;
  justify-content: space-between;
  font-size: 10px;
  color: var(--text3);
  margin-top: 3px;
}
.vbadge {
  font-family: var(--mono);
  font-size: 12px;
  color: var(--green);
  background: var(--green-bg);
  border: 1px solid var(--green-dark);
  border-radius: 4px;
  padding: 1px 6px;
}

/* ══════════════════════════════════════════════════════════
   BUTTONS
══════════════════════════════════════════════════════════ */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  border-radius: var(--radius-sm);
  font-size: 13px;
  font-weight: 500;
  border: 1px solid transparent;
  transition: border-color var(--transition), box-shadow var(--transition), color var(--transition), opacity var(--transition);
  white-space: nowrap;
  cursor: pointer;
}
.btn-primary {
  background: linear-gradient(135deg, var(--green-dim), #0284c7);
  border-color: rgba(125,211,252,0.4);
  color: #000;
  font-weight: 600;
  box-shadow: 0 0 12px rgba(125,211,252,0.25), inset 0 1px 0 rgba(255,255,255,0.08);
}
.btn-primary:hover { background: linear-gradient(135deg, #7dd3fc, #38bdf8); border-color: var(--green-dim); color: #000; box-shadow: 0 0 22px rgba(125,211,252,0.45); }
.btn-ghost {
  background: transparent;
  border-color: var(--border2);
  color: var(--text2);
}
.btn-ghost:hover { background: var(--bg3); border-color: rgba(125,211,252,0.2); color: var(--text); box-shadow: 0 0 8px rgba(125,211,252,0.06); }
.btn-danger {
  background: var(--red-bg);
  border-color: rgba(255,34,85,0.35);
  color: var(--red);
}
.btn-danger:hover { background: rgba(255,34,85,0.16); border-color: var(--red); color: var(--red); box-shadow: 0 0 18px rgba(255,34,85,0.3); }
.btn-success {
  background: linear-gradient(135deg, #0c4a6e, #082f49);
  border-color: rgba(125,211,252,0.5);
  color: #7dd3fc;
  font-weight: 700;
  box-shadow: 0 0 10px rgba(125,211,252,0.2);
}
.btn-success:hover { background: linear-gradient(135deg, #38bdf8, #0369a1); border-color: #7dd3fc; color: #000; box-shadow: 0 0 20px rgba(125,211,252,0.5); }
.tw-exec-btn { letter-spacing: 0.02em; }
.btn-sm { padding: 5px 10px; font-size: 12px; }
.btn-lg { padding: 11px 24px; font-size: 14px; font-weight: 600; }

.btn-row {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}

/* ── Launch Button ──────────────────────────────────────── */
/* Launch card (used by VolumeBot / Holders / Makers — NOT Deploy) */
.launch-card {
  background: linear-gradient(135deg, rgba(125,211,252,0.06) 0%, rgba(125,211,252,0.02) 100%);
  border: 1px solid rgba(125,211,252,0.25);
  border-radius: var(--radius);
  padding: 20px 24px;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  gap: 20px;
  box-shadow: inset 0 0 60px rgba(125,211,252,0.04), 0 0 30px rgba(125,211,252,0.05);
}
.btn-launch {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 11px 28px;
  background: linear-gradient(135deg, var(--green-dim), #0284c7);
  border: 1px solid rgba(125,211,252,0.5);
  border-radius: var(--radius-sm);
  color: #000;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.03em;
  white-space: nowrap;
  cursor: pointer;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
  box-shadow: 0 3px 18px rgba(125,211,252,0.35);
  flex-shrink: 0;
}
.btn-launch:hover {
  background: linear-gradient(135deg, #7dd3fc, #38bdf8);
  transform: translateY(-1px);
  box-shadow: 0 6px 28px rgba(125,211,252,0.5);
}
.btn-launch:active { transform: translateY(0); }
.launch-note {
  font-size: 12px;
  color: var(--text3);
  line-height: 1.6;
  flex: 1;
}

/* ── Deploy inline launch bar ── */
.lc-launch-bar {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 16px;
  padding: 12px 0 4px;
  margin-top: 0;
  border-top: 1px solid var(--border1);
}
.lc-launch-info {
  font-size: 12px;
  color: var(--text3);
  margin-right: auto;
  line-height: 1.5;
}
.btn-launch-deploy {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 24px;
  background: var(--bg3);
  border: 1px solid var(--green);
  border-radius: var(--radius-sm);
  color: var(--green);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.02em;
  white-space: nowrap;
  cursor: pointer;
  flex-shrink: 0;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
  font-family: var(--font);
}
.btn-launch-deploy:hover {
  background: var(--green-bg);
  border-color: var(--green);
  color: var(--green);
  box-shadow: 0 0 0 3px rgba(125,211,252,0.12);
}
.btn-launch-deploy:active {
  background: rgba(125,211,252,0.12);
}
.btn-launch-deploy:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.btn-launch-deploy svg {
  opacity: 0.9;
}

/* ── Preflight Check button ── */
.btn-preflight {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  background: transparent;
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
  color: var(--text2);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.02em;
  white-space: nowrap;
  cursor: pointer;
  flex-shrink: 0;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
  font-family: var(--font);
}
.btn-preflight:hover {
  background: var(--bg3);
  border-color: var(--text3);
  color: var(--text1);
}
.btn-preflight:active {
  background: var(--bg2);
}
.btn-preflight:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.btn-preflight svg { opacity: 0.8; }

/* ── Preflight Modal ── */
.preflight-modal {
  max-width: 520px;
  width: 100%;
}
.preflight-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 14px;
  font-weight: 600;
  color: var(--text1);
  margin-bottom: 16px;
}
.preflight-close-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  background: transparent;
  border: none;
  border-radius: var(--radius-sm);
  color: var(--text3);
  cursor: pointer;
  padding: 0;
  transition: background 0.12s, color 0.12s;
}
.preflight-close-btn:hover { background: var(--bg3); color: var(--text1); }
.preflight-img-row {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 4px;
}
.preflight-token-img {
  width: 72px;
  height: 72px;
  border-radius: var(--radius-sm);
  object-fit: cover;
  flex-shrink: 0;
  border: 1px solid var(--border1);
}
.preflight-no-img {
  width: 72px;
  height: 72px;
  border-radius: var(--radius-sm);
  border: 1px dashed var(--border2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  color: var(--text3);
  flex-shrink: 0;
}
.preflight-meta { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.preflight-field {
  display: flex;
  align-items: baseline;
  gap: 8px;
  font-size: 13px;
}
.preflight-label {
  color: var(--text3);
  font-size: 12px;
  min-width: 110px;
  flex-shrink: 0;
}
.preflight-val {
  color: var(--text1);
  font-weight: 500;
  word-break: break-all;
  min-width: 0;
}
.preflight-mono { font-family: var(--font-mono, monospace); font-size: 11px; color: var(--text2); }
.preflight-copy-addr {
  cursor: pointer;
  text-decoration: underline dotted;
  text-underline-offset: 2px;
  transition: color 0.12s;
}
.preflight-copy-addr:hover { color: var(--text1); }
.preflight-sol { color: var(--green); }
.preflight-divider {
  height: 1px;
  background: var(--border1);
  margin: 12px 0;
}
.preflight-tasks-label {
  font-size: 12px;
  color: var(--text3);
  margin-bottom: 6px;
  font-weight: 500;
}
.preflight-tasks { display: flex; flex-direction: column; gap: 5px; }
.preflight-task {
  font-size: 12px;
  color: var(--text2);
  background: var(--bg3);
  border-radius: var(--radius-sm);
  padding: 6px 10px;
  line-height: 1.5;
}
.preflight-task strong { color: var(--text1); }

/* Boost setup — one block with sections (like Token Info) */
.boost-setup-wrap {
  background: var(--bg1);
  border: 1px solid var(--border1);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: 0 2px 24px rgba(0,0,0,0.4);
  position: relative;
}
.boost-setup-wrap::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--green), transparent 70%);
  opacity: 0.5;
}
#holders-tab-setup .boost-setup-wrap::before {
  background: linear-gradient(90deg, #a78bfa, transparent 70%);
}
#makers-tab-setup .boost-setup-wrap::before {
  background: linear-gradient(90deg, #ffb84d, transparent 70%);
}
#holders-tab-setup .boost-setup-wrap,
#makers-tab-setup .boost-setup-wrap {
  flex-shrink: 0;
}
#holders-tab-setup .boost-setup-section,
#makers-tab-setup .boost-setup-section {
  padding: 8px 18px 10px;
}
#holders-tab-setup .boost-setup-section:last-child,
#makers-tab-setup .boost-setup-section:last-child {
  padding-bottom: 14px;
}
#holders-tab-setup .boost-setup-head,
#makers-tab-setup .boost-setup-head {
  margin-bottom: 6px;
  padding-bottom: 6px;
}
#holders-tab-setup .boost-setup-wrap .hb-cost-bar,
#holders-tab-setup .boost-setup-wrap .frow + .frow,
#makers-tab-setup .boost-setup-wrap .hb-cost-bar,
#makers-tab-setup .boost-setup-wrap .frow + .frow {
  margin-top: 6px;
}
#holders-tab-setup .boost-setup-wrap .hb-cost-bar,
#makers-tab-setup .boost-setup-wrap .hb-cost-bar {
  padding: 6px 12px;
  margin-top: 6px;
}
#page-holders .page-head,
#page-makers .page-head {
  margin-bottom: 12px;
}
#page-holders .boost-info-banner,
#page-makers .boost-info-banner {
  padding: 8px 14px;
  margin-bottom: 10px;
}
#page-holders .inner-tabs,
#page-makers .inner-tabs {
  margin-bottom: 10px;
}
/* Holders Booster — overlay compact mode (Trade Panel floating panel) */
#page-holders.holders-overlay-compact .page-head { display: none; }
#page-holders.holders-overlay-compact .boost-info-banner { display: none; }
/* Makers Booster — dodatkowe zagęszczenie (więcej pól niż Holders) */
#makers-tab-setup .boost-setup-section {
  padding: 6px 18px 8px;
}
#makers-tab-setup .boost-setup-section:last-child {
  padding-bottom: 12px;
}
#makers-tab-setup .boost-setup-head {
  margin-bottom: 4px;
  padding-bottom: 4px;
}
#makers-tab-setup .boost-setup-wrap .frow {
  gap: 10px;
}
#makers-tab-setup .boost-setup-wrap .frow + .frow {
  margin-top: 4px;
}
#makers-tab-setup .boost-setup-wrap .field-hint {
  margin-top: 2px;
  font-size: 10px;
}
#makers-tab-setup .boost-setup-wrap .field input,
#makers-tab-setup .boost-setup-wrap .field select {
  padding: 4px 10px;
}
#page-makers .page-head {
  margin-bottom: 10px;
}
#page-makers .boost-info-banner {
  padding: 6px 14px;
  margin-bottom: 8px;
}
#page-makers .inner-tabs {
  margin-bottom: 8px;
}
.boost-setup-section {
  padding: 10px 18px 12px;
  border-bottom: 1px solid var(--border1);
}
.boost-setup-section:last-child {
  border-bottom: none;
}
.boost-setup-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--border1);
}
.boost-setup-title {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--text1);
  text-transform: uppercase;
}
.boost-setup-wrap .vb-token-row,
.boost-setup-wrap .lc-wallet-sel-wrap,
.boost-setup-wrap .frow {
  margin-bottom: 0;
}
.boost-setup-wrap .vb-token-info {
  margin-top: 6px;
}
.boost-setup-wrap .hb-cost-bar,
.boost-setup-wrap .frow + .frow {
  margin-top: 8px;
}
.boost-setup-wrap .field label {
  font-size: 11px;
  margin-bottom: 3px;
}
.boost-setup-wrap .field input,
.boost-setup-wrap .field select {
  padding: 5px 10px;
  font-size: 12px;
}
.boost-setup-wrap .field-hint {
  font-size: 11px;
  margin-top: 3px;
}
.boost-setup-wrap .hb-cost-bar {
  padding: 8px 12px;
  margin-top: 8px;
  font-size: 12px;
}
.boost-launch-bar {
  margin-top: 12px;
}

/* Boost launch bar — same layout as Token Info; never shrink so it's not cut off */
.boost-launch-bar {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 16px;
  padding: 14px 0 2px;
  margin-top: 14px;
  border-top: 1px solid var(--border1);
}
.boost-launch-info {
  font-size: 12px;
  color: var(--text3);
  margin-right: auto;
  line-height: 1.5;
}
.btn-boost-holders {
  border-color: rgba(139,92,246,0.5);
  color: #a78bfa;
  background: var(--bg3);
}
.btn-boost-holders:hover {
  background: rgba(139,92,246,0.1);
  border-color: #a78bfa;
  color: #a78bfa;
  box-shadow: 0 0 0 3px rgba(139,92,246,0.12);
}
.btn-boost-makers {
  border-color: rgba(255,184,77,0.5);
  color: #ffb84d;
  background: var(--bg3);
}
.btn-boost-makers:hover {
  background: rgba(255,184,77,0.08);
  border-color: #ffb84d;
  color: #ffb84d;
  box-shadow: 0 0 0 3px rgba(255,184,77,0.12);
}
.btn-boost-volume {
  border-color: rgba(56,189,248,0.6);
  color: #7dd3fc;
  background: var(--bg3);
}
.btn-boost-volume:hover {
  background: rgba(56,189,248,0.12);
  border-color: #7dd3fc;
  color: #7dd3fc;
  box-shadow: 0 0 0 3px rgba(56,189,248,0.16);
}

/* ── Token Info panel (one block with launch) ── */
.lc-token-info-wrap {
  background: var(--bg1);
  border: 1px solid var(--border1);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: 0 2px 24px rgba(0,0,0,0.4);
  position: relative;
}
.lc-token-info-wrap::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--green), transparent 70%);
  opacity: 0.6;
}
.lc-token-info-card {
  padding: 24px 24px 20px;
  margin: 0;
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
}
.lc-token-info-card:hover {
  border-color: transparent;
  box-shadow: none;
}
.lc-token-info-card .card-head {
  margin-bottom: 20px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--border1);
}
.lc-token-info-card .card-title {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--text1);
  text-transform: uppercase;
}
.lc-token-info-wrap .lc-meta-grid {
  gap: 24px;
}
.lc-token-info-wrap .lc-meta-fields > .field,
.lc-token-info-wrap .lc-meta-fields > .frow {
  margin-bottom: 16px;
}
.lc-token-info-wrap .lc-meta-fields > .field:last-child,
.lc-token-info-wrap .lc-meta-fields > .frow:last-child {
  margin-bottom: 0;
}
.lc-token-info-wrap .lc-meta-fields .frow {
  gap: 14px;
}
.lc-token-info-wrap .lc-meta-fields .frow .field {
  margin-bottom: 0;
}
.lc-token-info-wrap .lc-meta-fields label {
  font-size: 11px;
  color: var(--text2);
  margin-bottom: 6px;
}
.lc-token-info-wrap .lc-meta-fields input,
.lc-token-info-wrap .lc-meta-fields textarea {
  background: var(--bg2);
  border-color: var(--border2);
}
.lc-token-info-wrap .lc-meta-fields input:focus,
.lc-token-info-wrap .lc-meta-fields textarea:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 2px rgba(125,211,252,0.12);
}
.lc-token-info-wrap .lc-extra-row {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--border1);
  gap: 16px;
  align-items: stretch;
}
.lc-token-info-wrap .upload-zone {
  border-style: dashed;
  border-color: var(--border2);
  background: var(--bg2);
}
.lc-token-info-wrap .upload-zone:hover,
.lc-token-info-wrap .upload-zone.drag-over {
  border-color: rgba(125,211,252,0.4);
  background: var(--green-bg);
}
.lc-token-info-wrap .upload-zone.has-file {
  border-style: solid;
  border-color: rgba(125,211,252,0.25);
}
.lc-token-info-wrap .lc-launch-bar {
  margin-top: 0;
  padding: 12px 20px 14px;
  border-top: 1px solid var(--border1);
  background: rgba(0,0,0,0.15);
}

/* Token Info — balanced spacing, fills nicely */
#deploy-tab-meta .inner-tabs {
  padding-bottom: 14px;
  margin-bottom: 18px;
}
.lc-token-info-card {
  padding: 20px 24px 18px;
}
.lc-token-info-card .card-head {
  margin-bottom: 18px;
  padding-bottom: 12px;
}
.lc-token-info-wrap .lc-meta-grid {
  gap: 22px;
  grid-template-columns: 132px 1fr;
}
.lc-token-info-wrap .lc-meta-image .upload-zone-sq {
  width: 132px;
  height: 132px;
  min-height: 132px;
  padding: 16px;
}
.lc-token-info-wrap .lc-meta-fields > .field,
.lc-token-info-wrap .lc-meta-fields > .frow {
  margin-bottom: 14px;
}
.lc-token-info-wrap .lc-meta-fields label {
  margin-bottom: 5px;
}
.lc-token-info-wrap .lc-meta-fields input,
.lc-token-info-wrap .lc-meta-fields textarea {
  padding: 8px 12px;
  font-size: 13px;
}
.lc-token-info-wrap .lc-meta-fields textarea {
  min-height: 52px;
}
.lc-token-info-wrap .lc-extra-row {
  margin-top: 16px;
  padding-top: 16px;
  gap: 16px;
}
.lc-token-info-wrap .upload-zone-banner {
  height: 100%;
  min-height: 0;
}
.lc-token-info-wrap .upload-zone-banner .upload-content .upload-text,
.lc-token-info-wrap .upload-zone-banner .upload-hint {
  font-size: 12px;
}
.lc-token-info-wrap .upload-zone .upload-content svg {
  width: 24px;
  height: 24px;
}
.lc-token-info-wrap .lc-meta-image .upload-zone .upload-text {
  font-size: 12px;
}
.lc-token-info-wrap .lc-meta-image .upload-zone .upload-hint {
  font-size: 11px;
}
.lc-token-info-wrap .lc-launch-bar {
  padding: 16px 24px 18px;
}

@media (max-height: 720px) {
  #page-bundler.page { padding: 14px 32px 20px; }
  #deploy-tab-meta .inner-tabs { padding-bottom: 10px; margin-bottom: 12px; }
  .lc-token-info-card { padding: 14px 20px 12px; }
  .lc-token-info-card .card-head { margin-bottom: 12px; padding-bottom: 10px; }
  .lc-token-info-wrap .lc-meta-grid { gap: 16px; grid-template-columns: 110px 1fr; }
  .lc-token-info-wrap .lc-meta-image .upload-zone-sq {
    width: 110px; height: 110px; min-height: 110px; padding: 12px;
  }
  .lc-token-info-wrap .lc-meta-fields > .field,
  .lc-token-info-wrap .lc-meta-fields > .frow { margin-bottom: 10px; }
  .lc-token-info-wrap .lc-meta-fields input,
  .lc-token-info-wrap .lc-meta-fields textarea { padding: 6px 10px; }
  .lc-token-info-wrap .lc-meta-fields textarea { min-height: 46px; }
  .lc-token-info-wrap .lc-extra-row { margin-top: 12px; padding-top: 12px; }
  .lc-token-info-wrap .upload-zone-banner { height: 100%; min-height: 0; }
  .lc-token-info-wrap .lc-launch-bar { padding: 12px 20px 14px; }
}

/* ══════════════════════════════════════════════════════════
   INFO STRIPS / SUMMARIES
══════════════════════════════════════════════════════════ */
.info-strip {
  font-size: 12px;
  color: var(--text2);
  padding: 8px 0;
  font-family: var(--mono);
}

/* Stats grid (budget estimation, holdings summary) */
.stats-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
@media (max-width: 700px) { .stats-grid { grid-template-columns: repeat(2, 1fr); } }
.stat-box {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.stat-lbl {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--text3);
  text-transform: uppercase;
}
.stat-val {
  font-family: var(--mono);
  font-size: 15px;
  font-weight: 600;
  color: var(--green);
}

/* Token strip (post-launch) */
.token-strip {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 12px 16px;
  background: var(--bg2);
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  flex-wrap: wrap;
}
.tstrip-item { display: flex; flex-direction: column; gap: 2px; }
.tstrip-lbl { font-size: 10px; font-weight: 600; letter-spacing: 0.06em; color: var(--text3); text-transform: uppercase; }
.tstrip-val { font-size: 13px; font-weight: 600; color: var(--text); }
.tstrip-val.mono { font-family: var(--mono); font-size: 11px; }
.tstrip-val.sm { font-size: 11px; }

/* Wallet summary strip */
.wss-strip {
  display: flex;
  gap: 20px;
  padding: 10px 14px;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  flex-wrap: wrap;
}
.wss-item { display: flex; flex-direction: column; gap: 2px; }
.wss-lbl { font-size: 10px; font-weight: 600; color: var(--text3); text-transform: uppercase; letter-spacing: 0.06em; }
.wss-val { font-family: var(--mono); font-size: 14px; font-weight: 600; color: var(--text); }

/* ══════════════════════════════════════════════════════════
   UPLOAD ZONE
══════════════════════════════════════════════════════════ */
.upload-zone {
  position: relative;
  border: 1px dashed var(--border2);
  border-radius: var(--radius-sm);
  padding: 24px 16px;
  text-align: center;
  cursor: pointer;
  transition: border-color var(--transition), background var(--transition);
  overflow: hidden;
  min-height: 110px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.upload-zone:hover { border-color: var(--green-dark); background: var(--green-bg); }
.upload-zone.dragover,
.upload-zone.drag-over { border-color: var(--green); background: var(--green-bg); }
.upload-content { display: flex; flex-direction: column; align-items: center; gap: 6px; pointer-events: none; }
.upload-content svg { color: var(--text3); }
.upload-text { font-size: 13px; font-weight: 500; color: var(--text2); }
.upload-hint { font-size: 11px; color: var(--text3); }
.upload-preview {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: contain;
  display: none;
  background: var(--bg2);
}
.upload-remove {
  display: none;
  position: absolute;
  top: 6px; right: 6px;
  background: var(--red-dark);
  border: none;
  color: var(--red);
  width: 22px; height: 22px;
  border-radius: 50%;
  font-size: 11px;
  line-height: 1;
  z-index: 2;
  transition: background var(--transition);
}
.upload-remove:hover { background: var(--red-dim); color: #fff; }

/* When a file is loaded — show preview, hide placeholder, show remove btn */
.upload-zone.has-file .upload-content { display: none; }
.upload-zone.has-file .upload-preview  { display: block; }
.upload-zone.has-file .upload-remove   { display: flex; align-items: center; justify-content: center; }
.upload-zone.has-file { border-color: rgba(125,211,252,0.3); border-style: solid; }

/* ══════════════════════════════════════════════════════════
   ACTION CARDS (Wallet page)
══════════════════════════════════════════════════════════ */
.action-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-bottom: 20px;
}
@media (max-width: 720px) { .action-grid { grid-template-columns: 1fr; } }

.action-card {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 18px;
  background: var(--bg1);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  transition: border-color var(--transition), background var(--transition);
}
.action-card:hover { border-color: var(--border2); background: var(--bg2); }

.ac-icon {
  width: 44px; height: 44px;
  border-radius: var(--radius-sm);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.ac-icon.green  { background: var(--green-bg);  color: var(--green);  border: 1px solid var(--green-dark); }
.ac-icon.blue   { background: var(--blue-bg);   color: var(--blue);   border: 1px solid rgba(59,130,246,0.3); }
.ac-icon.orange { background: var(--orange-bg); color: var(--orange); border: 1px solid rgba(249,115,22,0.3); }
.ac-icon.purple { background: var(--purple-bg); color: var(--purple); border: 1px solid rgba(168,85,247,0.3); }

.ac-body { flex: 1; min-width: 0; }
.ac-title { font-size: 13px; font-weight: 600; color: var(--text); margin-bottom: 3px; }
.ac-desc  { font-size: 11px; color: var(--text3); line-height: 1.4; }

/* ══════════════════════════════════════════════════════════
   LOG BOX
══════════════════════════════════════════════════════════ */
.log-box {
  background: #020202;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 12px 14px;
  font-family: var(--mono);
  font-size: 11px;
  line-height: 1.8;
  max-height: 280px;
  overflow-y: auto;
}
.log-box.log-sm  { max-height: 140px; }
.log-box.log-full { max-height: calc(100vh - 180px); }
.log-line { padding: 1px 0; }
.log-info    { color: var(--text3); }
.log-success { color: var(--green); }
.log-warn    { color: var(--orange); }
.log-error   { color: var(--red); }

/* ══════════════════════════════════════════════════════════
   DATA TABLES
══════════════════════════════════════════════════════════ */
.table-wrap { overflow-x: auto; border-radius: var(--radius-sm); border: 1px solid var(--border); }
.data-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.data-table thead { background: var(--bg2); }
.data-table th {
  padding: 10px 14px;
  text-align: left;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text3);
  border-bottom: 1px solid var(--border);
  white-space: nowrap;
}
.data-table td {
  padding: 10px 14px;
  border-bottom: 1px solid var(--border);
  font-family: var(--mono);
  font-size: 11px;
  color: var(--text2);
}
.data-table tbody tr:last-child td { border-bottom: none; }
.data-table tbody tr:hover { background: var(--bg2); }
.tbl-empty { text-align: center; color: var(--text3); font-family: var(--font) !important; font-size: 12px; padding: 28px !important; }
.th-check { width: 36px; }
.table-toolbar { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.chk-row { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--text2); cursor: pointer; }
.chk-row input { width: auto; }

/* ══════════════════════════════════════════════════════════
   MODAL
══════════════════════════════════════════════════════════ */
.modal-overlay {
  position: fixed; inset: 0;
  background: rgba(0,0,0,0.85);
  display: flex; align-items: center; justify-content: center;
  z-index: 100;
  backdrop-filter: blur(6px);
}
.modal {
  background: var(--bg1);
  border: 1px solid var(--border2);
  border-radius: var(--radius);
  padding: 24px;
  width: 480px;
  max-width: 90vw;
  box-shadow: 0 24px 80px rgba(0,0,0,0.8), 0 0 0 1px rgba(125,211,252,0.06), 0 0 60px rgba(0,0,0,0.9);
}
.modal-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 18px;
}
.modal-title { font-size: 15px; font-weight: 600; color: var(--text); }
.modal-close {
  background: transparent;
  border: none;
  color: var(--text3);
  font-size: 16px;
  padding: 4px 8px;
  border-radius: 4px;
  transition: color var(--transition);
}
.modal-close:hover { color: var(--text); }

/* ══════════════════════════════════════════════════════════
   PROGRESS BAR
══════════════════════════════════════════════════════════ */
.progress-bar {
  height: 4px;
  background: var(--bg4);
  border-radius: 2px;
  overflow: hidden;
}
.progress-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--green-dim), var(--green));
  border-radius: 2px;
  transition: width 0.4s ease;
}
.progress-fill.red { background: linear-gradient(90deg, var(--red-dim), var(--red)); }
.progress-labels { display: flex; justify-content: space-between; font-size: 11px; color: var(--text3); margin-bottom: 4px; }

/* ══════════════════════════════════════════════════════════
   SPLITNOW WIZARD
══════════════════════════════════════════════════════════ */

/* Step bar */
.step-bar {
  display: flex;
  align-items: center;
  padding: 16px 20px;
  background: var(--bg1);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  margin-bottom: 20px;
  gap: 0;
  overflow-x: auto;
}
.step {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
  opacity: 0.4;
  transition: opacity var(--transition);
}
.step.active { opacity: 1; }
.step.done { opacity: 0.7; }
.step-num {
  width: 28px; height: 28px;
  border-radius: 50%;
  background: var(--bg3);
  border: 1px solid var(--border2);
  display: flex; align-items: center; justify-content: center;
  font-size: 12px;
  font-weight: 700;
  color: var(--text3);
  flex-shrink: 0;
  transition: background var(--transition), color var(--transition), border-color var(--transition), box-shadow var(--transition);
}
.step.active .step-num {
  background: var(--green-bg);
  border-color: var(--green);
  color: var(--green);
  box-shadow: 0 0 10px rgba(125,211,252,0.2);
}
.step-lbl {
  font-size: 12px;
  font-weight: 600;
  color: var(--text2);
  white-space: nowrap;
}
.step.active .step-lbl { color: var(--text); }
.step-line {
  flex: 1;
  height: 1px;
  background: var(--border);
  margin: 0 16px;
  min-width: 24px;
}

/* Currency grid */
.sn-currency-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}
.sn-currency-loading { font-size: 12px; color: var(--text3); padding: 8px 0; }
.sn-currency-card {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 20px;
  cursor: pointer;
  font-size: 12px;
  font-weight: 600;
  color: var(--text2);
  transition: background var(--transition), color var(--transition), border-color var(--transition);
  white-space: nowrap;
}
.sn-currency-card:hover { border-color: var(--border2); color: var(--text); background: var(--bg3); }
.sn-currency-card.selected {
  background: var(--green-bg);
  border-color: var(--green);
  color: var(--green);
  box-shadow: 0 0 10px rgba(125,211,252,0.15);
}
.sn-currency-icon { width: 20px; height: 20px; border-radius: 50%; object-fit: cover; }

/* Amount mode toggle (TOKEN / USD) */
.sn-mode-toggle {
  display: flex;
  background: var(--bg3);
  border: 1px solid var(--border2);
  border-radius: 6px;
  padding: 2px;
  gap: 2px;
}
.sn-mode-btn {
  padding: 3px 10px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  border: none;
  border-radius: 4px;
  background: transparent;
  color: var(--text3);
  cursor: pointer;
  transition: background var(--transition), color var(--transition), border-color var(--transition);
}
.sn-mode-btn.active {
  background: var(--green-bg);
  color: var(--green);
  border: 1px solid var(--green-dark);
}

/* Sub-hints block below amount input */
.sn-sub-hints {
  margin-top: 8px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.sn-sub-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 11px;
  padding: 3px 0;
  border-bottom: 1px solid var(--border);
}
.sn-sub-row:last-child { border-bottom: none; }
.sn-sub-lbl { color: var(--text3); font-weight: 500; }
.sn-sub-val { color: var(--text2); font-family: var(--mono); font-weight: 600; }
.sn-sub-fees .sn-sub-lbl { color: var(--green-dim); }
.sn-sub-fees .sn-sub-val { color: var(--green); }

/* Price hints (legacy, keep for wSn) */
.sn-price-hints {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 6px;
  font-size: 12px;
}
.sn-hint-usd { color: var(--text2); }
.sn-hint-usd strong { color: var(--green); }
.sn-hint-sol { color: var(--text2); }
.sn-hint-sol strong { color: var(--text); }
.sn-hint-sep { color: var(--text3); }

/* Totals bar */
.sn-totals-bar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  margin-bottom: 10px;
  flex-wrap: wrap;
}
.sn-total-cell { display: flex; flex-direction: column; gap: 3px; }
.sn-total-label { font-size: 9px; font-weight: 700; letter-spacing: 0.08em; color: var(--text3); text-transform: uppercase; }
.sn-total-sublabel { font-size: 9px; font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--text3); opacity: 0.7; }
.sn-total-val { font-family: var(--mono); font-size: 13px; font-weight: 600; color: var(--text); }
.sn-total-val.green { color: var(--green); }
.sn-total-arrow { color: var(--text3); font-size: 14px; flex-shrink: 0; }
.sn-remaining { color: var(--green); }
.sn-remaining.over { color: var(--red); }

/* Pool bar */
.sn-pool-bar {
  height: 5px;
  background: var(--bg4);
  border-radius: 3px;
  overflow: hidden;
  position: relative;
  margin-bottom: 6px;
}
.sn-pool-fill {
  position: absolute; left: 0; top: 0; height: 100%;
  background: var(--green);
  border-radius: 3px;
  transition: width 0.3s ease;
}
.sn-pool-overflow {
  position: absolute; right: 0; top: 0; height: 100%;
  background: var(--red);
  border-radius: 3px;
  transition: width 0.3s ease;
}
.sn-pool-status { font-size: 11px; color: var(--text3); margin-bottom: 4px; }
.sn-pool-status.ok    { color: var(--green); }
.sn-pool-status.error { color: var(--red); font-weight: 600; }

/* Output wallets list — scrollable, responsive height */
#snOutputList {
  max-height: clamp(240px, 35vh, 600px);
  overflow-y: auto;
}
#snOutputList::-webkit-scrollbar { width: 4px; }
#snOutputList::-webkit-scrollbar-track { background: transparent; }
#snOutputList::-webkit-scrollbar-thumb { background: var(--border1); border-radius: 2px; }

/* Output rows */
.sn-output-row {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 14px 16px 16px;
  margin-bottom: 10px;
}
.sn-out-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}
.sn-out-num {
  font-size: 10px;
  font-family: var(--mono);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--green);
  font-weight: 600;
}
.sn-out-grid {
  display: grid;
  grid-template-columns: 1fr 160px 180px 100px;
  gap: 10px;
  align-items: end;
}
@media (max-width: 820px) {
  .sn-out-grid { grid-template-columns: 1fr 1fr; }
  .sn-out-wide { grid-column: 1 / -1; }
}
.sn-out-field { display: flex; flex-direction: column; gap: 5px; }
.sn-out-field label {
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--text3);
  font-family: var(--mono);
  margin-bottom: 0;
}
.sn-out-select {
  background: var(--bg3);
  border: 1px solid var(--border2);
  color: var(--text);
  font-family: var(--mono);
  font-size: 11px;
  padding: 7px 8px;
  border-radius: var(--radius-sm);
  width: 100%;
  cursor: pointer;
}
.sn-out-select:focus { outline: none; border-color: var(--green); box-shadow: 0 0 0 2px var(--green-glow); }
.sn-out-usd { font-size: 12px; color: var(--text); font-weight: 500; min-height: 16px; margin-top: 3px; }
.sn-out-narrow { max-width: 100px; }
.sn-out-remove {
  background: transparent;
  border: 1px solid var(--border2);
  color: var(--text3);
  cursor: pointer;
  border-radius: var(--radius-sm);
  padding: 3px 9px;
  font-size: 10px;
  font-family: var(--mono);
  transition: color var(--transition), border-color var(--transition);
}
.sn-out-remove:hover { color: var(--red); border-color: var(--red); }

/* Add button */
.sn-add-btn {
  width: 100%;
  justify-content: center;
  border-style: dashed;
  border-color: var(--border2);
  color: var(--green);
}
.sn-add-btn:hover { background: var(--green-bg); border-color: var(--green-dark); }

/* ── Wallet Picker (SplitNOW output) ──────────────────────── */
.snwp-wrap {
  position: relative;
}
.snwp-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  width: 100%;
  background: var(--bg3);
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
  padding: 8px 10px;
  cursor: pointer;
  text-align: left;
  transition: border-color var(--transition);
  min-height: 36px;
}
.snwp-trigger:hover { border-color: var(--green-dark); }
.snwp-trigger-inner { display: flex; align-items: center; gap: 8px; flex: 1; min-width: 0; overflow: hidden; }
.snwp-sel-placeholder { font-size: 12px; color: var(--text3); }
.snwp-sel-name { font-size: 12px; font-weight: 600; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.snwp-sel-folder { font-size: 10px; color: var(--text3); white-space: nowrap; }
.snwp-sel-bal { font-size: 11px; font-family: var(--mono); color: var(--green); margin-left: auto; white-space: nowrap; }

.snwp-dropdown {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  z-index: 200;
  background: var(--bg2);
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
  box-shadow: 0 8px 32px rgba(0,0,0,0.6);
  overflow: hidden;
}
.snwp-tabs {
  display: flex;
  gap: 2px;
  padding: 6px 6px 0;
  flex-wrap: wrap;
  border-bottom: 1px solid var(--border);
  background: var(--bg3);
}
.snwp-tab {
  padding: 4px 10px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.05em;
  border: 1px solid transparent;
  border-radius: 4px 4px 0 0;
  background: transparent;
  color: var(--text3);
  cursor: pointer;
  transition: background var(--transition), color var(--transition), border-color var(--transition);
  margin-bottom: -1px;
}
.snwp-tab:hover { color: var(--text2); background: var(--bg2); }
.snwp-tab.active {
  background: var(--bg2);
  color: var(--green);
  border-color: var(--border2);
  border-bottom-color: var(--bg2);
}
.snwp-tab-dot {
  display: inline-block;
  width: 7px; height: 7px;
  border-radius: 50%;
  margin-right: 4px;
  vertical-align: middle;
  flex-shrink: 0;
}
.snwp-list {
  max-height: 220px;
  overflow-y: auto;
  padding: 4px 0;
}
.snwp-group-label {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text3);
  padding: 8px 12px 4px;
  display: flex;
  align-items: center;
  gap: 5px;
}
.snwp-group-dot {
  display: inline-block;
  width: 7px; height: 7px;
  border-radius: 50%;
  flex-shrink: 0;
}
.snwp-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 7px 12px;
  cursor: pointer;
  transition: background var(--transition);
  gap: 10px;
}
.snwp-item:hover { background: var(--bg3); }
.snwp-item.selected { background: var(--green-bg); }
.snwp-item.selected .snwp-item-name { color: var(--green); }
.snwp-item-name { font-size: 12px; font-weight: 500; color: var(--text); }
.snwp-item-bal { font-size: 11px; font-family: var(--mono); color: var(--text3); white-space: nowrap; }
.snwp-empty { padding: 16px 12px; font-size: 12px; color: var(--text3); text-align: center; }

/* ── Exchange Picker (exchp) ─────────────────────────────── */
.exchp-wrap { position: relative; }
.exchp-trigger {
  display: flex; align-items: center; justify-content: space-between;
  gap: 8px; width: 100%;
  background: var(--bg3); border: 1px solid var(--border2);
  border-radius: var(--radius-sm); padding: 8px 10px;
  cursor: pointer; text-align: left;
  transition: border-color var(--transition); min-height: 36px;
}
.exchp-trigger:hover { border-color: var(--green-dark); }
.exchp-trigger-inner { display: flex; align-items: center; gap: 8px; flex: 1; min-width: 0; overflow: hidden; }
.exchp-sel-placeholder { font-size: 12px; color: var(--text3); }
.exchp-sel-name { font-size: 12px; font-weight: 600; color: var(--text); }
.exchp-sel-eta  { font-size: 10px; color: var(--text3); margin-left: auto; white-space: nowrap; }

.exchp-dropdown {
  position: absolute; top: calc(100% + 4px); left: 0; right: 0;
  z-index: 200; background: var(--bg2); border: 1px solid var(--border2);
  border-radius: var(--radius-sm); box-shadow: 0 8px 32px rgba(0,0,0,0.6);
  overflow-y: auto; max-height: 220px; padding: 4px 0;
}
.exchp-item {
  display: flex; align-items: center; justify-content: space-between;
  padding: 8px 12px; cursor: pointer;
  transition: background var(--transition); gap: 10px;
}
.exchp-item:hover { background: var(--bg3); }
.exchp-item.selected { background: var(--green-bg); }
.exchp-item.selected .exchp-item-name { color: var(--green); }
.exchp-item-name { font-size: 12px; font-weight: 500; color: var(--text); }
.exchp-item-eta  { font-size: 10px; color: var(--text3); white-space: nowrap; }
.exchp-empty { padding: 14px 12px; font-size: 12px; color: var(--text3); text-align: center; }

/* ── Output action row ───────────────────────────────────── */
.sn-output-actions {
  display: flex; align-items: center; justify-content: space-between;
  gap: 10px; flex-wrap: wrap;
}
.sn-rand-btns { display: flex; gap: 8px; flex-wrap: wrap; }
.sn-delete-all-btn {
  font-size: 11px; padding: 6px 12px; gap: 6px;
  display: flex; align-items: center;
  color: #f87171; border-color: rgba(248,113,113,0.3);
}
.sn-delete-all-btn:hover { background: rgba(248,113,113,0.08); color: #f87171; border-color: rgba(248,113,113,0.5); }
.sn-rand-btn {
  font-size: 11px; padding: 6px 12px; gap: 6px;
  display: flex; align-items: center;
  color: var(--text2); border-color: var(--border2);
}
.sn-rand-btn:hover { color: var(--green); border-color: var(--green-dark); }

/* ── Add output panel (bulk picker) ─────────────────────── */
.sn-add-panel {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 200;
  background: var(--bg2);
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
  padding: 6px;
  min-width: 220px;
  box-shadow: 0 12px 40px rgba(0,0,0,0.55);
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.sn-add-panel-title {
  font-size: 9px; font-weight: 700; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--text3);
  padding: 4px 8px 6px; border-bottom: 1px solid var(--border);
  margin-bottom: 3px;
}
.sn-add-sep {
  font-size: 9px; font-weight: 600; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--text3);
  padding: 6px 8px 2px;
}
.sn-add-opt {
  display: flex; align-items: center; gap: 10px;
  background: transparent; border: none; border-radius: var(--radius-sm);
  padding: 8px 10px; cursor: pointer; text-align: left; width: 100%;
  transition: background 0.15s;
}
.sn-add-opt:hover { background: var(--bg3); }
.sn-add-opt-icon {
  font-size: 18px; line-height: 1; width: 22px; text-align: center;
  flex-shrink: 0; color: var(--accent);
}
.sn-add-folder-opt .sn-add-opt-icon { font-size: 15px; }
.sn-add-opt-text {
  display: flex; flex-direction: column; gap: 1px;
}
.sn-add-opt-text strong {
  font-size: 12px; font-weight: 600; color: var(--text);
}
.sn-add-opt-text small {
  font-size: 10px; color: var(--text3);
}

/* ── Delay range picker (popup) ─────────────────────────── */
.sn-delay-picker-overlay {
  position: fixed; inset: 0; z-index: 3000;
  background: rgba(0,0,0,0.6);
  display: flex; align-items: center; justify-content: center;
  cursor: default;
}
.sn-delay-picker-overlay .sn-delay-picker {
  cursor: default;
}
.sn-delay-picker {
  background: var(--bg2); border: 1px solid var(--border2);
  border-radius: var(--radius-sm); padding: 16px 20px;
  box-shadow: 0 12px 40px rgba(0,0,0,0.6);
  min-width: 280px;
}
.sn-delay-picker-title {
  font-size: 10px; font-weight: 700; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--text3); margin-bottom: 10px;
}
.sn-delay-picker-opts { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 10px; }
.sn-delay-opt {
  padding: 5px 12px; font-size: 11px; font-weight: 600;
  border: 1px solid var(--border2); border-radius: var(--radius-sm);
  background: var(--bg3); color: var(--text2); cursor: pointer;
  transition: background var(--transition), color var(--transition), border-color var(--transition);
}
.sn-delay-opt:hover { color: var(--green); border-color: var(--green-dark); background: var(--green-bg); }
.sn-delay-picker-custom {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  font-size: 11px; color: var(--text3);
}
.sn-delay-picker-custom input {
  width: 90px; padding: 5px 8px; font-size: 11px;
  background: var(--bg3); border: 1px solid var(--border2);
  border-radius: var(--radius-sm); color: var(--text);
}

/* ── Global toast notification ───────────────────────────── */
.sn-toast {
  position: fixed;
  top: 24px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10001;
  background: #1a0a0f;
  border: 1px solid var(--red);
  color: var(--red);
  font-size: 13px;
  font-weight: 600;
  padding: 12px 22px;
  border-radius: 8px;
  box-shadow: 0 4px 24px rgba(255,51,102,0.25);
  white-space: nowrap;
  pointer-events: none;
  animation: snToastIn 0.18s ease;
}
@keyframes snToastIn {
  from { opacity: 0; transform: translateX(-50%) translateY(-8px); }
  to   { opacity: 1; transform: translateX(-50%) translateY(0); }
}

/* ── Cobra Modal ── */
.cobra-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.65);
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(2px);
}
.cobra-modal-box {
  background: var(--bg2);
  border: 1px solid var(--border1);
  border-radius: var(--radius);
  padding: 28px 28px 22px;
  min-width: 340px;
  max-width: 480px;
  box-shadow: 0 8px 40px rgba(0,0,0,0.5);
}
.cobra-modal-body { font-size: 14px; color: var(--text1); line-height: 1.55; }
.cobra-modal-body .muted { color: var(--text3); font-size: 13px; }
.cobra-modal-body .mt8  { margin-top: 8px; }
.cobra-modal-body .mt4  { margin-top: 4px; }
.cobra-modal-actions { display: flex; gap: 10px; margin-top: 20px; justify-content: flex-end; }


/* Empty outputs */
.sn-empty-outputs {
  text-align: center;
  color: var(--text3);
  font-size: 12px;
  padding: 24px;
  border: 1px dashed var(--border);
  border-radius: var(--radius-sm);
}

/* Summary grid */
.sn-summary-grid { display: flex; flex-direction: column; gap: 8px; margin-top: 16px; }
.sn-summary-row { display: flex; justify-content: space-between; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--border); }
.sn-summary-row:last-child { border-bottom: none; }
.sn-summary-label { font-size: 12px; color: var(--text3); font-weight: 500; }
.sn-summary-value { font-family: var(--mono); font-size: 13px; font-weight: 600; color: var(--text); }

/* Review box */
.sn-review-box {
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  overflow: auto;
  max-height: 240px;
  font-family: var(--mono);
  font-size: 11px;
}

/* Deposit box */
.deposit-box {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  overflow: hidden;
}
.deposit-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--border);
}
.deposit-row:last-child { border-bottom: none; }
.deposit-row.hl { background: rgba(239,68,68,0.04); }
.deposit-lbl { font-size: 11px; font-weight: 600; color: var(--text3); width: 120px; flex-shrink: 0; }
.deposit-val { font-family: var(--mono); font-size: 13px; color: var(--text); font-weight: 500; word-break: break-all; }
.deposit-val.mono { font-size: 11px; }

/* ══════════════════════════════════════════════════════════
   SNIPER GUARD
══════════════════════════════════════════════════════════ */
.guard-indicator {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  background: var(--bg2);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
}
.guard-indicator.off { color: var(--text3); }
.guard-indicator.on  { color: var(--green); background: var(--green-bg); border-color: var(--green-dark); }
.guard-dot {
  width: 10px; height: 10px;
  border-radius: 50%;
  background: var(--text3);
  flex-shrink: 0;
}
.guard-indicator.on .guard-dot { background: var(--green); box-shadow: 0 0 8px var(--green); animation: pulse 2s infinite; }
@keyframes pulse { 0%,100% { box-shadow: 0 0 8px var(--green); } 50% { box-shadow: 0 0 16px var(--green), 0 0 4px var(--green); } }

/* ══════════════════════════════════════════════════════════
   UTILITY CLASSES
══════════════════════════════════════════════════════════ */
.mono { font-family: var(--mono); }
.sm   { font-size: 11px; }
.muted { color: var(--text3); font-size: 12px; }
.green { color: var(--green); }
.red   { color: var(--red); }

.mt8  { margin-top: 8px; }
.mt10 { margin-top: 10px; }
.mt12 { margin-top: 12px; }
.mt14 { margin-top: 14px; }
.mt16 { margin-top: 16px; }
.mt20 { margin-top: 20px; }
.mb16 { margin-bottom: 16px; }

/* Scrollbar */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(125,211,252,0.18); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: rgba(125,211,252,0.38); }

/* ══ Wallet Cards ══════════════════════════════════════════════════ */
#walletCardList {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 16px;
  max-height: 520px;
  overflow-y: auto;
}

.wallet-card {
  background: var(--bg1);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 14px 18px;
  transition: border-color .15s, background .15s;
  cursor: pointer;
  user-select: none;
}
.wallet-card:hover { border-color: var(--border2); background: var(--bg2); }
.wallet-card.wcard-selected {
  border-color: var(--green);
  background: rgba(125,211,252,.05);
}

.wallet-card-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}
.wallet-card-num {
  font-family: var(--mono);
  font-size: 10px;
  color: var(--text3);
  width: 26px;
  flex-shrink: 0;
}
.wallet-card-name-wrap { flex: 0 1 160px; min-width: 0; }
.wallet-name-input {
  background: transparent;
  border: 1px solid transparent;
  border-radius: 4px;
  color: var(--text);
  font-size: 13px;
  font-weight: 600;
  padding: 2px 6px;
  width: 100%;
  transition: border-color .15s, background .15s;
  outline: none;
}
.wallet-name-input:hover { border-color: var(--border); }
.wallet-name-input:focus { border-color: var(--green); background: var(--bg2); }

.wallet-card-bal {
  font-family: var(--mono);
  font-size: 13px;
  font-weight: 700;
  color: var(--text3);
  flex-shrink: 0;
}
.wallet-card-bal.green { color: var(--green); }

.wallet-card-body { display: flex; flex-direction: column; gap: 0; }

/* ── Wallet Transfer — destination picker ── */
.wt-dest-picker {
  display: flex;
  align-items: center;
  min-height: 40px;
  padding: 8px 14px;
  background: var(--bg);
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
  cursor: pointer;
  font-size: 13px;
  gap: 10px;
  transition: border-color .15s;
}
.wt-dest-picker:hover { border-color: var(--green); }
.wt-dest-picker .wt-dest-name { font-weight: 600; color: var(--text1); }
.wt-dest-picker .wt-dest-addr { font-family: var(--mono); font-size: 11px; color: var(--text3); }
.wt-dest-picker .wt-dest-folder { font-size: 10px; padding: 2px 7px; border-radius: 4px; background: rgba(125,211,252,.12); color: var(--green); border: 1px solid rgba(125,211,252,.2); }
.wt-dest-picker-arrow { margin-left: auto; color: var(--text3); font-size: 12px; }
/* Modal wallet pick list */
.wt-pick-list { display: flex; flex-direction: column; gap: 6px; max-height: 320px; overflow-y: auto; margin-top: 10px; }
.wt-pick-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
  cursor: pointer;
  background: var(--bg);
  transition: border-color .15s, background .15s;
}
.wt-pick-item:hover { border-color: var(--green); background: var(--bg2); }
.wt-pick-item.selected { border-color: var(--green); background: rgba(125,211,252,.07); }
.wt-pick-item .wt-pick-name { font-weight: 600; font-size: 13px; color: var(--text1); }
.wt-pick-item .wt-pick-addr { font-family: var(--mono); font-size: 11px; color: var(--text3); }
.wt-pick-item .wt-pick-bal  { margin-left: auto; font-family: var(--mono); font-size: 12px; color: var(--green); flex-shrink: 0; }
.wt-pick-item .wt-pick-folder { font-size: 10px; padding: 2px 7px; border-radius: 4px; background: rgba(125,211,252,.12); color: var(--green); border: 1px solid rgba(125,211,252,.2); flex-shrink: 0; }
/* Folder badge in sources */
.wt-src-folder { display: inline-block; font-size: 10px; padding: 2px 7px; border-radius: 4px; background: rgba(99,179,237,.12); color: #63b3ed; border: 1px solid rgba(99,179,237,.25); margin-left: 6px; }

/* ── Transfer 3-column layout ─────────────────────────────── */
.wt3-layout {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 14px;
  align-items: start;
}
@media (max-width: 860px) {
  .wt3-layout { grid-template-columns: 1fr; }
}
.wt3-col {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 0;
}
.wt3-col-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--border);
}
.wt3-col-title {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--text2);
}
.wt3-drop-zone {
  flex: 1;
  min-height: 80px;
  border: 1px dashed var(--border2);
  border-radius: var(--radius);
  padding: 8px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  background: var(--bg);
  transition: border-color .15s;
  position: relative;
}
.wt3-drop-zone.wt3-dest-zone {
  border-color: rgba(125,211,252,.3);
}
.wt3-drop-zone.drag-over {
  border-color: var(--green);
  background: rgba(125,211,252,.08);
  box-shadow: 0 0 0 3px rgba(125,211,252,.15);
}
.wt3-dest-zone.drag-over {
  border-color: #63b3ed;
  background: rgba(99,179,237,.08);
  box-shadow: 0 0 0 3px rgba(99,179,237,.15);
}
.wt3-empty-hint {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  color: var(--text3);
  pointer-events: none;
  text-align: center;
  padding: 8px;
}
.wt3-slots {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
/* Chip inside source/dest zone */
.wt3-chip {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--bg2);
  border: 1px solid var(--border2);
  border-radius: 8px;
  padding: 8px 10px;
  cursor: pointer;
  transition: border-color .15s;
}
.wt3-chip:hover { border-color: var(--green); }
.wt3-chip-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
  min-width: 0;
}
.wt3-chip-name {
  font-size: 12px;
  font-weight: 700;
  color: var(--text1);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.wt3-chip-addr {
  font-family: var(--mono);
  font-size: 10px;
  color: var(--text3);
}
.wt3-chip-bal {
  font-family: var(--mono);
  font-size: 11px;
  color: var(--green);
  flex-shrink: 0;
}
.wt3-chip-remove {
  background: none;
  border: none;
  color: var(--text3);
  cursor: pointer;
  font-size: 14px;
  padding: 0 2px;
  line-height: 1;
}
.wt3-chip-remove:hover { color: var(--red); }
/* amount input inside source chip */
.wt3-chip-amt {
  width: 80px;
  flex-shrink: 0;
  font-family: var(--mono);
  font-size: 12px;
  background: var(--bg);
  border: 1px solid var(--border2);
  border-radius: 5px;
  color: var(--text1);
  padding: 3px 6px;
  text-align: right;
}
.wt3-chip-amt:focus { outline: none; border-color: var(--green); }
.wt3-chip-max {
  background: none;
  border: 1px solid var(--border2);
  border-radius: 5px;
  color: var(--text3);
  font-size: 10px;
  cursor: pointer;
  padding: 2px 6px;
}
.wt3-chip-max:hover { color: var(--green); border-color: var(--green); }
/* All wallets list */
.wt3-all-list {
  display: flex;
  flex-direction: column;
  gap: 5px;
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  scrollbar-width: thin;
}
.wt3-all-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  cursor: pointer;
  background: var(--bg2);
  transition: border-color .15s, background .15s;
  user-select: none;
}
.wt3-all-item:hover { border-color: var(--green); background: rgba(125,211,252,.04); }
.wt3-all-item.wt3-is-source { border-color: #63b3ed; background: rgba(99,179,237,.06); }
.wt3-all-item.wt3-is-dest   { border-color: var(--green); background: rgba(125,211,252,.08); }
.wt3-all-item-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.wt3-all-item-name { font-size: 12px; font-weight: 700; color: var(--text1); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wt3-all-item-addr { font-family: var(--mono); font-size: 10px; color: var(--text3); }
.wt3-all-item-bal  { font-family: var(--mono); font-size: 11px; color: var(--green); flex-shrink: 0; }
.wt3-all-item-badge {
  font-size: 10px;
  padding: 2px 6px;
  border-radius: 4px;
  font-weight: 700;
  flex-shrink: 0;
}
.wt3-badge-src  { background: rgba(99,179,237,.18); color: #63b3ed; }
.wt3-badge-dest { background: rgba(125,211,252,.18); color: var(--green); }

/* Folder filter tabs in All Wallets column */
.wt3-folder-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  padding-bottom: 8px;
}
.wt3-folder-tab {
  padding: 3px 10px;
  border-radius: 12px;
  border: 1px solid var(--border);
  background: var(--bg2);
  color: var(--text2);
  font-size: 11px;
  cursor: pointer;
  transition: border-color .15s, background .15s, color .15s;
}
.wt3-folder-tab:hover { border-color: var(--green); color: var(--text1); }
.wt3-folder-tab.active { border-color: var(--green); background: rgba(125,211,252,.12); color: var(--green); font-weight: 700; }

/* Drag-and-drop states */
.wt3-all-item[draggable="true"] { cursor: grab; }
.wt3-all-item[draggable="true"]:active { cursor: grabbing; }
.wt3-all-item.wt3-dragging {
  opacity: 0.45;
  border-style: dashed;
}
.wt3-drag-hint {
  font-size: 11px;
  color: var(--text3);
  flex-shrink: 0;
  pointer-events: none;
  user-select: none;
  letter-spacing: .02em;
}

.wallet-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 0;
  border-top: 1px solid var(--border);
}
.wallet-row-lbl {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--text3);
  width: 76px;
  flex-shrink: 0;
}
.wallet-row-val {
  font-family: var(--mono);
  font-size: 11px;
  color: var(--text2);
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.wallet-privkey {
  background: transparent;
  border: none;
  outline: none;
  cursor: default;
  color: var(--text2);
  font-family: var(--mono);
  font-size: 11px;
  width: 100%;
}

/* ── Icon-only row buttons (copy / show) ─────────────────── */
.wrow-icon-btn {
  background: none;
  border: 1px solid transparent;
  border-radius: 6px;
  color: var(--text3);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  padding: 0;
  flex-shrink: 0;
  transition: color .12s, border-color .12s, background .12s;
}
.wrow-icon-btn:hover {
  color: var(--text);
  border-color: var(--border2);
  background: var(--bg3);
}

/* ── Move-to-folder modal tiles ──────────────────────────── */
.mf-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}
.mf-tile {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 7px 14px;
  border-radius: var(--radius);
  border: 1px solid var(--border2);
  background: var(--bg3);
  font-size: 13px;
  color: var(--text2);
  cursor: pointer;
  transition: border-color .12s, color .12s, background .12s;
  user-select: none;
}
.mf-tile:hover { border-color: var(--green); color: var(--text); }
.mf-tile-active {
  border-color: var(--green) !important;
  background: rgba(125,211,252,.1);
  color: var(--green) !important;
  font-weight: 600;
}
.mf-tile-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
}
.mf-tile-none { border-style: dashed; color: var(--text3); }
.mf-tile-icon { font-size: 11px; }

/* ── New folder row inside move modal ────────────────────── */
.mf-new-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--border);
}
.mf-new-row .cobra-modal-input { flex: 1; min-width: 0; }
.mf-new-swatches {
  display: flex;
  gap: 5px;
  flex-shrink: 0;
}
.mf-new-swatches .nf-swatch {
  width: 18px;
  height: 18px;
}

/* ── btn-danger ───────────────────────────────────────────── */
.btn-danger {
  background: transparent;
  border: 1px solid rgba(255,80,80,.35);
  color: var(--red);
  border-radius: var(--radius);
  padding: 3px 8px;
  font-size: 11px;
  cursor: pointer;
  transition: background .15s, border-color .15s;
  line-height: 1.4;
}
.btn-danger:hover { background: rgba(255,80,80,.12); border-color: var(--red); }

/* ── Wallet card empty state ─────────────────────────────── */
.wc-empty {
  text-align: center;
  padding: 40px 20px;
  color: var(--text3);
  font-size: 13px;
  border: 1px dashed var(--border);
  border-radius: var(--radius);
}
.wc-empty.wc-loading { animation: wc-pulse 1.2s ease-in-out infinite; }
@keyframes wc-pulse { 0%, 100% { opacity: 0.7; } 50% { opacity: 1; } }

/* ── Folder toolbar ──────────────────────────────────────── */
.wf-toolbar {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
  flex-wrap: wrap;
}

/* ── Select Range panel (Wallets page) ── */
#wSelRangeBtn.active { border-color: #a78bfa !important; color: #a78bfa !important; background: rgba(167,139,250,0.10) !important; }
.wsr-panel {
  background: var(--bg2);
  border: 1px solid var(--border1);
  border-radius: var(--radius-sm);
  padding: 12px 14px 10px;
  margin-bottom: 14px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.wsr-label {
  font-size: 13px;
  font-family: var(--mono);
  color: var(--green);
  font-weight: 600;
}
.wsr-fields { display: flex; gap: 20px; flex-wrap: wrap; }
.wsr-field { display: flex; flex-direction: column; gap: 4px; flex: 1; min-width: 160px; }
.wsr-lbl { font-size: 11px; font-family: var(--mono); color: var(--text3); font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; }
.wsr-slider-wrap { display: flex; align-items: center; gap: 8px; }
.wsr-slider {
  flex: 1;
  height: 4px;
  -webkit-appearance: none;
  appearance: none;
  background: var(--border1);
  border-radius: 4px;
  outline: none;
  cursor: pointer;
  accent-color: var(--green);
}
.wsr-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 16px; height: 16px;
  border-radius: 50%;
  background: var(--green);
  cursor: pointer;
  border: 2px solid var(--bg1);
  box-shadow: 0 0 0 1px var(--green);
}
.wsr-slider::-moz-range-thumb {
  width: 16px; height: 16px;
  border-radius: 50%;
  background: var(--green);
  cursor: pointer;
  border: 2px solid var(--bg1);
}
.wsr-val { font-size: 13px; font-family: var(--mono); color: var(--text1); min-width: 28px; text-align: right; }
.wsr-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.wsr-hint { font-size: 11px; color: var(--text4); margin-left: 6px; font-style: italic; }


.wf-tabs {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
  flex: 1;
}
.wf-tab {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 4px 12px;
  font-size: 11px;
  font-weight: 600;
  color: var(--text2);
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 5px;
  transition: background .15s, border-color .15s, color .15s;
  white-space: nowrap;
}
.wf-tab:hover { border-color: var(--border2); color: var(--text); }
.wf-tab.active { background: var(--green); border-color: var(--green); color: #000; }
.wf-tab-cnt {
  background: rgba(255,255,255,.15);
  border-radius: 10px;
  padding: 1px 6px;
  font-size: 10px;
}
.wf-tab.active .wf-tab-cnt { background: rgba(0,0,0,.2); }
.wf-tab-del {
  opacity: .5;
  font-size: 13px;
  line-height: 1;
  padding: 0 2px;
  border-radius: 50%;
  transition: opacity .15s, background .15s;
}
.wf-tab-del:hover { opacity: 1; background: rgba(0,0,0,.2); }

/* Colored dot on tab and card */
.wf-tab-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  display: inline-block;
  flex-shrink: 0;
}
.wcard-folder-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  display: inline-block;
  margin-right: 4px;
  flex-shrink: 0;
  vertical-align: middle;
}

/* ── Folder Panel extras ─────────────────────────────────── */
.fp-row-dot {
  width: 10px; height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
  display: inline-block;
}
.fp-sep {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--text3);
  padding: 10px 10px 4px;
  border-top: 1px solid var(--border);
  margin-top: 4px;
}
.fp-color-row {
  display: flex;
  align-items: center;
  padding: 5px 10px;
  gap: 8px;
}
.fp-color-lbl {
  font-size: 11px;
  color: var(--text2);
  width: 70px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex-shrink: 0;
}
.fp-color-swatches { display: flex; gap: 5px; flex-wrap: wrap; align-items: center; }
.fp-swatch {
  width: 16px; height: 16px;
  border-radius: 50%;
  cursor: pointer;
  border: 2px solid transparent;
  transition: transform .1s, border-color .1s;
  flex-shrink: 0;
}
.fp-swatch:hover { transform: scale(1.25); }
.fp-swatch-active { border-color: #fff !important; }
.fp-swatch-none {
  background: var(--bg3) !important;
  border: 2px solid var(--border2);
  font-size: 11px;
  display: flex; align-items: center; justify-content: center;
  color: var(--text3);
  font-weight: 700;
}

/* ══ Custom Cobra Modal ══════════════════════════════════════ */
.cobra-modal-overlay {
  position: fixed; inset: 0; z-index: 9999;
  background: rgba(0,0,0,.65);
  display: flex; align-items: center; justify-content: center;
  backdrop-filter: blur(3px);
}
.cobra-modal {
  background: var(--bg2);
  border: 1px solid var(--border2);
  border-radius: calc(var(--radius) + 2px);
  padding: 24px 28px;
  min-width: 320px;
  max-width: 420px;
  width: 90vw;
  box-shadow: 0 24px 60px rgba(0,0,0,.5);
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.cobra-modal-body { font-size: 14px; line-height: 1.5; color: var(--text); }
.cobra-modal-body strong { font-size: 15px; }
.cobra-modal-body p { margin: 0; }
.cobra-modal-input-wrap { display: flex; }
.cobra-modal-input {
  width: 100%;
  background: var(--bg3);
  border: 1px solid var(--border2);
  border-radius: var(--radius);
  color: var(--text);
  padding: 8px 12px;
  font-size: 13px;
  outline: none;
}
.cobra-modal-input:focus { border-color: var(--green); }
.cobra-modal-textarea {
  width: 100%;
  background: var(--bg3);
  border: 1px solid var(--border2);
  border-radius: var(--radius);
  color: var(--text);
  padding: 8px 12px;
  font-size: 12px;
  font-family: var(--mono);
  outline: none;
  resize: vertical;
  line-height: 1.6;
  box-sizing: border-box;
}
.cobra-modal-textarea:focus { border-color: var(--green); }
.import-format-hint {
  display: flex;
  flex-direction: column;
  gap: 3px;
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 8px 12px;
  margin-bottom: 10px;
}
.import-fmt-row {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 11px;
}
.import-fmt-key {
  font-family: var(--mono);
  color: var(--text);
  flex-shrink: 0;
}
.import-fmt-sep {
  color: var(--text3);
  font-size: 11px;
}
.import-export-divider {
  border-top: 1px solid var(--border);
  margin: 2px 0;
}
.cobra-modal-actions { display: flex; justify-content: flex-end; gap: 8px; }

/* ══ Folder Panel (slide-in) ═════════════════════════════════ */
.folder-panel-overlay {
  position: fixed; inset: 0; z-index: 1000;
  background: transparent;
}
.folder-panel {
  position: fixed;
  right: 24px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1001;
  background: var(--bg2);
  border: 1px solid var(--border2);
  border-radius: calc(var(--radius) + 2px);
  width: 240px;
  max-height: 70vh;
  display: flex;
  flex-direction: column;
  box-shadow: 0 16px 48px rgba(0,0,0,.5);
  overflow: hidden;
}
.folder-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border-bottom: 1px solid var(--border);
}
.folder-panel-title { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--text2); }
.folder-panel-close {
  background: none; border: none; color: var(--text3); cursor: pointer;
  font-size: 14px; line-height: 1; padding: 2px 4px;
  border-radius: 4px;
  transition: color .15s, background .15s;
}
.folder-panel-close:hover { color: var(--text); background: var(--bg3); }
.folder-panel-list { flex: 1; overflow-y: auto; padding: 6px 8px; display: flex; flex-direction: column; gap: 2px; }
.fp-row {
  display: flex; align-items: center;
  padding: 8px 10px;
  border-radius: var(--radius);
  cursor: pointer;
  font-size: 13px;
  color: var(--text2);
  transition: background .12s, color .12s;
  gap: 8px;
}
.fp-row:hover { background: var(--bg3); color: var(--text); }
.fp-row.fp-row-active { background: rgba(125,211,252,.1); color: var(--green); font-weight: 600; }
.fp-row.fp-row-active::before { content: '✓'; font-size: 11px; }
.folder-panel-new {
  padding: 10px 10px 12px;
  border-top: 1px solid var(--border);
  display: flex;
  gap: 6px;
}
.folder-panel-input {
  flex: 1;
  background: var(--bg3);
  border: 1px solid var(--border2);
  border-radius: var(--radius);
  color: var(--text);
  padding: 5px 8px;
  font-size: 12px;
  outline: none;
  min-width: 0;
}
.folder-panel-input:focus { border-color: var(--green); }

/* ══ Export modal options ════════════════════════════════════ */
.export-opts {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 4px;
}
.export-opt-row {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--text2);
  cursor: pointer;
  padding: 5px 8px;
  border-radius: var(--radius);
  transition: background .12s, color .12s;
}
.export-opt-row:hover { background: var(--bg3); color: var(--text); }
.export-opt-row input[type="radio"] { accent-color: var(--green); cursor: pointer; }

/* ══ Export Keys button ══════════════════════════════════════ */
.btn-export {
  background: rgba(125,211,252,.12);
  border: 1px solid rgba(125,211,252,.35);
  color: var(--green);
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-weight: 600;
  transition: background .15s, box-shadow .15s, border-color .15s;
}
.btn-export:hover {
  background: rgba(125,211,252,.22);
  border-color: var(--green);
  box-shadow: 0 0 12px rgba(125,211,252,.25);
}

/* ══ New Folder modal swatches ═══════════════════════════════ */
.nf-swatches {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 4px;
}
.nf-swatch {
  width: 24px; height: 24px;
  border-radius: 50%;
  cursor: pointer;
  border: 2px solid transparent;
  transition: transform .12s, border-color .12s;
  flex-shrink: 0;
}
.nf-swatch:hover { transform: scale(1.2); }
.nf-swatch-active {
  border-color: #fff;
  transform: scale(1.15);
  box-shadow: 0 0 0 2px rgba(255,255,255,.3);
}

/* ══ Folder panel empty state ════════════════════════════════ */
.fp-empty {
  font-size: 12px;
  color: var(--text3);
  padding: 10px 12px;
  text-align: center;
  font-style: italic;
}

/* ══ Wallet card checkbox ════════════════════════════════════ */
.wcard-check {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.wcard-check-box {
  width: 16px;
  height: 16px;
  border-radius: 4px;
  border: 1.5px solid var(--border2);
  background: transparent;
  display: block;
  transition: border-color .12s, background .12s;
  position: relative;
}
.wallet-card:hover .wcard-check-box { border-color: var(--green); }
.wcard-check-box.checked {
  background: var(--green);
  border-color: var(--green);
}
.wcard-check-box.checked::after {
  content: '';
  position: absolute;
  left: 4px; top: 1px;
  width: 5px; height: 9px;
  border: 2px solid #000;
  border-top: none;
  border-left: none;
  transform: rotate(45deg);
}

/* ══ Wallet folder tag (inline on card) ══════════════════════ */
.wcard-right {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
  flex-shrink: 0;
}
.wcard-folder-tag {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  color: var(--text3);
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 2px 8px;
  flex-shrink: 0;
  max-width: 110px;
  overflow: hidden;
}
.wcard-folder-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ══ Multi-select action bar ════════════════════════════════ */
.wsel-bar {
  position: sticky;
  bottom: 20px;
  z-index: 200;
  margin-top: 12px;
  background: var(--bg2);
  border: 1px solid var(--green);
  border-radius: calc(var(--radius) + 4px);
  padding: 12px 20px;
  display: flex;
  align-items: center;
  gap: 12px;
  box-shadow: 0 8px 32px rgba(0,0,0,.5), 0 0 0 1px rgba(125,211,252,.15);
  animation: wselSlideUp .2s ease;
}
@keyframes wselSlideUp {
  from { transform: translateY(16px); opacity: 0; }
  to   { transform: translateY(0);    opacity: 1; }
}
.wsel-count {
  font-size: 13px;
  font-weight: 700;
  color: var(--green);
  flex: 1;
}
.wsel-actions {
  display: flex;
  gap: 8px;
  align-items: center;
}

/* ══════════════════════════════════════════════════════════
   BUNDLER WALLET PICKER
══════════════════════════════════════════════════════════ */

.bp-picker-card { margin-bottom: 0; }

.bp-picker-toolbar {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}

.bp-search {
  flex: 1;
  background: var(--bg);
  border: 1px solid var(--border2);
  color: var(--text);
  border-radius: var(--radius-sm);
  padding: 7px 11px;
  font-size: 13px;
  font-family: var(--font);
  outline: none;
  transition: border-color 0.15s;
}
.bp-search:focus { border-color: var(--green); }

.bp-toolbar-right {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.bp-chk-all {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: var(--text2);
  cursor: pointer;
  user-select: none;
}
.bp-chk-all input { cursor: pointer; accent-color: var(--green); }

.bp-picker-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-left: auto;
}

.bp-sel-count {
  font-size: 12px;
  color: var(--text2);
  font-family: var(--mono);
}
.bp-sel-bal {
  font-size: 12px;
  color: var(--green);
  font-family: var(--mono);
}

.bp-wallet-list {
  max-height: 280px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 2px;
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
  background: var(--bg);
  padding: 4px;
}

.bp-empty {
  padding: 20px;
  text-align: center;
  color: var(--text3);
  font-size: 12px;
}

.bp-w-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 10px;
  border-radius: 6px;
  cursor: pointer;
  user-select: none;
  transition: background 0.12s;
  border: 1px solid transparent;
}
.bp-w-row:hover { background: rgba(255,255,255,0.04); }
.bp-w-row.bp-w-sel {
  background: rgba(125,211,252,0.07);
  border-color: rgba(125,211,252,0.18);
}

.bp-w-chk {
  cursor: pointer;
  accent-color: var(--green);
  flex-shrink: 0;
  width: 14px;
  height: 14px;
}

.bp-w-num {
  font-family: var(--mono);
  font-size: 11px;
  color: var(--text3);
  width: 36px;
  flex-shrink: 0;
}

.bp-w-name {
  font-size: 13px;
  color: var(--text);
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.bp-w-folder {
  font-size: 11px;
  color: var(--text3);
  background: rgba(255,255,255,0.06);
  border: 1px solid var(--border2);
  border-radius: 4px;
  padding: 1px 7px;
  flex-shrink: 0;
  font-family: var(--mono);
}

.bp-w-bal {
  font-family: var(--mono);
  font-size: 12px;
  flex-shrink: 0;
  min-width: 80px;
  text-align: right;
}

/* ══════════════════════════════════════════════════════════
   BUNDLER STRATEGY CARDS (Execution / Distribution / Anti)
══════════════════════════════════════════════════════════ */

.bp-strategy-card { margin-top: 0; }

.bp-mode-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.bp-mode-opt {
  display: block;
  position: relative;
  padding: 12px 14px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border2);
  background: var(--bg);
  cursor: pointer;
  user-select: none;
  transition: border-color 0.15s, background 0.15s;
}
.bp-mode-opt:hover { border-color: rgba(255,255,255,0.15); }
.bp-mode-opt.selected {
  border-color: rgba(125,211,252,0.4);
  background: rgba(125,211,252,0.06);
}
.bp-mode-opt.selected::after {
  content: '✓';
  position: absolute;
  top: 10px;
  right: 12px;
  font-size: 13px;
  color: var(--green);
  font-weight: 700;
  line-height: 1;
}
.bp-mode-opt input[type="radio"] {
  display: none;
}

.bp-mode-body { display: block; }

.bp-mode-top {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 4px;
}

.bp-mode-name {
  font-size: 13px;
  font-weight: 600;
  color: var(--text);
  font-family: var(--mono);
}

.bp-mode-tag {
  font-size: 10px;
  font-family: var(--mono);
  letter-spacing: 0.5px;
  padding: 2px 7px;
  border-radius: 4px;
  font-weight: 600;
}
.bp-mode-tag.rec {
  background: rgba(125,211,252,0.15);
  color: var(--green);
  border: 1px solid rgba(125,211,252,0.3);
}
.bp-mode-tag.speed {
  background: rgba(255,184,77,0.12);
  color: #ffb84d;
  border: 1px solid rgba(255,184,77,0.25);
}
.bp-mode-tag.stealth {
  background: rgba(139,92,246,0.15);
  color: #a78bfa;
  border: 1px solid rgba(139,92,246,0.3);
}

.bp-mode-desc {
  font-size: 12px;
  color: var(--text3);
  line-height: 1.55;
  margin: 0;
}

/* ══════════════════════════════════════════════════════════
   LAUNCH CONFIG — Metadata / Guard / Wallet Config
══════════════════════════════════════════════════════════ */

/* Metadata grid */
.lc-meta-grid {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 20px;
  align-items: flex-start;
}
@media (max-width: 700px) {
  .lc-meta-grid { grid-template-columns: 1fr; }
}

.lc-meta-image .upload-zone-sq {
  width: 160px;
  height: 160px;
  min-height: unset;
}

.lc-meta-fields { flex: 1; }

/* Optional label hint */
.lc-optional {
  font-size: 10px;
  font-weight: 400;
  color: var(--text3);
  letter-spacing: 0;
  text-transform: none;
  font-style: italic;
  margin-left: 3px;
}


.lc-extra-row {
  display: flex;
  align-items: stretch;
  gap: 12px;
  margin-top: 12px;
}

.lc-pair {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--border1);
}
.lc-pair-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.lc-pair-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 36px;
  padding: 0 14px 0 8px;
  border-radius: 999px;
  border: 1px solid var(--border2);
  background: var(--bg2);
  color: var(--text2);
  font-family: inherit;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  cursor: pointer;
}
.lc-pair-chip img {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  object-fit: contain;
  display: block;
  flex-shrink: 0;
  background: #0b0b0b;
}
.lc-pair-chip:hover {
  border-color: rgba(125, 211, 252, 0.4);
  color: var(--text);
}
.lc-pair-chip.is-on {
  border-color: rgba(125, 211, 252, 0.75);
  background: rgba(125, 211, 252, 0.1);
  color: #e8f7ff;
  box-shadow: inset 0 0 0 1px rgba(125, 211, 252, 0.18);
}
.lc-pair-chip:active {
  transform: scale(0.98);
}

/* Banner upload zone — wide, shorter */
.upload-zone-banner {
  width: 100%;
  height: 90px;
  min-height: unset;
  padding: 0;
}
.upload-zone-banner .upload-preview {
  object-fit: cover;
}

/* Guard pill in card-head */
.lc-guard-pill {
  font-size: 11px;
  padding: 3px 10px;
  border-radius: 20px;
}
.lc-guard-fields { margin-top: 12px; }

/* Toggle switch */
.lc-toggle-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  user-select: none;
}
.lc-toggle-wrap input { display: none; }
.lc-toggle-track {
  width: 34px;
  height: 18px;
  background: var(--border2);
  border-radius: 9px;
  position: relative;
  transition: background 0.2s;
  flex-shrink: 0;
}
.lc-toggle-wrap input:checked + .lc-toggle-track { background: var(--green); }
.lc-toggle-thumb {
  position: absolute;
  top: 2px;
  left: 2px;
  width: 14px;
  height: 14px;
  background: #fff;
  border-radius: 50%;
  transition: transform 0.2s;
}
.lc-toggle-wrap input:checked + .lc-toggle-track .lc-toggle-thumb { transform: translateX(16px); }
.lc-toggle-label { font-size: 12px; color: var(--text2); }

/* ── Max All / Delete All bar in card-head ── */
.lc-card-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
  flex-shrink: 0;
}
.lc-delete-all-btn { color: #f87171 !important; border-color: rgba(248,113,113,0.3) !important; }
.lc-delete-all-btn:hover { background: rgba(248,113,113,0.08) !important; }

/* ── Randomize bar (removed) ── */
.lc-rand-controls { display: none; }

.lc-buyer-row {
  display: grid;
  grid-template-columns: 52px 1fr 160px 180px auto;
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
  background: var(--bg);
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
  transition: border-color 0.15s;
}
.lc-buyer-row:hover { border-color: rgba(255,255,255,0.12); }
.lc-dev-row { border-color: rgba(125,211,252,0.2); background: rgba(125,211,252,0.04); }

/* simulation column */
.lc-table-head {
  display: grid;
  grid-template-columns: 52px 1fr 160px 180px auto;
  gap: 10px;
  padding: 0 12px 6px;
  font-size: 10px;
  font-family: var(--mono);
  text-transform: uppercase;
  letter-spacing: 0.7px;
  color: var(--text3);
}
.lc-th-sim { display: flex; align-items: center; gap: 5px; }
.lc-th-sep { color: var(--border2); }
.lc-sim-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  padding-left: 14px;
}
.lc-block-badge {
  font-size: 10px;
  font-family: var(--mono);
  font-weight: 700;
  letter-spacing: 0.4px;
  padding: 2px 6px;
  border-radius: 4px;
  background: rgba(99,102,241,0.15);
  color: #a5b4fc;
  border: 1px solid rgba(99,102,241,0.3);
  white-space: nowrap;
  flex-shrink: 0;
}
.lc-block-badge.muted { background: none; color: var(--text3); border-color: var(--border2); }

/* ── Blast badge (replaces push-badge) ── */
.lc-blast-badge {
  font-size: 9px;
  font-family: var(--mono);
  font-weight: 800;
  letter-spacing: 0.6px;
  padding: 2px 5px;
  border-radius: 3px;
  background: rgba(255,107,0,0.15);
  color: #ff6b00;
  border: 1px solid rgba(255,107,0,0.38);
  white-space: nowrap;
  flex-shrink: 0;
  text-transform: uppercase;
  animation: blastPulse 2s ease-in-out infinite;
}
.lc-blast-badge.b2 {
  background: rgba(255,171,0,0.12);
  color: #ffab00;
  border-color: rgba(255,171,0,0.3);
}
.lc-blast-badge.b3 {
  background: rgba(255,214,102,0.10);
  color: #ffd666;
  border-color: rgba(255,214,102,0.28);
}
@keyframes blastPulse {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0.55; }
}
/* keep push-badge as alias for backwards compat */
.lc-push-badge {
  font-size: 9px;
  font-family: var(--mono);
  font-weight: 800;
  letter-spacing: 0.6px;
  padding: 2px 5px;
  border-radius: 3px;
  background: rgba(255,107,0,0.15);
  color: #ff6b00;
  border: 1px solid rgba(255,107,0,0.38);
  white-space: nowrap;
  flex-shrink: 0;
  text-transform: uppercase;
  animation: blastPulse 2s ease-in-out infinite;
}
.lc-push-badge.push2 {
  background: rgba(255,171,0,0.12);
  color: #ffab00;
  border-color: rgba(255,171,0,0.3);
}
@keyframes pushPulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.6; }
}
.lc-entry-mc {
  font-size: 12px;
  font-family: var(--mono);
  font-weight: 600;
  color: #fbbf24;
  white-space: nowrap;
  flex-shrink: 0;
}
.lc-entry-mc.muted { color: var(--text3); font-weight: 400; }
.lc-sim-tokens {
  display: flex;
  flex-direction: column;
  gap: 1px;
}
.lc-tokens-out {
  font-size: 12px;
  font-family: var(--mono);
  color: var(--green);
  white-space: nowrap;
}
.lc-tokens-out.muted { color: var(--text3); }
.lc-supply-pct {
  font-size: 10px;
  font-family: var(--mono);
  color: var(--text3);
  white-space: nowrap;
}

.lc-row-label { display: flex; justify-content: center; }

.lc-role-badge {
  font-size: 10px;
  font-family: var(--mono);
  font-weight: 700;
  letter-spacing: 0.5px;
  padding: 2px 8px;
  border-radius: 4px;
}
.lc-role-badge.dev {
  background: rgba(125,211,252,0.15);
  color: var(--green);
  border: 1px solid rgba(125,211,252,0.3);
}
.lc-role-badge.buyer {
  background: rgba(255,255,255,0.06);
  color: var(--text2);
  border: 1px solid var(--border2);
}

/* wallet selector button */
.lc-wallet-sel-wrap { position: relative; }

.lc-wallet-sel {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 10px;
  background: var(--bg2);
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: border-color 0.15s;
  min-height: 38px;
  max-height: 38px;
  overflow: hidden;
}
.lc-wallet-sel:hover { border-color: rgba(255,255,255,0.2); }

.lc-w-avatar {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: rgba(125,211,252,0.15);
  color: var(--green);
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.lc-w-info { flex: 1; min-width: 0; }
.lc-w-name {
  font-size: 13px;
  color: var(--text);
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.lc-w-meta {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-top: 1px;
}
.lc-w-bal { font-family: var(--mono); font-size: 11px; }
.lc-w-placeholder { font-size: 13px; color: var(--text3); flex: 1; }

/* Funding wallet pill (Volume + Holders + Makers): all info in one line */
#vbPickerInner,
#hbPickerInner,
#mbPickerInner {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
}
#vbPickerInner .lc-w-info,
#hbPickerInner .lc-w-info,
#mbPickerInner .lc-w-info {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 6px;
}
#vbPickerInner .lc-w-meta,
#hbPickerInner .lc-w-meta,
#mbPickerInner .lc-w-meta {
  margin-top: 0;
}
#vbPickerInner .lc-pd-bal,
#hbPickerInner .lc-pd-bal,
#mbPickerInner .lc-pd-bal {
  margin-left: auto;
  white-space: nowrap;
}
.lc-folder-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.lc-folder-tag {
  font-size: 10px;
  color: var(--text3);
  font-family: var(--mono);
  background: rgba(255,255,255,0.05);
  border: 1px solid var(--border2);
  padding: 1px 5px;
  border-radius: 3px;
}
.lc-sel-chevron { color: var(--text3); flex-shrink: 0; margin-left: auto; }

/* picker dropdown */
.lc-picker-dropdown {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  z-index: 200;
  background: var(--bg2);
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
  box-shadow: 0 8px 24px rgba(0,0,0,0.4);
  overflow: hidden;
}
.lc-pd-search {
  width: 100%;
  box-sizing: border-box;
  padding: 8px 10px;
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--border2);
  color: var(--text);
  font-size: 12px;
  outline: none;
  font-family: var(--font);
}
.lc-pd-list { max-height: 340px; overflow-y: auto; }
.lc-pd-empty { padding: 14px; text-align: center; font-size: 12px; color: var(--text3); }
.lc-pd-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px 12px;
  cursor: pointer;
  transition: background 0.1s;
}
.lc-pd-row:hover { background: rgba(255,255,255,0.05); }
.lc-pd-avatar {
  width: 24px; height: 24px;
  border-radius: 50%;
  background: rgba(255,255,255,0.08);
  color: var(--text2);
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.lc-pd-info { flex: 1; min-width: 0; }
.lc-pd-name { font-size: 12px; color: var(--text); display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lc-pd-meta { display: flex; align-items: center; gap: 4px; margin-top: 2px; flex-wrap: wrap; }
.lc-pd-dot { width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; }
.lc-pd-folder { font-size: 10px; color: var(--text3); font-family: var(--mono); }
.lc-pd-bal { font-family: var(--mono); font-size: 11px; flex-shrink: 0; margin-left: auto; }

/* buy amount column */
.lc-buy-wrap { display: flex; flex-direction: column; gap: 4px; }
.lc-buy-row { display: flex; align-items: center; gap: 6px; }
.lc-buy-lbl { font-size: 11px; color: var(--text3); width: 56px; flex-shrink: 0; }
.lc-buy-igroup { display: flex; gap: 4px; flex: 1; }
.lc-buy-input {
  flex: 1;
  background: var(--bg);
  border: 1px solid var(--border2);
  color: var(--text);
  border-radius: var(--radius-sm);
  padding: 5px 8px;
  font-size: 13px;
  font-family: var(--mono);
  outline: none;
  min-width: 0;
}
.lc-buy-input:focus { border-color: var(--green); }
.lc-max-btn { font-size: 10px; padding: 4px 7px; flex-shrink: 0; }
.lc-supply-row { display: flex; align-items: center; gap: 6px; }
.lc-supply-lbl { font-size: 10px; color: var(--text3); width: 56px; flex-shrink: 0; }
.lc-supply-val { font-size: 11px; font-family: var(--mono); color: var(--text2); }

/* remove button */
.lc-remove-btn {
  background: none;
  border: none;
  color: var(--text3);
  cursor: pointer;
  font-size: 14px;
  padding: 4px;
  border-radius: 4px;
  line-height: 1;
  transition: color 0.15s;
}
.lc-remove-btn:hover { color: #ff5555; }

/* ── Auto-Sell button (DEV row last col) ── */
.lc-autosell-btn {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .6px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border1);
  background: var(--bg2);
  color: var(--text2);
  cursor: pointer;
  transition: border-color .15s, color .15s, background .15s, box-shadow .15s;
  white-space: nowrap;
}
.lc-autosell-btn:hover {
  border-color: var(--red);
  color: var(--red);
  background: rgba(255,34,85,0.06);
}
.lc-autosell-btn.as-on {
  border-color: var(--red);
  color: var(--red);
  background: rgba(255,34,85,0.08);
  box-shadow: 0 0 8px rgba(255,34,85,0.15);
}
.lc-autosell-btn.as-open {
  border-color: var(--red);
  color: var(--red);
}
.as-on-dot {
  display: inline-block;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--red);
  box-shadow: 0 0 4px rgba(255,34,85,0.7);
  margin-left: 2px;
  animation: asPulse 1.4s ease-in-out infinite;
}
@keyframes asPulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.35; }
}

/* ── Auto-Sell panel ── */
.lc-autosell-panel {
  margin: 0 0 6px 0;
  padding: 14px 16px 12px;
  background: rgba(255,34,85,0.04);
  border: 1px solid rgba(255,34,85,0.18);
  border-top: none;
  border-radius: 0 0 var(--radius-sm) var(--radius-sm);
  animation: asPanelIn .15s ease;
}
@keyframes asPanelIn {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}

.lc-as-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
}
.lc-as-title {
  display: flex;
  align-items: center;
  gap: 6px;
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .6px;
  color: var(--text1);
  text-transform: uppercase;
}
.lc-as-status {
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .5px;
  padding: 2px 7px;
  border-radius: 3px;
}
.lc-as-status.on  { color: var(--red);  background: rgba(255,34,85,0.1);  border: 1px solid rgba(255,34,85,0.25); }
.lc-as-status.off { color: var(--text3); background: var(--bg2);          border: 1px solid var(--border2); }

.lc-as-toggle-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
}
.lc-as-toggle-lbl {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .8px;
  min-width: 26px;
  text-align: right;
}
.lc-as-toggle-lbl.on  { color: var(--red); }
.lc-as-toggle-lbl.off { color: var(--text3); }

.lc-as-body {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 20px;
  margin-bottom: 12px;
}
.lc-as-body.lc-as-disabled {
  opacity: .4;
  pointer-events: none;
}

.lc-as-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.lc-as-field:has(.lc-as-mode-tabs),
.lc-as-field:has(.lc-as-pct-wrap) {
  grid-column: 1 / -1;
}
.lc-as-label {
  font-size: 11px;
  color: var(--text3);
  font-family: var(--mono);
  letter-spacing: .3px;
  text-transform: uppercase;
}
.lc-as-input {
  height: 32px;
  font-size: 13px;
  padding: 0 10px;
  max-width: 120px;
}

.lc-as-pct-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.lc-as-pct-btns {
  display: flex;
  gap: 4px;
}
.lc-as-preset.active {
  border-color: var(--red);
  color: var(--red);
  background: rgba(255,34,85,0.08);
}

.lc-as-mode-tabs {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.lc-as-mode-tab {
  padding: 5px 12px;
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 600;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border2);
  background: var(--bg2);
  color: var(--text2);
  cursor: pointer;
  transition: all .15s;
}
.lc-as-mode-tab:hover { border-color: var(--border1); color: var(--text1); }
.lc-as-mode-tab.active {
  border-color: var(--red);
  color: var(--red);
  background: rgba(255,34,85,0.08);
}

.lc-as-delay-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.lc-as-unit {
  font-family: var(--mono);
  font-size: 12px;
  color: var(--text3);
}
.lc-as-unit-pre { order: -1; }

.lc-as-summary {
  font-size: 12px;
  color: var(--text3);
  line-height: 1.55;
  padding: 8px 12px;
  background: var(--bg1);
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
}
.lc-as-summary b { color: var(--text1); }


.lc-buyer-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-top: 8px;
  flex-shrink: 0;
  margin-top: auto;
}
.lc-total-info {
  font-size: 12px;
  color: var(--text2);
  font-family: var(--mono);
  margin-left: auto;
}

/* ── Launch workflow mode selector ──────────────────────────── */
.lc-mode-sel {
  display: flex;
  gap: 6px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--border1);
  flex-wrap: wrap;
  flex-shrink: 0;
}
.lc-mode-btn {
  height: 28px;
  padding: 0 12px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border2);
  background: transparent;
  color: var(--text2);
  font-size: 11px;
  font-family: var(--mono);
  font-weight: 600;
  letter-spacing: 0.4px;
  cursor: pointer;
  white-space: nowrap;
  transition: background var(--transition), color var(--transition), border-color var(--transition);
}
.lc-mode-btn:hover { background: var(--bg3); color: var(--text1); border-color: var(--border3); }
.lc-mode-btn.active {
  background: rgba(125,211,252,0.08);
  color: var(--green);
  border-color: rgba(125,211,252,0.25);
  text-shadow: 0 0 6px rgba(125,211,252,0.18);
}

/* ── Launch-only notice ─────────────────────────────────────── */
.lc-launch-only-notice {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-top: 16px;
  padding: 12px 14px;
  background: rgba(255,255,255,0.03);
  border: 1px solid var(--border2);
  border-radius: var(--radius);
  color: var(--text2);
}
.lc-lon-title {
  font-size: 12px;
  font-weight: 700;
  color: var(--text1);
  margin-bottom: 3px;
  font-family: var(--mono);
}
.lc-lon-sub { font-size: 12px; line-height: 1.5; }

/* ── DEV row section separator ─────────────────────────────── */
.lc-th-dev { padding-top: 12px; }
.lc-dev-section {
  border-bottom: 1px solid var(--border1);
  padding-bottom: 10px;
  margin-bottom: 2px;
}

/* ── Bundle / Sniper section headers ────────────────────────── */
.lc-section-head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 0 6px;
}
.lc-section-sep { border-top: 1px solid var(--border1); }
.lc-section-label {
  font-size: 10px;
  font-family: var(--mono);
  font-weight: 700;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: var(--text2);
  display: flex;
  align-items: center;
  gap: 5px;
}
.lc-section-count {
  font-size: 10px;
  font-family: var(--mono);
  color: var(--text3);
  background: var(--bg3);
  border: 1px solid var(--border2);
  border-radius: 4px;
  padding: 1px 6px;
}
.lc-section-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-left: auto;
  flex-shrink: 0;
}
.lc-sniper-speed {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-left: auto;
}
.lc-sniper-speed-btn {
  border: 1px solid var(--border2);
  background: var(--bg2);
  color: var(--text2);
  border-radius: 6px;
  padding: 5px 9px;
  font-size: 10px;
  font-family: var(--mono);
  font-weight: 700;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  cursor: pointer;
  transition: .16s ease;
}
.lc-sniper-speed-btn:hover {
  border-color: var(--border1);
  color: var(--text1);
}
.lc-sniper-speed-btn.active {
  background: rgba(96, 165, 250, 0.12);
  border-color: rgba(96, 165, 250, 0.35);
  color: #93c5fd;
}
.lc-section-empty {
  padding: 14px 12px;
  color: var(--text3);
  font-size: 12px;
  text-align: center;
}
.lc-section-rows {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-bottom: 8px;
}

/* ── Table head inside a section (no extra top padding) ─────── */
.lc-th-inner { padding-top: 0; }

/* ── Bundle slot badge (B1 / B2) — replaces 🔥 toggle ──────── */
.lc-bundle-slot {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 9px;
  font-family: var(--mono);
  font-weight: 800;
  letter-spacing: 0.5px;
  padding: 2px 6px;
  border-radius: 4px;
  text-transform: uppercase;
}
.lc-bundle-slot.b1 {
  background: rgba(255,107,0,0.12);
  color: #ff6b00;
  border: 1px solid rgba(255,107,0,0.25);
}
.lc-bundle-slot.b2 {
  background: rgba(255,171,0,0.12);
  color: #ffab00;
  border: 1px solid rgba(255,171,0,0.25);
}
.lc-bundle-slot.b3 {
  background: rgba(255,214,102,0.10);
  color: #ffd666;
  border: 1px solid rgba(255,214,102,0.24);
}

/* shield badge */
.card-badge.shield {
  background: rgba(139,92,246,0.15);
  color: #a78bfa;
  border: 1px solid rgba(139,92,246,0.3);
}

/* picker — already-used wallet rows */
.lc-pd-row.lc-pd-used {
  opacity: 0.35;
  cursor: not-allowed;
  pointer-events: none;
}
.lc-pd-used-tag {
  font-size: 9px;
  font-family: var(--mono);
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: var(--text3);
  background: rgba(255,255,255,0.06);
  border: 1px solid var(--border2);
  border-radius: 4px;
  padding: 2px 5px;
  flex-shrink: 0;
}

/* folder selector in modal */
.lc-folder-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  max-height: 260px;
  overflow-y: auto;
}
.lc-folder-opt {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border2);
  background: var(--bg);
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
  font-size: 13px;
  color: var(--text);
}
.lc-folder-opt:hover { border-color: rgba(255,255,255,0.2); background: rgba(255,255,255,0.04); }
.lc-folder-opt.selected {
  border-color: rgba(125,211,252,0.4);
  background: rgba(125,211,252,0.06);
}

/* block config 3-column grid on smaller screens */
@media (max-width: 860px) {
  .bp-strategy-card > div[style*="grid-template-columns:repeat(3"] {
    grid-template-columns: 1fr !important;
  }
}

/* ══════════════════════════════════════════════════════════
   VOLUME BOT PAGE
══════════════════════════════════════════════════════════ */

/* Header status indicator */
.vb-status-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px;
  border-radius: 20px;
  border: 1px solid var(--border2);
  background: var(--bg2);
}
.vb-status-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--text3);
  flex-shrink: 0;
  transition: background 0.3s;
}
.vb-status-dot.running {
  background: var(--green);
  box-shadow: 0 0 6px rgba(125,211,252, 0.6);
  animation: vbPulse 1.4s ease-in-out infinite;
}
@keyframes vbPulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.4; }
}
.vb-status-text {
  font-size: 11px;
  font-family: var(--mono);
  letter-spacing: 1px;
  color: var(--text2);
}

/* Token detect row */
.vb-token-row {
  display: flex;
  gap: 8px;
  align-items: center;
}
.vb-token-row .field-input {
  flex: 1;
  background: var(--bg);
  border: 1px solid var(--border2);
  color: var(--text);
  border-radius: var(--radius-sm);
  padding: 9px 12px;
  font-size: 13px;
  font-family: var(--mono);
  outline: none;
}
.vb-token-row .field-input:focus { border-color: var(--green); }

/* Token info chips */
.vb-token-info {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}
.vb-token-chip {
  display: flex;
  flex-direction: column;
  gap: 2px;
  background: var(--bg);
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
  padding: 7px 12px;
  min-width: 110px;
}
.vb-chip-label {
  font-size: 10px;
  font-family: var(--mono);
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: var(--text3);
}
.vb-chip-val {
  font-size: 12px;
  color: var(--text);
  font-weight: 600;
}
.vb-chip-val.mono { font-family: var(--mono); }

/* Volume Bot: token chips in header (fixed, flat look) */
.vb-setup-head-token {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--border1);
  flex-wrap: nowrap;
  height: 34px;            /* sztywna, stała wysokość nagłówka */
  overflow: hidden;
}
.vb-token-info-head {
  margin-top: 0;
  margin-left: auto;
  flex-wrap: nowrap;
  gap: 4px;
  max-width: 60%;
  overflow: hidden;        /* nic nie wypycha nagłówka w dół */
}
.vb-token-info-head .vb-token-chip {
  flex-direction: row;
  align-items: center;
  gap: 4px;
  padding: 3px 8px;
  min-width: auto;
}
.vb-token-info-head .vb-chip-label {
  font-size: 9px;
}
.vb-token-info-head .vb-chip-val {
  font-size: 11px;
}
.vb-token-inline span[id^="vb"] {
  background: var(--bg);
  border: 1px solid var(--border2);
  border-radius: 999px;
  padding: 3px 8px;
  font-size: 11px;
  color: var(--text1);
}
.vb-token-inline #vbTicker,
.vb-token-inline #vbMarketCap {
  font-family: var(--mono);
}


/* Stats grid */
.vb-stats-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
@media (max-width: 700px) { .vb-stats-grid { grid-template-columns: repeat(2, 1fr); } }
.vb-stat-box {
  background: var(--bg);
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.vb-stat-label {
  font-size: 10px;
  font-family: var(--mono);
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: var(--text3);
}
.vb-stat-val {
  font-size: 20px;
  font-weight: 700;
  color: var(--text);
  font-family: var(--mono);
}
.vb-uptime {
  font-size: 13px;
  font-family: var(--mono);
  color: var(--green);
  margin-left: auto;
}

/* Trade history table */
.vb-history-wrap {
  overflow-x: auto;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border2);
}
.vb-history-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}
.vb-history-table th {
  padding: 8px 12px;
  text-align: left;
  font-size: 10px;
  font-family: var(--mono);
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: var(--text3);
  background: var(--bg2);
  border-bottom: 1px solid var(--border2);
}
.vb-history-table td {
  padding: 7px 12px;
  border-bottom: 1px solid rgba(255,255,255,0.04);
  color: var(--text2);
  vertical-align: middle;
}
.vb-history-table tr:last-child td { border-bottom: none; }
.vb-history-table tr.vb-row-err td { opacity: 0.5; }
.vb-history-empty {
  text-align: center;
  padding: 24px !important;
  color: var(--text3);
  font-style: italic;
}
.vb-history-count {
  font-size: 12px;
  font-family: var(--mono);
  color: var(--text3);
  margin-left: auto;
}
.vb-type-badge {
  display: inline-block;
  font-size: 10px;
  font-family: var(--mono);
  font-weight: 700;
  letter-spacing: 0.5px;
  padding: 2px 7px;
  border-radius: 4px;
}
.vb-type-badge.buy {
  background: rgba(125,211,252,0.12);
  color: var(--green);
  border: 1px solid rgba(125,211,252,0.3);
}
.vb-type-badge.sell {
  background: rgba(255,107,107,0.12);
  color: #ff6e6e;
  border: 1px solid rgba(255,107,107,0.3);
}
.vb-sig-link {
  color: var(--text3);
  font-family: var(--mono);
  text-decoration: none;
}
.vb-sig-link:hover { color: var(--green); }

.vb-preview { display: flex; flex-direction: column; gap: 4px; margin-top: 10px; padding: 8px 10px; background: #0c0c0c; border: 1px solid #1e1e1e; border-radius: 6px; }
.vb-preview-row { display: flex; align-items: center; justify-content: space-between; }
.vb-preview-label { font-size: 11px; color: var(--muted); }
.vb-preview-val { font-size: 12px; color: var(--text1); }

/* ═══════════════════════════════════════════════════════════
   BOOSTER SHARED (Holders + Makers)
   ═══════════════════════════════════════════════════════════ */

.boost-info-banner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 8px 16px;
  margin-bottom: 12px;
  background: rgba(139,92,246,0.07);
  border: 1px solid rgba(139,92,246,0.2);
  border-left: 3px solid #a78bfa;
  border-radius: var(--radius-sm);
  font-size: 12px;
  color: var(--text2);
  line-height: 1.4;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.boost-info-banner p {
  text-align: center;
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}
.boost-info-banner.amber {
  background: rgba(255,184,77,0.07);
  border-color: rgba(255,184,77,0.2);
  border-left-color: #ffb84d;
}
.boost-info-banner svg {
  flex-shrink: 0;
  width: 14px;
  height: 14px;
  color: #a78bfa;
}
.boost-info-banner.amber svg { color: #ffb84d; }
.boost-info-banner strong { color: var(--text1); }

/* ── Holders Booster cost bar ── */
.hb-cost-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
  padding: 10px 14px;
  background: rgba(125,211,252, 0.05);
  border: 1px solid rgba(125,211,252, 0.18);
  border-radius: var(--radius-sm);
  font-size: 13px;
  color: var(--text2);
  flex-wrap: wrap;
}
.hb-cost-val {
  font-family: var(--mono);
  font-weight: 700;
  color: var(--green);
  font-size: 14px;
}
.hb-cost-breakdown {
  font-size: 11px;
  font-family: var(--mono);
  color: var(--text3);
}


.boost-progress-bar-wrap {
  height: 6px;
  background: var(--border2);
  border-radius: 3px;
  overflow: hidden;
  margin: 6px 0 12px;
}
.boost-progress-bar {
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, var(--green), #38bdf8);
  border-radius: 3px;
  transition: width 0.4s ease;
}
.boost-progress-bar.amber {
  background: linear-gradient(90deg, #ffb84d, #ff8c00);
}

.boost-progress-label {
  font-size: 12px;
  font-family: var(--mono);
  color: var(--text2);
  margin-left: auto;
}

.boost-log {
  margin-top: 12px;
  max-height: 180px;
  overflow-y: auto;
  font-family: var(--mono);
  font-size: 11px;
  color: var(--text3);
  background: var(--bg);
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
  padding: 8px 10px;
  line-height: 1.6;
}
.boost-log::-webkit-scrollbar { width: 4px; }
.boost-log::-webkit-scrollbar-track { background: transparent; }
.boost-log::-webkit-scrollbar-thumb { background: var(--border2); border-radius: 2px; }

/* ══════════════════════════════════════════════════════════
   TRADE PANEL
   ══════════════════════════════════════════════════════════ */

/* Token row */
.tp-token-row {
  display: flex;
  gap: 8px;
  align-items: center;
}
.tp-token-row .field-input { flex: 1; }

/* Token info bar */
.tp-token-info {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 16px;
  margin-top: 12px;
  padding: 10px 14px;
  background: var(--bg1);
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
}
.tp-ti-name {
  font-family: var(--mono);
  font-size: 13px;
  font-weight: 600;
  color: var(--text1);
}
.tp-ti-chips { display: flex; gap: 10px; flex-wrap: wrap; }
.tp-ti-chip {
  font-size: 12px;
  color: var(--text3);
  font-family: var(--mono);
}
.tp-ti-chip b { color: var(--green); }
.tp-ad-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 14px;
}
.tp-ad-stat {
  display: flex;
  flex-direction: column;
  gap: 7px;
  padding: 14px 16px;
  background: var(--bg2);
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
  min-width: 0;
}
.tp-ad-stat-wide {
  grid-column: span 2;
}
.tp-ad-label {
  font-size: 11px;
  font-family: var(--mono);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text3);
}
.tp-ad-value {
  font-size: 20px;
  font-weight: 700;
  color: var(--green);
  line-height: 1.1;
}
.tp-ad-copy {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
  background: var(--bg1);
  color: var(--text);
  transition: border-color var(--transition), background var(--transition);
}
.tp-ad-copy:hover {
  border-color: rgba(125,211,252,0.28);
  background: rgba(125,211,252,0.05);
}
.tp-ad-copy-text {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-align: left;
  font-family: var(--mono);
  font-size: 13px;
}
.tp-ad-copy-hint {
  flex-shrink: 0;
  font-size: 11px;
  font-family: var(--mono);
  color: var(--green);
}
.tp-ad-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(300px, 0.9fr);
  gap: 14px;
}
/* ═══ TRADE PAGE — FREE-FLOATING PANELS ═════════════════════════════ */
.tp-panels-canvas {
  position: relative;
  width: 100%;
  /* height is set dynamically by JS — panels can go anywhere */
  overflow: visible;
  margin-bottom: 24px;
}
/* Each draggable/resizable panel */
.tp-panel {
  position: absolute;
  min-width: 180px;
  min-height: 100px;
  z-index: 10;
  /* JS sets left/top/width/height */
}
.tp-panel.tp-panel-dragging {
  opacity: .85;
  z-index: 9999;
  transition: none !important;
  cursor: grabbing !important;
}
.tp-panel-inner {
  width: 100%;
  height: 100%;
  overflow: hidden;
}
/* Drag handle — the card-head becomes the grab zone */
.tp-drag-handle {
  cursor: grab;
  user-select: none;
}
.tp-drag-handle:active { cursor: grabbing; }
/* Drag hint icon (braille dots) */
.tp-drag-hint {
  font-size: 14px;
  color: var(--text3);
  margin-left: auto;
  padding-left: 6px;
  opacity: .5;
  pointer-events: none;
  flex-shrink: 0;
}
/* Resize handle — bottom-right corner grip */
.tp-panel-resize {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 18px;
  height: 18px;
  cursor: se-resize;
  z-index: 20;
  /* Grip lines drawn as SVG bg */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18'%3E%3Cpath d='M12 16 L16 12 M8 16 L16 8' stroke='%23444' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  opacity: .6;
  transition: opacity .15s;
  border-bottom-right-radius: var(--radius-sm, 6px);
}
.tp-panel:hover .tp-panel-resize { opacity: 1; }
/* Reset layout button — lives in page-head, right side */
.tp-panels-reset {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 5px 12px;
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
  background: var(--bg2);
  color: var(--text3);
  font-size: 11px;
  cursor: pointer;
  transition: color .12s, border-color .12s;
  white-space: nowrap;
  flex-shrink: 0;
}
.tp-panels-reset:hover { color: var(--text); border-color: var(--border); }
/* Wallet control block inside cards */
.tp-wctrl-block { padding: 4px 0 6px; }
.tp-wctrl-block .field { margin-bottom: 10px; }
.tp-cfg-list-wrap {
  overflow: hidden;
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
  background: var(--bg2);
  margin-bottom: 10px;
}
/* Wallet list (replaces chip-picker) */
.tp-cfg-wallet-list {
  max-height: 260px;
  overflow-y: auto;
  overflow-x: hidden;
}
.tp-cfg-wallet-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 7px 10px;
  border-bottom: 1px solid var(--border2);
  cursor: pointer;
  transition: background .1s;
  user-select: none;
}
.tp-cfg-wallet-row:last-child { border-bottom: none; }
.tp-cfg-wallet-row:hover { background: var(--bg1); }
.tp-cfg-wallet-row.active { background: rgba(125,211,252,0.05); }
/* Selection dot */
.tp-cfg-wr-check { flex-shrink: 0; width: 14px; display: flex; align-items: center; justify-content: center; }
.tp-cfg-wr-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  border: 1.5px solid var(--border);
  background: transparent;
  transition: background .1s, border-color .1s;
}
.tp-cfg-wr-dot.on { background: var(--green); border-color: var(--green); }
/* Row body */
.tp-cfg-wr-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.tp-cfg-wr-top  { display: flex; align-items: center; gap: 6px; }
.tp-cfg-wr-name { font-size: 12px; font-weight: 600; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tp-cfg-wallet-row.active .tp-cfg-wr-name { color: var(--green); }
.tp-cfg-wr-folder {
  font-size: 9px; padding: 1px 5px; border-radius: 999px;
  background: rgba(120,120,255,0.12); color: var(--text3);
  border: 1px solid rgba(120,120,255,0.2);
  white-space: nowrap;
}
.tp-cfg-wr-bottom { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.tp-cfg-wr-addr { font-size: 10px; font-family: var(--mono); color: var(--text3); }
.tp-cfg-wr-sep  { font-size: 10px; color: var(--border); }
.tp-cfg-wr-sol  { font-size: 10px; font-family: var(--mono); color: var(--text2); }
.tp-cfg-wr-tok  { font-size: 10px; font-family: var(--mono); color: var(--green); }
.tp-cfg-list-footer {
  display: flex;
  gap: 6px;
  padding: 6px 10px 8px;
  border-top: 1px solid var(--border2);
}
/* Selected wallets count label in card-head */
.tp-cfg-sel-label {
  font-size: 11px;
  font-family: var(--mono);
  color: var(--green);
  background: rgba(125,211,252,0.08);
  border: 1px solid rgba(125,211,252,0.2);
  border-radius: 999px;
  padding: 2px 9px;
  white-space: nowrap;
}
/* Toggle button badge */
.tp-cfg-count-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 999px;
  background: var(--green-dim, rgba(125,211,252,0.15));
  color: var(--green);
  font-size: 10px;
  font-weight: 700;
  margin-left: 2px;
}
.tp-cfg-list-toggle.open {
  background: rgba(125,211,252,0.08);
  border-color: var(--green);
  color: var(--green);
}
/* Legacy chip styles — kept for other uses */
.tp-chip-picker {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 10px;
  min-height: 40px;
}
.tp-wallet-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 5px 10px;
  border-radius: 20px;
  border: 1px solid var(--border);
  background: var(--bg1);
  color: var(--text2);
  font-size: 11px;
  font-family: var(--mono);
  cursor: pointer;
  transition: border-color .12s, background .12s, color .12s;
  user-select: none;
}
.tp-wallet-chip:hover { border-color: var(--green); color: var(--text); }
.tp-wallet-chip.active { background: rgba(125,211,252,0.1); border-color: var(--green); color: var(--green); }
.tp-chip-addr { font-size: 9px; color: var(--text3); font-family: var(--mono); margin-left: 2px; }
.tp-wallet-chip.active .tp-chip-addr { color: rgba(125,211,252,0.6); }
/* AWC / Cfg status bar */
.tp-awc-status {
  margin-top: 6px;
  font-size: 11px;
  font-family: var(--mono);
  color: var(--text2);
  padding: 5px 8px;
  background: var(--bg2);
  border-radius: var(--radius-sm);
  border: 1px solid var(--border2);
}
/* Performance grid: vertical stack */
.tp-perf-grid-col { display: flex !important; flex-direction: column !important; gap: 5px !important; }
.tp-perf-grid-col .tp-perf-stat { flex-direction: row; justify-content: space-between; align-items: center; padding: 7px 10px; }
/* keep old names alive */
.tp-awc-controls { padding: 10px 0 4px; }
.tp-awc-ctrl-row { display: flex; align-items: flex-end; gap: 12px; flex-wrap: wrap; }
.tp-awc-ctrl-btns { display: flex; gap: 8px; padding-bottom: 1px; }
.tp-col-left, .tp-col-mid, .tp-col-right { display: flex; flex-direction: column; min-width: 0; }
.tp-ad-panel {
  min-width: 0;
  padding: 16px;
  background: var(--bg2);
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
}
.tp-ad-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 12px;
}
.tp-ad-panel-note {
  font-size: 11px;
  font-family: var(--mono);
  color: var(--text3);
}
.tp-ad-chart-shell {
  position: relative;
  min-height: 420px;
  border-radius: var(--radius-sm);
  overflow: hidden;
  border: 1px solid var(--border);
  background: #050505;
}
.tp-ad-chart-empty,
.tp-ad-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 180px;
  padding: 18px;
  text-align: center;
  color: var(--text3);
  font-size: 13px;
}
#tpAdChartFrame {
  width: 100%;
  height: 420px;
  border: 0;
  background: #050505;
}
.tp-ad-trades {
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-height: 420px;
  overflow-y: auto;
  padding-right: 4px;
}
.tp-ad-trade-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
  background: var(--bg1);
}
.tp-ad-trade-main {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.tp-ad-trade-type {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 52px;
  padding: 4px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  font-family: var(--mono);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.tp-ad-trade-type.buy {
  color: var(--green);
  background: rgba(125,211,252,0.1);
  border: 1px solid rgba(125,211,252,0.2);
}
.tp-ad-trade-type.sell {
  color: #ff6e6e;
  background: rgba(255,110,110,0.1);
  border: 1px solid rgba(255,110,110,0.2);
}
.tp-ad-trade-sol {
  font-size: 14px;
  font-weight: 700;
  color: var(--text);
}
.tp-ad-trade-wallet {
  font-size: 11px;
  font-family: var(--mono);
  color: var(--text3);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.tp-ad-trade-time {
  flex-shrink: 0;
  font-size: 11px;
  font-family: var(--mono);
  color: var(--text3);
}
@media (max-width: 980px) {
  .tp-ad-summary {
    grid-template-columns: 1fr;
  }
  .tp-ad-stat-wide {
    grid-column: span 1;
  }
  .tp-ad-grid {
    grid-template-columns: 1fr;
  }
  .tp-ad-chart-shell,
  #tpAdChartFrame {
    min-height: 320px;
    height: 320px;
  }
}

/* Action tabs */
.tp-action-tabs {
  display: flex;
  gap: 8px;
  margin-bottom: 16px;
}
.tp-tab {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 7px 20px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border2);
  background: var(--bg2);
  color: var(--text2);
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1px;
  cursor: pointer;
  transition: all .15s;
}
.tp-tab:hover { border-color: var(--green); color: var(--green); }
.tp-tab.active {
  background: rgba(125,211,252,0.08);
  border-color: var(--green);
  color: var(--green);
  box-shadow: 0 0 8px rgba(125,211,252,0.15);
}
.tp-tab.active:last-child {
  background: rgba(255,34,85,0.08);
  border-color: var(--red);
  color: var(--red);
  box-shadow: 0 0 8px rgba(255,34,85,0.15);
}

/* Config fields rows */
.tp-fields-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-bottom: 12px;
}

/* Sell % with presets */
.tp-pct-row {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.tp-pct-presets {
  display: flex;
  gap: 4px;
}
.btn-xs {
  padding: 3px 8px;
  font-size: 11px;
  border-radius: 4px;
}

/* Toggle wrap in fields */
.tp-toggle-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 0;
}
.tp-toggle-label {
  font-family: var(--mono);
  font-size: 12px;
  color: var(--text2);
}

/* Wallet section */
.tp-wallet-actions {
  display: flex;
  gap: 6px;
  margin-left: auto;
}
.tp-wallet-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  max-height: 300px;
  overflow-y: auto;
  padding-right: 4px;
}
.tp-wallet-list::-webkit-scrollbar { width: 4px; }
.tp-wallet-list::-webkit-scrollbar-track { background: transparent; }
.tp-wallet-list::-webkit-scrollbar-thumb { background: var(--border2); border-radius: 2px; }

.tp-wallet-empty {
  font-size: 13px;
  color: var(--text3);
  padding: 20px 0;
  text-align: center;
}
.tp-wallet-card {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border2);
  background: var(--bg2);
  cursor: pointer;
  transition: border-color .15s, background .15s;
}
.tp-wallet-card:hover { border-color: var(--border1); background: var(--bg3); }
.tp-wallet-card.selected {
  border-color: var(--green);
  background: rgba(125,211,252,0.05);
}
.tp-wc-check {
  width: 18px;
  height: 18px;
  border-radius: 4px;
  border: 1px solid var(--border1);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  color: var(--green);
  flex-shrink: 0;
  background: var(--bg1);
}
.tp-wallet-card.selected .tp-wc-check {
  border-color: var(--green);
  background: rgba(125,211,252,0.12);
}
.tp-wc-info { flex: 1; min-width: 0; }
.tp-wc-name {
  font-size: 13px;
  font-weight: 500;
  color: var(--text1);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.tp-wc-addr {
  font-size: 11px;
  font-family: var(--mono);
  color: var(--text3);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.tp-wc-bals {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  flex-shrink: 0;
}
.tp-wc-sol {
  font-family: var(--mono);
  font-size: 12px;
  color: var(--green-dim);
}
.tp-wc-tok {
  font-family: var(--mono);
  font-size: 11px;
  color: var(--text3);
}

/* Summary bar */
.tp-wallet-summary {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  margin-top: 10px;
  padding: 8px 12px;
  background: var(--bg1);
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
  font-size: 12px;
  color: var(--text3);
  font-family: var(--mono);
}
.tp-wallet-summary b { color: var(--text1); }

/* Execute row */
.tp-exec-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.tp-exec-info {
  font-size: 13px;
  color: var(--text2);
  flex: 1;
  line-height: 1.5;
}
.tp-exec-info b { color: var(--green); }
.tp-exec-btn {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 10px 24px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .5px;
  white-space: nowrap;
}

/* Progress */
.tp-progress-wrap {
  margin-top: 14px;
}
.tp-progress-bar-bg {
  height: 4px;
  background: var(--bg1);
  border-radius: 2px;
  overflow: hidden;
  margin-bottom: 10px;
}
.tp-progress-bar {
  height: 100%;
  background: var(--green);
  border-radius: 2px;
  transition: width .3s;
  box-shadow: 0 0 6px var(--green-glow);
}
.tp-progress-log {
  max-height: 140px;
  overflow-y: auto;
  font-family: var(--mono);
  font-size: 11px;
  color: var(--text3);
  background: var(--bg);
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
  padding: 8px 10px;
  line-height: 1.7;
}
.tp-progress-log::-webkit-scrollbar { width: 4px; }
.tp-progress-log::-webkit-scrollbar-track { background: transparent; }
.tp-progress-log::-webkit-scrollbar-thumb { background: var(--border2); border-radius: 2px; }

/* Results table */
.status-ok  { color: #7dd3fc; font-family: var(--mono); font-size: 12px; }
.status-fail { color: #f87171; font-family: var(--mono); font-size: 12px; }
.tbl-link { color: var(--green); text-decoration: none; font-family: var(--mono); font-size: 12px; }
.tbl-link:hover { text-decoration: underline; }

/* ══════════════════════════════════════════════════════════
   TASK WALLETS
   ══════════════════════════════════════════════════════════ */

.tw-empty {
  font-size: 13px;
  color: var(--text3);
  padding: 18px 0 6px;
  text-align: center;
}
.tw-empty b { color: var(--text2); }

/* ─ Arm / status badges ─ */
.tw-ca-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 14px;
  border-bottom: 1px solid var(--border2);
  background: rgba(255,255,255,.02);
}
.tw-ca-label {
  font-size: 11px;
  font-weight: 700;
  color: var(--text3);
  letter-spacing: .5px;
  text-transform: uppercase;
  flex-shrink: 0;
  width: 60px;
}
.tw-ca-input-wrap {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.tw-ca-input {
  flex: 1;
  font-size: 12px !important;
  font-family: var(--mono) !important;
  min-width: 0;
}
.tw-ca-badge {
  font-size: 11px;
  font-weight: 600;
  color: #7dd3fc;
  white-space: nowrap;
  flex-shrink: 0;
}
.tw-ca-badge.pending {
  color: var(--text3);
}
.tw-arm-btn {
  font-size: 11px !important;
  padding: 2px 8px !important;
  font-weight: 700;
  letter-spacing: .3px;
}
.tw-status-badge {
  font-size: 11px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 99px;
  letter-spacing: .3px;
  white-space: nowrap;
}
.tw-status-badge.armed    { background: rgba(125,211,252,.15); color: #7dd3fc; border: 1px solid rgba(125,211,252,.3); }
.tw-status-badge.triggered{ background: rgba(234,179,8,.15);  color: #eab308; border: 1px solid rgba(234,179,8,.3); }
.tw-status-badge.done     { background: rgba(99,102,241,.15); color: #818cf8; border: 1px solid rgba(99,102,241,.3); }
.tw-status-badge.error    { background: rgba(239,68,68,.15);  color: #f87171; border: 1px solid rgba(239,68,68,.3); }

.tw-task-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.tw-task-card {
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: var(--bg1);
}

/* ─ Header ─ */
.tw-task-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  cursor: pointer;
  user-select: none;
  transition: background .12s;
}
.tw-task-head:hover { background: rgba(255,255,255,0.03); }

.tw-task-num {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 700;
  color: var(--text3);
  letter-spacing: .5px;
  flex-shrink: 0;
}
.tw-task-summary {
  font-size: 12px;
  color: var(--text2);
  font-family: var(--mono);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex: 1;
  min-width: 0;
}
.tw-task-head-right {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
  margin-left: auto;
}
.tw-remove-btn {
  background: none;
  border: none;
  color: var(--text3);
  cursor: pointer;
  font-size: 13px;
  padding: 2px 4px;
  border-radius: 3px;
  line-height: 1;
  transition: color .12s;
}
.tw-remove-btn:hover { color: #f87171; }
.tw-chevron { color: var(--text3); transition: transform .2s; flex-shrink: 0; }
.tw-chevron.open { transform: rotate(180deg); }

/* ─ Body: stack of IF + THEN rows ─ */
.tw-task-body {
  display: flex;
  flex-direction: column;
  gap: 0;
  border-top: 1px solid var(--border2);
  background: var(--bg);
}

/* ─ IF / THEN rows ─ */
.tw-logic-row {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 14px 16px;
}
.tw-then-row {
  border-top: 1px dashed var(--border2);
  flex-wrap: wrap;
}

.tw-logic-kw {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 1.5px;
  padding: 6px 10px;
  border-radius: 4px;
  flex-shrink: 0;
  margin-top: 20px;  /* align with content below label */
}
.tw-logic-kw.if   { color: #fbbf24; background: rgba(251,191,36,0.1);  border: 1px solid rgba(251,191,36,0.2); }
.tw-logic-kw.then { color: #60a5fa; background: rgba(96,165,250,0.08); border: 1px solid rgba(96,165,250,0.18); }

/* ─ Individual blocks inside a logic row ─ */
.tw-logic-block {
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex-shrink: 0;
}
.tw-logic-block-wide {
  flex: 1;
  min-width: 200px;
}

.tw-label {
  font-size: 10px;
  font-family: var(--mono);
  color: var(--text3);
  text-transform: uppercase;
  letter-spacing: .6px;
}

/* ─ Select ─ */
.tw-select {
  height: 34px;
  font-size: 12px;
  padding: 0 10px;
  min-width: 180px;
  background: var(--bg2);
  color: var(--text1);
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
  cursor: pointer;
}
.tw-select:focus { border-color: var(--green); outline: none; }

/* ─ Side tabs ─ */
.tw-side-tabs { display: flex; gap: 5px; }
.tw-side-tab {
  padding: 5px 12px;
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 700;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border2);
  background: var(--bg2);
  color: var(--text2);
  cursor: pointer;
  transition: all .12s;
  letter-spacing: .5px;
  white-space: nowrap;
}
.tw-side-tab:hover { border-color: var(--border1); color: var(--text1); }
.tw-side-tab.active.buy  { border-color: var(--green); color: var(--green); background: rgba(125,211,252,0.07); }
.tw-side-tab.active.sell { border-color: var(--red);   color: var(--red);   background: rgba(255,34,85,0.07); }

/* ─ Wallet chips ─ */
.tw-wallet-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}
.tw-wallet-chip {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 6px 10px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border2);
  background: var(--bg2);
  cursor: pointer;
  transition: border-color .12s, background .12s;
}
.tw-wallet-chip:hover { border-color: var(--border1); background: var(--bg3); }
.tw-wallet-chip.selected { border-color: var(--green); background: rgba(125,211,252,0.05); }
.tw-wallet-chip.is-dev.selected { border-color: #a78bfa; background: rgba(167,139,250,0.07); }

.tw-wc-check {
  width: 15px; height: 15px;
  border-radius: 3px;
  border: 1px solid var(--border1);
  background: var(--bg1);
  display: flex; align-items: center; justify-content: center;
  font-size: 9px;
  color: var(--green);
  flex-shrink: 0;
}
.tw-wallet-chip.selected .tw-wc-check { border-color: var(--green); background: rgba(125,211,252,0.12); }
.tw-wallet-chip.is-dev.selected .tw-wc-check { border-color: #a78bfa; background: rgba(167,139,250,0.15); color: #a78bfa; }

.tw-wc-body { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.tw-wc-name { font-size: 12px; color: var(--text1); white-space: nowrap; }
.tw-wc-dev-tag {
  display: inline-block;
  font-size: 9px; font-family: var(--mono); font-weight: 700;
  color: #a78bfa; background: rgba(167,139,250,0.12);
  border: 1px solid rgba(167,139,250,0.25);
  border-radius: 3px; padding: 1px 4px; letter-spacing: .4px;
  vertical-align: middle; margin-left: 4px;
}
.tw-wc-bal { font-size: 10px; font-family: var(--mono); color: var(--text3); }
.tw-no-wallets { font-size: 12px; color: var(--text3); padding: 4px 0; }

/* ─ Amount / pct inputs ─ */
.tw-input { max-width: 110px; height: 32px; font-size: 13px; padding: 0 10px; }
.tw-pct-row { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.tw-preset-btns { display: flex; gap: 4px; }
.tw-preset-active { border-color: var(--green) !important; color: var(--green) !important; background: rgba(125,211,252,0.07) !important; }
.tw-unit { font-size: 12px; font-family: var(--mono); color: var(--text3); }

/* ══════════════════════════════════════════════════════════
   TASK WALLETS — custom IF wallet dropdown
   ══════════════════════════════════════════════════════════ */

.tw-wdrop {
  position: relative;
  display: inline-block;
}

.tw-wdrop-trigger {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 200px;
  height: 34px;
  padding: 0 10px;
  background: var(--bg2);
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
  color: var(--text1);
  cursor: pointer;
  font-size: 12px;
  transition: border-color .12s;
  justify-content: space-between;
}
.tw-wdrop-trigger:hover,
.tw-wdrop-trigger.open { border-color: var(--green); }

.tw-wdrop-sel { display: flex; align-items: center; gap: 6px; flex: 1; min-width: 0; overflow: hidden; }
.tw-wdrop-sel-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-family: var(--mono); font-size: 12px; }
.tw-wdrop-placeholder { color: var(--text3); font-size: 12px; }

.tw-wdrop-menu {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  min-width: 280px;
  max-height: 260px;
  overflow-y: auto;
  background: var(--bg2);
  border: 1px solid var(--border1);
  border-radius: var(--radius-sm);
  box-shadow: 0 8px 24px rgba(0,0,0,0.4);
  z-index: 200;
  padding: 4px;
}
.tw-wdrop-menu::-webkit-scrollbar { width: 4px; }
.tw-wdrop-menu::-webkit-scrollbar-track { background: transparent; }
.tw-wdrop-menu::-webkit-scrollbar-thumb { background: var(--border1); border-radius: 2px; }

.tw-wdrop-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 10px;
  border-radius: 4px;
  cursor: pointer;
  transition: background .1s;
}
.tw-wdrop-item:hover { background: rgba(255,255,255,0.05); }
.tw-wdrop-item-active { background: rgba(125,211,252,0.06) !important; }

.tw-wdrop-item-left { display: flex; align-items: center; gap: 8px; min-width: 0; }
.tw-wdrop-item-name {
  font-size: 12px;
  font-family: var(--mono);
  color: var(--text1);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 120px;
}
.tw-wdrop-badges { display: flex; gap: 4px; align-items: center; flex-shrink: 0; }

.tw-wdrop-item-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  flex-shrink: 0;
}
.tw-wdrop-item-bal { font-size: 11px; font-family: var(--mono); color: var(--green); }
.tw-wdrop-item-addr { font-size: 10px; font-family: var(--mono); color: var(--text3); }

/* badges shared */
.tw-wdrop-badge {
  font-size: 9px;
  font-family: var(--mono);
  font-weight: 700;
  padding: 1px 5px;
  border-radius: 3px;
  letter-spacing: .3px;
  line-height: 1.6;
}
.tw-wdrop-badge.dev    { color: #a78bfa; background: rgba(167,139,250,0.15); border: 1px solid rgba(167,139,250,0.3); }
.tw-wdrop-badge.cfg    { color: #60a5fa; background: rgba(96,165,250,0.12);  border: 1px solid rgba(96,165,250,0.25); }
.tw-wdrop-badge.blast  { color: #ff6b00; background: rgba(255,107,0,0.12);  border: 1px solid rgba(255,107,0,0.3); }
.tw-wdrop-badge.folder { color: var(--text2); background: rgba(255,255,255,0.04); border: 1px solid var(--border2); font-size: 10px; padding-left: 4px; }

/* dropdown group separator */
.tw-wdrop-sep {
  font-size: 9px;
  font-family: var(--mono);
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--text3);
  padding: 6px 10px 3px;
  border-top: 1px solid var(--border2);
  margin-top: 2px;
}
.tw-wdrop-sep:first-child { border-top: none; margin-top: 0; }

/* ══════════════════════════════════════════════════════════
   TASK WALLETS — THEN wallet list
   ══════════════════════════════════════════════════════════ */

/* toolbar: filter tabs + select all */
.tw-wlist-toolbar {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 7px;
  flex-wrap: wrap;
}
.tw-filter-tabs { display: flex; gap: 4px; flex-wrap: wrap; }
.tw-filter-tab {
  padding: 3px 10px;
  font-size: 11px;
  font-family: var(--mono);
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
  background: var(--bg2);
  color: var(--text2);
  cursor: pointer;
  transition: all .12s;
  white-space: nowrap;
}
.tw-filter-tab:hover { border-color: var(--border1); color: var(--text1); }
.tw-filter-tab.active { border-color: var(--green); color: var(--green); background: rgba(125,211,252,0.07); }
.tw-selall-btn { margin-left: auto; white-space: nowrap; flex-shrink: 0; }
.tw-selrange-btn { white-space: nowrap; flex-shrink: 0; }
.tw-selrange-btn.active { border-color: #a78bfa !important; color: #a78bfa !important; background: rgba(167,139,250,0.10) !important; }

/* ── Select Range panel ── */
.tw-range-panel {
  background: var(--bg2);
  border: 1px solid var(--border1);
  border-radius: var(--radius-sm);
  padding: 12px 14px 10px;
  margin-bottom: 8px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.tw-range-label {
  font-size: 13px;
  font-family: var(--mono);
  color: var(--green);
  font-weight: 600;
  letter-spacing: 0.02em;
}
.tw-range-inputs { display: flex; gap: 18px; flex-wrap: wrap; }
.tw-range-field { display: flex; flex-direction: column; gap: 4px; flex: 1; min-width: 160px; }
.tw-range-lbl { font-size: 11px; font-family: var(--mono); color: var(--text3); font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; }
.tw-range-slider-wrap { display: flex; align-items: center; gap: 8px; }
.tw-range-slider {
  flex: 1;
  height: 4px;
  -webkit-appearance: none;
  appearance: none;
  background: var(--border1);
  border-radius: 4px;
  outline: none;
  cursor: pointer;
  accent-color: var(--green);
}
.tw-range-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--green);
  cursor: pointer;
  border: 2px solid var(--bg1);
  box-shadow: 0 0 0 1px var(--green);
}
.tw-range-slider::-moz-range-thumb {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--green);
  cursor: pointer;
  border: 2px solid var(--bg1);
}
.tw-range-val {
  font-size: 13px;
  font-family: var(--mono);
  color: var(--text1);
  min-width: 28px;
  text-align: right;
}
.tw-range-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.tw-range-hint { font-size: 11px; color: var(--text4); margin-left: 6px; font-style: italic; }

.tw-wlist {
  display: flex;
  flex-direction: column;
  gap: 3px;
  max-height: clamp(240px, 35vh, 600px);
  overflow-y: auto;
}
.tw-wlist::-webkit-scrollbar { width: 4px; }
.tw-wlist::-webkit-scrollbar-track { background: transparent; }
.tw-wlist::-webkit-scrollbar-thumb { background: var(--border1); border-radius: 2px; }

.tw-wlist-row {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 5px;
  border: 1px solid transparent;
  background: var(--bg2);
  cursor: pointer;
  transition: border-color .12s, background .12s;
  flex-wrap: wrap;
}
.tw-wlist-row:hover { border-color: var(--border2); background: var(--bg3); }
.tw-wlist-row.selected { border-color: var(--green); background: rgba(125,211,252,0.05); }

.tw-wlist-check {
  width: 16px;
  height: 16px;
  border-radius: 3px;
  border: 1px solid var(--border1);
  background: var(--bg1);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--green);
}
.tw-wlist-row.selected .tw-wlist-check { border-color: var(--green); background: rgba(125,211,252,0.12); }

/* info block (name + meta) */
.tw-wlist-info { display: flex; flex-direction: column; gap: 3px; flex: 1; min-width: 0; }
.tw-wlist-name { font-size: 12px; font-family: var(--mono); color: var(--text1); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tw-wlist-meta { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.tw-wlist-badges { display: flex; gap: 4px; align-items: center; }
.tw-wlist-bal  { font-size: 11px; font-family: var(--mono); color: var(--green); white-space: nowrap; }
.tw-wlist-addr { font-size: 10px; font-family: var(--mono); color: var(--text3); white-space: nowrap; }

/* per-wallet amount control */
.tw-wlist-amt {
  display: flex;
  align-items: center;
  gap: 5px;
  flex-wrap: wrap;
  width: 100%;
  margin-top: 4px;
  padding-left: 24px; /* align with name (after checkbox) */
}
.tw-wlist-input {
  width: 90px;
  height: 28px;
  font-size: 12px;
  padding: 0 7px;
}
.tw-wlist-max {
  font-size: 10px !important;
  padding: 2px 7px !important;
  height: 24px !important;
  color: var(--green) !important;
  border-color: rgba(125,211,252,0.3) !important;
}
.tw-wlist-max:hover { background: rgba(125,211,252,0.08) !important; }
.tw-wlist-unit { font-size: 11px; font-family: var(--mono); color: var(--text3); }
.tw-wlist-pct-btns { display: flex; gap: 3px; }

/* THEN wallet list group separator */
.tw-wlist-sep {
  font-size: 9px;
  font-family: var(--mono);
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--text3);
  padding: 6px 10px 3px;
  border-top: 1px solid var(--border2);
  margin-top: 2px;
}
.tw-wlist-sep:first-child { border-top: none; margin-top: 0; }

/* ══ VANISH SECTION ══════════════════════════════════════════════ */
.tp-vanish-note {
  font-size: 11px;
  color: var(--text3);
  font-family: var(--mono);
}

/* Config row */
.tp-vanish-cfg {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  align-items: flex-start;
  padding: 12px 0 14px;
  border-bottom: 1px solid var(--border2);
}
.tp-vanish-cfg-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 200px;
}
.tp-vanish-select {
  max-width: 280px;
}

/* Speed mode chips */
.tp-vanish-speeds {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.tp-vanish-speed-opt {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 5px 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  cursor: pointer;
  font-size: 12px;
  transition: border-color .15s, background .15s;
  user-select: none;
}
.tp-vanish-speed-opt input[type="radio"] { display: none; }
.tp-vanish-speed-opt:has(input:checked) {
  border-color: var(--green);
  background: rgba(125,211,252,.1);
  color: var(--green);
}
.tp-vanish-speed-opt:hover { border-color: rgba(255,255,255,.25); }
.tp-vanish-speed-icon { font-size: 13px; }
.tp-vanish-speed-desc {
  font-size: 10px;
  color: var(--text3);
  font-family: var(--mono);
  margin-left: 2px;
}
.tp-vanish-speed-opt:has(input:checked) .tp-vanish-speed-desc { color: rgba(125,211,252,.7); }

/* ── Vanish list wrapper ───────────────────────────────── */
.tp-vanish-list-wrap {
  margin-top: 12px;
}

/* ── Header row ────────────────────────────────────────── */
.tp-vanish-list-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 6px 10px;
  border-bottom: 1px solid var(--border2);
  font-size: 11px;
  font-family: var(--mono);
  color: var(--text3);
}
.tp-vanish-check-all {
  display: flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  user-select: none;
}
.tp-vanish-check-all input[type="checkbox"] {
  accent-color: var(--green);
}
.tp-vanish-list-count {
  font-size: 10px;
  color: var(--text3);
  letter-spacing: .3px;
}

/* ── Cards container ───────────────────────────────────── */
.tp-vanish-cards {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 10px 0;
}

/* ── Single vanish card ────────────────────────────────── */
.tp-vanish-card {
  display: flex;
  align-items: stretch;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 10px;
  transition: border-color .15s, box-shadow .15s;
}
.tp-vanish-card:hover {
  border-color: rgba(255,255,255,.15);
  box-shadow: 0 2px 12px rgba(0,0,0,.2);
}
.tp-vanish-card.vcard-ok {
  border-color: rgba(125,211,252,.3);
  background: rgba(125,211,252,.04);
}
.tp-vanish-card.vcard-fail {
  border-color: rgba(255,50,50,.3);
  background: rgba(255,50,50,.04);
}
.tp-vanish-card.vcard-running {
  border-color: rgba(200,180,255,.3);
}

/* ── Checkbox column ───────────────────────────────────── */
.vcard-check {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  flex-shrink: 0;
  border-right: 1px solid var(--border2);
  border-radius: 10px 0 0 10px;
  overflow: hidden;
}
.vcard-check input[type="checkbox"] {
  width: 15px;
  height: 15px;
  accent-color: var(--green);
  cursor: pointer;
}

/* ── Source wallet panel ───────────────────────────────── */
.vcard-source {
  flex: 1;
  padding: 10px 14px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  border-right: 1px solid var(--border2);
}
.vcard-wallet-head {
  display: flex;
  align-items: center;
  gap: 8px;
}
.vcard-label {
  font-size: 9px;
  font-family: var(--mono);
  text-transform: uppercase;
  letter-spacing: .6px;
  color: var(--text3);
  padding: 1px 6px;
  background: rgba(255,255,255,.04);
  border-radius: 3px;
}
.vcard-label.lbl-source { color: rgba(100,180,255,.7); }
.vcard-label.lbl-dest { color: rgba(180,120,255,.8); }
.vcard-wallet-name {
  font-size: 13px;
  font-weight: 600;
  color: var(--text1);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.vcard-wallet-folder {
  font-size: 9px;
  font-family: var(--mono);
  color: rgba(125,211,252,.8);
  background: rgba(125,211,252,.1);
  padding: 1px 7px;
  border-radius: 4px;
  letter-spacing: .3px;
  white-space: nowrap;
}
.vcard-wallet-addr {
  font-size: 11px;
  font-family: var(--mono);
  color: var(--text3);
  letter-spacing: .2px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ── Balance row inside wallet panel ───────────────────── */
.vcard-balances {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.vcard-bal {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 3px 8px;
  background: rgba(255,255,255,.03);
  border: 1px solid var(--border2);
  border-radius: 6px;
  font-family: var(--mono);
  font-size: 11px;
}
.vcard-bal-icon {
  font-size: 11px;
  flex-shrink: 0;
}
.vcard-bal-label {
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: .4px;
  color: var(--text3);
}
.vcard-bal-val {
  font-weight: 600;
  color: var(--text1);
}
.vcard-bal.bal-tkn {
  border-color: rgba(180,120,255,.15);
}
.vcard-bal.bal-tkn .vcard-bal-label { color: rgba(180,120,255,.7); }
.vcard-bal.bal-tkn .vcard-bal-icon { color: rgba(180,120,255,.7); }
.vcard-bal.bal-sol {
  border-color: rgba(100,180,255,.15);
}
.vcard-bal.bal-sol .vcard-bal-label { color: rgba(100,180,255,.7); }
.vcard-bal.bal-sol .vcard-bal-icon { color: rgba(100,180,255,.7); }
.vcard-bal.bal-dim .vcard-bal-val { color: var(--text3); }

/* ── Arrow separator ───────────────────────────────────── */
.vcard-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  flex-shrink: 0;
  color: rgba(180,120,255,.6);
  font-size: 18px;
}

/* ── Destination wallet panel ──────────────────────────── */
.vcard-dest {
  flex: 1;
  padding: 10px 14px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  position: relative;
}

/* ── Status badge ──────────────────────────────────────── */
.vcard-status {
  position: absolute;
  top: 8px;
  right: 10px;
  font-size: 10px;
  font-family: var(--mono);
}
.vcard-status-ok { color: var(--green); }
.vcard-status-fail { color: var(--red); cursor: help; }
.vcard-status-pending { color: var(--text3); }

/* ── Destination: select button (when no dest chosen) ──── */
.vcard-dest-select-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  min-height: 80px;
  padding: 12px;
  background: rgba(255,255,255,.02);
  border: 2px dashed rgba(255,80,80,.3);
  border-radius: 8px;
  color: var(--text3);
  cursor: pointer;
  font-size: 12px;
  transition: border-color .15s, background .15s, color .15s;
}
.vcard-dest-select-btn:hover {
  border-color: rgba(180,120,255,.5);
  background: rgba(180,120,255,.05);
  color: var(--text1);
}
.vcard-dest-select-btn:disabled {
  opacity: .4;
  cursor: default;
}
.vcard-dest-select-icon {
  font-size: 20px;
  opacity: .5;
}

/* ── Destination: filled wallet card ───────────────────── */
.vcard-dest-filled {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 10px 12px;
  background: rgba(180,120,255,.04);
  border: 1px solid rgba(180,120,255,.15);
  border-radius: 8px;
  cursor: pointer;
  transition: border-color .15s, background .15s;
}
.vcard-dest-filled:hover {
  border-color: rgba(180,120,255,.35);
  background: rgba(180,120,255,.07);
}
.vcard-dest-filled:disabled,
.vcard-dest-filled[disabled] {
  opacity: .6;
  cursor: default;
  pointer-events: none;
}

/* ── Picker dropdown panel (redesigned) ────────────────── */
.vcard-picker-wrap {
  position: relative;
}
.tp-vanish-dest-picker {
  /* position/top/left/width set dynamically via JS (portal to body) */
  position: fixed;
  max-height: 340px;
  overflow-y: auto;
  background: var(--bg1);
  border: 1px solid rgba(180,120,255,.25);
  border-radius: 10px;
  box-shadow: 0 12px 36px rgba(0,0,0,.6), 0 0 0 1px rgba(0,0,0,.15);
  z-index: 9999;
  padding: 6px;
}
.tp-vanish-dest-picker-empty {
  padding: 20px 14px;
  font-size: 12px;
  color: var(--text3);
  text-align: center;
}
.tp-vanish-dest-picker-item {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 10px 12px;
  border-radius: 8px;
  cursor: pointer;
  transition: background .12s, border-color .12s;
  border: 1px solid transparent;
  margin-bottom: 2px;
}
.tp-vanish-dest-picker-item:hover {
  background: rgba(180,120,255,.06);
  border-color: rgba(180,120,255,.15);
}
.tp-vanish-dest-picker-item.active {
  background: rgba(125,211,252,.08);
  border-color: rgba(125,211,252,.25);
}

/* Picker item: top row — name + folder */
.picker-item-top {
  display: flex;
  align-items: center;
  gap: 8px;
}
.picker-item-name {
  font-size: 13px;
  font-weight: 600;
  color: var(--text1);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.picker-item-folder {
  font-size: 9px;
  font-family: var(--mono);
  color: rgba(125,211,252,.8);
  background: rgba(125,211,252,.1);
  padding: 1px 7px;
  border-radius: 4px;
  letter-spacing: .3px;
  white-space: nowrap;
  flex-shrink: 0;
}
/* Picker item: address */
.picker-item-addr {
  font-size: 11px;
  font-family: var(--mono);
  color: var(--text3);
  letter-spacing: .2px;
}
/* Picker item: balances */
.picker-item-bals {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.picker-item-bal {
  display: flex;
  align-items: center;
  gap: 3px;
  padding: 2px 7px;
  background: rgba(255,255,255,.03);
  border: 1px solid var(--border2);
  border-radius: 5px;
  font-family: var(--mono);
  font-size: 10px;
}
.picker-item-bal .pbal-l {
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: .3px;
  color: var(--text3);
}
.picker-item-bal .pbal-v {
  font-weight: 600;
  color: var(--text1);
}
.picker-item-bal.pbal-tkn { border-color: rgba(180,120,255,.15); }
.picker-item-bal.pbal-tkn .pbal-l { color: rgba(180,120,255,.7); }
.picker-item-bal.pbal-sol { border-color: rgba(100,180,255,.15); }
.picker-item-bal.pbal-sol .pbal-l { color: rgba(100,180,255,.7); }
.picker-item-bal.pbal-dim .pbal-v { color: var(--text3); }

/* ── Backward compat — hide old column headers ─────────── */
.tp-vanish-col-hdr,
.tp-vanish-col-name,
.tp-vanish-col-dest,
.tp-vanish-col-tokens,
.tp-vanish-col-sol,
.tp-vanish-col-status { display: none; }

/* ── Old classes kept for backward compat ──────────────── */
.tp-vanish-dest-cell { padding: 0; }
.tp-vanish-status-cell { font-size: 10px; font-family: var(--mono); white-space: nowrap; }
.tp-vanish-status-ok { color: var(--green); }
.tp-vanish-status-fail { color: var(--red); cursor: help; }
.tp-vanish-status-pending { color: var(--text3); }

.tp-vanish-val { font-family: var(--mono); font-size: 12px; }

.tp-vanish-empty {
  padding: 24px 14px;
  color: var(--text3);
  font-size: 12px;
  text-align: center;
}

/* progress bar reuse tp-progress-bar but with ghost purple tint for vanish */
.tp-vanish-progress-wrap { margin-top: 12px; }
.tp-vanish-progress-bar { background: linear-gradient(90deg, rgba(180,80,255,.7), rgba(255,80,180,.7)); }

/* ══════════════════════════════════════════════════════════ */
/* ── tp-ad-grid-single: full-width single panel ─────────── */
.tp-ad-grid-single { grid-template-columns: 1fr !important; }

/* ══════════════════════════════════════════════════════════ */
/* ── Launch Performance Panel ───────────────────────────── */
.tp-perf-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
  padding: 12px 0 6px;
}
@media (max-width: 700px) {
  .tp-perf-grid { grid-template-columns: repeat(3, 1fr); }
}
.tp-perf-stat {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 10px 12px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  cursor: pointer;
  transition: border-color .15s;
}
.tp-perf-stat:hover { border-color: var(--green); }
.tp-perf-label {
  font-size: 10px;
  font-family: var(--mono);
  text-transform: uppercase;
  letter-spacing: .5px;
  color: var(--text3);
}
.tp-perf-value {
  font-size: 14px;
  font-family: var(--mono);
  color: var(--text1);
  font-weight: 600;
}
.tp-perf-pos { color: var(--green) !important; }
.tp-perf-neg { color: var(--red)   !important; }
.tp-perf-pnl .tp-perf-label::after { content: ' ↕'; font-size: 8px; }
.tp-perf-hint {
  font-size: 10px;
  color: var(--text3);
  margin-top: 4px;
  font-family: var(--mono);
}
.tp-perf-currency-badge {
  font-size: 10px;
  font-family: var(--mono);
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 2px 7px;
  color: var(--text2);
  letter-spacing: .5px;
}

/* ══════════════════════════════════════════════════════════ */
/* ── All Wallets Control + Configure Wallets ─────────────── */
.tp-awc-list {
  margin-top: 8px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.tp-awc-empty {
  padding: 14px 12px;
  font-size: 12px;
  color: var(--text3);
  text-align: center;
}
.tp-awc-row {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 7px 10px;
  background: var(--bg2);
  border: 1px solid var(--border2);
  border-radius: 6px;
  transition: background .1s;
}
.tp-awc-row:hover { background: var(--bg3); }
.tp-awc-info {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  overflow: hidden;
}
.tp-awc-name {
  font-size: 12px;
  font-weight: 500;
  color: var(--text1);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 120px;
}
.tp-awc-addr {
  font-size: 10px;
  color: var(--text3);
  font-family: var(--mono);
  white-space: nowrap;
}
.tp-awc-bal {
  font-size: 11px;
  color: var(--text2);
  font-family: var(--mono);
  white-space: nowrap;
}
.tp-awc-btns {
  display: flex;
  gap: 6px;
  flex-shrink: 0;
}
/* tiny inline spinner for per-row buttons */
.tp-awc-spinner {
  display: inline-block;
  width: 10px; height: 10px;
  border: 2px solid var(--border);
  border-top-color: var(--green);
  border-radius: 50%;
  animation: spin .6s linear infinite;
  vertical-align: middle;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* Configure Wallets checkbox column */
.tp-cfg-check-wrap {
  display: flex;
  align-items: center;
  cursor: pointer;
}
.tp-cfg-cb {
  width: 14px;
  height: 14px;
  cursor: pointer;
  accent-color: var(--green);
}

/* ══════════════════════════════════════════════════════════
   TRADE PANEL — GROUP CARD GRID
   ══════════════════════════════════════════════════════════ */

/* Trade panel: token line + Dev Sell / Dump All in card head */
.tp-panel-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-left: auto;
}
.tp-panel-actions .tp-ticker-name,
.tp-panel-actions .tp-token-name {
  font-size: 12px;
  font-weight: 600;
  color: var(--text1);
  max-width: 140px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.tp-panel-actions .tp-ticker-mc,
.tp-panel-actions .tp-token-mc {
  font-size: 11px;
  font-family: var(--mono);
  color: var(--green);
  font-weight: 600;
}
.tp-token-ca-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-family: var(--mono);
  font-size: 10px;
  color: var(--text3);
  cursor: pointer;
  padding: 3px 8px;
  border: 1px solid var(--border2);
  border-radius: var(--radius-sm);
  background: var(--bg2);
  transition: border-color .15s, color .15s;
  max-width: 100px;
  overflow: hidden;
  text-overflow: ellipsis;
}
.tp-token-ca-btn:hover { border-color: var(--green); color: var(--text1); }
.tp-ca-hint { font-size: 9px; opacity: .8; margin-left: 2px; }

/* Legacy ticker bar (kept for JS compatibility, hidden when using tp-panel-actions) */
.tp-ticker-bar {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 12px 18px;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  margin-bottom: 16px;
  flex-wrap: wrap;
}
.tp-ticker-name { font-size: 13px; font-weight: 700; color: var(--text1); }
.tp-ticker-mc { font-size: 12px; font-family: var(--mono); color: var(--green); font-weight: 600; }
.tp-ticker-ca {
  display: flex;
  align-items: center;
  gap: 6px;
  font-family: var(--mono);
  font-size: 12px;
  color: var(--text3);
  cursor: pointer;
  padding: 4px 10px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--bg1);
  transition: border-color .15s, color .15s;
}
.tp-ticker-ca:hover {
  border-color: var(--green);
  color: var(--green);
}
.tp-ticker-ca .tp-ca-hint {
  font-size: 10px;
  color: var(--green);
  opacity: .7;
}
.tp-ticker-sep {
  width: 1px;
  height: 20px;
  background: var(--border);
}

/* Card grid */
.tp-cards-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-bottom: 18px;
}
@media (max-width: 1100px) { .tp-cards-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 720px)  { .tp-cards-grid { grid-template-columns: 1fr; } }

/* ── Group card ─────────────────────────────────── */
.tp-gcard {
  background: #1a1a2e;
  border: 1px solid #2a2a40;
  border-radius: 10px;
  padding: 0;
  display: flex;
  flex-direction: column;
  transition: border-color .15s, box-shadow .15s;
  overflow: hidden;
}
.tp-gcard:hover { box-shadow: 0 0 12px rgba(0,0,0,.35); }

/* Color per type */
.tp-gcard.gtype-distribution { border-color: #ef4444; }
.tp-gcard.gtype-bundle       { border-color: #3b82f6; }
.tp-gcard.gtype-dev          { border-color: #eab308; }
.tp-gcard.gtype-payer        { border-color: #a855f7; }
.tp-gcard.gtype-custom       { border-color: #06b6d4; }

/* Header — click to expand wallet list */
.tp-gcard-head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 14px;
  cursor: pointer;
  user-select: none;
}
.tp-gcard-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  flex-shrink: 0;
}
.tp-gcard-dot.gdot-distribution { background: #ef4444; }
.tp-gcard-dot.gdot-bundle       { background: #3b82f6; }
.tp-gcard-dot.gdot-dev          { background: #eab308; }
.tp-gcard-dot.gdot-payer        { background: #a855f7; }
.tp-gcard-dot.gdot-custom       { background: #06b6d4; }

/* Editable group name */
.tp-gcard-name {
  font-size: 14px;
  font-weight: 700;
  color: var(--text1);
  background: transparent;
  border: 1px solid transparent;
  border-radius: 4px;
  padding: 2px 6px;
  min-width: 60px;
  max-width: 180px;
  font-family: inherit;
  outline: none;
  transition: border-color .15s;
}
.tp-gcard-name:hover { border-color: var(--border); }
.tp-gcard-name:focus { border-color: var(--green); background: var(--bg2); }

/* Wallet count badge */
.tp-gcard-count {
  font-size: 11px;
  font-family: var(--mono);
  color: var(--text3);
  background: var(--bg2);
  padding: 2px 7px;
  border-radius: 8px;
  white-space: nowrap;
}

/* Chevron */
.tp-gcard-chevron {
  margin-left: auto;
  font-size: 12px;
  color: var(--text3);
  transition: transform .2s;
  flex-shrink: 0;
}
.tp-gcard.expanded .tp-gcard-chevron { transform: rotate(180deg); }

/* Delete group btn */
.tp-gcard-del {
  background: none; border: none; cursor: pointer;
  color: var(--text3); font-size: 14px; padding: 2px 4px;
  transition: color .15s;
}
.tp-gcard-del:hover { color: #f87171; }

/* ── Expandable wallet selector ──────────────── */
.tp-gcard-wallets {
  display: none;
  border-top: 1px solid #2a2a40;
  padding: 8px 12px 10px;
  max-height: 220px;
  overflow-y: auto;
  background: #12121e;
}
.tp-gcard.expanded .tp-gcard-wallets { display: block; }

.tp-gcard-wrow {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 5px 4px;
  border-radius: 4px;
  cursor: pointer;
  transition: background .1s;
  font-size: 12px;
}
.tp-gcard-wrow:hover { background: rgba(255,255,255,.04); }
.tp-gcard-wcb {
  width: 14px; height: 14px;
  accent-color: var(--green);
  cursor: pointer;
  flex-shrink: 0;
}
.tp-gcard-wname {
  color: var(--text2);
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 110px;
}
.tp-gcard-waddr {
  font-family: var(--mono);
  color: var(--text3);
  font-size: 10px;
  white-space: nowrap;
}
.tp-gcard-wbal {
  font-family: var(--mono);
  color: var(--text3);
  font-size: 10px;
  margin-left: auto;
  white-space: nowrap;
}

/* ── Body — aggregated stats ──────────────────── */
.tp-gcard-body {
  padding: 8px 14px 6px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.tp-gcard-stat {
  display: flex;
  align-items: baseline;
  gap: 8px;
  font-size: 13px;
}
.tp-gcard-stat-label {
  color: var(--text3);
  font-size: 12px;
  min-width: 75px;
}
.tp-gcard-stat-val {
  font-family: var(--mono);
  font-weight: 600;
  color: var(--text1);
}
.tp-gcard-stat-val.pnl-pos { color: #7dd3fc; }
.tp-gcard-stat-val.pnl-neg { color: #f87171; }

/* ── Buy/Sell buttons ──────────────────────────── */
.tp-gcard-btns {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
  padding: 4px 14px;
}
.tp-gcard-btns:last-child { padding-bottom: 12px; }

.tp-gcard-btn {
  flex: 1 1 0;
  min-width: 36px;
  padding: 5px 2px;
  border: none;
  border-radius: 5px;
  font-size: 11px;
  font-family: var(--mono);
  font-weight: 600;
  cursor: pointer;
  transition: filter .12s, transform .08s;
  text-align: center;
}
.tp-gcard-btn:hover { filter: brightness(1.2); }
.tp-gcard-btn:active { transform: scale(.96); }
.tp-gcard-btn.buy-btn {
  background: rgba(125,211,252, .18);
  color: #7dd3fc;
  border: 1px solid rgba(125,211,252, .25);
}
.tp-gcard-btn.sell-btn {
  background: rgba(239, 68, 68, .18);
  color: #f87171;
  border: 1px solid rgba(239, 68, 68, .25);
}
.tp-gcard-btn:disabled { opacity: .4; cursor: not-allowed; }

/* Add group button */
.tp-add-group {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 14px;
  border: 2px dashed #2a2a40;
  border-radius: 10px;
  color: var(--text3);
  font-size: 13px;
  cursor: pointer;
  transition: border-color .15s, color .15s;
  background: transparent;
}
.tp-add-group:hover { border-color: var(--green); color: var(--green); }

/* Empty state */
.tp-cards-empty {
  grid-column: 1 / -1;
  text-align: center;
  padding: 32px 16px;
  color: var(--text3);
  font-size: 14px;
}

/* Auto-refresh indicator */
.tp-refresh-badge {
  font-size: 11px;
  color: var(--text3);
  font-family: var(--mono);
  margin-left: auto;
}

/* ══════════════════════════════════════════════════════════
   ACCESSIBILITY — Focus rings (WCAG 2.1)
══════════════════════════════════════════════════════════ */
:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: 2px;
  border-radius: var(--radius-sm);
}
button:focus-visible,
a:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: 3px;
  box-shadow: 0 0 0 4px rgba(125,211,252,0.15);
}

/* ══════════════════════════════════════════════════════════
   MOTION — Reduced motion
══════════════════════════════════════════════════════════ */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  .dw-step-content {
    animation: none !important;
  }
}

/* ══════════════════════════════════════════════════════════
   DEPLOY WIZARD — Stepper + Step panels + Nav
══════════════════════════════════════════════════════════ */

/* Stepper bar */
.dw-stepper {
  display: flex;
  align-items: center;
  gap: 0;
  padding: 0 0 24px 0;
  margin-bottom: 24px;
  border-bottom: 1px solid var(--border1);
  position: relative;
}

.dw-step {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  flex-shrink: 0;
  position: relative;
  z-index: 1;
  transition: opacity var(--transition);
}
.dw-step:hover { opacity: 0.8; }

/* Number bubble */
.dw-step-num {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1.5px solid var(--border2);
  background: var(--bg3);
  color: var(--text3);
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s, border-color 0.2s, color 0.2s, box-shadow 0.2s;
  flex-shrink: 0;
}

/* Step label */
.dw-step-label {
  font-size: 12px;
  font-weight: 600;
  color: var(--text3);
  letter-spacing: 0.04em;
  white-space: nowrap;
  transition: color 0.2s;
}

/* Connector line between steps */
.dw-connector {
  flex: 1;
  height: 1px;
  background: var(--border1);
  margin: 0 12px;
  min-width: 20px;
  transition: background 0.3s;
}

/* Done state */
.dw-step.done .dw-step-num {
  background: rgba(125,211,252,0.12);
  border-color: var(--dw-step-done);
  color: var(--green);
}
.dw-step.done .dw-step-label { color: var(--green-dim); }
.dw-step.done + .dw-connector { background: rgba(125,211,252,0.3); }

/* Active state */
.dw-step.active .dw-step-num {
  background: var(--green-bg);
  border-color: var(--green);
  color: var(--green);
  box-shadow: var(--dw-step-active-glow);
  text-shadow: 0 0 8px rgba(125,211,252,0.5);
}
.dw-step.active .dw-step-label { color: var(--text1); }

/* Done checkmark SVG */
.dw-step.done .dw-step-num::after {
  content: '';
  display: block;
  width: 10px;
  height: 7px;
  border-left: 2px solid var(--green);
  border-bottom: 2px solid var(--green);
  transform: rotate(-45deg) translate(1px, -1px);
}
.dw-step.done .dw-step-num-text { display: none; }

/* Step content panels */
.dw-step-content {
  animation: dw-fadein 0.18s ease;
}
@keyframes dw-fadein {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Navigation row */
.dw-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 0 0 0;
  margin-top: 24px;
  border-top: 1px solid var(--border1);
}
.dw-nav-right {
  display: flex;
  align-items: center;
  gap: 10px;
}

.dw-back-btn {
  height: 36px;
  padding: 0 18px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border2);
  background: transparent;
  color: var(--text2);
  font-size: 13px;
  font-weight: 600;
  font-family: var(--font);
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 7px;
  transition: background var(--transition), color var(--transition), border-color var(--transition);
}
.dw-back-btn:hover { background: var(--bg3); color: var(--text); border-color: var(--border2); }

.dw-next-btn {
  height: 36px;
  padding: 0 22px;
  border-radius: var(--radius-sm);
  border: 1px solid rgba(125,211,252,0.25);
  background: var(--green-bg);
  color: var(--green);
  font-size: 13px;
  font-weight: 600;
  font-family: var(--font);
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 7px;
  transition: background var(--transition), box-shadow var(--transition), border-color var(--transition);
  text-shadow: 0 0 10px rgba(125,211,252,0.3);
}
.dw-next-btn:hover {
  background: rgba(125,211,252,0.14);
  box-shadow: 0 0 14px rgba(125,211,252,0.2);
  border-color: rgba(125,211,252,0.4);
}

/* Review step summary card */
.dw-review-card {
  background: var(--bg2);
  border: 1px solid var(--border1);
  border-radius: var(--radius);
  padding: 20px 24px;
  margin-bottom: 16px;
}
.dw-review-title {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: var(--text3);
  text-transform: uppercase;
  margin-bottom: 14px;
}
.dw-review-row {
  display: flex;
  align-items: baseline;
  gap: 12px;
  padding: 7px 0;
  border-bottom: 1px solid var(--border);
}
.dw-review-row:last-child { border-bottom: none; }
.dw-review-key {
  font-size: 11px;
  color: var(--text3);
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  min-width: 90px;
  flex-shrink: 0;
}
.dw-review-val {
  font-family: var(--mono);
  font-size: 13px;
  color: var(--text1);
  word-break: break-all;
}
.dw-review-val.green { color: var(--green); }
.dw-review-val.dim   { color: var(--text3); font-style: italic; }

/* Warning banner on review step */
.dw-review-warning {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  background: rgba(255,34,85,0.07);
  border: 1px solid rgba(255,34,85,0.18);
  border-radius: var(--radius-sm);
  padding: 12px 16px;
  margin-bottom: 16px;
  font-size: 13px;
  color: var(--red);
  line-height: 1.5;
}
.dw-review-warning svg { flex-shrink: 0; margin-top: 1px; }

.auth-gate {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #07080b;
}
.auth-card {
  width: min(380px, calc(100vw - 32px));
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 28px 24px;
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 14px;
  background: #101218;
}
.auth-brand { font-size: 13px; letter-spacing: 0.14em; color: #8b93a7; }
.auth-brand span { color: #7dd3fc; }
.auth-card h1 { margin: 0 0 6px; font-size: 22px; color: #f4f6fb; }
.auth-card label { display: flex; flex-direction: column; gap: 6px; font-size: 12px; color: #9aa3b5; }
.auth-card input {
  height: 40px;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,0.1);
  background: #0b0d12;
  color: #f4f6fb;
  padding: 0 12px;
}
.auth-remember { flex-direction: row !important; align-items: center; gap: 8px !important; }
.auth-remember input { width: 16px; height: 16px; }
.auth-submit { height: 40px; }
.auth-link {
  background: none;
  border: 0;
  color: #7d8cff;
  cursor: pointer;
  font-size: 13px;
  padding: 0;
}
.auth-optional { color: #6b7288; font-weight: 400; }
.auth-error { margin: 0; color: #ff4d6d; font-size: 13px; }
.auth-user-label { font-size: 12px; color: #c5cad6; margin-left: 8px; }
.auth-logout {
  margin-left: 8px;
  height: 28px;
  padding: 0 10px;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,0.12);
  background: transparent;
  color: #c5cad6;
  cursor: pointer;
}

.topbar-brand > img { grid-row: 1 / 3; margin-right: 8px; }

/* Custom pair picker modal */
.pair-modal { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(0,0,0,0.65); backdrop-filter: blur(4px); }
.pair-modal[hidden] { display: none; }
.pair-modal-box { width: 100%; max-width: 440px; max-height: min(86vh, 760px); display: flex; flex-direction: column; background: #0a0a0a; border: 1px solid var(--border2); border-radius: 16px; padding: 20px; box-shadow: 0 24px 60px rgba(0,0,0,0.6); }
.pair-modal-head { display: flex; align-items: center; justify-content: space-between; font-size: 16px; font-weight: 700; color: var(--text); margin-bottom: 16px; }
.pair-modal-x { background: none; border: 0; color: var(--text3); font-size: 22px; line-height: 1; cursor: pointer; }
.pair-modal-x:hover { color: var(--text); }
.pair-search { display: flex; align-items: center; gap: 10px; padding: 0 14px; height: 44px; border: 1px solid var(--border2); border-radius: 10px; color: var(--text3); }
.pair-search:focus-within { border-color: rgba(125,211,252,0.6); }
.pair-search input { flex: 1; min-width: 0; background: none; border: 0; outline: 0; color: var(--text); font-family: inherit; font-size: 14px; }
.pair-tabs { display: flex; gap: 8px; margin: 14px 0 10px; flex-wrap: wrap; }
.pair-tab { padding: 8px 16px; border: 0; border-radius: 10px; background: #1a1a1a; color: var(--text); font-family: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
.pair-tab:hover { background: #242424; }
.pair-tab.is-on { background: #86efac; color: #052e16; }
.pair-list { flex: 1; min-height: 0; overflow-y: auto; margin: 0 -8px; padding: 0 8px; }
.pair-row { display: flex; align-items: center; gap: 12px; width: 100%; padding: 10px 8px; border: 0; border-radius: 10px; background: transparent; color: var(--text); font-family: inherit; text-align: left; cursor: pointer; }
.pair-row:hover { background: rgba(255,255,255,0.05); }
.pair-row-l { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.pair-row-l b { display: flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 600; }
.pair-row-l small, .pair-row-r small { font-size: 12px; color: var(--text3); text-transform: capitalize; }
.pair-row-l small { text-transform: none; }
.pair-row-r { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.pair-row-r b { font-size: 14px; font-weight: 600; }
.pair-ok { flex-shrink: 0; }
.pair-empty { padding: 32px 0; text-align: center; color: var(--text3); font-size: 13px; }
.pair-av { position: relative; display: inline-block; flex-shrink: 0; border-radius: 50%; overflow: hidden; }
.pair-av img, .pair-av-fb { position: absolute; inset: 0; width: 100%; height: 100%; }
.pair-av img { object-fit: cover; background: #0b0b0b; }
.pair-av-fb { display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 800; color: #fff; text-shadow: 0 1px 2px rgba(0,0,0,0.5); background: #2a2a2a; }
.lc-pair-chip .pair-av { width: 20px; height: 20px; }
