/* design-v2.css — SPEC_visual_migration.md §3.
   ОДИН накопительный файл на все 6 этапов миграции — независимость этапа это
   свойство git-коммита (один коммит = один помеченный ниже блок), не отдельного
   файла. Каждое правило ОБЯЗАНО быть вида:

     [data-design="v2"] #конкретный-wrapper .class { ... }

   Атрибут+класс — специфичность (0,0,2,0), которая надёжно перебивает
   одноклассовые правила design.css/sbf-header.js (0,0,1,0) независимо от
   порядка подключения и рантайм-инъекции sbf-header.js. НИКОГДА не писать
   голый [data-design="v2"] .chip / .tf / .tag.verify и т.п. — эти классы
   переиспользуются в НЕСКОЛЬКИХ местах одной и той же страницы, часто
   принадлежащих РАЗНЫМ этапам миграции (см. план, разделы про #tabs vs
   #pulseTabs, .view-tech vs Fear&Greed .tag.verify) — без явного wrapper-id
   один этап случайно перекрасит разметку другого, ещё не подтверждённого,
   этапа.

   design.css сам НИКОГДА не редактируется ради этой миграции — этим
   объясняется, почему journal.html/edu/calendar.html структурно не могут
   получить это оформление (у них нет флага, но даже если бы был — этот файл
   на них не подключён).

   Файл подключается ПОСЛЕДНИМ в <head> на index.html и chart.html — это
   нужно только для тай-брейка с .sbf-embed-правилами той же специфичности,
   для всего остального в этом файле порядок подключения не имеет значения
   благодаря разнице в специфичности выше. */

/* ===== Этап 1 — шапка, тикер-лента, табы (риск: нулевой) =====
   .brand-text — только index.html (sbf-header.js использует другое имя,
   .sbf-brand-text, там, где он реально рендерит шапку сам, т.е. НЕ на
   index.html — см. isMain-проверку в sbf-header.js). .g-nav-item/.sbf-lang-sw
   — общие с sbf-header.js, значит меняются и на chart.html тоже (см. план,
   проверять обе страницы). .tick/.seg-btn — только index.html. */
[data-design="v2"] .brand-text b{
  font-family:var(--f-disp);font-weight:700;font-size:15px;
  letter-spacing:.01em;color:var(--ink);
}
[data-design="v2"] .brand-text span{
  font-family:var(--f-data);font-size:9.5px;font-weight:500;
  letter-spacing:.28em;text-transform:uppercase;color:var(--ink-2);
  margin-top:3px;
}
[data-design="v2"] header.sbf-hd{border-bottom:1px solid var(--ink)}

[data-design="v2"] .strip .tick .k{
  font-family:var(--f-data);letter-spacing:.14em;font-weight:600;
}
[data-design="v2"] .strip .tick .v{font-family:var(--f-data)}

[data-design="v2"] .g-nav .g-nav-item{
  font-family:var(--f-disp);font-size:12.5px;font-weight:600;
  letter-spacing:.03em;text-transform:uppercase;
}
[data-design="v2"] .sbf-lang-sw a{font-family:var(--f-data);letter-spacing:.03em}

[data-design="v2"] #segCtrl .seg-btn{
  font-family:var(--f-data);font-size:11px;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;
  border-color:var(--rule);
}

/* ===== Этап 3 — Fear & Greed, Эпицентр (риск: низкий) =====
   .fng-num/.fng-label — новые классы, введены этим этапом (были инлайн-style
   в renderFng(), см. index.html — базовое v1-поведение сохранено байт-в-байт
   отдельным правилом в собственном <style> index.html, здесь только v2-оверрайд).
   #fngBox — единственный сайт с этими классами (панель), в отличие от .fng
   в .strip (компактный тикер, buildStrip()) — оба размечены раздельно ниже,
   не задевая друг друга. #pulseTabs/#pulseList/#pulseCalm — существующие id,
   Эпицентр (Пульс Рынка), не пересекаются ни с #tabs (Этап 4), ни с #segCtrl
   (Этап 1). .pulse-line — новый класс вместо инлайн stroke="var(--gold)" в
   sparklineSvg() (v1-цвет сохранён отдельным правилом в index.html, здесь
   только v2-оверрайд), математика точек не тронута. */
[data-design="v2"] #fngBox .fng-num{font-family:var(--f-data);font-weight:700}
[data-design="v2"] #fngBox .fng-label{
  font-family:var(--f-data);font-size:11px;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;
}

