/* ============ RiskRadar AI — Design tokens ============ */
:root {
  --bg: #080B12;
  --surface: #111722;
  --surface-2: #161E2B;
  --surface-3: #1C2536;
  --primary: #19E6C1;
  --primary-dim: rgba(25, 230, 193, 0.12);
  --secondary: #7C5CFF;
  --secondary-dim: rgba(124, 92, 255, 0.14);
  --success: #35D07F;
  --warning: #FFBF47;
  --danger: #FF4D67;
  --danger-dim: rgba(255, 77, 103, 0.12);
  --text: #F5F7FA;
  --text-2: #B7C2D3;
  --text-3: #9AA8BC;
  --border: rgba(255, 255, 255, 0.08);
  --border-strong: rgba(255, 255, 255, 0.14);
  --radius: 22px;
  --radius-sm: 14px;
  --sidebar-w: 264px;
  --font-display: 'Unbounded', sans-serif;
  --font-body: 'Manrope', sans-serif;
  --font-mono: 'JetBrains Mono', monospace;
  /* V143 Motion.dev tokens: spring-физика (CSS-приближение spring(300,20)), unified timing, GPU-only */
  --spring: cubic-bezier(0.34, 1.56, 0.64, 1);   /* лёгкий overshoot — упругий отклик как у spring */
  --spring-soft: cubic-bezier(0.22, 1, 0.36, 1); /* easeOutQuint — вход без overshoot */
  --dur-fast: 160ms; --dur-base: 280ms; --dur-slow: 420ms;
}

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

html { scroll-behavior: smooth; }

body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.55;
  min-height: 100vh;
  overflow-x: hidden;
}

body::before {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse 900px 500px at 85% -10%, rgba(124, 92, 255, 0.09), transparent 60%),
    radial-gradient(ellipse 700px 450px at -5% 20%, rgba(25, 230, 193, 0.06), transparent 60%);
  z-index: 0;
}

::selection { background: rgba(25, 230, 193, 0.3); }

button { font-family: inherit; cursor: pointer; }
input, select { font-family: inherit; }

/* ============ Layout ============ */
.app { display: flex; min-height: 100vh; position: relative; z-index: 1; }

.sidebar {
  width: var(--sidebar-w);
  position: fixed;
  top: 0; left: 0; bottom: 0;
  background: rgba(13, 17, 26, 0.85);
  backdrop-filter: blur(14px);
  border-right: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  padding: 26px 18px 18px;
  z-index: 50;
}

.logo {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0 8px 26px;
}

.logo-mark {
  width: 38px; height: 38px;
  border-radius: 12px;
  background: linear-gradient(135deg, var(--primary), var(--secondary));
  display: grid;
  place-items: center;
  flex-shrink: 0;
  box-shadow: 0 0 24px rgba(25, 230, 193, 0.35);
}

.logo-mark svg { width: 22px; height: 22px; }

.logo-name {
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.02em;
}
.logo-name span { color: var(--primary); }
.logo-sub {
  font-size: 10.5px;
  color: var(--text-3);
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

/* V144: бейдж версии сборки — видно, что страница обновилась */
.ver-badge {
  margin-left: auto;
  align-self: flex-start;
  font-size: 9.5px;
  font-family: var(--font-mono);
  font-weight: 700;
  letter-spacing: .04em;
  color: var(--text-3);
  background: rgba(124,92,255,.12);
  border: 1px solid rgba(124,92,255,.3);
  border-radius: 6px;
  padding: 2px 6px;
  white-space: nowrap;
}

.nav { display: flex; flex-direction: column; gap: 2px; flex: 1; background: linear-gradient(180deg, rgba(124,92,255,.07), rgba(13,17,26,.35) 55%), rgba(17,22,34,.55); border: 1px solid rgba(124,92,255,.16); border-radius: 14px; padding: 8px 6px; box-shadow: inset 0 1px 0 rgba(255,255,255,.04), 0 10px 28px rgba(0,0,0,.28); } /* V113: блок меню — панель с рамкой и выделением */

.nav-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6.5px 10px;
  border-radius: 9px;
  border: 1px solid transparent;
  background: none;
  color: var(--text-2);
  font-size: 13.5px;
  font-weight: 600;
  text-align: left;
  position: relative;
  overflow: hidden;
  transition: all 0.2s ease;
  animation: navIn .3s ease backwards;
}
.nav-item svg { width: 17px; height: 17px; flex-shrink: 0; transition: transform .25s ease; }
.nav-item:hover { color: #fff; background: linear-gradient(90deg, rgba(124,92,255,.16), rgba(124,92,255,.05)); transform: translateX(2px); box-shadow: 0 0 0 1px rgba(124,92,255,.28), 0 4px 14px rgba(124,92,255,.16); }
.nav-item:hover svg { transform: translateX(2px) scale(1.12); }
.nav-item.active { color: #fff; background: linear-gradient(90deg, rgba(124,92,255,.28), rgba(124,92,255,.08)); border-color: rgba(124,92,255,.38); box-shadow: 0 4px 18px rgba(124,92,255,.25), inset 0 0 14px rgba(124,92,255,.08); } /* V113: активный пункт — градиент + свечение */
.nav-item::before { content: ''; position: absolute; left: 0; top: 50%; width: 3px; height: 0; border-radius: 0 3px 3px 0; background: var(--primary); transform: translateY(-50%); transition: height .2s ease; }
.nav-item.active::before { height: 62%; }
@keyframes navIn { from { opacity: 0; transform: translateX(-10px); } to { opacity: 1; transform: none; } }
.nav .nav-item:nth-child(1){animation-delay:.02s}.nav .nav-item:nth-child(2){animation-delay:.05s}.nav .nav-item:nth-child(3){animation-delay:.08s}.nav .nav-item:nth-child(4){animation-delay:.11s}.nav .nav-item:nth-child(5){animation-delay:.14s}.nav .nav-item:nth-child(6){animation-delay:.17s}.nav .nav-item:nth-child(7){animation-delay:.2s}.nav .nav-item:nth-child(8){animation-delay:.23s}.nav .nav-item:nth-child(9){animation-delay:.26s}.nav .nav-item:nth-child(10){animation-delay:.29s}
.nav-item.active {
  color: #fff;
  background: linear-gradient(135deg, rgba(124,92,255,.18), rgba(124,92,255,.05));
  border-color: rgba(124,92,255,.45);
  box-shadow: 0 0 18px rgba(124,92,255,.18), inset 0 0 0 1px rgba(124,92,255,.12);
  border-color: rgba(25, 230, 193, 0.22);
}
.nav-item .nav-badge {
  margin-left: auto;
  font-family: var(--font-mono);
  font-size: 11px;
  background: var(--danger-dim);
  color: var(--danger);
  border-radius: 20px;
  padding: 1px 8px;
}

.plan-widget {
  background: linear-gradient(160deg, var(--surface-2), var(--surface));
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 16px;
  margin-top: 12px;
}
.plan-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
}
.plan-tag {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  color: var(--text);
  background: rgba(255,255,255,0.08);
  padding: 3px 10px;
  border-radius: 6px;
}
.plan-tag.pro { background: linear-gradient(135deg, var(--primary), var(--secondary)); color: #06110E; font-weight: 700; }
.plan-tag.premium {
  color: #1E1400; font-weight: 700; position: relative; overflow: hidden;
  background: linear-gradient(135deg, #FFF3C4 0%, #FFD76A 28%, #FFBF47 55%, #FF9E2C 82%, #FF8A3D 100%);
  box-shadow: 0 0 14px rgba(255,191,71,0.4), inset 0 1px 0 rgba(255,255,255,0.6);
  animation: planGlow 3s ease-in-out infinite;
}
.plan-tag.premium::before {
  content: ''; position: absolute; top: -60%; bottom: -60%; left: -45%;
  width: 38%; background: linear-gradient(105deg, transparent, rgba(255,255,255,0.85), transparent);
  transform: skewX(-22deg); animation: planShine 3.6s ease-in-out infinite;
}
.plan-usage-label { font-size: 12px; color: var(--text-2); margin-bottom: 6px; }
.plan-usage-nums { font-family: var(--font-mono); font-size: 12px; color: var(--text); }
.plan-bar {
  height: 6px;
  border-radius: 6px;
  background: rgba(255,255,255,0.07);
  overflow: hidden;
  margin: 8px 0 12px;
}
.plan-bar-fill {
  height: 100%;
  border-radius: 6px;
  background: linear-gradient(90deg, var(--primary), var(--secondary));
  transition: width 0.4s ease;
}
.plan-reset { font-size: 11.5px; color: var(--text-3); margin-bottom: 12px; }

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: none;
  border-radius: 12px;
  padding: 11px 20px;
  font-size: 14px;
  font-weight: 700;
  transition: all 0.18s ease;
}
.btn-primary {
  background: linear-gradient(135deg, var(--primary), #0FBFA2);
  color: #06110E;
  box-shadow: 0 4px 20px rgba(25, 230, 193, 0.25);
}
.btn-primary:hover { transform: translateY(-1px); box-shadow: 0 6px 26px rgba(25, 230, 193, 0.4); }
.btn-ghost {
  background: rgba(255,255,255,0.06);
  color: var(--text);
  border: 1px solid var(--border);
}
.btn-ghost:hover { background: rgba(255,255,255,0.1); }
.btn-block { width: 100%; }
.btn-sm { padding: 8px 14px; font-size: 13px; border-radius: 10px; }
.btn:disabled { opacity: 0.5; cursor: not-allowed; transform: none; }

/* ============ Main ============ */
.main {
  margin-left: var(--sidebar-w);
  flex: 1;
  min-width: 0;
  padding: 0 28px 60px;
}

.topbar {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 20px 0 18px;
  position: sticky;
  top: 0;
  background: linear-gradient(var(--bg) 78%, transparent);
  z-index: 40;
}
.topbar h1 {
  font-family: var(--font-display);
  font-size: 19px;
  font-weight: 600;
  letter-spacing: 0.01em;
}
.topbar-right { margin-left: auto; display: flex; align-items: center; gap: 14px; }

.live-pill {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--text-2);
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 6px 14px;
}
.live-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--success);
  box-shadow: 0 0 8px var(--success);
  animation: pulse 2s infinite;
}
.live-dot.off { background: var(--danger); box-shadow: 0 0 8px var(--danger); animation: none; }
@keyframes pulse { 50% { opacity: 0.4; } }

.demo-pill {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  color: var(--warning);
  background: rgba(255, 191, 71, 0.1);
  border: 1px solid rgba(255, 191, 71, 0.25);
  border-radius: 20px;
  padding: 6px 12px;
}

.icon-btn {
  width: 38px; height: 38px;
  border-radius: 12px;
  background: var(--surface);
  border: 1px solid var(--border);
  color: var(--text-2);
  display: grid;
  place-items: center;
  transition: all 0.18s;
}
.icon-btn:hover { color: var(--primary); border-color: rgba(25,230,193,0.3); }
.icon-btn svg { width: 18px; height: 18px; }
.icon-btn.spinning svg { animation: spin 0.9s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

/* ============ Ticker ============ */
.ticker-wrap {
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--surface);
  margin-bottom: 22px;
  position: relative;
  mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
}
.ticker {
  display: flex;
  gap: 36px;
  padding: 11px 0;
  width: max-content;
  animation: ticker 240s linear infinite;
  will-change: transform; /* плавный GPU-рендер без подёргиваний */
}
.ticker:hover { animation-play-state: paused; }
@keyframes ticker { to { transform: translateX(-50%); } }
.tk-item {
  display: flex;
  align-items: center;
  gap: 9px;
  font-family: var(--font-mono);
  font-size: 12.5px;
  white-space: nowrap;
}
.tk-item img { width: 17px; height: 17px; border-radius: 50%; }
.tk-sym { color: var(--text); font-weight: 700; }
.tk-price { color: var(--text-2); }

/* ============ Grid & Cards ============ */
.grid { display: grid; gap: 18px; }
.grid-overview {
  grid-template-columns: 1.35fr 1fr 1fr;
  grid-template-areas:
    "score kpi1 kpi2"
    "score kpi3 kpi4"
    "summary summary threats"
    "market market market";
}
.g-score { grid-area: score; }
.g-kpi1 { grid-area: kpi1; }
.g-kpi2 { grid-area: kpi2; }
.g-kpi3 { grid-area: kpi3; }
.g-kpi4 { grid-area: kpi4; }
.g-summary { grid-area: summary; }
.g-market { grid-area: market; }
.g-threats { grid-area: threats; }

.card {
  background:
    radial-gradient(circle at top right, rgba(25, 230, 193, 0.05), transparent 45%),
    var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 22px;
  position: relative;
  min-width: 0; /* V165: grid-элемент может сжиматься — иначе треки 1fr раздуваются контентом */
}
.card-title {
  font-size: 13px;
  font-weight: 700;
  color: var(--text-2);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: 14px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.card-title .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--primary); }

/* Score ring card */
.score-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 28px 22px;
  overflow: hidden;
}
.score-card::after {
  content: '';
  position: absolute;
  inset: -40%;
  background: conic-gradient(from 180deg, transparent 60%, rgba(25,230,193,0.05), transparent 80%);
  animation: sweep 9s linear infinite;
  pointer-events: none;
}
@keyframes sweep { to { transform: rotate(360deg); } }
.score-ring-wrap { position: relative; width: 216px; height: 216px; margin: 6px 0 4px; }
.score-ring-wrap svg { transform: rotate(-90deg); }
.ring-bg { fill: none; stroke: rgba(255,255,255,0.07); stroke-width: 13; }
.ring-val {
  fill: none;
  stroke: url(#ringGrad);
  stroke-width: 13;
  stroke-linecap: round;
  filter: drop-shadow(0 0 10px rgba(25, 230, 193, 0.5));
  transition: stroke-dashoffset 1.2s cubic-bezier(0.22, 1, 0.36, 1);
}
.score-center {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
}
.score-num {
  font-family: var(--font-display);
  font-size: 52px;
  font-weight: 600;
  line-height: 1;
}
.score-denom { font-family: var(--font-mono); font-size: 12px; color: var(--text-3); }
.score-label {
  font-size: 15px;
  font-weight: 700;
  margin-top: 10px;
}
.score-delta { font-family: var(--font-mono); font-size: 12.5px; color: var(--text-2); margin-top: 4px; }
.score-factors {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: center;
  margin-top: 16px;
}
.factor-chip {
  font-size: 11.5px;
  font-family: var(--font-mono);
  padding: 4px 11px;
  border-radius: 20px;
  border: 1px solid var(--border);
  color: var(--text-2);
  background: rgba(255,255,255,0.03);
}

/* KPI cards */
.kpi-value {
  font-family: var(--font-mono);
  font-size: 24px;
  font-weight: 700;
  letter-spacing: -0.01em;
}
.kpi-sub { font-size: 12.5px; color: var(--text-2); margin-top: 5px; font-family: var(--font-mono); }
.up { color: var(--success); }
.down { color: var(--danger); }
.neutral-c { color: var(--warning); }

/* Fear & greed gauge */
.fng-wrap { display: flex; align-items: center; gap: 16px; }
.fng-gauge { flex-shrink: 0; }
.fng-num { font-family: var(--font-display); font-size: 26px; font-weight: 600; }
.fng-class { font-size: 13px; font-weight: 700; margin-top: 2px; }

/* AI summary */
.summary-text { color: var(--text); font-size: 14.5px; line-height: 1.7; }
.summary-text strong { color: var(--primary); }
.summary-meta { font-family: var(--font-mono); font-size: 11.5px; color: var(--text-3); margin-top: 12px; }

/* Market table */
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th {
  text-align: left;
  font-size: 11px;
  font-weight: 700;
  color: var(--text-3);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 8px 10px;
  border-bottom: 1px solid var(--border);
  white-space: nowrap;
}
th.num, td.num { text-align: right; }
td {
  padding: 11px 10px;
  border-bottom: 1px solid rgba(255,255,255,0.04);
  font-size: 13.5px;
  white-space: nowrap;
}
tr:last-child td { border-bottom: none; }
tbody tr { transition: background 0.15s; }
tbody tr:hover { background: rgba(255,255,255,0.025); }
.coin-cell { display: flex; align-items: center; gap: 10px; }
.coin-cell img { width: 26px; height: 26px; border-radius: 50%; }
.coin-name { font-weight: 700; font-size: 13.5px; }
.coin-sym { font-family: var(--font-mono); font-size: 11px; color: var(--text-3); text-transform: uppercase; }
.mono { font-family: var(--font-mono); }
.pct { font-family: var(--font-mono); font-size: 12.5px; font-weight: 600; padding: 3px 8px; border-radius: 8px; }
.pct.up { background: rgba(53, 208, 127, 0.1); }
.pct.down { background: var(--danger-dim); }

/* Threat cards */
.threat-card {
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 15px 16px;
  margin-bottom: 12px;
  background: var(--surface-2);
  transition: border-color 0.2s;
}
.threat-card:hover { border-color: var(--border-strong); }
.threat-card:last-child { margin-bottom: 0; }
.threat-head { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.sev {
  font-size: 10.5px;
  font-family: var(--font-mono);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 3px 9px;
  border-radius: 6px;
}
.sev-high { background: var(--danger-dim); color: var(--danger); }
.sev-med { background: rgba(255, 191, 71, 0.12); color: var(--warning); }
.sev-low { background: rgba(124, 92, 255, 0.14); color: #A990FF; }
.threat-time { margin-left: auto; font-family: var(--font-mono); font-size: 12px; color: var(--text-2); font-weight: 700; white-space: nowrap; }
.threat-title { font-weight: 800; font-size: 15.5px; margin-bottom: 6px; color: #FFFFFF; letter-spacing: .01em; }
.threat-desc { font-size: 14px; color: #C7CEDB; line-height: 1.65; }
.threat-facts {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px dashed rgba(255,255,255,0.08);
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}
.tf { font-family: var(--font-mono); font-size: 12px; color: var(--text-2); }
.tf b { color: #FFFFFF; font-weight: 700; }

/* Filter chips */
.chips { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 18px; }
.chip {
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text-2);
  border-radius: 20px;
  padding: 7px 16px;
  font-size: 13px;
  font-weight: 600;
  transition: all 0.15s;
}
.chip:hover { color: var(--text); }
.chip.active {
  background: var(--primary-dim);
  color: var(--primary);
  border-color: rgba(25,230,193,0.3);
}

/* ============ Trade form ============ */
.trade-layout { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 18px; align-items: start; }
.form-group { margin-bottom: 18px; }
.form-label { display: block; font-size: 13.5px; font-weight: 700; color: var(--text); margin-bottom: 8px; }
.form-label .hint { font-weight: 400; color: var(--text-2); }
.select, .input {
  width: 100%;
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: 12px;
  color: var(--text);
  padding: 12px 14px;
  font-size: 14px;
  outline: none;
  transition: border-color 0.15s;
}
.select:focus, .input:focus { border-color: rgba(25,230,193,0.45); }
.seg { display: flex; background: var(--surface-2); border: 1px solid var(--border); border-radius: 12px; padding: 4px; gap: 4px; }
.seg button {
  flex: 1;
  border: none;
  background: none;
  color: var(--text-2);
  padding: 10px;
  border-radius: 9px;
  font-size: 14px;
  font-weight: 700;
  transition: all 0.15s;
}
.seg button.active-long { background: rgba(53,208,127,0.15); color: var(--success); }
.seg button.active-short { background: var(--danger-dim); color: var(--danger); }
/* V45 — стильная кнопка «Рынок · Топ-100» на главной: переход к блоку рынка внизу */
.seg button.seg-market {
  flex: 1.35;
  background: linear-gradient(135deg, rgba(124,92,255,.20), rgba(25,230,193,.12));
  border: 1px solid rgba(124,92,255,.5);
  color: #cdbcff;
  box-shadow: 0 0 14px rgba(124,92,255,.22), inset 0 0 12px rgba(124,92,255,.07);
  position: relative;
  overflow: hidden;
}
.seg button.seg-market::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.10), transparent);
  transform: translateX(-100%);
  animation: segShine 3.2s ease-in-out infinite;
  pointer-events: none;
}
@keyframes segShine { 0%, 55% { transform: translateX(-100%); } 85%, 100% { transform: translateX(100%); } }
.seg button.seg-market:hover {
  color: #fff;
  border-color: rgba(124,92,255,.9);
  box-shadow: 0 0 22px rgba(124,92,255,.5), inset 0 0 14px rgba(124,92,255,.14);
  transform: translateY(-1px);
}
.seg button.seg-market:active { transform: translateY(0) scale(.97); }
.seg button.seg-market .go-down {
  display: inline-block;
  margin-left: 5px;
  font-weight: 900;
  animation: goBob 1.5s ease-in-out infinite;
  color: var(--primary);
}
@keyframes goBob { 0%,100% { transform: translateY(0); } 50% { transform: translateY(4px); } }
.seg button.seg-market.seg-market-go {
  color: #fff;
  border-color: rgba(124,92,255,1);
  box-shadow: 0 0 26px rgba(124,92,255,.65), inset 0 0 16px rgba(124,92,255,.2);
  transform: scale(.98);
}
/* вспышка у блока рынка при переходе */
#marketSection { scroll-margin-top: 16px; }
.card-flash { animation: cardFlash 1.4s ease-out; }
@keyframes cardFlash {
  0% { box-shadow: 0 0 0 3px rgba(124,92,255,.6), 0 0 34px rgba(124,92,255,.4); }
  100% { box-shadow: 0 0 0 3px rgba(124,92,255,0), 0 0 34px rgba(124,92,255,0); }
}
.range-row { display: flex; align-items: center; gap: 14px; }
input[type="range"] {
  flex: 1;
  appearance: none;
  -webkit-appearance: none;
  height: 6px;
  border-radius: 6px;
  background: linear-gradient(90deg, var(--primary), var(--secondary));
  outline: none;
}
input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 20px; height: 20px;
  border-radius: 50%;
  background: #fff;
  border: 4px solid var(--primary);
  cursor: pointer;
  box-shadow: 0 0 12px rgba(25,230,193,0.5);
}
.range-val {
  font-family: var(--font-mono);
  font-size: 15px;
  font-weight: 700;
  min-width: 52px;
  text-align: right;
}
.toggle-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 12px 14px;
}
.switch { position: relative; width: 46px; height: 26px; flex-shrink: 0; }
.switch input { opacity: 0; width: 0; height: 0; }
.slider-t {
  position: absolute; inset: 0;
  background: rgba(255,255,255,0.1);
  border-radius: 26px;
  cursor: pointer;
  transition: 0.2s;
}
.slider-t::before {
  content: '';
  position: absolute;
  width: 20px; height: 20px;
  left: 3px; top: 3px;
  background: #fff;
  border-radius: 50%;
  transition: 0.2s;
}
.switch input:checked + .slider-t { background: var(--primary); }
.switch input:checked + .slider-t::before { transform: translateX(20px); }

.live-asset-info {
  display: flex;
  gap: 18px;
  flex-wrap: wrap;
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 12px 16px;
  margin-bottom: 18px;
}
.lai { font-family: var(--font-mono); font-size: 12.5px; color: var(--text-2); font-weight: 600; letter-spacing: .02em; }
.lai b { display: block; font-size: 16px; color: #FFFFFF; margin-top: 3px; font-weight: 700; text-shadow: 0 0 14px rgba(25,230,193,0.12); }
.lai b.up { color: var(--success); }
.lai b.down { color: var(--danger); }

/* Scanning */
.scan-overlay {
  position: fixed;
  inset: 0;
  background: rgba(8, 11, 18, 0.92);
  backdrop-filter: blur(8px);
  z-index: 100;
  display: none;
  align-items: center;
  justify-content: center;
}
.scan-overlay.open { display: flex; }
.scan-box { text-align: center; max-width: 420px; padding: 30px; }
.scan-radar { width: 130px; height: 130px; margin: 0 auto 26px; position: relative; }
.scan-radar .ring {
  position: absolute; inset: 0;
  border: 1px solid rgba(25,230,193,0.25);
  border-radius: 50%;
}
.scan-radar .ring:nth-child(2) { inset: 20%; }
.scan-radar .ring:nth-child(3) { inset: 40%; }
.scan-radar .beam {
  position: absolute; inset: 0;
  border-radius: 50%;
  background: conic-gradient(from 0deg, rgba(25,230,193,0.55), transparent 25%);
  animation: sweep 1.6s linear infinite;
}
.scan-title { font-family: var(--font-display); font-size: 17px; margin-bottom: 22px; }
.scan-steps { text-align: left; display: flex; flex-direction: column; gap: 11px; }
.scan-step { display: flex; align-items: center; gap: 11px; font-size: 14px; color: var(--text-3); transition: color 0.3s; }
.scan-step.active { color: var(--text); }
.scan-step.done { color: var(--text-2); }
.scan-step .st-ico {
  width: 20px; height: 20px;
  border-radius: 50%;
  border: 2px solid var(--text-3);
  display: grid;
  place-items: center;
  font-size: 11px;
  flex-shrink: 0;
}
.scan-step.active .st-ico { border-color: var(--primary); animation: pulse 1s infinite; }
.scan-step.done .st-ico { border-color: var(--success); color: var(--success); }

/* Result */
.result-score-row { display: flex; align-items: center; gap: 22px; margin-bottom: 20px; }
.mini-ring { position: relative; width: 110px; height: 110px; flex-shrink: 0; }
.mini-ring svg { transform: rotate(-90deg); }
.mini-ring .score-center .score-num { font-size: 30px; }
.verdict-title { font-size: 18px; font-weight: 800; margin-bottom: 6px; }
.verdict-sub { font-size: 13px; color: var(--text-2); line-height: 1.5; margin-bottom: 4px; max-width: 460px; }
.verdict-text { font-size: 14px; color: var(--text-2); line-height: 1.6; }
.factors-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.modal-wide .factors-grid { grid-template-columns: repeat(3, 1fr); }
.factor-item {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 12px 14px;
  font-size: 13px;
}
.factor-item .fi-ico { font-size: 15px; line-height: 1.4; }
.factor-item b { display: block; font-size: 13px; margin-bottom: 2px; }
.factor-item span { color: var(--text-2); font-size: 12.5px; line-height: 1.5; }
.scenario {
  border-left: 3px solid var(--border-strong);
  padding: 10px 14px;
  margin-bottom: 10px;
  background: var(--surface-2);
  border-radius: 0 12px 12px 0;
}
.scenario.pos { border-left-color: var(--success); }
.scenario.neu { border-left-color: var(--warning); }
.scenario.neg { border-left-color: var(--danger); }
.scenario b { font-size: 13.5px; }
.scenario p { font-size: 13px; color: var(--text-2); margin-top: 3px; }
.scenario .prob { font-family: var(--font-mono); font-size: 11.5px; color: var(--text-3); float: right; }

/* ============ Portfolio ============ */
.pf-grid { display: grid; grid-template-columns: 1fr 1.6fr; gap: 18px; align-items: start; }
.donut-wrap { display: flex; flex-direction: column; align-items: center; gap: 18px; }
.donut-legend { display: flex; flex-direction: column; gap: 9px; width: 100%; }
.dl-row { display: flex; align-items: center; gap: 10px; font-size: 13px; }
.dl-dot { width: 10px; height: 10px; border-radius: 3px; flex-shrink: 0; }
.dl-name { font-weight: 700; }
.dl-val { margin-left: auto; font-family: var(--font-mono); font-size: 12.5px; color: var(--text-2); }
.pf-total { font-family: var(--font-mono); font-size: 34px; font-weight: 700; letter-spacing: -0.02em; }

/* ============ Pricing ============ */
.billing-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin: 8px 0 28px;
}
.billing-toggle span { font-size: 14px; font-weight: 700; color: var(--text-3); cursor: pointer; transition: color 0.15s; }
.billing-toggle span.on { color: var(--text); }
.save-badge {
  font-size: 11px;
  font-family: var(--font-mono);
  background: rgba(53,208,127,0.12);
  color: var(--success);
  padding: 2px 8px;
  border-radius: 12px;
}
.plans { display: grid; grid-template-columns: repeat(2, minmax(0, 420px)); gap: 20px; justify-content: center; }
.plan-card { padding: 30px 28px; display: flex; flex-direction: column; }
.plan-card.featured {
  border-color: rgba(25,230,193,0.35);
  background:
    radial-gradient(circle at top right, rgba(25, 230, 193, 0.1), transparent 50%),
    radial-gradient(circle at bottom left, rgba(124, 92, 255, 0.08), transparent 50%),
    var(--surface);
  box-shadow: 0 12px 50px rgba(25, 230, 193, 0.08);
}
.plan-name { font-family: var(--font-display); font-size: 15px; letter-spacing: 0.06em; margin-bottom: 4px; }
.plan-tagline { font-size: 13px; color: var(--text-2); margin-bottom: 18px; }
.plan-price { font-family: var(--font-mono); font-size: 38px; font-weight: 700; }
.plan-price small { font-size: 14px; color: var(--text-3); font-weight: 400; }
.plan-price-note { font-size: 12px; color: var(--text-3); margin: 4px 0 20px; min-height: 18px; }
.plan-feats { list-style: none; display: flex; flex-direction: column; gap: 10px; margin-bottom: 26px; flex: 1; }
.plan-feats li { display: flex; gap: 10px; font-size: 13.5px; color: var(--text-2); }
.plan-feats li::before { content: '✓'; color: var(--primary); font-weight: 700; }
.plan-feats li.mut { opacity: 0.45; }
.plan-feats li.mut::before { content: '—'; color: var(--text-3); }
.featured-tag {
  position: absolute;
  top: -12px; right: 24px;
  background: linear-gradient(135deg, var(--primary), var(--secondary));
  color: #06110E;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
  padding: 4px 14px;
  border-radius: 20px;
}

