/* ============================================================================
   methodology.css — премиум-дополнения гостевой «Методологии» (релиз):
   ▸ блок «DEX Visor» (график + пузыри-сделки + разрез по кошелькам)
   ▸ строка режимов радара HyperLiquid
   Только для methodology.html. Ложится на tokens/base/components (один акцент,
   категориальная палитра только на данных). Анимация — исключительно
   transform/opacity, один проход на входе в кадр (гейт .is-in от app.js),
   reduced-motion → финальное состояние.
   ========================================================================== */

/* локальный токен для сигнала «Листинг» (нет в общей палитре tokens.css; цвет
   канонично живёт как spa.js SM.listing.color). Определяем изолированно на странице. */
:root{ --cat-listing:#E0A93B; }
/* капим вес <b> в новой прозе (Geist — вариативный 100–900; UA b=700 запрещён §3) */
.hero-sub b, .method-card .what b{ font-weight:600; }

/* ---------- строка режимов радара HyperLiquid ---------- */
.mvh-modes{display:flex; flex-wrap:wrap; gap:var(--space-2); margin-top:var(--space-5);}
.mvh-mode{display:inline-flex; align-items:center; gap:7px; height:32px; padding:0 12px;
  border-radius:var(--radius-pill); background:var(--surface-1); border:1px solid var(--border);
  font-size:.8125rem; color:var(--text-2);}
.mvh-mode .d{width:6px; height:6px; border-radius:var(--radius-pill); background:var(--cat-hl);}
.mvh-mode.act{color:var(--text-1); border-color:color-mix(in srgb,var(--cat-hl) 40%, var(--border));
  background:color-mix(in srgb,var(--cat-hl) 10%, transparent);}

/* ---------- блок DEX Visor (график + пузыри) ---------- */
.mv{display:grid; grid-template-columns:1.05fr 1.15fr; gap:clamp(var(--space-6),4vw,var(--space-10));
  align-items:center; padding:clamp(var(--space-6),3vw,var(--space-8));}
.mv-copy h3{font-size:1.375rem; font-weight:600; color:var(--text-1); letter-spacing:-.02em;}
.mv-copy > p{margin-top:var(--space-4); color:var(--text-2); line-height:1.6; max-width:46ch;}
.mv-signals{display:flex; flex-wrap:wrap; gap:var(--space-3); margin-top:var(--space-5);}
.mv-sig{display:inline-flex; align-items:center; gap:8px; height:32px; padding:0 12px;
  border-radius:var(--radius-pill); background:var(--surface-1); border:1px solid var(--border);
  font-size:.8125rem; color:var(--text-2);}
.mv-sig .d{width:8px; height:8px; border-radius:var(--radius-pill); background:var(--c,var(--text-3));}
.mv-legend{display:flex; flex-wrap:wrap; gap:var(--space-4); margin-top:var(--space-5);
  font-size:.75rem; color:var(--text-3);}
.mv-legend .lg{display:inline-flex; align-items:center; gap:6px;}
.mv-legend .r{width:12px; height:12px; border-radius:var(--radius-pill); border:1.5px solid var(--rc,var(--text-3));
  background:color-mix(in srgb, var(--rc,var(--text-3)) 22%, transparent);}
.mv-more{display:inline-flex; align-items:center; gap:6px; margin-top:var(--space-6);
  color:var(--accent); font-size:.875rem; font-weight:500;}
.mv-more:hover{color:var(--accent-hover);}

/* фигура: терминальная панель графика */
.mv-fig{position:relative; border-radius:var(--radius-md); overflow:hidden;
  background:color-mix(in srgb, var(--bg) 45%, var(--surface-1)); border:1px solid var(--border);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05); padding:var(--space-5);}