[data-design="v2"] .strip .fng .k{font-family:var(--f-data);letter-spacing:.14em;font-weight:600}
[data-design="v2"] .strip .fng .v{font-family:var(--f-data)}

[data-design="v2"] #pulseTabs .tab.chip{
  font-family:var(--f-data);font-size:11px;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;
  border-color:var(--rule);
}
[data-design="v2"] #pulseList .pulse-sym{font-family:var(--f-data);letter-spacing:.02em}
[data-design="v2"] #pulseList .pulse-score{font-family:var(--f-data)}
[data-design="v2"] #pulseList .pulse-line{stroke:var(--ink-2)}
[data-design="v2"] #pulseCalm{font-family:var(--f-data);letter-spacing:.02em}

/* ===== Этап 4 — Утренний отчёт (риск: средний) =====
   #reportPanel — новый id на <section>, нужен только чтобы дотянуться до
   .panel-h h2 (сам .panel-h h2 переиспользуется на ВСЕХ панелях страницы —
   Focus/F&G/Эпицентр/Signal-feed — без явного id один общий .panel-h h2
   задел бы все разом). #report/#reportFresh — существующие уникальные id.
   .rep-sec/summary/.rep-chev/.rep-body внутри #report больше нигде на
   странице не переиспользуются (проверено, нет и на chart.html).
   renderReport() не тронут — разбиение markdown на секции, порядок,
   состав и парсинг остаются как есть, здесь только CSS. Убираем
   рамку/фон/тень у .rep-sec в пользу нижней линии-разделителя — тот же
   принцип, что уже подтверждён на карточке «В фокусе» (без коробки
   спокойнее; макет sbf_briefing_v1.html строит свои секции ровно так же,
   см. .block/.eyebrow). Никаких fixed/max-height — реальный текст отчёта
   варьируется 1.3x-2.9x по секциям (Геополитика/Экономика качаются
   сильнее всего), проверено на нескольких реальных data/reports/*.md. */
[data-design="v2"] #reportPanel .panel-h h2{
  font-family:var(--f-disp);font-size:11px;font-weight:600;
  letter-spacing:.22em;color:var(--ink-2);text-transform:uppercase;
}
[data-design="v2"] #reportFresh{font-family:var(--f-data);letter-spacing:.02em}

[data-design="v2"] #report .rep-sec{
  border:none;border-radius:0;background:transparent;
  border-bottom:1px solid var(--rule-soft);margin:0;
}
[data-design="v2"] #report .rep-sec:last-child{border-bottom:none}
[data-design="v2"] #report .rep-sec summary{
  padding:16px 0;background:transparent;
  font-family:var(--f-disp);font-size:15px;font-weight:600;letter-spacing:.01em;
}
[data-design="v2"] #report .rep-sec summary:hover{background:transparent;color:var(--ink)}
[data-design="v2"] #report .rep-sec[open] summary{
  background:transparent;border-bottom:1px solid var(--rule-soft);
}
[data-design="v2"] #report .rep-sec[open]{box-shadow:none}
[data-design="v2"] #report .rep-body{
  padding:2px 0 20px;
  font-family:var(--f-read);font-weight:300;font-size:15.5px;line-height:1.7;
}

/* ===== Этап 5а — Хром живого графика: рамка/подписи/кнопки (риск: средний) =====
   #techTf/#techTog/#techChartPanel — index.html (.view-tech, живой график).
   #tf/#tog/.card — их аналоги на отдельной странице chart.html (та же самая
   .tf/.chip разметка стилизуется из ОБЩЕГО design.css — отсюда общий
   блаcт-радиус, план осознанно принял: chart.html получает тот же
   апгрейд бонусом, а не отдельную развилку/новые классы ради развязки).
   .view-tech .tag.verify — Live-бейдж на index.html (тот же селектор
   попадает и на соседний tech-analysis fact-tag внутри .view-tech — тоже
   нормально, тот же визуальный паттерн, не Fear&Greed-бейдж — тот вне
   .view-tech, Этап 3). .live — архитектурно другой Live-индикатор именно
   на chart.html (не .tag.verify), стилизуется отдельно. Движок отрисовки
   свечей (LightweightCharts/grafik-engine.js), live-соединение,
   переключение таймфрейма/режима — не тронуты, только CSS. Перекраска
   свечей — отдельный под-шаг ПОСЛЕ проверки этого. */
[data-design="v2"] #techChartPanel{border-color:var(--rule);border-radius:4px}
[data-design="v2"] .card{border-color:var(--rule);border-radius:4px}

