/* ═══════════════════════════════════════════════════════════
   CoinMarketShark — Deep-Ocean Terminal Design System
   Концепция: глубоководный терминал. Биолюминесцентные акценты
   на фоне океанской бездны. Данные светятся как планктон.
   ═══════════════════════════════════════════════════════════ */

:root {
  /* ── Палитра: океанская бездна + биолюминесценция ── */
  --abyss:      #060d16;   /* фон — глубина */
  --deep:       #0a1420;   /* панели */
  --deep2:      #0f1d2e;   /* приподнятые панели */
  --trench:     #13273c;   /* чипы, инпуты */
  --line:       #1c3350;   /* границы */
  --line-soft:  #16283e;
  --ink:        #eaf4ff;   /* текст */
  --ink-dim:    #8fa8c4;   /* приглушённый */
  --ink-faint:  #56708f;   /* очень тихий */
  --cyan:       #22d3ee;   /* биолюм-циан (главный акцент) */
  --cyan-deep:  #0891b2;
  --coral:      #f97362;   /* коралл (второй акцент, опасность/сброс) */
  --up:         #2ee6a0;   /* рост */
  --down:       #ff5e7a;   /* падение */
  --gold:       #ffc247;   /* топ/король */
  --violet:     #a78bfa;   /* доп акцент */
  --glow-cyan:  0 0 24px rgba(34,211,238,.35);
  --grad-shark: linear-gradient(135deg, #22d3ee, #0891b2);
  --grad-coral: linear-gradient(135deg, #f97362, #fb923c);
  --grad-hero:  linear-gradient(120deg, #22d3ee, #a78bfa, #f97362);
  /* тип-система */
  --disp: 'Space Grotesk', system-ui, sans-serif;
  --body: 'Inter', system-ui, sans-serif;
  --mono: 'JetBrains Mono', monospace;
  --wrap: 1500px;
  --r: 14px;
  --panel: #0d1a29;
  --panel2: #0f1d2e;
}

[data-theme="light"] {
  --abyss:#eef4fb; --deep:#fff; --deep2:#f6f9fd; --trench:#eaf1f9; --line:#dbe6f2;
  --line-soft:#e6eef7; --ink:#0a1420; --ink-dim:#4a627e; --ink-faint:#8098b4;
  --panel:#ffffff; --panel2:#f6f9fd;
}

/* ═══ ДИЗАЙН-СИСТЕМА: единая шкала (radius / shadow / spacing) v97 ═══
   Целостность визуального языка: все элементы используют один набор значений. */
:root {
  /* радиусы — гармоничная шкала (модульная) */
  --r-xs: 6px;    /* мелкие пилюли, бейджи */
  --r-sm: 10px;   /* кнопки, инпуты, вкладки */
  --r-md: 14px;   /* карточки среднего уровня */
  --r-lg: 18px;   /* панели, крупные карточки */
  --r-xl: 24px;   /* модалки, hero-блоки */
  --r-full: 999px;/* круглые */
  /* тени — единая система глубины (elevation) */
  --sh-1: 0 2px 8px -4px rgba(4,10,20,.4);                                   /* лёгкая */
  --sh-2: inset 0 1px 0 rgba(255,255,255,.045), 0 6px 20px -14px rgba(4,10,20,.55); /* карточка */
  --sh-3: inset 0 1px 0 rgba(255,255,255,.06), 0 14px 34px -18px rgba(4,10,20,.65);  /* поднятая */
  --sh-glow-cyan: 0 8px 24px -10px rgba(34,211,238,.5);
  --sh-glow-up: 0 8px 24px -10px rgba(46,230,160,.5);
  --sh-glow-down: 0 8px 24px -10px rgba(255,94,122,.5);
  /* отступы — 4px-базовая шкала */
  --sp-1: 4px; --sp-2: 8px; --sp-3: 12px; --sp-4: 16px; --sp-5: 20px; --sp-6: 24px; --sp-8: 32px;
  /* тайминги анимаций — единые */
  --ease: cubic-bezier(.2,.8,.3,1);
  --dur-fast: .15s; --dur: .2s; --dur-slow: .35s;
  /* ТИПОГРАФИЧЕСКАЯ ШКАЛА — модульная (1.2 ratio), единые размеры */
  --fs-xs: 11px;    /* подписи, метки, eyebrow */
  --fs-sm: 13px;    /* вторичный текст, таблицы */
  --fs-base: 15px;  /* основной текст */
  --fs-md: 17px;    /* акценты */
  --fs-lg: 21px;    /* подзаголовки */
  --fs-xl: 27px;    /* заголовки блоков */
  --fs-2xl: 34px;   /* крупные значения */
  --fs-3xl: 44px;   /* hero */
  /* межстрочные */
  --lh-tight: 1.15; --lh-normal: 1.55; --lh-loose: 1.7;
  /* трекинг */
  --ls-tight: -.02em; --ls-wide: .5px;
}
[data-theme="light"] {
  --sh-1: 0 2px 8px -4px rgba(20,50,90,.12);
  --sh-2: inset 0 1px 0 rgba(255,255,255,.6), 0 4px 16px -10px rgba(20,50,90,.15);
  --sh-3: 0 14px 34px -18px rgba(20,50,90,.22);
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; background:var(--abyss); }
body {
  background:transparent; color:var(--ink);
  font:15px/1.55 var(--body);
  overflow-x:hidden; min-height:100vh; position:relative;
}
button { font-family:inherit; cursor:pointer; border:none; background:none; color:inherit; }
input, select, textarea { font-family:inherit; }
a { color:inherit; text-decoration:none; cursor:pointer; }
.wrap { max-width:var(--wrap); margin:0 auto; padding:0 22px; }
::selection { background:rgba(34,211,238,.28); }

/* ── Атмосфера: глубоководное свечение ── */
#ambient {
  position:fixed; inset:0; z-index:0; pointer-events:none; opacity:.7;
  background:
    radial-gradient(ellipse 60% 40% at 20% -5%, rgba(34,211,238,.10), transparent 60%),
    radial-gradient(ellipse 50% 45% at 85% 5%, rgba(167,139,250,.08), transparent 60%),
    radial-gradient(ellipse 70% 50% at 50% 105%, rgba(249,115,98,.06), transparent 65%);
  animation:drift 22s ease-in-out infinite alternate;
}
@keyframes drift { 0%{transform:translate(0,0)} 100%{transform:translate(-1.5%,1%)} }

/* ── Скроллбар ── */
::-webkit-scrollbar { width:10px; height:10px; }
::-webkit-scrollbar-track { background:var(--abyss); }
::-webkit-scrollbar-thumb { background:var(--line); border-radius:5px; border:2px solid var(--abyss); }
::-webkit-scrollbar-thumb:hover { background:var(--cyan-deep); }

/* ═══ ВЕРХНЯЯ ЛЕНТА МЕТРИК ═══ */
.market-ticker {
  position:relative; z-index:5; background:var(--deep);
  border-bottom:1px solid var(--line-soft); overflow:hidden; height:38px;
  display:flex; align-items:center;
}
.mt-track { display:flex; gap:28px; white-space:nowrap; animation:mtScroll 60s linear infinite; padding-left:22px; }
.mt-track:hover { animation-play-state:paused; }
@keyframes mtScroll { from{transform:translateX(0)} to{transform:translateX(-50%)} }
.mt-item { display:inline-flex; align-items:center; gap:7px; font-size:12.5px; font-family:var(--mono); }
.mt-item .lbl { color:var(--ink-faint); }
.mt-item .val { color:var(--ink); font-weight:500; }
.mt-item .chg.up { color:var(--up); } .mt-item .chg.down { color:var(--down); }

/* ═══ ШАПКА ═══ */
.topbar {
  position:sticky; top:0; z-index:100;
  background:color-mix(in srgb, var(--abyss) 82%, transparent);
  backdrop-filter:blur(18px) saturate(1.4);
  border-bottom:1px solid var(--line-soft);
}
.topbar-in { display:flex; align-items:center; gap:16px; height:64px; flex-wrap:nowrap; max-width:var(--wrap); width:100%; }
.brand { display:flex; align-items:center; gap:10px; flex:0 0 auto; }
.brand-fin { width:42px; height:28px; filter:drop-shadow(0 0 10px rgba(34,211,238,.4)); animation:finSwim 4s ease-in-out infinite; }
@keyframes finSwim { 0%,100%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-2px) rotate(-2deg)} }
.brand-name { font-family:var(--disp); font-size:19px; font-weight:500; letter-spacing:-.02em; white-space:nowrap; }
.brand-name b { font-weight:700; background:var(--grad-shark); -webkit-background-clip:text; background-clip:text; color:transparent; }
.mainnav { display:flex; gap:2px; flex:1 1 auto; justify-content:flex-start; min-width:0; flex-wrap:nowrap; margin-right:auto; overflow:hidden; }
.nv {
  padding:8px 13px; border-radius:10px; color:var(--ink-dim);
  font-size:14px; font-weight:500; transition:.16s; position:relative; white-space:nowrap;
}
.nv:hover { color:var(--ink); background:var(--trench); }
.nv.act { color:var(--ink); }
.nv.act::after {
  content:""; position:absolute; left:13px; right:13px; bottom:-2px; height:2px;
  background:var(--grad-shark); border-radius:2px; box-shadow:var(--glow-cyan);
}
.topbar-actions { display:flex; align-items:center; gap:6px; flex:none; flex-shrink:0; }
.icon-btn {
  width:36px; height:36px; border-radius:10px; background:var(--trench);
  color:var(--ink-dim); display:flex; align-items:center; justify-content:center;
  transition:.16s; font-size:15px; flex:none;
}
.icon-btn:hover { color:var(--cyan); background:var(--deep2); }
.wallet-btn {
  padding:9px 16px; border-radius:11px; background:var(--grad-shark); color:#04212b;
  font-weight:700; font-size:13.5px; transition:.18s; box-shadow:0 3px 16px rgba(34,211,238,.3);
  white-space:nowrap; flex:none;
}
.wallet-btn:hover { transform:translateY(-1px); box-shadow:0 6px 24px rgba(34,211,238,.45); }
.wallet-btn.connected { background:var(--trench); color:var(--ink); box-shadow:none; font-family:var(--mono); display:flex; align-items:center; gap:6px; }
/* живой индикатор встроен в поток, не перекрывает */
.live-indicator { position:static !important; }

/* ═══ ПОИСК (командная палитра) ═══ */
.search-overlay {
  position:fixed; inset:0; z-index:300; display:none;
  background:rgba(6,13,22,.72); backdrop-filter:blur(6px);
  padding-top:12vh; justify-content:center; align-items:flex-start;
}
.search-overlay.open { display:flex; animation:fadeIn .18s; }
@keyframes fadeIn { from{opacity:0} to{opacity:1} }
.search-box {
  width:100%; max-width:600px; background:var(--deep); border:1px solid var(--line);
  border-radius:18px; overflow:hidden; box-shadow:0 24px 80px rgba(0,0,0,.6); animation:popIn .22s;
}
@keyframes popIn { from{transform:translateY(-14px) scale(.98);opacity:0} to{transform:none;opacity:1} }
.search-input-row { display:flex; align-items:center; gap:12px; padding:16px 20px; border-bottom:1px solid var(--line-soft); }
.search-ic { font-size:22px; color:var(--cyan); }
#searchInput { flex:1; background:none; border:none; outline:none; color:var(--ink); font-size:17px; }
#searchInput::placeholder { color:var(--ink-faint); }
.search-input-row kbd { font-family:var(--mono); font-size:11px; color:var(--ink-faint); background:var(--trench); padding:3px 7px; border-radius:6px; }
.search-results { max-height:52vh; overflow-y:auto; }
.sr-item { display:flex; align-items:center; gap:12px; padding:12px 20px; cursor:pointer; transition:.12s; }
.sr-item:hover, .sr-item.sel { background:var(--trench); }
.sr-logo { width:32px; height:32px; border-radius:50%; flex:none; }
.sr-empty { padding:28px 20px; text-align:center; color:var(--ink-faint); font-size:14px; }

/* ═══ ОБЩИЕ КОМПОНЕНТЫ ═══ */
#view { position:relative; z-index:1; padding:26px 22px 60px; min-height:70vh; }
.panel { background:var(--deep); border:1px solid var(--line-soft); border-radius:var(--r); }
.eyebrow { font-family:var(--mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--cyan); font-weight:500; }
.page-title { font-family:var(--disp); font-size:30px; font-weight:700; letter-spacing:-.02em; margin:4px 0 2px; }
.page-sub { color:var(--ink-dim); font-size:14.5px; margin-bottom:22px; }
.pill { display:inline-flex; align-items:center; gap:5px; padding:3px 10px; border-radius:20px; font-size:12px; font-weight:600; }
.pill.up { background:rgba(46,230,160,.12); color:var(--up); }
.pill.down { background:rgba(255,94,122,.12); color:var(--down); }
.mono { font-family:var(--mono); }
.up-t { color:var(--up); } .down-t { color:var(--down); }

/* ═══ ГЕРО-ДАШБОРД РЫНКА ═══ */
.hero-metrics { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:26px; }
.hm-card {
  background:var(--deep); border:1px solid var(--line-soft); border-radius:var(--r);
  padding:18px; position:relative; overflow:hidden; transition:.2s;
}
.hm-card::after {
  content:""; position:absolute; left:0; right:0; bottom:0; height:2px;
  background:var(--grad-shark); opacity:.5; transition:.2s;
}
.hm-card:hover { border-color:var(--line); transform:translateY(-2px); }
.hm-card:hover::after { opacity:1; }
.hm-label { font-size:12.5px; color:var(--ink-dim); display:flex; align-items:center; gap:6px; }
.hm-value { font-family:var(--disp); font-size:26px; font-weight:700; margin:8px 0 4px; letter-spacing:-.02em; }
.hm-spark { height:32px; margin-top:6px; }

