/* ============================================================
   NERVA brand layer CSS v13 — 2026-09-30 «Искоренение прошлых версий»
   Приказ владельца 30.09: «всё, что не относится к сегодняшней версии
   и нынешнему ИИ — в помойку». Выкорчеваны мёртвые секции эпохи APK
   (приложение снято с раздачи 28.09, /download редиректит на /):
   - v12 §2: кнопки «Скачать» в шапке (.nb-hdr-dl / .nb-hdr-dl-m);
   - v12 §6: блок «Приложение» на главной (.nb-app*);
   - v12 §7: стили /download (приоритет Android, панель установки);
   - v12 §8: ссылка «Скачать приложение» на логине (.nb-approw*).
   Добавлена статическая маска §6-nb-legacy-hide (вместо JS-прачечной v7.0).
   ОСНОВА v10/v12 — «Красивый интерфейс» (исследование 27.09: Laws of UX,
   NN/g, Material, IxDF + живые референсы Gemini/Kimi/Linear/Stripe…).
   ПРИНЦИПЫ: один акцентный цвет дозированно (Von Restorff); крупный
   заголовок, воздух (IxDF); тач-таргеты ≥44px (Fitts); отклик ≤200ms;
   консистентные радиусы/тени карточек (NN/g).

   СОХРАНЕНО ДОСЛОВНО (не регрессировать!):
   - лого: буква N статична, кольцо-дуга вращается (nb-ring-orbit);
   - «треугольничек» хода мыслей (details.nb-think) + живой режим v12.
   ============================================================ */

/* ===== 0. ЛОГОТИП (v9, дословно) ===== */
svg:has(path[d^="M16 34"]) circle[r="2.5"] { display: none !important; }
svg .nerva-logo-ring { animation: none !important; }
svg:has(path[d^="M16 34"]) { animation: none !important; }
svg:has(path[d^="M16 34"]) path[d^="M24 3a21"] {
  display: inline !important;
  animation: nb-ring-orbit 3.2s linear infinite;
  transform-box: view-box;
  transform-origin: 50% 50%;
  will-change: transform;
}
@keyframes nb-ring-orbit { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  svg:has(path[d^="M16 34"]) path[d^="M24 3a21"] { animation: none !important; }
}