[data-design="v2"] #techTf .tf,
[data-design="v2"] #tf .tf{
  font-family:var(--f-data);font-weight:600;letter-spacing:.06em;
  border-color:var(--rule);border-radius:2px;
}
[data-design="v2"] #techTog .chip,
[data-design="v2"] #tog .chip{
  font-family:var(--f-data);font-weight:600;letter-spacing:.04em;
  border-color:var(--rule);border-radius:2px;
}

[data-design="v2"] .view-tech .tag.verify{
  font-family:var(--f-data);font-weight:600;letter-spacing:.08em;
}
[data-design="v2"] .live{
  font-family:var(--f-data);letter-spacing:.08em;text-transform:uppercase;
}

/* Этап 5б (перекраска свечей) сознательно пропущен: спека сама помечает
   его "при необходимости", а необходимости нет — ~11 хардкод-сайтов
   (#1e8e5a/#c0392b/#1D9E75: addCandlestickSeries x2, BOS/FVG price-lines,
   pivot-hint текст, band/channel индикатор, trade-direction/replay линии,
   TP/SL пунктир) уже РАВНЫ консолидационным --up/--down в tokens.css, и
   ни в sbf_briefing_v1.html, ни где-либо ещё нет собственного графика
   свечей — эталонной другой палитры взять неоткуда. Перекраска в те же
   самые значения — чистый churn без визуального эффекта; придумывать
   новую палитру без макета — обратное тому, как принимались все
   остальные цветовые решения в этой миграции (см. tokens.css). Критерий
   приёмки Этапа 5 (переключение таймфреймов/режимов, live-обновление,
   индикатор Live) не упоминает цвет свечей вовсе. */

/* ===== Этап 6 — Библиотека паттернов (риск: высокий, последний) =====
   #techLib — существующий id (index.html-only, chart.html этот блок не
   содержит вовсе, см. отдельную проверку grep). #gTabs/#gPills —
   существующие id-обёртки категорий/паттернов, их .chip-кнопки (класс
   "gpill chip"/"gpill chip gcat") создаёт buildGTabs()/buildGPills() в
   index.html — переиспользуют общий .chip из design.css, но #gTabs/
   #gPills делают выбор уникальным, никакой другой .chip на странице не
   заденут. .g-chart/.gschool/.greplay/.ghead-row/.gex-*/.gfoot-note — все
   уникальны для этой панели (проверено grep, не встречаются на
   chart.html и не переиспользуются другими блоками index.html).
   Собственно SVG-отрисовка образца внутри #gChart (grafik-engine.js:
   ITEMS/CATS/.build(), палитра P.up/P.down/P.gold и т.д.) не тронута —
   у неё СВОЯ, отдельная от --up/--down палитра (P.up:#2E8B6F ≠
   --up:#1e8e5a), и спека прямо требует не трогать движок отрисовки;
   меняется только окружающая обёртка. .gex-card оставлены с лёгкой
   рамкой (не как .rep-sec/Focus — там de-box уместен для одной
   вертикальной ленты секций, здесь три карточки в ряд и рамка нужна,
   чтобы визуально разделить колонки). */
[data-design="v2"] #techLib .panel-h h2{
  font-family:var(--f-disp);font-size:11px;font-weight:600;
  letter-spacing:.22em;color:var(--ink-2);text-transform:uppercase;
}
[data-design="v2"] #gTabs .chip,
[data-design="v2"] #gPills .chip{
  font-family:var(--f-data);letter-spacing:.04em;
  border-color:var(--rule);border-radius:2px;
}
[data-design="v2"] .g-chart{
  background:var(--paper-2);border-color:var(--rule);border-radius:4px;
}
[data-design="v2"] .gschool{border-color:var(--rule);border-radius:2px}
[data-design="v2"] .gschool-lbl{font-family:var(--f-data);letter-spacing:.12em}
[data-design="v2"] .greplay{
  font-family:var(--f-disp);font-weight:600;font-size:11px;
  letter-spacing:.06em;text-transform:uppercase;
  border-color:var(--rule);border-radius:2px;
}
[data-design="v2"] .ghead-row h3{font-family:var(--f-disp);font-weight:700}
[data-design="v2"] .ghead-row .gprov{font-family:var(--f-data);letter-spacing:.12em}
[data-design="v2"] .gex-card{
  background:var(--paper-2);border-color:var(--rule);border-radius:4px;
}
[data-design="v2"] .gex-lbl{font-family:var(--f-data);letter-spacing:.14em}
[data-design="v2"] .gfoot-note{font-family:var(--f-data);letter-spacing:.02em}