[data-theme="light"] .mv-fig{box-shadow:inset 0 1px 0 rgba(255,255,255,.6);}
.mv-fh{display:flex; align-items:center; gap:8px; margin-bottom:var(--space-4);}
.mv-fh .s{font-weight:600; font-size:.8125rem; color:var(--text-1);}
.mv-fh .n{font-family:var(--font-mono); font-size:.625rem; letter-spacing:.06em; text-transform:uppercase; color:var(--text-3);}
.mv-fh .sp{flex:1;}
.mv-fh .tf{font-family:var(--font-mono); font-size:.6875rem; color:var(--text-3);}
.mv-chart{position:relative;}
.mv-spark{width:100%; height:120px; display:block;}
.mv-spark .cndl{transform-box:fill-box; transform-origin:center bottom;}
.mv-spark .up{fill:var(--up);} .mv-spark .dn{fill:var(--down);}
.mv-spark .wick{stroke-width:1.2;} .mv-spark .wick.up{stroke:var(--up);} .mv-spark .wick.dn{stroke:var(--down);}
/* пузыри-сделки (в стиле GMGN): кольцо, размер по $, покупка/продажа цветом */
.mv-bub{position:absolute; border-radius:var(--radius-pill); border:1.6px solid var(--bc);
  background:color-mix(in srgb, var(--bc) 22%, transparent); opacity:0;
  box-shadow:0 0 0 3px color-mix(in srgb, var(--bc) 8%, transparent);
  display:flex; align-items:center; justify-content:center;}
.mv-bub.buy{--bc:var(--up);} .mv-bub.sell{--bc:var(--down);}
.mv.is-in .mv-bub{animation:mvpop .5s var(--ease-out) both; animation-delay:calc(.15s + var(--bd,0) * 90ms);}
/* всплывающая подсказка на самом крупном пузыре (статичная — «как это выглядит») */
.mv-tip{position:absolute; z-index:3; background:var(--surface-3); border:1px solid var(--border-strong);
  border-radius:var(--radius-sm); padding:7px 9px; font-size:.6875rem; color:var(--text-2); line-height:1.4;
  box-shadow:var(--elev-1); white-space:nowrap; opacity:0;}
.mv-tip b{color:var(--text-1); font-weight:600;} .mv-tip .u{font-family:var(--font-mono); color:var(--up);}
.mv.is-in .mv-tip{animation:mvfade .5s var(--ease-out) .75s both;}
/* стрип кошельков с «глазами» */
.mv-eyes{margin-top:var(--space-4); display:flex; flex-direction:column; gap:1px;
  border:1px solid var(--border); border-radius:var(--radius-sm); overflow:hidden;}
.mv-eye{display:grid; grid-template-columns:auto minmax(62px,max-content) 1fr auto; align-items:center; gap:10px;
  padding:7px 11px; background:var(--surface-1); font-size:.75rem;}
.mv-eye + .mv-eye{border-top:1px solid rgba(255,255,255,.05);}
[data-theme="light"] .mv-eye + .mv-eye{border-top-color:var(--border);}
.mv-eye .ico{width:14px; height:14px; color:var(--text-3);}
.mv-eye .ico svg{width:14px; height:14px; stroke-width:1.6;}
.mv-eye.off{opacity:.55;} .mv-eye.off .ico{color:var(--text-disabled);}
.mv-eye .ad{font-family:var(--font-mono); color:var(--text-2);}
.mv-eye .vol{font-family:var(--font-mono); color:var(--text-2); font-variant-numeric:tabular-nums; text-align:right;}
/* мини-бар объёма кошелька (стрип «глаза» Visor): заполняет ряд ПО СМЫСЛУ, цвет = сторона сделки */
.mv-eye .bar{height:5px; border-radius:var(--radius-pill); background:rgba(255,255,255,.07); overflow:hidden;}
[data-theme="light"] .mv-eye .bar{background:rgba(15,23,42,.08);}
.mv-eye .bar > i{display:block; height:100%; border-radius:inherit; background:var(--c,var(--text-3));}

@keyframes mvpop{from{opacity:0; transform:scale(.35);} to{opacity:1; transform:scale(1);}}
@keyframes mvfade{from{opacity:0;} to{opacity:1;}}

@media (max-width:760px){
  .mv{grid-template-columns:1fr; gap:var(--space-6);}
}
@media (prefers-reduced-motion:reduce){
  .mv-bub,.mv-tip{animation:none; opacity:1; transform:none;}
}