/* ============ Modal ============ */
.modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(8, 11, 18, 0.85);
  backdrop-filter: blur(6px);
  z-index: 110;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.modal-overlay.open { display: flex; }
.modal {
  background: var(--surface);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius);
  max-width: 440px;
  width: 100%;
  padding: 28px;
  animation: modalIn 0.25s cubic-bezier(0.22, 1, 0.36, 1);
}
@keyframes modalIn { from { opacity: 0; transform: translateY(14px) scale(0.98); } }
.modal h3 { font-family: var(--font-display); font-size: 16px; margin-bottom: 12px; }
.modal p { font-size: 14px; color: var(--text-2); line-height: 1.6; margin-bottom: 18px; }
.modal .actions { display: flex; gap: 10px; }

/* ============ Misc ============ */
.view { display: none; animation: viewIn 0.3s ease; }
.view.active { display: block; }
@keyframes viewIn { from { opacity: 0; transform: translateY(8px); } }

.disclaimer {
  margin-top: 34px;
  padding: 16px 20px;
  border: 1px dashed rgba(255,255,255,0.12);
  border-radius: var(--radius-sm);
  font-size: 12px;
  color: var(--text-3);
  line-height: 1.6;
}

.error-banner {
  display: none;
  align-items: center;
  gap: 12px;
  background: var(--danger-dim);
  border: 1px solid rgba(255,77,103,0.3);
  color: var(--danger);
  border-radius: var(--radius-sm);
  padding: 12px 18px;
  font-size: 13.5px;
  margin-bottom: 18px;
}
.error-banner.show { display: flex; }
.error-banner button { margin-left: auto; }

.skeleton {
  background: linear-gradient(90deg, var(--surface-2) 25%, var(--surface-3) 50%, var(--surface-2) 75%);
  background-size: 200% 100%;
  animation: shimmer 1.4s infinite;
  border-radius: 8px;
  color: transparent !important;
}
@keyframes shimmer { to { background-position: -200% 0; } }

.empty-state { text-align: center; padding: 40px 20px; color: var(--text-3); font-size: 14px; }

.section-head { display: flex; align-items: baseline; gap: 12px; margin-bottom: 18px; }
.section-head h2 { font-family: var(--font-display); font-size: 17px; font-weight: 600; }
.section-head .sub { font-size: 13px; color: var(--text-3); }

.mobile-nav { display: none; }

/* Focus visibility */
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.001s !important; transition-duration: 0.001s !important; }
}