/* ═══ ТАБЛИЦА РЫНКА ═══ */
.market-table { width:100%; border-collapse:collapse; }
.market-table thead th {
  text-align:right; font-size:12px; font-weight:600; color:var(--ink-faint);
  padding:12px 14px; border-bottom:1px solid var(--line-soft); white-space:nowrap;
  position:sticky; top:64px; background:var(--deep); z-index:2; cursor:pointer; user-select:none;
}
.market-table thead th:first-child, .market-table thead th.tl { text-align:left; }
.market-table thead th:hover { color:var(--ink); }
.market-table thead th .arr { color:var(--cyan); margin-left:3px; }
.market-table tbody td { padding:14px 10px; text-align:right; border-bottom:1px solid var(--line-soft); font-size:14px; white-space:nowrap; }
.market-table tbody td:first-child, .market-table tbody td.tl { text-align:left; }
.market-table tbody tr { cursor:pointer; transition:.12s; }
.market-table tbody tr:hover { background:var(--deep2); }
/* колонка графика — фикс ширины, чтобы таблица заполняла контейнер */
.market-table thead th:nth-last-child(2), .market-table tbody td:nth-last-child(2) { padding-right:16px; }
.mt-coin { display:flex; align-items:center; gap:11px; }
/* компактная первая колонка: звезда + номер, минимум пустоты */
.market-table th.mt-first, .market-table td.mt-first { width:44px; padding-left:12px !important; padding-right:2px !important; }
.market-table th.tl:nth-child(2), .market-table td.tl:nth-child(2) { padding-left:2px !important; }
.mt-rankwrap { display:flex; align-items:center; gap:6px; }
.mt-rank { color:var(--ink-faint); font-family:var(--mono); font-size:12px; min-width:16px; text-align:right; }
.mt-star { color:var(--ink-faint); transition:.15s; font-size:16px; display:inline-flex; align-items:center; cursor:pointer; }
.mt-star:hover, .mt-star.on { color:var(--gold); }
.mt-logo { width:30px; height:30px; border-radius:50%; flex:none; background:var(--trench); object-fit:cover; }
.mt-logo-ph { width:30px; height:30px; border-radius:50%; flex:none; background:var(--grad-shark); display:flex; align-items:center; justify-content:center; font-weight:700; color:#04212b; font-size:13px; }
.mt-name { font-weight:600; }
.mt-sym { color:var(--ink-faint); font-size:12.5px; font-family:var(--mono); }
.mt-price { font-family:var(--mono); font-weight:500; }
.spark-cell { width:130px; }
.spark-cell svg { display:block; }
.mt-buy {
  padding:6px 14px; border-radius:9px; background:var(--trench); color:var(--cyan);
  font-weight:600; font-size:13px; transition:.15s; border:1px solid var(--line-soft);
}
.mt-buy:hover { background:var(--grad-shark); color:#04212b; border-color:transparent; }

/* фильтры категорий рынка */
.cat-tabs { display:flex; gap:6px; margin-bottom:16px; flex-wrap:wrap; }
.cat-tab { padding:8px 15px; border-radius:10px; background:var(--deep); border:1px solid var(--line-soft); color:var(--ink-dim); font-weight:500; font-size:13.5px; transition:.15s; }
.cat-tab:hover { color:var(--ink); border-color:var(--line); }
.cat-tab.act { background:var(--trench); color:var(--cyan); border-color:var(--cyan-deep); }

/* ═══ СТРАНИЦА ТОКЕНА ═══ */
.token-hero { display:flex; gap:24px; align-items:flex-start; margin-bottom:24px; flex-wrap:wrap; }
.th-left { flex:1; min-width:320px; }
.th-id { display:flex; align-items:center; gap:14px; margin-bottom:16px; }
.th-logo { width:60px; height:60px; border-radius:50%; background:var(--trench); object-fit:cover; box-shadow:var(--glow-cyan); }
.th-name { font-family:var(--disp); font-size:28px; font-weight:700; letter-spacing:-.02em; }
.th-sym { color:var(--ink-faint); font-family:var(--mono); font-size:15px; }
.th-rank-badge { display:inline-block; background:var(--trench); color:var(--ink-dim); font-size:12px; padding:3px 9px; border-radius:7px; font-family:var(--mono); }
.th-price { font-family:var(--disp); font-size:42px; font-weight:700; letter-spacing:-.03em; }
.th-metrics { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:1px; background:var(--line-soft); border:1px solid var(--line-soft); border-radius:var(--r); overflow:hidden; margin-top:18px; }
.thm { background:var(--deep); padding:14px 16px; }
.thm .k { font-size:12px; color:var(--ink-faint); }
.thm .v { font-family:var(--mono); font-weight:500; font-size:15px; margin-top:3px; }
.th-right { width:340px; flex:none; }
@media(max-width:900px){ .th-right{ width:100%; } }

/* ═══ ТОРГОВЫЙ ВИДЖЕТ ═══ */
.trade-card { background:var(--deep); border:1px solid var(--line-soft); border-radius:var(--r); padding:18px; }
.trade-tabs { display:flex; gap:4px; background:var(--trench); border-radius:11px; padding:3px; margin-bottom:14px; }
.trade-tab { flex:1; padding:9px; border-radius:8px; font-weight:600; font-size:14px; color:var(--ink-dim); transition:.15s; }
.trade-tab.buy.act { background:var(--up); color:#04212b; }
.trade-tab.sell.act { background:var(--down); color:#fff; }
.trade-input { width:100%; background:var(--abyss); border:1px solid var(--line-soft); border-radius:11px; padding:14px; color:var(--ink); font-size:22px; font-family:var(--mono); text-align:right; outline:none; transition:.15s; }
.trade-input:focus { border-color:var(--cyan); }
.trade-presets { display:flex; gap:6px; margin:10px 0; }
.tp-btn { flex:1; padding:8px; border-radius:9px; background:var(--trench); color:var(--ink-dim); font-size:13px; font-weight:600; transition:.15s; }
.tp-btn:hover { color:var(--cyan); background:var(--deep2); }
.trade-exec { width:100%; padding:15px; border-radius:12px; font-weight:700; font-size:15px; margin-top:12px; transition:.18s; }
.trade-exec.buy { background:var(--grad-shark); color:#04212b; }
.trade-exec.sell { background:var(--grad-coral); color:#fff; }
.trade-exec:hover { transform:translateY(-2px); filter:brightness(1.08); }

/* ═══ ГРАФИК ═══ */
.chart-panel { background:var(--deep); border:1px solid var(--line-soft); border-radius:var(--r); overflow:hidden; }
.chart-head { display:flex; align-items:center; justify-content:space-between; padding:14px 18px; border-bottom:1px solid var(--line-soft); }
.tf-tabs { display:flex; gap:2px; background:var(--trench); border-radius:9px; padding:2px; }
.tf-tab { padding:6px 12px; border-radius:7px; font-size:12.5px; font-weight:600; color:var(--ink-dim); transition:.15s; }
.tf-tab.act { background:var(--deep); color:var(--cyan); }
#chartBox { height:420px; }

/* ═══ ТАБЫ ДЕТАЛЕЙ (сделки/холдеры/чат) ═══ */
.dtabs { display:flex; gap:4px; margin:24px 0 14px; border-bottom:1px solid var(--line-soft); }
.dtab { padding:11px 16px; font-weight:600; font-size:14px; color:var(--ink-dim); transition:.15s; position:relative; }
.dtab.act { color:var(--ink); }
.dtab.act::after { content:""; position:absolute; left:0; right:0; bottom:-1px; height:2px; background:var(--grad-shark); }
.txn-row { display:grid; grid-template-columns:80px 1fr 1fr 1fr 60px; gap:10px; padding:10px 12px; border-bottom:1px solid var(--line-soft); font-size:13px; font-family:var(--mono); align-items:center; }
.txn-row .side.buy { color:var(--up); } .txn-row .side.sell { color:var(--down); }

/* ═══ DEX-СКРИНЕР ═══ */
.dex-controls { display:flex; gap:12px; align-items:center; margin-bottom:16px; flex-wrap:wrap; }
.dex-search { flex:1; min-width:200px; background:var(--deep); border:1px solid var(--line-soft); border-radius:11px; padding:11px 15px; color:var(--ink); outline:none; }
.dex-search:focus { border-color:var(--cyan); }
.chip-select { display:flex; gap:6px; background:var(--deep); border:1px solid var(--line-soft); border-radius:11px; padding:3px; }
.chip-opt { padding:7px 13px; border-radius:8px; font-size:13px; font-weight:600; color:var(--ink-dim); transition:.15s; }
.chip-opt.act { background:var(--trench); color:var(--cyan); }

/* ═══ КОМЬЮНИТИ / ОБУЧЕНИЕ ═══ */
.grid-cards { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:16px; }
.info-card { background:var(--deep); border:1px solid var(--line-soft); border-radius:var(--r); padding:22px; transition:.2s; }
.info-card:hover { border-color:var(--cyan-deep); transform:translateY(-3px); box-shadow:0 12px 40px rgba(34,211,238,.12); }
.info-card h3 { font-family:var(--disp); font-size:18px; margin-bottom:8px; }
.info-card p { color:var(--ink-dim); font-size:14px; line-height:1.6; }
.info-card .ic-emoji { font-size:30px; margin-bottom:12px; display:block; }

/* ═══ TrendStrip (топ-муверы) ═══ */
.trend-strip { display:flex; gap:12px; overflow-x:auto; padding-bottom:6px; margin-bottom:22px; }
.trend-strip::-webkit-scrollbar { height:6px; }
.trend-item { flex:none; min-width:180px; background:var(--deep); border:1px solid var(--line-soft); border-radius:12px; padding:13px 15px; cursor:pointer; transition:.15s; }
.trend-item:hover { border-color:var(--cyan-deep); }
.trend-item .ti-head { display:flex; align-items:center; gap:8px; margin-bottom:8px; }
.trend-item .ti-logo { width:24px; height:24px; border-radius:50%; }
.trend-item .ti-sym { font-weight:600; font-size:14px; }
.trend-item .ti-price { font-family:var(--mono); font-size:15px; }

/* ═══ КНОПКИ / УТИЛ ═══ */
.btn { padding:10px 18px; border-radius:11px; background:var(--grad-shark); color:#04212b; font-weight:700; font-size:14px; transition:.18s; }
.btn:hover { transform:translateY(-1px); filter:brightness(1.08); }
.btn-ghost { padding:10px 18px; border-radius:11px; background:var(--trench); color:var(--ink); font-weight:600; transition:.15s; border:1px solid var(--line-soft); }
.btn-ghost:hover { border-color:var(--cyan-deep); color:var(--cyan); }
.skel { background:linear-gradient(100deg,var(--deep2) 30%,var(--trench) 50%,var(--deep2) 70%); background-size:200% 100%; animation:skel 1.3s infinite; border-radius:8px; }
@keyframes skel { 0%{background-position:200% 0} 100%{background-position:-200% 0} }

/* ═══ ФУТЕР ═══ */
.footer { position:relative; z-index:1; border-top:1px solid var(--line-soft); margin-top:60px; background:var(--deep); }
.footer-in { display:flex; gap:60px; padding:44px 22px; flex-wrap:wrap; }
.foot-brand { flex:1; min-width:240px; }
.foot-brand p { color:var(--ink-dim); font-size:13.5px; margin-top:12px; max-width:340px; line-height:1.6; }
.foot-cols { display:flex; gap:56px; flex-wrap:wrap; }
.foot-cols h5 { font-size:13px; color:var(--ink-faint); text-transform:uppercase; letter-spacing:.08em; margin-bottom:12px; }
.foot-cols a { display:block; color:var(--ink-dim); font-size:14px; padding:4px 0; transition:.15s; }
.foot-cols a:hover { color:var(--cyan); }
.foot-bottom { padding:18px 22px; border-top:1px solid var(--line-soft); color:var(--ink-faint); font-size:12.5px; display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; }
.foot-utils { display:flex; align-items:center; gap:10px; }
.foot-gas {
  display:inline-flex; align-items:center; gap:6px; padding:6px 12px; border-radius:var(--r-full);
  background:var(--trench); color:var(--ink-dim); font-size:12px; font-family:var(--mono); font-weight:500; white-space:nowrap;
}
.foot-gas #gasVal { color:var(--gold); }
.foot-install {
  display:inline-flex; align-items:center; gap:5px; padding:6px 14px; border-radius:var(--r-full);
  background:linear-gradient(135deg, rgba(34,211,238,.15), rgba(167,139,250,.12));
  border:1px solid rgba(34,211,238,.35); color:var(--cyan); font-size:12px; font-weight:650;
  cursor:pointer; transition:.16s var(--ease); white-space:nowrap;
}
.foot-install:hover { background:var(--cyan); color:#04121d; border-color:var(--cyan); transform:translateY(-1px); }

/* ═══ TO-TOP + ТОСТЫ ═══ */
.to-top { position:fixed; bottom:26px; right:26px; width:46px; height:46px; border-radius:50%; background:var(--grad-shark); color:#04212b; font-size:20px; font-weight:800; box-shadow:0 6px 24px rgba(34,211,238,.4); opacity:0; transform:translateY(20px) scale(.8); pointer-events:none; transition:.25s; z-index:150; }
.to-top.show { opacity:1; transform:none; pointer-events:auto; }
.to-top:hover { transform:translateY(-3px) scale(1.05); }
.toasts { position:fixed; bottom:26px; left:50%; transform:translateX(-50%); z-index:400; display:flex; flex-direction:column; gap:8px; align-items:center; }
.toast { background:var(--deep2); border:1px solid var(--line); border-radius:12px; padding:12px 20px; font-size:14px; box-shadow:0 8px 30px rgba(0,0,0,.5); animation:toastIn .3s; }
.toast.ok { border-color:var(--up); } .toast.err { border-color:var(--down); }
@keyframes toastIn { from{transform:translateY(16px);opacity:0} to{transform:none;opacity:1} }

/* ═══ АДАПТИВ ═══ */
@media(max-width:1000px){ .hero-metrics{grid-template-columns:repeat(2,1fr)} .mainnav{display:none} }
@media(max-width:640px){
  .hero-metrics{grid-template-columns:1fr 1fr}
  .page-title{font-size:24px}
  .spark-cell,.market-table .hide-sm{display:none}
  .th-price{font-size:34px}
}
@media(prefers-reduced-motion:reduce){ *{animation:none!important; transition:none!important} }

/* ═══ ЖИВАЯ ПОДСВЕТКА ЦЕН ═══ */
@keyframes flashUp { 0%{background:rgba(46,230,160,.22)} 100%{background:transparent} }
@keyframes flashDown { 0%{background:rgba(255,94,122,.22)} 100%{background:transparent} }
.flash-up { animation:flashUp 1s ease-out; }
.flash-down { animation:flashDown 1s ease-out; }
sub { font-size:.7em; color:var(--ink-faint); vertical-align:-.2em; font-weight:700; padding:0 .5px; }

/* ═══ КОНВЕРТЕР ═══ */
.converter { background:var(--deep); border:1px solid var(--line-soft); border-radius:var(--r); padding:20px; max-width:440px; }
.conv-row { display:flex; gap:10px; align-items:center; background:var(--abyss); border:1px solid var(--line-soft); border-radius:12px; padding:12px 14px; margin-bottom:10px; }
.conv-row input { flex:1; background:none; border:none; outline:none; color:var(--ink); font-size:20px; font-family:var(--mono); }
.conv-row select { background:var(--trench); border:1px solid var(--line-soft); border-radius:9px; padding:8px 12px; color:var(--ink); font-weight:600; }
.conv-swap { width:36px; height:36px; border-radius:50%; background:var(--trench); color:var(--cyan); margin:-4px auto; display:flex; align-items:center; justify-content:center; font-size:16px; }

/* ═══ ПОРТФЕЛЬ ═══ */
.pf-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:22px; }
.pf-card { background:var(--deep); border:1px solid var(--line-soft); border-radius:var(--r); padding:18px; }
.pf-card .k { font-size:12.5px; color:var(--ink-dim); }
.pf-card .v { font-family:var(--disp); font-size:24px; font-weight:700; margin-top:6px; }

/* адаптив портфеля */
@media(max-width:640px){ .pf-summary{grid-template-columns:1fr} }

/* ═══ ТЕПЛОВАЯ КАРТА РЫНКА ═══ */
.heatmap { display:flex; flex-wrap:wrap; gap:4px; border-radius:14px; overflow:hidden; }
.heat-tile { flex:1; min-height:70px; border-radius:8px; padding:12px; cursor:pointer; display:flex; flex-direction:column; justify-content:center; transition:.15s; border:1px solid rgba(255,255,255,.04); }
.heat-tile:hover { transform:scale(1.03); z-index:2; box-shadow:0 6px 20px rgba(0,0,0,.4); }
.ht-sym { font-family:var(--disp); font-weight:700; font-size:15px; }
.ht-ch { font-family:var(--mono); font-size:13px; margin-top:2px; opacity:.9; }
.btn-ghost.act { background:var(--trench); color:var(--cyan); border-color:var(--cyan-deep); }

/* ═══ КОМЬЮНИТИ: топ-трейдеры/муверы ═══ */
.lb-row { display:flex; align-items:center; gap:12px; padding:11px 14px; border-bottom:1px solid var(--line-soft); transition:.12s; cursor:pointer; }
.lb-row:hover { background:var(--deep2); }
.lb-rank { font-family:var(--mono); font-weight:700; color:var(--ink-faint); width:28px; }
.lb-rank.top { color:var(--gold); }
.mover-item { display:flex; align-items:center; gap:10px; padding:9px 12px; border-radius:10px; transition:.12s; cursor:pointer; }
.mover-item:hover { background:var(--deep2); }
@media(max-width:700px){ .comm-grid{grid-template-columns:1fr!important} }

/* ═══ BUBBLE-MAP ═══ */
.bubble { transition:.2s; }
.bubble:hover circle { fill-opacity:.6; }
.bubble:hover { filter:drop-shadow(0 0 8px rgba(34,211,238,.4)); }

/* ═══ ДАШБОРД ═══ */
.act-row { display:flex; align-items:center; gap:10px; padding:11px 14px; border-bottom:1px solid var(--line-soft); cursor:pointer; transition:.12s; }
.act-row:hover { background:var(--deep2); }
.act-dot { width:7px; height:7px; border-radius:50%; flex:none; }
.act-dot.buy { background:var(--up); box-shadow:0 0 8px var(--up); }
.act-dot.sell { background:var(--down); box-shadow:0 0 8px var(--down); }
@media(max-width:900px){ .dash-top{grid-template-columns:1fr!important} .dash-bottom{grid-template-columns:1fr!important} }

/* ═══ СТАКАН ГЛУБИНЫ ═══ */
.depth-head { display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; padding:8px 12px; font-size:11px; color:var(--ink-faint); text-transform:uppercase; letter-spacing:.05em; }
.depth-head span:not(:first-child) { text-align:right; }
.depth-row { display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; padding:5px 12px; font-size:12.5px; position:relative; }
.depth-row span:not(.depth-bar) { position:relative; z-index:1; }
.depth-row span:nth-child(3), .depth-row span:nth-child(4) { text-align:right; }
.depth-bar { position:absolute; right:0; top:0; bottom:0; z-index:0; opacity:.1; }
.depth-row.ask .depth-bar { background:var(--down); }
.depth-row.bid .depth-bar { background:var(--up); }
.depth-spread { padding:10px 12px; font-family:var(--mono); font-weight:600; font-size:16px; border-top:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft); margin:4px 0; }

/* ═══ МУЛЬТИСЕТЬ ═══ */
.net-switch { position:relative; }
.net-btn { display:flex; align-items:center; gap:7px; padding:9px 13px; border-radius:10px; background:var(--trench); color:var(--ink); font-weight:600; font-size:13.5px; transition:.15s; }
.net-btn:hover { background:var(--deep2); }
.net-dot { width:8px; height:8px; border-radius:50%; flex:none; }
.net-menu { position:absolute; top:46px; right:0; width:200px; background:var(--deep); border:1px solid var(--line); border-radius:12px; padding:5px; box-shadow:0 12px 40px rgba(0,0,0,.5); display:none; z-index:200; }
.net-menu.open { display:block; animation:popIn .18s; }
.net-item { display:flex; align-items:center; gap:9px; width:100%; padding:10px 12px; border-radius:9px; color:var(--ink-dim); font-weight:500; font-size:14px; transition:.12s; }
.net-item:hover { background:var(--trench); color:var(--ink); }
.net-item.act { color:var(--ink); }
.net-badge { margin-left:auto; font-size:10px; background:rgba(34,211,238,.15); color:var(--cyan); padding:2px 7px; border-radius:6px; }
@media(max-width:1000px){ .net-switch{display:none} }

/* ═══ КОЛОКОЛ УВЕДОМЛЕНИЙ ═══ */
.bell-badge { position:absolute; top:-3px; right:-3px; min-width:16px; height:16px; padding:0 4px; border-radius:8px; background:var(--coral); color:#fff; font-size:10px; font-weight:800; display:flex; align-items:center; justify-content:center; }
.bell-panel { position:absolute; top:46px; right:0; width:320px; max-height:420px; overflow-y:auto; background:var(--deep); border:1px solid var(--line); border-radius:14px; box-shadow:0 12px 40px rgba(0,0,0,.5); display:none; z-index:200; }
.bell-panel.open { display:block; animation:popIn .18s; }
.bell-title { padding:12px 16px; font-weight:700; border-bottom:1px solid var(--line-soft); position:sticky; top:0; background:var(--deep); font-family:var(--disp); }
.bell-row { display:flex; align-items:center; gap:10px; padding:11px 16px; border-bottom:1px solid var(--line-soft); cursor:pointer; font-size:13px; transition:.12s; }
.bell-row:hover { background:var(--deep2); }

/* ═══ РЕАКЦИИ ═══ */
.reactions { display:flex; gap:5px; flex-wrap:wrap; margin-top:8px; align-items:center; position:relative; }
.react-pill { display:inline-flex; align-items:center; gap:3px; padding:2px 9px; border-radius:20px; background:var(--trench); font-size:12.5px; transition:.15s; border:1px solid transparent; }
.react-pill:hover { background:var(--deep2); }
.react-pill.mine { background:rgba(34,211,238,.15); border-color:var(--cyan-deep); }
.react-add { width:24px; height:24px; border-radius:50%; background:var(--trench); color:var(--ink-faint); font-size:14px; transition:.15s; }
.react-add:hover { background:var(--cyan); color:#04212b; }
.react-picker { position:absolute; bottom:30px; left:0; display:flex; gap:4px; background:var(--deep); border:1px solid var(--line); border-radius:12px; padding:6px 8px; box-shadow:0 8px 30px rgba(0,0,0,.5); z-index:50; }
.react-picker span { font-size:20px; cursor:pointer; transition:.15s; padding:2px; }
.react-picker span:hover { transform:scale(1.3); }

/* ═══ ПРОФИЛЬ ТРЕЙДЕРА ═══ */
.trader-overlay { position:fixed; inset:0; background:rgba(6,13,22,.72); backdrop-filter:blur(6px); z-index:350; display:none; align-items:center; justify-content:center; padding:20px; }
.trader-overlay.open { display:flex; animation:fadeIn .18s; }
.trader-modal { background:var(--deep); border:1px solid var(--line); border-radius:20px; max-width:440px; width:100%; padding:24px; position:relative; animation:popIn .22s; }
.trader-close { position:absolute; top:14px; right:14px; width:30px; height:30px; border-radius:8px; background:var(--trench); color:var(--ink-dim); }
.trader-head { display:flex; align-items:center; gap:14px; margin-bottom:18px; }
.trader-ava { width:56px; height:56px; border-radius:50%; background:var(--grad-shark); display:flex; align-items:center; justify-content:center; font-size:28px; flex:none; }
.trader-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.ts-cell { background:var(--deep2); border-radius:11px; padding:12px 8px; text-align:center; }
.ts-cell b { display:block; font-family:var(--disp); font-size:17px; }
.ts-cell span { font-size:10.5px; color:var(--ink-faint); }
.achievements { display:flex; flex-wrap:wrap; gap:8px; }
.achievement { display:flex; align-items:center; gap:8px; background:var(--deep2); border:1px solid var(--line-soft); border-radius:11px; padding:8px 12px; transition:.15s; }
.achievement:hover { border-color:var(--cyan-deep); }
.ach-ic { font-size:20px; }
.ach-name { font-size:13px; font-weight:600; }

/* ═══ ОНБОРДИНГ ═══ */
.onboard-overlay { position:fixed; inset:0; background:rgba(6,13,22,.85); backdrop-filter:blur(10px); z-index:500; display:flex; align-items:center; justify-content:center; padding:20px; opacity:0; transition:.3s; }
.onboard-overlay.open { opacity:1; }
.onboard-overlay.fade { opacity:0; }
.onboard-card { background:var(--deep); border:1px solid var(--line); border-radius:24px; max-width:440px; width:100%; padding:40px; text-align:center; animation:popIn .35s; }
.onboard-icon { font-size:64px; margin-bottom:16px; animation:finSwim 3s ease-in-out infinite; }
.onboard-card h2 { font-family:var(--disp); font-size:24px; font-weight:700; margin-bottom:12px; }
.onboard-card p { color:var(--ink-dim); font-size:15px; line-height:1.6; margin-bottom:24px; }
.onboard-dots { display:flex; gap:8px; justify-content:center; margin-bottom:24px; }
.onboard-dots span { width:8px; height:8px; border-radius:50%; background:var(--trench); transition:.2s; }
.onboard-dots span.act { background:var(--cyan); width:24px; border-radius:4px; }
.onboard-actions { display:flex; gap:12px; justify-content:center; }
.onboard-actions .btn, .onboard-actions .btn-ghost { flex:1; }

/* ═══ РЕФЕРАЛЫ ═══ */
.ref-link-box { background:var(--deep); border:1px solid var(--line-soft); border-radius:var(--r); padding:20px; max-width:600px; }
.ref-link-box .k { font-size:13px; color:var(--ink-dim); margin-bottom:10px; }
.ref-link-row { display:flex; gap:10px; }
.ref-link-row input { flex:1; background:var(--abyss); border:1px solid var(--line-soft); border-radius:11px; padding:12px 14px; color:var(--cyan); font-family:var(--mono); font-size:13px; outline:none; }

/* ═══ СКРИНЕР ═══ */
.screener-filters { display:flex; gap:14px; flex-wrap:wrap; align-items:end; background:var(--deep); border:1px solid var(--line-soft); border-radius:var(--r); padding:18px; }
.sf-group { display:flex; flex-direction:column; gap:6px; }
.sf-group label { font-size:11.5px; color:var(--ink-faint); text-transform:uppercase; letter-spacing:.05em; }
.sf-group input, .sf-group select { background:var(--abyss); border:1px solid var(--line-soft); border-radius:10px; padding:9px 12px; color:var(--ink); font-family:inherit; font-size:13.5px; outline:none; min-width:120px; transition:.15s; }
.sf-group input:focus, .sf-group select:focus { border-color:var(--cyan); }
@media(max-width:640px){ .screener-filters{flex-direction:column} .sf-group{width:100%} .sf-group input,.sf-group select{width:100%} }

/* ═══ GAS-ЧИП ═══ */
.gas-chip { display:flex; align-items:center; gap:5px; padding:8px 12px; border-radius:10px; background:var(--trench); color:var(--ink-dim); font-size:12.5px; font-family:var(--mono); font-weight:500; white-space:nowrap; }
.gas-chip #gasVal { color:var(--gold); }
@media(max-width:1100px){ .gas-chip{display:none} }

/* ═══ СОЦ-ЛЕНТА ═══ */
.feed-item { padding:16px; border-bottom:1px solid var(--line-soft); cursor:pointer; transition:.12s; }
.feed-item:hover { background:var(--deep2); }
.feed-head { display:flex; align-items:center; gap:9px; margin-bottom:8px; }
.feed-sym { font-weight:700; font-family:var(--disp); }
.feed-text { font-size:14.5px; line-height:1.5; }

/* ═══ СЕНТИМЕНТ ═══ */
.sentiment-bar { display:flex; height:26px; border-radius:8px; overflow:hidden; background:var(--trench); font-size:12px; font-weight:700; }
.sent-bull { background:linear-gradient(90deg,#2ee6a0,#22d3ee); color:#04212b; display:flex; align-items:center; justify-content:center; transition:width .4s; }
.sent-bear { background:linear-gradient(90deg,#ff5e7a,#f97362); color:#fff; display:flex; align-items:center; justify-content:center; transition:width .4s; }
.sent-vote { flex:1; padding:10px; border-radius:10px; background:var(--trench); font-weight:600; font-size:13.5px; transition:.15s; border:1px solid transparent; }
.sent-vote.bull:hover, .sent-vote.bull.act { background:rgba(46,230,160,.15); border-color:var(--up); color:var(--up); }
.sent-vote.bear:hover, .sent-vote.bear.act { background:rgba(255,94,122,.15); border-color:var(--down); color:var(--down); }

/* ═══════════ ДИЗАЙН-ПАСС v22: полировка ═══════════ */
/* Таблица рынков: воздух, зебра, чёткий ховер */
.market-table { border-collapse:separate; border-spacing:0; }
.market-table thead th {
  position:sticky; top:0; z-index:2;
  background:linear-gradient(180deg, rgba(10,20,33,.98), rgba(8,16,27,.98));
  backdrop-filter:blur(8px);
  font-size:11.5px; letter-spacing:.6px; text-transform:uppercase;
  padding:13px 12px; border-bottom:1px solid var(--trench);
  cursor:pointer; user-select:none;
}
.market-table tbody tr { transition:background .12s ease; }
.market-table tbody tr:nth-child(even) { background:rgba(255,255,255,.014); }
.market-table tbody tr:hover { background:rgba(34,211,238,.055); }
.market-table tbody td { padding:14px 12px; border-bottom:1px solid rgba(255,255,255,.035); }
.market-table tbody tr:last-child td { border-bottom:none; }
.mt-name { font-weight:650; letter-spacing:.1px; }
.mt-sym { font-size:11.5px; opacity:.62; letter-spacing:.4px; }
.mt-star:hover { transform:scale(1.2); color:var(--gold); }
.mt-star.on { color:var(--gold); }
.mt-buy {
  background:linear-gradient(135deg, rgba(34,211,238,.14), rgba(34,211,238,.07));
  border:1px solid rgba(34,211,238,.35); color:var(--cyan);
  padding:7px 16px; border-radius:10px; font-weight:650; font-size:12.5px;
  cursor:pointer; transition:.15s; white-space:nowrap;
}
.mt-buy:hover { background:var(--cyan); color:#04121d; box-shadow:0 4px 18px rgba(34,211,238,.35); transform:translateY(-1px); }

/* Карточки тренда: живее */
.trend-item { transition:.18s cubic-bezier(.2,.8,.3,1.2); border:1px solid var(--trench); }
.trend-item:hover { transform:translateY(-3px); border-color:var(--cyan); box-shadow:0 10px 28px rgba(34,211,238,.13); }

/* Метрики-карточки: градиентная кромка */
.hm-card { position:relative; overflow:hidden; }
.hm-card::before {
  content:""; position:absolute; inset:0 0 auto 0; height:2px;
  background:linear-gradient(90deg, transparent, var(--cyan), transparent);
  opacity:.5;
}
.hm-value { font-variant-numeric:tabular-nums; }

/* Кнопка кошелька: состояние подключено с живой точкой */
#walletBtn { transition:.18s; }
#walletBtn.connected {
  background:linear-gradient(135deg, rgba(46,230,160,.14), rgba(46,230,160,.05));
  border:1px solid rgba(46,230,160,.4); color:var(--up);
  font-family:var(--mono); font-size:12.5px;
}
.w-dot {
  display:inline-block; width:7px; height:7px; border-radius:50%;
  background:var(--up); margin-right:7px;
  box-shadow:0 0 0 0 rgba(46,230,160,.6); animation:wpulse 2s infinite;
}
@keyframes wpulse { 70% { box-shadow:0 0 0 6px rgba(46,230,160,0); } 100% { box-shadow:0 0 0 0 rgba(46,230,160,0); } }

/* Кат-табы: аккуратнее */
.cat-tab { transition:.15s; border:1px solid transparent; }
.cat-tab:hover { border-color:var(--trench); color:var(--ink); }
.cat-tab.act { box-shadow:0 3px 14px rgba(34,211,238,.22); }

/* Панели: мягкая глубина */
.panel { box-shadow:0 1px 0 rgba(255,255,255,.03) inset, 0 10px 34px rgba(0,0,0,.28); }

/* Скроллбары в тему */
::-webkit-scrollbar { width:9px; height:9px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:var(--trench); border-radius:6px; }
::-webkit-scrollbar-thumb:hover { background:var(--cyan); }

/* Заголовки страниц: акцентная полоска */
.page-title { position:relative; padding-bottom:2px; }
.eyebrow { letter-spacing:1.6px; }

/* Спарклайны: чуть крупнее и мягче */
.spark-cell svg { filter:drop-shadow(0 1px 4px rgba(46,230,160,.25)); }

/* Тосты: стекло */
.toast { backdrop-filter:blur(10px); box-shadow:0 10px 30px rgba(0,0,0,.4); }

/* Мобильная плотность таблиц */
@media (max-width:760px) {
  .market-table tbody td { padding:11px 8px; }
  .mt-buy { padding:6px 11px; font-size:12px; }
  .page-title { font-size:24px; }
}

/* ═══════════ СТРАНИЦА ТОКЕНА — DexScreener-стиль (v28) ═══════════ */
.tk-topbar {
  display:flex; align-items:center; gap:20px; flex-wrap:wrap;
  background:var(--panel); border:1px solid var(--trench); border-radius:16px;
  padding:16px 20px; margin-bottom:12px;
}
.tk-id { display:flex; align-items:center; gap:14px; }
.tk-title-row { display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
.tk-name { font-family:var(--disp); font-size:22px; font-weight:700; }
.tk-sym { color:var(--ink-dim); font-weight:600; font-size:14px; }
.tk-pair-sub { font-size:12px; color:var(--ink-faint); margin-top:3px; font-family:var(--mono); }
.tk-chip { font-size:10.5px; font-weight:700; padding:3px 9px; border-radius:7px; text-transform:uppercase; letter-spacing:.4px; }
.tk-chip.grad { background:rgba(46,230,160,.15); color:var(--up); }
.tk-chip.curve { background:rgba(34,211,238,.14); color:var(--cyan); }
.tk-chip.cat { background:rgba(167,139,250,.14); color:var(--violet); }
.tk-price-block { margin-left:auto; text-align:right; }
.tk-price { font-family:var(--disp); font-size:26px; font-weight:700; font-variant-numeric:tabular-nums; }
.tk-price-chg { font-size:14px; margin-top:2px; }
.tk-actions { display:flex; gap:8px; }
.tk-actions .icon-btn { width:40px; height:40px; font-size:17px; border-radius:11px; background:var(--panel2); border:1px solid var(--trench); transition:.15s; }
.tk-actions .icon-btn:hover { border-color:var(--cyan); transform:translateY(-2px); }
.tk-actions .icon-btn.on { color:var(--gold); border-color:rgba(255,207,92,.4); }

.tk-statbar {
  display:grid; grid-template-columns:repeat(8,1fr); gap:1px;
  background:var(--trench); border:1px solid var(--trench); border-radius:14px;
  overflow:hidden; margin-bottom:16px;
}
.tks { background:var(--panel); padding:12px 14px; display:flex; flex-direction:column; gap:3px; }
.tks .k { font-size:10.5px; color:var(--ink-faint); text-transform:uppercase; letter-spacing:.5px; }
.tks .v { font-weight:700; font-size:14px; font-variant-numeric:tabular-nums; }

.tk-grid { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:16px; }
.tk-main { min-width:0; }
.tk-chart-row { display:block; margin-bottom:16px; }
.tk-chart { margin:0; }
#chartBox { min-height:420px; }

.tk-livetrades { background:var(--panel); border:1px solid var(--trench); border-radius:16px; overflow:hidden; display:flex; flex-direction:column; }
.ltr-head { display:flex; align-items:center; justify-content:space-between; padding:12px 14px; border-bottom:1px solid var(--trench); font-weight:650; font-size:13px; }
.live-dot { width:8px; height:8px; border-radius:50%; background:var(--up); box-shadow:0 0 0 0 rgba(46,230,160,.6); animation:wpulse 2s infinite; }
.ltr-body { overflow-y:auto; max-height:400px; }
.ltr-row { display:grid; grid-template-columns:20px 1fr auto; gap:8px; align-items:center; padding:8px 14px; font-size:12px; cursor:pointer; border-bottom:1px solid rgba(255,255,255,.03); transition:.1s; }
.ltr-row:hover { background:rgba(34,211,238,.06); }
.ltr-row.buy { border-left:2px solid var(--up); }
.ltr-row.sell { border-left:2px solid var(--down); }
.ltr-side.buy { color:var(--up); } .ltr-side.sell { color:var(--down); }
.ltr-amt { font-weight:650; font-variant-numeric:tabular-nums; }
.ltr-maker { color:var(--ink-dim); font-size:11px; }
.ltr-time { color:var(--ink-faint); font-size:11px; text-align:right; }

.tk-range-panel { margin-bottom:16px; }
.tk-range-panel .panel { margin-top:0 !important; }
.tk-side { display:flex; flex-direction:column; }

/* адаптив */
@media (max-width:1100px) {
  .tk-chart-row { grid-template-columns:1fr; }
  .tk-livetrades { max-height:280px; }
}
@media (max-width:920px) {
  .tk-grid { grid-template-columns:1fr; }
}
@media (max-width:560px) {
  .tk-price-block { margin-left:0; text-align:left; width:100%; }
  /* tk-topbar gap задан в консолидированном мобильном блоке */
}

/* ═══════════ КОМАНДНЫЙ ЦЕНТР — Дашборд (v29) ═══════════ */
.cc-top { display:grid; grid-template-columns:300px 1fr 1.2fr; gap:16px; margin-bottom:8px; align-items:stretch; }
.cc-metrics { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.cc-metrics .hm-card { display:flex; flex-direction:column; justify-content:center; }
.cc-netchart { display:flex; flex-direction:column; padding:16px; }
#netChart { flex:1; }

.cc-heatmap { display:flex; flex-wrap:wrap; gap:6px; }
.heat-cell {
  min-width:88px; min-height:64px; border-radius:10px; border:1px solid;
  padding:8px 10px; cursor:pointer; display:flex; flex-direction:column; justify-content:space-between;
  transition:.15s;
}
.heat-cell:hover { transform:scale(1.04); z-index:2; }
.hc-sym { font-weight:700; font-size:13px; }
.hc-ch { font-size:12px; font-weight:600; font-variant-numeric:tabular-nums; }

.cc-movers { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:24px 0; }
.cc-mov-col { padding:0; overflow:hidden; }
.cc-mov-head { font-weight:700; font-size:13px; padding:14px 16px; border-bottom:1px solid var(--trench); }
.cc-mov-row { display:flex; align-items:center; gap:10px; padding:10px 16px; cursor:pointer; border-bottom:1px solid rgba(255,255,255,.03); transition:.1s; font-size:13px; }
.cc-mov-row:hover { background:rgba(34,211,238,.06); }
.cc-mov-row:last-child { border-bottom:none; }

.cc-bottom { display:grid; grid-template-columns:1fr 380px; gap:20px; }

@media (max-width:1100px) {
  .cc-top { grid-template-columns:1fr; }
  .cc-metrics { grid-template-columns:repeat(4,1fr); }
  .cc-movers { grid-template-columns:1fr; }
  .cc-bottom { grid-template-columns:1fr; }
}
@media (max-width:560px) {
  .cc-metrics { grid-template-columns:1fr 1fr; }
  .heat-cell { min-width:72px; min-height:56px; }
}

/* ═══════════════════════════════════════════════════════════════
   ULTRA DESIGN PASS v31 — премиальная главная (Markets)
   Философия: глубина, свечение биолюминесценции, стекло, воздух.
   ═══════════════════════════════════════════════════════════════ */

/* Атмосферный фон всей страницы — глубоководное свечение */
body::before {
  content: ""; position: fixed; inset: 0; z-index: -2; pointer-events: none;
  background:
    radial-gradient(900px 500px at 15% -5%, rgba(34,211,238,.10), transparent 60%),
    radial-gradient(800px 600px at 90% 10%, rgba(167,139,250,.08), transparent 55%),
    radial-gradient(700px 500px at 50% 110%, rgba(249,115,98,.06), transparent 55%);
}
body::after {
  content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none; opacity: .4;
  background-image: radial-gradient(rgba(34,211,238,.05) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: radial-gradient(ellipse 80% 60% at 50% 0%, #000, transparent 75%);
}

/* Сужаем и центрируем главную — не тянем вбок */
#view { max-width: 1180px; margin: 0 auto; }

/* ── HERO страницы ── */
.page-title {
  font-size: 40px; font-weight: 700; letter-spacing: -1.2px; line-height: 1.05;
  background: linear-gradient(180deg, #fff 30%, #a8c4e0);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.eyebrow {
  color: var(--cyan); font-family: var(--mono); font-size: 11px;
  letter-spacing: 3px; text-transform: uppercase; font-weight: 600;
  display: inline-flex; align-items: center; gap: 8px;
}
.eyebrow::before { content: ""; width: 22px; height: 1px; background: var(--cyan); box-shadow: var(--glow-cyan); }
.page-sub { color: var(--ink-dim); font-size: 15px; max-width: 560px; }

/* ── Метрики-карточки: стекло + градиентный кант + свечение ── */
.hero-metrics { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; margin: 26px 0; }
.hm-card {
  position: relative; padding: 20px 22px; border-radius: 18px; overflow: hidden;
  background: linear-gradient(160deg, rgba(15,29,46,.9), rgba(10,20,32,.75));
  border: 1px solid rgba(34,211,238,.12);
  backdrop-filter: blur(14px);
  box-shadow: 0 10px 40px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.04);
  transition: transform .25s cubic-bezier(.2,.8,.2,1), border-color .25s, box-shadow .25s;
}
.hm-card::before {
  content: ""; position: absolute; inset: 0 0 auto 0; height: 1px;
  background: linear-gradient(90deg, transparent, var(--cyan), transparent); opacity: .6;
}
.hm-card::after {
  content: ""; position: absolute; width: 160px; height: 160px; right: -50px; top: -60px;
  background: radial-gradient(circle, rgba(34,211,238,.14), transparent 70%);
  pointer-events: none; transition: opacity .3s; opacity: .5;
}
.hm-card:hover {
  transform: translateY(-5px);
  border-color: rgba(34,211,238,.4);
  box-shadow: 0 20px 60px rgba(34,211,238,.15), inset 0 1px 0 rgba(255,255,255,.06);
}
.hm-card:hover::after { opacity: 1; }
.hm-label { font-size: 12.5px; color: var(--ink-dim); font-weight: 600; margin-bottom: 10px; display:flex; align-items:center; gap:6px; }
.hm-value {
  font-family: var(--disp); font-size: 27px; font-weight: 700; letter-spacing: -.5px;
  font-variant-numeric: tabular-nums;
}

/* ── Trending: стеклянные карточки с наведением ── */
.trend-strip { display: flex; gap: 12px; overflow-x: auto; padding: 4px 2px 10px; scrollbar-width: none; }
.trend-strip::-webkit-scrollbar { display: none; }
.trend-item {
  min-width: 172px; padding: 15px 16px; border-radius: 16px;
  background: linear-gradient(160deg, rgba(20,39,60,.9), rgba(10,20,32,.9));
  border: 1px solid rgba(120,170,220,.1);
  cursor: pointer; transition: .22s cubic-bezier(.2,.8,.2,1); position: relative; overflow: hidden;
}
.trend-item:hover {
  transform: translateY(-4px) scale(1.02);
  border-color: rgba(34,211,238,.45);
  box-shadow: 0 16px 44px rgba(34,211,238,.18);
}
.ti-head { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.ti-sym { font-weight: 700; font-size: 14px; letter-spacing: .2px; }
.ti-price { font-size: 15px; font-weight: 600; font-variant-numeric: tabular-nums; }

/* ── Категории-табы: пилюли со свечением активной ── */
.cat-tab {
  padding: 9px 18px; border-radius: 12px; font-size: 13.5px; font-weight: 600;
  color: var(--ink-dim); background: rgba(19,39,60,.5); border: 1px solid transparent;
  transition: .18s; letter-spacing: .2px;
}
.cat-tab:hover { color: var(--ink); border-color: rgba(34,211,238,.25); }
.cat-tab.act {
  color: #04121d; background: var(--grad-shark); border-color: transparent;
  box-shadow: 0 6px 20px rgba(34,211,238,.4); font-weight: 700;
}

/* ── Таблица рынков: премиум ── */
.market-table { border-collapse: separate; border-spacing: 0; width: 100%; }
.panel.has-table, .panel:has(.market-table) {
  border-radius: 20px; overflow: hidden;
  background: linear-gradient(180deg, rgba(12,23,37,.7), rgba(8,16,27,.55));
  border: 1px solid rgba(34,211,238,.1);
  backdrop-filter: blur(16px);
  box-shadow: 0 20px 60px rgba(0,0,0,.4);
}
.market-table thead th {
  position: sticky; top: 0; z-index: 3;
  background: rgba(8,16,27,.96); backdrop-filter: blur(10px);
  font-size: 10.5px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase;
  color: var(--ink-faint); padding: 15px 14px; border-bottom: 1px solid rgba(34,211,238,.14);
}
.market-table tbody tr {
  transition: background .14s, box-shadow .14s; position: relative;
}
.market-table tbody tr:hover {
  background: linear-gradient(90deg, rgba(34,211,238,.09), rgba(34,211,238,.02));
  box-shadow: inset 3px 0 0 var(--cyan);
}
.market-table tbody td { padding: 15px 14px; border-bottom: 1px solid rgba(255,255,255,.04); }
.mt-coin { display: flex; align-items: center; gap: 11px; }
.mt-coin img, .mt-coin .ident { border-radius: 50%; box-shadow: 0 3px 12px rgba(0,0,0,.4), 0 0 0 1px rgba(255,255,255,.06); }
.mt-name { font-weight: 650; letter-spacing: .1px; }
.mt-sym { font-size: 11px; color: var(--ink-faint); letter-spacing: .5px; }
.mt-price { font-variant-numeric: tabular-nums; font-weight: 600; }
.mt-rank { color: var(--ink-faint); font-variant-numeric: tabular-nums; font-size: 13px; }
.mt-buy {
  background: rgba(34,211,238,.1); border: 1px solid rgba(34,211,238,.3); color: var(--cyan);
  padding: 8px 18px; border-radius: 11px; font-weight: 650; font-size: 12.5px; transition: .16s; white-space: nowrap;
}
.mt-buy:hover { background: var(--cyan); color: #04121d; box-shadow: 0 6px 22px rgba(34,211,238,.45); transform: translateY(-1px); }

/* проценты — пилюли */
.up-t, .down-t { font-variant-numeric: tabular-nums; font-weight: 600; }

/* Heatmap-кнопка */
#heatBtn { border-radius: 12px; border: 1px solid rgba(34,211,238,.2); transition: .16s; }
#heatBtn:hover { border-color: var(--cyan); color: var(--cyan); }

@media (max-width: 900px) {
  .page-title { font-size: 30px; }
  .hero-metrics { grid-template-columns: 1fr 1fr; }
}

/* Проценты-пилюли */
.pct-pill {
  display: inline-flex; align-items: center; gap: 3px;
  padding: 3px 9px; border-radius: 8px; font-size: 12.5px; font-weight: 650;
  font-variant-numeric: tabular-nums; letter-spacing: .2px;
}
.pct-pill.up { color: var(--up); background: rgba(46,230,160,.12); }
.pct-pill.down { color: var(--down); background: rgba(255,94,122,.12); }
.pct-pill.flat { color: var(--ink-faint); background: rgba(86,112,143,.1); }

/* ═══════════════════════════════════════════════════════════════
   МОБИЛЬНАЯ ВЕРСИЯ v32 — системная починка
   ═══════════════════════════════════════════════════════════════ */
.mobile-nav { display: none; }
.mobile-sheet { display: none; }

@media (max-width: 1000px) {
  /* нижняя навигация вместо скрытого меню */
  .mobile-nav {
    display: flex; position: fixed; bottom: 0; left: 0; right: 0; z-index: 90;
    background: rgba(8,16,27,.96); backdrop-filter: blur(20px);
    border-top: 1px solid rgba(34,211,238,.15);
    padding: 8px 4px calc(8px + env(safe-area-inset-bottom));
    box-shadow: 0 -8px 30px rgba(0,0,0,.4);
  }
  .mn-item {
    flex: 1; display: flex; flex-direction: column; align-items: center; gap: 3px;
    color: var(--ink-faint); font-size: 10px; font-weight: 600; padding: 4px 0; transition: .15s;
  }
  .mn-item svg { opacity: .7; transition: .15s; }
  .mn-item.act { color: var(--cyan); }
  .mn-item.act svg { opacity: 1; filter: drop-shadow(0 0 6px rgba(34,211,238,.5)); }

  /* выдвижное меню «Ещё» */
  .mobile-sheet {
    display: block; position: fixed; inset: 0; z-index: 95;
    background: rgba(0,0,0,.6); backdrop-filter: blur(4px);
    opacity: 0; pointer-events: none; transition: opacity .25s;
  }
  .mobile-sheet.show { opacity: 1; pointer-events: auto; }
  .ms-panel {
    position: absolute; bottom: 0; left: 0; right: 0;
    background: linear-gradient(180deg, #0f1d2e, #0a1420);
    border-top: 1px solid rgba(34,211,238,.2); border-radius: 24px 24px 0 0;
    padding: 12px 18px calc(24px + env(safe-area-inset-bottom));
    transform: translateY(100%); transition: transform .28s cubic-bezier(.2,.9,.3,1.1);
  }
  .mobile-sheet.show .ms-panel { transform: translateY(0); }
  .ms-handle { width: 40px; height: 4px; border-radius: 2px; background: var(--line); margin: 4px auto 18px; }
  .ms-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; margin-bottom: 16px; }
  .ms-grid button {
    display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 16px 8px;
    background: rgba(19,39,60,.6); border: 1px solid rgba(255,255,255,.05); border-radius: 16px;
    color: var(--ink); font-size: 12px; font-weight: 600; transition: .15s;
  }
  .ms-grid button:active { background: rgba(34,211,238,.15); border-color: var(--cyan); transform: scale(.96); }
  .ms-grid button > :first-child { font-size: 22px; }
  .ms-row { display: flex; gap: 12px; }
  .ms-wide { flex: 1; padding: 14px; background: rgba(19,39,60,.6); border: 1px solid rgba(255,255,255,.05); border-radius: 14px; color: var(--ink); font-weight: 600; }

  /* контент не под нижней навигацией */
  #view { padding-bottom: 80px; }
  .footer { margin-bottom: 68px; }
}

/* ── Планшет: сетки в один столбец ── */
@media (max-width: 900px) {
  .tk-grid, .cc-top, .cc-bottom, .cc-movers, .tk-chart-row { grid-template-columns: 1fr !important; }
  .hero-metrics, .cc-metrics { grid-template-columns: repeat(2,1fr) !important; }
}

/* ── Телефон: плотнее, крупнее тап-цели ── */
@media (max-width: 640px) {
  .wrap { padding: 0 14px; }
  #view { max-width: 100%; }
  .page-title { font-size: 26px; letter-spacing: -.6px; }
  .page-sub { font-size: 13.5px; }
  .tk-topbar { padding: 14px; }

  /* таблица рынков → плотная, скрываем лишние колонки */
  .market-table thead th { padding: 11px 8px; font-size: 9.5px; }
  .market-table tbody td { padding: 12px 8px; }
  .market-table .hide-sm { display: none; }
  .mt-buy { padding: 7px 12px; font-size: 11.5px; }
  .mt-coin { gap: 8px; }
  .mt-name { font-size: 13px; }

  /* инпуты — 16px чтобы iOS не зумил */
  input, select, textarea { font-size: 16px !important; }

  /* тренд-полоса скроллится */
  .trend-item { min-width: 140px; }

  /* карточки метрик крупнее для тача */
  .hm-value { font-size: 22px; }

  /* тепловая карта — компактная сетка */
  .heat-cell { min-width: calc(50% - 4px); }
}

/* очень узкие */
@media (max-width: 400px) {
  .hero-metrics, .cc-metrics { grid-template-columns: 1fr 1fr !important; }
}

/* Фикс: кнопка «Торговать» не обрезается */
.market-table td:last-child { white-space: nowrap; width: 1%; padding-right: 18px; }
.mt-buy { min-width: 96px; }
/* таблица шире контейнера — горизонтальный скролл в самой панели */
@media (min-width: 641px) { .market-table { min-width: 860px; } }

/* Индикатор живого подключения */
.live-indicator { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; }
.li-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ink-faint); transition: .3s; }
.live-indicator.live .li-dot {
  background: var(--up); box-shadow: 0 0 0 0 rgba(46,230,160,.6); animation: wpulse 2s infinite;
}

/* ═══ Google Translate — вписываем в тёмную тему ═══ */
#gtWrap { min-width: 190px; }
#gtWrap .goog-te-gadget { font-size: 0 !important; color: transparent !important; }
#gtWrap .goog-te-gadget > span { display: none !important; }
#gtWrap .goog-te-combo {
  width: 100%; background: var(--panel2) !important; color: var(--ink) !important;
  border: 1px solid var(--trench) !important; border-radius: 10px !important;
  padding: 9px 12px !important; font-size: 13px !important; font-family: var(--body) !important;
  cursor: pointer; margin: 0 !important; appearance: none;
}
#gtWrap .goog-te-combo:hover { border-color: var(--cyan) !important; }
/* прячем ТОЛЬКО плашку-iframe Google сверху (не сам виджет!) */
.goog-te-banner-frame { display: none !important; }
iframe.skiptranslate { display: none !important; visibility: hidden !important; }
body { top: 0 !important; position: static !important; }
#goog-gt-tt, .goog-te-balloon-frame { display: none !important; }
.goog-text-highlight { background: none !important; box-shadow: none !important; }
/* гаджет виджета внутри нашего окна должен быть виден */
#gtWrap .skiptranslate, #gtWrap.skiptranslate { display: block !important; }
#google_translate_element { display: block; }

/* Уплотняем DEX/market таблицы — меньше пустоты */
.market-table tbody td { padding: 12px 14px; }
.market-table tbody tr { height: auto; }

/* ═══════════════════════════════════════════════════════════════
   ТОТАЛЬНЫЙ ПОЛИШИНГ v41 — пиксель-перфект интерактив
   ═══════════════════════════════════════════════════════════════ */

/* Единые плавные переходы для всех интерактивных элементов */
button, a, .cat-tab, .chip-opt, .tf-tab, .dtab, .trade-tab, .icon-btn, .nv, .mt-buy, .btn, .btn-ghost {
  transition: background .16s ease, color .16s ease, border-color .16s ease,
              transform .12s ease, box-shadow .16s ease, opacity .16s ease;
}
/* тактильное нажатие — всё чуть проседает */
button:active, .cat-tab:active, .chip-opt:active, .tf-tab:active, .mt-buy:active, .btn:active { transform: translateY(1px) scale(.98); }

/* Навигация в шапке — подчёркивание с анимацией */
.nv { position: relative; padding-bottom: 4px; }
.nv::after {
  content: ""; position: absolute; left: 50%; bottom: 0; width: 0; height: 2px;
  background: var(--grad-shark); border-radius: 2px; transition: width .22s ease, left .22s ease;
}
.nv:hover::after { width: 100%; left: 0; }
.nv.act::after { width: 100%; left: 0; box-shadow: 0 0 8px rgba(34,211,238,.6); }
.nv.act { color: var(--ink); }

/* Иконки-кнопки в шапке — мягкий подъём */
.icon-btn { border-radius: 11px; }
.icon-btn:hover { background: rgba(34,211,238,.1); transform: translateY(-2px); }

/* Таймфреймы графика — активная пилюля со свечением */
.tf-tab { padding: 6px 13px; border-radius: 9px; font-size: 12.5px; font-weight: 600; color: var(--ink-dim); }
.tf-tab:hover { color: var(--ink); background: rgba(34,211,238,.08); }
.tf-tab.act { color: #04121d; background: var(--grad-shark); box-shadow: 0 3px 12px rgba(34,211,238,.35); }

/* Вкладки под графиком — подчёркивание */
.dtab { position: relative; padding: 12px 4px; font-weight: 600; color: var(--ink-dim); }
.dtab::after {
  content: ""; position: absolute; left: 0; bottom: 0; width: 0; height: 2px;
  background: var(--cyan); transition: width .2s ease;
}
.dtab:hover { color: var(--ink); }
.dtab.act { color: var(--cyan); }
.dtab.act::after { width: 100%; box-shadow: 0 0 8px rgba(34,211,238,.5); }

/* Кнопки покупки/продажи — насыщенное нажатие */
.trade-tab { transition: .16s; font-weight: 650; }
.trade-tab.buy.act { background: linear-gradient(135deg, #2ee6a0, #22c98a); color: #04121d; box-shadow: 0 4px 16px rgba(46,230,160,.35); }
.trade-tab.sell.act { background: linear-gradient(135deg, #ff5e7a, #e84c68); color: #fff; box-shadow: 0 4px 16px rgba(255,94,122,.35); }
.trade-exec { transition: .18s; font-weight: 700; letter-spacing: .3px; }
.trade-exec:hover { transform: translateY(-2px); box-shadow: 0 8px 28px rgba(34,211,238,.4); }
.trade-exec.buy { background: linear-gradient(135deg, #22d3ee, #1eb8d4); }
.tp-btn { transition: .14s; }
.tp-btn:hover { background: rgba(34,211,238,.15); border-color: var(--cyan); color: var(--cyan); }

/* Пресеты/чипы — единый стиль наведения */
.chip-opt { padding: 8px 16px; border-radius: 10px; font-weight: 600; color: var(--ink-dim); background: rgba(19,39,60,.5); }
.chip-opt:hover { color: var(--ink); }
.chip-opt.act { color: #04121d; background: var(--grad-shark); box-shadow: 0 4px 14px rgba(34,211,238,.3); }

/* Поля ввода — фокус со свечением */
input, select, textarea {
  transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
input:focus, select:focus, textarea:focus {
  border-color: var(--cyan) !important;
  box-shadow: 0 0 0 3px rgba(34,211,238,.12) !important; outline: none;
}
.trade-input:focus { background: rgba(34,211,238,.04); }

/* Строки таблиц/лент — плавный ховер */
.txn-row, .act-row, .lb-row, .news-card, .cc-mov-row { transition: background .14s ease, transform .12s ease; }
.news-card:hover { transform: translateX(3px); }

/* Ссылки-адреса — курсор и подсветка */
.mono[onclick], [onclick*="clipboard"] { cursor: pointer; transition: color .15s; }
[onclick*="clipboard"]:hover { color: var(--cyan) !important; }

/* Тосты — вход снизу мягко */
.toast { animation: toastIn .3s cubic-bezier(.2,.9,.3,1.2); }
@keyframes toastIn { from { transform: translateY(20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }

/* Скелетоны — мягкое мерцание */
.skel { background: linear-gradient(90deg, rgba(34,211,238,.04) 25%, rgba(34,211,238,.1) 50%, rgba(34,211,238,.04) 75%); background-size: 200% 100%; animation: shimmer 1.4s infinite; border-radius: 8px; }
@keyframes shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

/* Логотипы — мягкая тень + кольцо */
.mt-coin img, .tk-id img, .trend-item img { transition: transform .16s ease; }
.trend-item:hover img { transform: scale(1.1) rotate(-3deg); }

/* Кнопка «наверх» — плавное появление */
.to-top { transition: opacity .25s, transform .25s; }
.to-top:hover { transform: translateY(-3px); box-shadow: 0 8px 24px rgba(34,211,238,.4); }

/* Плавная прокрутка по всему сайту */
html { scroll-behavior: smooth; }

/* Фокус-видимость для доступности (клавиатура) */
button:focus-visible, a:focus-visible { outline: 2px solid var(--cyan); outline-offset: 2px; }

/* Флаги быстрого перевода */
.gt-flags { display: grid; grid-template-columns: repeat(6, 1fr); gap: 6px; }
.gt-flags button {
  font-size: 20px; padding: 6px 0; border-radius: 9px; background: rgba(19,39,60,.5);
  border: 1px solid transparent; cursor: pointer; transition: .14s;
}
.gt-flags button:hover { background: rgba(34,211,238,.14); border-color: var(--cyan); transform: scale(1.12); }
.gt-flags button:active { transform: scale(.95); }

/* ═══ Портфель v43 ═══ */
.pf-summary { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin: 24px 0; }
.pf-main { display: grid; grid-template-columns: 1fr 360px; gap: 22px; }
@media (max-width: 1000px) {
  .pf-summary { grid-template-columns: 1fr 1fr; }
  .pf-main { grid-template-columns: 1fr; }
}

/* ═══ PRO-ТЕРМИНАЛ v44 ═══ */
.term-bar {
  display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 14px;
  background: linear-gradient(160deg, rgba(15,29,46,.9), rgba(10,20,32,.75));
  border: 1px solid rgba(34,211,238,.12); border-radius: 16px; padding: 14px 18px; margin-bottom: 14px;
  backdrop-filter: blur(12px);
}
.tb-k { font-size: 10.5px; color: var(--ink-faint); text-transform: uppercase; letter-spacing: .5px; }
.tb-v { font-weight: 700; font-size: 15px; font-variant-numeric: tabular-nums; }
.term-grid { display: grid; grid-template-columns: minmax(0,1fr) 320px; gap: 14px; }
.term-chart { margin: 0; }
.term-chart #chartBox { min-height: 460px; }
.term-side { display: flex; flex-direction: column; gap: 14px; }
.term-depth, .term-trades { background: var(--panel); border: 1px solid var(--trench); border-radius: 14px; overflow: hidden; }
.td-head { padding: 11px 14px; border-bottom: 1px solid var(--trench); font-weight: 650; font-size: 12.5px; display: flex; align-items: center; gap: 8px; }
.depth-side { display: flex; flex-direction: column; }
.depth-row { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 4px 12px; font-size: 11.5px; align-items: center; }
.depth-fill { position: absolute; top: 0; bottom: 0; right: 0; opacity: .12; }
.depth-fill.buy { background: var(--up); }
.depth-fill.sell { background: var(--down); }
.depth-mid { text-align: center; padding: 7px; font-weight: 700; font-size: 13px; border-block: 1px solid var(--trench); background: rgba(34,211,238,.06); color: var(--cyan); }
.term-pick { transition: .18s; }
.term-pick:hover { transform: translateY(-3px); border-color: var(--cyan); box-shadow: 0 12px 30px rgba(34,211,238,.15); }

@media (max-width: 1000px) {
  .term-grid { grid-template-columns: 1fr; display: flex; flex-direction: column; }
  .term-chart { order: -1; }              /* график всегда первым */
  .term-chart #chartBox { min-height: 340px; }
}

/* ═══ Скринер v45 — стратегии-пресеты ═══ */
.scr-presets { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; margin: 22px 0; }
.scr-preset {
  text-align: left; padding: 14px 16px; border-radius: 14px;
  background: linear-gradient(160deg, rgba(15,29,46,.85), rgba(10,20,32,.7));
  border: 1px solid rgba(255,255,255,.06); cursor: pointer; transition: .18s;
}
.scr-preset:hover { transform: translateY(-3px); border-color: var(--cyan); box-shadow: 0 12px 30px rgba(34,211,238,.15); }
.scr-preset.act { border-color: var(--cyan); background: linear-gradient(160deg, rgba(34,211,238,.15), rgba(34,211,238,.05)); box-shadow: 0 8px 24px rgba(34,211,238,.2); }
.sp-label { font-weight: 700; font-size: 14px; margin-bottom: 3px; }
.sp-desc { font-size: 11.5px; color: var(--ink-faint); }

.scr-statbar { display: flex; gap: 20px; flex-wrap: wrap; padding: 14px 18px; background: var(--panel); border: 1px solid var(--trench); border-radius: 12px; }
.scrs { display: flex; flex-direction: column; gap: 2px; }
.scrs .k { font-size: 10.5px; color: var(--ink-faint); text-transform: uppercase; letter-spacing: .5px; }
.scrs .v { font-weight: 700; font-size: 16px; font-variant-numeric: tabular-nums; }

@media (max-width: 1000px) { .scr-presets { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px) { .scr-presets { grid-template-columns: 1fr 1fr; } }

/* ═══ Академия (Обучение) v46 ═══ */
.learn-list { display: flex; flex-direction: column; gap: 12px; max-width: 820px; }
.learn-item {
  background: linear-gradient(160deg, rgba(15,29,46,.7), rgba(10,20,32,.55));
  border: 1px solid var(--trench); border-radius: 16px; overflow: hidden; transition: border-color .2s;
}
.learn-item.open { border-color: rgba(34,211,238,.35); }
.learn-head { display: flex; align-items: center; gap: 14px; width: 100%; padding: 18px 20px; background: none; cursor: pointer; }
.lh-emoji { font-size: 26px; }
.lh-title { font-weight: 650; font-size: 15.5px; }
.lh-cat { font-size: 11px; color: var(--cyan); text-transform: uppercase; letter-spacing: .5px; margin-top: 2px; }
.lh-arrow { color: var(--ink-faint); font-size: 14px; transition: transform .25s ease; }
.learn-item.open .lh-arrow { transform: rotate(180deg); color: var(--cyan); }
.learn-body { max-height: 0; overflow: hidden; transition: max-height .35s ease; }
.learn-item.open .learn-body { max-height: 800px; }
.lb-inner { padding: 0 20px 20px 60px; font-size: 14px; line-height: 1.75; color: var(--ink-dim); }
.lb-inner b { color: var(--ink); font-weight: 600; }
@media (max-width: 560px) { .lb-inner { padding: 0 18px 18px 18px; } }

/* ═══ Community v47 ═══ */
.comm-layout { display: grid; grid-template-columns: 1fr 400px; gap: 20px; margin-top: 20px; }
.comm-feed-row { display: flex; align-items: center; gap: 11px; padding: 10px 14px; cursor: pointer; border-bottom: 1px solid rgba(255,255,255,.03); transition: background .12s; }
.comm-feed-row:hover { background: rgba(34,211,238,.05); }
.comm-feed-row.buy { border-left: 2px solid var(--up); }
.comm-feed-row.sell { border-left: 2px solid var(--down); }
.side-t.buy { color: var(--up); font-weight: 600; }
.side-t.sell { color: var(--down); font-weight: 600; }
@media (max-width: 1000px) {
  .comm-layout { grid-template-columns: 1fr; }
  .comm-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) { .comm-grid { grid-template-columns: 1fr; } }

/* ═══ Центр алертов v48 ═══ */
.alerts-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.alert-toggle { display: flex; align-items: center; gap: 14px; padding: 14px 16px; cursor: pointer; border-radius: 12px; transition: background .14s; }
.alert-toggle:hover { background: rgba(34,211,238,.05); }
.switch { width: 44px; height: 24px; border-radius: 14px; background: var(--trench); position: relative; transition: background .2s; flex-shrink: 0; }
.switch.on { background: var(--grad-shark); }
.switch-knob { position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; transition: left .2s cubic-bezier(.2,.9,.3,1.2); box-shadow: 0 2px 6px rgba(0,0,0,.3); }
.switch.on .switch-knob { left: 23px; }
.alert-sub { display: flex; align-items: center; gap: 10px; padding: 8px 16px 14px; font-size: 13px; color: var(--ink-dim); transition: opacity .2s; }
.alert-sub.off { opacity: .4; pointer-events: none; }
.alert-sub input { background: var(--panel2); border: 1px solid var(--trench); border-radius: 8px; padding: 6px 10px; color: var(--ink); }
.alert-row { display: flex; align-items: center; gap: 12px; padding: 11px 14px; border-bottom: 1px solid rgba(255,255,255,.03); }
.alert-row:last-child { border-bottom: none; }
@media (max-width: 800px) { .alerts-layout { grid-template-columns: 1fr; } }

/* ═══ Сравнение токенов v49 ═══ */
.cmp-picker { position: relative; max-width: 560px; margin-bottom: 20px; }
.cmp-picker input { width: 100%; background: var(--panel); border: 1px solid var(--trench); border-radius: 12px; padding: 12px 16px; color: var(--ink); font-size: 14px; }
.cmp-suggest { position: absolute; top: 100%; left: 0; right: 0; z-index: 20; margin-top: 6px; background: var(--panel); border: 1px solid var(--trench); border-radius: 12px; overflow: hidden; box-shadow: 0 12px 40px rgba(0,0,0,.5); }
.cmp-suggest:empty { display: none; }
.cmp-sug-item { display: flex; align-items: center; gap: 10px; padding: 10px 14px; cursor: pointer; transition: background .12s; }
.cmp-sug-item:hover { background: rgba(34,211,238,.08); }
.cmp-sug-item .mt-sym { margin-left: auto; }
.cmp-chips { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
.cmp-chip { display: flex; align-items: center; gap: 7px; background: rgba(34,211,238,.1); border: 1px solid rgba(34,211,238,.3); border-radius: 10px; padding: 6px 10px; font-size: 13px; font-weight: 600; }
.cmp-chip button { background: none; border: none; color: var(--ink-faint); cursor: pointer; font-size: 12px; padding: 0 2px; }
.cmp-chip button:hover { color: var(--down); }
.cmp-table .cmp-win { background: rgba(46,230,160,.1); color: var(--up); font-weight: 700; border-radius: 6px; }

/* ═══ Статус системы v50 ═══ */
.status-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.status-card { padding: 16px 18px; }
@media (max-width: 900px) { .status-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .status-grid { grid-template-columns: 1fr; } }

/* ═══ Bubble map v51 ═══ */
.bubble-risk { background: rgba(255,255,255,.02); border-radius: 10px; padding: 12px 14px; margin-bottom: 6px; }
.bubble-tip { position: fixed; z-index: 200; display: none; background: rgba(13,26,41,.97); border: 1px solid var(--trench); border-radius: 8px; padding: 6px 10px; font: 11.5px 'JetBrains Mono', monospace; color: var(--ink); pointer-events: none; box-shadow: 0 8px 24px rgba(0,0,0,.4); }
.bubble circle { transition: fill-opacity .15s; }
.bubble:hover circle { fill-opacity: .6 !important; }

/* ═══ Профиль трейдера v52 ═══ */
.trader-recent { display: flex; flex-direction: column; gap: 2px; max-height: 240px; overflow-y: auto; }
.tr-trade { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 8px; cursor: pointer; transition: background .12s; }
.tr-trade:hover { background: rgba(34,211,238,.06); }

/* ═══ Индикаторы графика v53 ═══ */
.chart-indicators { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.ind-btn {
  padding: 4px 9px; border-radius: 7px; font-size: 11px; font-weight: 700; letter-spacing: .3px;
  background: rgba(19,39,60,.6); border: 1px solid transparent; color: var(--ink-faint);
  cursor: pointer; transition: .14s;
}
.ind-btn:hover { color: var(--ink); background: rgba(34,211,238,.1); }
.ind-btn.act { color: var(--cyan); border-color: rgba(34,211,238,.4); background: rgba(34,211,238,.12); }

/* ═══ Shark Score анализ v54 ═══ */
.analyze-wrap { display: grid; grid-template-columns: 280px 1fr 300px; gap: 16px; }
.analyze-score { display: flex; align-items: center; justify-content: center; }
.score-ring { position: relative; width: 150px; height: 150px; margin: 0 auto; border-radius: 50%;
  border: 8px solid var(--col); box-shadow: 0 0 24px color-mix(in srgb, var(--col) 40%, transparent);
  display: flex; align-items: center; justify-content: center; }
.score-num { position: relative; font-family: var(--disp); font-weight: 800; font-size: 48px; line-height: 1; }
.score-grade { position: absolute; bottom: 8px; right: 8px; width: 34px; height: 34px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center; font-weight: 800; color: #04121d; font-size: 17px; z-index: 2; }
.subscore-list { display: flex; flex-direction: column; gap: 8px; margin-top: 14px; }
.subscore-row { display: flex; align-items: center; gap: 10px; font-size: 12.5px; }
.subscore-bar { flex: 2; height: 6px; background: var(--trench); border-radius: 3px; overflow: hidden; }
.subscore-bar > div { height: 100%; border-radius: 3px; transition: width .5s ease; }
@media (max-width: 1000px) { .analyze-wrap { grid-template-columns: 1fr; } }

/* ═══ S/R уровни + PWA v55 ═══ */
.pwa-install-btn {
  display: flex; align-items: center; gap: 5px; padding: 7px 12px; border-radius: 11px;
  background: var(--grad-shark); color: #04121d; font-weight: 700; font-size: 12.5px;
  cursor: pointer; transition: .16s; white-space: nowrap;
}
.pwa-install-btn:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(34,211,238,.4); }
@media (max-width: 700px) { .pwa-install-btn { display: none !important; } }

/* ═══ Командная палитра v57 ═══ */
.cmd-group { padding: 10px 16px 4px; font-size: 10.5px; text-transform: uppercase; letter-spacing: .6px; color: var(--ink-faint); font-weight: 600; }
.cmd-item { cursor: pointer; transition: background .1s; }
.cmd-item.cmd-sel { background: rgba(34,211,238,.12); }
.cmd-ic { width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; font-size: 17px; background: rgba(34,211,238,.08); border-radius: 8px; }
.cmd-hint { color: var(--ink-faint); font-size: 12px; opacity: 0; transition: opacity .1s; }
.cmd-item.cmd-sel .cmd-hint { opacity: 1; }

/* ═══ Радар китов v60 ═══ */
.whale-controls { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 18px 0; }
.whale-row { display: flex; align-items: center; gap: 12px; padding: 12px 16px; cursor: pointer; border-bottom: 1px solid rgba(255,255,255,.03); transition: background .12s; position: relative; }
.whale-row:hover { background: rgba(34,211,238,.05); }
.whale-row.buy { border-left: 3px solid var(--up); }
.whale-row.sell { border-left: 3px solid var(--down); }
.whale-row.whale-big { background: rgba(255,194,71,.03); }
.whale-row.whale-huge { background: rgba(34,211,238,.05); }
.whale-icon { font-size: 20px; width: 28px; text-align: center; }
@media (max-width: 560px) { .whale-controls .chip-opt { padding: 6px 10px; font-size: 12px; } }

/* ═══ AI-помощник v63 ═══ */
.ai-fab {
  position: fixed; bottom: 24px; right: 24px; z-index: 90;
  width: 56px; height: 56px; border-radius: 50%; border: none; cursor: pointer;
  background: linear-gradient(135deg, #a78bfa, #22d3ee); color: #fff; font-size: 24px;
  box-shadow: 0 8px 30px rgba(167,139,250,.5); transition: transform .2s, opacity .2s;
  animation: aiPulse 3s infinite;
}
.ai-fab:hover { transform: scale(1.1); }
.ai-fab.hidden { opacity: 0; pointer-events: none; transform: scale(0); }
@keyframes aiPulse { 0%,100% { box-shadow: 0 8px 30px rgba(167,139,250,.5); } 50% { box-shadow: 0 8px 40px rgba(34,211,238,.6); } }
.ai-chat-panel {
  position: fixed; bottom: 24px; right: 24px; z-index: 91;
  width: 380px; max-width: calc(100vw - 32px); height: 540px; max-height: calc(100vh - 100px);
  background: var(--panel); border: 1px solid var(--trench); border-radius: 18px;
  display: none; flex-direction: column; overflow: hidden;
  box-shadow: 0 20px 60px rgba(0,0,0,.5); transform: translateY(20px) scale(.96); opacity: 0; transition: .2s;
}
.ai-chat-panel.open { display: flex; transform: translateY(0) scale(1); opacity: 1; }
.ai-chat-head { display: flex; align-items: center; justify-content: space-between; padding: 16px 18px; border-bottom: 1px solid var(--line-soft); background: linear-gradient(135deg, rgba(167,139,250,.1), rgba(34,211,238,.06)); }
.ai-chat-body { flex: 1; overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 12px; }
.ai-msg { display: flex; gap: 8px; max-width: 90%; }
.ai-msg.user { align-self: flex-end; }
.ai-msg.assistant { align-self: flex-start; }
.ai-msg-ic { font-size: 18px; flex-shrink: 0; }
.ai-bubble { padding: 10px 14px; border-radius: 14px; font-size: 13.5px; line-height: 1.55; }
.ai-msg.assistant .ai-bubble { background: var(--panel2); color: var(--ink-dim); border-top-left-radius: 4px; }
.ai-msg.user .ai-bubble { background: var(--grad-shark); color: #04121d; font-weight: 500; border-top-right-radius: 4px; }
.ai-typing::after { content: "●●●"; letter-spacing: 2px; animation: aiDots 1.2s infinite; }
@keyframes aiDots { 0%,100% { opacity: .3; } 50% { opacity: 1; } }
.ai-chat-input { display: flex; gap: 8px; padding: 12px; border-top: 1px solid var(--line-soft); }
.ai-chat-input input { flex: 1; background: var(--panel2); border: 1px solid var(--trench); border-radius: 10px; padding: 10px 14px; color: var(--ink); font-size: 13.5px; }
@media (max-width: 560px) { .ai-fab { bottom: 78px; } .ai-chat-panel { bottom: 78px; height: calc(100vh - 160px); } }

/* ═══ Переключатель валюты v63 ═══ */
.currency-toggle { min-width: 52px; font-size: 12px; font-weight: 700; font-family: var(--mono); color: var(--cyan); }
.currency-toggle:hover { background: rgba(34,211,238,.12); }

/* ═══ Голосовой ввод AI v64 ═══ */
.ai-voice-btn {
  background: var(--panel2); border: 1px solid var(--trench); border-radius: 10px;
  width: 40px; cursor: pointer; font-size: 16px; color: var(--ink-dim); transition: .15s; flex-shrink: 0;
}
.ai-voice-btn:hover { color: var(--ink); border-color: var(--cyan); }
.ai-voice-btn.listening {
  background: rgba(255,94,122,.15); border-color: var(--down); color: var(--down);
  animation: micPulse 1s infinite;
}
@keyframes micPulse { 0%,100% { box-shadow: 0 0 0 0 rgba(255,94,122,.4); } 50% { box-shadow: 0 0 0 6px rgba(255,94,122,0); } }

/* ═══ Живой график v64 ═══ */
@keyframes pricePulse { 0% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.15); opacity: .7; } 100% { transform: scale(1); opacity: 1; } }
.chart-live-badge { position: absolute; top: 12px; right: 14px; z-index: 5; display: flex; align-items: center; gap: 5px; padding: 4px 9px; border-radius: 8px; background: rgba(46,230,160,.12); border: 1px solid rgba(46,230,160,.3); font-size: 10.5px; font-weight: 700; color: var(--up); font-family: var(--mono); letter-spacing: .5px; }
.chart-live-badge .clp-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--up); animation: livePulse 1.6s infinite; }
@keyframes livePulse { 0%,100% { opacity: 1; box-shadow: 0 0 0 0 rgba(46,230,160,.5); } 50% { opacity: .6; box-shadow: 0 0 0 5px rgba(46,230,160,0); } }

/* ═══ Глубина кривой v65 ═══ */
.depth-label { font-size: 11.5px; font-weight: 700; margin-bottom: 8px; text-transform: uppercase; letter-spacing: .3px; }
.depth-row { display: flex; align-items: center; gap: 12px; padding: 8px 12px; border-radius: 8px; margin-bottom: 5px; }
.depth-row.buy { background: rgba(46,230,160,.05); }
.depth-row.sell { background: rgba(255,94,122,.05); }
.depth-pct { font-weight: 700; font-size: 13px; font-family: var(--mono); min-width: 84px; }
.depth-row.sell .depth-pct { color: var(--ink-dim); }

/* ═══ ROI-калькулятор v66 ═══ */
.roi-row { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 8px; margin-bottom: 4px; background: rgba(255,255,255,.02); }
.roi-mult { font-weight: 800; font-size: 15px; font-family: var(--disp); min-width: 42px; }

/* ═══ AI-анализ v67 ═══ */
.ai-card { background: linear-gradient(160deg, rgba(167,139,250,.06), rgba(34,211,238,.03)); border: 1px solid rgba(167,139,250,.2); }
.ai-badge { margin-left: auto; font-size: 10px; font-weight: 700; padding: 3px 8px; border-radius: 6px; background: rgba(167,139,250,.15); color: var(--violet); letter-spacing: .5px; }
.ai-text { font-size: 13.5px; line-height: 1.7; color: var(--ink); }
.ai-loading { display: flex; flex-direction: column; gap: 8px; padding: 6px 0; }
.ai-shimmer { height: 12px; border-radius: 6px; background: linear-gradient(90deg, rgba(167,139,250,.1), rgba(167,139,250,.25), rgba(167,139,250,.1)); background-size: 200% 100%; animation: aiShim 1.3s infinite; }
@keyframes aiShim { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

/* ═══ Momentum-стрип v68 ═══ */
.momentum-scroll { display: flex; gap: 12px; overflow-x: auto; padding-bottom: 6px; scrollbar-width: thin; }
.momentum-card { flex: 0 0 200px; background: linear-gradient(160deg, rgba(255,194,71,.06), rgba(249,115,98,.03)); border: 1px solid rgba(255,194,71,.2); border-radius: 14px; padding: 14px; cursor: pointer; transition: .16s; }
.momentum-card:hover { transform: translateY(-3px); border-color: rgba(255,194,71,.4); box-shadow: 0 8px 24px rgba(255,194,71,.12); }
.mom-badge { font-size: 10.5px; font-weight: 700; padding: 3px 7px; border-radius: 6px; white-space: nowrap; }
.mom-badge.vol { background: rgba(34,211,238,.14); color: var(--cyan); }
.mom-badge.tr { background: rgba(46,230,160,.14); color: var(--up); }

/* глубина кривой в 2 колонки на десктопе */
@media (max-width: 640px) { .depth-grid { grid-template-columns: 1fr !important; } }

/* ═══════════════════════════════════════════════════════
   ULTRA DESIGN LAYER v72 — премиум-полировка
   ═══════════════════════════════════════════════════════ */

/* — фоновая атмосфера: мягкие световые пятна по краям — */
body::before {
  content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background:
    radial-gradient(1100px 600px at 12% -8%, rgba(34,211,238,.10), transparent 60%),
    radial-gradient(900px 500px at 100% 0%, rgba(167,139,250,.08), transparent 55%),
    radial-gradient(700px 500px at 50% 108%, rgba(46,230,160,.05), transparent 60%);
}

/* — HERO-заголовок: акцентный градиент на подзаголовке-эйрброу — */
.eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  letter-spacing: 2.5px; font-weight: 700; font-size: 11px;
  color: var(--cyan); text-transform: uppercase;
}
.page-title {
  font-family: var(--disp); font-weight: 700;
  letter-spacing: -1.5px; line-height: 1.02;
  background: linear-gradient(180deg, var(--ink) 45%, #7fd3e8 100%);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}

/* — МЕТРИК-КАРТОЧКИ: стекло + верхний свет + цветной акцент — */
.hm-card {
  position: relative; overflow: hidden;
  background:
    linear-gradient(165deg, rgba(20,39,60,.9), rgba(10,20,32,.9)) !important;
  border: 1px solid rgba(120,170,220,.10) !important;
  border-radius: 18px !important;
  padding: 20px 22px !important;
  transition: transform .25s cubic-bezier(.2,.8,.3,1), border-color .25s, box-shadow .25s !important;
}
.hm-card::before {
  content: ""; position: absolute; inset: 0 0 auto 0; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(34,211,238,.6), transparent);
  opacity: .5;
}
.hm-card::after {
  content: ""; position: absolute; width: 160px; height: 160px; right: -50px; top: -60px;
  background: radial-gradient(circle, rgba(34,211,238,.16), transparent 70%);
  opacity: 0; transition: opacity .3s;
}
.hm-card:hover {
  transform: translateY(-4px) !important;
  border-color: rgba(34,211,238,.30) !important;
  box-shadow: 0 18px 44px -20px rgba(34,211,238,.35) !important;
}
.hm-card:hover::after { opacity: 1; }
.hm-label { color: var(--ink-dim); font-size: 12.5px; font-weight: 600; display: flex; align-items: center; gap: 7px; margin-bottom: 10px; }
.hm-value { font-family: var(--disp); font-weight: 700; font-size: 27px; letter-spacing: -.5px; }

/* — TRENDING-карточки: живее, с наведением и лёгким свечением — */
.trend-card, .mover-card, [class*="trend"] .info-card {
  border-radius: 16px !important;
  transition: transform .22s cubic-bezier(.2,.8,.3,1), border-color .22s, box-shadow .22s !important;
}
.trend-strip { gap: 14px !important; }

/* — КНОПКА «Торговать» и первичные кнопки: премиум-градиент — */
.mt-buy {
  padding: 8px 18px !important; border-radius: 11px !important;
  background: linear-gradient(135deg, rgba(34,211,238,.14), rgba(8,145,178,.10)) !important;
  color: var(--cyan) !important; font-weight: 700 !important; font-size: 13px !important;
  border: 1px solid rgba(34,211,238,.28) !important;
  transition: .18s cubic-bezier(.2,.8,.3,1) !important;
  letter-spacing: .2px;
}
.mt-buy:hover {
  background: var(--grad-shark) !important; color: #04121d !important;
  border-color: transparent !important;
  box-shadow: 0 8px 22px -8px rgba(34,211,238,.6) !important;
  transform: translateY(-1px);
}
.btn {
  background: var(--grad-shark); color: #04121d; font-weight: 700;
  border-radius: 12px; letter-spacing: .2px;
  box-shadow: 0 6px 18px -8px rgba(34,211,238,.5);
  transition: .18s cubic-bezier(.2,.8,.3,1);
}
.btn:hover { transform: translateY(-2px); box-shadow: 0 12px 30px -10px rgba(34,211,238,.7); filter: brightness(1.06); }

/* — ТАБЛИЦА РЫНКА: премиум-строки, мягче линии, ровнее ритм — */
.market-table thead th {
  font-size: 11px !important; letter-spacing: .6px; text-transform: uppercase;
  color: var(--ink-faint) !important; padding: 12px 10px !important;
  border-bottom: 1px solid var(--line-soft);
}
.market-table tbody tr { transition: background .14s; }
.market-table tbody tr:hover { background: rgba(34,211,238,.045) !important; }
.market-table tbody td { border-bottom: 1px solid rgba(120,170,220,.05) !important; }
.mt-name { font-weight: 650; letter-spacing: -.2px; }
.mt-sym { color: var(--ink-faint); font-size: 11.5px; letter-spacing: .3px; }
.mt-rank { color: var(--ink-faint); font-family: var(--mono); font-size: 13px; }
/* лого в таблице — тонкая рамка-кольцо */
.market-table .tok-logo, .market-table img[class*="logo"], .market-table .mt-logo {
  box-shadow: 0 0 0 1px rgba(120,170,220,.12), 0 4px 10px -4px rgba(0,0,0,.5);
}

/* — ПРОЦЕНТ-ПИЛЮЛИ: чётче, с фоном — */
.pct-pill, .pill.up, .pill.down, [class*="pct"] {
  border-radius: 8px; font-weight: 700; font-size: 12.5px; letter-spacing: .2px;
}

/* — КАТЕГОРИИ-ФИЛЬТРЫ: капсулы премиум — */
.cat-tab { border-radius: 11px !important; font-weight: 600 !important; transition: .16s !important; }
.cat-tab.act {
  background: linear-gradient(135deg, rgba(34,211,238,.16), rgba(8,145,178,.10)) !important;
  color: var(--cyan) !important; border-color: rgba(34,211,238,.4) !important;
  box-shadow: inset 0 0 0 1px rgba(34,211,238,.1);
}

/* — ПАНЕЛИ: премиум-стекло БЕЗ blur (blur на десятках элементов = лаги) — */
.panel, .info-card {
  border-radius: 18px;
  border: 1px solid rgba(120,170,220,.09);
  background: linear-gradient(165deg, rgba(15,29,46,.92), rgba(10,20,32,.92));
}

/* — ВЕРХНИЙ БЕГУЩИЙ ТИКЕР: тоньше, премиальнее — */
.ticker-bar, .top-ticker { border-bottom: 1px solid rgba(120,170,220,.08); }

/* — СКРОЛЛБАР — */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(120,170,220,.18); border-radius: 6px; border: 2px solid transparent; background-clip: padding-box; }
::-webkit-scrollbar-thumb:hover { background: rgba(34,211,238,.4); background-clip: padding-box; }

/* — НАВИГАЦИЯ: активный пункт с подсветкой — */
.mainnav a.act, .nav-link.act { color: var(--cyan); }

/* — плавное появление только hero-метрик (один раз), таблицу не анимируем — */
@keyframes riseIn { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
.hero-metrics { animation: riseIn .45s cubic-bezier(.2,.8,.3,1) both; }

/* — светлая тема: мягче фон и панели — */
[data-theme="light"] body::before {
  background:
    radial-gradient(1100px 600px at 12% -8%, rgba(34,211,238,.08), transparent 60%),
    radial-gradient(900px 500px at 100% 0%, rgba(167,139,250,.06), transparent 55%);
}
[data-theme="light"] .hm-card,
[data-theme="light"] .panel,
[data-theme="light"] .info-card {
  background: linear-gradient(165deg, rgba(255,255,255,.98), rgba(246,249,253,.98)) !important;
  border-color: rgba(20,50,90,.08) !important;
}
[data-theme="light"] .page-title { background: linear-gradient(180deg, #0a1420 45%, #0891b2 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }

/* ═══════════════════════════════════════════════════════
   ULTRA DESIGN v73 — премиум БЕЗ лагов (техника топ-студий)
   стекло через градиенты + inset-блики + тени, НЕ blur
   ═══════════════════════════════════════════════════════ */

/* карточки метрик: внутренний верхний блик + глубина через тень */
.hm-card {
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.06),
    inset 0 0 40px rgba(34,211,238,.03),
    0 8px 24px -16px rgba(0,0,0,.6) !important;
}
.hm-card:hover {
  transform: translateY(-4px) !important;
  border-color: rgba(34,211,238,.32) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.1),
    inset 0 0 50px rgba(34,211,238,.06),
    0 20px 46px -20px rgba(34,211,238,.4) !important;
}

/* панели: тот же приём — тонкий верхний блик, аккуратная тень */
.panel, .info-card {
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.045),
    0 6px 20px -14px rgba(0,0,0,.55);
}

/* TRENDING-карточки: подъём + свечение акцентом при наведении */
.trend-strip > *, .trend-card, .trending-card {
  transition: transform .22s cubic-bezier(.2,.8,.3,1), box-shadow .22s, border-color .22s !important;
}
.trend-strip > *:hover, .trend-card:hover, .trending-card:hover {
  transform: translateY(-4px) !important;
  border-color: rgba(34,211,238,.3) !important;
  box-shadow: 0 16px 40px -20px rgba(34,211,238,.4), inset 0 1px 0 rgba(255,255,255,.06) !important;
}

/* заголовки секций (TRENDING и т.п.) — акцентная точка */
.eyebrow::before {
  content: ""; width: 22px; height: 2px; border-radius: 2px;
  background: linear-gradient(90deg, var(--cyan), transparent);
  display: inline-block;
}

/* число метрики — лёгкое свечение для «живости» */
.hm-value { text-shadow: 0 0 24px rgba(34,211,238,.12); }

/* строки таблицы — тонкий индикатор при наведении слева */
.market-table tbody tr { position: relative; }
.market-table tbody tr::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 2px;
  background: var(--cyan); opacity: 0; transition: opacity .15s;
}
.market-table tbody tr:hover::before { opacity: .7; }

/* спарклайн-график в таблице — мягкое свечение линии */
.market-table svg path[stroke] { filter: drop-shadow(0 0 3px rgba(46,230,160,.25)); }

/* пилюли процентов — чуть объёмнее */
.pct-pill, .pill.up, .pill.down {
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}

/* ускоряем композитинг ключевых интерактивных элементов */
.hm-card, .trend-strip > *, .mt-buy, .btn { will-change: transform; }

/* верхний навбар — тонкая нижняя граница со светом */
header, .topbar, .site-header { border-bottom: 1px solid rgba(120,170,220,.08); }

/* ═══ Карточка позиции P&L v74 ═══ */
.pnl-card {
  border-radius: 18px; padding: 18px 20px;
  background: linear-gradient(160deg, rgba(15,29,46,.95), rgba(10,20,32,.95));
  border: 1px solid rgba(120,170,220,.1);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 8px 26px -18px rgba(0,0,0,.6);
  position: relative; overflow: hidden;
}
.pnl-card.up { border-color: rgba(46,230,160,.25); }
.pnl-card.up::before { content:""; position:absolute; inset:0 0 auto 0; height:1px; background:linear-gradient(90deg,transparent,rgba(46,230,160,.6),transparent); }
.pnl-card.down { border-color: rgba(255,94,122,.25); }
.pnl-card.down::before { content:""; position:absolute; inset:0 0 auto 0; height:1px; background:linear-gradient(90deg,transparent,rgba(255,94,122,.6),transparent); }
.pnl-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.pnl-title { font-size: 11px; font-weight: 700; letter-spacing: .8px; color: var(--ink-faint); display: flex; align-items: center; gap: 7px; }
.pnl-live { width: 7px; height: 7px; border-radius: 50%; background: var(--up); animation: livePulse 1.6s infinite; }
.pnl-share { background: rgba(34,211,238,.1); border: 1px solid rgba(34,211,238,.3); color: var(--cyan); border-radius: 9px; padding: 5px 11px; font-size: 12px; font-weight: 600; cursor: pointer; transition: .15s; }
.pnl-share:hover { background: var(--grad-shark); color: #04121d; border-color: transparent; transform: translateY(-1px); }
.pnl-big { font-family: var(--disp); font-weight: 800; font-size: 34px; letter-spacing: -1px; line-height: 1.1; }
.pnl-pct { font-family: var(--disp); font-weight: 700; font-size: 17px; margin-top: 2px; }
.pnl-rows { display: flex; flex-direction: column; gap: 7px; margin-top: 6px; padding-top: 12px; border-top: 1px solid var(--line-soft); }
.pnl-row { display: flex; justify-content: space-between; align-items: center; font-size: 13px; }
.pnl-row span { color: var(--ink-dim); }
.pnl-row b { font-weight: 700; }

/* ═══ Премиум ATH-прогресс v75 (со свечением и искрой) ═══ */
.ath-head { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 14px; }
.ath-k { font-size: 10px; font-weight: 700; letter-spacing: .6px; color: var(--ink-faint); text-transform: uppercase; }
.ath-v { font-family: var(--mono); font-weight: 600; font-size: 13.5px; margin-top: 2px; }
.ath-v.atl { color: var(--ink-dim); }
.ath-v.now { color: var(--cyan); font-size: 15px; text-shadow: 0 0 16px rgba(34,211,238,.4); }
.ath-v.ath { color: var(--gold); }
.ath-track {
  height: 8px; border-radius: 6px; position: relative;
  background: linear-gradient(90deg, rgba(46,230,160,.12), rgba(34,211,238,.12), rgba(255,194,71,.14));
  box-shadow: inset 0 1px 3px rgba(0,0,0,.4);
}
.ath-fill {
  position: absolute; left: 0; top: 0; bottom: 0; border-radius: 6px;
  background: linear-gradient(90deg, #2ee6a0, #22d3ee 55%, #ffc247);
  box-shadow: 0 0 14px rgba(255,194,71,.5);
  transition: width .8s cubic-bezier(.2,.8,.3,1);
}
.ath-marker { position: absolute; top: 50%; transform: translate(-50%, -50%); pointer-events: none; }
.ath-dot {
  display: block; width: 12px; height: 12px; border-radius: 50%;
  background: #fff; box-shadow: 0 0 0 3px rgba(255,194,71,.35), 0 0 16px rgba(255,194,71,.9);
  position: relative; z-index: 2;
}
.ath-spark {
  position: absolute; top: 50%; left: 50%; width: 44px; height: 44px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(255,194,71,.55), transparent 65%);
  border-radius: 50%; animation: athPulse 2s ease-in-out infinite;
}
@keyframes athPulse { 0%,100% { opacity: .5; transform: translate(-50%,-50%) scale(.85); } 50% { opacity: 1; transform: translate(-50%,-50%) scale(1.15); } }
.ath-foot { display: flex; justify-content: space-between; margin-top: 12px; font-size: 12px; color: var(--ink-dim); }

/* ═══ Полировка hero токена v75 ═══ */
.th-price, .tk-price { text-shadow: 0 0 30px rgba(34,211,238,.15); font-variant-numeric: tabular-nums; }
/* статус-бейджи токена (Кривая/DEX) премиальнее */
.tok-status, .token-badge, [class*="badge"] {
  letter-spacing: .4px;
}
/* блоки метрик на странице токена — тонкий верхний блик */
.tk-stat, .token-metric, .tm-cell {
  box-shadow: inset 0 1px 0 rgba(255,255,255,.03);
}
/* прогресс к DEX — тоже свечение как ATH */
.curve-progress-fill, [id="curveProgress"] .prog-fill {
  box-shadow: 0 0 12px rgba(167,139,250,.4);
}

/* ═══ Премиум торговая панель v76 ═══ */
.trade-card {
  background: linear-gradient(165deg, rgba(15,29,46,.95), rgba(10,20,32,.95)) !important;
  border: 1px solid rgba(120,170,220,.12) !important;
  border-radius: 18px !important; padding: 20px !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 10px 30px -20px rgba(0,0,0,.7);
  position: relative; overflow: hidden;
}
.trade-tabs { background: rgba(6,13,22,.6) !important; border-radius: 13px !important; padding: 4px !important; }
.trade-tab { border-radius: 10px !important; transition: .18s cubic-bezier(.2,.8,.3,1) !important; }
.trade-tab.buy.act { background: linear-gradient(135deg, #2ee6a0, #1fb87f) !important; color: #04212b !important; box-shadow: 0 4px 14px -6px rgba(46,230,160,.6); }
.trade-tab.sell.act { background: linear-gradient(135deg, #ff5e7a, #e04563) !important; color: #fff !important; box-shadow: 0 4px 14px -6px rgba(255,94,122,.6); }
.trade-input {
  background: rgba(6,13,22,.7) !important; border: 1px solid rgba(120,170,220,.12) !important;
  border-radius: 13px !important; padding: 16px !important; font-size: 26px !important;
  transition: border-color .18s, box-shadow .18s !important;
}
.trade-input:focus { border-color: var(--cyan) !important; box-shadow: 0 0 0 3px rgba(34,211,238,.12) !important; }
.tp-btn {
  border-radius: 10px !important; font-weight: 700 !important;
  background: rgba(19,39,60,.7) !important; border: 1px solid rgba(120,170,220,.08) !important;
  transition: .16s cubic-bezier(.2,.8,.3,1) !important;
}
.tp-btn:hover { color: var(--cyan) !important; background: rgba(34,211,238,.1) !important; border-color: rgba(34,211,238,.3) !important; transform: translateY(-1px); }
.trade-exec {
  width: 100%; margin-top: 12px; padding: 15px !important; border-radius: 14px !important;
  font-weight: 800 !important; font-size: 15px !important; letter-spacing: .3px;
  transition: .18s cubic-bezier(.2,.8,.3,1) !important; position: relative; overflow: hidden;
}
.trade-exec.buy { background: linear-gradient(135deg, #2ee6a0, #1fb87f) !important; color: #04212b !important; box-shadow: 0 8px 24px -10px rgba(46,230,160,.6); }
.trade-exec.sell { background: linear-gradient(135deg, #ff5e7a, #e04563) !important; color: #fff !important; box-shadow: 0 8px 24px -10px rgba(255,94,122,.6); }
.trade-exec:hover { transform: translateY(-2px); filter: brightness(1.05); }
.trade-exec:active { transform: translateY(0); }
/* блик-шиммер по кнопке */
.trade-exec::after {
  content: ""; position: absolute; top: 0; left: -60%; width: 40%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.25), transparent);
  transform: skewX(-20deg); transition: left .5s;
}
.trade-exec:hover::after { left: 130%; }

/* баланс в торговой панели */
.trade-bal-row { display: flex; justify-content: space-between; align-items: center; padding: 7px 0; font-size: 13px; color: var(--ink-dim); border-top: 1px solid var(--line-soft); }
.trade-bal-row:first-child { border-top: none; }
.trade-bal-row b { color: var(--ink); }
#tradeBal { margin-top: 12px !important; text-align: left !important; }

/* ═══ Полировка метрик токена v77 ═══ */
.tks {
  background: linear-gradient(165deg, rgba(15,29,46,.6), rgba(10,20,32,.5)) !important;
  border-radius: 12px; padding: 13px 15px !important;
  border: 1px solid rgba(120,170,220,.06);
  transition: border-color .18s, transform .18s;
}
.tks:hover { border-color: rgba(34,211,238,.2); transform: translateY(-2px); }
.tks .k { font-weight: 600 !important; letter-spacing: .6px !important; }
.tks .v { letter-spacing: -.2px; }
/* статус-бейджи (Кривая/Мем) — премиум-капсулы */
.badge-curve, .status-curve, [class*="tok-status"] { border-radius: 8px; letter-spacing: .4px; font-weight: 700; }

/* ═══ Полировка графика и вкладок v79 ═══ */
/* контейнер графика — премиум-рамка */
#chartBox { border-radius: 14px; overflow: hidden; }
/* таймфрейм-табы */
.tf-tab { border-radius: 9px !important; font-weight: 600 !important; transition: .15s !important; }
.tf-tab.act { background: linear-gradient(135deg, rgba(34,211,238,.18), rgba(8,145,178,.12)) !important; color: var(--cyan) !important; box-shadow: inset 0 0 0 1px rgba(34,211,238,.25); }
/* индикатор-кнопки графика */
.ind-btn { border-radius: 8px !important; transition: .15s !important; }
.ind-btn.act { box-shadow: inset 0 0 0 1px rgba(34,211,238,.3), 0 0 12px -4px rgba(34,211,238,.4); }
/* нижние вкладки токена (Сделки/Холдеры/...) */
.dtab { border-radius: 9px !important; transition: .15s !important; font-weight: 600 !important; }
.dtab.act { color: var(--cyan) !important; position: relative; }
.dtab.act::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: -1px; height: 2px; background: var(--grad-shark); border-radius: 2px; box-shadow: 0 0 8px rgba(34,211,238,.6); }
/* LIVE-бейдж графика — премиальнее */
.chart-live-badge { backdrop-filter: none; background: rgba(46,230,160,.14); box-shadow: 0 4px 14px -6px rgba(46,230,160,.4); }

/* ═══ Живой фон-сеть v80 ═══ */
#netBg {
  position: fixed; inset: 0; width: 100vw; height: 100vh;
  z-index: -1; pointer-events: none; opacity: .55;
  mask-image: radial-gradient(ellipse 80% 60% at 50% 20%, #000 30%, transparent 85%);
  -webkit-mask-image: radial-gradient(ellipse 80% 60% at 50% 20%, #000 30%, transparent 85%);
}
[data-theme="light"] #netBg { opacity: .4; }

/* ═══════════════════════════════════════════════════════
   ФИКС СВЕТЛОЙ ТЕМЫ v81 — премиум-слои используют светлые цвета
   ═══════════════════════════════════════════════════════ */
[data-theme="light"] .panel,
[data-theme="light"] .info-card,
[data-theme="light"] .hm-card,
[data-theme="light"] .trade-card,
[data-theme="light"] .pnl-card,
[data-theme="light"] .momentum-card,
[data-theme="light"] .tks,
[data-theme="light"] .ai-card,
[data-theme="light"] .learn-item {
  background: linear-gradient(165deg, #ffffff, #f6f9fd) !important;
  border-color: rgba(20,50,90,.1) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.6), 0 4px 16px -10px rgba(20,50,90,.15) !important;
}
[data-theme="light"] .hm-card:hover,
[data-theme="light"] .tks:hover {
  border-color: rgba(8,145,178,.35) !important;
  box-shadow: 0 14px 34px -18px rgba(8,145,178,.3) !important;
}
[data-theme="light"] .hm-value { text-shadow: none; color: #0a1420; }
[data-theme="light"] .th-price, [data-theme="light"] .tk-price { text-shadow: none; }
[data-theme="light"] .trade-input { background: #f0f5fa !important; border-color: rgba(20,50,90,.12) !important; color: #0a1420 !important; }
[data-theme="light"] .trade-tabs { background: #eaf1f9 !important; }
[data-theme="light"] .tp-btn { background: #eef4fa !important; border-color: rgba(20,50,90,.08) !important; color: #4a627e !important; }
[data-theme="light"] .trade-bal-row b { color: #0a1420; }
[data-theme="light"] .pnl-rows { border-color: rgba(20,50,90,.1); }
[data-theme="light"] pre { background: #eef3f9 !important; color: #0a1420 !important; }
[data-theme="light"] .cmd-ic { background: rgba(8,145,178,.08); }
[data-theme="light"] .whale-row:hover, [data-theme="light"] .comm-feed-row:hover, [data-theme="light"] .cmp-sug-item:hover { background: rgba(8,145,178,.06); }
[data-theme="light"] .market-table thead th:last-child, [data-theme="light"] .market-table tbody td:last-child { background: #fff; }
[data-theme="light"] .market-table tbody tr:hover td:last-child { background: #f6f9fd; }
[data-theme="light"] .ath-track { background: linear-gradient(90deg, rgba(46,230,160,.18), rgba(8,145,178,.18), rgba(255,194,71,.22)); }
[data-theme="light"] .ath-dot { background: #fff; box-shadow: 0 0 0 3px rgba(255,194,71,.4), 0 0 14px rgba(255,194,71,.7), 0 1px 4px rgba(0,0,0,.2); }
[data-theme="light"] ::-webkit-scrollbar-thumb { background: rgba(20,50,90,.2); background-clip: padding-box; }

/* ═══════════════════════════════════════════════════════
   ФИКС МОБИЛЬНОЙ ВЕРСИИ v81
   ═══════════════════════════════════════════════════════ */
@media (max-width: 640px) {
  /* фон-сеть легче на мобильных (экономия батареи) */
  #netBg { opacity: .3; }
  /* карточки компактнее */
  .hm-card { padding: 15px 16px !important; border-radius: 15px !important; }
  .hm-value { font-size: 22px !important; }
  .panel, .info-card { border-radius: 15px; }
  .page-title { font-size: 30px !important; letter-spacing: -1px; }
  .page-sub { font-size: 14px; }
  /* торговая панель — плотнее */
  .trade-card { padding: 16px !important; border-radius: 15px !important; }
  .trade-exec { padding: 14px !important; font-size: 14px !important; }
  /* P&L карточка */
  .pnl-big { font-size: 28px !important; }
  /* глубина кривой в 1 колонку */
  .depth-grid { grid-template-columns: 1fr !important; }
  /* убираем горизонтальные переполнения */
  .wrap, main.wrap { padding-left: 14px !important; padding-right: 14px !important; }
  /* таблица — меньше шрифт, плотнее */
  .market-table tbody td { padding: 11px 7px !important; font-size: 13px !important; }
  .market-table thead th { padding: 9px 7px !important; font-size: 10px !important; }
  .mt-buy { padding: 7px 12px !important; font-size: 12px !important; }
  /* ATH-бар подписи */
  .ath-v { font-size: 12px !important; }
  .ath-v.now { font-size: 13px !important; }
  /* trending горизонтальный скролл */
  .trend-strip { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  /* модалки шире на весь экран */
  .trader-modal { max-width: 94vw !important; }
}
@media (max-width: 400px) {
  .page-title { font-size: 26px !important; }
  .hm-value { font-size: 20px !important; }
}

/* ═══════════════════════════════════════════════════════
   ФИКС СВЕТЛОЙ ТЕМЫ v83 — trending, таблица, категории
   ═══════════════════════════════════════════════════════ */
/* trending-карточки светлые */
[data-theme="light"] .trend-item {
  background: linear-gradient(160deg, #ffffff, #f4f8fc) !important;
  border-color: rgba(20,50,90,.1) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.6), 0 4px 14px -8px rgba(20,50,90,.18);
}
[data-theme="light"] .trend-item:hover {
  border-color: rgba(8,145,178,.4) !important;
  box-shadow: 0 14px 34px -18px rgba(8,145,178,.3) !important;
}
/* заголовок таблицы светлый */
[data-theme="light"] .market-table thead th {
  background: #f0f5fa !important;
  color: #4a627e !important;
  border-bottom-color: rgba(20,50,90,.1) !important;
}
[data-theme="light"] .market-table thead th:last-child { background: #f0f5fa !important; }
/* липкая колонка кнопки — мягкий переход вместо резкого белого блока */
[data-theme="light"] .market-table tbody td:last-child {
  background: #fff !important;
  box-shadow: -14px 0 20px -12px rgba(20,50,90,.18) !important;
}
[data-theme="light"] .market-table tbody tr:hover td:last-child { background: #f6f9fd !important; }
/* категории-фильтры — контрастнее в светлой */
[data-theme="light"] .cat-tab {
  background: #eef4fa !important; color: #4a627e !important;
  border-color: rgba(20,50,90,.1) !important;
}
[data-theme="light"] .cat-tab:hover { color: #0a1420 !important; border-color: rgba(8,145,178,.3) !important; }
[data-theme="light"] .cat-tab.act {
  background: linear-gradient(135deg, rgba(8,145,178,.14), rgba(34,211,238,.1)) !important;
  color: #0672a0 !important; border-color: rgba(8,145,178,.4) !important;
}

/* ═══ Колонка Trade — без лишней тени, ровный фон ═══ */
.market-table tbody td:last-child { box-shadow: none !important; }

/* ═══ Доработка пустых состояний v85 ═══ */
.empty-state {
  padding: 40px 20px; text-align: center; color: var(--ink-faint);
  display: flex; flex-direction: column; align-items: center; gap: 10px;
}
.empty-state .es-ic { font-size: 34px; opacity: .5; }
.empty-state .es-t { font-size: 14px; font-weight: 600; color: var(--ink-dim); }
.empty-state .es-s { font-size: 12.5px; }
/* доработка вкладок токена — активная чуть заметнее */
.dtab.act { color: var(--cyan) !important; }
.dtabs { gap: 2px; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
.dtabs::-webkit-scrollbar { display: none; }
/* строки сделок — ровный моноширинный ритм, hover */
.txn-row { transition: background .12s; border-radius: 8px; }
.txn-row:not(.txn-head):hover { background: rgba(34,211,238,.04); }
[data-theme="light"] .txn-row:not(.txn-head):hover { background: rgba(8,145,178,.05); }
.txn-row .side.buy { color: var(--up); font-weight: 700; }
.txn-row .side.sell { color: var(--down); font-weight: 700; }

/* ═══ Доработка вкладки холдеров v91 ═══ */
.holder-row { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line-soft); cursor: pointer; transition: background .12s; border-radius: 8px; }
.holder-row:hover { background: rgba(34,211,238,.04); }
[data-theme="light"] .holder-row:hover { background: rgba(8,145,178,.05); }
.holder-bar { height: 4px; background: var(--trench); border-radius: 3px; margin-top: 5px; overflow: hidden; max-width: 220px; }
.holder-fill { height: 100%; background: linear-gradient(90deg, var(--cyan), var(--cyan-deep)); border-radius: 3px; box-shadow: 0 0 6px rgba(34,211,238,.4); }

/* ═══════════════════════════════════════════════════════
   ДОСТУПНОСТЬ И КАЧЕСТВО ВЗАИМОДЕЙСТВИЙ v91
   фундаментальный кросс-секционный слой (a11y + UX)
   ═══════════════════════════════════════════════════════ */

/* — focus-visible: видимое кольцо ТОЛЬКО при навигации с клавиатуры —
   (не мешает мыши, критично для доступности) */
:focus { outline: none; }
a:focus-visible, button:focus-visible, input:focus-visible,
textarea:focus-visible, select:focus-visible, [tabindex]:focus-visible,
.nv:focus-visible, .cat-tab:focus-visible, .dtab:focus-visible,
.tp-btn:focus-visible, .mt-buy:focus-visible, .trade-tab:focus-visible {
  outline: 2px solid var(--cyan);
  outline-offset: 2px;
  border-radius: 8px;
}
[data-theme="light"] a:focus-visible,
[data-theme="light"] button:focus-visible { outline-color: #0891b2; }

/* — «skip to content» для screen-readers/клавиатуры — */
.skip-link {
  position: fixed; top: -60px; left: 12px; z-index: 9999;
  background: var(--cyan); color: #04121d; padding: 10px 16px;
  border-radius: 10px; font-weight: 700; transition: top .2s;
}
.skip-link:focus { top: 12px; }

/* — интерактивные элементы: единый отклик на нажатие (тактильность) — */
button:active:not(:disabled), .nv:active, .cat-tab:active,
.tp-btn:active, .mt-buy:active { transform: scale(.97); }
button, a, .nv, .cat-tab, .dtab, .tp-btn { -webkit-tap-highlight-color: transparent; }

/* — disabled состояния консистентны везде — */
button:disabled, input:disabled {
  opacity: .5; cursor: not-allowed; filter: grayscale(.3);
}

/* — плавность цветовых переходов темы (переключение day/night) — */
.panel, .info-card, .hm-card, .trend-item, .market-table,
.trade-card, .topbar, .cat-tab, .dtab {
  transition: background-color .3s ease, border-color .3s ease, color .2s ease,
              transform .18s cubic-bezier(.2,.8,.3,1), box-shadow .2s ease;
}

/* — курсор-указатель на всех кликабельных — */
[onclick], .nv, .cat-tab, .dtab, .trend-item, .tp-btn { cursor: pointer; }

/* — уважение к prefers-reduced-motion: гасим все анимации — */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

/* — контраст текста: минимальная читаемость приглушённого — */
.mt-sym, .ti-price, .es-s { -webkit-font-smoothing: antialiased; }

/* — выделение текста в бренд-цвет — */
::selection { background: rgba(34,211,238,.28); color: var(--ink); }
[data-theme="light"] ::selection { background: rgba(8,145,178,.2); }

/* — ссылки с клавиатуры в футере/нав видимы — */
.footer a, footer a { border-radius: 6px; }

/* — прокрутка внутри модалок плавная — */
.trader-modal, .onboard-card, #shareModal .modal-inner { scroll-behavior: smooth; }

/* ═══ Доработка вкладки Depth v92 ═══ */
.depth-sec-label { font-size: 11px; font-weight: 700; letter-spacing: .4px; text-transform: uppercase; margin: 10px 0 6px; padding: 0 4px; }
.depth-row { display: grid; grid-template-columns: 1fr 1.2fr 1fr; gap: 8px; padding: 6px 8px; position: relative; font-size: 13px; border-radius: 6px; align-items: center; }
.depth-bar { position: absolute; top: 0; bottom: 0; right: 0; border-radius: 6px; opacity: .1; z-index: 0; }
.depth-row.bid .depth-bar { background: var(--up); }
.depth-row.ask .depth-bar { background: var(--down); }
.depth-row > span:not(.depth-bar) { position: relative; z-index: 1; }
.depth-row > span:nth-child(2), .depth-row > span:nth-child(3), .depth-row > span:nth-child(4) { text-align: right; }
.depth-head { display: grid; grid-template-columns: 1fr 1.2fr 1fr; gap: 8px; padding: 4px 8px 8px; font-size: 11px; color: var(--ink-faint); text-transform: uppercase; letter-spacing: .5px; border-bottom: 1px solid var(--line-soft); }
.depth-head span:nth-child(2), .depth-head span:nth-child(3) { text-align: right; }
.depth-spread { text-align: center; padding: 10px; font-family: var(--mono); font-weight: 700; font-size: 15px; color: var(--cyan); border-top: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); margin: 8px 0; }

/* ═══════════════════════════════════════════════════════
   НОРМАЛИЗАЦИЯ ДИЗАЙН-СИСТЕМЫ v97
   приводим ключевые элементы к единой шкале radius/shadow
   ═══════════════════════════════════════════════════════ */

/* панели и крупные карточки → --r-lg + --sh-2 */
.panel, .info-card, .hm-card, .trade-card, .pnl-card, .ai-card {
  border-radius: var(--r-lg);
  box-shadow: var(--sh-2);
}
/* средние карточки → --r-md */
.trend-item, .momentum-card, .tks, .learn-item, .depth-row, .roi-row {
  border-radius: var(--r-md);
}
/* кнопки/инпуты/вкладки/пилюли → --r-sm */
.btn, .btn-ghost, .mt-buy, .tp-btn, .trade-tab, .cat-tab, .dtab,
input, textarea, select, .trade-input, .pnl-share {
  border-radius: var(--r-sm);
}
/* мелкие бейджи/пилюли → --r-xs */
.pill, .side, .badge, .ai-badge, .mom-badge, .pct-pill,
.chart-live-badge, .depth-pct { border-radius: var(--r-xs); }
/* модалки → --r-xl */
.trader-modal, .onboard-card, #shareModal .modal-inner, .share-modal { border-radius: var(--r-xl); }

/* поднятые состояния карточек при наведении → единая --sh-3 */
.hm-card:hover, .trend-item:hover, .tks:hover, .momentum-card:hover {
  box-shadow: var(--sh-3);
}

/* единые тайминги переходов везде */
.btn, .mt-buy, .tp-btn, .cat-tab, .dtab, .trend-item, .hm-card,
.trade-tab, .pnl-share, .icon-btn, .nv {
  transition: transform var(--dur) var(--ease),
              background-color var(--dur) var(--ease),
              border-color var(--dur) var(--ease),
              box-shadow var(--dur) var(--ease),
              color var(--dur-fast) var(--ease);
}

/* единый ритм отступов секций страницы */
.page-title { margin-bottom: var(--sp-2); }
.page-sub { margin-bottom: var(--sp-6); }
.eyebrow { margin-bottom: var(--sp-2); }

/* ═══════════════════════════════════════════════════════
   ТИПОГРАФИЧЕСКАЯ СИСТЕМА v98 — единый ритм текста
   ═══════════════════════════════════════════════════════ */

/* заголовки страниц — единый размер/трекинг/интерлиньяж */
.page-title {
  font-size: var(--fs-3xl); font-weight: 700;
  letter-spacing: var(--ls-tight); line-height: var(--lh-tight);
}
.page-sub { font-size: var(--fs-base); color: var(--ink-dim); line-height: var(--lh-normal); }

/* eyebrow (надзаголовки) — единый стиль */
.eyebrow { font-size: var(--fs-xs); font-weight: 700; letter-spacing: 2px; text-transform: uppercase; }

/* заголовки блоков/панелей */
.panel-title, .block-title, .section-title { font-size: var(--fs-lg); font-weight: 700; letter-spacing: var(--ls-tight); }

/* значения метрик — крупный дисплейный шрифт, tabular */
.hm-value, .metric-value, .stat-value {
  font-family: var(--disp); font-weight: 700;
  font-variant-numeric: tabular-nums; letter-spacing: var(--ls-tight);
}

/* метки/подписи — единый мелкий стиль */
.hm-label, .k, .ath-k, .es-s, .mt-sym, .tks .k {
  font-size: var(--fs-xs); font-weight: 600; letter-spacing: var(--ls-wide);
}

/* таблицы — единый ритм */
.market-table thead th { font-size: var(--fs-xs); font-weight: 600; letter-spacing: var(--ls-wide); }
.market-table tbody td { font-size: var(--fs-sm); }

/* моноширинные числа везде выровнены */
.mono, [class*="price"], [class*="value"], .mt-price { font-variant-numeric: tabular-nums; }

/* оптимизация рендеринга шрифтов (чёткость) */
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }

/* переносы длинных адресов/чисел без разрыва вёрстки */
.mono, .addr { word-break: break-word; overflow-wrap: anywhere; }

/* ═══════════════════════════════════════════════════════
   СИСТЕМА МИКРОАНИМАЦИЙ v99 — единый язык движения
   только transform/opacity (GPU), с учётом reduced-motion
   ═══════════════════════════════════════════════════════ */

/* — появление элементов: единая кривая и дистанция — */
@keyframes fadeUp { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes scaleIn { from { opacity: 0; transform: scale(.96); } to { opacity: 1; transform: scale(1); } }
@keyframes slideInRight { from { opacity: 0; transform: translateX(14px); } to { opacity: 1; transform: none; } }

/* — hero-метрики: каскадное появление (stagger) — */
.hero-metrics > * { animation: fadeUp .5s var(--ease) both; }
.hero-metrics > *:nth-child(1) { animation-delay: .02s; }
.hero-metrics > *:nth-child(2) { animation-delay: .08s; }
.hero-metrics > *:nth-child(3) { animation-delay: .14s; }
.hero-metrics > *:nth-child(4) { animation-delay: .20s; }

/* — trending-карточки: каскад — */
.trend-strip > * { animation: fadeUp .45s var(--ease) both; }
.trend-strip > *:nth-child(1) { animation-delay: .04s; }
.trend-strip > *:nth-child(2) { animation-delay: .09s; }
.trend-strip > *:nth-child(3) { animation-delay: .14s; }
.trend-strip > *:nth-child(4) { animation-delay: .19s; }
.trend-strip > *:nth-child(5) { animation-delay: .24s; }

/* — заголовки страницы: мягкое появление — */
.page-title { animation: fadeUp .5s var(--ease) both; }
.page-sub { animation: fadeUp .5s var(--ease) both; animation-delay: .06s; }
.eyebrow { animation: fadeIn .6s var(--ease) both; }

/* — новая строка сделки: плавно въезжает — */
@keyframes tradeIn {
  from { opacity: 0; transform: translateY(-8px); background: rgba(34,211,238,.14); }
  to { opacity: 1; transform: none; background: transparent; }
}
.txn-row.fresh { animation: tradeIn .6s var(--ease) both; }

/* — flash при обновлении цены: тонкий цветовой импульс — */
@keyframes flashUp { 0% { color: var(--up); } 100% { color: inherit; } }
@keyframes flashDown { 0% { color: var(--down); } 100% { color: inherit; } }
.flash-up { animation: flashUp 1s var(--ease); }
.flash-down { animation: flashDown 1s var(--ease); }

/* — модалки: мягкое масштабирование — */
.trader-modal, .onboard-card, #shareModal .modal-inner { animation: scaleIn .28s var(--ease) both; }
.trader-overlay, .onboard-overlay { animation: fadeIn .22s var(--ease) both; }

/* — вкладки при переключении контента — */
#dtabBody > *, #view > * { animation: fadeIn .3s var(--ease) both; }

/* — кнопки: отклик через transform (тактильность) уже есть; добавим «нажатие» плавным — */
.btn:active, .mt-buy:active, .tp-btn:active, .trade-exec:active { transition-duration: .05s; }

/* — тосты: въезд снизу — */
.toast { animation: slideInRight .3s var(--ease) both; }

/* — skeleton-загрузка: единый премиум-шиммер — */
.skel {
  background: linear-gradient(90deg, rgba(120,170,220,.05) 25%, rgba(120,170,220,.12) 37%, rgba(120,170,220,.05) 63%);
  background-size: 400% 100%; animation: skelShim 1.4s ease infinite; border-radius: var(--r-sm);
}
@keyframes skelShim { from { background-position: 100% 0; } to { background-position: -100% 0; } }

/* — уважение к reduced-motion: всё выключается (усилено) — */
@media (prefers-reduced-motion: reduce) {
  .hero-metrics > *, .trend-strip > *, .page-title, .page-sub, .eyebrow,
  .txn-row.fresh, .trader-modal, .onboard-card, #dtabBody > *, #view > *,
  .toast, .skel { animation: none !important; }
}

/* ═══════════════════════════════════════════════════════
   МОБИЛЬНАЯ ВЕРСИЯ v102 — комплексная доработка
   ═══════════════════════════════════════════════════════ */
@media (max-width: 768px) {
  /* контейнер — минимальные поля, контент шире */
  .wrap, main.wrap { padding: 0 12px 90px !important; }  /* снизу место под нижнюю навигацию */

  /* ШАПКА компактнее — прячем лишнее, оставляем главное */
  .topbar-in { height: 56px; gap: 10px; }
  .logo-text, .brand-text { font-size: 17px; }
  .net-switch, .gas-badge { display: none !important; }  /* сеть/газ прячем на мобилке */
  .topbar-actions { gap: 4px; }
  .icon-btn { width: 34px; height: 34px; font-size: 14px; }

  /* HERO — компактнее */
  .page-title { font-size: 26px !important; letter-spacing: -.5px; line-height: 1.1; }
  .page-sub { font-size: 13.5px !important; margin-bottom: 16px !important; }
  .eyebrow { font-size: 10px; }

  /* МЕТРИКИ — 2 колонки, компактные */
  .hero-metrics { grid-template-columns: repeat(2, 1fr) !important; gap: 10px; }
  .hm-card { padding: 14px !important; }
  .hm-value { font-size: 20px !important; }
  .hm-label { font-size: 10.5px !important; }

  /* ТИКЕР сверху — тоньше */
  .market-ticker { height: 32px; }
  .mt-item { font-size: 11px; }

  /* ТАБЛИЦА РЫНКА — прячем менее важные колонки, оставляем суть */
  .market-table thead th:nth-child(4), .market-table tbody td:nth-child(4), /* 1ч% */
  .market-table thead th:nth-child(7), .market-table tbody td:nth-child(7) { /* 7D chart */
    display: none;
  }
  .market-table tbody td { padding: 10px 6px !important; font-size: 12.5px !important; }
  .market-table thead th { padding: 8px 6px !important; font-size: 9.5px !important; }
  .mt-buy { padding: 6px 10px !important; font-size: 11.5px !important; }
  .mt-logo, .market-table img { width: 26px !important; height: 26px !important; }
  .mt-name { font-size: 13px !important; }
  .mt-sym { font-size: 10px !important; }

  /* TRENDING — свайп-карусель, чётче видно что скроллится */
  .trend-strip { gap: 10px !important; padding-bottom: 8px; scroll-snap-type: x mandatory; }
  .trend-item { min-width: 150px !important; scroll-snap-align: start; padding: 12px 13px !important; }

  /* КАТЕГОРИИ — свайп */
  .cat-tabs, .cats { overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; flex-wrap: nowrap !important; }
  .cat-tabs::-webkit-scrollbar { display: none; }
  .cat-tab { flex: none; font-size: 12.5px !important; padding: 7px 13px !important; }

  /* СТРАНИЦА ТОКЕНА — hero стопкой */
  .token-hero { flex-direction: column; gap: 14px; }
  .th-right { width: 100% !important; }
  .th-price { font-size: 28px !important; }

  /* ГРАФИК — ниже, помещается */
  #chartBox, .chart-box { height: 300px !important; }
  .tf-tab { padding: 6px 10px !important; font-size: 12px !important; }
  .ind-btn { font-size: 11px !important; padding: 4px 8px !important; }

  /* ТОРГОВАЯ ПАНЕЛЬ — крупные тач-таргеты */
  .trade-card { padding: 15px !important; }
  .tp-btn { padding: 9px 0 !important; font-size: 13px !important; min-height: 40px; }
  .trade-exec { padding: 14px !important; font-size: 14px !important; min-height: 50px; }
  .trade-tab { padding: 10px 0 !important; min-height: 42px; }

  /* ВКЛАДКИ токена — свайп */
  .dtabs { overflow-x: auto; flex-wrap: nowrap; scrollbar-width: none; }
  .dtabs::-webkit-scrollbar { display: none; }
  .dtab { flex: none; padding: 11px 12px !important; font-size: 13px !important; }

  /* КАРТОЧКИ P&L / анализ — компактнее */
  .pnl-big { font-size: 26px !important; }
  .depth-grid { grid-template-columns: 1fr !important; }

  /* МОДАЛКИ — почти на весь экран, скролл */
  .trader-modal, #shareModal .modal-inner, .share-modal {
    max-width: 94vw !important; max-height: 88vh !important; overflow-y: auto; padding: 18px !important;
  }
  .onboard-card { max-width: 92vw !important; padding: 24px 20px !important; }

  /* ТАБЛИЦЫ вообще — горизонтальный скролл-контейнер */
  .panel.has-table, .table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }

  /* МИНИМАЛЬНЫЙ тач-таргет 44px для доступности (Apple HIG) */
  button, .nv, a.btn, .cat-tab, .tf-tab { min-height: 40px; }

  /* фон-сеть ещё легче — не отвлекает и бережёт батарею */
  #netBg { opacity: .22; }

  /* AI-помощник и toTop не перекрывают нижнюю навигацию */
  .ai-fab { bottom: 78px !important; right: 14px !important; }
  #toTop, .to-top { bottom: 78px !important; }
}

/* очень узкие экраны (≤380px) */
@media (max-width: 380px) {
  .page-title { font-size: 23px !important; }
  .hm-value { font-size: 18px !important; }
  .hero-metrics { gap: 8px; }
  .market-table tbody td { padding: 9px 4px !important; font-size: 12px !important; }
  .th-price { font-size: 24px !important; }
}

/* нижняя навигация в светлой теме */
[data-theme="light"] .mobile-nav {
  background: rgba(255,255,255,.97) !important;
  border-top-color: rgba(8,145,178,.15) !important;
  box-shadow: 0 -8px 30px rgba(20,50,90,.12) !important;
}
[data-theme="light"] .mobile-sheet, [data-theme="light"] .mn-sheet {
  background: #fff !important; border-color: rgba(20,50,90,.1) !important;
}

/* ═══ Мобильный анти-переполнение v104 (критично!) ═══ */
@media (max-width: 768px) {
  /* жёстко предотвращаем горизонтальный вылет — частая причина "ужасной" мобильной */
  html, body { max-width: 100vw; overflow-x: hidden; }
  * { max-width: 100vw; }
  img, svg, canvas, video, table, pre { max-width: 100%; }
  /* длинные адреса/числа не рвут вёрстку */
  .mono, .addr, code, pre { overflow-wrap: anywhere; word-break: break-word; }
  /* таблицы всегда в скролл-контейнере */
  table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; white-space: nowrap; }
  .market-table { display: table; width: 100%; }  /* market-table оставляем как table (у неё свой скролл-контейнер) */
  /* модалки не шире экрана */
  .modal, .trader-modal, .onboard-card, [class*="modal"] { max-width: 94vw !important; }
  /* убираем случайные горизонтальные отступы, ломающие ширину */
  .panel, .info-card, .hm-card { max-width: 100%; }
  /* сетки в одну колонку по умолчанию если не заданы */
  .cc-top, .cc-bottom, .two-col, .grid-2 { grid-template-columns: 1fr !important; }
  /* pre с кодом виджета — перенос */
  pre { white-space: pre-wrap !important; word-break: break-all; font-size: 10.5px !important; }
}

/* ═══ Модал выбора кошелька (EIP-6963) v107 ═══ */
.wallet-overlay {
  position: fixed; inset: 0; z-index: 1000;
  background: rgba(4,10,20,.7); backdrop-filter: blur(6px);
  display: flex; align-items: center; justify-content: center; padding: 20px;
  animation: fadeIn .2s var(--ease);
}
.wallet-modal {
  width: 100%; max-width: 380px; background: var(--panel);
  border: 1px solid var(--line); border-radius: var(--r-xl);
  box-shadow: var(--sh-3); overflow: hidden; animation: scaleIn .25s var(--ease);
}
.wallet-modal-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 20px; border-bottom: 1px solid var(--line-soft);
  font-weight: 700; font-size: var(--fs-md);
}
.wallet-modal-head button {
  width: 30px; height: 30px; border-radius: var(--r-sm);
  color: var(--ink-faint); font-size: 16px; transition: .15s;
}
.wallet-modal-head button:hover { background: var(--trench); color: var(--ink); }
.wallet-list { padding: 12px; display: flex; flex-direction: column; gap: 6px; }
.wallet-opt {
  display: flex; align-items: center; gap: 14px;
  padding: 14px 16px; border-radius: var(--r-md);
  background: var(--panel2); border: 1px solid transparent;
  font-weight: 600; font-size: var(--fs-base); text-align: left; transition: .16s var(--ease);
}
.wallet-opt:hover {
  background: var(--trench); border-color: var(--cyan-deep);
  transform: translateY(-1px);
}
.wallet-opt img { border-radius: 8px; flex: none; }
.wallet-opt span:nth-child(2) { flex: 1; }
.wallet-arrow { color: var(--cyan); font-size: 16px; opacity: 0; transition: .16s; }
.wallet-opt:hover .wallet-arrow { opacity: 1; transform: translateX(3px); }
.wallet-hint {
  padding: 0 20px 18px; text-align: center;
  font-size: var(--fs-xs); color: var(--ink-faint);
}
/* мобильная — модал снизу как bottom-sheet */
@media (max-width: 640px) {
  .wallet-overlay { align-items: flex-end; padding: 0; }
  .wallet-modal {
    max-width: 100%; border-radius: var(--r-xl) var(--r-xl) 0 0;
    animation: slideUpSheet .3s var(--ease);
    padding-bottom: env(safe-area-inset-bottom);
  }
  .wallet-opt { padding: 16px; min-height: 56px; }  /* крупные тач-таргеты */
}
@keyframes slideUpSheet { from { transform: translateY(100%); } to { transform: none; } }

/* ═══ Меню подключённого кошелька v108 ═══ */
.wallet-menu-pop {
  position: fixed; z-index: 1001; width: 220px;
  background: var(--panel); border: 1px solid var(--line);
  border-radius: var(--r-lg); box-shadow: var(--sh-3);
  padding: 8px; animation: scaleIn .18s var(--ease); transform-origin: top right;
}
.wm-addr {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 12px 12px; margin-bottom: 4px;
  border-bottom: 1px solid var(--line-soft);
  font-family: var(--mono); font-size: 13px; font-weight: 600;
}
.wm-item {
  display: flex; align-items: center; gap: 11px; width: 100%;
  padding: 11px 12px; border-radius: var(--r-sm);
  font-size: 14px; font-weight: 500; text-align: left; color: var(--ink); transition: .14s;
}
.wm-item:hover { background: var(--trench); }
.wm-item.wm-danger { color: var(--down); }
.wm-item.wm-danger:hover { background: rgba(255,94,122,.1); }

@media (max-width: 640px) {
  /* меню кошелька снизу как sheet */
  .wallet-menu-pop {
    left: 0 !important; right: 0; top: auto !important; bottom: 0;
    width: 100%; border-radius: var(--r-xl) var(--r-xl) 0 0;
    padding: 10px 10px calc(10px + env(safe-area-inset-bottom));
    animation: slideUpSheet .28s var(--ease);
  }
  .wm-item { padding: 15px 14px; min-height: 52px; }
}

/* ═══ Мобильная доработка разделов v108 ═══ */
@media (max-width: 768px) {
  /* портфель — карточки позиций в столбец, читаемо */
  .pf-summary, .portfolio-stats { grid-template-columns: repeat(2, 1fr) !important; gap: 10px; }
  .position-row, .pf-row {
    flex-wrap: wrap; gap: 8px; padding: 12px !important;
  }
  /* профиль трейдера — статы 2 колонки */
  .trader-stats, .profile-stats { grid-template-columns: repeat(2, 1fr) !important; }
  /* реферал — ссылка не вылезает */
  .ref-link, .referral-link { font-size: 12px !important; word-break: break-all; }
  /* конвертер — поля крупнее */
  .convert-input { font-size: 20px !important; min-height: 52px; }
  .convert-row { flex-direction: column; }
  /* сравнение — горизонтальный скролл колонок */
  .compare-table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  /* API-страница — код-блоки переносятся */
  .api-endpoint code, .endpoint-url { word-break: break-all; font-size: 11px; }
  /* whale radar — строки компактнее */
  .whale-row { padding: 11px !important; font-size: 13px; }
  /* community — комментарии на всю ширину */
  .comm-feed-row, .comment-row { padding: 12px !important; }
  /* кошелёк-кнопка в шапке компактнее */
  .wallet-btn { padding: 7px 11px !important; font-size: 12.5px !important; max-width: 140px; overflow: hidden; text-overflow: ellipsis; }
  .wallet-btn.connected { font-size: 11.5px !important; }
}

/* ═══ Выравнивание шапки — адаптивные пороги v112 ═══ */
/* на средних десктопах прячем газ и переключатель сети, чтобы всё влезало в один ряд */
@media (max-width: 1400px) {
  .gas-chip { display: none; }
  .mainnav .nv { padding: 8px 11px; font-size: 13.5px; }
}
@media (max-width: 1240px) {
  .net-switch { display: none; }
  .topbar-in { gap: 12px; }
}
/* компактная валюта/язык — единый размер с иконками */
.currency-toggle { min-width: 44px; padding: 0 8px; font-size: 12px; font-weight: 700; }

/* ═══ ХАЙП-ЦЕНТР НОВОСТЕЙ v115 ═══ */
.news-live-dot {
  display: inline-block; width: 9px; height: 9px; border-radius: 50%;
  background: var(--up); box-shadow: 0 0 0 0 rgba(46,230,160,.6);
  animation: newsPulse 2s infinite; vertical-align: middle; margin-left: 8px;
}
@keyframes newsPulse {
  0% { box-shadow: 0 0 0 0 rgba(46,230,160,.5); }
  70% { box-shadow: 0 0 0 8px rgba(46,230,160,0); }
  100% { box-shadow: 0 0 0 0 rgba(46,230,160,0); }
}
.news-filters {
  display: flex; gap: 8px; margin: 4px 0 20px; flex-wrap: wrap;
}
.news-filter {
  padding: 8px 15px; border-radius: var(--r-full); font-size: 13px; font-weight: 600;
  background: var(--trench); color: var(--ink-dim); border: 1px solid transparent; transition: .16s var(--ease);
}
.news-filter:hover { color: var(--ink); border-color: var(--cyan-deep); }
.news-filter.act {
  background: linear-gradient(135deg, rgba(34,211,238,.16), rgba(167,139,250,.12));
  color: var(--cyan); border-color: rgba(34,211,238,.4);
}
.news-card {
  display: flex; gap: 14px; align-items: flex-start; padding: 16px 18px;
  margin-bottom: 12px; cursor: pointer; transition: .18s var(--ease);
}
.news-card:hover { transform: translateX(3px); border-left-width: 5px !important; }
.news-ic { font-size: 22px; flex: none; }
.news-badge {
  font-size: 9.5px; font-weight: 800; letter-spacing: 1px;
  text-transform: uppercase; margin-bottom: 4px; opacity: .85;
}
.news-title { font-weight: 650; margin-bottom: 3px; font-size: 15px; line-height: 1.3; }
.news-body { font-size: 13px; color: var(--ink-dim); line-height: 1.4; }
.news-time { color: var(--ink-faint); font-size: 12px; white-space: nowrap; flex: none; }

@media (max-width: 640px) {
  .news-filters { overflow-x: auto; flex-wrap: nowrap; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding-bottom: 4px; }
  .news-filters::-webkit-scrollbar { display: none; }
  .news-filter { flex: none; }
  .news-card { padding: 13px 14px; gap: 10px; }
  .news-ic { font-size: 18px; }
  .news-title { font-size: 13.5px; }
}

/* ═══ Buy/Sell Pressure бар v118 ═══ */
.tk-pressure {
  background: var(--panel); border: 1px solid var(--line);
  border-radius: var(--r-lg); padding: 14px 16px; margin-bottom: 16px;
  box-shadow: var(--sh-2);
}
.tkp-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.tkp-title { font-size: 13px; font-weight: 700; }
.tkp-nums { font-size: 12.5px; font-weight: 700; font-variant-numeric: tabular-nums; }
.tkp-bar {
  display: flex; height: 10px; border-radius: var(--r-full); overflow: hidden;
  background: var(--trench); gap: 2px;
}
.tkp-buy { background: linear-gradient(90deg, var(--up), #26d396); transition: width .6s var(--ease); border-radius: var(--r-full) 0 0 var(--r-full); }
.tkp-sell { background: linear-gradient(90deg, #ff7a92, var(--down)); transition: width .6s var(--ease); border-radius: 0 var(--r-full) var(--r-full) 0; }

/* ═══ Price Impact калькулятор (терминал) v119 ═══ */
.term-impact { background: var(--panel); border: 1px solid var(--line); border-radius: var(--r-md); overflow: hidden; }
.impact-body { padding: 12px; }
.impact-row { display: flex; gap: 8px; margin-bottom: 10px; }
.impact-input {
  flex: 1; background: var(--panel2); border: 1px solid var(--trench);
  border-radius: var(--r-sm); padding: 9px 11px; color: var(--ink);
  font-family: var(--mono); font-size: 13px; min-width: 0;
}
.impact-input:focus { outline: none; border-color: var(--cyan); }
.impact-toggle { display: flex; gap: 2px; background: var(--trench); border-radius: var(--r-sm); padding: 2px; }
.imp-side {
  padding: 6px 12px; border-radius: calc(var(--r-sm) - 2px); font-size: 12px; font-weight: 700;
  color: var(--ink-dim); transition: .14s;
}
.imp-side.act { background: var(--up); color: #04121d; }
.imp-side#impSell.act { background: var(--down); }
.impact-result { display: flex; flex-direction: column; gap: 6px; }
.imp-line { display: flex; justify-content: space-between; align-items: center; font-size: 12.5px; }
.imp-line span { color: var(--ink-dim); }
.imp-line b { font-weight: 700; }

/* Trade-кнопка липкая только на мобильном (горизонтальный скролл таблицы) */
@media (max-width: 768px) {
  .market-table thead th:last-child, .market-table tbody td:last-child {
    position: sticky; right: 0; background: var(--panel);
    box-shadow: -14px 0 20px -10px rgba(4,10,20,.7);
  }
  .market-table tbody tr:hover td:last-child { background: var(--deep2); }
}

/* ═══ Шапка: прогрессивное сжатие навигации v120 ═══ */
/* на средних экранах прячем менее важные пункты меню (они есть в мобильном "More") */
@media (max-width: 1340px) {
  .nv[data-p="learn"], .nv[data-p="community"] { display: none; }
}
@media (max-width: 1180px) {
  .nv[data-p="news"], .nv[data-p="screener"] { display: none; }
  .topbar-in { gap: 10px; }
  .mainnav .nv { padding: 8px 10px; font-size: 13px; }
}
/* кнопка кошелька не должна распирать шапку */
.wallet-btn { max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ═══ Таблица рынка — ровно по контейнеру (без выхода за края) ═══ */
.market-wide { width: 100%; }
.market-table { width: 100%; table-layout: auto; }
/* колонка Trade — фикс ширина, всегда видна */
.market-table thead th:last-child, .market-table tbody td:last-child {
  width: 80px; padding-right: 14px !important; text-align: right;
}
/* 7d chart колонка — компактнее */
.market-table thead th:nth-last-child(2), .market-table tbody td:nth-last-child(2) {
  width: 120px;
}
/* Token колонка тянется, остальные по содержимому */
.market-table thead th:nth-child(2), .market-table tbody td:nth-child(2) { width: auto; min-width: 160px; }
.mt-buy { padding: 7px 14px !important; }

/* ═══ Полное скрытие брендинга/артефактов Google Translate v122 ═══
   Пользователь не должен видеть, что перевод делает Google. */
/* спиннер загрузки (тот самый крутящийся SVG) */
.VIpgJd-ZVi9od-aZ2wEe,
.VIpgJd-ZVi9od-aZ2wEe-OiiCO,
img.VIpgJd-ZVi9od-l4tSaf-A6P5vd,
.VIpgJd-ZVi9od-l4tSaf,
.VIpgJd-ZVi9od-ORHb-OEVmcd { display: none !important; visibility: hidden !important; opacity: 0 !important; }
/* всплывающая плашка перевода при наведении (goog tooltip) */
.goog-tooltip, .goog-tooltip:hover, #goog-gt-tt, .goog-te-balloon-frame,
.jfk-bubble, .goog-te-spinner-pos, .VIpgJd-yAWNEb-VIpgJd-fmcmS,
.VIpgJd-yAWNEb-L7lbkb { display: none !important; }
/* «Powered by Google», лого, значок */
.goog-logo-link, .goog-te-gadget-icon, .goog-te-gadget span a,
.goog-te-gadget img, .goog-te-menu-value span[style] { display: none !important; }
.goog-te-gadget { color: transparent !important; font-size: 0 !important; }
/* верхняя плашка Google (сдвигает страницу вниз) */
.goog-te-banner-frame, iframe.goog-te-banner-frame,
body > .skiptranslate:not(#gtWrap):not(#google_translate_element) { display: none !important; }
html, body { top: 0 !important; position: static !important; min-height: 100% !important; }
/* подсветка переведённого текста — убираем */
.goog-text-highlight { background: none !important; box-shadow: none !important; border: none !important; }
/* курсор-загрузка при переводе */
body.VIpgJd-ZVi9od-aZ2wEe-OiiCO, .skiptranslate iframe { visibility: hidden !important; }

/* ═══ Секция «Близки к градации» v124 ═══ */
.grad-strip {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 12px; margin-bottom: 22px;
}
.grad-card {
  background: var(--panel); border: 1px solid var(--line);
  border-radius: var(--r-md); padding: 13px 14px; cursor: pointer;
  transition: .18s var(--ease); position: relative; overflow: hidden;
}
.grad-card::before {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(255,194,71,.06), transparent 60%);
  pointer-events: none;
}
.grad-card:hover { transform: translateY(-2px); border-color: var(--gold); box-shadow: 0 10px 28px -12px rgba(255,194,71,.4); }
.grad-top { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.grad-sym { font-weight: 700; font-size: 14px; }
.grad-name { font-size: 11px; color: var(--ink-faint); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.grad-pct { font-family: var(--disp); font-weight: 700; font-size: 16px; color: var(--gold); font-variant-numeric: tabular-nums; }
.grad-bar { height: 7px; background: var(--trench); border-radius: var(--r-full); overflow: hidden; }
.grad-fill {
  height: 100%; border-radius: var(--r-full);
  background: linear-gradient(90deg, var(--gold), #ffdc7a);
  box-shadow: 0 0 12px rgba(255,194,71,.5);
  transition: width .8s var(--ease);
  position: relative;
}
.grad-fill::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.3), transparent);
  animation: gradShimmer 2s infinite;
}
@keyframes gradShimmer { from { transform: translateX(-100%); } to { transform: translateX(100%); } }
@media (max-width: 640px) {
  .grad-strip { grid-template-columns: 1fr 1fr; gap: 8px; }
  .grad-name { display: none; }
}

/* ═══ Секция «Just Launched» v125 ═══ */
.launch-strip {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 10px; margin-bottom: 22px;
}
@media (max-width: 1100px) { .launch-strip { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 820px) { .launch-strip { grid-template-columns: repeat(2, 1fr); } }
.launch-card {
  background: var(--panel); border: 1px solid var(--line);
  border-radius: var(--r-md); padding: 12px; cursor: pointer;
  display: flex; align-items: center; gap: 10px;
  transition: .18s var(--ease); position: relative; overflow: hidden;
}
.launch-card:hover { transform: translateY(-2px); border-color: var(--cyan); box-shadow: 0 10px 26px -12px rgba(34,211,238,.4); }
.launch-hot { border-color: rgba(46,230,160,.4); }
.launch-hot::before {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(46,230,160,.07), transparent 55%);
  pointer-events: none;
}
.launch-badge {
  position: absolute; top: 8px; right: 8px;
  font-size: 8.5px; font-weight: 800; letter-spacing: .8px;
  background: var(--up); color: #04121d; padding: 2px 6px; border-radius: var(--r-xs);
  animation: launchPulse 1.8s infinite;
}
@keyframes launchPulse { 0%,100% { opacity: 1; } 50% { opacity: .55; } }
.launch-sym { font-weight: 700; font-size: 13.5px; }
.launch-age { font-size: 11px; color: var(--ink-faint); }
.launch-price { font-size: 12px; color: var(--ink-dim); white-space: nowrap; }
@media (max-width: 640px) {
  .launch-strip { grid-template-columns: 1fr 1fr; }
  .launch-price { display: none; }
}

/* ═══ Секции главной — ровно по контейнеру (без сдвигов) ═══ */
.market-wide-soft { width: 100%; }

/* ═══ ФИНАЛЬНАЯ РАСКЛАДКА ТАБЛИЦЫ РЫНКА v134 ═══ */
/* Таблица тянется на всю ширину панели, колонки распределяются аккуратно */
.market-table { width: 100%; table-layout: auto; border-collapse: collapse; }
.panel.has-table { overflow-x: auto; }

/* Колонка 1: # + звезда — узкая, с небольшим отступом до токена */
.market-table th.mt-first,
.market-table td.mt-first {
  width: 48px !important; padding: 14px 8px 14px 14px !important; text-align: left !important;
}
.mt-rankwrap { display: flex; align-items: center; gap: 7px; }
.mt-rank { color: var(--ink-faint); font-family: var(--mono); font-size: 12px; min-width: 14px; }

/* Колонка 2: Token — тянется, лого+имя вплотную слева */
.market-table th.tl:nth-child(2),
.market-table td.tl:nth-child(2) {
  padding-left: 4px !important; text-align: left !important; width: auto;
}
.mt-coin { display: flex; align-items: center; gap: 10px; }

/* Числовые колонки (price, %, vol, mcap) — по правому краю, ровный padding */
.market-table thead th:not(.mt-first):not(:nth-child(2)),
.market-table tbody td:not(.mt-first):not(:nth-child(2)) {
  text-align: right; padding: 14px 12px;
}

/* Колонка 7d-график — фиксированная, компактная */
.market-table thead th:nth-last-child(2),
.market-table tbody td:nth-last-child(2) {
  width: 130px; padding-right: 14px;
}

/* Колонка Trade — фиксированная ширина, ВСЕГДА видна (не обрезается) */
.market-table thead th:last-child,
.market-table tbody td:last-child {
  width: 96px; min-width: 96px; padding: 10px 16px 10px 8px !important;
  text-align: right; box-shadow: none !important; background: transparent !important;
}
.mt-buy { padding: 7px 15px !important; white-space: nowrap; }

/* Just Launched — компактные карточки */
.launch-card { padding: 10px 12px !important; gap: 9px !important; }
.launch-card .mono { font-size: 11.5px; }

/* ── Мобильная адаптация таблицы ── */
@media (max-width: 640px) {
  .launch-strip { grid-template-columns: 1fr 1fr; gap: 8px; }
  .launch-price { display: none; }
  .market-table th.mt-first, .market-table td.mt-first { width: 34px !important; padding-left: 8px !important; }
  .mt-coin { gap: 7px; }
  .market-table thead th:last-child, .market-table tbody td:last-child {
    position: sticky; right: 0; background: var(--deep) !important;
    box-shadow: -12px 0 18px -10px rgba(4,10,20,.7) !important; width: 70px; min-width: 70px;
  }
}

/* ═══ Бейджи токенов в command-palette v137 ═══ */
.cmd-badge {
  font-size: 8px; font-weight: 800; letter-spacing: .5px; padding: 1px 5px;
  border-radius: 4px; vertical-align: middle; margin-left: 5px;
}
.cmd-badge.grad { background: rgba(46,230,160,.16); color: var(--up); }
.cmd-badge.curve { background: rgba(167,139,250,.16); color: var(--violet); }
/* подсветка совпадения в результатах */
.cmd-item mark { background: rgba(34,211,238,.22); color: var(--cyan); border-radius: 3px; padding: 0 1px; }

/* ═══ Top Traders — богатый лидерборд v138 ═══ */
.lb-rich {
  display: flex; align-items: center; gap: 12px; padding: 11px 14px;
  border-radius: var(--r-md); transition: .15s var(--ease); cursor: pointer;
  border: 1px solid transparent;
}
.lb-rich:hover { background: var(--trench); border-color: var(--line); transform: translateX(2px); }
.lb-podium { background: linear-gradient(90deg, rgba(255,194,71,.06), transparent 70%); }
.lb-rank { font-weight: 800; font-size: 15px; min-width: 34px; text-align: center; font-variant-numeric: tabular-nums; }
.lb-rank.top { font-size: 19px; }
.lb-id { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.lb-addr { font-size: 13.5px; font-weight: 600; }
.lb-meta { font-size: 11.5px; color: var(--ink-faint); }
.lb-nums { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.lb-vol { font-size: 13.5px; font-weight: 700; }
.lb-pnl { font-size: 11px; font-weight: 700; font-variant-numeric: tabular-nums; }
.lb-pnl.up { color: var(--up); }
.lb-pnl.down { color: var(--down); }

/* ═══ Portfolio: панель метрик эффективности v139 ═══ */
.pf-perf {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin: 14px 0 4px;
}
.perf-tile {
  background: var(--panel); border: 1px solid var(--line); border-radius: var(--r-md);
  padding: 14px 16px; transition: .18s var(--ease);
}
.perf-tile:hover { border-color: var(--cyan-deep); transform: translateY(-2px); }
.perf-l { font-size: 11px; color: var(--ink-faint); text-transform: uppercase; letter-spacing: .5px; margin-bottom: 6px; }
.perf-v { font-size: 22px; font-weight: 700; font-family: var(--disp); line-height: 1; }
.perf-s { font-size: 11.5px; color: var(--ink-dim); margin-top: 5px; font-variant-numeric: tabular-nums; }
@media (max-width: 720px) {
  .pf-perf { grid-template-columns: 1fr 1fr; }
}

/* ═══ Leaderboard: переключатель сортировки + «YOU» v140 ═══ */
.lb-toggle { display: flex; gap: 2px; background: var(--trench); border-radius: var(--r-sm); padding: 2px; }
.lb-sort {
  padding: 4px 12px; border-radius: calc(var(--r-sm) - 2px); font-size: 11.5px; font-weight: 700;
  color: var(--ink-dim); transition: .14s; text-transform: none; letter-spacing: 0;
}
.lb-sort.act { background: var(--cyan); color: #04121d; }
.lb-me { background: linear-gradient(90deg, rgba(34,211,238,.1), transparent) !important; border-left: 2px solid var(--cyan); }
.lb-you {
  font-size: 8.5px; font-weight: 800; background: var(--cyan); color: #04121d;
  padding: 1px 5px; border-radius: 4px; margin-left: 6px; letter-spacing: .5px; vertical-align: middle;
}

/* ═══ Smart Money секция v141 ═══ */
.smart-strip {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 22px;
}
.smart-card {
  background: linear-gradient(160deg, rgba(167,139,250,.07), var(--panel) 55%);
  border: 1px solid rgba(167,139,250,.22); border-radius: var(--r-md);
  padding: 13px 14px; cursor: pointer; transition: .18s var(--ease);
}
.smart-card:hover { transform: translateY(-2px); border-color: var(--violet); box-shadow: 0 10px 28px -12px rgba(167,139,250,.5); }
.smart-top { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.smart-sym { font-weight: 700; font-size: 14px; }
.smart-name { font-size: 11px; color: var(--ink-faint); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.smart-buyers {
  font-size: 12px; font-weight: 700; color: var(--violet); font-variant-numeric: tabular-nums;
  background: rgba(167,139,250,.14); padding: 3px 9px; border-radius: var(--r-full); white-space: nowrap;
}
.smart-flow { display: flex; align-items: baseline; gap: 8px; }
.smart-inflow { font-family: var(--mono); font-weight: 700; font-size: 14px; color: var(--up); }
.smart-label { font-size: 10.5px; color: var(--ink-faint); }
@media (max-width: 1100px) { .smart-strip { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 820px) { .smart-strip { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .smart-strip { grid-template-columns: 1fr; } .smart-name { display: block; } }

/* ═══ Smart Money сигнал на странице токена v142 ═══ */
.smart-signal {
  display: flex; align-items: center; gap: 14px; margin-bottom: 16px;
  padding: 14px 18px; border-radius: var(--r-lg);
  background: linear-gradient(120deg, rgba(167,139,250,.14), rgba(34,211,238,.06));
  border: 1px solid rgba(167,139,250,.3);
}
.smart-signal-strong {
  border-color: rgba(167,139,250,.55);
  box-shadow: 0 0 24px -6px rgba(167,139,250,.4);
  animation: ssPulse 2.5s ease-in-out infinite;
}
@keyframes ssPulse {
  0%,100% { box-shadow: 0 0 24px -8px rgba(167,139,250,.35); }
  50% { box-shadow: 0 0 30px -4px rgba(167,139,250,.6); }
}
.ss-ic { font-size: 26px; flex: none; }
.ss-title { font-weight: 700; font-size: 14px; color: var(--violet); }
.ss-sub { font-size: 12.5px; color: var(--ink-dim); margin-top: 2px; }
@media (max-width: 560px) { .smart-signal { padding: 12px 14px; gap: 10px; } .ss-title { font-size: 13px; } }

/* ═══ Treemap Heatmap v144 (Finviz-стиль) ═══ */
.treemap {
  border-radius: 14px; overflow: hidden;
  background: var(--panel); border: 1px solid var(--line);
}
.tm-tile {
  position: absolute; border-radius: 4px; cursor: pointer;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  overflow: hidden; transition: transform .12s var(--ease), filter .12s var(--ease);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.15);
}
.tm-tile:hover { transform: scale(1.03); z-index: 5; filter: brightness(1.15); box-shadow: 0 8px 24px rgba(0,0,0,.5), inset 0 0 0 1px rgba(255,255,255,.2); }
.tm-sym { font-weight: 800; color: #fff; text-shadow: 0 1px 3px rgba(0,0,0,.55); letter-spacing: .3px; line-height: 1.1; }
.tm-ch { font-size: 12px; font-weight: 600; color: rgba(255,255,255,.92); text-shadow: 0 1px 2px rgba(0,0,0,.5); font-variant-numeric: tabular-nums; margin-top: 2px; }
.tm-legend { display: flex; align-items: center; gap: 8px; margin-top: 10px; font-size: 11.5px; color: var(--ink-dim); }
.tm-scale {
  width: 120px; height: 8px; border-radius: 4px;
  background: linear-gradient(90deg, rgb(230,70,100), rgb(30,45,60), rgb(16,200,120));
}
@media (max-width: 640px) {
  .tm-legend { flex-wrap: wrap; }
  .tm-legend span:last-child { width: 100%; margin-left: 0 !important; }
}

/* ═══ Fear & Greed gauge анимация v145 ═══ */
.fng-gauge { filter: drop-shadow(0 4px 12px rgba(0,0,0,.25)); }
.fng-gauge path[stroke^="url"] { animation: fngReveal 1.2s cubic-bezier(.4,0,.2,1); }
@keyframes fngReveal { from { opacity: 0; } to { opacity: 1; } }

/* ═══ Fear & Greed разбивка компонентов v145 ═══ */
.fng-breakdown {
  margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line-soft);
  display: flex; flex-direction: column; gap: 12px; text-align: left;
}
.fng-comp-head { display: flex; justify-content: space-between; font-size: 12.5px; margin-bottom: 5px; }
.fng-comp-head span:first-child { color: var(--ink-dim); font-weight: 600; }
.fng-comp-w { color: var(--ink-faint); font-family: var(--mono); font-size: 11px; }
.fng-comp-bar { height: 6px; background: var(--trench); border-radius: var(--r-full); overflow: hidden; }
.fng-comp-fill { height: 100%; border-radius: var(--r-full); transition: width 1s cubic-bezier(.4,0,.2,1); }
.fng-comp-hint { font-size: 11px; color: var(--ink-faint); margin-top: 4px; font-variant-numeric: tabular-nums; }

/* ═══════════════════════════════════════════════════════
   МОБИЛЬНАЯ ПОЛИРОВКА v146 — комплексный проход
   ═══════════════════════════════════════════════════════ */
@media (max-width: 560px) {
  /* заголовки страниц — компактнее */
  .page-title { font-size: 30px !important; }
  .page-sub { font-size: 13px !important; }
  .eyebrow { font-size: 10px !important; }

  /* hero-метрики — 2 колонки, компактнее */
  .hero-metrics { grid-template-columns: 1fr 1fr !important; gap: 10px !important; }
  .hm-card { padding: 14px !important; }
  .hm-value { font-size: 20px !important; }
  .hm-label { font-size: 11px !important; }

  /* Smart Money / Launches / Grad — 1 колонка на очень узких, 2 на обычных */
  .smart-strip, .launch-strip, .grad-strip { grid-template-columns: 1fr 1fr !important; gap: 8px !important; }
  .smart-name, .grad-name { display: none; }

  /* Fear & Greed gauge — не растягивать */
  .fng-gauge { max-width: 220px !important; }

  /* Portfolio перф-плитки — 2 колонки */
  .pf-perf { grid-template-columns: 1fr 1fr !important; gap: 8px !important; }
  .perf-v { font-size: 18px !important; }

  /* leaderboard — переключатель компактнее */
  .lb-toggle { flex-shrink: 0; }
  .lb-sort { padding: 4px 9px; font-size: 11px; }
  .lb-meta { font-size: 10.5px; }

  /* treemap — выше на мобильном (иначе плитки нечитаемы) */
  .treemap { min-height: 300px; }

  /* панели — меньше отступы */
  .panel { border-radius: 14px; }

  /* trend-strip — snap-скролл */
  .trend-strip { scroll-snap-type: x mandatory; }
  .trend-item { scroll-snap-align: start; }

  /* news-карточки — компактнее */
  .news-card { padding: 12px 13px !important; }
  .news-title { font-size: 13px !important; }
  .news-body { font-size: 12px !important; }

  /* buy/sell pressure + smart signal — компактнее */
  .tk-pressure { padding: 12px 14px !important; }
}

/* очень узкие экраны (iPhone SE и меньше) */
@media (max-width: 380px) {
  .smart-strip, .launch-strip, .grad-strip, .pf-perf { grid-template-columns: 1fr !important; }
  .hero-metrics { grid-template-columns: 1fr 1fr !important; }
  .page-title { font-size: 26px !important; }
  .launch-price, .smart-name { display: none; }
}

/* горизонтальный скролл таблицы — плавный на тач */
@media (max-width: 768px) {
  .panel.has-table { -webkit-overflow-scrolling: touch; }
  .market-table { min-width: 640px; }
}

/* ═══ Price alert модалка пресеты v146 ═══ */
.alert-presets { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; }
.alert-preset {
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  padding: 10px 6px; border-radius: var(--r-sm); background: var(--trench);
  border: 1px solid transparent; font-weight: 700; font-size: 14px; transition: .15s var(--ease);
}
.alert-preset span { font-size: 10px; font-weight: 500; color: var(--ink-faint); font-family: var(--mono); }
.alert-preset.up { color: var(--up); }
.alert-preset.down { color: var(--down); }
.alert-preset.up:hover { border-color: var(--up); background: rgba(46,230,160,.1); }
.alert-preset.down:hover { border-color: var(--down); background: rgba(255,94,122,.1); }

/* ═══ Живая лента сделок: вспышка по стороне buy/sell v149 ═══ */
.txn-row.fresh.buy-flash { animation: tradeInBuy .7s var(--ease) both; }
.txn-row.fresh.sell-flash { animation: tradeInSell .7s var(--ease) both; }
@keyframes tradeInBuy {
  0% { opacity: 0; transform: translateY(-8px); background: rgba(46,230,160,.22); box-shadow: inset 3px 0 0 var(--up); }
  60% { background: rgba(46,230,160,.10); box-shadow: inset 3px 0 0 var(--up); }
  100% { opacity: 1; transform: none; background: transparent; box-shadow: inset 3px 0 0 transparent; }
}
@keyframes tradeInSell {
  0% { opacity: 0; transform: translateY(-8px); background: rgba(255,94,122,.22); box-shadow: inset 3px 0 0 var(--down); }
  60% { background: rgba(255,94,122,.10); box-shadow: inset 3px 0 0 var(--down); }
  100% { opacity: 1; transform: none; background: transparent; box-shadow: inset 3px 0 0 transparent; }
}

/* ═══ Похожие токены v150 ═══ */
.similar-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px;
}
.similar-card {
  background: var(--panel); border: 1px solid var(--line); border-radius: var(--r-md);
  padding: 14px; cursor: pointer; transition: .18s var(--ease);
}
.similar-card:hover { transform: translateY(-2px); border-color: var(--cyan-deep); box-shadow: 0 10px 26px -12px rgba(34,211,238,.4); }
.sim-top { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.sim-sym { font-weight: 700; font-size: 14px; }
.sim-name { font-size: 11px; color: var(--ink-faint); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sim-metrics { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 4px; }
.sim-metrics .mono { font-size: 14px; font-weight: 600; }
.sim-metrics span:last-child { font-size: 13px; font-weight: 700; }
.sim-sub { font-size: 11px; color: var(--ink-faint); }
@media (max-width: 820px) { .similar-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .similar-grid { grid-template-columns: 1fr; } .sim-name { display: block; } }

/* ═══ 24h диапазон цены v151 ═══ */
.range24 {
  background: var(--panel); border: 1px solid var(--line); border-radius: var(--r-md);
  padding: 13px 16px; margin-bottom: 16px;
}
.r24-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 9px; }
.r24-label { font-size: 12px; color: var(--ink-faint); text-transform: uppercase; letter-spacing: .5px; font-weight: 600; }
.r24-pos { font-size: 12px; color: var(--ink-dim); font-variant-numeric: tabular-nums; }
.r24-bar {
  position: relative; height: 6px; border-radius: var(--r-full);
  background: linear-gradient(90deg, var(--down), var(--gold) 50%, var(--up));
  opacity: .85;
}
.r24-marker {
  position: absolute; top: 50%; width: 3px; height: 16px; border-radius: 2px;
  background: var(--ink); transform: translate(-50%, -50%);
  box-shadow: 0 0 0 3px var(--panel), 0 2px 6px rgba(0,0,0,.4);
  transition: left .5s var(--ease);
}
.r24-ends { display: flex; justify-content: space-between; margin-top: 8px; font-size: 12.5px; }

/* ═══ Watchlist живое обновление цены v152 ═══ */
.wl-flash.wl-up { animation: wlUp 1s var(--ease); }
.wl-flash.wl-down { animation: wlDown 1s var(--ease); }
@keyframes wlUp { 0% { color: var(--up); } 100% { color: inherit; } }
@keyframes wlDown { 0% { color: var(--down); } 100% { color: inherit; } }

/* ═══ Процентные кнопки в трейде v153 ═══ */
.trade-pct { margin-top: 6px; }
.tp-btn.pct { flex: 1; background: rgba(34,211,238,.08); border-color: rgba(34,211,238,.2); color: var(--cyan); font-weight: 600; }
.tp-btn.pct:hover { background: var(--cyan); color: #04121d; border-color: var(--cyan); }

/* ═══ Настройка слиппеджа v154 ═══ */
.slip-row { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line-soft); }
.slip-label { font-size: 12px; color: var(--ink-faint); display: block; margin-bottom: 6px; }
.slip-label b { color: var(--cyan); font-weight: 700; }
.slip-presets { display: flex; gap: 5px; align-items: center; }
.slip-preset {
  flex: 1; padding: 5px 0; border-radius: var(--r-sm); font-size: 12px; font-weight: 600;
  background: var(--trench); border: 1px solid var(--line); color: var(--ink-dim); transition: .14s;
}
.slip-preset.act { background: var(--cyan); color: #04121d; border-color: var(--cyan); }
.slip-preset:hover:not(.act) { border-color: var(--cyan-deep); color: var(--ink); }
.slip-input {
  width: 52px; padding: 5px 7px; border-radius: var(--r-sm); font-size: 12px;
  background: var(--trench); border: 1px solid var(--line); color: var(--ink); text-align: center;
}
.slip-input:focus { border-color: var(--cyan); outline: none; }

/* ═══ Недавно просмотренные v156 ═══ */
.recent-strip { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 22px; }
.recent-chip {
  display: inline-flex; align-items: center; gap: 7px; padding: 6px 12px 6px 8px;
  background: var(--panel); border: 1px solid var(--line); border-radius: var(--r-full);
  cursor: pointer; font-size: 13px; font-weight: 600; transition: .16s var(--ease);
}
.recent-chip:hover { border-color: var(--cyan); transform: translateY(-1px); background: var(--panel-hover, var(--panel)); }
.recent-chip img { border-radius: 50%; }
@media (max-width: 560px) { .recent-strip { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 6px; } .recent-chip { flex: none; } }

/* ═══ News: живая сводка активности 24ч v156 ═══ */
.news-pulse {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px;
  max-width: 860px; margin-bottom: 18px;
}
.np-tile {
  display: flex; align-items: center; gap: 11px;
  background: var(--panel); border: 1px solid var(--line); border-radius: var(--r-md); padding: 13px 15px;
}
.np-ic { font-size: 22px; }
.np-n { font-size: 21px; font-weight: 800; font-family: var(--disp); line-height: 1; }
.np-l { font-size: 10.5px; color: var(--ink-faint); margin-top: 3px; }
@media (max-width: 700px) { .news-pulse { grid-template-columns: 1fr 1fr; } }

/* ═══ Реферальные соц-кнопки v167 ═══ */
.ref-share-row { display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap; }
.ref-share {
  flex: 1; min-width: 100px; padding: 9px 12px; border-radius: var(--r-md); font-size: 13px; font-weight: 600;
  background: var(--panel); border: 1px solid var(--line); color: var(--ink); cursor: pointer; transition: .16s var(--ease);
}
.ref-share:hover { transform: translateY(-2px); }
.ref-share.tg:hover { border-color: #29a9eb; color: #29a9eb; }
.ref-share.x:hover { border-color: var(--ink); }
.ref-share.wa:hover { border-color: #25d366; color: #25d366; }
.ref-share.nat:hover { border-color: var(--cyan); color: var(--cyan); }
@media (max-width: 560px) { .ref-share { min-width: calc(50% - 4px); } }

/* ═══ Горячие токены v168 ═══ */
.hot-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 22px; }
.hot-card {
  display: flex; align-items: center; gap: 10px;
  background: linear-gradient(150deg, rgba(249,115,98,.07), var(--panel) 60%);
  border: 1px solid rgba(249,115,98,.2); border-radius: var(--r-md); padding: 12px 13px;
  cursor: pointer; transition: .18s var(--ease); position: relative;
}
.hot-card:hover { transform: translateY(-2px); border-color: var(--coral); box-shadow: 0 10px 26px -12px rgba(249,115,98,.5); }
.hot-rank {
  font-size: 11px; font-weight: 800; color: var(--coral); font-family: var(--disp);
  min-width: 16px;
}
.hot-sym { font-weight: 700; font-size: 14px; }
.hot-views { font-size: 11px; color: var(--ink-faint); }
@media (max-width: 1100px) { .hot-strip { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 820px) { .hot-strip { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .hot-strip { grid-template-columns: 1fr; } }

/* ═══ Shark Score композитный рейтинг v172 ═══ */
.shark-score {
  display: flex; align-items: center; gap: 16px; margin-bottom: 16px;
  padding: 16px 18px; border-radius: var(--r-lg);
  background: linear-gradient(120deg, rgba(34,211,238,.06), var(--panel) 60%);
  border: 1px solid var(--line);
}
.ss-ring { position: relative; width: 64px; height: 64px; flex: none; }
.ss-ring-txt { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
.ss-grade { font-size: 26px; font-weight: 800; font-family: var(--disp); line-height: 1; }
.ss-title { font-weight: 700; font-size: 14px; margin-bottom: 10px; }
.ss-factors { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 16px; }
.ssf { display: flex; flex-direction: column; gap: 3px; }
.ssf-label { font-size: 11px; color: var(--ink-dim); }
.ssf-bar { height: 4px; border-radius: 2px; background: var(--trench); overflow: hidden; }
.ssf-fill { height: 100%; border-radius: 2px; transition: width .8s var(--ease); }
@media (max-width: 560px) { .ss-factors { grid-template-columns: 1fr; } .shark-score { padding: 14px; gap: 12px; } }

/* ═══ Грейд-бейдж Shark Score в карточках v173 ═══ */
.grade-badge {
  display: inline-block; font-size: 9.5px; font-weight: 800; font-family: var(--disp);
  border: 1.5px solid; border-radius: 5px; padding: 0px 4px; margin-left: 4px; vertical-align: middle;
  line-height: 1.4;
}

/* ═══ Приток холдеров в range-виджете v177 ═══ */
.r24-holders {
  margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line-soft);
  font-size: 12.5px; color: var(--ink-dim);
}
.r24-holders b { color: var(--up); }

/* ═══ МОБИЛЬНАЯ ПЕРЕСТРОЙКА страницы токена v178 — график сверху ═══ */
@media (max-width: 1000px) {
  /* делаем контейнер токена flex-колонкой для управления порядком */
  .token-view { display: flex !important; flex-direction: column !important; }
  .token-view .tk-topbar { order: 1 !important; }
  .token-view .tk-statbar { order: 2 !important; }
  .token-view .tk-grid { order: 3 !important; }
  .token-view .tk-aux { order: 4 !important; }

  /* внутри сетки: сначала главная колонка (ГРАФИК), потом торговая панель */
  .token-view .tk-grid { display: flex !important; flex-direction: column !important; }
  .token-view .tk-main { order: 1 !important; }   /* график и вкладки — сверху */
  .token-view .tk-side { order: 2 !important; }   /* торговля — под графиком */

  /* внутри главной колонки график — самый первый */
  .token-view .tk-main { display: flex !important; flex-direction: column !important; }
  .token-view .tk-chart-row { order: 1 !important; margin-bottom: 14px; }
  .token-view #analyticsBox { order: 2 !important; }
  .token-view #dtabs { order: 3 !important; }
  .token-view #dtabBody { order: 4 !important; }

  /* aux-блоки компактнее на мобильном */
  .tk-aux { margin-top: 4px; }
  .tk-aux > div:not(:empty) { margin-bottom: 12px; }

  /* график — нормальная высота на мобильном (не обрезанный) */
  .token-view #chartBox { min-height: 320px; }
}

/* ═══════════════════════════════════════════════════════════════
   КОМПЛЕКСНАЯ МОБИЛЬНАЯ ДОРАБОТКА v179
   Все устройства: планшет 768 → телефон 480 → SE 380 → compact 360
   ═══════════════════════════════════════════════════════════════ */

/* ── ПЛАНШЕТЫ И КРУПНЫЕ ТЕЛЕФОНЫ (≤768px) ── */
@media (max-width: 768px) {
  #view.wrap, .wrap { padding-left: 16px; padding-right: 16px; }

  /* Шапка токена: компактнее, цена на своей строке */
  .tk-topbar { padding: 14px 16px; }
  .tk-price-block { margin-left: auto; }

  /* Статбар: 4 колонки, читаемо */
  .tks { padding: 10px 12px; }
  .tks .v { font-size: 13px; }

  /* Вкладки токена: горизонтальный скролл вместо переноса */
  .dtabs { overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; gap: 2px; }
  .dtabs::-webkit-scrollbar { display: none; }
  .dtab { flex: none; white-space: nowrap; }
}

/* ── ТЕЛЕФОНЫ (≤480px) ── */
@media (max-width: 480px) {
  #view.wrap, .wrap { padding-left: 12px; padding-right: 12px; }

  /* Шапка токена: вертикальная раскладка, всё по левому краю */
  .tk-topbar { padding: 13px 14px; }
  .tk-id { gap: 11px; width: 100%; }
  .tk-id img, .tk-id .logo-wrap { width: 44px !important; height: 44px !important; flex: none; }
  .tk-title-row { gap: 6px; }
  .tk-price-block { margin-left: 0; text-align: left; width: 100%;
    display: flex; align-items: baseline; gap: 10px; }
  .tk-price-chg { margin-top: 0; }
  /* Кнопки действий: во всю ширину, равномерно */
  .tk-actions { width: 100%; justify-content: flex-start; gap: 8px; flex-wrap: wrap; }
  .tk-actions .icon-btn { width: 44px; height: 44px; flex: none; }

  /* Статбар: 2 колонки */
  .tks { padding: 10px 13px; }

  /* Торговая панель: крупные тап-цели */
  .trade-card { padding: 15px; }
  .tp-btn { padding: 9px 0; min-height: 38px; }
  .trade-exec { padding: 15px; font-size: 15px; }
  .trade-tab { padding: 11px; font-size: 14px; }

  /* График: полная высота, без обрезки */
  #chartBox { min-height: 300px; }
  .chart-head { gap: 8px; padding: 10px 12px; }
  .chart-indicators { gap: 3px; }
  .ind-btn { padding: 3px 7px; font-size: 10.5px; }
  .tf-tab { padding: 4px 8px; font-size: 11px; }

  /* Заголовки */
  .page-title { font-size: 25px; }
  .page-sub { font-size: 13px; }

  /* Таблицы: тач-скролл */
  .panel.has-table, .market-table-wrap { -webkit-overflow-scrolling: touch; }
}

/* ── МЕЛКИЕ ТЕЛЕФОНЫ / iPhone SE (≤380px) ── */
@media (max-width: 380px) {
  #view.wrap, .wrap { padding-left: 10px; padding-right: 10px; }
  .tk-sym { font-size: 13px; }
  .tk-actions .icon-btn { height: 40px; font-size: 16px; }
  .tks { padding: 9px 11px; }
  .tks .k { font-size: 10px; }
  .tks .v { font-size: 12.5px; }
  .page-title { font-size: 23px; }
  .ind-btn { padding: 3px 6px; font-size: 10px; }
  /* Чипы статуса компактнее */
  .tk-chip { font-size: 9.5px; padding: 2px 7px; }
}

/* ── COMPACT ANDROID (≤360px) ── */
@media (max-width: 360px) {
  #view.wrap, .wrap { padding-left: 8px; padding-right: 8px; }
  .tk-topbar { padding: 12px; }
  .tk-statbar { gap: 1px; }
  .tks { padding: 8px 10px; }
  .trade-card { padding: 13px; }
  /* Слиппедж-пресеты не вылезают */
  .slip-presets { flex-wrap: wrap; }
  .slip-input { width: 46px; }
}

/* ── ОБЩИЕ УЛУЧШЕНИЯ ТАЧ-ВЗАИМОДЕЙСТВИЯ (все мобильные) ── */
@media (max-width: 768px) {
  /* Убираем hover-трансформации на тач (залипают) */
  .hot-card:active, .smart-card:active, .similar-card:active,
  .launch-card:active, .grad-card:active { transform: scale(0.98); }
  /* Модалки/оверлеи: не шире экрана */
  .trader-modal, .modal-card, .ai-chat-panel { max-width: calc(100vw - 24px); }
  /* Горизонтальные скроллы плавные */
  .trend-strip, .recent-strip, .dtabs, .tf-tabs { -webkit-overflow-scrolling: touch; }
  /* Инпуты: 16px+ чтобы iOS не зумил при фокусе (только текст/число/поиск-поля) */
  input[type="text"], input[type="number"], input[type="search"], input[type="email"], textarea, select { font-size: max(16px, 1em); }
}

/* ═══════════════════════════════════════════════════════════════
   МОБИЛЬНАЯ ДОРАБОТКА ЧАСТЬ 2 v180 — главная, портфель, лидерборд, дашборд
   ═══════════════════════════════════════════════════════════════ */

/* ── Категории на главной: горизонтальный скролл вместо переноса ── */
@media (max-width: 768px) {
  .cat-tabs {
    flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch;
    scrollbar-width: none; padding-bottom: 4px; margin-bottom: 12px;
  }
  .cat-tabs::-webkit-scrollbar { display: none; }
  .cat-tab { flex: none; white-space: nowrap; padding: 7px 13px; font-size: 13px; }
}

/* ── Таблица рынка: комфортная на телефоне ── */
@media (max-width: 640px) {
  .market-table tbody td { padding: 12px 8px; font-size: 13.5px; }
  .market-table thead th { font-size: 11px; padding: 10px 8px; }
  .mt-coin { gap: 8px; }
  .mt-name { font-size: 13px; max-width: 110px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .mt-sym { font-size: 11px; }
  .mt-rank { min-width: 20px; font-size: 12px; }
}
@media (max-width: 380px) {
  .market-table tbody td { padding: 11px 6px; font-size: 12.5px; }
  .mt-name { max-width: 84px; }
  .mt-coin img, .mt-coin .logo-wrap { width: 26px !important; height: 26px !important; }
}

/* ── Портфель: сводка 2 колонки (не 1) на телефоне ── */
@media (max-width: 640px) {
  .pf-summary { grid-template-columns: 1fr 1fr !important; gap: 10px; }
  .pf-perf { grid-template-columns: 1fr 1fr !important; gap: 10px; }
  .perf-tile { padding: 12px 13px; }
  .perf-v { font-size: 18px; }
}
@media (max-width: 380px) {
  .pf-summary { grid-template-columns: 1fr 1fr !important; }
  .hm-card { padding: 12px; }
  .hm-value { font-size: 18px; }
}

/* ── Лидерборд: строки не сжимаются в кашу ── */
@media (max-width: 480px) {
  .lb-rich { gap: 9px; padding: 10px 12px; }
  .lb-rank { min-width: 26px; font-size: 14px; }
  .lb-rank.top { font-size: 17px; }
  .lb-addr { font-size: 12.5px; }
  .lb-meta { font-size: 10.5px; }
  .lb-vol { font-size: 12.5px; }
  .lb-pnl { font-size: 10.5px; }
  .lb-you { font-size: 8px; padding: 1px 4px; }
}

/* ── Дашборд: FnG gauge + метрики стопкой аккуратно ── */
@media (max-width: 900px) {
  .cc-top { gap: 12px; }
  #fngCard { padding: 16px !important; }
}
@media (max-width: 560px) {
  .cc-metrics { grid-template-columns: 1fr 1fr !important; gap: 10px; }
  .cc-mov-row { padding: 9px 12px; font-size: 12.5px; }
  /* Тепловая карта: плитки не мельчат */
  .tm-tile { border-radius: 3px; }
  .tm-sym { font-size: 12px !important; }
  .tm-ch { font-size: 10px !important; }
}

/* ── Market health полоса на дашборде ── */
@media (max-width: 560px) {
  .mh-bar { height: 30px !important; }
}

/* ── Convert / Compare на телефоне ── */
@media (max-width: 560px) {
  .converter { padding: 16px; }
  .conv-row { flex-wrap: wrap; }
  .conv-row input, .conv-row select { min-width: 0; }
  .cmp-table { font-size: 12px; }
  .cmp-table td, .cmp-table th { padding: 8px 6px; }
}

/* ── News лента на телефоне ── */
@media (max-width: 480px) {
  .news-card { padding: 12px 13px; }
  .news-filters { overflow-x: auto; -webkit-overflow-scrolling: touch; flex-wrap: nowrap; scrollbar-width: none; }
  .news-filters::-webkit-scrollbar { display: none; }
  .news-filters button { flex: none; white-space: nowrap; }
}

/* ── Whale radar controls ── */
@media (max-width: 480px) {
  .whale-controls { flex-wrap: wrap; gap: 6px; }
  .whale-row { gap: 9px; padding: 10px 12px; }
}

/* ── Академия / Learn ── */
@media (max-width: 560px) {
  .learn-item, .learn-head { padding: 14px 16px; }
  .learn-body { font-size: 13px; line-height: 1.65; }
  .lh-title { font-size: 14px; }
}

/* ── Универсально: заголовки страниц и отступы секций ── */
@media (max-width: 480px) {
  .eyebrow { font-size: 10.5px; letter-spacing: .6px; }
  .page-sub { margin-bottom: 16px; }
}

/* ═══════════════════════════════════════════════════════════════
   МОБИЛЬНАЯ ПОЛИРОВКА v181 — торговля, таблицы, детали
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
  /* Торговые %-кнопки: ровная сетка, не переносятся криво */
  .trade-presets { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; }
  .trade-presets.trade-pct { grid-template-columns: repeat(3, 1fr); }
  .tp-btn { min-height: 40px; font-size: 13px; }

  /* Слиппедж-пресеты ровно */
  .slip-presets { display: flex; gap: 6px; flex-wrap: wrap; }
  .slip-preset { min-height: 34px; }

  /* Таблицы: имя токена не переполняет, обрезаем длинные (не в компараторе) */
  .market-table:not(.cmp-table) .mt-name { max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .market-table td, .market-table th { padding-top: 11px; padding-bottom: 11px; }

  /* Компаратор: горизонтальный скролл с плавностью */
  .cmp-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .cmp-table { min-width: 480px; }

  /* Модалка трейдера: занимает почти весь экран, скроллится */
  .trader-modal { width: calc(100vw - 20px); max-height: 88vh; overflow-y: auto; }

  /* Вкладки depth/holders: контент не вылезает */
  #dtabBody { overflow-x: hidden; }
  .depth-grid { grid-template-columns: 1fr !important; }

  /* Convert: селекты и инпуты крупные */
  .conv-row select, .conv-row input { min-height: 44px; }
  .conv-swap { padding: 8px; font-size: 20px; }

  /* Referral соц-кнопки: 2 в ряд */
  .ref-share { min-width: calc(50% - 4px); min-height: 44px; }

  /* Академия: аккордеон комфортный тап */
  .learn-lesson summary, .lesson-head { padding: 14px 16px; min-height: 52px; }
}

/* ── Очень мелкие экраны: торговые кнопки 4 в ряд ── */
@media (max-width: 380px) {
  .trade-presets { grid-template-columns: repeat(3, 1fr); }
  .trade-presets .tp-btn:nth-child(4),
  .trade-presets .tp-btn:nth-child(5) { grid-column: span 1; }
  .market-table:not(.cmp-table) .mt-name { max-width: 90px; }
}

/* ── Ландшафтная ориентация телефона: не растягиваем график чрезмерно ── */
@media (max-height: 500px) and (orientation: landscape) {
  .token-view #chartBox, .term-chart #chartBox { min-height: 260px; }
  .mobile-nav { padding: 4px 4px calc(4px + env(safe-area-inset-bottom)); }
  .mn-item { font-size: 9px; }
}

/* ═══════════════════════════════════════════════════════════════
   МОБИЛЬНАЯ ДОРАБОТКА ЧАСТЬ 3 v181 — шапка, модалки, меню кошелька, тач
   ═══════════════════════════════════════════════════════════════ */

/* ── Шапка сайта на телефоне: помещается всё ── */
@media (max-width: 640px) {
  .topbar-in { gap: 8px; height: 58px; }
  .brand-fin { width: 34px; height: 24px; }
  .brand-name { font-size: 16px; }
  .topbar-actions { gap: 4px; }
  .topbar-actions .icon-btn { width: 34px; height: 34px; font-size: 14px; }
  .wallet-btn { padding: 8px 13px; font-size: 12.5px; }
}
@media (max-width: 400px) {
  /* на самых узких — прячем название бренда, оставляем логотип */
  .brand-name { display: none; }
  .topbar-in { gap: 6px; }
  .topbar-actions .icon-btn { width: 32px; height: 32px; }
  .wallet-btn { padding: 7px 11px; font-size: 12px; }
  /* флаги перевода прячем — язык доступен из меню */
  .gt-flags { display: none; }
}
@media (max-width: 360px) {
  .brand-fin { width: 30px; }
  .topbar-actions { gap: 3px; }
  .topbar-actions .icon-btn { width: 30px; height: 30px; font-size: 13px; }
}

/* ── Восстанавливаем крупный торговый инпут (старое !important его сбивало) ── */
@media (max-width: 640px) {
}
@media (max-width: 380px) {
}

/* ── Модалки и оверлеи: адаптивные, со скроллом ── */
@media (max-width: 560px) {
  .trader-modal {
    max-width: calc(100vw - 20px) !important;
    max-height: 88vh; overflow-y: auto; -webkit-overflow-scrolling: touch;
    border-radius: 18px; padding: 18px 16px;
  }
  /* закрытие крупнее для тача */
  .trader-close { width: 38px; height: 38px; font-size: 18px; }
}

/* ── Меню выбора кошелька: список крупными строками ── */
@media (max-width: 480px) {
  .wallet-opt, .wallet-picker-row {
    padding: 14px 16px; min-height: 56px; gap: 12px;
  }
  .wallet-opt img { width: 32px; height: 32px; }
}

/* ── Меню кошелька (подключённого): пункты крупнее ── */
@media (max-width: 480px) {
  .wallet-list { min-width: 220px; max-width: calc(100vw - 24px); }
  .wm-item { padding: 12px 14px; font-size: 14px; min-height: 46px; }
}

/* ── Тосты не перекрывают нижнюю навигацию ── */
@media (max-width: 1000px) {
  .toasts { bottom: 84px !important; }
}

/* ── AI-ассистент FAB над нижней навигацией ── */
@media (max-width: 1000px) {
  .ai-fab { bottom: 84px !important; }
}

/* ── Общее: убираем случайный горизонтальный overflow ── */
@media (max-width: 768px) {
  html, body { overflow-x: hidden; max-width: 100vw; }
  .market-wide, .market-wide-soft { margin-left: 0; margin-right: 0; width: 100%; }
}

/* ── Кнопки во всю ширину там, где это уместно на телефоне ── */
@media (max-width: 480px) {
  .trade-exec { width: 100%; }
  .btn-block-mobile { width: 100%; }
}

/* ═══════════════════════════════════════════════════════════════
   МОБИЛЬНАЯ ДОРАБОТКА ЧАСТЬ 4 v182 — терминал, вкладки контента, график-тач
   ═══════════════════════════════════════════════════════════════ */

/* ── Терминал: инфо-панель компактнее ── */
@media (max-width: 640px) {
  .term-bar { padding: 12px 14px; gap: 10px; }
  .term-bar > div { gap: 12px !important; }
  .tb-v { font-size: 13px; }
  .term-chart #chartBox { min-height: 300px; }
  .term-side .trade-card, .term-depth, .term-trades, .term-impact { border-radius: 12px; }
}

/* ── Timeframe и индикаторы графика: скролл, не перенос ── */
@media (max-width: 640px) {
  .tf-tabs { overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; flex: none; }
  .tf-tabs::-webkit-scrollbar { display: none; }
  .tf-tab { flex: none; }
  .chart-indicators { overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; flex-wrap: nowrap; }
  .chart-indicators::-webkit-scrollbar { display: none; }
  .ind-btn { flex: none; }
  /* подсказка тача под графиком */
  .chart-panel { position: relative; }
}

/* ── Вкладки контента токена: холдеры / depth ── */
@media (max-width: 560px) {
  .holder-row { padding: 10px 0; gap: 10px; }
  .holder-row .mono { font-size: 12px; }
  .depth-row { font-size: 11px; padding: 4px 10px; }
  .depth-mid { font-size: 12px; padding: 6px; }
}

/* ── Чат-вкладка (обсуждение) ── */
@media (max-width: 560px) {
  .comment-row, .cmt-row { gap: 9px; padding: 10px 0; }
  .cmt-input, #cmtInput { font-size: 16px; }
  .cmt-body { font-size: 13px; }
}

/* ── Analyze-вкладка (AI + сигналы) ── */
@media (max-width: 1000px) {
  .analyze-wrap > * { min-width: 0; }
}
@media (max-width: 560px) {
  .signal-row { font-size: 12.5px; padding: 9px 12px; }
}

/* ── Bubble map: подпись про тап вместо hover ── */
@media (max-width: 640px) {
  .bubble-risk { padding: 12px 14px; }
}

/* ── ROI-калькулятор и позиция ── */
@media (max-width: 560px) {
  .roi-inputs { flex-wrap: wrap; gap: 8px; }
  .roi-inputs input { min-width: 0; flex: 1; }
}

/* ── Compare page: скролл таблицы + чипы токенов ── */
@media (max-width: 640px) {
  .cmp-chips { flex-wrap: wrap; gap: 8px; }
  .cmp-add-search { width: 100%; }
}

/* ── API docs page: код-блоки не вылезают ── */
@media (max-width: 560px) {
  .api-endpoint, .code-block, pre {
    overflow-x: auto; -webkit-overflow-scrolling: touch; font-size: 11.5px;
  }
}

/* ── Статус-страница ── */
@media (max-width: 480px) {
  .status-card { padding: 14px; }
  .status-card .v { font-size: 18px; }
}

/* ── Универсально: длинные адреса переносятся/обрезаются ── */
@media (max-width: 480px) {
  .mono.addr, .wallet-addr { word-break: break-all; }
}

/* ═══════════════════════════════════════════════════════════════
   МОБИЛЬНАЯ ДОРАБОТКА ЧАСТЬ 5 v183 — safe-area, ландшафт, AI-чат, доступность
   ═══════════════════════════════════════════════════════════════ */

/* ── Safe-area: контент не под челкой/вырезами (iPhone X+ и Android с вырезом) ── */
@media (max-width: 1000px) {
  .topbar { padding-top: env(safe-area-inset-top); }
  #view.wrap, .wrap {
    padding-left: max(12px, env(safe-area-inset-left));
    padding-right: max(12px, env(safe-area-inset-right));
  }
}
@media (max-width: 480px) {
  #view.wrap, .wrap {
    padding-left: max(10px, env(safe-area-inset-left));
    padding-right: max(10px, env(safe-area-inset-right));
  }
}

/* ── AI-чат: полноэкранный и удобный на телефоне ── */
@media (max-width: 560px) {
  .ai-chat-panel {
    left: 8px; right: 8px; width: auto; max-width: none;
    bottom: 84px; height: calc(100vh - 180px); height: calc(100dvh - 180px); max-height: none;
    border-radius: 18px;
  }
  .ai-chat-input input { font-size: 16px; }   /* без iOS-зума */
  .ai-msg { max-width: 94%; }
  .ai-bubble { font-size: 14px; }
}

/* ── Ландшафт (горизонтальный телефон): низкая высота экрана ── */
@media (max-height: 500px) and (orientation: landscape) {
  /* нижняя навигация тоньше, чтобы не съедала пол-экрана */
  .mobile-nav { padding: 4px 4px calc(4px + env(safe-area-inset-bottom)); }
  .mn-item { font-size: 9px; padding: 2px 0; }
  .mn-item svg { width: 18px; height: 18px; }
  #view { padding-bottom: 58px; }
  /* график не на весь экран в ландшафте */
  #chartBox { min-height: 240px; }
  /* AI-панель компактнее */
  .ai-chat-panel { height: calc(100vh - 90px); height: calc(100dvh - 90px); bottom: 60px; }
  /* модалки со скроллом */
  .trader-modal { max-height: 92vh; }
}

/* ── Складные/планшеты в портрете (600–900px): 2-колоночные сетки где влезает ── */
@media (min-width: 600px) and (max-width: 900px) {
  .smart-strip, .hot-strip, .launch-strip, .similar-grid { grid-template-columns: 1fr 1fr; }
  .pf-summary { grid-template-columns: repeat(4, 1fr); }
}

/* ── Доступность: уважаем крупный системный шрифт (не ломаем раскладку) ── */
@media (max-width: 768px) {
  /* используем rem-независимые тап-цели минимум 44px (рекомендация Apple/Google) */
  .icon-btn, .mn-item, .dtab, .cat-tab, .tf-tab, .tp-btn, .nv,
  .trade-tab, button.chip-opt { min-height: 40px; }
  .mn-item { min-height: 48px; }
}

/* ── Убираем двойной тап-зум на интерактивных элементах ── */
@media (max-width: 1000px) {
  button, a, .cat-tab, .dtab, .mn-item, .icon-btn, .tp-btn,
  .hot-card, .smart-card, .similar-card, .lb-rich, .market-table tbody tr {
    touch-action: manipulation;
  }
}

/* ── Плавный импульс-скролл для всех горизонтальных лент ── */
@media (max-width: 900px) {
  .trend-strip, .recent-strip, .momentum-scroll, .cat-tabs,
  .dtabs, .tf-tabs, .chart-indicators, .news-filters {
    scroll-behavior: smooth;
    overscroll-behavior-x: contain;
  }
}

/* ── Тёмная нижняя навигация: активный пункт заметнее ── */
@media (max-width: 1000px) {
  .mn-item.act { transform: translateY(-1px); }
}

/* ═══════════════════════════════════════════════════════════════
   МОБИЛЬНАЯ ДОРАБОТКА ЧАСТЬ 5 v183 — safe-area, landscape, 320px, финал
   ═══════════════════════════════════════════════════════════════ */

/* ── Safe-area: вырезы/челки iPhone (шапка + боковые отступы) ── */
@supports (padding: max(0px)) {
  .topbar-in {
    padding-left: max(0px, env(safe-area-inset-left));
    padding-right: max(0px, env(safe-area-inset-right));
  }
  @media (max-width: 768px) {
    #view.wrap, .wrap {
      padding-left: max(12px, env(safe-area-inset-left));
      padding-right: max(12px, env(safe-area-inset-right));
    }
  }
}

/* ── Очень узкие экраны (≤320px, старые/маленькие Android) ── */
@media (max-width: 320px) {
  #view.wrap, .wrap { padding-left: 7px; padding-right: 7px; }
  .brand-fin { width: 28px; }
  .topbar-actions .icon-btn { width: 29px; height: 29px; font-size: 12px; }
  .wallet-btn { padding: 6px 9px; font-size: 11px; }
  .page-title { font-size: 21px; }
  .hm-value { font-size: 16px; }
  .tks .v { font-size: 12px; }
  .mn-item { font-size: 9px; }
  .market-table tbody td { padding: 10px 5px; font-size: 12px; }
  .mt-name { max-width: 70px; }
}

/* ── Улучшенный landscape (телефон на боку) ── */
@media (max-height: 500px) and (orientation: landscape) {
  /* шапка компактнее, чтобы контент влезал */
  .topbar-in { height: 50px; }
  /* нижняя навигация тоньше */
  .mobile-nav { padding: 3px 4px calc(3px + env(safe-area-inset-bottom)); }
  .mn-item svg { width: 18px; height: 18px; }
  /* модалки со скроллом — экран низкий */
  .trader-modal { max-height: 92vh; }
  .ms-panel { max-height: 88vh; overflow-y: auto; }
  /* на страницу токена: график + торговля в 2 колонки (места хватает по ширине) */
  .token-view .tk-grid { flex-direction: row !important; gap: 12px; }
  .token-view .tk-main { flex: 1; min-width: 0; }
  .token-view .tk-side { width: 300px; flex: none; }
}

/* ── Landscape для планшетов (iPad и т.п.) — возвращаем 2 колонки ── */
@media (min-width: 700px) and (max-width: 1000px) and (orientation: landscape) {
  .tk-grid { display: grid !important; grid-template-columns: minmax(0,1fr) 300px; }
  .term-grid { display: grid; grid-template-columns: minmax(0,1fr) 300px; }
}

/* ── Финальные тач-гарантии ── */
@media (max-width: 768px) {
  /* все кликабельные иконки/кнопки — минимум 40px для пальца (WCAG) */
  .icon-btn, .cat-tab, .dtab, .tf-tab, .chip-opt, .nv, .mn-item { min-height: 34px; }
  button, a[role="button"], .btn, .btn-ghost { touch-action: manipulation; }
  /* убираем синюю подсветку тапа на iOS/Android */
  * { -webkit-tap-highlight-color: rgba(34,211,238,.12); }
  /* плавный скролл всей страницы */
  html { scroll-behavior: smooth; }
}

/* ── Читаемость: минимальный размер вторичного текста ── */
@media (max-width: 480px) {
  .page-sub, .hm-label, .tks .k { line-height: 1.4; }
}

/* ── Предотвращаем горизонтальный вылет длинных чисел/цен ── */
@media (max-width: 400px) {
  .tk-price, .th-price { word-break: keep-all; overflow-wrap: normal; }
}

/* ═══ ФИКС отступа в шапке токена на мобильном v184 ═══ */
@media (max-width: 640px) {
  /* уменьшаем вертикальный зазор между рядами шапки (был gap:20px → большой отступ при переносе) */
  .tk-topbar { row-gap: 8px; column-gap: 12px; padding: 13px 15px; margin-bottom: 10px; }
  /* цена сразу под названием, без лишнего верхнего отступа */
  .tk-price-block { margin-left: 0; margin-top: 0; text-align: left; width: 100%;
    display: flex; align-items: baseline; gap: 10px; }
  .tk-price-chg { margin-top: 0; }
  /* убираем верхний отступ у названия/пары */
  .tk-pair-sub { margin-top: 2px; }
  /* кнопки действий компактно, без большого разрыва */
  .tk-actions { width: 100%; margin-top: 2px; }
}
@media (max-width: 380px) {
  .tk-topbar { row-gap: 6px; padding: 12px; }
}

/* ═══════════════════════════════════════════════════════════════
   МОБИЛЬНАЯ ДОРАБОТКА ЧАСТЬ 6 v185 — feed, профиль, числа, финальная полировка
   ═══════════════════════════════════════════════════════════════ */

/* ── Feed-лента событий ── */
@media (max-width: 480px) {
  .feed-item { padding: 13px 14px; }
  .feed-text { font-size: 13.5px; }
  .feed-head { gap: 8px; flex-wrap: wrap; }
}

/* ── Длинные числа/цены не ломают вёрстку ── */
@media (max-width: 480px) {
  .tk-price, .th-price, .hm-value, .perf-v { overflow-wrap: anywhere; }
  /* маленькие цены с subscript-нулями компактнее */
  .mono sub { font-size: .65em; }
}

/* ── Эйраузел карточек метрик: одинаковая высота, без прыжков ── */
@media (max-width: 640px) {
  .hm-card { min-height: 76px; display: flex; flex-direction: column; justify-content: center; }
}

/* ── Скелетоны загрузки не выше реального контента (без прыжка) ── */
@media (max-width: 640px) {
  .skel[style*="height:120px"] { height: 88px !important; }
  .skel[style*="height:440px"] { height: 320px !important; }
}

/* ── Кнопки-сегменты (P&L/Volume, buy/sell tabs) крупнее для пальца ── */
@media (max-width: 560px) {
  .lb-sort, .seg-btn { padding: 7px 12px; min-height: 36px; }
}

/* ── Тренд-полоса и моментум: карточки одинаковой ширины ── */
@media (max-width: 560px) {
  .trend-item { min-width: 150px; flex: none; }
  .momentum-card { min-width: 160px; flex: none; }
}

/* ── Убираем горизонтальный скролл-бар где не нужен (косметика) ── */
@media (max-width: 768px) {
  .cat-tabs, .dtabs, .tf-tabs, .news-filters, .chart-indicators {
    padding-bottom: 2px;
  }
}

/* ── Разделители секций на главной: ровные отступы ── */
@media (max-width: 560px) {
  .market-wide-soft { margin-bottom: 16px; }
  .eyebrow { margin-bottom: 8px; }
}

/* ── Поповеры/дропдауны (сеть, валюта) не вылезают за экран ── */
@media (max-width: 480px) {
  .net-menu, .dropdown-menu, .popover {
    max-width: calc(100vw - 20px); right: 8px;
  }
}

/* ── Финал: комфортный межстрочный интервал для длинных описаний ── */
@media (max-width: 480px) {
  .learn-body, .feed-text, .ai-bubble, .news-body, p.page-sub {
    line-height: 1.6;
  }
}

/* ═══════════════════════════════════════════════════════════════
   ЕДИНАЯ ТИПОГРАФИЧЕСКАЯ ШКАЛА токена (мобильный) v186
   Один источник истины — убирает конфликты множественных правил
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 768px) { .tk-price { font-size: 24px; } .tk-name { font-size: 19px; } }
@media (max-width: 480px) { .tk-price { font-size: 23px; } .tk-name { font-size: 18px; } }
@media (max-width: 380px) { .tk-price { font-size: 21px; } .tk-name { font-size: 16px; } }
@media (max-width: 360px) { .tk-price { font-size: 20px; } .tk-name { font-size: 15px; } }

/* ═══════════════════════════════════════════════════════════════
   ЕДИНЫЕ ШКАЛЫ statbar + trade-input (мобильный) v187
   Один источник — устраняет 13 конфликтующих правил
   ═══════════════════════════════════════════════════════════════ */

/* Стат-полоса токена: 4 колонки на планшете/крупном телефоне, 2 на узком */
@media (max-width: 768px) { .tk-statbar { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 480px) { .tk-statbar { grid-template-columns: repeat(2, 1fr); } }

/* Торговый инпут: крупный (перебиваем глобальное input{16px!important}), читаемая лесенка */
@media (max-width: 768px) { .trade-input { font-size: 21px !important; padding: 14px !important; } }
@media (max-width: 480px) { .trade-input { font-size: 20px !important; padding: 13px !important; } }
@media (max-width: 360px) { .trade-input { font-size: 19px !important; } }

/* ═══ Fade-индикатор горизонтального скролла на мобильном v188 ═══ */
@media (max-width: 768px) {
  .dtabs, .tf-tabs, .chart-indicators, .cat-tabs, .news-filters {
    position: relative;
    -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 24px), transparent);
    mask-image: linear-gradient(90deg, #000 calc(100% - 24px), transparent);
  }
  /* при скролле до конца маска убирается через :hover не сработает на тач,
     поэтому оставляем лёгкий градиент-намёк постоянно — показывает что есть ещё */
}

/* ═══════════════════════════════════════════════════════════════
   ВИЗУАЛЬНЫЕ ФИКСЫ по скриншотам v188 — шапка, кнопки, chart-head
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 640px) {
  /* Кнопки действий: компактные, не растянутые во всю ширину */
  .tk-actions { width: 100%; justify-content: flex-start; gap: 8px; flex-wrap: wrap; }
  .tk-actions .icon-btn { width: 42px !important; height: 42px !important; flex: none !important; font-size: 18px; }

  /* chart-head: индикаторы и таймфреймы в отдельные строки, без наезда */
  .chart-head { flex-direction: column; align-items: stretch !important; gap: 10px; padding: 12px 12px 8px; }
  .chart-head > div:first-child { width: 100%; }
  .chart-indicators { width: 100%; }
  .tf-tabs { width: 100%; justify-content: flex-start; }

  /* Шапка: меньше вертикального воздуха между рядами */
  .tk-topbar { row-gap: 6px; }
  .tk-id { width: 100%; }
  .tk-pair-sub { margin-top: 1px; }
}
@media (max-width: 380px) {
  /* На узких кнопки чуть меньше, помещается 6 в ряд */
  .tk-actions .icon-btn { width: 40px !important; height: 40px !important; font-size: 16px; }
}

/* ═══ Мобильный: контент выше, меньше пустого места сверху v189 ═══ */
@media (max-width: 640px) {
  #view.wrap, .wrap { padding-top: 16px; }
  .page-title { margin: 2px 0 2px; }
  .page-sub { margin-bottom: 16px; }
  .eyebrow { margin-bottom: 6px; }
  .hero-metrics { margin: 16px 0 18px; }
}
@media (max-width: 380px) {
  #view.wrap, .wrap { padding-top: 12px; }
}