/* ===== 0.1 Ход мыслей (v4.2/v9, дословно) ===== */
details.nb-think { margin: 0 0 8px; border: 1px solid rgba(100,116,139,.28); border-radius: 10px; background: rgba(148,163,184,.12); overflow: hidden; }
details.nb-think summary { cursor: pointer; padding: 6px 11px; font-size: 12.5px; line-height: 1.35; color: #5b6b7c; list-style: none; user-select: none; font-weight: 500; }
details.nb-think summary::-webkit-details-marker { display: none; }
details.nb-think summary::before { content: "▸"; display: inline-block; margin-right: 7px; transition: transform .18s ease; }
details.nb-think[open] summary::before { transform: rotate(90deg); }
details.nb-think[open] summary { border-bottom: 1px solid rgba(100,116,139,.18); }
details.nb-think .nb-think-body { padding: 7px 12px 9px; }
details.nb-think .nb-think-body p { font-size: 12.5px; line-height: 1.5; color: #475569; margin: 0 0 5px; }
p.nb-think-divider { display: none !important; }
@media (prefers-color-scheme: dark) {
  details.nb-think { border-color: rgba(148,163,184,.20); background: rgba(13,20,18,.45); }
  details.nb-think summary { color: #8fa3b5; }
  details.nb-think .nb-think-body p { color: #93a6b8; }
}

/* ===== 1. БАЗА: типографика, скролл, выделение ===== */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
::selection { background: rgba(67,155,143,.25); }
h1, h2, h3 { letter-spacing: -0.02em; }
main h1 { font-size: clamp(2.1rem, 1.2rem + 3.4vw, 3.55rem); line-height: 1.08; }
main h2 { line-height: 1.15; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
:focus-visible { outline: 2px solid #439B8F; outline-offset: 2px; border-radius: 6px; }

/* ===== 2. КНОПКИ (единая система) ===== */
/* Главная бирюзовая CTA — глубже тон + мягкая тень + отклик */
a.bg-\[\#439B8F\], button.bg-\[\#439B8F\] {
  background-image: linear-gradient(180deg, #47A296 0%, #3E8F84 100%);
  box-shadow: 0 1px 2px rgba(14,116,105,.18), 0 8px 24px -8px rgba(67,155,143,.45);
  transition: transform .16s ease, box-shadow .16s ease, opacity .16s ease;
}
a.bg-\[\#439B8F\]:hover, button.bg-\[\#439B8F\]:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 4px rgba(14,116,105,.20), 0 14px 32px -10px rgba(67,155,143,.55);
}
a.bg-\[\#439B8F\]:active, button.bg-\[\#439B8F\]:active { transform: translateY(0); }

/* Контурные кнопки — явный ховер, тач ≥44px на мобиле */
a.border.border-border, button.border.border-border { transition: background .16s ease, border-color .16s ease, transform .16s ease; }
@media (hover: hover) { a.border.border-border:hover, button.border.border-border:hover { border-color: rgba(67,155,143,.55); background: rgba(67,155,143,.07); } }
@media (pointer: coarse) { a.border.border-border, button.border.border-border { min-height: 44px; } }

/* ===== 3. ШАПКА ===== */
header.sticky { box-shadow: 0 1px 0 rgba(15,23,42,.04), 0 8px 24px -18px rgba(15,23,42,.18); }
.dark header.sticky { box-shadow: 0 1px 0 rgba(255,255,255,.05), 0 8px 24px -18px rgba(0,0,0,.6); }
header nav a { position: relative; }
header nav a::after {
  content: ""; position: absolute; left: 0; right: 100%; bottom: -4px; height: 2px;
  background: #439B8F; border-radius: 2px; transition: right .18s ease; opacity: .85;
}
header nav a:hover::after { right: 0; }

/* ===== 4. КАРТОЧКИ (единый ховер-язык) ===== */
main .rounded-2xl.border, main .rounded-xl.border {
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
main .rounded-2xl.border:hover, main .rounded-xl.border:hover {
  transform: translateY(-2px);
  border-color: rgba(67,155,143,.4);
  box-shadow: 0 12px 32px -14px rgba(15,23,42,.18);
}
.dark main .rounded-2xl.border:hover, .dark main .rounded-xl.border:hover {
  border-color: rgba(94,234,212,.3);
  box-shadow: 0 12px 32px -14px rgba(0,0,0,.55);
}

/* ===== 5. ХИРО (главная) ===== */
main h1 .text-\[\#439B8F\] {
  background: linear-gradient(120deg, #439B8F 0%, #2E7D74 100%);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}

/* ===== 6. МАСКА ЛЕГАСИ (v13): приложение снято с раздачи — страховка ===== */
a[href="/download"], a[href^="/files/NERVA"], .nb-app, .nb-approw-wrap { display: none !important; }

/* ===== 7. МОБИЛЬНАЯ ЛОГИКА ===== */
@media (max-width: 767px) {
  main h1 { font-size: clamp(1.9rem, 1.1rem + 3.6vw, 2.6rem); }
}

/* ===== v12 (2026-09-28): reasoning-канон — живой «Думаю…» и «Ход мыслей · N сек» ===== */
details.nb-think summary { cursor: pointer; }
details.nb-think summary:focus-visible { outline: 2px solid rgba(14,124,107,.55); outline-offset: 2px; border-radius: 6px; }
details.nb-think.nb-think--live { border-color: rgba(14,124,107,.35); background: rgba(14,124,107,.05); }
details.nb-think.nb-think--live summary { color: #0E7C6B; font-weight: 500; }
details.nb-think .nb-live-dot { display: inline-block; width: 7px; height: 7px; margin-left: 7px; vertical-align: 1px; border-radius: 50%; background: #0E7C6B; animation: nbThinkPulse 1.1s ease-in-out infinite; }
@keyframes nbThinkPulse { 0%, 100% { opacity: .25; transform: scale(.75); } 50% { opacity: 1; transform: scale(1.25); } }
details.nb-think .nb-think-body p { font-style: italic; }
@media (prefers-reduced-motion: reduce) { details.nb-think .nb-live-dot { animation: none; } }

/* NERVA-H1-CENTER V1 (2026-10-02): приветствие по центру, баланс строк */
h1.tracking-tight{text-align:center;text-wrap:balance}

/* p61b mobile hero fix: утилита text-3xl (30px/36px) для статических лендингов */
@media (max-width: 767px){.text-3xl{font-size:1.875rem;line-height:2.25rem}}

/* ===== v15 (2026-10-09): фикс drawer по QA-находкам ===== */
/* 1) Крестик закрытия drawer — своя полоса 44px, не наезжает на «Новый диалог» */
.max-w-\[86vw\] > .absolute.top-4.right-4 {
  top: 6px; right: 6px; width: 32px; height: 32px;
  display: grid; place-items: center; border-radius: 8px; opacity: 1;
  transition: background .15s ease;
}
.max-w-\[86vw\] > .absolute.top-4.right-4:hover { background: rgba(127,127,127,.16); }
.max-w-\[86vw\] header.relative { min-height: 44px; align-content: center; }

/* 2) Чипсы-фильтры диалогов переносятся на 2-ю строку — «Закреплённые» всегда виден и кликается */
.flex.items-center.gap-1\.5.px-3.pb-2 { flex-wrap: wrap; row-gap: 6px; }
.flex.items-center.gap-1\.5.px-3.pb-2 > button { flex: 0 0 auto; white-space: nowrap; }

/* ===== v16 (2026-10-09, patch62): мобильный композер — 2 строки ===== */
/* Было: [скрепка][эмодзи][инпут 218px][отправить] в одну линию, items-end —
   иконки съезжали вниз-влево («иконки под инпутом»), инпут зажат.         */
@media (max-width: 767px) {
  /* !important: родное правило div.flex.items-end.gap-2:has(> div > #nerva-chat-textarea)
     {flex-wrap:nowrap; row-gap:0} на ≤639.5px несёт ID-специфичность — без !important
     оно перебивает классовый селектор ниже (проверено живьём 2026-10-09). */
  .nerva-chat-width div.relative.flex.gap-2.items-end:has(textarea) {
    flex-wrap: wrap !important;
    row-gap: 6px !important;
  }
  .nerva-chat-width div.relative.flex.gap-2.items-end:has(textarea) > div.flex-1 {
    order: -1 !important;
    flex: 1 1 100% !important;
    width: 100% !important;
  }
  /* строка 2: [скрепка][эмодзи] ---- [отправить] справа */
  .nerva-chat-width div.relative.flex.gap-2.items-end:has(textarea) > button {
    margin-left: auto !important;
    align-self: center !important;
  }
}

/* ============================================================
   ===== v17 (2026-10-14): ЗАОЧИСТКА ЛЕНДИНГА (без пересборки) =====
   Слой v14 в <head> страницы МЁРТВ: переносы строк вставлены как
   буквальные "\n", все его селекторы (n#faq и т.п.) невалидны.
   Этот слой — рабочая замена. Файл отдаётся с cache-control: no-cache,
   поэтому замена на сервере применяется сразу.
   ============================================================ */

/* 1. Якоря: не прятать цель под sticky-шапкой (h-16 = 64px + запас).
      Заодно страховка на случай прерывания smooth-скролла кликом. */
html { scroll-padding-top: 5.5rem; }
section[id] { scroll-margin-top: 5.5rem; }

/* 2. Свитчер языков (#langsw) ОСТАЁТСЯ: проверено живьём 14.10 —
      /en/ /kk/ /uz/ /ro/ отдают полноценные переводы (HTTP 200),
      это рабочая фича, а не декорация. Не трогаем. */

/* 3. Дубль CTA в шапке: nav-ссылка «Открыть» ведёт на тот же /chat,
      что и кнопка «Открыть чат». Оставляем кнопку, убираем дубль. */
header nav a[href="/chat"] { display: none; }

/* 4. Завершить задумку v13 §6: маска легаси не работала из-за битых
      селекторов (aref=...). Правильная форма: */
a[href="/download"], a[href^="/files/NERVA"] { display: none !important; }

/* 5. Оживить ненаследованные задумки мёртвого v14: */
details[open] { border-color: rgba(67,155,143,.5) !important; }
.text-3xl { font-variant-numeric: tabular-nums; }

/* КОНТРОЛЬ РЕГРЕССА: вращение кольца-дуги логотипа (nb-ring-orbit)
   СОХРАЕНО — владелец велел «не регрессировать». Ничего не трогаем. */