/* ============ Responsive ============ */
@media (max-width: 1240px) {
  .grid-overview {
    grid-template-columns: 1fr 1fr;
    grid-template-areas:
      "score score"
      "kpi1 kpi2"
      "kpi3 kpi4"
      "summary summary"
      "market market"
      "threats threats";
  }
  .trade-layout, .pf-grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 860px) {
  .sidebar { display: none; }
  .main { margin-left: 0; padding: 0 16px 90px; }
  .grid-overview {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "score" "kpi1" "kpi2" "kpi3" "kpi4" "summary" "market" "threats";
  }
  .factors-grid { grid-template-columns: 1fr; }
  .plans { grid-template-columns: 1fr; }
  .topbar { flex-wrap: wrap; }
  .mobile-nav {
    display: flex;
    position: fixed;
    bottom: 0; left: 0; right: 0;
    background: rgba(13, 17, 26, 0.94);
    backdrop-filter: blur(14px);
    border-top: 1px solid var(--border);
    z-index: 60;
    padding: 8px 6px calc(8px + env(safe-area-inset-bottom));
    overflow-x: auto; /* V172-mob: 15 разделов — бар скроллится свайпом */
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .mobile-nav::-webkit-scrollbar { display: none; }
  .mobile-nav button {
    flex: 0 0 auto; /* V172-mob: кнопки не сжимаются, бар прокручивается */
    min-width: 58px;
    background: none;
    border: none;
    color: var(--text-3);
    font-size: 10.5px;
    font-weight: 700;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 6px 2px;
  }
  .mobile-nav button svg { width: 21px; height: 21px; }
  .mobile-nav button.active { color: var(--primary); }
  .result-score-row { flex-direction: column; text-align: center; }
}


/* ============================================================
   V3 — анимации, новые компоненты, адаптация
   ============================================================ */

/* --- глобальные анимации меню и кнопок --- */
.nav-item {
  transition: background .25s cubic-bezier(.4,0,.2,1), color .25s, transform .25s, box-shadow .25s;
  position: relative;
  overflow: hidden;
}
.nav-item::after {
  content: '';
  position: absolute; left: 0; top: 50%;
  width: 3px; height: 0;
  background: linear-gradient(180deg, #19E6C1, #7C5CFF);
  border-radius: 2px;
  transform: translateY(-50%);
  transition: height .3s cubic-bezier(.4,0,.2,1);
}
.nav-item:hover { transform: translateX(4px); }
.nav-item.active::after { height: 60%; }
.nav-item.active { box-shadow: inset 0 0 24px rgba(25,230,193,0.05); }

.btn {
  transition: transform .18s cubic-bezier(.34,1.56,.64,1), box-shadow .25s, background .25s, opacity .2s, filter .25s;
  position: relative;
}
.btn:hover:not(:disabled) { transform: translateY(-2px); }
.btn:active:not(:disabled) { transform: translateY(0) scale(.97); }
.btn-primary:hover:not(:disabled) { box-shadow: 0 8px 28px rgba(25,230,193,0.35); filter: brightness(1.08); }
.btn-warn {
  background: linear-gradient(135deg, #FFBF47, #FF8A5C);
  color: #1A1206; font-weight: 800; border: none;
}
.btn-warn:hover:not(:disabled) { box-shadow: 0 8px 28px rgba(255,191,71,0.35); filter: brightness(1.06); }
.icon-btn { transition: transform .2s, color .2s, border-color .2s; }
.icon-btn:hover { transform: rotate(8deg) scale(1.08); color: var(--primary); border-color: rgba(25,230,193,0.4); }
.chip { transition: transform .18s, background .22s, color .22s, border-color .22s, box-shadow .22s; }
.chip:hover { transform: translateY(-2px); box-shadow: 0 4px 14px rgba(0,0,0,0.3); }
.chip.active { box-shadow: 0 4px 18px rgba(25,230,193,0.18); }
.card { transition: border-color .3s, box-shadow .3s, transform .3s; }
.card:hover { border-color: rgba(255,255,255,0.13); }
.plan-card:hover { transform: translateY(-6px); box-shadow: 0 18px 48px rgba(0,0,0,0.45); }
.mobile-nav button { transition: color .2s, transform .2s; }
.mobile-nav button.active svg { animation: navPop .35s cubic-bezier(.34,1.56,.64,1); }
@keyframes navPop { 0% { transform: scale(.7); } 100% { transform: scale(1); } }

@keyframes fadeSlide { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.view.active { animation: viewIn .35s cubic-bezier(.4,0,.2,1); }
@keyframes viewIn { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
.row-anim { animation: rowIn .4s cubic-bezier(.4,0,.2,1) backwards; }
@keyframes rowIn { from { opacity: 0; transform: translateX(-8px); } to { opacity: 1; transform: none; } }

/* --- превью ликвидации под ползунком плеча --- */
.lev-preview {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  margin-top: 10px; padding: 10px 14px;
  background: rgba(255,138,92,0.06);
  border: 1px solid rgba(255,138,92,0.18);
  border-radius: 12px;
  font-size: 12.5px; color: var(--text-2);
  animation: fadeSlide .3s ease;
}
.lev-liq-price { font-size: 14px; color: #FF8A5C; transition: color .3s; }

/* --- реклама партнёров (FREE) --- */
.ad-card {
  margin: 0 18px 14px;
  padding: 12px 14px;
  background: linear-gradient(145deg, rgba(124,92,255,0.08), rgba(25,230,193,0.05));
  border: 1px dashed rgba(124,92,255,0.3);
  border-radius: 14px;
  animation: fadeSlide .4s ease;
}
.ad-tag { font-size: 9.5px; letter-spacing: 1px; text-transform: uppercase; color: var(--text-3); margin-bottom: 6px; }
.ad-title { font-size: 13px; font-weight: 800; margin-bottom: 3px; }
.ad-text { font-size: 11.5px; color: var(--text-2); line-height: 1.45; margin-bottom: 8px; }

/* --- пагинация рынка --- */
.pager { display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 12px; }
.pager-info { font-family: var(--font-mono); font-size: 12px; color: var(--text-3); min-width: 60px; text-align: center; }
.coin-rank { font-family: var(--font-mono); font-size: 10.5px; color: var(--text-3); min-width: 22px; }

/* --- скринеры --- */
.scr-pane { animation: fadeSlide .3s ease; }

/* --- киты --- */
.whale-mega td { background: rgba(255,191,71,0.05); }
.whale-mega td:first-child { border-left: 2px solid var(--warning); }

/* --- 3 тарифа --- */
.plans-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.plan-card.premium { border-color: rgba(255,191,71,0.25); }
.plan-card.premium:hover { box-shadow: 0 18px 48px rgba(255,191,71,0.12); }

/* --- реферальный баннер --- */
.ref-banner { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 22px;
  background: linear-gradient(145deg, rgba(25,230,193,0.06), rgba(124,92,255,0.06)); }
.ref-link-row { display: flex; gap: 8px; margin: 12px 0; }

/* --- личный кабинет --- */
.auth-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; max-width: 860px; }
.acc-grid { grid-template-columns: 1fr 1fr; }
.acc-row { display: flex; justify-content: space-between; align-items: center; padding: 9px 0;
  border-bottom: 1px solid rgba(255,255,255,0.05); font-size: 13.5px; }
.acc-row span { color: var(--text-3); }
/* --- бейдж тарифа в кабинете --- */
.acc-row .plan-badge {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: var(--font-mono); font-weight: 700;
  font-size: 11px; letter-spacing: 1.6px;
  padding: 5px 14px; border-radius: 999px; line-height: 1;
  text-transform: uppercase; white-space: nowrap;
  position: relative; overflow: hidden; vertical-align: middle;
}
.acc-row .plan-badge.free { color: var(--text-3); background: rgba(255,255,255,0.06); border: 1px solid var(--border); }
.acc-row .plan-badge.pro {
  color: var(--primary); background: var(--primary-dim);
  border: 1px solid rgba(25,230,193,0.35);
  box-shadow: 0 0 12px rgba(25,230,193,0.15), inset 0 0 12px rgba(25,230,193,0.06);
}
.acc-row .plan-badge.premium {
  color: #1E1400; border: 1px solid rgba(255,224,150,0.85);
  background: linear-gradient(135deg, #FFF3C4 0%, #FFD76A 28%, #FFBF47 55%, #FF9E2C 82%, #FF8A3D 100%);
  box-shadow: 0 0 18px rgba(255,191,71,0.45), inset 0 1px 0 rgba(255,255,255,0.65), inset 0 -2px 6px rgba(255,138,61,0.35);
  animation: planGlow 3s ease-in-out infinite;
}
.acc-row .plan-badge.premium::before {
  content: ''; position: absolute; top: -60%; bottom: -60%; left: -45%;
  width: 38%; background: linear-gradient(105deg, transparent, rgba(255,255,255,0.85), transparent);
  transform: skewX(-22deg); animation: planShine 3.6s ease-in-out infinite;
}
.acc-row .plan-badge.admin {
  color: #F6F3FF; border: 1px solid rgba(165,140,255,0.65);
  background: linear-gradient(135deg, #A48DFF 0%, #7C5CFF 45%, #5A3BF0 100%);
  box-shadow: 0 0 16px rgba(124,92,255,0.45), inset 0 1px 0 rgba(255,255,255,0.35);
  animation: adminGlow 3s ease-in-out infinite;
}
@keyframes planShine {
  0%, 55% { left: -45%; }
  100% { left: 130%; }
}
@keyframes planGlow {
  0%, 100% { box-shadow: 0 0 14px rgba(255,191,71,0.35), inset 0 1px 0 rgba(255,255,255,0.65), inset 0 -2px 6px rgba(255,138,61,0.3); }
  50% { box-shadow: 0 0 26px rgba(255,191,71,0.6), inset 0 1px 0 rgba(255,255,255,0.65), inset 0 -2px 6px rgba(255,138,61,0.35); }
}
@keyframes adminGlow {
  0%, 100% { box-shadow: 0 0 12px rgba(124,92,255,0.35), inset 0 1px 0 rgba(255,255,255,0.35); }
  50% { box-shadow: 0 0 24px rgba(124,92,255,0.6), inset 0 1px 0 rgba(255,255,255,0.35); }
}
.acc-row .plan-badge.premium + .plan-badge.admin { margin-left: 6px; }
.auth-err { color: var(--danger); font-size: 12.5px; margin-top: 10px; min-height: 16px; }

/* --- админка --- */
.admin-stats { grid-template-columns: repeat(4, 1fr); margin-bottom: 18px; }
.kpi-mini .kpi-value { font-size: 24px; }
.admin-grid { grid-template-columns: 3fr 2fr; }
.sel-sm { padding: 5px 8px; font-size: 12px; width: auto; }
.fb-row { padding: 8px 0; border-bottom: 1px solid rgba(255,255,255,0.05); font-size: 12.5px; }

/* --- оценка анализа --- */
.fb-vote { display: flex; align-items: center; gap: 10px; margin-top: 16px; padding-top: 14px;
  border-top: 1px solid rgba(255,255,255,0.06); font-size: 13px; color: var(--text-2); }
.fb-vote button { font-size: 16px; padding: 6px 14px; }
.fb-vote button:hover { transform: translateY(-3px) scale(1.15); }

/* --- новости токена в анализе --- */
.tn-row { padding: 7px 0; border-bottom: 1px solid rgba(255,255,255,0.05); font-size: 12.5px; line-height: 1.5; }
.tn-row a { color: var(--text); text-decoration: none; }
.tn-row a:hover { color: var(--primary); }
.tn-tone { color: var(--text-3); font-size: 11px; margin-left: 6px; }

/* --- ИИ --- */
.ai-engine { margin-left: auto; font-size: 10px; letter-spacing: .5px; color: #B2A0FF;
  background: rgba(124,92,255,0.12); padding: 3px 8px; border-radius: 8px; text-transform: none; }
.ai-deep { margin-top: 12px; padding-top: 12px; border-top: 1px dashed rgba(124,92,255,0.25); }
.ai-answer { font-size: 13.5px; line-height: 1.7; padding: 14px; margin-top: 12px;
  background: rgba(124,92,255,0.06); border: 1px solid rgba(124,92,255,0.18); border-radius: 12px;
  animation: fadeSlide .4s ease; }

/* --- сегмент спот/фьючерсы --- */
.seg-sm { display: inline-flex; padding: 3px; margin-right: 4px; }
.seg-sm button { padding: 7px 14px; font-size: 12px; }

/* --- кнопка удаления в портфеле --- */
.btn-del { width: 26px; height: 26px; font-size: 15px; color: var(--text-3); }
.btn-del:hover { color: var(--danger); border-color: rgba(255,77,103,0.4); transform: scale(1.15); }
.pf-row { cursor: pointer; transition: background .2s; }
.pf-row:hover td { background: rgba(255,255,255,0.02); }

.liq-kpi-grid { grid-template-columns: repeat(4, 1fr); margin-bottom: 18px; }
.liq-clusters-grid { grid-template-columns: 1fr 1fr; margin-top: 18px; }

/* --- планшет --- */
@media (max-width: 1240px) {
  .plans-3 { grid-template-columns: 1fr; max-width: 480px; margin: 0 auto; }
  .admin-grid, .acc-grid { grid-template-columns: 1fr; }
  .admin-stats { grid-template-columns: repeat(2, 1fr); }
  .liq-kpi-grid { grid-template-columns: repeat(2, 1fr); }
}

/* --- мобильные --- */
@media (max-width: 860px) {
  .auth-grid { grid-template-columns: 1fr; }
  .liq-clusters-grid { grid-template-columns: 1fr; }
  .liq-kpi-grid { grid-template-columns: 1fr 1fr; }
  .pager { gap: 8px; }
  .topbar-right { flex-wrap: wrap; gap: 8px; }
  .mobile-nav { overflow-x: auto; justify-content: flex-start; }
  .mobile-nav button { min-width: 62px; flex: 0 0 auto; }
  .fb-vote { flex-wrap: wrap; }
  .ref-banner { flex-direction: column; text-align: center; }
  .scr-pane .table-wrap, #view-whales .table-wrap { font-size: 12px; }
}


/* ============ V4 — анализ токена, кликабельные списки ============ */
.clickable { cursor: pointer; }
.clickable:hover td { background: rgba(25,230,193,0.04); }
/* hover-подсветка кликабельных токенов (Рост/Падение 24ч, VWAP) */
.mover { transition: background .15s, transform .15s; }
.mover:hover { background: rgba(25,230,193,.07); transform: translateX(2px); }
.token-head { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 18px; }
.token-score-row { display: flex; gap: 26px; align-items: center; flex-wrap: wrap; }
.tk-metrics { display: flex; flex-direction: column; gap: 7px; margin-top: 10px; }
.tk-metric { display: flex; align-items: center; gap: 10px; }
.tk-name { font-size: 12px; color: var(--text-2); min-width: 128px; }
.tk-bar { flex: 1; height: 8px; border-radius: 4px; background: rgba(255,255,255,0.06); overflow: hidden; }
.tk-fill { height: 100%; border-radius: 4px; transition: width .8s cubic-bezier(.4,0,.2,1); animation: fillIn 1s cubic-bezier(.4,0,.2,1); }
@keyframes fillIn { from { width: 0 !important; } }
.tk-val { font-size: 12px; font-weight: 700; min-width: 26px; text-align: right; }
.expert-line { font-size: 13.5px; line-height: 1.65; padding: 6px 0; border-bottom: 1px solid rgba(255,255,255,0.04); }
@media (max-width: 860px) {
  .token-score-row { flex-direction: column; }
  .tk-name { min-width: 96px; font-size: 11px; }
  #tokenKpis { grid-template-columns: 1fr 1fr !important; }
}


/* ============ V5 — спиннер поиска монеты, админ-тарифы ============ */
.input-spin-wrap { position: relative; }
.input-spinner {
  position: absolute; right: 12px; top: 50%;
  width: 16px; height: 16px; margin-top: -8px;
  border: 2px solid rgba(25,230,193,0.25);
  border-top-color: var(--primary);
  border-radius: 50%;
  opacity: 0; pointer-events: none;
  transition: opacity .2s;
}
.input-spinner.on { opacity: 1; animation: spin .7s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.input.searching {
  border-color: var(--primary) !important;
  box-shadow: 0 0 0 3px rgba(25,230,193,0.12);
  animation: searchPulse 1.2s ease-in-out infinite;
}
@keyframes searchPulse {
  0%, 100% { box-shadow: 0 0 0 3px rgba(25,230,193,0.10); }
  50% { box-shadow: 0 0 0 5px rgba(25,230,193,0.22); }
}
.searching-note { display: inline-flex; align-items: center; gap: 4px; }
.searching-note::after {
  content: ''; width: 10px; height: 10px;
  border: 1.5px solid rgba(25,230,193,0.3); border-top-color: var(--primary);
  border-radius: 50%; animation: spin .7s linear infinite; margin-left: 4px;
}
.inp-sm { width: 90px; padding: 6px 9px; font-size: 12.5px; text-align: right; }
#adminPlans input { transition: border-color .2s, box-shadow .2s; }
#adminPlans input:focus { border-color: #7C5CFF; box-shadow: 0 0 0 3px rgba(124,92,255,0.15); }


/* ============ V6 — ИИ-рекомендация SL, дата тарифа в админке ============ */
.stop-suggest {
  margin-top: 10px; padding: 10px 12px;
  background: linear-gradient(135deg, rgba(25,230,193,0.06), rgba(124,92,255,0.06));
  border: 1px solid rgba(25,230,193,0.18);
  border-radius: 12px; font-size: 12.5px; line-height: 1.55;
  animation: fadeSlideIn .3s ease;
}
.stop-suggest:empty { display: none; }
.stop-suggest-row { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; color: var(--text-2); }
.stop-suggest-row b { color: #fff; font-size: 13.5px; }
.stop-suggest-warn {
  margin-top: 7px; padding: 7px 9px; border-radius: 8px;
  background: rgba(255,77,103,0.10); border: 1px solid rgba(255,77,103,0.25);
  color: #FF8FA0; font-size: 12px;
}
@keyframes fadeSlideIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
.inp-date { width: 130px; text-align: left; color-scheme: dark; }
.inp-date::-webkit-calendar-picker-indicator { filter: invert(0.7); cursor: pointer; }


/* ============ V7 ============ */
/* Радар рисков — карточная сетка */
.radar-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
  gap: 14px;
}
.radar-cards .threat-card { margin-bottom: 0; height: 100%; display: flex; flex-direction: column; }
.radar-cards .threat-facts { margin-top: auto; padding-top: 12px; }
.threat-card.tc-high { border-left: 3px solid var(--danger); background: linear-gradient(135deg, rgba(255,77,103,0.05), var(--surface)); }
.threat-card.tc-med { border-left: 3px solid var(--warning); background: linear-gradient(135deg, rgba(255,191,71,0.04), var(--surface)); }
.threat-card.tc-low { border-left: 3px solid #7C5CFF; }
.tc-ico { font-size: 15px; }

/* Модальное окно результата анализа — шире и компактнее */
.modal-wide {
  width: min(1240px, calc(100vw - 20px));
  max-width: none;
  max-height: min(93vh, 1080px);
  overflow-y: auto;
  padding: 16px 22px 20px;
}
.modal-wide .card-title { margin-top: 14px; }
.modal-wide .factor-item { padding: 8px 10px; }
.modal-wide .scenario { padding: 10px 12px; }
/* сценарии в широком окне — в три колонки */
.modal-wide .scenario { margin-bottom: 0; }
.modal-wide .scenarios-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
@media (max-width: 900px) { .modal-wide .scenarios-row { grid-template-columns: 1fr; } .modal-wide .factors-grid { grid-template-columns: 1fr 1fr; } }
.modal-head {
  display: flex; align-items: center; gap: 12px;
  position: sticky; top: -22px; z-index: 6;
  background: var(--surface);
  margin: -22px -26px 14px; padding: 16px 26px;
  border-bottom: 1px solid var(--border);
}
.modal-head h3 { font-family: var(--font-display); font-size: 17px; }
.modal-x {
  margin-left: auto; border: 1px solid var(--border); background: var(--surface-2);
  color: var(--text-2); width: 34px; height: 34px; border-radius: 10px;
  font-size: 14px; transition: all .15s; flex-shrink: 0;
}
.modal-x:hover { color: #fff; border-color: var(--danger); background: rgba(255,77,103,0.12); }

/* Заблокированные пункты меню (до входа) */
.nav-item.locked { opacity: .55; }
.nav-item.locked::after {
  content: '🔒'; font-size: 10.5px; margin-left: auto; opacity: .9;
}
#mobileNav button.locked { opacity: .5; }
#mobileNav button.locked::after { content: '🔒'; font-size: 8px; }

/* V128: замочки на пункты меню, чьи лимиты исчерпаны (ждут обнуления окна) */
.nav-item.q-locked { opacity: .55; }
.nav-item.q-locked::after {
  content: '🔒'; font-size: 10.5px; margin-left: auto; opacity: .9;
}
#mobileNav button.q-locked { opacity: .5; }
#mobileNav button.q-locked::after { content: '🔒'; font-size: 8px; margin-left: 2px; }

/* Поле ввода на тепловой карте (и любые input в chips) — не белеть */
.chips .input, #liqCustom {
  background: var(--surface-2) !important;
  color: var(--text) !important;
  border: 1px solid var(--border);
}
input.input:-webkit-autofill,
input.input:-webkit-autofill:hover,
input.input:-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0 1000px var(--surface-2) inset !important;
  -webkit-text-fill-color: var(--text) !important;
  caret-color: var(--text);
  transition: background-color 99999s ease-in-out 0s;
}

/* Ссылки на источник в мониторе китов */
.src-link {
  display: inline-block; padding: 3px 8px; border-radius: 7px;
  background: var(--surface-2); border: 1px solid var(--border);
  color: var(--text-2); font-size: 11px; text-decoration: none;
  transition: all .15s;
}
.src-link:hover { color: var(--primary); border-color: rgba(25,230,193,0.35); }

@media (max-width: 720px) {
  .radar-cards { grid-template-columns: 1fr; }
  .modal-wide { width: calc(100vw - 16px); max-height: 92vh; padding: 16px 14px; }
  .modal-head { margin: -16px -14px 12px; padding: 12px 14px; top: -16px; }
}


/* ============ V8 ============ */
/* Пульс рынка — плитки вместо кольца Risk Score */
.g-pulse { grid-area: pulse; }
.pulse-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.pulse-tile {
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 12px 14px;
  transition: transform .2s, border-color .2s;
}
.pulse-tile:hover { transform: translateY(-2px); border-color: var(--border-strong); }
.pt-label { font-size: 10.5px; font-weight: 700; color: var(--text-3); text-transform: uppercase; letter-spacing: .05em; margin-bottom: 5px; }
.pt-val { font-family: var(--font-mono); font-size: 19px; font-weight: 800; color: var(--text); }
.pt-sub { font-size: 10.5px; color: var(--text-3); margin-top: 3px; }

/* обзор: новая сетка (топ-роста слева, kpi и пульс справа) */
.grid-overview {
  grid-template-columns: 1.35fr 1fr 1fr;
  grid-template-areas:
    "score kpi1 kpi2"
    "score kpi3 kpi4"
    "score pulse pulse"
    "summary summary summary"
    "market market threats";
}

/* мини-графики в KPI */
.kpi-spark { width: 100%; display: block; margin-top: 10px; }

/* новости на главной */
.dn-row {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 0;
  border-top: 1px solid rgba(255,255,255,0.05);
  font-size: 13px;
  flex-wrap: wrap;
}
.dn-row a { color: var(--text); text-decoration: none; font-weight: 600; flex: 1; min-width: 200px; }
.dn-row a:hover { color: var(--primary); }
.dn-meta { font-size: 11.5px; color: var(--text-2); font-family: var(--font-mono); white-space: nowrap; }
.dn-meta b { color: var(--text); font-weight: 700; }
.dn-age { color: var(--primary); font-weight: 800; }
.dn-meta { color: var(--text-2); font-size: 12px; white-space: nowrap; }
.dn-meta b { color: var(--text); font-weight: 700; }
#dashNews { margin-top: 12px; }

/* анализ токена — крупнее текст */
#view-token .expert-line { font-size: 14.5px; line-height: 1.7; }
#view-token .tk-metrics { font-size: 14px; }
#view-token .verdict-title { font-size: 20px !important; }
#view-token .kpi-value { font-size: 22px; }
#view-token .tn-row { font-size: 13.5px; }
#view-token .token-head > div > div:first-child { font-size: 21px !important; }

/* рекомендация стопа — заметный блок */
.stop-suggest { margin-top: 10px; }
.stop-suggest-row {
  background: rgba(25,230,193,0.06);
  border: 1px solid rgba(25,230,193,0.2);
  border-radius: 12px;
  padding: 10px 14px;
  font-size: 13px;
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}

/* мобильная адаптация — доводка */
@media (max-width: 860px) {
  .grid-overview {
    grid-template-columns: 1fr;
    grid-template-areas: "kpi1" "kpi2" "kpi3" "kpi4" "pulse" "score" "summary" "market" "threats";
  }
  .pulse-grid { grid-template-columns: repeat(2, 1fr); }
  .topbar-right { flex-wrap: wrap; gap: 6px; }
  #supportBtn span { display: none; }
  #accountBtn span { max-width: 84px; overflow: hidden; text-overflow: ellipsis; }
  .table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .table-wrap table { min-width: 560px; }
  .g-score .table-wrap table, #view-dashboard .g-market table { min-width: 480px; }
  .modal-wide { padding: 14px 12px; }
  .token-head { flex-wrap: wrap; }
  #tokenKpis { grid-template-columns: repeat(2, 1fr) !important; }
  .liq-kpi-grid { grid-template-columns: repeat(2, 1fr); }
  .chips { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 4px; -webkit-overflow-scrolling: touch; }
  .chips .chip { white-space: nowrap; flex-shrink: 0; }
  .section-head { flex-wrap: wrap; }
  .pager { flex-wrap: wrap; }
  #view-token .verdict-title { font-size: 18px !important; }
}
@media (max-width: 480px) {
  .pulse-grid { grid-template-columns: repeat(2, 1fr); }
  .pt-val { font-size: 16px; }
  .card { padding: 16px; }
  .kpi-value { font-size: 22px; }
  h1 { font-size: 18px; }
}

/* планшет: сетка обзора с пульсом */
@media (max-width: 1240px) and (min-width: 861px) {
  .grid-overview {
    grid-template-columns: 1fr 1fr;
    grid-template-areas:
      "kpi1 kpi2"
      "kpi3 kpi4"
      "pulse pulse"
      "score score"
      "summary summary"
      "market market"
      "threats threats";
  }
}


/* ============ V9 ============ */
/* параметры сделки — читабельные чипы вместо сплошного текста */
.trade-params { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.tp-chip {
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 7px 12px;
  display: flex; flex-direction: column; gap: 2px;
}
.tp-chip i { font-style: normal; font-size: 10px; font-weight: 700; color: var(--text-3); text-transform: uppercase; letter-spacing: .05em; }
.tp-chip b { font-size: 13.5px; color: var(--text); font-weight: 800; }
.tp-liq { border-color: rgba(255,138,92,0.4); background: rgba(255,138,92,0.07); }
.tp-liq b { color: #FF8A5C; }

/* ИИ о горизонте */
.horizon-ai {
  margin-top: 10px;
  background: rgba(124,92,255,0.07);
  border: 1px solid rgba(124,92,255,0.25);
  border-radius: 12px;
  padding: 10px 14px;
  font-size: 13px;
  line-height: 1.55;
  color: var(--text-2);
}
.horizon-ai b { color: #B2A0FF; }

/* скроллбар модального окна результата — в стиле сайта (фикс белого ползунка) */
.modal-wide::-webkit-scrollbar, .modal::-webkit-scrollbar { width: 9px; }
.modal-wide::-webkit-scrollbar-track, .modal::-webkit-scrollbar-track { background: var(--surface); border-radius: 8px; }
.modal-wide::-webkit-scrollbar-thumb, .modal::-webkit-scrollbar-thumb {
  background: rgba(255,255,255,0.14);
  border-radius: 8px;
  border: 2px solid var(--surface);
}
.modal-wide::-webkit-scrollbar-thumb:hover, .modal::-webkit-scrollbar-thumb:hover { background: rgba(25,230,193,0.4); }
.modal-wide, .modal { scrollbar-width: thin; scrollbar-color: rgba(255,255,255,0.16) var(--surface); }

/* окно авторизации с функционалом раздела */
.ag-features { margin: 12px 0 14px; }
.ag-feat {
  font-size: 13px; color: var(--text-2);
  padding: 6px 0 6px 4px;
  border-top: 1px solid rgba(255,255,255,0.05);
  line-height: 1.45;
}
.ag-feat:first-child { border-top: none; }
.ag-login { border-top: 1px solid var(--border); padding-top: 14px; }

/* PnL в портфеле — крупнее и контрастнее */
.pnl-cell { display: flex; flex-direction: column; align-items: flex-end; gap: 1px; }
.pnl-pct { font-family: var(--font-mono); font-size: 14.5px; font-weight: 800; }
.pnl-usd { font-size: 11.5px; font-weight: 700; opacity: .85; }
.pnl-up .pnl-pct, .pnl-up .pnl-usd { color: var(--success); text-shadow: 0 0 14px rgba(53,208,127,0.35); }
.pnl-down .pnl-pct, .pnl-down .pnl-usd { color: var(--danger); text-shadow: 0 0 14px rgba(255,77,103,0.3); }

/* нижний блок топ-10 роста */
.foot-gainers { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; }
.fg-tile {
  display: flex; align-items: center; gap: 9px;
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 10px 12px;
  cursor: pointer;
  transition: transform .18s, border-color .18s;
}
.fg-tile:hover { transform: translateY(-2px); border-color: rgba(53,208,127,0.4); }
.fg-tile img { width: 26px; height: 26px; border-radius: 50%; }
.fg-sym { font-size: 12.5px; font-weight: 800; }
.fg-price { font-size: 11px; color: var(--text-3); }
.fg-tile .pct { margin-left: auto; }
@media (max-width: 1240px) { .foot-gainers { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 640px) { .foot-gainers { grid-template-columns: repeat(2, 1fr); } }


/* ============ V10 ============ */
/* Пульс рынка — читабельный текст */
.pulse-tile .pt-label { font-size: 12px !important; font-weight: 800 !important; color: #B9C2D4 !important; text-transform: uppercase; letter-spacing: .06em; }
.pulse-tile .pt-val { font-size: 22px !important; font-weight: 800 !important; color: var(--text); }
.pulse-tile .pt-sub { font-size: 12px !important; color: #96A0B5 !important; font-weight: 600; }
.pulse-click { cursor: pointer; transition: transform .18s, border-color .18s, box-shadow .18s; }
.pulse-click:hover { transform: translateY(-2px); border-color: rgba(25,230,193,0.45); box-shadow: 0 6px 22px rgba(25,230,193,0.12); }

/* описание токена */
.token-about {
  margin: 12px 0 4px;
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 12px 14px;
  font-size: 13.5px;
  line-height: 1.6;
  color: var(--text-2);
}
.token-about b { color: var(--text); }
.cat-chip {
  display: inline-block;
  background: rgba(124,92,255,0.12);
  border: 1px solid rgba(124,92,255,0.3);
  color: #B2A0FF;
  border-radius: 999px;
  padding: 2px 10px;
  font-size: 11px;
  font-weight: 700;
  margin-right: 6px;
}

/* пояснение к графику */
.chart-note {
  margin-top: 10px;
  background: rgba(25,230,193,0.05);
  border: 1px solid rgba(25,230,193,0.18);
  border-radius: 12px;
  padding: 11px 14px;
  font-size: 13.5px;
  line-height: 1.6;
  color: var(--text-2);
}

/* вывод специалиста — блоки с заголовками */
.expert-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 4px; }
.expert-block {
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 13px 15px;
}
.eb-head { font-size: 13px; font-weight: 800; color: var(--text); margin-bottom: 6px; }
.eb-text { font-size: 13.5px; line-height: 1.62; color: #C3CBDA; }
.expert-plan { grid-column: 1 / -1; border-color: rgba(25,230,193,0.35); background: rgba(25,230,193,0.05); }
.expert-plan .eb-head { color: var(--primary); }
@media (max-width: 900px) { .expert-grid { grid-template-columns: 1fr; } }

/* входящие пользователя */
#userInbox .fb-row { padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,0.05); }


/* ============ V11 ============ */
/* компактная AI-сводка: плитки ключевых моментов */
.ais-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-bottom: 10px; }
.ais-item {
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 8px 10px;
  display: flex; flex-direction: column; gap: 2px;
}
.ais-ico { font-size: 13px; }
.ais-label { font-size: 10.5px; font-weight: 800; color: #96A0B5; text-transform: uppercase; letter-spacing: .05em; }
.ais-val { font-size: 13px; font-weight: 800; color: var(--text); font-variant-numeric: tabular-nums; }
.ais-val.up { color: var(--success); }
.ais-val.down { color: var(--danger); }
.ais-val.warn { color: var(--warning); }
.ais-verdict {
  background: rgba(25,230,193,0.06);
  border: 1px solid rgba(25,230,193,0.22);
  border-radius: 10px;
  padding: 9px 12px;
  font-size: 13.5px; font-weight: 700; color: var(--text);
}
@media (max-width: 1100px) { .ais-grid { grid-template-columns: repeat(2, 1fr); } }

/* глубокий ИИ-блок: тезисы строками с выделением */
.ai-line { padding: 7px 0; border-bottom: 1px solid rgba(255,255,255,0.05); font-size: 13.5px; line-height: 1.55; color: #C3CBDA; }
.ai-line:last-child { border-bottom: none; }
.ai-hl { color: var(--text); }

/* легенда пампов/дампов */
.pump-legend { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 10px; font-size: 12px; color: var(--text-3); align-items: center; }
.pump-legend > span { display: flex; align-items: center; gap: 6px; }

/* меню «поделиться» */
.share-pop {
  position: absolute;
  bottom: calc(100% + 8px); left: 0;
  z-index: 300;
  background: #161E2B;
  border: 1px solid rgba(255,255,255,0.14);
  border-radius: 14px;
  box-shadow: 0 14px 44px rgba(0,0,0,0.5);
  padding: 8px;
  display: flex; flex-direction: column; gap: 2px;
  min-width: 230px;
  animation: pop-in .18s ease;
}
.share-pop a, .share-pop button {
  display: block; width: 100%; text-align: left;
  background: none; border: none; cursor: pointer;
  color: var(--text); font-size: 13.5px; font-weight: 600;
  padding: 9px 12px; border-radius: 9px; text-decoration: none;
  transition: background .15s;
}
.share-pop a:hover, .share-pop button:hover { background: rgba(25,230,193,0.1); }
@keyframes pop-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }


/* ============ V12 ============ */
/* спокойное состояние алертов */
.alerts-idle {
  display: flex; align-items: center; gap: 14px;
  background: var(--surface-2); border: 1px solid var(--border);
  border-radius: 12px; padding: 16px 18px;
}
.alerts-idle-ico { font-size: 22px; }
.alerts-idle b { font-size: 14px; color: var(--text); display: block; margin-bottom: 3px; }
.alerts-idle div div { font-size: 12.5px; color: var(--text-2); line-height: 1.5; }

/* watchlist в личном кабинете */
.watch-row {
  display: flex; align-items: center; gap: 12px;
  padding: 9px 12px; border-radius: 10px; cursor: pointer;
  border-bottom: 1px solid rgba(255,255,255,0.05);
  transition: background .15s;
}
.watch-row:hover { background: rgba(25,230,193,0.06); }
.watch-row b { min-width: 56px; }
.watch-row .pf-del { margin-left: auto; }

/* центрирование числа в кольце вердикта — фикс смещения */
.mini-ring .score-center { display: flex; align-items: center; justify-content: center; text-align: center; }
.mini-ring .score-center .score-num { line-height: 1; }

/* предпросмотр графика в карточке результата */
#tradePreviewChart { background: #0D1320; }


/* ============ V13 ============ */
/* кликабельная бегущая строка */
.tk-click { cursor: pointer; transition: background .15s; border-radius: 8px; }
.tk-click:hover { background: rgba(25,230,193,0.08); }

/* виджет широты рынка */
.breadth-bar { height: 6px; border-radius: 3px; background: rgba(255,77,103,0.35); overflow: hidden; margin: 4px 0 3px; }
.breadth-bar span { display: block; height: 100%; background: linear-gradient(90deg, #35D07F, #19E6C1); border-radius: 3px; }
.breadth-nums { font-size: 11px; }

/* премиум-виджеты на главной — внутри «Пульса рынка», в стиле pulse-tile */
.widgets-pane { margin-top: 4px; }
.widgets-divider {
  margin: 14px 0 10px; padding-top: 12px; border-top: 1px solid var(--border);
  font-size: 11px; font-weight: 700; color: var(--text-3); text-transform: uppercase; letter-spacing: .05em;
}
.widgets-pane .widget-tile { padding: 12px 14px; }
.widgets-pane .widget-tile:hover { border-color: var(--border-strong); }
.widgets-pane .wt-head { font-size: 10.5px; font-weight: 700; color: var(--text-3); text-transform: uppercase; letter-spacing: .05em; margin-bottom: 5px; }
.widgets-pane .wt-val { font-family: var(--font-mono); font-size: 19px; font-weight: 800; margin-top: 0; }
.widgets-pane .wt-sub { font-size: 10.5px; color: var(--text-3); margin-top: 3px; }
.widget-tile {
  background: var(--surface-2); border: 1px solid var(--border);
  border-radius: 14px; padding: 14px 16px;
  transition: transform .18s, border-color .18s;
}
.widget-tile:hover { transform: translateY(-2px); border-color: rgba(124,92,255,0.35); }
.wt-head { font-size: 11.5px; color: var(--text-3); font-weight: 700; text-transform: uppercase; letter-spacing: .4px; }
.wt-val { font-family: var(--font-display); font-size: 22px; font-weight: 700; margin-top: 6px; }
.wt-sub { font-size: 11.5px; color: var(--text-2); margin-top: 3px; line-height: 1.4; }
.widget-locked {
  grid-column: 1 / -1; display: flex; align-items: center; flex-wrap: wrap; gap: 6px;
  font-size: 13px; color: var(--text-2); padding: 14px 16px;
  background: rgba(124,92,255,0.06); border: 1px dashed rgba(124,92,255,0.3); border-radius: 12px;
}

/* анимация поиска токена: бегущие точки */
.searching-dots::after { content: ''; animation: srchDots 1.2s steps(4) infinite; }
@keyframes srchDots { 0% { content: ''; } 25% { content: '.'; } 50% { content: '..'; } 75% { content: '...'; } }
.input.searching { border-color: rgba(25,230,193,0.5); box-shadow: 0 0 0 3px rgba(25,230,193,0.12); }

/* всплывающие алерты: контраст и читаемость */
#toasts > div {
  background: linear-gradient(180deg, #172033, #101827) !important;
  border: 1px solid rgba(255,255,255,0.16) !important;
  box-shadow: 0 18px 44px rgba(0,0,0,0.62), 0 0 0 1px rgba(25,230,193,0.06) !important;
  padding: 14px 16px !important;
}
#toasts b { color: var(--text) !important; font-size: 15px !important; line-height: 1.4 !important; }
#toasts div div { color: #D3D9E5 !important; font-size: 14px !important; line-height: 1.6 !important; }
.modal-wide #tradeResult { font-size: 14px; line-height: 1.65; }
.modal-wide #tradeResult button { min-height: 44px; font-size: 14px; }

/* читабельная строка квоты тарифа */
.quota-line {
  margin-top: 8px; font-size: 12.5px; color: var(--text-2);
  display: inline-block; padding: 6px 14px;
  background: rgba(25,230,193,0.06); border: 1px solid rgba(25,230,193,0.18); border-radius: 8px;
}
.quota-line b { color: var(--primary); }
/* подсветка тарифа в квоте: бейдж плана + цветное число остатка */
.plan-badge {
  display: inline-block; font-weight: 800; font-size: 11px; letter-spacing: .06em;
  padding: 2px 9px; border-radius: 999px; vertical-align: 1px;
  background: rgba(96,108,128,0.18); border: 1px solid rgba(96,108,128,0.45); color: #C7CDDA;
}
.plan-badge.pro { background: rgba(124,92,255,0.16); border-color: rgba(124,92,255,0.55); color: #B2A0FF; }
.plan-badge.premium { background: linear-gradient(135deg, rgba(255,191,71,0.18), rgba(255,138,92,0.14)); border-color: rgba(255,191,71,0.6); color: #FFC85C; box-shadow: 0 0 12px rgba(255,191,71,0.25); }
.q-num { font-size: 14px; font-weight: 800; }
.q-num.q-ok { color: var(--success); }
.q-num.q-low { color: var(--warning); }
.q-num.q-0 { color: var(--danger); }
#tradeLimitNote { font-size: 12.5px; }
#tradeLimitNote .q-num { font-size: 13px; }
/* V118: лимит-плашка + мелкий живой таймер до обнуления (анализ сделки / анализ токена) */
.quota-lock{display:inline-flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px}
.q-timer{font-size:10.5px;font-weight:600;color:var(--text-2);white-space:nowrap}
.q-timer b{color:var(--warning);font-variant-numeric:tabular-nums}
/* V121: панель поиска/чипов/фильтров лидерборда убрана (элементы остаются в DOM — JS не ломается) */
.ct-toolbar{display:none!important}
/* V125: «Кит голосует за» + подсветка YES/NO @ цена в настройках копитрейда */
.ct-copyres#pmWPick{flex-wrap:wrap;gap:6px 10px;padding:9px 10px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:10px;align-items:center}
.ct-vote-lab{font-size:11px;font-weight:700;color:var(--ct-t3);letter-spacing:.2px}
.ct-vote-pick{font-size:15px;font-weight:800;padding:3px 11px;border-radius:999px;letter-spacing:.3px}
.ct-vote-pick.ct-yes{color:#052e16;background:linear-gradient(135deg,#4ade80,#22c55e);box-shadow:0 2px 12px rgba(34,197,94,.35)}
.ct-vote-pick.ct-no{color:#fff;background:linear-gradient(135deg,#f87171,#dc2626);box-shadow:0 2px 12px rgba(239,68,68,.35)}
.ct-vote-sub{flex-basis:100%;color:var(--ct-t3);font-size:11px}
/* V158: «сейчас $…» — живая цена рынка рядом с ценой входа кита */
.ct-vote-live{font-size:11px;font-weight:700;color:var(--ct-acc,#35D07F);margin-left:6px;padding:2px 8px;border-radius:999px;background:rgba(53,208,127,.12);border:1px solid rgba(53,208,127,.3)}
/* V126: таймер в блоке FREE под меню — жёлтая пилюля «до обнуления», видна только когда лимит исчерпан */
.plan-timer{display:inline-flex;align-items:center;gap:5px;margin:0 0 12px;padding:3px 9px;border-radius:999px;background:rgba(255,190,50,.14);border:1px solid rgba(255,190,50,.3);color:var(--text-2);font-size:11px;font-weight:600;white-space:nowrap}
.plan-timer b{color:var(--warning);font-variant-numeric:tabular-nums;font-weight:800}

/* Crypto Entry Radar — платный виджет скоринга входа */
.er-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.er-pair { font-size: 15px; font-weight: 700; letter-spacing: .5px; }
.er-sig { font-size: 13px; font-weight: 600; margin-top: 3px; }
.er-score { font-family: var(--font-display); font-size: 38px; font-weight: 800; line-height: 1; }
.er-score-sub { font-size: 15px; font-weight: 600; color: var(--text-3); }
.er-zones {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 12px;
  padding: 10px 12px; background: var(--surface-2); border: 1px solid var(--border); border-radius: 12px;
}
.er-zones > div { display: flex; flex-direction: column; gap: 2px; font-size: 13px; }
.er-zlbl { font-size: 11px; color: var(--text-2); text-transform: uppercase; letter-spacing: .4px; font-weight: 700; }
.er-bars { display: flex; flex-direction: column; gap: 7px; }
.er-row { display: grid; grid-template-columns: 105px 1fr 34px minmax(120px, 1.2fr); gap: 10px; align-items: center; }
.er-lbl { font-size: 12.5px; font-weight: 700; color: var(--text); }
.er-track { height: 9px; border-radius: 5px; background: rgba(255,255,255,0.09); overflow: hidden; }
.er-fill { display: block; height: 100%; border-radius: 5px; transition: width .5s ease; }
.er-num { font-size: 13px; font-weight: 800; text-align: right; }
.er-note { font-size: 12px; color: var(--text-2); line-height: 1.35; }
.er-changed {
  margin-top: 12px; padding: 10px 12px; font-size: 12.5px; line-height: 1.45;
  background: rgba(25,230,193,0.07); border: 1px solid rgba(25,230,193,0.25); border-radius: 10px;
}
.er-alerts { margin-top: 10px; display: flex; flex-direction: column; gap: 5px; font-size: 12.5px; color: var(--text-2); }
.er-disclaimer { margin-top: 10px; font-size: 11px; color: var(--text-2); line-height: 1.4; }
@media (max-width: 700px) {
  .er-zones { grid-template-columns: 1fr; gap: 6px; }
  .er-row { grid-template-columns: 92px 1fr 30px; }
  .er-note { grid-column: 1 / -1; margin-top: -3px; padding-left: 2px; }
}

/* ===== Теневой рынок — детективная лента ===== */
.shadow-kicker { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 2.5px; color: var(--warning); font-weight: 700; margin-bottom: 4px; }
.shadow-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 14px; }
.shs-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 14px 16px; }
.shs-num { font-family: var(--font-display); font-size: 26px; font-weight: 800; }
.shs-lbl { font-size: 11.5px; color: var(--text-2); margin-top: 2px; }
.shadow-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
.shadow-feed { position: relative; padding-left: 26px; }
.shadow-feed::before { content: ''; position: absolute; left: 8px; top: 6px; bottom: 6px; width: 2px; background: linear-gradient(180deg, rgba(255,191,71,.5), rgba(124,92,255,.35), transparent); border-radius: 2px; }
.sh-card { position: relative; background: var(--surface); border: 1px solid var(--border); border-left: 3px solid var(--text-3); border-radius: var(--radius-sm); padding: 14px 16px; margin-bottom: 12px; animation: fadeSlide .35s ease; }
.sh-card::before { content: ''; position: absolute; left: -23px; top: 18px; width: 10px; height: 10px; border-radius: 50%; background: var(--bg); border: 2px solid var(--text-3); }
.sh-card.sh-manipulation { border-left-color: var(--danger); }
.sh-card.sh-manipulation::before { border-color: var(--danger); box-shadow: 0 0 10px rgba(255,77,103,.5); }
.sh-card.sh-flow { border-left-color: #7C5CFF; }
.sh-card.sh-flow::before { border-color: #7C5CFF; }
.sh-card.sh-macro { border-left-color: var(--warning); }
.sh-card.sh-macro::before { border-color: var(--warning); }
.sh-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 6px; }
.sh-tag { font-family: var(--font-mono); font-size: 10px; font-weight: 700; letter-spacing: 1px; padding: 2px 8px; border-radius: 6px; text-transform: uppercase; }
.sh-tag-manipulation { background: rgba(255,77,103,.14); color: #FF8FA3; }
.sh-tag-flow { background: rgba(124,92,255,.14); color: #B2A0FF; }
.sh-tag-macro { background: rgba(255,191,71,.14); color: #FFD27A; }
.sh-tag-market { background: rgba(25,230,193,.12); color: #6FF2DC; }
.sh-time { margin-left: auto; font-family: var(--font-mono); font-size: 11.5px; color: var(--text-2); font-weight: 700; white-space: nowrap; }
.sh-title { font-size: 16px; font-weight: 700; line-height: 1.5; margin-bottom: 9px; }
.sh-sec { font-size: 14px; line-height: 1.7; color: var(--text-2); margin-top: 8px; }
.sh-sec b { color: var(--text); font-size: 12px; text-transform: uppercase; letter-spacing: .5px; display: block; margin-bottom: 3px; }
.sh-conf { display: inline-flex; align-items: center; gap: 6px; margin-top: 8px; font-size: 11px; color: var(--text-2); }
.sh-conf-bar { width: 90px; height: 5px; border-radius: 3px; background: rgba(255,255,255,.08); overflow: hidden; }
.sh-conf-fill { display: block; height: 100%; border-radius: 3px; }
.sh-src { font-size: 11px; color: var(--text-3); margin-top: 6px; }
.sh-src a { color: var(--primary); text-decoration: none; }

/* ===== Кошелёк-зеркало ===== */
.mirror-card { border: 1px solid rgba(124,92,255,.28); background: linear-gradient(135deg, rgba(124,92,255,.05), var(--surface)); }
.mirror-form { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; }
.mirror-form .input { flex: 1; min-width: 220px; }
.mirror-note { font-size: 11.5px; color: var(--text-2); margin-bottom: 10px; }
.mr-score-row { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-bottom: 10px; }
.mr-big { font-family: var(--font-display); font-size: 40px; font-weight: 800; line-height: 1; }
.mr-verdict { font-size: 13.5px; font-weight: 700; }
.mr-sub { font-size: 12px; color: var(--text-2); margin-top: 3px; }
.mr-rows { display: flex; flex-direction: column; gap: 6px; margin-top: 8px; }
.mr-row { display: flex; align-items: center; gap: 10px; font-size: 12.5px; color: var(--text-2); }
.mr-row b { color: var(--text); min-width: 130px; font-size: 12px; }
.mr-track { flex: 1; height: 8px; border-radius: 4px; background: rgba(255,255,255,.07); overflow: hidden; }
.mr-fill { display: block; height: 100%; border-radius: 4px; }
.mr-val { font-family: var(--font-mono); font-size: 12px; font-weight: 700; min-width: 44px; text-align: right; }
.mr-note { margin-top: 10px; font-size: 12px; color: var(--text-2); line-height: 1.5; padding: 10px 12px; background: var(--surface-2); border-radius: 10px; }

/* мобильная адаптация — усиленная */

@media (max-width: 700px) {
  .shadow-summary { grid-template-columns: 1fr; }
  .shadow-feed { padding-left: 18px; }
  .sh-card::before { left: -15px; }
}
@media (max-width: 560px) {
  .seg.seg-sm button { font-size: 11px; padding: 6px 8px; }
  .chips { overflow-x: auto; flex-wrap: nowrap; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding-bottom: 4px; }
  .chips::-webkit-scrollbar { display: none; }
  .chips .chip, .chips .select, .chips .input { flex-shrink: 0; }
  .table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .table-wrap table { min-width: 560px; }
  .trade-layout { grid-template-columns: 1fr !important; }
  .modal-wide { max-width: 100vw !important; border-radius: 0 !important; max-height: 100vh !important; }
  .grid-overview { grid-template-columns: minmax(0, 1fr) !important; }
  .g-score, .g-pulse, .g-summary, .g-market, .g-threats { grid-column: 1 !important; }
  .pulse-grid { grid-template-columns: repeat(2, 1fr) !important; }
  h2 { font-size: 19px; }
  .section-head .sub { display: none; }
  .expert-grid { grid-template-columns: 1fr !important; }
  .tk-metrics { grid-template-columns: 1fr !important; }
  .auth-grid { grid-template-columns: 1fr !important; }
  .acc-grid, .admin-grid { grid-template-columns: 1fr !important; }
  #tokenKpis { grid-template-columns: repeat(2, 1fr) !important; }
  .plan-card { min-width: 0; }
  .topbar { flex-wrap: wrap; gap: 6px; }
}


/* ============ V14 ============ */
/* компактная форма сделки: два поля в ряд */
.form-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.form-row2 .form-group { margin-bottom: 12px; }

/* предупреждение спот/фьючерс */
.market-type-note {
  margin-top: 8px; padding: 8px 12px; border-radius: 10px; font-size: 12px; line-height: 1.5;
  background: rgba(53,208,127,0.07); border: 1px solid rgba(53,208,127,0.25); color: var(--text-2);
}
.market-type-note.mt-warn { background: rgba(255,191,71,0.08); border-color: rgba(255,191,71,0.35); }

/* легенда OI */
.scr-legend { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: 11.5px; color: var(--text-3); margin-bottom: 10px; padding: 8px 12px; background: var(--surface-2); border-radius: 10px; }

/* рекламный просмотр */
.ad-view { border-radius: 14px; border: 1px solid var(--border); background: linear-gradient(135deg, rgba(124,92,255,0.15), rgba(25,230,193,0.1)); padding: 26px 16px; margin: 12px 0 4px; }
.ad-progress { height: 5px; border-radius: 3px; background: rgba(255,255,255,0.08); overflow: hidden; margin-top: 12px; }
.ad-progress-fill { height: 100%; width: 0; background: linear-gradient(90deg, #19E6C1, #7C5CFF); }

/* заметная кнопка "Все новости" */
#aiNewsMore {
  background: linear-gradient(135deg, rgba(25,230,193,0.15), rgba(124,92,255,0.15));
  border: 1px solid rgba(25,230,193,0.4); color: var(--primary); font-weight: 700;
  padding: 7px 14px; box-shadow: 0 0 14px rgba(25,230,193,0.12);
}
#aiNewsMore:hover { background: rgba(25,230,193,0.2); transform: translateY(-1px); box-shadow: 0 0 20px rgba(25,230,193,0.25); }

@media (max-width: 560px) {
  .form-row2 { grid-template-columns: 1fr; gap: 0; }
}


/* ============ V15 ============ */
/* метка ИИ-влияния новости на рынок */
.dn-fx { font-size: 10.5px; white-space: nowrap; padding: 2px 8px; border-radius: 8px; background: rgba(255,255,255,0.04); border: 1px solid var(--border); }
.dn-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
/* свой ценовой алерт в watchlist */
.watch-alert-cell { display: inline-flex; align-items: center; gap: 4px; }
.watch-alert-cell .inp-sm { padding: 4px 8px; font-size: 11.5px; }


/* важные новости сперва + разделитель */
.dn-important { background: linear-gradient(90deg, rgba(255,77,103,0.07), transparent 70%); border-left: 2px solid var(--danger); padding-left: 8px; border-radius: 6px; }
.dn-divider { font-size: 10px; letter-spacing: 1.2px; text-transform: uppercase; color: var(--text-3); margin: 8px 0 4px; padding-top: 6px; border-top: 1px dashed var(--border); }

/* Expert conclusion: key points emphasis */
.expert-block { position:relative; }
.expert-block .eb-head { font-size:15px; font-weight:850; letter-spacing:.01em; display:flex; align-items:center; gap:7px; }
.expert-block .eb-text { font-size:14px; line-height:1.72; color:var(--text-2); }
.expert-block .key-value, .expert-block strong, .expert-block b { color:var(--text); font-weight:850; }
.expert-block .positive { color:var(--success); }
.expert-block .negative { color:var(--danger); }
.expert-block.expert-highlight { border-color:rgba(255,193,7,.42); box-shadow:inset 3px 0 0 var(--warning); }

/* Hyperliquid positions redesign */
.hl-row { transition: background .18s ease, transform .18s ease; }
.hl-row:hover { background: rgba(255,255,255,.035); }
.hl-side-long { background: rgba(25,230,193,.045); }
.hl-side-short { background: rgba(255,77,106,.045); }
.hl-side-badge { display:inline-flex; align-items:center; gap:4px; padding:3px 8px; border-radius:999px; font-size:11px; font-weight:800; letter-spacing:.02em; }
.hl-side-long .hl-side-badge { color:var(--success); background:rgba(25,230,193,.12); }
.hl-side-short .hl-side-badge { color:var(--danger); background:rgba(255,77,106,.12); }
.hl-pnl-pos { color:var(--success); font-weight:800; }
.hl-pnl-neg { color:var(--danger); font-weight:800; }
.hl-wallet { color:var(--text-3); font-size:11.5px; }


/* ============================================================
   V16 — Обзор: стиль всей страницы
   ============================================================ */
#view-dashboard {
  position: relative;
}
/* мягкие свечения на фоне вкладки */
#view-dashboard::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse 620px 340px at 8% 0%, rgba(25,230,193,0.07), transparent 65%),
    radial-gradient(ellipse 620px 340px at 96% 4%, rgba(124,92,255,0.09), transparent 65%),
    radial-gradient(ellipse 520px 300px at 55% 100%, rgba(255,191,71,0.05), transparent 65%);
  z-index: 0;
}
#view-dashboard > * { position: relative; z-index: 1; }

/* иконки в заголовках KPI */
.kpi-ico {
  width: 16px; height: 16px;
  flex-shrink: 0;
  opacity: .9;
}

/* KPI-карточки: цветной акцент-глоу по верхнему краю */
#view-dashboard .g-kpi1,
#view-dashboard .g-kpi2,
#view-dashboard .g-kpi3,
#view-dashboard .g-kpi4 {
  overflow: hidden;
  transition: transform .3s cubic-bezier(.34,1.56,.64,1), box-shadow .35s, border-color .35s;
}
#view-dashboard .g-kpi1::before,
#view-dashboard .g-kpi2::before,
#view-dashboard .g-kpi3::before,
#view-dashboard .g-kpi4::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
}
#view-dashboard .g-kpi1::before { background: linear-gradient(90deg, #F7931A, transparent 80%); }
#view-dashboard .g-kpi1 .card-title { color: #FFB45E; }
#view-dashboard .g-kpi1 .kpi-ico { color: #F7931A; }
#view-dashboard .g-kpi1:hover { border-color: rgba(247,147,26,.45); box-shadow: 0 16px 44px rgba(247,147,26,.14), 0 0 0 1px rgba(247,147,26,.08); }

#view-dashboard .g-kpi2::before { background: linear-gradient(90deg, #A990FF, transparent 80%); }
#view-dashboard .g-kpi2 .card-title { color: #B9A6FF; }
#view-dashboard .g-kpi2 .kpi-ico { color: #A990FF; }
#view-dashboard .g-kpi2:hover { border-color: rgba(169,144,255,.5); box-shadow: 0 16px 44px rgba(124,92,255,.18), 0 0 0 1px rgba(169,144,255,.1); }

#view-dashboard .g-kpi3::before { background: linear-gradient(90deg, var(--primary), transparent 80%); }
#view-dashboard .g-kpi3 .card-title { color: #7FF2DC; }
#view-dashboard .g-kpi3 .kpi-ico { color: var(--primary); }
#view-dashboard .g-kpi3:hover { border-color: rgba(25,230,193,.45); box-shadow: 0 16px 44px rgba(25,230,193,.14), 0 0 0 1px rgba(25,230,193,.08); }

#view-dashboard .g-kpi4::before { background: linear-gradient(90deg, var(--warning), transparent 80%); }
#view-dashboard .g-kpi4 .card-title { color: #FFD68A; }
#view-dashboard .g-kpi4 .kpi-ico { color: var(--warning); }
#view-dashboard .g-kpi4:hover { border-color: rgba(255,191,71,.5); box-shadow: 0 16px 44px rgba(255,191,71,.15), 0 0 0 1px rgba(255,191,71,.1); }

/* KPI значения — крупнее и с лёгким свечением */
#view-dashboard .kpi-value { font-size: 27px; letter-spacing: -0.02em; text-shadow: 0 0 22px rgba(25,230,193,.18); }
#view-dashboard .g-kpi1 .kpi-value { text-shadow: 0 0 22px rgba(247,147,26,.22); }
#view-dashboard .g-kpi2 .kpi-value { text-shadow: 0 0 22px rgba(169,144,255,.25); }
#view-dashboard .g-kpi3 .kpi-value { text-shadow: 0 0 22px rgba(25,230,193,.2); }
#view-dashboard .g-kpi4 .kpi-value { text-shadow: 0 0 22px rgba(255,191,71,.22); }
#view-dashboard .kpi-spark { margin-top: 12px; }

/* карточка «Топ-10 роста» — акцентная рамка */
#view-dashboard .g-score {
  background:
    radial-gradient(circle at top right, rgba(25,230,193,.07), transparent 45%),
    radial-gradient(circle at bottom left, rgba(124,92,255,.06), transparent 50%),
    var(--surface);
  transition: transform .3s cubic-bezier(.34,1.56,.64,1), box-shadow .35s, border-color .35s;
}
#view-dashboard .g-score:hover {
  border-color: rgba(25,230,193,.35);
  box-shadow: 0 20px 52px rgba(0,0,0,.35), 0 0 34px rgba(25,230,193,.06);
}

/* пульс рынка — плитки с лёгким свечением */
.pulse-tile {
  background: linear-gradient(160deg, rgba(255,255,255,.035), transparent 60%), var(--surface-2);
  border-color: var(--border);
  box-shadow: 0 2px 10px rgba(0,0,0,.18);
  position: relative;
  overflow: hidden;
}
.pulse-tile::after {
  content: '';
  position: absolute; top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, rgba(25,230,193,.25), transparent 70%);
  opacity: 0;
  transition: opacity .25s;
}
.pulse-tile:hover { transform: translateY(-3px); border-color: rgba(25,230,193,.3); box-shadow: 0 10px 26px rgba(0,0,0,.3), 0 0 18px rgba(25,230,193,.08); }
.pulse-tile:hover::after { opacity: 1; }

/* таблицы на обзоре: hover-строки мягче, шапка заметнее */
#view-dashboard .table-wrap th {
  background: rgba(255,255,255,.02);
  border-bottom: 1px solid rgba(255,255,255,.1);
}
#view-dashboard tbody tr { transition: background .18s, transform .18s; }
#view-dashboard tbody tr:hover { background: rgba(25,230,193,.045); }

/* новости + ИИ — фиолетовый акцент */
#view-dashboard .g-summary {
  background:
    radial-gradient(circle at top right, rgba(124,92,255,.08), transparent 50%),
    var(--surface);
  transition: border-color .35s, box-shadow .35s;
}
#view-dashboard .g-summary:hover { border-color: rgba(124,92,255,.4); box-shadow: 0 20px 52px rgba(0,0,0,.32), 0 0 34px rgba(124,92,255,.07); }

/* сигналы — danger-акцент */
#view-dashboard .g-threats { transition: border-color .35s, box-shadow .35s; }
#view-dashboard .g-threats:hover { border-color: rgba(255,77,103,.35); box-shadow: 0 20px 52px rgba(0,0,0,.32), 0 0 30px rgba(255,77,103,.06); }

/* ============ V105: компактные виджеты обзора — высота и отступы как у KPI-карточек ============ */
/* таблицы (Топ-20 роста / Рынок): без прокрутки — 20 строк столбиком сразу (V110) */
#view-dashboard .g-score .table-wrap,
#view-dashboard .g-market .table-wrap { max-height: none; overflow: visible; }
#view-dashboard .g-score .table-wrap thead th,
#view-dashboard .g-market .table-wrap thead th { position: sticky; top: 0; z-index: 2; background: #161A26; }
#view-dashboard .table-wrap th { padding: 6px 10px; font-size: 10px; }
#view-dashboard .table-wrap td { padding: 5px 10px; font-size: 12.5px; }
#view-dashboard .coin-cell { gap: 7px; }
#view-dashboard .coin-cell img { width: 20px; height: 20px; }
#view-dashboard .coin-name { font-size: 12.5px; }
#view-dashboard .coin-sym { font-size: 10px; }
#view-dashboard .pct { font-size: 11.5px; padding: 2px 6px; }
#view-dashboard .table-wrap .mono { font-size: 12px; }
#view-dashboard .g-market .pager { margin-top: 8px; }
#view-dashboard .g-market .pager .btn-sm { padding: 4px 10px; font-size: 11px; }

/* новости + ИИ: компактнее, список новостей скроллится (430px) */
#view-dashboard #dashNews { max-height: 430px; overflow-y: auto; margin-top: 8px; }
#view-dashboard .dn-row { padding: 5px 0; font-size: 12.5px; gap: 6px; }
#view-dashboard .dn-row a { min-width: 140px; }
#view-dashboard #dashVerdict > div { padding: 10px 12px !important; gap: 10px !important; margin-bottom: 8px; }
#view-dashboard #dashVerdict [style*="font-size:26px"] { font-size: 20px !important; }
#view-dashboard #dashVerdict [style*="font-size:16px"] { font-size: 14px !important; }
#view-dashboard #dashEvents { margin-bottom: 8px !important; }
#view-dashboard .ais-item { padding: 4px 0; }
#view-dashboard .summary-meta { margin-top: 6px; }

/* сигналы: все карточки сразу, без внутренней прокрутки (V112) */
#view-dashboard #dashThreats { max-height: none; overflow: visible; padding-right: 0; }
#view-dashboard .threat-card { padding: 10px 12px; margin-bottom: 8px; }
#view-dashboard .threat-head { margin-bottom: 5px; }
#view-dashboard .threat-title { font-size: 13px; margin-bottom: 3px; }
#view-dashboard .threat-desc { font-size: 12px; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
#view-dashboard .threat-more { margin-top: 5px; font-size: 11px; }

/* пульс рынка: компактные плитки (перебиваем V10 !important) */
#view-dashboard .pulse-tile { padding: 9px 11px; border-radius: 10px; }
#view-dashboard .pulse-tile .pt-label { font-size: 10px !important; margin-bottom: 3px; }
#view-dashboard .pulse-tile .pt-val { font-size: 15px !important; }
#view-dashboard .pulse-tile .pt-sub { font-size: 10px !important; margin-top: 2px; }

/* рынок — таблица */
#view-dashboard .g-market { transition: border-color .35s, box-shadow .35s; }
#view-dashboard .g-market:hover { border-color: rgba(255,255,255,.15); box-shadow: 0 20px 52px rgba(0,0,0,.32); }

/* каскадное появление карточек */
#view-dashboard .card { animation: dashCardIn .5s cubic-bezier(.22,1,.36,1) backwards; }
#view-dashboard .g-score  { animation-delay: .03s; }
#view-dashboard .g-kpi1   { animation-delay: .08s; }
#view-dashboard .g-kpi2   { animation-delay: .13s; }
#view-dashboard .g-kpi3   { animation-delay: .18s; }
#view-dashboard .g-kpi4   { animation-delay: .23s; }
#view-dashboard .g-pulse  { animation-delay: .28s; }
#view-dashboard .g-summary{ animation-delay: .34s; }
#view-dashboard .g-market { animation-delay: .4s; }
#view-dashboard .g-threats{ animation-delay: .46s; }
@keyframes dashCardIn {
  from { opacity: 0; transform: translateY(16px) scale(.985); }
  to   { opacity: 1; transform: none; }
}

/* заголовок вкладки — градиент */
body[data-view="dashboard"] h1 { background: linear-gradient(92deg, var(--primary) 0%, #7FF2DC 45%, #A990FF 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }

@media (prefers-reduced-motion: reduce) {
  #view-dashboard .card { animation: none; }
  #view-dashboard .pulse-tile { transition: none; }
}


/* ============================================================
   V17 — Анализ сделки: стиль результата, подсветка главных данных
   ============================================================ */
/* шапка результата: вердикт + параметры сделки */
#tradeModal .result-score-row {
  background: linear-gradient(135deg, rgba(124,92,255,0.11), rgba(25,230,193,0.06) 55%, transparent), var(--surface-2);
  border: 1px solid rgba(124,92,255,0.32);
  border-radius: 16px;
  padding: 18px 20px;
  margin-bottom: 16px;
  box-shadow: 0 10px 34px rgba(0,0,0,0.28), inset 0 1px 0 rgba(255,255,255,0.05);
  position: relative;
  overflow: hidden;
}
#tradeModal .result-score-row::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, #7C5CFF, #19E6C1, transparent 85%);
}
/* кольцо health — свечение */
#tradeModal .mini-ring { filter: drop-shadow(0 0 14px rgba(25,230,193,0.35)); }
#tradeModal .mini-ring .score-num { text-shadow: 0 0 18px rgba(25,230,193,0.45); }
/* вердикт — крупнее, светится своим цветом */
#tradeModal .verdict-title { font-size: 21px; letter-spacing: .01em; text-shadow: 0 0 24px currentColor; }
/* чипы параметров сделки */
#tradeModal .tp-chip {
  background: rgba(255,255,255,0.035);
  border-color: rgba(255,255,255,0.09);
  padding: 8px 13px;
  transition: border-color .2s, transform .2s, box-shadow .2s;
}
#tradeModal .tp-chip:hover { transform: translateY(-2px); border-color: rgba(124,92,255,0.5); box-shadow: 0 6px 16px rgba(0,0,0,0.25); }
#tradeModal .tp-chip b { font-size: 14px; }
/* ликвидация — самый важный параметр риска */
#tradeModal .tp-chip.tp-liq {
  border-color: rgba(255,138,92,0.55);
  background: rgba(255,138,92,0.1);
  box-shadow: 0 0 16px rgba(255,138,92,0.12);
}
#tradeModal .tp-chip.tp-liq b { color: #FFB27E; font-size: 15px; }
/* ИИ о горизонте */
.horizon-ai {
  background: linear-gradient(135deg, rgba(124,92,255,0.13), rgba(124,92,255,0.04));
  border-color: rgba(124,92,255,0.4);
  box-shadow: 0 4px 18px rgba(124,92,255,0.12);
}
/* факторы: зелёная/красная подсветка */
.factor-item { transition: border-color .2s, transform .2s, box-shadow .2s; }
.factor-item:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(0,0,0,0.28); }
.factor-item.f-ok { border-color: rgba(53,208,127,0.28); background: linear-gradient(135deg, rgba(53,208,127,0.07), var(--surface-2) 70%); }
.factor-item.f-ok:hover { border-color: rgba(53,208,127,0.55); }
.factor-item.f-bad { border-color: rgba(255,77,103,0.32); background: linear-gradient(135deg, rgba(255,77,103,0.08), var(--surface-2) 70%); }
.factor-item.f-bad:hover { border-color: rgba(255,77,103,0.6); }
.factor-item.f-bad b { color: #FF8A9E; }
/* итог */
.ais-verdict {
  background: linear-gradient(90deg, rgba(25,230,193,0.1), rgba(124,92,255,0.08));
  border-color: rgba(25,230,193,0.35);
  border-radius: 12px;
  padding: 12px 16px;
  font-size: 14px;
  box-shadow: 0 4px 20px rgba(25,230,193,0.08);
}
/* уровни SL/TP — цветные строки */
.lv-row {
  display: flex; align-items: center; gap: 10px;
  padding: 9px 12px; margin-bottom: 4px;
  border-radius: 10px; border: 1px solid transparent;
  transition: transform .2s, border-color .2s;
}
.lv-row:hover { transform: translateX(3px); }
.lv-row.lv-sl  { background: rgba(255,77,103,0.06);  border-color: rgba(255,77,103,0.25); }
.lv-row.lv-sl:hover  { border-color: rgba(255,77,103,0.55); }
.lv-row.lv-sl2 { background: rgba(255,138,92,0.05); border-color: rgba(255,138,92,0.22); }
.lv-row.lv-sl2:hover { border-color: rgba(255,138,92,0.5); }
.lv-row.lv-tp  { background: rgba(53,208,127,0.05); border-color: rgba(53,208,127,0.22); }
.lv-row.lv-tp:hover  { border-color: rgba(53,208,127,0.5); }
.lv-name { min-width: 62px; font-weight: 800; font-size: 12px; padding: 3px 8px; border-radius: 7px; text-align: center; }
.lv-name.lv-n-sl  { background: rgba(255,77,103,0.15); color: var(--danger); }
.lv-name.lv-n-sl2 { background: rgba(255,138,92,0.15); color: #FF8A5C; }
.lv-name.lv-n-tp  { background: rgba(53,208,127,0.15); color: var(--success); }
/* сценарии */
.scenario {
  border-radius: 12px;
  padding: 12px 16px;
  border-left-width: 4px;
  transition: transform .2s, box-shadow .2s;
}
.scenario:hover { transform: translateY(-2px); box-shadow: 0 10px 26px rgba(0,0,0,0.3); }
.scenario.pos { background: linear-gradient(135deg, rgba(53,208,127,0.1), var(--surface-2) 70%); }
.scenario.neu { background: linear-gradient(135deg, rgba(255,191,71,0.09), var(--surface-2) 70%); }
.scenario.neg { background: linear-gradient(135deg, rgba(255,77,103,0.1), var(--surface-2) 70%); }
.scenario .prob {
  float: none; display: inline-block;
  font-size: 12.5px; font-weight: 800; color: var(--text);
  background: rgba(255,255,255,0.06); border: 1px solid var(--border);
  border-radius: 999px; padding: 2px 10px; margin-bottom: 6px;
}


/* ============================================================
   V19 — редизайн формы «Анализ сделки» + стратегия Long/Short
   ============================================================ */
/* шапка формы */
.trade-form { position: relative; overflow: hidden; }
.tf-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.tf-title { font-size: 17px; font-weight: 800; letter-spacing: .01em; }
.tf-sub { font-size: 11.5px; color: var(--text-3); margin-top: 2px; }
.tf-side-badge {
  font-family: var(--font-mono); font-weight: 800; font-size: 12.5px; letter-spacing: 1.5px;
  padding: 7px 16px; border-radius: 999px; text-transform: uppercase;
  transition: all .2s;
}
.tf-side-badge.long { color: var(--success); background: rgba(53,208,127,0.12); border: 1px solid rgba(53,208,127,0.45); box-shadow: 0 0 16px rgba(53,208,127,0.18); }
.tf-side-badge.short { color: #FF8A9E; background: rgba(255,77,103,0.12); border: 1px solid rgba(255,77,103,0.45); box-shadow: 0 0 16px rgba(255,77,103,0.18); }

/* карточки направления Long/Short */
.side-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.side-card {
  display: flex; align-items: center; gap: 10px;
  background: var(--surface-2); border: 1px solid var(--border); border-radius: 14px;
  padding: 12px 14px; cursor: pointer; text-align: left; color: var(--text);
  transition: all .18s; position: relative;
}
.side-card:hover { border-color: rgba(255,255,255,0.2); transform: translateY(-1px); }
.side-card .sc-ico {
  width: 38px; height: 38px; border-radius: 11px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center; font-size: 15px; font-weight: 800;
}
.side-card .sc-ico.up { background: rgba(53,208,127,0.12); color: var(--success); }
.side-card .sc-ico.down { background: rgba(255,77,103,0.12); color: var(--danger); }
.side-card .sc-body { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.side-card .sc-body b { font-size: 13.5px; white-space: nowrap; }
.side-card .sc-body small { font-size: 11px; color: var(--text-3); line-height: 1.3; }
.side-card .sc-check {
  margin-left: auto; width: 20px; height: 20px; border-radius: 50%; flex-shrink: 0;
  border: 1.5px solid var(--border-strong);
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 800; color: transparent;
  transition: all .18s;
}
.side-card.active-long { border-color: rgba(53,208,127,0.55); background: linear-gradient(135deg, rgba(53,208,127,0.11), var(--surface-2) 85%); box-shadow: 0 0 20px rgba(53,208,127,0.12); }
.side-card.active-short { border-color: rgba(255,77,103,0.55); background: linear-gradient(135deg, rgba(255,77,103,0.11), var(--surface-2) 85%); box-shadow: 0 0 20px rgba(255,77,103,0.12); }
.side-card.active-long .sc-check, .side-card.active-short .sc-check { border-color: transparent; color: #0D1320; }
.side-card.active-long .sc-check { background: var(--success); }
.side-card.active-short .sc-check { background: var(--danger); }

/* разделитель секций */
.tf-divider {
  font-size: 10.5px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase;
  color: var(--text-3); margin: 4px 0 12px; display: flex; align-items: center; gap: 10px;
}
.tf-divider::after { content: ''; flex: 1; height: 1px; background: rgba(255,255,255,0.08); }

/* деньги: три колонки */
.form-row3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px; }
.form-row3 .form-group { margin-bottom: 16px; }

/* стоп-лосс: карточка с переключателем */
.stop-card {
  display: flex; align-items: center; gap: 14px;
  background: var(--surface-2); border: 1px solid var(--border); border-radius: 14px;
  padding: 13px 16px;
}
.stop-card .switch { transform: scale(.9); transform-origin: right center; }

/* кнопка запуска анализа */
.trade-run-btn {
  background: linear-gradient(135deg, #7C5CFF, #19E6C1) !important;
  border: none !important;
  font-size: 15px; font-weight: 800; letter-spacing: .02em;
  border-radius: 14px !important;
  box-shadow: 0 8px 24px rgba(124,92,255,0.35);
  transition: transform .15s, box-shadow .2s;
}
.trade-run-btn:hover { transform: translateY(-1px); box-shadow: 0 12px 32px rgba(124,92,255,0.45); }

/* сводка риска под плечом */
.lev-preview {
  display: flex; align-items: center; gap: 9px; flex-wrap: wrap;
  margin-top: 12px; padding: 12px 14px;
  background: linear-gradient(135deg, rgba(255,138,92,0.09), rgba(255,138,92,0.03));
  border: 1px solid rgba(255,138,92,0.24);
  border-radius: 12px;
  font-size: 12.5px; color: var(--text-2);
  animation: fadeSlide .3s ease;
}

/* ---------- стратегия входа Long/Short в анализе токена ---------- */
.strat-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.strat-card {
  background: var(--surface-2); border: 1px solid var(--border); border-radius: 14px;
  padding: 16px 18px; display: flex; flex-direction: column; gap: 12px;
}
.strat-card.strat-best { border-color: rgba(25,230,193,0.5); box-shadow: 0 0 24px rgba(25,230,193,0.12); }
.strat-head { display: flex; align-items: center; gap: 8px; font-size: 16.5px; font-weight: 800; flex-wrap: wrap; letter-spacing: .02em; }
.strat-head.long { color: var(--success); }
.strat-head.short { color: var(--danger); }
.strat-pill {
  font-size: 11.5px; font-weight: 800; padding: 3px 12px;
  border: 1px solid; border-radius: 999px; letter-spacing: .03em;
  background: rgba(255,255,255,0.04);
}
.strat-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.strat-list li { display: flex; align-items: flex-start; gap: 9px; font-size: 13.5px; color: var(--text); line-height: 1.5; }
.strat-list li i {
  font-style: normal; font-weight: 800; width: 17px; height: 17px; border-radius: 50%; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center; font-size: 10.5px; margin-top: 2px;
}
.strat-list li.ok i { background: rgba(53,208,127,0.18); color: var(--success); }
.strat-list li.bad i { background: rgba(255,77,103,0.18); color: var(--danger); }
.strat-plan {
  font-size: 13px; color: var(--text); line-height: 1.6;
  background: rgba(124,92,255,0.08); border: 1px solid rgba(124,92,255,0.25);
  border-radius: 10px; padding: 10px 13px;
}
.strat-plan-label {
  display: block; font-size: 10.5px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase;
  color: var(--primary); margin-bottom: 4px;
}
.strat-verdict {
  margin-top: 14px; font-size: 14px; color: var(--text); line-height: 1.55;
  background: rgba(25,230,193,0.07); border: 1px solid rgba(25,230,193,0.25);
  border-radius: 12px; padding: 12px 16px;
}
.strat-verdict b { color: var(--text); }
@media (max-width: 760px) { .strat-grid { grid-template-columns: 1fr; } }
@media (max-width: 640px) {
  .side-cards { grid-template-columns: 1fr; }
  .form-row3 { grid-template-columns: 1fr 1fr; }
  .tf-head { flex-direction: column; align-items: flex-start; }
}

/* ---------- слайдер-лупа по карте ликвидаций ---------- */
.scr-liq-slider {
  display: flex; align-items: center; gap: 14px;
  background: var(--surface-2); border: 1px solid var(--border); border-radius: 12px;
  padding: 10px 16px; margin-bottom: 14px;
}
.scr-liq-val {
  font-size: 12.5px !important; min-width: 190px; text-align: right;
  color: var(--text); white-space: nowrap;
}
#scrLiqSlider { flex: 1; }

/* ---------- анимация ожидания анализа токена ---------- */
.tk-loader { padding: 24px; }
.tk-loader-head { display: flex; align-items: center; gap: 16px; margin-bottom: 20px; }
.tk-loader-spin {
  width: 42px; height: 42px; border-radius: 50%; flex-shrink: 0;
  border: 3px solid rgba(25,230,193,0.15); border-top-color: var(--primary);
  animation: spin .8s linear infinite;
  box-shadow: 0 0 18px rgba(25,230,193,0.15);
}
.tk-loader-title { font-size: 16.5px; font-weight: 800; }
.tk-loader-title b { color: var(--primary); }
.tk-loader-sub { font-size: 12.5px; color: var(--text-3); margin-top: 3px; line-height: 1.4; }
.tk-loader-pct { font-size: 22px; opacity: .8; animation: pulseDot 1.2s ease-in-out infinite; }
@keyframes pulseDot { 0%,100% { opacity: .35; } 50% { opacity: 1; } }
.tk-loader-body { display: flex; gap: 22px; margin-bottom: 20px; }
.tk-loader-ring { flex-shrink: 0; display: flex; align-items: center; justify-content: center; }
.tk-loader-bars { flex: 1; display: flex; flex-direction: column; gap: 12px; justify-content: center; }
.tk-lb { display: grid; grid-template-columns: 34% 1fr 9%; align-items: center; gap: 10px; }
.tk-lb-track { height: 8px; border-radius: 6px; background: rgba(255,255,255,0.05); overflow: hidden; position: relative; }
.tk-lb-fill {
  position: absolute; inset: 0; width: 40%;
  background: linear-gradient(90deg, transparent, rgba(25,230,193,0.55), transparent);
  animation: lbSlide 1.3s ease-in-out infinite;
}
@keyframes lbSlide { from { transform: translateX(-120%); } to { transform: translateX(350%); } }
.tk-loader-foot { display: flex; flex-direction: column; gap: 10px; }

/* ============================================================
   V20 — лого, меню, верхние кнопки, блок Hyperliquid
   ============================================================ */
/* --- лого с подсветкой --- */
.logo-mark {
  position: relative;
  background: linear-gradient(135deg, #19E6C1, #7C5CFF);
  box-shadow: 0 0 20px rgba(25,230,193,0.45), 0 0 42px rgba(124,92,255,0.35), inset 0 0 0 1px rgba(255,255,255,0.25);
  animation: logoGlow 2.6s ease-in-out infinite;
}
@keyframes logoGlow {
  0%, 100% { box-shadow: 0 0 16px rgba(25,230,193,0.35), 0 0 34px rgba(124,92,255,0.25), inset 0 0 0 1px rgba(255,255,255,0.2); }
  50%      { box-shadow: 0 0 26px rgba(25,230,193,0.6), 0 0 54px rgba(124,92,255,0.45), inset 0 0 0 1px rgba(255,255,255,0.3); }
}
.logo-mark .lm-pulse {
  position: absolute; inset: -4px; border-radius: 15px;
  border: 1.5px solid rgba(25,230,193,0.55);
  animation: lmPulse 2.2s cubic-bezier(.4,0,.6,1) infinite;
  pointer-events: none;
}
@keyframes lmPulse {
  0%   { transform: scale(.92); opacity: .9; }
  70%  { transform: scale(1.18); opacity: 0; }
  100% { transform: scale(1.18); opacity: 0; }
}
.logo-name { font-weight: 800; font-size: 16px; letter-spacing: .03em; }
.logo-name span {
  background: linear-gradient(90deg, #19E6C1, #7C5CFF);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
  filter: drop-shadow(0 0 10px rgba(25,230,193,0.55));
  font-weight: 900;
}
.logo-sub { letter-spacing: .18em; }

/* --- меню слева --- */
.nav-item { position: relative; }
.nav-item svg {
  width: 34px; height: 34px; padding: 7px;
  border-radius: 9px; background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.07);
  transition: all .2s;
}
.nav-item:hover svg { background: rgba(25,230,193,0.12); border-color: rgba(25,230,193,0.35); }
.nav-item.active svg {
  background: linear-gradient(135deg, rgba(25,230,193,0.18), rgba(124,92,255,0.18));
  border-color: rgba(25,230,193,0.5);
  box-shadow: 0 0 14px rgba(25,230,193,0.3);
}
.nav-item.active {
  background: linear-gradient(90deg, rgba(25,230,193,0.10), rgba(124,92,255,0.06));
  border-color: rgba(25,230,193,0.28);
  box-shadow: inset 0 0 26px rgba(25,230,193,0.06), 0 2px 14px rgba(0,0,0,0.25);
}
.nav-item.active::after {
  height: 65%;
  box-shadow: 0 0 12px rgba(25,230,193,0.7);
}

/* --- кнопки сверху (topbar) --- */
.topbar-right .btn {
  border-radius: 11px;
  background: rgba(255,255,255,0.045);
  border: 1px solid rgba(255,255,255,0.09);
  backdrop-filter: blur(6px);
}
.topbar-right .btn:hover {
  border-color: rgba(25,230,193,0.45);
  background: linear-gradient(135deg, rgba(25,230,193,0.12), rgba(124,92,255,0.12));
  box-shadow: 0 4px 16px rgba(25,230,193,0.15);
}
.topbar-right .btn svg { transition: transform .2s; }
.topbar-right .btn:hover svg { transform: translateY(-1px) scale(1.08); }
.topbar-right .icon-btn {
  border-radius: 11px;
  background: rgba(255,255,255,0.045);
  border: 1px solid rgba(255,255,255,0.09);
  transition: all .2s;
}
.topbar-right .icon-btn:hover {
  border-color: rgba(124,92,255,0.5);
  background: linear-gradient(135deg, rgba(124,92,255,0.14), rgba(25,230,193,0.1));
  box-shadow: 0 4px 16px rgba(124,92,255,0.2);
}
.live-pill {
  background: linear-gradient(135deg, rgba(25,230,193,0.12), rgba(124,92,255,0.08));
  border: 1px solid rgba(25,230,193,0.3);
  border-radius: 999px;
}

/* --- блок «Крупнейшие открытые позиции» --- */
.hl-card {
  background: linear-gradient(160deg, rgba(124,92,255,0.07), var(--surface-1) 45%);
  border: 1px solid rgba(124,92,255,0.28);
  box-shadow: 0 8px 30px rgba(124,92,255,0.08);
}
.hl-card-title { font-size: 15px; }
.hl-dot {
  box-shadow: 0 0 12px rgba(124,92,255,0.8);
  animation: hlDot 1.8s ease-in-out infinite;
}
@keyframes hlDot { 0%,100% { opacity: .75; } 50% { opacity: 1; transform: scale(1.25); } }
.hl-coins .chip {
  border-radius: 999px;
  font-weight: 700;
}
.hl-coins .chip.active {
  background: linear-gradient(135deg, #7C5CFF, #19E6C1);
  color: #06110E;
  border-color: transparent;
  box-shadow: 0 2px 12px rgba(124,92,255,0.45);
}
.hl-coins .chip[data-hlmin].active {
  background: linear-gradient(135deg, rgba(124,92,255,0.25), rgba(25,230,193,0.2));
  color: var(--text); border-color: rgba(124,92,255,0.5);
}
.hl-wallet {
  font-family: var(--font-mono);
  font-size: 12px; font-weight: 700;
  color: var(--primary);
  text-decoration: none;
  background: rgba(25,230,193,0.08);
  border: 1px solid rgba(25,230,193,0.25);
  border-radius: 999px;
  padding: 3px 10px;
  display: inline-flex; align-items: center; gap: 4px;
  transition: all .18s;
  white-space: nowrap;
}
.hl-wallet:hover {
  background: rgba(25,230,193,0.18);
  border-color: rgba(25,230,193,0.6);
  box-shadow: 0 0 14px rgba(25,230,193,0.35);
  transform: translateY(-1px);
}
#scrHlPos tr:hover { background: rgba(124,92,255,0.06); }

/* ============ V21 — hero-шапки разделов, живая лента теневого рынка, push китов ============ */
.view-hero {
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
  padding: 15px 18px; border-radius: 16px; margin-bottom: 18px;
  background: linear-gradient(120deg, rgba(25,230,193,.09), rgba(124,92,255,.09) 60%, rgba(255,191,71,.05));
  border: 1px solid rgba(25,230,193,.20);
  box-shadow: inset 0 0 34px rgba(25,230,193,.05), 0 8px 28px rgba(0,0,0,.28);
}
.view-hero .vh-ico {
  width: 46px; height: 46px; border-radius: 13px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center; font-size: 22px;
  background: linear-gradient(135deg, rgba(25,230,193,.16), rgba(124,92,255,.16));
  border: 1px solid rgba(25,230,193,.4);
  box-shadow: 0 0 18px rgba(25,230,193,.28);
}
.view-hero h2 {
  font-family: var(--font-display); font-size: 19px; font-weight: 700; margin: 0;
  background: linear-gradient(90deg, #fff 25%, #7CF5E3 70%, #19E6C1);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
}
.view-hero .sub { font-size: 12.5px; color: var(--text-3); }
.view-hero .shadow-kicker { font-size: 10px; letter-spacing: 2px; color: #19E6C1; margin-bottom: 2px; }
@media (max-width: 720px) { .view-hero { padding: 12px 14px; } .view-hero h2 { font-size: 17px; } }

/* --- теневая лента: инстаграм-режим --- */
.shadow-live {
  display: inline-flex; align-items: center; gap: 6px; margin-left: auto;
  font-family: var(--font-mono); font-size: 11px; color: var(--text-2);
  background: rgba(25,230,193,0.08); border: 1px solid rgba(25,230,193,0.22);
  border-radius: 999px; padding: 4px 12px; white-space: nowrap;
}
.shadow-live .sl-dot { width: 7px; height: 7px; border-radius: 50%; background: #19E6C1; animation: hlDot 1.6s infinite; }
.sh-card.sh-new {
  border-color: rgba(25,230,193,.55);
  box-shadow: 0 0 20px rgba(25,230,193,.14);
  animation: shSlideIn .5s ease;
}
.sh-card.sh-new::before { background: #19E6C1; box-shadow: 0 0 12px #19E6C1; }
.sh-badge-new {
  position: absolute; top: -9px; right: 12px; z-index: 2;
  background: linear-gradient(135deg, #19E6C1, #7C5CFF); color: #04120E;
  font-family: var(--font-mono); font-size: 10px; font-weight: 800; letter-spacing: .6px;
  padding: 2px 9px; border-radius: 8px; box-shadow: 0 2px 10px rgba(25,230,193,.4);
  animation: shPulse 2s infinite;
}
.sh-card.sh-seen { opacity: .82; }
@keyframes shSlideIn { 0% { opacity: 0; transform: translateY(-14px) scale(.985); } 100% { opacity: 1; transform: none; } }
@keyframes shPulse { 0%,100% { box-shadow: 0 2px 10px rgba(25,230,193,.4); } 50% { box-shadow: 0 2px 18px rgba(25,230,193,.8); } }
.sh-card .sh-upd { font-size: 10px; color: var(--text-3); margin-left: 4px; }
.sh-feed-more {
  text-align: center; padding: 10px 0 4px;
  font-size: 12px; color: var(--text-3);
}

/* --- активные сигналы: шкала критичности + клик на радар --- */
.threat-card.threat-click { cursor: pointer; transition: all .18s; }
.threat-card.threat-click:hover { border-color: rgba(124,92,255,.55); box-shadow: 0 6px 22px rgba(0,0,0,.4); transform: translateY(-1px); }
.threat-card.threat-click .threat-more { color: var(--primary); font-size: 12px; font-weight: 700; margin-top: 8px; display: inline-flex; align-items: center; gap: 4px; transition: gap .18s, color .18s; }
.threat-card.threat-click:hover .threat-more { color: #fff; gap: 8px; }
.threat-bar { margin-left: auto; width: 44px; height: 5px; border-radius: 3px; background: rgba(255,255,255,.08); overflow: hidden; flex-shrink: 0; }
.threat-bar-fill { display: block; height: 100%; border-radius: 3px; }
.threat-more { margin-top: 8px; font-size: 11px; color: var(--primary); font-weight: 700; }

/* V22: отступы между ссылками соцсетей в блоке анализа токена */
.tn-row .src-link { margin-right: 8px; margin-bottom: 4px; display: inline-block; }

/* V25: кнопка «Тарифы» в шапке — золотая подсветка */
.btn-gold {
  background: linear-gradient(135deg, #ffd54d, #ffb300) !important;
  color: #1a1300 !important;
  font-weight: 800 !important;
  border: none !important;
  box-shadow: 0 0 0 1px rgba(255, 200, 0, .35), 0 0 14px rgba(255, 200, 0, .45), inset 0 1px 0 rgba(255, 255, 255, .35);
  animation: goldPulse 2.4s ease-in-out infinite;
}
.btn-gold:hover {
  filter: brightness(1.08);
  box-shadow: 0 0 0 1px rgba(255, 210, 0, .5), 0 0 22px rgba(255, 200, 0, .65), inset 0 1px 0 rgba(255, 255, 255, .4);
  transform: translateY(-1px);
}
@keyframes goldPulse {
  0%, 100% { box-shadow: 0 0 0 1px rgba(255, 200, 0, .35), 0 0 10px rgba(255, 200, 0, .35), inset 0 1px 0 rgba(255, 255, 255, .35); }
  50% { box-shadow: 0 0 0 1px rgba(255, 210, 0, .5), 0 0 20px rgba(255, 200, 0, .6), inset 0 1px 0 rgba(255, 255, 255, .4); }
}

/* V32: виджеты Теневого рынка */
.shadow-grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
@media (max-width:900px){.shadow-grid2{grid-template-columns:1fr}}
.vw-track{display:inline-block;width:52px;height:6px;border-radius:4px;background:var(--border);vertical-align:middle;margin-right:6px;overflow:hidden}
.vw-fill{display:block;height:100%;border-radius:4px}

/* ===== V51: Копитрейд Полимаркет ===== */
.pm{--pm-bg:transparent;--pm-card:var(--surface-2);--pm-line:var(--border);--pm-t2:var(--text-2);--pm-t3:var(--text-3);--pm-grn:var(--success);--pm-red:var(--danger);--pm-warn:var(--warning);--pm-info:var(--secondary);--pm-acc:var(--primary);font-family:var(--font-body);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);padding:20px;margin-top:18px;font-weight:400}
.pm *{box-sizing:border-box}
.pm-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.pm-head-left{display:flex;align-items:center;gap:12px}
.pm-title{font-size:20px;font-weight:500;color:#fff;font-family:'Manrope',sans-serif}
.pm-live{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--pm-grn);background:rgba(34,197,94,.1);border:1px solid rgba(34,197,94,.25);padding:3px 10px;border-radius:20px}
.pm-dot{width:6px;height:6px;border-radius:50%;background:var(--pm-grn);animation:pmPulse 1.6s infinite}
@keyframes pmPulse{0%,100%{box-shadow:0 0 0 0 rgba(34,197,94,.5)}50%{box-shadow:0 0 0 5px rgba(34,197,94,0)}}
.pm-upd{font-size:12px;color:var(--pm-t3)}
.pm-sub{font-size:13px;color:var(--pm-t2);margin-top:6px}
.pm-tabs{display:flex;gap:2px;background:#1A1A1A;border-radius:10px;padding:3px;margin-top:16px;width:fit-content;max-width:100%;flex-wrap:wrap}
.pm-tab{border:0;background:transparent;color:var(--pm-t2);font-size:13px;font-weight:500;padding:8px 18px;border-radius:8px;cursor:pointer;display:flex;align-items:center;gap:6px;font-family:inherit}
.pm-tab.active{background:#fff;color:#000;box-shadow:0 1px 4px rgba(0,0,0,.3)}
.pm-badge{background:var(--pm-red);color:#fff;font-size:10px;font-weight:500;border-radius:10px;padding:1px 6px;line-height:1.5}
.pm-pane{display:none;margin-top:18px}
.pm-pane.active{display:block}
.pm-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
@media(max-width:900px){.pm-stats{grid-template-columns:repeat(2,1fr)}}
.pm-stat{background:var(--pm-card);border:1px solid var(--pm-line);border-radius:10px;padding:12px 14px}
.pm-stat-label{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--pm-t3)}
.pm-stat-val{font-size:22px;font-weight:500;color:#fff;font-variant-numeric:tabular-nums;margin-top:4px}
.pm-stat-delta{font-size:11px;margin-top:2px}
.pm-d-up{color:var(--pm-grn)}.pm-d-dn{color:var(--pm-red)}
.pm-toolbar{display:flex;align-items:center;gap:10px;margin:16px 0;flex-wrap:wrap}
.pm-search{display:flex;align-items:center;gap:8px;background:var(--pm-card);border:1px solid var(--pm-line);border-radius:8px;padding:0 12px;max-width:260px;flex:1;min-width:180px}
.pm-search svg{width:15px;height:15px;color:var(--pm-t3);flex:none}
.pm-search input{background:transparent;border:0;outline:0;color:#fff;font-size:13px;padding:9px 0;width:100%;font-family:inherit}
.pm-chips{display:flex;gap:8px;flex-wrap:wrap}
.pm-chip{display:flex;align-items:center;gap:6px;background:var(--pm-card);border:1px solid var(--pm-line);border-radius:8px;color:var(--pm-t2);font-size:12px;font-weight:500;padding:7px 12px;cursor:pointer;font-family:inherit}
.pm-chip.active{background:var(--primary);color:#04121B;border-color:var(--primary)}
.pm-chip .pm-dot{width:5px;height:5px}
.pm-filters{display:flex;align-items:center;gap:6px;background:var(--pm-card);border:1px solid var(--pm-line);border-radius:8px;color:var(--pm-t2);font-size:12px;font-weight:500;padding:7px 12px;cursor:pointer;font-family:inherit}
.pm-filters svg{width:15px;height:15px}
.pm-tblwrap{overflow-x:auto;border:1px solid var(--pm-line);border-radius:10px}
.pm-table{width:100%;border-collapse:collapse;min-width:900px;background:var(--pm-card)}
.pm-table th{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--pm-t3);font-weight:500;text-align:left;padding:10px 12px;border-bottom:1px solid var(--pm-line);white-space:nowrap}
.pm-table td{font-size:13px;color:#fff;padding:10px 12px;border-bottom:1px solid var(--pm-line);white-space:nowrap}
.pm-table tbody tr:last-child td{border-bottom:0}
.pm-table tbody tr:hover{background:var(--surface-3)}
.pm-table .num{text-align:right;font-variant-numeric:tabular-nums}
.pm-rank{font-size:12px;color:var(--pm-t3);font-variant-numeric:tabular-nums}
.pm-rank.gold{color:#D4A017;font-weight:500}.pm-rank.silver{color:#A0A0A0}.pm-rank.bronze{color:#CD7F32}
.pm-whale{display:flex;align-items:center;gap:10px}
.pm-ava{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:500;color:#fff;flex:none}
.pm-wname{font-size:13px;color:#fff;font-weight:500;line-height:1.2}
.pm-waddr{font-size:11px;color:var(--pm-t3);font-family:'JetBrains Mono',monospace;line-height:1.2;max-width:120px;overflow:hidden;text-overflow:ellipsis}
.pm-pnl{font-weight:500;font-variant-numeric:tabular-nums}.pm-pnl.up{color:var(--pm-grn)}.pm-pnl.dn{color:var(--pm-red)}
.pm-wr{font-variant-numeric:tabular-nums}.pm-wr.g{color:var(--pm-grn)}.pm-wr.y{color:var(--pm-warn)}.pm-wr.r{color:var(--pm-red)}
.pm-risk{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--pm-t2)}
.pm-risk .pm-dot{width:5px;height:5px;animation:none}.pm-risk.low .pm-dot{background:var(--pm-grn)}.pm-risk.mid .pm-dot{background:var(--pm-warn)}.pm-risk.hi .pm-dot{background:var(--pm-red)}
.pm-tag{font-size:11px;font-weight:500;padding:2px 8px;border-radius:6px;display:inline-block}
.pm-tag.smart{background:rgba(34,197,94,.1);color:var(--pm-grn)}.pm-tag.contr{background:rgba(99,102,241,.14);color:#A5B4FC}.pm-tag.mom{background:rgba(59,130,246,.12);color:#93C5FD}.pm-tag.ins{background:rgba(245,158,11,.12);color:var(--pm-warn)}.pm-tag.new{background:rgba(239,68,68,.12);color:var(--pm-red)}.pm-tag.pol{background:rgba(99,102,241,.14);color:#A5B4FC}.pm-tag.cr{background:rgba(34,197,94,.1);color:var(--pm-grn)}
.pm-ai{font-size:12px;font-weight:500;padding:2px 8px;border-radius:6px;font-variant-numeric:tabular-nums}
.pm-ai.g{background:rgba(34,197,94,.12);color:var(--pm-grn)}.pm-ai.y{background:rgba(245,158,11,.12);color:var(--pm-warn)}.pm-ai.r{background:rgba(239,68,68,.12);color:var(--pm-red)}
.pm-acts{display:flex;gap:6px;opacity:0;transition:opacity .15s}
.pm-table tr:hover .pm-acts{opacity:1}
.pm-act{width:26px;height:26px;display:flex;align-items:center;justify-content:center;border:1px solid var(--pm-line);border-radius:6px;background:transparent;color:var(--pm-t2);cursor:pointer}
.pm-act:hover{color:#fff;border-color:#333}
.pm-act svg{width:13px;height:13px}
.pm-feeditem{background:var(--pm-card);border:1px solid var(--pm-line);border-radius:10px;padding:14px;margin-bottom:10px}
.pm-fh{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.pm-fh .pm-ava{width:26px;height:26px;font-size:10px}
.pm-ftime{margin-left:auto;font-size:11px;color:var(--pm-t3)}
.pm-fbody{font-size:13px;color:#fff;line-height:1.5}
.pm-fbody b{font-weight:500}
.pm-yes{color:var(--pm-grn);font-weight:500}.pm-no{color:var(--pm-red);font-weight:500}
.pm-fmeta{display:flex;gap:16px;flex-wrap:wrap;font-size:11px;color:var(--pm-t2);margin-top:10px;padding-top:10px;border-top:1px solid var(--pm-line)}
.pm-fmeta b{font-weight:500;color:#fff;font-variant-numeric:tabular-nums}
.pm-ai-block{background:var(--pm-card);border-radius:6px;border-left:2px solid var(--pm-info);padding:10px 12px;font-size:12px;color:var(--pm-t2);margin-top:10px;line-height:1.5}
.pm-ai-rec{font-weight:500}
.pm-ai-rec.buy{color:var(--pm-grn)}.pm-ai-rec.avoid{color:var(--pm-red)}
.pm-copybox{margin-top:12px;padding-top:12px;border-top:1px dashed var(--pm-line)}
.pm-amtlabel{font-size:11px;color:var(--pm-t2);margin-bottom:6px}
.pm-amtinput{background:#1A1A1A;border:1px solid var(--pm-line);border-radius:8px;color:#fff;font-size:14px;padding:8px 12px;max-width:140px;font-family:inherit;outline:0}
.pm-amtinput:focus{border-color:#333}
.pm-copyres{background:rgba(34,197,94,.06);border:1px solid rgba(34,197,94,.15);border-radius:6px;padding:8px 10px;margin-top:8px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.pm-copyres b{font-size:16px;color:var(--pm-grn);font-weight:500;font-variant-numeric:tabular-nums}
.pm-copyres span{font-size:11px;color:var(--pm-t2);margin-left:auto}
.pm-copybtns{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.pm-btn-primary{background:#fff;color:#000;border:0;border-radius:8px;font-size:13px;font-weight:500;padding:9px 18px;cursor:pointer;font-family:inherit}
.pm-btn-primary:hover{filter:brightness(.92)}
.pm-btn-ghost{background:transparent;color:var(--pm-t2);border:1px solid var(--pm-line);border-radius:8px;font-size:13px;font-weight:500;padding:9px 18px;cursor:pointer;font-family:inherit}
.pm-btn-ghost:hover{color:#fff}
.pm-modal{background:var(--pm-card);border:1px solid var(--pm-line);border-radius:14px;max-width:400px}
.pm-modal h3{font-family:'Manrope',sans-serif;font-size:17px;font-weight:500;color:#fff;margin-bottom:16px}
.pm-mrows{display:grid;gap:8px;margin-bottom:14px}
.pm-mrow{display:flex;justify-content:space-between;gap:10px;font-size:13px}
.pm-mrow .lbl{color:var(--pm-t2)}.pm-mrow .val{color:#fff;font-weight:500;text-align:right}
.pm-mrow .val.up{color:var(--pm-grn)}.pm-mrow .val.dn{color:var(--pm-red)}
.pm-amtbox{background:#1A1A1A;border-radius:10px;padding:12px;margin-bottom:14px}
.pm-mactions{display:flex;gap:10px}
.pm-mactions .pm-btn-primary,.pm-mactions .pm-btn-ghost{flex:1}
.pm-warn{display:flex;gap:8px;align-items:flex-start;background:rgba(245,158,11,.08);border:1px solid rgba(245,158,11,.25);border-radius:8px;padding:10px 12px;font-size:12px;color:var(--pm-warn);margin-bottom:14px;line-height:1.5}
.pm-warn svg{width:16px;height:16px;flex:none;margin-top:1px}
.pm-empty{text-align:center;padding:60px 20px;border:1px dashed var(--pm-line);border-radius:10px}
.pm-empty-title{font-size:15px;font-weight:500;color:#fff}
.pm-empty-sub{font-size:13px;color:var(--pm-t2);margin-top:4px}
.pm-status{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--pm-t2)}
.pm-status .pm-dot{width:6px;height:6px;animation:none}
.pm-status.on .pm-dot{background:var(--pm-grn)}.pm-status.off .pm-dot{background:#4B4B4B}
.pm-trig{font-size:13px;color:#fff;font-weight:500;line-height:1.3}
.pm-trig-sub{font-size:11px;color:var(--pm-t3);font-weight:400;margin-top:2px}

/* V52: Копитрейд — live-индикатор меню */
.pm-nav-badge{display:inline-flex;align-items:center;gap:4px;font-variant-numeric:tabular-nums}
.pm-nav-dot{width:6px;height:6px;border-radius:50%;background:#4ADE80;display:inline-block;animation:pmPulse 1.6s infinite;flex:none}

/* V53: фолбэк-иконка монеты + свечной скринер */
.coin-ico{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#0B0E1A;font-weight:800;font-size:13px;flex:none;text-transform:uppercase}
#scr-candle .pm-wr{font-weight:700}

.scr-candle-row{cursor:pointer;transition:background .15s}
.scr-candle-row:hover{background:rgba(249,115,22,.06)}

.pm-stat{cursor:pointer;transition:border-color .15s,background .15s}
.pm-stat:hover{border-color:var(--primary);background:var(--surface-2)}
.pm-row{cursor:pointer}
.pm-feeditem{cursor:pointer;transition:border-color .15s,background .15s}
.pm-feeditem:hover{border-color:var(--primary);background:var(--surface-2)}
.pm-ava{box-shadow:0 0 0 2px var(--surface-3)}

/* ===== Карточка кита (V58) ===== */
.pm-wmodal{max-width:520px}
.pm-whead{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--pm-line)}
.pm-wava{width:46px;height:46px;font-size:16px;box-shadow:0 0 0 3px var(--surface-3),0 4px 14px rgba(0,0,0,.45)}
.pm-wid{flex:1;min-width:0}
.pm-wid .pm-wname{font-size:16px;font-weight:600}
.pm-wtag{font-size:11px;padding:4px 10px;border-radius:999px;font-weight:500;white-space:nowrap}
.pm-wtag.on{background:rgba(53,208,127,.12);color:#35D07F}
.pm-wtag.off{background:rgba(154,168,188,.12);color:var(--text-3)}
.pm-wstats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}
.pm-wstat{background:var(--pm-card);border:1px solid var(--pm-line);border-radius:10px;padding:9px 12px}
.pm-wstat-l{font-size:10.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--pm-t3)}
.pm-wstat-v{font-size:16px;font-weight:600;color:#fff;margin-top:2px;font-variant-numeric:tabular-nums}
.pm-wstat-v.g{color:#35D07F}.pm-wstat-v.y{color:#FFBF47}.pm-wstat-v.r,.pm-wstat-v.dn{color:#FF4D67}.pm-wstat-v.up{color:#35D07F}
.pm-wdeal{background:var(--pm-card);border:1px solid var(--pm-line);border-radius:12px;padding:12px 14px;margin-bottom:16px}
.pm-wd-title{font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--pm-t3);margin-bottom:8px}
.pm-wd-row{display:flex;justify-content:space-between;align-items:center;padding:5px 0;font-size:13px;color:var(--pm-t2);border-bottom:1px dashed rgba(255,255,255,.05)}
.pm-wd-row:last-child{border-bottom:0}
.pm-wd-row b{color:#fff;font-weight:600}
.pm-wd-row .mono{font-family:'JetBrains Mono',monospace}
.pm-wmodal .pm-mactions{display:flex;gap:8px;flex-wrap:wrap}
.pm-wmodal .pm-mactions .pm-btn-primary{flex:1.2}
.pm-wmodal .pm-mactions .pm-btn-ghost{flex:1}
/* Полировка вкладок */
.pm-tabs{display:flex;gap:6px;background:var(--surface-2);border:1px solid var(--border);padding:5px;border-radius:12px;margin:14px 0 4px;flex-wrap:wrap}
.pm-tab{background:transparent;border:0;color:var(--text-3);font-size:12.5px;font-weight:600;padding:8px 14px;border-radius:9px;cursor:pointer;font-family:var(--font-body);display:flex;align-items:center;gap:6px;transition:background .15s,color .15s}
.pm-tab:hover{color:var(--text)}
.pm-tab.active{background:var(--primary);color:#04121B}
.pm-badge{background:var(--danger);color:#fff;border-radius:999px;font-size:10px;padding:1px 6px;font-weight:700}
.pm-feeditem{border:1px solid var(--pm-line);border-radius:14px;padding:12px 14px;margin-bottom:8px;background:var(--pm-card);transition:border-color .15s,transform .15s}
.pm-feeditem:hover{border-color:var(--primary);transform:translateY(-1px)}
.pm-table th{background:var(--surface-2)}
.pm-tblwrap{box-shadow:0 6px 24px rgba(0,0,0,.25)}
.pm-empty{border:1px dashed var(--border-strong);border-radius:14px;padding:28px;text-align:center}
/* ===== Свечная модалка V59 ===== */
.candle-modal{max-width:620px;width:92vw}
.candle-title{font-size:17px;margin-bottom:12px}
.candle-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;font-size:13.5px}
.candle-chart-box{background:linear-gradient(180deg,rgba(13,22,33,.7),rgba(8,14,22,.9));border:1px solid var(--border);border-radius:14px;padding:10px 8px 8px;margin-bottom:14px;overflow:hidden}
.candle-svg{width:100%;height:150px;display:block}
.candle-empty{color:var(--text-3);font-size:12px;text-align:center;padding:40px 0}
.candle-why{background:rgba(125,211,252,.06);border:1px solid rgba(125,211,252,.18);border-radius:10px;padding:9px 12px;font-size:12px;line-height:1.55;color:var(--text-2);margin-top:12px}
.candle-why b{color:#7DD3FC}
.candle-actions{display:flex;gap:10px;margin-top:14px}
/* ===== Сделки кита в модалке V61 ===== */
.pm-wtrades-title{font-size:12px;font-weight:700;color:var(--text-2);margin:16px 0 8px;display:flex;align-items:center;gap:8px}
.pm-wtrades-src{font-weight:500;color:var(--text-3);font-size:10.5px}
.pm-wtrades{max-height:240px;overflow-y:auto;display:flex;flex-direction:column;gap:6px;padding-right:2px}
.pm-wtr{border:1px solid var(--border);border-radius:10px;padding:8px 10px;cursor:pointer;transition:border-color .15s ease,background .15s ease;background:rgba(255,255,255,.015)}
.pm-wtr:hover{border-color:var(--primary);background:rgba(34,211,238,.05)}
.pm-wtr-top{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px}
.pm-wtr-top b{font-size:11.5px}
.pm-wtr-mk{font-size:11px;color:var(--text-2);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pm-wtr-t{font-size:10.5px;color:var(--text-3);margin-top:2px}
.pm-wmodal{max-width:480px}
.cbtn{border:0;border-radius:12px;padding:11px 16px;font-size:13px;font-weight:700;cursor:pointer;font-family:var(--font-body);transition:transform .12s ease,box-shadow .15s ease,filter .15s ease;position:relative;overflow:hidden}
.cbtn:active{transform:scale(.96)}
.cbtn-primary{flex:1.4;background:linear-gradient(135deg,#22d3ee,#6366f1);color:#04121B;box-shadow:0 4px 16px rgba(99,102,241,.35);animation:cbtnPulse 2.6s infinite}
.cbtn-primary:hover{filter:brightness(1.12);transform:translateY(-1px);box-shadow:0 8px 22px rgba(99,102,241,.5)}
.cbtn-ghost{flex:1;background:var(--surface-2);color:var(--text-2);border:1px solid var(--border-strong)}
.cbtn-ghost:hover{color:var(--text);border-color:var(--primary);transform:translateY(-1px)}
@keyframes cbtnPulse{0%,100%{box-shadow:0 4px 16px rgba(99,102,241,.35)}50%{box-shadow:0 4px 24px rgba(34,211,238,.55)}}


/* ============================================================
   КОПИТРЕЙД POLYMARKET V40 — переделан с нуля, стиль сайта
   ============================================================ */
#view-copytrade{--ct-acc:#22D3EE;--ct-acc2:#6366F1;--ct-grn:#35D07F;--ct-red:#FF4D67;--ct-yel:#FBBF24;--ct-t2:#B7C2D3;--ct-t3:#9AA8BC}
#view-copytrade .ct{display:flex;flex-direction:column;gap:14px;font-family:var(--font-body)}
.ct-hero{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;background:linear-gradient(135deg,rgba(34,211,238,.12),rgba(99,102,241,.14) 60%,rgba(124,92,255,.08));border:1px solid rgba(124,92,255,.25);border-radius:16px;padding:18px 20px}
.ct-title{font-size:21px;font-weight:700;letter-spacing:.2px;color:var(--text);margin:0;display:flex;align-items:center;gap:10px}
.ct-sub{font-size:12.5px;color:var(--ct-t2);margin-top:4px}
.ct-hero-r{display:flex;flex-direction:column;gap:6px;align-items:flex-end}
.ct-live{font-size:12px;color:var(--ct-t2);display:flex;align-items:center;gap:7px;background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:20px;padding:5px 12px}
.ct-dot{width:7px;height:7px;border-radius:50%;background:#64748B;display:inline-block;flex:none}
.ct-dot-on{background:#4ADE80;box-shadow:0 0 8px #4ADE80}
.ct-dot-warn{background:#F59E0B}
.ct-quota{font-size:11.5px;color:var(--ct-t2);background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:20px;padding:4px 12px}
.ct-quota-warn{color:#FBBF24;border-color:rgba(251,191,36,.4)}
.ct-tabs{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ct-tab{background:var(--surface-2);border:1px solid var(--border-strong);color:var(--ct-t2);border-radius:12px;padding:9px 16px;font-size:13px;font-weight:600;cursor:pointer;font-family:var(--font-body);transition:all .15s ease;display:flex;align-items:center;gap:7px}
.ct-tab:hover{border-color:var(--ct-acc);color:var(--text)}
.ct-tab.active{background:linear-gradient(135deg,rgba(34,211,238,.18),rgba(99,102,241,.22));border-color:rgba(99,102,241,.55);color:#EAF0F8}
.ct-tab.ct-check{margin-left:auto;background:linear-gradient(135deg,#22d3ee,#6366f1);color:#04121B;border:0;font-weight:700;box-shadow:0 4px 14px rgba(99,102,241,.35)}
.ct-tab.ct-check:disabled{opacity:.6;cursor:wait}
.ct-badge{min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:linear-gradient(135deg,#22d3ee,#6366f1);color:#04121B;font-size:10.5px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.ct-pane{display:none;flex-direction:column;gap:12px}
.ct-pane.active{display:flex;animation:ctFade .2s ease}
@keyframes ctFade{from{opacity:0;transform:translateY(4px)}to{opacity:1}}
.ct-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}
.ct-stat{background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--border-strong);border-radius:14px;padding:12px 14px;cursor:pointer;transition:border-color .15s}
.ct-stat:hover{border-color:var(--ct-acc)}
.ct-stat-l{font-size:11px;color:var(--ct-t3);text-transform:uppercase;letter-spacing:.5px}
.ct-stat-v{font-size:20px;font-weight:700;color:var(--text);margin:3px 0}
.ct-stat-d{font-size:11px;font-weight:600}
.ct-stat-d.up{color:var(--ct-grn)}.ct-stat-d.dn{color:var(--ct-red)}
.ct-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;position:relative}
.ct-search{display:flex;align-items:center;gap:8px;background:var(--surface-2);border:1px solid var(--border-strong);border-radius:12px;padding:8px 12px;flex:1;min-width:200px;max-width:340px}
.ct-search svg{width:15px;height:15px;color:var(--ct-t3);flex:none}
.ct-search input{background:none;border:0;outline:0;color:var(--text);font-size:13px;font-family:var(--font-body);width:100%}
.ct-chips{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.ct-chip{background:var(--surface-2);border:1px solid var(--border-strong);color:var(--ct-t2);border-radius:20px;padding:6px 13px;font-size:12px;cursor:pointer;font-family:var(--font-body);transition:all .15s;display:flex;align-items:center;gap:6px}
.ct-chip:hover{color:var(--text);border-color:var(--ct-acc)}
.ct-chip.active{background:rgba(34,211,238,.14);border-color:var(--ct-acc);color:#7DD3FC}
.ct-filters{display:flex;align-items:center;gap:7px;background:var(--surface-2);border:1px solid var(--border-strong);color:var(--ct-t2);border-radius:12px;padding:8px 13px;font-size:12.5px;cursor:pointer;font-family:var(--font-body)}
.ct-filters:hover{color:var(--text)}
.ct-fbadge{display:none;min-width:16px;height:16px;border-radius:8px;background:var(--ct-acc);color:#04121B;font-size:10px;font-weight:700;align-items:center;justify-content:center;padding:0 4px}
.ct-fbadge.show{display:inline-flex}
.ct-fpanel{position:absolute;top:calc(100% + 8px);right:0;z-index:40;background:#1A2332;border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:14px;display:none;width:min(400px,92vw);box-shadow:0 18px 50px rgba(0,0,0,.5)}
.ct-fpanel.open{display:block}
.ct-fg{padding:9px 0;border-bottom:1px solid var(--border)}
.ct-ft{font-size:11px;color:var(--ct-t3);margin-bottom:7px;text-transform:uppercase;letter-spacing:.5px}
.ct-fc{display:flex;gap:6px;flex-wrap:wrap}
.ct-fchip{background:var(--surface-2);border:1px solid var(--border-strong);color:var(--ct-t2);border-radius:8px;padding:5px 11px;font-size:12px;cursor:pointer;font-family:var(--font-body)}
.ct-fchip.active{background:rgba(34,211,238,.14);border-color:var(--ct-acc);color:#7DD3FC}
.ct-ffoot{display:flex;align-items:center;gap:10px;margin-top:12px;flex-wrap:wrap}
.ct-finfo{font-size:11px;color:var(--ct-t3)}
.ct-tblwrap{background:var(--surface-2);border:1px solid var(--border-strong);border-radius:14px;overflow:auto;box-shadow:0 8px 28px rgba(0,0,0,.25)}
.ct-table{width:100%;border-collapse:collapse;min-width:900px}
.ct-table th{font-size:11px;color:var(--ct-t3);text-transform:uppercase;letter-spacing:.5px;text-align:left;padding:11px 12px;background:rgba(255,255,255,.02);border-bottom:1px solid var(--border);white-space:nowrap;user-select:none}
.ct-table th.num,.ct-table td.num{text-align:right}
.ct-table th.sortable{cursor:pointer}
.ct-table th.sortable:hover{color:#7DD3FC}
.ct-sort{font-size:9px;margin-left:3px}
.ct-table td{padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.04);font-size:13px;color:var(--ct-t2);vertical-align:middle}
.ct-row{cursor:pointer;transition:background .12s}
.ct-row:hover{background:rgba(34,211,238,.05)}
.ct-whale{display:flex;align-items:center;gap:9px}
.ct-ava{width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;flex:none}
.ct-wname{font-size:13px;font-weight:600;color:var(--text);display:flex;align-items:center;gap:6px}
.ct-dot-on{width:6px;height:6px}
.ct-waddr{font-size:10.5px;color:var(--ct-t3);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mono{font-family:'JetBrains Mono',Consolas,monospace}
.ct-pnl{font-weight:700}
.ct-pnl.up{color:var(--ct-grn)}.ct-pnl.dn{color:var(--ct-red)}
.ct-wr{font-weight:700}.ct-wr.g{color:var(--ct-grn)}.ct-wr.y{color:var(--ct-yel)}.ct-wr.r{color:var(--ct-red)}
.ct-risk{font-size:11px;border:1px solid var(--border-strong);border-radius:8px;padding:4px 9px;cursor:pointer;font-family:var(--font-body);background:var(--surface-2);color:var(--ct-t2)}
.ct-risk.low{color:var(--ct-grn);border-color:rgba(53,208,127,.3)}
.ct-risk.mid{color:var(--ct-yel);border-color:rgba(251,191,36,.3)}
.ct-risk.hi{color:var(--ct-red);border-color:rgba(255,77,103,.3)}
.ct-risk.on{border-color:var(--ct-acc);box-shadow:0 0 0 1px var(--ct-acc)}
.ct-tag{font-size:11px;border:1px solid var(--border-strong);border-radius:8px;padding:4px 9px;cursor:pointer;font-family:var(--font-body);background:var(--surface-2);color:#7DD3FC}
.ct-tag.on{border-color:var(--ct-acc)}
.ct-ai{font-size:11px;font-weight:700;border-radius:8px;padding:4px 9px;cursor:pointer;font-family:var(--font-body);border:1px solid var(--border-strong);background:var(--surface-2)}
.ct-ai.g{color:var(--ct-grn)}.ct-ai.y{color:var(--ct-yel)}.ct-ai.r{color:var(--ct-red)}
.ct-ai.on{border-color:var(--ct-acc)}
.ct-acts{display:flex;gap:6px;justify-content:flex-end}
.ct-act{width:30px;height:30px;border-radius:9px;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--ct-t2);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:12px;transition:all .15s}
.ct-act svg{width:14px;height:14px}
.ct-act:hover{color:#7DD3FC;border-color:var(--ct-acc);transform:translateY(-1px)}
.ct-rank{font-size:12px;color:var(--ct-t3);font-weight:700}
.ct-rank.gold{color:#FBBF24}.ct-rank.silver{color:#C7D2E0}.ct-rank.bronze{color:#E8935A}
/* лента */
.ct-feedchips{margin-bottom:2px}
#pmFeedList{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
@media(max-width:1500px){#pmFeedList{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1150px){#pmFeedList{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){#pmFeedList{grid-template-columns:1fr}}
.ct-feeditem{background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--border-strong);border-radius:14px;padding:11px 12px;transition:border-color .15s;min-width:0}
.ct-feeditem:hover{border-color:rgba(34,211,238,.4)}
.ct-feeditem .ct-copybox .ct-btn-primary,.ct-feeditem .ct-copybox .ct-btn-ghost{padding:6px 10px;font-size:12px}
.ct-feeditem .ct-amt{width:88px}
.ct-fh{display:flex;align-items:center;gap:10px;margin-bottom:7px}
.ct-fi{min-width:0;cursor:pointer}
.ct-ftime{margin-left:auto;font-size:11px;color:var(--ct-t3);white-space:nowrap}
.ct-fbody{font-size:12.5px;color:var(--ct-t2);margin-bottom:6px;overflow-wrap:anywhere}
.ct-fmk{margin-top:3px;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ct-yes{color:var(--ct-grn);font-weight:600}
.ct-no{color:var(--ct-red);font-weight:600}
/* V97: голос YES/NO убран из ленты и лидерборда — .ct-vote удалён */
/* V92: доход — зелёный бейдж; винрейт — цветной по значению */
.ct-inc{color:#35D07F!important;background:rgba(53,208,127,.12);border-radius:6px;padding:1px 6px}
.ct-fdeal b.ct-wr.g{color:#35D07F!important}.ct-fdeal b.ct-wr.y{color:#FBBF24!important}.ct-fdeal b.ct-wr.r{color:#FF6B81!important}
/* V93: выплата при победе — приглушённый текст */
.ct-pay{color:#8B94A7!important;font-weight:500;font-size:12px}
/* V94: тарифные лимиты — блюр заблокированных элементов */
.ct-feeditem.ct-lock{position:relative}
.ct-feeditem.ct-lock>*{filter:blur(5px);pointer-events:none;user-select:none}
.ct-feeditem.ct-lock>.ct-lockov{filter:none;pointer-events:auto;user-select:auto;position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:rgba(8,12,22,.5);border-radius:14px;text-align:center;padding:12px;font-size:12px;color:#E5EAF3;font-weight:600}
.ct-locked{opacity:.4;filter:grayscale(1);cursor:not-allowed}
/* V102: блюр строк при исчерпанных показах */
#pmAlertsBody tr.ct-blur{opacity:.55;filter:blur(4px);pointer-events:none;user-select:none}
/* V101: карточка кита открывается бесплатно — показ списывается только за прогноз (лидерборд без блюра: весь список виден при любом тарифе) */
/* V101: форс «лимиты исчерпаны» — лента: блюрим только Имя кита (аватар+имя+адрес), карточка некликабельна */
#pmFeedList.ct-blur-names{pointer-events:none;user-select:none;-webkit-user-select:none;cursor:not-allowed;transition:filter .25s}
/* V115: блюр имён — обычный тёмный блюр (не белые блоки): аватар обесцвечен+затемнён, текст приглушён */
#pmFeedList.ct-blur-names .ct-ava,
#pmBoardBody.ct-blur-names .ct-ava,
#pmWatch.ct-blur-names .ct-ava{filter:blur(7px) grayscale(1) brightness(.45);background:#0D1117 !important}
#pmFeedList.ct-blur-names .ct-wname,#pmFeedList.ct-blur-names .ct-waddr,#pmFeedList.ct-blur-names .ct-fi,
#pmBoardBody.ct-blur-names .ct-wname,#pmBoardBody.ct-blur-names .ct-waddr,
#pmWatch.ct-blur-names .ct-wname,#pmWatch.ct-blur-names .ct-waddr{filter:blur(9px) brightness(.6)}
/* V104: лидерборд — блюр имён при исчерпанных показах (клик по киту открывает окно лимита) */
#pmBoardBody.ct-blur-names{user-select:none;transition:filter .25s}
/* V115: свечной скринер — при лимите скрыты Паттерн и Направление, цвет направления убран */
/* V115: плашка «Лимит» (жёлтая, кликабельная → окно решения) — свечи и аномалии при scrLock */
.scr-limit{display:inline-block;padding:4px 10px;border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap;color:#FBBF24;background:rgba(251,191,36,.12);border:1px solid rgba(251,191,36,.45)}
.scr-limit:hover{background:rgba(251,191,36,.22)}
/* ============ V167: скринеры — бейджи бирж + блюр имени токена ============ */
.ex-badge{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:20px;font-size:10.5px;font-weight:700;letter-spacing:.3px;line-height:1.7;white-space:nowrap;border:1px solid transparent;vertical-align:middle}
.ex-badge::before{content:'';width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.85}
.ex-binance{color:#F0B90B;background:rgba(240,185,11,.12);border-color:rgba(240,185,11,.35)}
.ex-bybit{color:#5AA2FF;background:rgba(90,162,255,.12);border-color:rgba(90,162,255,.35)}
.ex-bingx{color:#2DE3B6;background:rgba(45,227,182,.12);border-color:rgba(45,227,182,.35)}
.ex-other{color:#9AA8BC;background:rgba(154,168,188,.1);border-color:rgba(154,168,188,.3)}
.scr-tb{position:relative;display:inline-block;vertical-align:middle}
.scr-tb .scr-tb-txt{display:inline-block;filter:blur(5px);opacity:.45;user-select:none;pointer-events:none}
.scr-tb-revealed .scr-tb-txt{filter:none;opacity:1} /* V171: имя токена раскрыто первым кликом */
.scr-tb-btn{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:inline-flex;align-items:center;gap:3px;padding:3px 10px;border-radius:8px;font-size:10.5px;font-weight:700;letter-spacing:.2px;cursor:pointer;white-space:nowrap;color:#FBBF24;background:rgba(251,191,36,.13);border:1px solid rgba(251,191,36,.45);transition:background .15s,transform .12s;z-index:2}
.scr-tb-btn:hover{background:rgba(251,191,36,.25)}
.scr-tb-btn:active{transform:translate(-50%,-50%) scale(.95)}
/* V172: кнопка «Подтвердить» — ждёт второго клика (спишется 1 показ) */
.scr-tb-armed{color:#FBBF24;background:rgba(251,191,36,.24);border-color:rgba(251,191,36,.65);font-weight:800}
/* V171: после раскрытия имени кнопка «▶» — чип СПРАВА от текста (не заезжает на имя) */
.scr-tb-revealed .scr-tb-btn{position:static;transform:none;margin-left:7px;padding:2px 8px;border-radius:7px;font-size:10px;vertical-align:middle;flex:none;transition:background .15s} /* без transition transform — иначе при раскрытии кнопка «едет» из центра */
.scr-tb-revealed .scr-tb-btn:active{transform:scale(.95)}
/* V171: кнопка центрируется по всей ячейке, а не по тексту имени */
td.scr-tb-td{position:relative}
td.scr-tb-td .scr-tb{position:static}
.coin-name{position:relative}
.coin-name .scr-tb{position:static}
.scr-candle-row .coin-cell>div{flex:1 1 auto;min-width:0}
/* V171: второй клик — кнопка готова открыть (зелёная ▶) */
.scr-tb-go{color:#35D07F;background:rgba(53,208,127,.14);border-color:rgba(53,208,127,.5)}
.scr-tb-go:hover{background:rgba(53,208,127,.26)}
/* V169: мини-пилюля «Спишется показ» (toast-бар удалён в V114 — своё лёгкое уведомление скринера) */
#scrNotice{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(10px);z-index:9999;padding:9px 18px;border-radius:12px;font-size:12.5px;font-weight:600;letter-spacing:.2px;color:#FBBF24;background:rgba(18,24,36,.96);border:1px solid rgba(251,191,36,.4);box-shadow:0 10px 30px rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;max-width:min(92vw,520px);text-align:center;line-height:1.45}
#scrNotice.show{opacity:1;transform:translateX(-50%) translateY(0)}
/* V116: блюр имени в OI убран — вместо него кликабельная плашка «Лимит исчерпан» */
/* V95: админ-кнопка теста тарифа */
#planTestBtn{position:fixed;right:14px;bottom:14px;z-index:9999;padding:9px 14px;border-radius:12px;font-size:12px;font-weight:700;cursor:pointer;background:linear-gradient(135deg,#7C3AED,#5B21B6);color:#fff;box-shadow:0 6px 20px rgba(124,58,237,.4);display:flex;align-items:center;gap:6px}
#planTestBtn .ptb-caret{opacity:.75;font-size:10px}
#planTestBtn .ptb-menu{display:none;position:absolute;right:0;bottom:calc(100% + 8px);min-width:215px;background:#141A2B;border:1px solid rgba(124,92,255,.3);border-radius:12px;padding:6px;box-shadow:0 14px 40px rgba(0,0,0,.5);flex-direction:column;gap:2px}
#planTestBtn.open .ptb-menu{display:flex}
#planTestBtn .ptb-menu button{background:none;border:none;color:var(--text-1);font-size:12px;font-weight:600;text-align:left;padding:8px 10px;border-radius:8px;cursor:pointer;transition:background .15s}
#planTestBtn .ptb-menu button:hover{background:rgba(124,92,255,.18)}

/* ============ Виджет «Проблема сайта» (админ) ============ */
#bugFab{position:fixed;right:16px;bottom:64px;z-index:9999;padding:11px 16px;border-radius:999px;font-size:13px;font-weight:700;cursor:pointer;background:linear-gradient(135deg,#0EA5E9,#7C3AED);color:#fff;border:none;box-shadow:0 8px 24px rgba(14,165,233,.35);display:flex;align-items:center;gap:7px;transition:transform .15s,box-shadow .15s}
#bugFab:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(14,165,233,.45)}
#bugFab:active{transform:translateY(0)}
#bugFab .bugfab-lbl{font-size:12px}
.bug-modal{max-width:540px}
.bug-modal textarea{font-family:var(--font-mono);font-size:13px}
#bugModal .actions button{min-height:44px}
#bugModal summary::-webkit-details-marker{display:none}
@media (max-width:480px){#bugFab{bottom:70px;right:12px;padding:12px}#bugFab .bugfab-lbl{display:none}}
/* V176: на мобилке нижнее меню (mobile-nav, <=860px) перекрывало админ-кнопки — поднимаем над меню */
/* V177: nav вырос до ~91px (15 разделов) — поднимаем кнопки с запасом 13px+ */
@media (max-width:860px){
  #planTestBtn{bottom:calc(env(safe-area-inset-bottom) + 104px);right:12px}
  #bugFab{bottom:calc(env(safe-area-inset-bottom) + 158px);right:12px}
}
.ct-fmeta{display:flex;gap:10px;flex-wrap:wrap;font-size:11px;color:var(--ct-t3);margin-bottom:8px}
.ct-copybox{display:flex;gap:6px;align-items:center;flex-wrap:wrap;border-top:1px dashed var(--border);padding-top:8px}
.ct-amt{width:110px}
.ct-copyres{font-size:12px;color:var(--ct-t2);display:flex;gap:10px;align-items:center}
.ct-copyres b{color:var(--ct-grn)}
.ct-copyres i{color:var(--ct-t3);font-style:normal}
/* кнопки */
.ct-btn-primary{background:linear-gradient(135deg,#22d3ee,#6366f1);color:#04121B;border:0;border-radius:11px;padding:10px 16px;font-size:13px;font-weight:700;cursor:pointer;font-family:var(--font-body);transition:transform .12s,box-shadow .15s;box-shadow:0 4px 14px rgba(99,102,241,.3)}
.ct-btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(99,102,241,.45)}
.ct-btn-ghost{background:var(--surface-2);color:var(--ct-t2);border:1px solid var(--border-strong);border-radius:11px;padding:10px 16px;font-size:13px;cursor:pointer;font-family:var(--font-body)}
.ct-btn-ghost:hover{color:var(--text);border-color:var(--ct-acc)}
/* алерты */
.ct-alhead{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.ct-trig{font-size:13px;color:var(--text);font-weight:600}
.ct-trig-sub{font-size:11px;color:var(--ct-t3);font-weight:400;margin-top:2px}
.ct-status{font-size:12px;display:inline-flex;align-items:center;gap:7px;border-radius:20px;padding:5px 12px;font-weight:600}
.ct-status.on{background:rgba(53,208,127,.12);color:var(--ct-grn)}
.ct-status.off{background:rgba(255,255,255,.05);color:var(--ct-t3)}
/* watchlist */
.ct-wgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.ct-wcard{background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--border-strong);border-radius:14px;padding:14px}
.ct-empty{text-align:center;color:var(--ct-t3);background:var(--surface-2);border:1px dashed var(--border-strong);border-radius:14px;padding:32px}
.ct-empty-t{font-size:15px;font-weight:600;color:var(--text)}
.ct-empty-s{font-size:12px;margin-top:4px}
/* модалки */
.ct-modal{max-width:460px;background:linear-gradient(180deg,#212C3D,#1A2332)!important;border-color:rgba(255,255,255,.16)!important}
.ct-modal h3{color:#EAF0F8}
.ct-alform{display:grid;gap:11px;margin-bottom:14px}
.ct-alabel{font-size:11px;color:#C6D2E2;margin-bottom:5px;display:block}
.ct-input{width:100%;background:#161E2B;border:1px solid rgba(255,255,255,.12);color:#EAF0F8;border-radius:10px;padding:9px 12px;font-size:13px;font-family:var(--font-body);outline:0}
.ct-input:focus{border-color:#22d3ee}
select.ct-input{appearance:none;cursor:pointer}
.ct-alnote{font-size:11px;color:#9AA8BC}
.ct-mrows{display:grid;gap:8px;margin-bottom:14px}
.ct-mrow{display:flex;justify-content:space-between;gap:10px;font-size:13px;color:#B7C2D3;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.06)}
.ct-mrow b{color:#EAF0F8;text-align:right}
.ct-amtbox{display:grid;gap:8px;margin-bottom:12px}
.ct-copyres{display:flex;gap:12px;font-size:12.5px;color:#B7C2D3;align-items:center}
.ct-copyres b{color:#35D07F}
/* эмоции сделки */
.ct-emo{display:flex;gap:12px;align-items:center;padding:11px 14px;border-radius:12px;border:1px solid rgba(255,255,255,.09);background:linear-gradient(135deg,rgba(255,255,255,.05),rgba(255,255,255,.02));margin-bottom:12px}
.ct-emo .ct-emo-ic{font-size:26px;line-height:1;flex:none}
.ct-emo .ct-emo-tx{min-width:0}
.ct-emo .ct-emo-t{font-weight:700;font-size:13.5px;color:#EAF0F8}
.ct-emo .ct-emo-d{font-size:11.5px;color:#9AA8BC;margin-top:2px;line-height:1.45}
.ct-emo.hot{background:linear-gradient(135deg,rgba(255,77,103,.18),rgba(255,77,103,.04));border-color:rgba(255,77,103,.4)}
.ct-emo.safe{background:linear-gradient(135deg,rgba(53,208,127,.16),rgba(53,208,127,.03));border-color:rgba(53,208,127,.4)}
.ct-emo.lottery{background:linear-gradient(135deg,rgba(167,139,250,.18),rgba(167,139,250,.04));border-color:rgba(167,139,250,.4)}
.ct-emo.risky{background:linear-gradient(135deg,rgba(255,159,28,.16),rgba(255,159,28,.04));border-color:rgba(255,159,28,.4)}
.ct-emo.doubt{background:linear-gradient(135deg,rgba(251,191,36,.12),rgba(251,191,36,.03));border-color:rgba(251,191,36,.35)}
.ct-emo.diamond{background:linear-gradient(135deg,rgba(56,189,248,.16),rgba(56,189,248,.04));border-color:rgba(56,189,248,.4)}
.ct-emo.neutral{background:linear-gradient(135deg,rgba(148,163,184,.12),rgba(148,163,184,.03));border-color:rgba(148,163,184,.3)}
.ct-emo-sm{display:inline-flex;gap:8px;align-items:center;font-size:12px;font-weight:600;color:#EAF0F8;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:4px 11px;margin-top:8px}
/* V101: YES/NO скрыто до прогноза; блок-заглушка с кнопкой «Получить прогноз» */
.ct-hide{filter:blur(7px);user-select:none;-webkit-user-select:none;cursor:default}
.ct-wd-lock{font-size:12px;line-height:1.5;color:#B7C2D3;background:rgba(8,12,22,.6);border:1px dashed #3A4658;border-radius:10px;padding:10px 12px;margin:8px 0 12px}
.ct-wd-lock b{color:#FFD666}
.ct-wd-note{font-size:11.5px;color:#4ADE80;margin:8px 0 0}
.ct-wd-lock+.ct-btn-primary,.ct-wd-note+.ct-btn-primary{margin-top:10px}
/* V101: предупреждение о списании показа — аккуратная колоночная разметка */
.ct-warn{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#FBBF24;background:rgba(251,191,36,.08);border:1px solid rgba(251,191,36,.25);border-radius:10px;padding:12px 14px;margin-bottom:14px}
.ct-warn svg{width:16px;height:16px;flex:none;margin-top:1px}
.ct-warn-head{font-size:13.5px;font-weight:700;color:#FBBF24;line-height:1.4}
.ct-warn-head b{color:#FFD666}
.ct-warn-line{font-size:12px;color:#E8C978;line-height:1.5}
.ct-warn-line b{color:#FFD666}
.ct-warn-q{font-size:12.5px;font-weight:600;color:#FBBF24;margin-top:4px;line-height:1.4}
.ct-warn-ok{color:#4ADE80}.ct-warn-ok b{color:#6EE7A0}
.ct-mactions{display:flex;gap:10px;justify-content:flex-end}
.ct-mactions .ct-btn-primary{flex:1.4}.ct-mactions .ct-btn-ghost{flex:1}
/* карточка кита */
.ct-wmodal{
  width:min(1240px,calc(100vw - 24px));
  max-width:none;
  max-height:94vh;
  height:auto; /* V131: без прокрутки колонок — высота по контенту */
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
  grid-template-rows:auto auto auto;
  gap:12px 16px;
  align-items:stretch;
  overflow:hidden;
  padding:16px 18px;
}
.ct-whead{display:flex;gap:12px;align-items:center;flex-wrap:wrap;grid-column:1/-1;min-width:0}
.ct-wmodal .ct-wcol{display:flex;flex-direction:column;gap:10px;min-width:0;overflow:visible} /* V131: без прокрутки */
.ct-wmodal .ct-wdeal{flex:none}
.ct-wmodal .ct-wtrades{flex:none;max-height:none;overflow:visible} /* V131: без прокрутки — все сделки видны */
.ct-wmodal .ct-mactions{grid-column:1/-1;margin-top:2px}
.ct-wmodal .ct-wt-title{flex:none}
.ct-wmodal .ct-wstats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
.ct-wmodal .ct-wname,.ct-wmodal .ct-wd-row b,.ct-wmodal .ct-wtr-mk,.ct-wmodal .ct-waddr{overflow-wrap:anywhere;word-break:break-word}
.ct-waddr{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
.ct-wava{width:46px;height:46px;font-size:15px}
.ct-winfo{min-width:0}
.ct-wtag{font-size:11px;border-radius:20px;padding:3px 10px;display:inline-block;margin-top:5px}
.ct-wtag.on{background:rgba(53,208,127,.12);color:#35D07F}
.ct-wtag.off{background:rgba(255,255,255,.06);color:#9AA8BC}
.ct-wacts{display:flex;gap:7px;margin-left:auto;flex-wrap:wrap}
.ct-wacts .ct-act{width:auto;padding:0 11px;font-size:11.5px;font-weight:600}
.ct-wstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:9px;margin-bottom:14px}
.ct-wstat{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:11px;padding:9px 11px}
.ct-wstat-l{font-size:10.5px;color:#9AA8BC;text-transform:uppercase;letter-spacing:.4px}
.ct-wstat-v{font-size:15px;font-weight:700;color:#EAF0F8;margin-top:2px}
.ct-wstat-v.up{color:#35D07F}.ct-wstat-v.dn{color:#FF4D67}.ct-wstat-v.g{color:#35D07F}.ct-wstat-v.y{color:#FBBF24}.ct-wstat-v.r{color:#FF4D67}
.ct-wdeal{background:rgba(34,211,238,.05);border:1px solid rgba(34,211,238,.16);border-radius:11px;padding:10px 12px;margin-bottom:12px}
.ct-wd-title{font-size:11px;font-weight:700;color:#7DD3FC;margin-bottom:7px;text-transform:uppercase;letter-spacing:.5px}
.ct-wd-row{display:flex;justify-content:space-between;font-size:12.5px;color:#B7C2D3;padding:3px 0}
.ct-wd-row b{color:#EAF0F8}
.ct-wt-title{font-size:11px;font-weight:700;color:#B7C2D3;margin:4px 0 8px;text-transform:uppercase;letter-spacing:.5px}
.ct-wset{display:flex;flex-direction:column;gap:12px;min-width:0;min-height:0;overflow-y:auto}
.ct-wset-box{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.09);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:9px}
.ct-wset-row{display:flex;flex-direction:column;gap:5px;font-size:11.5px;color:#9AA8BC;font-weight:600;letter-spacing:.3px}
.ct-wset-row .ct-input{font-size:13px}
.ct-act-wide{width:100%;text-align:left;padding:10px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.1);background:var(--surface-2);color:var(--ct-t2);font-size:12.5px;font-weight:600;cursor:pointer;transition:all .15s;display:inline-flex;align-items:center;gap:8px}
.ct-act-wide:hover{border-color:#22d3ee;color:#fff}
.ct-act-wide.on{background:rgba(53,208,127,.12);border-color:rgba(53,208,127,.4);color:#35D07F}
.ct-wset .ct-wt-title{margin:0}
.ct-wtrades{max-height:none;overflow-y:auto;display:flex;flex-direction:column;gap:6px;margin-bottom:12px;padding-right:2px}
.ct-wtr{border:1px solid rgba(255,255,255,.09);border-left:3px solid rgba(255,255,255,.14);border-radius:10px;padding:8px 11px;cursor:pointer;transition:border-color .15s;background:rgba(255,255,255,.015)}
.ct-wtr:hover{border-color:#22d3ee}
.ct-wtr-s{border-left-color:#64748B}
.ct-wtr-m{border-left-color:#22d3ee;background:rgba(34,211,238,.06)}
.ct-wtr-l{border-left-color:#F59E0B;background:rgba(245,158,11,.09)}
.ct-wtr-xl{border-left-color:#FF4D67;background:rgba(255,77,103,.12);box-shadow:0 0 0 1px rgba(255,77,103,.3),0 0 14px rgba(255,77,103,.15)}
.ct-wtr-usd{font-weight:700;font-size:11.5px;padding:1px 8px;border-radius:20px;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.05);white-space:nowrap}
.ct-wtr-usd-s{color:#94A3B8}.ct-wtr-usd-m{color:#22d3ee}.ct-wtr-usd-l{color:#FBBF24}.ct-wtr-usd-xl{color:#FF6B81}
.ct-wtr-side{font-size:10px;font-weight:800;padding:2px 7px;border-radius:4px;letter-spacing:.4px;white-space:nowrap} /* V162: бейдж стороны YES/NO в баре сделки */
.ct-wtr-side.ct-yes{background:rgba(53,208,127,.14);color:#35D07F;border:1px solid rgba(53,208,127,.35)}
.ct-wtr-side.ct-no{background:rgba(248,81,73,.14);color:#f85149;border:1px solid rgba(248,81,73,.35)}
.ct-wtr-pnl{font-size:11px;font-weight:700;padding:1px 7px;border-radius:4px;white-space:nowrap;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12)} /* V162: нереализованный PnL сделки */
.ct-wtr-pnl.up{color:#35D07F}.ct-wtr-pnl.dn{color:#f85149}
.ct-wtr-lg{display:flex;align-items:center;gap:5px;font-size:10.5px;color:#8A97AC;padding:4px 2px 8px;flex-wrap:wrap}
.ct-wtr-lg i{width:10px;height:10px;border-radius:3px;display:inline-block;margin:0 1px 0 4px}
.ct-lg-s{background:#64748B}.ct-lg-m{background:#22d3ee}.ct-lg-l{background:#F59E0B}.ct-lg-xl{background:#FF4D67}
.ct-wtr-top{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12.5px}
.ct-wtr-mk{font-size:11px;color:#B7C2D3;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ct-wtr-t{font-size:10.5px;color:#9AA8BC;margin-top:2px}
@media (max-width:720px){
  .ct-hero{flex-direction:column;align-items:flex-start}
  .ct-hero-r{align-items:flex-start}
  .ct-tab.ct-check{margin-left:0}
  .ct-fpanel{right:auto;left:0}
}

@media (max-width:760px){
  .ct-wmodal{height:auto;max-height:min(94vh,960px);overflow-y:auto;grid-template-columns:1fr;grid-template-rows:none}
  .ct-wmodal .ct-wcol{overflow:visible}
  .ct-wmodal .ct-wtrades{max-height:300px}
  .ct-wmodal .ct-whead{flex-direction:column;align-items:flex-start}
  .ct-wmodal .ct-wacts{margin-left:0}
}


/* ── карусель всплесков: одно маленькое окно, список сверху вниз ── */
#spikeFeed{position:fixed;right:18px;bottom:18px;z-index:201;width:330px;height:94px;border-radius:12px;overflow:hidden;display:none;background:linear-gradient(180deg,#172033,#101827);border:1px solid rgba(255,255,255,0.16);box-shadow:0 18px 44px rgba(0,0,0,0.62),0 0 0 1px rgba(25,230,193,0.06)}
#spikeFeedList{height:100%;will-change:transform}
.spk-item{height:94px;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:10px 14px;border-left:3px solid var(--spk-accent,#19E6C1);cursor:pointer;overflow:hidden}
.spk-item:hover{background:rgba(255,255,255,0.045)}
.spk-title{font-size:13px;font-weight:700;color:#F5F7FA;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.spk-desc{font-size:11.5px;color:#D3D9E5;line-height:1.4;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.spk-time{font-size:10px;color:#6B7488;font-family:'JetBrains Mono',Consolas,monospace}
#spikeFeedX{position:static;width:18px;height:18px;border:none;border-radius:50%;background:rgba(255,255,255,0.08);color:#8B94A7;font-size:10px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
#spikeFeedX:hover{background:rgba(255,255,255,0.16);color:#F5F7FA}
@media(max-width:640px){#spikeFeed{width:calc(100vw - 36px);max-width:330px}}

/* карусель всплесков: кнопки и настройки */
#spikeFeed .spk-btns{position:absolute;top:5px;right:6px;z-index:3;display:flex;gap:4px}
#spikeFeed .spk-btns button{width:18px;height:18px;border:none;border-radius:50%;background:rgba(255,255,255,0.08);color:#8B94A7;font-size:10px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
#spikeFeed .spk-btns button:hover{background:rgba(255,255,255,0.18);color:#F5F7FA}
#spikeCfg{position:absolute;right:0;bottom:100%;margin-bottom:8px;width:230px;background:#141C2B;border:1px solid rgba(255,255,255,0.14);border-radius:12px;padding:10px 12px;display:none;box-shadow:0 16px 40px rgba(0,0,0,0.6);z-index:5}
#spikeCfg.open{display:block}
.spk-cfg-t{font-size:11px;font-weight:700;color:#F5F7FA;margin-bottom:8px}
#spikeCfg label{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#B9C2D4;margin:6px 0}
#spikeCfg select{background:#0E1420;color:#F5F7FA;border:1px solid rgba(255,255,255,0.14);border-radius:8px;font-size:11px;padding:3px 6px}
.spk-cfg-note{font-size:10px;color:#6B7488;margin-top:6px;line-height:1.4}

/* переключатель вкл/выкл в настройках всплесков */
.spk-switch-row{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#B9C2D4;margin:6px 0;cursor:pointer;user-select:none}
.spk-switch-row input{position:absolute;opacity:0;pointer-events:none}
.spk-sw{position:relative;width:34px;height:19px;background:#0E1420;border:1px solid rgba(255,255,255,0.18);border-radius:20px;transition:.18s}
.spk-sw::after{content:'';position:absolute;top:2px;left:2px;width:13px;height:13px;border-radius:50%;background:#8B94A7;transition:.18s}
.spk-switch-row input:checked + .spk-sw{background:rgba(25,230,193,0.22);border-color:rgba(25,230,193,0.55)}
.spk-switch-row input:checked + .spk-sw::after{left:17px;background:#19E6C1}
/* риск в карточке кита — read-only инфо */
.pm-wrisk{pointer-events:none;display:flex;align-items:center;font-weight:600;font-size:12.5px;min-height:32px;box-sizing:border-box}

/* полноэкранный лоадер раздела Киты Polymarket */
#pmLoader{position:fixed;inset:0;z-index:9999;background:rgba(8,12,20,.84);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s}
#pmLoader.on{opacity:1;pointer-events:auto}
.pm-loader-box{display:flex;flex-direction:column;align-items:center;gap:14px;color:#F5F7FA;font-size:15px;font-weight:600}
.pm-spin{width:46px;height:46px;border-radius:50%;border:4px solid rgba(25,230,193,.15);border-top-color:#19E6C1;animation:pmspin 1s linear infinite}
@keyframes pmspin{to{transform:rotate(360deg)}}
/* V91: прогресс-бар лоадера Polymarket API */
.pm-progress{width:260px;max-width:72vw;height:6px;border-radius:6px;background:rgba(255,255,255,.1);overflow:hidden;margin-top:-4px}
.pm-progress-fill{height:100%;width:0%;border-radius:6px;background:linear-gradient(90deg,#19E6C1,#22d3ee);box-shadow:0 0 12px rgba(25,230,193,.6)}
.pm-loader-pct{font-size:11px;color:#8B94A7;font-family:'JetBrains Mono',Consolas,monospace;margin-top:-8px}
/* V91: баннер тарифа в лидерборде Polymarket */
.pm-gate{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:rgba(251,191,36,.08);border:1px solid rgba(251,191,36,.3);color:#FBBF24;border-radius:12px;padding:9px 14px;font-size:12.5px;margin:0 0 10px}
.pm-gate b{color:#FDE68A}
/* V91: подсветка тега big и риска */
.ct-tagb{font-weight:700}
.ct-riskb{font-weight:700}
.ct-riskb.hi{color:#FF6B81}.ct-riskb.mid{color:#FBBF24}.ct-riskb.low{color:#35D07F}
.ct-wtag.big{background:rgba(251,191,36,.14)!important;color:#FBBF24!important;border:1px solid rgba(251,191,36,.45)}
.ct-wtag.hi{background:rgba(255,77,103,.14)!important;color:#FF6B81!important;border:1px solid rgba(255,77,103,.45)}
.pm-wrisk.hi{color:#FF6B81!important;border-color:rgba(255,77,103,.45)!important;background:rgba(255,77,103,.08)!important}
.pm-wrisk.mid{color:#FBBF24!important;border-color:rgba(251,191,36,.4)!important;background:rgba(251,191,36,.07)!important}
.pm-wrisk.low{color:#35D07F!important;border-color:rgba(53,208,127,.4)!important;background:rgba(53,208,127,.07)!important}

/* V110: всплеск в шапке раздела — слева заголовок, справа капсула всплесков */
.spk-sub{display:inline-flex;align-items:center;gap:6px;margin-left:auto;max-width:46%;padding:5px 12px;border-radius:999px;background:rgba(25,230,193,.08);border:1px solid rgba(25,230,193,.28);color:#9FE8D8;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 10px rgba(25,230,193,.08)}
.spk-sub:hover{border-color:rgba(25,230,193,.6);background:rgba(25,230,193,.14);transform:translateY(-1px)}
.spk-sub i{font-style:normal;color:#7E8AA0;font-weight:500}
.spk-sub.sev-high{background:rgba(255,77,103,.1);border-color:rgba(255,77,103,.35);color:#FF8FA3}
.spk-sub.sev-high i{color:#B98A96}
.spk-sub.sev-warn,.spk-sub.sev-med{background:rgba(255,191,71,.08);border-color:rgba(255,191,71,.3);color:#FFD28A}
.sub-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
/* выбранная сделка кита в списке */
.ct-wtr.sel{outline:2px solid rgba(25,230,193,.65);background:rgba(25,230,193,.07)}
#pmWPick b{display:block;margin-bottom:2px}
#pmWPick span{color:#8B94A7;font-size:11px}

/* V89.3: активные сделки зелёным */
.ct-wtr-ok{border-left-color:#19E6C1!important;background:rgba(25,230,193,.055)}
.ct-wtr-ok:hover{border-color:#19E6C1!important}
.ct-dot-err{background:#F87171;box-shadow:0 0 8px #F87171}

/* V89.4: стили статов кита + дата события */
.ct-wstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.ct-wstat{transition:border-color .15s,transform .15s}
.ct-wstat:hover{border-color:rgba(25,230,193,.45);transform:translateY(-1px)}
.ct-wstat-v.s{color:#FBBF24}
.ct-wd-title{font-size:11px;color:#9AA8BC;text-transform:uppercase;letter-spacing:.5px;margin:2px 0 8px}
.ct-end{color:#19E6C1;font-weight:600;white-space:nowrap}

/* V89.5 */
.ct-fdeal{display:flex;gap:14px;font-size:11.5px;color:#9AA8BC;padding:0 2px 6px}
.ct-fdeal b{color:#EAF0F8}
.ct-check-list .ct-wtr{border-left-color:#22d3ee;margin-bottom:6px}

/* V110: активное состояние кнопки push */
.chip.chip-active{background:rgba(25,230,193,.16);border-color:rgba(25,230,193,.5);color:#9FE8D8}

/* ============================================================
   V131: СТАКАН — 31 ряд фикс, 290px, крупный шрифт, живой анимированный
   ============================================================ */
.ob-duo{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:960px){.ob-duo{grid-template-columns:1fr}}
.ob-card{position:relative;overflow:hidden;animation:obBreath 4s ease-in-out infinite}
@keyframes obBreath{0%,100%{box-shadow:0 0 0 1px var(--border),0 0 0 rgba(124,92,255,0)}50%{box-shadow:0 0 0 1px rgba(124,92,255,.35),0 0 18px rgba(124,92,255,.08)}}
.ob-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.ob-title{font-size:13.5px;font-weight:700;color:var(--text-1)}
.ob-title b{color:var(--accent);font-family:var(--font-mono)}
.ob-live{display:inline-flex;align-items:center;gap:5px;margin-left:auto;font-size:11px;font-weight:700;color:var(--text-2)}
.ob-live-dot{width:9px;height:9px;border-radius:50%;background:#6b7280;flex:none}
.ob-live-dot.on{background:var(--success);box-shadow:0 0 10px var(--success);animation:obPulse 1.4s ease-in-out infinite}
.ob-live-dot.poll{background:var(--warning);box-shadow:0 0 10px var(--warning);animation:obPulse 1s ease-in-out infinite}
@keyframes obPulse{0%,100%{opacity:1}50%{opacity:.3}}
.ob-toolbar{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--border)}
.ob-toolbar .input{background:var(--surface);border:1px solid var(--border);color:var(--text-1);border-radius:8px;font-size:12px;padding:4px 8px;width:92px}
.ob-toolbar .chip{font-size:11.5px;padding:4px 8px}
.ob-toolbar select.input{width:auto}
.ob-step-lbl{font-size:11px;color:var(--text-3)}
.ob-step-sel{width:auto;font-family:var(--font-mono);font-size:11px;padding:3px 6px;background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--text-1);cursor:pointer;transition:border-color .2s}
.ob-step-sel:focus{outline:none;border-color:var(--accent)}
.ob-step-sel:hover{border-color:var(--accent)}
/* V139: реальная цена зафиксирована в центре стакана — две панели скролла (аски сверху, биды снизу), мид неподвижен */
.ob-book{height:380px;display:flex;flex-direction:column;gap:2px;transition:opacity .18s ease}
.ob-book.ob-swap{opacity:.45}
.ob-pane{position:relative;flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;padding-right:3px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}
/* V140: кнопка возврата к цене — появляется, когда панель прокрутили вручную */
.ob-pin-chip{position:absolute;top:4px;right:8px;z-index:5;display:none;padding:2px 8px;font-size:10.5px;font-family:var(--font-mono);color:var(--accent);background:var(--surface);border:1px solid var(--border);border-radius:99px;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.35);transition:color .15s,border-color .15s}
.ob-pin-chip:hover{color:#fff;border-color:var(--accent)}
.ob-pane::-webkit-scrollbar{width:4px}
.ob-pane::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}
.ob-pane::-webkit-scrollbar-track{background:transparent}
.ob-col{display:flex;flex-direction:column;gap:1px;flex:none}
/* V138: realtime-анимация стакана (UIUX Pro Max §7: transform/opacity, spring-кривые, ease-out вход / ease-in выход) */
/* V143 Motion.dev: spring-физика, GPU-only, жесты hover/tap, will-change, unified timing */
.ob-row{position:relative;display:flex;align-items:center;gap:6px;flex:none;height:26px;min-height:26px;padding:0 6px;border-radius:3px;overflow:hidden;font-family:var(--font-mono);font-size:12px;font-weight:600;line-height:1;font-variant-numeric:tabular-nums;will-change:transform,opacity;transform:translateZ(0)}
/* новые ряды: каскадный въезд — биды слева, аски справа (V135) + spring-overshoot (V143) */
.ob-row.ob-new{animation:obRowIn var(--dur-base) var(--spring) both}
.ob-row.ob-bid.ob-new{animation-name:obRowBid}
.ob-row.ob-ask.ob-new{animation-name:obRowAsk}
@keyframes obRowIn{0%{opacity:0;transform:translateY(8px) scale(.97)}60%{opacity:1;transform:translateY(-1px) scale(1.005)}100%{opacity:1;transform:none}}
@keyframes obRowBid{0%{opacity:0;transform:translateX(-18px) scale(.98)}60%{opacity:1;transform:translateX(2px) scale(1.004)}100%{opacity:1;transform:none}}
@keyframes obRowAsk{0%{opacity:0;transform:translateX(18px) scale(.98)}60%{opacity:1;transform:translateX(-2px) scale(1.004)}100%{opacity:1;transform:none}}
/* уходящие ряды: быстрый fade-out (exit < enter) */
.ob-row.ob-gone{animation:obGone var(--dur-fast) ease-in both}
@keyframes obGone{0%{opacity:1;transform:none}100%{opacity:0;transform:scale(.96)}}
/* бары глубины: только transform scaleX (GPU, без reflow) + spring-overshoot (V143) */
.ob-row .ob-bar{position:absolute;top:0;bottom:0;left:0;border-radius:3px;opacity:.16;pointer-events:none;transform-origin:left center;transform:scaleX(0);transition:transform var(--dur-base) var(--spring);will-change:transform}
.ob-bid .ob-bar{background:linear-gradient(90deg,var(--success),transparent)}
.ob-ask .ob-bar{background:linear-gradient(90deg,transparent,var(--danger));left:auto;right:0;transform-origin:right center}
/* V143 Motion.dev жесты: whileHover — лёгкий подъём/сдвиг к миду, whileTap — упругое сжатие */
.ob-row{transition:background-color var(--dur-fast) ease,box-shadow var(--dur-fast) ease}
.ob-row:hover{background:rgba(255,255,255,.05);box-shadow:inset 0 0 0 1px var(--border-strong)}
.ob-bid:hover .ob-p{text-shadow:0 0 10px var(--success)}
.ob-ask:hover .ob-p{text-shadow:0 0 10px var(--danger)}
.ob-row:active{transform:scale(.985);transition:transform var(--dur-fast) var(--spring)}
.ob-bid:active{transform:translateX(3px) scale(.985)}
.ob-ask:active{transform:translateX(-3px) scale(.985)}
.ob-row .ob-p{flex:1;min-width:0;text-align:left}
.ob-bid .ob-p{color:var(--success)}
.ob-ask .ob-p{color:var(--danger)}
.ob-row .ob-t{flex:none;width:66px;text-align:right;color:var(--text-3);font-size:10.5px}
/* V142: глубина — ряды у мида яркие, дальше от цены тише (--dep ставит syncRows) */
.ob-row{opacity:calc(1 - var(--dep,0)*.5)}
.ob-row.ob-low{opacity:calc((1 - var(--dep,0)*.5)*.72)} /* V137: ниже порога 💠 — дополнительно приглушены */
/* V142: лучший уровень у цены — всегда подсвечен (по позиции, даже если объёма нет) */
.ob-row.ob-best{opacity:1!important;background:linear-gradient(90deg,rgba(53,208,127,.16),transparent);box-shadow:inset 2px 0 0 var(--success)}
.ob-row.ob-best.ob-ask{background:linear-gradient(90deg,transparent,rgba(255,77,103,.16));box-shadow:inset -2px 0 0 var(--danger)}
.ob-row.ob-best .ob-p{text-shadow:0 0 10px rgba(53,208,127,.65)}
.ob-row.ob-best.ob-ask .ob-p{text-shadow:0 0 10px rgba(255,77,103,.65)}
.ob-row.ob-best .ob-t{color:var(--text-1)}
.ob-row.ob-best .ob-bar{opacity:.3}
.ob-row.ob-big .ob-q,.ob-row.ob-big .ob-t{color:var(--warning);font-weight:800;text-shadow:0 0 10px rgba(255,190,50,.35)}
.ob-row.ob-big .ob-p{font-weight:800}
.ob-row.ob-dense{background:linear-gradient(90deg,rgba(255,190,50,.14),rgba(255,190,50,.02));box-shadow:inset 0 0 0 1px rgba(255,190,50,.45);animation:obDensePulse 2s ease-in-out infinite}
@keyframes obDensePulse{0%,100%{box-shadow:inset 0 0 0 1px rgba(255,190,50,.45)}50%{box-shadow:inset 0 0 0 1px rgba(255,190,50,.9),0 0 14px rgba(255,190,50,.25)}}
.ob-row.ob-dense .ob-p,.ob-row.ob-dense .ob-q,.ob-row.ob-dense .ob-t{color:var(--warning);font-weight:800}
.ob-row.ob-dense .ob-bar{opacity:.42}
/* изменение объёма: быстрая вспышка ряда + цены (260мс — realtime-ощущение) */
.ob-row.ob-upd{animation:obUpd var(--dur-base) ease}
@keyframes obUpd{0%{background:rgba(255,255,255,.1)}100%{background:transparent}}
.ob-row.ob-upd .ob-t{animation:obQFlash .5s ease}
@keyframes obQFlash{0%{color:var(--accent);text-shadow:0 0 8px rgba(124,92,255,.8)}100%{color:inherit}}
/* пересечение порога 💠: упругий pop + свечение (spring, V143) */
.ob-row.ob-pop{animation:obPop var(--dur-slow) var(--spring)}
@keyframes obPop{0%{transform:scale(1)}35%{transform:scale(1.07);box-shadow:0 0 20px rgba(255,190,50,.5)}60%{transform:scale(.99)}100%{transform:scale(1)}}
/* V139: реальная цена зафиксирована в центре стакана (неподвижный мид между панелями) */
.ob-mid{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:1px 8px;margin:1px 0;border-radius:5px;background:var(--surface);border:1px solid var(--border);flex:none}
.ob-mid-price{font-family:var(--font-mono);font-size:14.5px;font-weight:800;line-height:1.2;font-variant-numeric:tabular-nums;transition:color .15s;will-change:transform}
.ob-mid-price.ob-up.ob-pop{color:var(--success);animation:obFlashU var(--dur-base) ease,obMidPop var(--dur-slow) var(--spring)}
.ob-mid-price.ob-down.ob-pop{color:var(--danger);animation:obFlashD var(--dur-base) ease,obMidPop var(--dur-slow) var(--spring)}
@keyframes obFlashU{0%{background:rgba(53,208,127,.4);text-shadow:0 0 12px rgba(53,208,127,.9)}100%{background:transparent}}
@keyframes obFlashD{0%{background:rgba(255,77,103,.4);text-shadow:0 0 12px rgba(255,77,103,.9)}100%{background:transparent}}
/* V138: цена токена — упругий pop при каждом изменении (KPI) + spring-overshoot (V143) */
@keyframes obMidPop{0%{transform:scale(1)}45%{transform:scale(1.08)}70%{transform:scale(.985)}100%{transform:scale(1)}}
.ob-mid-sub{font-size:10.5px;color:var(--text-3);font-variant-numeric:tabular-nums;text-align:right;line-height:1.3}
.ob-srcs{font-size:10.5px;color:var(--text-3);margin-top:6px;font-family:var(--font-mono)}
.ob-srcs::before{content:'⇄ '}
.ob-mini{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin:10px 0;font-size:12.5px;color:var(--text-2);font-family:var(--font-mono);font-variant-numeric:tabular-nums}
/* V138: уважение prefers-reduced-motion (UIUX Pro Max §1/§7) + V143: жесты и spring отключаются полностью */
@media (prefers-reduced-motion: reduce){
  .ob-row,.ob-bar,.ob-mid-price,.ob-live-dot{animation:none!important;transition:none!important}
  .ob-row.ob-new,.ob-row.ob-gone{opacity:1;transform:none}
  .ob-row:hover,.ob-row:active,.ob-bid:hover,.ob-ask:hover,.ob-bid:active,.ob-ask:active{transform:none!important;box-shadow:none!important;text-shadow:none!important}
}
.ob-mini b{font-size:14px}
.ob-sub{font-size:11px;color:var(--text-3);margin-left:4px}
.ob-hot b{color:var(--warning)}
.ob-src{font-size:10.5px;color:var(--text-3)}
.ob-blur{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(10,12,20,.55);backdrop-filter:blur(7px);z-index:5}
.ob-blur-inner{text-align:center;color:var(--text-1);font-size:13px;line-height:1.7}
.ob-blur-inner span{font-size:11px;color:var(--text-2)}
.ob-blur-inner .btn{margin-top:8px}
/* табы скринеров */
.ob-tabs{display:flex;gap:6px;margin:12px 0 8px;flex-wrap:wrap}
.ob-tab{background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);border-radius:10px;padding:8px 14px;font-size:12.5px;font-weight:700;cursor:pointer;transition:all .2s}
.ob-tab:hover{color:var(--text-1);border-color:var(--accent)}
.ob-tab.active{background:linear-gradient(135deg,rgba(124,92,255,.18),rgba(53,208,127,.12));color:var(--text-1);border-color:var(--accent);box-shadow:0 0 12px rgba(124,92,255,.15)}
.ob-tab-pane{animation:obFade .3s ease}
@keyframes obFade{0%{opacity:0;transform:translateY(4px)}100%{opacity:1;transform:none}}
.ob-lag-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;flex-wrap:wrap}
.ob-lag-btc{font-size:13px;font-weight:700;font-family:var(--font-mono);padding:6px 12px;border-radius:10px;background:rgba(247,147,26,.1);border:1px solid rgba(247,147,26,.35);color:#F7931A}
.ob-lag-btc.up{color:var(--success);border-color:rgba(53,208,127,.4);background:rgba(53,208,127,.08)}
.ob-lag-btc.dn{color:var(--danger);border-color:rgba(255,77,103,.4);background:rgba(255,77,103,.08)}
.ob-lag-table{display:flex;flex-direction:column;gap:4px}
.ob-lag-row{position:relative;display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:8px;background:var(--surface-2);border:1px solid var(--border);overflow:hidden;font-family:var(--font-mono);font-size:12px;font-variant-numeric:tabular-nums;animation:obRowIn .3s ease}
.ob-lag-row .ob-lag-bar{position:absolute;top:0;bottom:0;left:0;background:linear-gradient(90deg,rgba(124,92,255,.25),transparent);opacity:.7;pointer-events:none}
.ob-lag-sym{flex:none;width:64px;font-weight:800;color:var(--text-1)}
.ob-lag-corr{flex:none;width:52px;text-align:center;color:var(--accent);font-weight:800}
.ob-lag-time{flex:none;width:120px;text-align:center;color:var(--text-2)}
.ob-lag-move{flex:none;width:70px;text-align:right;color:var(--success);font-weight:700}
.ob-lag-target{flex:1;min-width:0;text-align:right;color:var(--warning);font-weight:700}
.ob-lag-strong{box-shadow:inset 0 0 0 1px rgba(255,190,50,.5)}
.ob-anom-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:900px){.ob-anom-grid{grid-template-columns:1fr}}
.ob-anom-card .card-title{margin-bottom:6px}
.ob-fvg-list,.ob-liq-list{display:flex;flex-direction:column;gap:4px}
.ob-anom-row{display:flex;align-items:center;gap:12px;padding:6px 10px;border-radius:7px;background:var(--surface-2);border:1px solid var(--border);font-family:var(--font-mono);font-size:12px;font-variant-numeric:tabular-nums;position:relative;overflow:hidden}
.ob-anom-row .ob-big-bar{z-index:0}
.ob-anom-row .ob-az,.ob-anom-row .ob-ar,.ob-anom-row .ob-ast,.ob-anom-row .ob-av{position:relative;z-index:1}
.ob-anom-row .ob-az{flex:none;width:96px;color:var(--text-1);font-weight:700}
.ob-anom-row .ob-ar{flex:1;min-width:0;color:var(--text-2);padding-left:10px} /* V132: текст не налезает на цифры */
.ob-anom-row .ob-ast{flex:none;font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:6px}
.ob-ast-open{background:rgba(53,208,127,.14);color:var(--success)}
.ob-ast-closed{background:rgba(255,77,103,.14);color:var(--danger)}
.ob-ast-above{background:rgba(53,208,127,.14);color:var(--success)}
.ob-ast-below{background:rgba(247,147,26,.14);color:#F7931A}
.ob-anom-row .ob-av{flex:none;width:76px;text-align:right;color:var(--warning);font-weight:700}

/* ============================================================
   V144: СТАКАН В СТИЛЕ «STAKAN» (GitHub dark, canvas-style)
   Палитра из примера: #0d1117 фон / #161b22 панели / #30363d рамки
   Бары: биды #0f3d2e→#00ff88, аски #3d0f0f→#ff4444 · цена справа, объём слева
   Функциональность не меняется: 4 биржи, выбор токена, шаг цены
   ============================================================ */
.ob-card{background:#0d1117;border:1px solid #30363d;border-radius:8px;animation:none;box-shadow:0 8px 24px rgba(0,0,0,.4)}
.ob-head{display:flex;align-items:center;gap:10px;background:#161b22;border-bottom:1px solid #30363d;border-radius:8px 8px 0 0;padding:10px 14px;margin:-1px -1px 0}
.ob-title{font-size:13px;font-weight:600;color:#e6edf3;letter-spacing:.2px}
.ob-title b{color:#58a6ff;font-family:var(--font-mono)}
/* статистика в заголовке — как в примере (Spread / Imbalance) */
.ob-stats{display:flex;gap:14px;font-size:11px;margin-left:4px}
.ob-stat{display:flex;flex-direction:column;gap:1px}
.ob-stat-l{color:#7d8590;font-size:9.5px;text-transform:uppercase;letter-spacing:.5px}
.ob-stat-v{font-weight:700;color:#e6edf3;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:12px}
.ob-stat-v.positive{color:#3fb950}
.ob-stat-v.negative{color:#f85149}
.ob-live{margin-left:auto}
.ob-toolbar{background:#0d1117;border-bottom:1px solid #30363d;padding:8px 10px;margin:0 -1px;border-radius:0}
.ob-toolbar .chip,.ob-toolbar .input,.ob-step-sel{background:#21262d;border:1px solid #30363d;color:#e6edf3;border-radius:4px;font-size:11.5px;padding:5px 10px;transition:background .15s,border-color .15s,color .15s}
.ob-toolbar .chip:hover,.ob-toolbar .input:hover,.ob-step-sel:hover{border-color:#58a6ff;color:#fff}
.ob-toolbar .chip.active,.ob-toolbar .chip.chip-active{background:#238636;border-color:#2ea043;color:#fff}
.ob-step-lbl{color:#7d8590}
.ob-book{height:380px;background:#0d1117;border-radius:0}
.ob-pane{scrollbar-color:#30363d transparent}
.ob-pane::-webkit-scrollbar-thumb{background:#30363d}
/* ряды: цена справа (right-aligned), объём слева после бара — как в canvas-примере */
.ob-row{background:transparent;height:25px;min-height:25px;font-size:11px;color:#e6edf3}
.ob-row .ob-p{flex:none;width:86px;text-align:right;order:2;font-weight:600}
.ob-bid .ob-p{color:#3fb950}
.ob-ask .ob-p{color:#f85149}
.ob-row .ob-t{flex:1;min-width:0;text-align:left;width:auto;order:1;color:#8b949e;font-size:10.5px;padding-left:8px}
/* бары объёма — градиенты в стиле примера, растут от левого края */
.ob-row .ob-bar{opacity:.38;border-radius:2px}
.ob-bid .ob-bar{background:linear-gradient(90deg,#0f3d2e,#00ff88);left:0;right:auto;transform-origin:left center}
.ob-ask .ob-bar{background:linear-gradient(90deg,#3d0f0f,#ff4444);left:0;right:auto;transform-origin:left center}
/* лучший уровень у мида — яркая полоска в стиле примера */
.ob-row.ob-best{opacity:1!important;background:rgba(35,134,54,.18);box-shadow:inset 2px 0 0 #238636}
.ob-row.ob-best.ob-ask{background:rgba(218,54,51,.16);box-shadow:inset 2px 0 0 #da3633}
.ob-row.ob-best .ob-p{color:#fff;text-shadow:0 0 10px rgba(63,185,80,.7)}
.ob-row.ob-best.ob-ask .ob-p{color:#fff;text-shadow:0 0 10px rgba(248,81,73,.7)}
.ob-row.ob-best .ob-bar{opacity:.55}
.ob-row.ob-best .ob-t{color:#c9d1d9}
/* плотность 🔥 — жёлтая рамка GitHub (#d29922) */
.ob-row.ob-dense{background:rgba(210,153,34,.12);box-shadow:inset 0 0 0 1px rgba(210,153,34,.5)}
@keyframes obDensePulse{0%,100%{box-shadow:inset 0 0 0 1px rgba(210,153,34,.5)}50%{box-shadow:inset 0 0 0 1px rgba(210,153,34,.95),0 0 14px rgba(210,153,34,.25)}}
.ob-row.ob-dense .ob-p,.ob-row.ob-dense .ob-q,.ob-row.ob-dense .ob-t{color:#d29922}
/* hover — светлая подложка в стиле GitHub */
.ob-row:hover{background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px #30363d}
.ob-bid:hover .ob-p{text-shadow:0 0 10px rgba(63,185,80,.8)}
.ob-ask:hover .ob-p{text-shadow:0 0 10px rgba(248,81,73,.8)}
/* мид — плашка цены по центру, как price-ticker в примере */
.ob-mid{background:#161b22;border:1px solid #30363d;border-radius:6px;box-shadow:0 4px 12px rgba(0,0,0,.5);padding:5px 14px;margin:2px 6px}
.ob-mid-price{font-size:16px;font-weight:700;color:#e6edf3}
.ob-mid-sub{font-size:10px;color:#8b949e}
/* источники и нижняя строка */
.ob-srcs{color:#8b949e;padding:0 14px 8px}
.ob-mini{background:#161b22;border:1px solid #30363d;border-radius:8px;padding:9px 14px;color:#c9d1d9;font-size:12px}
.ob-mini b{color:#e6edf3}
.ob-sub{color:#8b949e}
.ob-src{color:#8b949e}
.ob-hot b{color:#d29922}
.ob-live-dot.on{background:#3fb950;box-shadow:0 0 10px #3fb950}
.ob-live-dot.poll{background:#d29922;box-shadow:0 0 10px #d29922}

/* ============================================================
   V145: ТЕРМИНАЛ (по коду «Crypto Scalping Terminal»)
   График + canvas-стакан (4 биржи) + лента сделок · GitHub dark
   ============================================================ */
.term-wrap{display:flex;flex-direction:column;gap:0;background:#0d1117;border:1px solid #30363d;border-radius:10px;overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.4)}
.term-top{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:10px 16px;background:#161b22;border-bottom:1px solid #30363d}
.term-sym{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.term-badge{background:#21262d;padding:6px 15px;border-radius:20px;font-weight:700;font-size:14px;border:1px solid #30363d;color:#e6edf3;font-family:var(--font-mono)}
.term-sym select,.term-step select,.term-sym input{background:#21262d;border:1px solid #30363d;color:#e6edf3;padding:6px 11px;border-radius:4px;font-size:13px;outline:none;cursor:pointer;transition:border-color .15s}
/* V154: тёмный нативный dropdown (убрать «белое окно» Chrome) */
.term-sym select,.term-step select,.term-whale select{color-scheme:dark}
.term-sym select option,.term-step select option,.term-whale select option{background:#161b22;color:#e6edf3}
.term-sym select:hover,.term-step select:hover{border-color:#58a6ff}
.term-sym input{width:120px;cursor:text}
.term-btn{background:#21262d;border:1px solid #30363d;color:#e6edf3;padding:6px 13px;border-radius:4px;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}
.term-btn:hover{background:#30363d;border-color:#58a6ff}
/* V151: анимация «поиск пошёл» — спиннер + статус рядом с полем */
.term-search{display:none;align-items:center;gap:7px;padding:6px 12px;border-radius:6px;background:rgba(88,166,255,.1);border:1px solid rgba(88,166,255,.35);color:#58a6ff;font-size:12.5px;font-weight:600;font-family:var(--font-mono);white-space:nowrap}
.term-sym.searching .term-search{display:inline-flex}
.term-search-spin{width:13px;height:13px;border:2px solid rgba(88,166,255,.25);border-top-color:#58a6ff;border-radius:50%;animation:termSpin .7s linear infinite;flex:0 0 auto}
@keyframes termSpin{to{transform:rotate(360deg)}}
/* бегущий скан по стакану во время поиска */
.term-pbody.scan::after{content:'';position:absolute;inset:0;z-index:4;pointer-events:none;background:linear-gradient(115deg,transparent 35%,rgba(88,166,255,.10) 50%,transparent 65%);background-size:220% 100%;animation:termScan 1.15s linear infinite}
@keyframes termScan{0%{background-position:130% 0}100%{background-position:-130% 0}}
.term-tfs{display:flex;gap:6px;flex-wrap:wrap}
.term-tf{background:#161b22;border:1px solid #30363d;color:#8b949e;padding:7px 15px;border-radius:20px;font-size:13px;font-weight:700;cursor:pointer;transition:all .2s}
.term-tf:hover{background:#21262d;color:#e6edf3}
.term-tf.active{background:#238636;border-color:#2ea043;color:#fff}
.term-tf.active-red{background:#da3633;border-color:#f85149;color:#fff}
/* V154: «шаг» и «Кит ≥» — единая группа */
.term-filters{display:flex;align-items:center;gap:8px;padding:3px 6px 3px 10px;background:#161b22;border:1px solid #30363d;border-radius:8px}
.term-step{display:flex;align-items:center;gap:6px}
.term-step-l{font-size:10px;color:#8b949e;text-transform:uppercase;letter-spacing:.5px}
.term-step select{font-family:var(--font-mono);width:auto}
/* V152: фильтр «поиск кита» — золотой акцент при активном пороге */
.term-whale{display:flex;align-items:center;gap:6px}
.term-whale select{background:#161b22;border:1px solid #30363d;color:#8b949e;padding:6px 11px;border-radius:4px;font-size:13px;font-weight:600;font-family:var(--font-mono);outline:none;cursor:pointer;transition:all .2s}
.term-whale select:hover{border-color:#d29922}
.term-whale.active select{background:rgba(227,179,65,.1);border-color:#d29922;color:#f2cc60}
.term-whale.active select:hover{border-color:#e3b341}
.term-stats{display:flex;gap:18px;margin-left:auto;font-size:12px;flex-wrap:wrap}
.term-stat{display:flex;flex-direction:column;gap:2px}
.term-stat-l{color:#8b949e;font-size:10px;text-transform:uppercase;letter-spacing:.5px}
.term-stat-v{font-weight:700;color:#f0f6fc;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:15px}
.term-grid{display:grid;grid-template-columns:1fr 1fr 0.72fr;height:calc(100vh - 190px);min-height:420px;max-height:820px;gap:1px;background:#1c2128}
@media(max-width:1180px){.term-grid{grid-template-columns:1fr 1fr;height:auto}.term-grid .term-panel:nth-child(3){grid-column:1/-1;min-height:240px}}
@media(max-width:760px){.term-grid{grid-template-columns:1fr}.term-grid .term-panel{min-height:300px}}
.term-panel{background:#0d1117;display:flex;flex-direction:column;overflow:hidden;min-width:0}
.term-phead{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;background:#161b22;border-bottom:1px solid #30363d}
.term-phead>span:first-child{font-size:13.5px;font-weight:600;color:#f0f6fc}
.term-srcs{font-size:11px;color:#8b949e;font-family:var(--font-mono);text-align:right}
/* V150: кнопка «центр» — вернуть «две стены» к середине панели */
.term-pin{flex:0 0 auto;width:24px;height:24px;line-height:1;border:1px solid #30363d;border-radius:6px;background:#0d1117;color:#7d8590;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.term-pin:hover{color:#e6edf3;border-color:#58a6ff}
.term-pbody{flex:1;position:relative;overflow:hidden;min-height:0;background:#0d1117}
#termChart{width:100%;height:100%}
/* V153: жёсткая обрезка + заметный скроллбар — книга никогда не вылезает под соседние панели */
.term-book{height:100%;overflow-y:auto;overflow-x:hidden;position:relative;z-index:1;background:#0d1117;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#484f58 transparent}
.term-book::-webkit-scrollbar{width:7px}
.term-book::-webkit-scrollbar-track{background:#161b22}
.term-book::-webkit-scrollbar-thumb{background:#484f58;border-radius:4px;border:1px solid #21262d}
.term-book::-webkit-scrollbar-thumb:hover{background:#58a6ff}
#termCanvas{display:block;width:100%;max-width:100%}
/* МИД — плашка главной цены, закреплена по центру панели стакана */
.term-midbar{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:5;pointer-events:none;background:#161b22;border:1px solid #30363d;border-radius:6px;padding:6px 18px;font-family:var(--font-mono);font-size:14.5px;font-weight:700;color:#e6edf3;white-space:nowrap;box-shadow:0 4px 20px rgba(0,0,0,.6),0 0 0 1px rgba(88,166,255,.12)}
/* поле поиска токена не должно белеть (autofill браузера) */
.term-sym input:-webkit-autofill,.term-sym input:-webkit-autofill:hover,.term-sym input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 1000px #21262d inset!important;-webkit-text-fill-color:#e6edf3!important;caret-color:#e6edf3;transition:background-color 99999s ease-in-out 0s}
.term-sym input{color-scheme:dark}
.term-trades{height:100%;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#30363d transparent}
.term-trades::-webkit-scrollbar{width:5px}
.term-trades::-webkit-scrollbar-thumb{background:#30363d;border-radius:3px}
.term-trade{display:grid;grid-template-columns:60px 1fr 68px 54px;gap:8px;padding:6px 12px;font-size:12.5px;font-family:var(--font-mono);border-bottom:1px solid #161b22;align-items:center;font-variant-numeric:tabular-nums}
.term-trade:hover{background:#161b22}
.term-trade .tt-time{color:#8b949e}
.term-trade .tt-price{font-weight:700}
.term-trade .tt-price.buy,.term-trade .tt-side.buy{color:#3fb950}
.term-trade .tt-price.sell,.term-trade .tt-side.sell{color:#f85149}
.term-trade .tt-vol{text-align:right;color:#f0f6fc}
.term-trade .tt-side{text-align:right;font-weight:800;font-size:10.5px}
.term-status{margin-top:10px;padding:9px 15px;border-radius:6px;font-size:13px;font-weight:700;background:#161b22;border:1px solid #30363d;color:#8b949e;font-family:var(--font-mono);display:inline-block}
.term-status.ok{color:#3fb950;border-color:rgba(63,185,80,.4);background:rgba(35,134,54,.12)}
.term-status.warn{color:#d29922;border-color:rgba(210,153,34,.4);background:rgba(210,153,34,.1)}
.term-status.bad{color:#f85149;border-color:rgba(248,81,73,.4);background:rgba(218,54,51,.1)}

/* ============================================================
   V165: МОБИЛЬНАЯ ВЁРСТКА — страница не должна раздуваться
   Треки grid со значением 1fr = minmax(auto,1fr): если контент карточки
   (таблицы, канвасы) шире экрана, трек растёт до min-content и вся страница
   расширяется (на телефоне 390px → 655px, браузер авто-зумит, графики мелкие).
   minmax(0,1fr) позволяет треку сжиматься; таблицы скроллятся внутри .table-wrap.
   ============================================================ */
@media (max-width: 900px) {
  /* grid-элементы вьюх могут сжиматься ниже min-content контента */
  .view [class*="grid"] > * { min-width: 0; }

  /* таблицы дашборда: sticky-шапка требует overflow:visible — на мобильных
     возвращаем внутренний скролл, иначе таблица 605px раздувает страницу */
  #view-dashboard .g-score .table-wrap,
  #view-dashboard .g-market .table-wrap {
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
  }

  /* сетки, которые на мобильных одноколоночные — разрешить сжатие */
  .liq-kpi-grid, .liq-clusters-grid, .shadow-grid2, .term-grid,
  .trade-layout, .pf-grid, .strat-grid, .plans, .factors-grid,
  .ob-duo, .ob-anom-grid, .expert-grid, .scenarios-row,
  .shadow-grid, .ob-grid, .ct-grid, .pm-grid, .tok-grid, #pmFeedList {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  /* двухколоночные сетки — тоже со сжимаемыми треками */
  .ais-grid, .pulse-grid, .widgets-grid, .pm-stats, .auth-grid, .foot-gainers {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  /* канвасы графиков не шире экрана */
  canvas { max-width: 100%; }
}

/* V172: ячейка «монета + биржа» (скринер OI) — кнопка в ряду, бейдж бирж правее,
   ничего не наезжает на имя токена (иначе absolute-кнопка по центру td накрывает бейдж/имя) */
td.scr-tb-td .scr-tb-badge .scr-tb-btn {
  position: static;
  transform: none;
  margin-left: 7px;
}
td.scr-tb-td .ex-badge {
  margin-left: 10px;
}

/* очень узкие экраны (<480px): KPI-цифры и плитки пульса не переносятся */
@media (max-width: 480px) {
  .card { padding: 16px 14px; }
  .kpi-value { font-size: 22px !important; }
  .card-title { font-size: 11.5px; flex-wrap: wrap; } /* V172-mob: шкала ликвидности «слабее/сильнее» переносится, не вылезает за край */
  .ais-grid, .pulse-grid, .widgets-grid, .pm-stats, .foot-gainers {
    grid-template-columns: 1fr !important;
  }
  /* V172-mob: базовый текст 16px (нет авто-зума iOS при фокусе инпутов), тач-цели ≥44px */
  body { font-size: 16px; }
  .chip { padding: 11px 14px; font-size: 14px; min-height: 44px; }
  .btn-sm { padding: 10px 14px; }
  .mobile-nav button { padding: 10px 2px 9px; }
  .mobile-nav button svg { width: 22px; height: 22px; }
  /* новости/радар: шапка карточки переносится, время не растягивает страницу */
  .threat-head { flex-wrap: wrap; }
  .threat-time { white-space: normal; min-width: 100%; text-align: right; }
}

