/* Спецпроект «Тревоги нет» – стили компонентов, которых нет в UI-kit сайта.
   Только токены сайта: var(--color-*), var(--spacing), радиусы 20/16/12/8. */

.tn-focus :focus-visible,
.tn-promo :focus-visible {
  outline: 2px solid var(--color-primary-dark);
  outline-offset: 3px;
  border-radius: 16px;
}

/* ---------- Надзаголовок спецпроекта ---------- */
.tn-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: fit-content;
  padding: 6px 12px;
  border-radius: 12px;
  background: var(--color-white);
  color: var(--color-primary-dark);
  font-size: 14px;
  line-height: 18px;
  font-weight: 600;
}
.tn-eyebrow::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 9999px;
  background: var(--color-primary);
}

/* ---------- AnxietyPromo: анонс на главной ---------- */
.tn-promo__grid {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-areas: "text" "visual";
  gap: 24px;
}
.tn-promo__text { grid-area: text; }
.tn-promo__visual { grid-area: visual; }
@media (min-width: 64rem) {
  .tn-promo__grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 0.85fr);
    grid-template-areas: "text visual";
    column-gap: 48px;
    align-items: center;
  }
}
/* Вся карточка анонса ведет на главную проекта: область ссылки «Перейти на главную проекта» растянута на карточку,
   кнопки «Мне тревожно» / «Я переживаю за близкого» лежат поверх и ведут в свои разделы */
.tn-promo__card { position: relative; cursor: pointer; transition: background-color .2s; }
.tn-promo__card:hover { background: color-mix(in oklab, var(--color-base-05), var(--color-base-04) 45%); }
.tn-promo__link::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: 20px; }
.tn-promo__link:focus-visible { outline: none; }
.tn-promo__link:focus-visible::after { outline: 2px solid var(--color-primary-dark); outline-offset: 2px; }
.tn-promo__card .tn-path { position: relative; z-index: 2; }
.tn-title {
  font-weight: 600;
  letter-spacing: -0.02em;
  font-size: 40px;
  line-height: 44px;
}
@media (min-width: 48rem) { .tn-title { font-size: 56px; line-height: 60px; } }
@media (min-width: 80rem) { .tn-title { font-size: 72px; line-height: 76px; } }

.tn-wave-underline {
  display: block;
  width: 168px;
  height: 14px;
  color: var(--color-primary);
}

/* Сценарные CTA (AudienceSelector, компактный вариант) */
.tn-path {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 64px;
  padding: 12px 16px 12px 20px;
  border-radius: 16px;
  background: var(--color-white);
  color: var(--color-black-01);
  text-decoration: none;
  transition: background-color .15s, color .15s, box-shadow .15s;
  box-shadow: inset 0 0 0 1px var(--color-base-03);
}
.tn-path:hover { box-shadow: inset 0 0 0 1px var(--color-primary); }
.tn-path__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 12px;
  background: var(--color-base-05);
  color: var(--color-primary-dark);
  transition: background-color .15s, color .15s;
}
.tn-path:hover .tn-path__icon { background: var(--color-base-04); }
.tn-path--warm .tn-path__icon { background: var(--color-accent-03); color: var(--color-black-01); }

.tn-visual {
  position: relative;
  width: 100%;
  border-radius: 20px;
  overflow: hidden;
}
.tn-visual img { display: block; width: 100%; height: auto; }

.tn-stat {
  display: flex;
  align-items: center;
  gap: 12px 16px;
  margin: 0;
}
/* число – крупно, подпись – мелко и ровно на высоту числа */
.tn-stat__num { flex-shrink: 0; font-size: 56px; line-height: 1; font-weight: 600; letter-spacing: -0.02em; white-space: nowrap; }
.tn-stat__text { max-width: 260px; font-size: 14px; line-height: 18px; }
@media (min-width: 80rem) { .tn-stat__num { font-size: 72px; } .tn-stat__text { max-width: 280px; } }
@media (max-width: 47.99rem) { .tn-stat { flex-direction: column; align-items: flex-start; gap: 6px; } .tn-stat__text { max-width: 320px; } }

/* ---------- ProjectNavigation ---------- */
.tn-nav {
  display: flex;
  align-items: center;
  gap: 8px;
  overflow-x: auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  padding: 8px;
  border-radius: 20px;
  background: var(--color-base-05);
}
.tn-nav::-webkit-scrollbar { display: none; }
.tn-nav__brand {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
  padding: 0 12px 0 8px;
  color: var(--color-black-01);
  font-weight: 600;
  font-size: 16px;
  text-decoration: none;
  white-space: nowrap;
}
.tn-nav__link {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  min-height: 44px;
  padding: 0 16px;
  border-radius: 12px;
  color: var(--color-black-01);
  font-size: 16px;
  line-height: 1.26;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color .15s, color .15s;
}
.tn-nav__link:hover { background: var(--color-white); }
.tn-nav__link[aria-current="page"] { background: var(--color-primary); color: var(--color-white); }

/* ---------- Карточки материалов ---------- */
.tn-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 8px;
  border-radius: 20px;
  background: var(--color-white-02);
  color: var(--color-black-01);
  text-decoration: none;
  transition: background-color .2s;
}
.tn-card--on-tint { background: var(--color-white); }
.tn-card__cover {
  aspect-ratio: 16 / 9;
  position: relative;
  border-radius: 16px;
  overflow: hidden;
}
.tn-card__cover img { display: block; width: 100%; height: 100%; object-fit: cover; }
.tn-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 8px;
  padding: 16px 12px 12px;
}
.tn-card__title { transition: color .15s; }
.tn-card__lead {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.tn-tag {
  display: inline-flex;
  align-items: center;
  padding: 4px 8px;
  border-radius: 8px;
  font-size: 14px;
  line-height: 18px;
  white-space: nowrap;
}
.tn-tag--self { background: var(--color-base-05); color: var(--color-primary-dark); }
.tn-tag--close { background: var(--color-accent-03); color: var(--color-black-01); }
.tn-tag--doctor { background: var(--color-base-01); color: var(--color-white); }
.tn-tag--practice { background: var(--color-white); color: var(--color-black-01); box-shadow: inset 0 0 0 1px var(--color-base-03); }
.tn-tag--story { background: var(--color-black-01); color: var(--color-white); }
.tn-tag--neutral { background: var(--color-white); color: var(--color-black-03); }
.tn-card--on-tint .tn-tag--neutral,
.tn-card--on-tint .tn-tag--practice { background: var(--color-white-02); }

/* Карточка темы «Начните отсюда» */
.tn-topic {
  display: flex;
  flex-direction: column;
  gap: 12px;
  height: 100%;
  padding: 24px;
  border-radius: 20px;
  background: var(--color-white);
  color: var(--color-black-01);
  text-decoration: none;
  box-shadow: inset 0 0 0 1px transparent;
  transition: box-shadow .15s;
}
.tn-topic:hover { box-shadow: inset 0 0 0 1px var(--color-primary); }
.tn-topic { position: relative; overflow: hidden; isolation: isolate; }
.tn-topic > :not(.tn-topic__num) { position: relative; z-index: 1; }
/* Номер карточки – крупная цифра-подложка, не иконка */
.tn-topic__num {
  position: absolute;
  right: 20px;
  bottom: 12px;
  z-index: 0;
  font-weight: 600;
  font-size: 128px;
  line-height: .8;
  letter-spacing: -0.04em;
  color: var(--color-base-04);
  pointer-events: none;
  user-select: none;
  transition: color .15s;
}
@media (min-width: 80rem) { .tn-topic__num { font-size: 140px; bottom: 16px; right: 24px; } }
a.tn-topic:hover .tn-topic__num { color: var(--color-base-03); }
.tn-topic h3 { padding-right: 56px; }
.tn-topic .body-sr { max-width: 72%; }
.tn-topic { min-height: 200px; }
.tn-topic__go { margin-top: auto; display: inline-flex; align-items: center; gap: 8px; color: var(--color-primary-dark); font-weight: 600; }

/* AudienceSelector – крупные сценарные блоки */
.tn-audience {
  display: flex;
  flex-direction: column;
  gap: 16px;
  height: 100%;
  padding: 24px;
  border-radius: 20px;
  color: var(--color-black-01);
  text-decoration: none;
}
@media (min-width: 80rem) { .tn-audience { padding: 32px; } }
.tn-audience--self { background: var(--color-base-04); }
.tn-audience--white { background: var(--color-white); }
.tn-audience--white .tn-path__icon { background: var(--color-base-05); }
.tn-audience--close { background: var(--color-accent-03); }
.tn-audience__cta {
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 52px;
  padding: 0 24px;
  border-radius: 16px;
  width: fit-content;
  background: var(--color-white);
  color: var(--color-black-01);
  font-weight: 600;
  transition: background-color .15s, color .15s;
}
.tn-audience:hover .tn-audience__cta { background: var(--color-primary); color: var(--color-white); }
@media (max-width: 39.99rem) { .tn-audience__cta { width: 100%; } }

/* ---------- Инфоблоки ---------- */
.tn-crisis {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 24px;
  border-radius: 20px;
  background: var(--color-accent-03);
}
.tn-crisis > div { flex: 1; min-width: 0; }
@media (min-width: 48rem) { .tn-crisis { flex-direction: row; gap: 20px; padding: 28px 32px; } }
.tn-crisis__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: var(--color-white);
  color: var(--color-black-01);
}
.tn-phone { color: var(--color-black-01); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.tn-phone:hover { color: var(--color-primary-dark); }

.tn-disclaimer {
  display: flex;
  gap: 12px;
  padding: 16px 20px;
  border-radius: 16px;
  background: var(--color-white-02);
  color: var(--color-black-03);
  font-size: 14px;
  line-height: 20px;
}

.tn-link { color: var(--color-primary-dark); text-decoration: underline; text-underline-offset: 3px; }
.tn-link:hover { color: var(--color-black-01); }

/* Таблица «помогает / ухудшает» */
.tn-phrases { display: grid; grid-template-columns: 1fr; gap: 16px; }
@media (min-width: 48rem) { .tn-phrases { grid-template-columns: 1fr 1fr; } }
.tn-phrases__col { display: flex; flex-direction: column; gap: 12px; padding: 24px; border-radius: 20px; background: var(--color-white); }
.tn-phrases__list { display: flex; flex-direction: column; gap: 10px; }
.tn-phrases__list li { display: flex; gap: 10px; align-items: flex-start; }
.tn-mark { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 20px; height: 20px; margin-top: 1px; border-radius: 9999px; }
.tn-mark--yes { background: var(--color-primary); color: var(--color-white); }
.tn-mark--no { background: var(--color-black-04); color: var(--color-black-02); }

/* Карта шагов */
.tn-steps { display: grid; grid-template-columns: 1fr; gap: 8px; counter-reset: tnstep; }
@media (min-width: 48rem) { .tn-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; } }
@media (min-width: 80rem) { .tn-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; } }
.tn-step { display: flex; flex-direction: column; gap: 10px; padding: 24px; border-radius: 20px; background: var(--color-white); }
.tn-step::before {
  counter-increment: tnstep;
  content: counter(tnstep);
  display: inline-flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; border-radius: 12px;
  background: var(--color-base-05); color: var(--color-primary-dark); font-weight: 600;
}

/* FAQ / Вопрос врачу на <details> (работает без JS) */
.tn-faq { display: flex; flex-direction: column; gap: 8px; }
.tn-faq details { border-radius: 20px; background: var(--color-white); }
.tn-faq summary {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  min-height: 64px; padding: 16px 24px; cursor: pointer; list-style: none;
  font-weight: 600; font-size: 18px; line-height: 1.3;
}
.tn-faq summary::-webkit-details-marker { display: none; }
.tn-faq summary::after {
  content: ""; flex-shrink: 0; width: 12px; height: 12px;
  border-right: 2px solid var(--color-primary); border-bottom: 2px solid var(--color-primary);
  transform: rotate(45deg) translateY(-3px); transition: transform .2s;
}
.tn-faq details[open] summary::after { transform: rotate(-135deg) translateY(-3px); }
.tn-faq__answer { display: flex; flex-direction: column; gap: 12px; padding: 0 24px 24px; }

/* ---------- Статья ---------- */
.tn-article { max-width: 760px; }
.tn-article .prose { max-width: 760px; }
.tn-lead { font-size: 20px; line-height: 30px; color: var(--color-black-02); }
@media (min-width: 80rem) { .tn-lead { font-size: 22px; line-height: 32px; } }
.tn-byline { display: grid; grid-template-columns: 1fr; gap: 8px; }
@media (min-width: 48rem) { .tn-byline { grid-template-columns: 1fr 1fr; } }
.tn-person { display: flex; gap: 12px; align-items: center; padding: 16px; border-radius: 16px; background: var(--color-white); }
.tn-avatar {
  display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
  width: 48px; height: 48px; border-radius: 16px; background: var(--color-base-05); color: var(--color-primary-dark); font-weight: 600;
}
.tn-verified { display: inline-flex; width: fit-content; padding: 2px 8px; border-radius: 8px; background: var(--color-base-05); color: var(--color-primary-dark); font-size: 13px; line-height: 18px; }
.tn-pending { display: inline-flex; width: fit-content; padding: 2px 8px; border-radius: 8px; background: var(--color-accent-03); color: var(--color-black-01); font-size: 13px; line-height: 18px; }
.tn-sources { display: flex; flex-direction: column; gap: 10px; padding-left: 20px; list-style: decimal; color: var(--color-black-03); font-size: 14px; line-height: 20px; }
.prose .tn-accent { font-weight: 600; color: var(--color-black-01); }
.tn-toc a { text-decoration: none; }

/* ---------- GAD-7 ---------- */
.tn-q { border: 0; margin: 0; padding: 24px; border-radius: 20px; background: var(--color-white); }
.tn-q legend { float: left; width: 100%; padding: 0; margin-bottom: 16px; }
.tn-options { clear: both; display: grid; grid-template-columns: 1fr; gap: 8px; }
@media (min-width: 48rem) { .tn-options { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 80rem) { .tn-options { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.tn-option { position: relative; display: block; }
.tn-option input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.tn-option > span {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  min-height: 52px; padding: 12px 16px; border-radius: 16px; cursor: pointer;
  background: var(--color-white-02); color: var(--color-black-01);
  box-shadow: inset 0 0 0 1px transparent; transition: background-color .15s, box-shadow .15s, color .15s;
}
.tn-option .tn-pts { font-size: 14px; color: var(--color-black-03); }
.tn-option:hover > span { box-shadow: inset 0 0 0 1px var(--color-primary); }
.tn-option input:checked + span { background: var(--color-primary); color: var(--color-white); }
.tn-option input:checked + span .tn-pts { color: var(--color-white); }
.tn-option input:focus-visible + span { outline: 2px solid var(--color-primary-dark); outline-offset: 3px; }
.tn-progress { height: 8px; border-radius: 9999px; background: var(--color-base-05); overflow: hidden; }
.tn-progress__bar { height: 100%; width: 0; border-radius: 9999px; background: var(--color-primary); transition: width .2s; }
.tn-scale { display: grid; grid-template-columns: 1fr; gap: 8px; }
@media (min-width: 48rem) { .tn-scale { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.tn-scale__item { display: flex; flex-direction: column; gap: 4px; padding: 16px; border-radius: 16px; background: var(--color-white); box-shadow: inset 0 0 0 2px transparent; }
.tn-scale__item.is-active { box-shadow: inset 0 0 0 2px var(--color-primary); }
.tn-result[hidden] { display: none; }

/* Фильтры листинга */
.tn-chip {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border-radius: 12px;
  background: var(--color-white); color: var(--color-black-01); cursor: pointer; border: 0;
  font: inherit; font-size: 16px; box-shadow: inset 0 0 0 1px var(--color-base-03); transition: background-color .15s, color .15s;
}
.tn-chip:hover { box-shadow: inset 0 0 0 1px var(--color-primary); }
.tn-chip[aria-pressed="true"] { background: var(--color-primary); color: var(--color-white); box-shadow: none; }
.tn-empty[hidden], .tn-item[hidden] { display: none; }

.tn-soon { opacity: .72; }
.tn-arrow { width: 20px; height: 20px; flex-shrink: 0; }

/* Утилиты, которых нет в сборке сайта (в формате Tailwind) */
@layer utilities {
  .self-center { align-self: center; }
  .content-start { align-content: flex-start; }
  .max-w-\[960px\] { max-width: 960px; }
  .max-w-\[1000px\] { max-width: 1000px; }
  @media (min-width: 40rem) { .sm\:self-start { align-self: flex-start; } }
  @media (min-width: 80rem) { .xl\:max-w-\[640px\] { max-width: 640px; } }
}

/* AudienceSelector в hero: белая карточка – кнопка на мятном фоне */
.tn-audience--white .tn-audience__cta { background: var(--color-base-05); }
.tn-audience--compact { gap: 10px; padding: 20px 24px; }
@media (min-width: 80rem) { .tn-audience--compact { padding: 24px 28px; } }
.tn-audience--compact .tn-path__icon { width: 36px; height: 36px; }
.tn-audience--compact .tn-audience__cta { min-height: 48px; margin-top: 6px; }

/* AnxietyHero: на мобильном сценарии сразу после заголовка, описание – ниже */
.tn-hero-grid { display: grid; grid-template-columns: 1fr; grid-template-areas: "title" "paths" "text"; gap: 20px; }
.tn-hero-grid__title { grid-area: title; }
.tn-hero-grid__paths { grid-area: paths; }
.tn-hero-grid__text { grid-area: text; }
@media (min-width: 64rem) {
  .tn-hero-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "title paths" "text paths"; grid-template-rows: auto 1fr; column-gap: 48px; row-gap: 20px; align-items: start; }
  .tn-hero-grid__paths { align-self: center; }
}

/* Карточки неопубликованных материалов – без ссылки и hover */
.tn-card--static:hover .tn-card__title { color: inherit; }
.tn-topic--static:hover { box-shadow: inset 0 0 0 1px transparent; }

/* ---------- Статья: шапка, данные, автор/эксперт, оглавление справа ---------- */
.tn-article-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas: "head" "toc" "body";
  gap: 24px;
}
.tn-article-head { grid-area: head; max-width: 760px; }
.tn-article-toc { grid-area: toc; }
.tn-article-body { grid-area: body; max-width: 760px; min-width: 0; }
@media (min-width: 64rem) {
  .tn-article-grid {
    grid-template-columns: minmax(0, 760px) minmax(280px, 340px);
    grid-template-areas: "head toc" "body toc";
    grid-template-rows: auto 1fr;
    justify-content: start;   /* «Содержание» стоит рядом со статьей, без разрыва до края контейнера */
    column-gap: 40px;
    row-gap: 32px;
  }
  /* автор и эксперт уходят вверх вместе со страницей, «Содержание» и тревожная кнопка закреплены */
  .tn-article-toc { align-self: stretch; }
  .tn-article-toc__sticky { position: sticky; top: 160px; }
}
.tn-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; color: var(--color-black-03); font-size: 14px; line-height: 18px; }
.tn-meta li { display: inline-flex; align-items: center; gap: 6px; }
.tn-meta svg { flex-shrink: 0; }
.tn-meta .tn-flame { fill: #FFCE2E; }
.tn-authors { display: flex; flex-direction: column; gap: 8px; padding: 8px; border-radius: 20px; background: var(--color-white-02); }

/* Оценка «огонек» */
.tn-rate {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px;
  padding: 24px; border-radius: 20px; background: var(--color-white-02);
}
.tn-fire {
  display: inline-flex; align-items: center; gap: 10px; min-height: 52px; padding: 0 22px;
  border: 0; border-radius: 16px; background: var(--color-white); color: var(--color-black-01);
  font: inherit; font-weight: 600; font-size: 18px; cursor: pointer;
  box-shadow: inset 0 0 0 1px var(--color-black-04); transition: box-shadow .15s, transform .15s;
}
.tn-fire .tn-flame { width: 26px; height: 26px; fill: var(--color-black-04); transition: fill .15s, transform .2s; }
.tn-fire:hover { box-shadow: inset 0 0 0 1px #FFCE2E; }
.tn-fire:hover .tn-flame { fill: #FFCE2E; }
.tn-fire[aria-pressed="true"] { box-shadow: inset 0 0 0 2px #FFCE2E; }
.tn-fire[aria-pressed="true"] .tn-flame { fill: #FFCE2E; transform: scale(1.12); }
.tn-fire:focus-visible { outline: 2px solid var(--color-primary-dark); outline-offset: 3px; }

/* Шкала в ScreeningCard – квадрат 2×2 */
.tn-scale--square { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 48rem) { .tn-scale--square { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.tn-scale--square .tn-scale__item { padding: 20px; }

/* Шаги «Карта действий»: по одному в ряд, номер – крупная цифра-подложка как в «Начните отсюда» */
.tn-topic--row { min-height: 152px; padding-right: 140px; }
.tn-topic--row .body-sr { max-width: none; }
.tn-topic--row h3 { padding-right: 0; }
@media (min-width: 80rem) { .tn-topic--row { padding-right: 180px; } }

/* ---------- Каталог «Разобраться»: фильтры слева (липкие), карточки справа ---------- */
.tn-catalog { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; }
@media (min-width: 64rem) {
  .tn-catalog { grid-template-columns: 280px minmax(0, 1fr); gap: 32px; align-items: start; }
  .tn-catalog__filters { position: sticky; top: 172px; }
}
@media (min-width: 80rem) { .tn-catalog { grid-template-columns: 300px minmax(0, 1fr); gap: 40px; } }
.tn-catalog__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
@media (min-width: 48rem) { .tn-catalog__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; } }
@media (min-width: 96rem) { .tn-catalog__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; } }

.tn-filters { display: flex; flex-direction: column; gap: 20px; padding: 24px; border-radius: 20px; background: var(--color-white-02); }
.tn-field { display: flex; flex-direction: column; gap: 8px; border: 0; margin: 0; padding: 0; min-width: 0; }
.tn-field legend { margin-bottom: 8px; padding: 0; }
.tn-select { position: relative; display: block; }
.tn-select select {
  width: 100%; height: 48px; padding: 0 44px 0 16px; border-radius: 16px; border: 0;
  background: var(--color-white); color: var(--color-black-01); font-size: 16px; line-height: 1.26;
  appearance: none; -webkit-appearance: none; cursor: pointer;
  box-shadow: inset 0 0 0 1px transparent; transition: box-shadow .15s;
}
.tn-select select:hover { box-shadow: inset 0 0 0 1px var(--color-primary); }
.tn-select select:focus-visible { outline: 2px solid var(--color-primary-dark); outline-offset: 2px; }
.tn-select::after {
  content: ""; position: absolute; right: 18px; top: 50%; width: 7px; height: 12px;
  background: url(../app/themes/sage/public/build/assets/filter-arrow-BVcMOS9Y.svg) center / contain no-repeat;
  transform: translateY(-50%) rotate(90deg); pointer-events: none;
}
.tn-check { position: relative; display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 0 12px; border-radius: 12px; background: var(--color-white); cursor: pointer; }
.tn-check:hover { box-shadow: inset 0 0 0 1px var(--color-primary); }
.tn-check__box {
  display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 20px; height: 20px;
  border-radius: 4px; border: 2px solid var(--color-primary); background: var(--color-white); color: transparent; transition: background-color .15s, color .15s;
}
.tn-check input:checked + .tn-check__box { background: var(--color-primary); color: var(--color-white); }
.tn-check input:focus-visible + .tn-check__box { outline: 2px solid var(--color-primary-dark); outline-offset: 2px; }
.tn-check__count { margin-left: auto; }

/* ---------- Поиск: кнопка-лупа, полноэкранный попап, страница результатов ---------- */
.tn-icon-btn {
  display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px;
  border: 0; border-radius: 12px; background: var(--color-white); color: var(--color-primary-dark); cursor: pointer;
  transition: background-color .15s, color .15s;
}
.tn-icon-btn:hover { background: var(--color-primary); color: var(--color-white); }
.tn-icon-btn:focus-visible { outline: 2px solid var(--color-primary-dark); outline-offset: 2px; }

.tn-search {
  position: fixed; inset: 0; z-index: 60; display: none; align-items: center;
  width: 100%; height: 100%; max-width: none; max-height: none; margin: 0; padding: 0; border: 0;
  background: rgba(27, 27, 27, .92); color: var(--color-white);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  animation: tn-fade .18s ease-out;
}
.tn-search[open] { display: flex; }
.tn-search::backdrop { background: transparent; }
@keyframes tn-fade { from { opacity: 0; } to { opacity: 1; } }
.tn-search__inner { display: flex; flex-direction: column; gap: 40px; width: 100%; }
@media (min-width: 64rem) { .tn-search__inner { gap: 56px; } }
.tn-search__title { font-weight: 600; font-size: 32px; line-height: 1.1; letter-spacing: -0.02em; color: var(--color-white); }
@media (min-width: 48rem) { .tn-search__title { font-size: 44px; } }
@media (min-width: 80rem) { .tn-search__title { font-size: 56px; } }
.tn-search__close {
  display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 56px; height: 56px;
  border: 0; border-radius: 16px; background: transparent; color: var(--color-white); cursor: pointer; transition: background-color .15s;
}
.tn-search__close:hover { background: rgba(255, 255, 255, .1); }
.tn-search__close:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 4px; }
.tn-search__input:focus-visible { outline: none; }
.tn-search__form { display: flex; flex-direction: column; align-items: flex-start; gap: 32px; }
.tn-search__input {
  width: 100%; height: 64px; padding: 0 4px; border: 0; border-bottom: 2px solid rgba(255, 255, 255, .85); border-radius: 0;
  background: transparent; color: var(--color-white); font-size: 22px; line-height: 1.3; outline: none;
}
@media (min-width: 80rem) { .tn-search__input { font-size: 28px; height: 76px; } }
.tn-search__input::placeholder { color: rgba(255, 255, 255, .55); }
.tn-search__input:focus { border-bottom-color: var(--color-primary); box-shadow: 0 1px 0 0 var(--color-primary); }
.tn-search__submit { min-width: 176px; }
html.tn-lock, html.tn-lock body { overflow: hidden; }

.tn-search-page__form { display: flex; flex-direction: column; gap: 12px; }
@media (min-width: 48rem) { .tn-search-page__form { flex-direction: row; } }
.tn-search-page__input {
  flex: 1; height: 52px; padding: 0 24px; border-radius: 16px; border: 1px solid var(--color-black-04);
  background: var(--color-white); color: var(--color-black-01); font-size: 18px; outline: none; transition: border-color .15s, box-shadow .15s;
}
.tn-search-page__input:focus { border-color: var(--color-primary); box-shadow: 0 0 0 3px rgba(45, 181, 190, .2); }
.tn-results { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
@media (min-width: 64rem) { .tn-results { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; } }
.tn-result-card {
  display: flex; flex-direction: column; gap: 10px; height: 100%; padding: 24px; border-radius: 20px;
  border: 1px solid var(--color-black-04); background: var(--color-white); color: var(--color-black-01); text-decoration: none;
  transition: background-color .15s, border-color .15s;
}
a.tn-result-card:hover { background: var(--color-white-02); border-color: var(--color-base-03); }
.tn-result-card__title { font-size: 20px; line-height: 1.3; font-weight: 400; }
@media (min-width: 80rem) { .tn-result-card__title { font-size: 22px; } }
.tn-result-card__lead { color: var(--color-black-03); font-size: 16px; line-height: 24px; }
.tn-result-card__path { margin-top: auto; color: var(--color-primary-dark); font-size: 15px; line-height: 20px; }
.tn-hl { font-weight: 600; color: var(--color-black-01); }
.tn-result-card__soon { color: var(--color-black-03); }

/* ---------- «Вопрос врачу»: врач + фильтры слева, вопросы-карточки справа ---------- */
.tn-doctor { display: flex; flex-direction: column; gap: 14px; padding: 24px; border-radius: 20px; background: var(--color-base-05); }
.tn-doctor__photo {
  display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 72px; height: 72px;
  border-radius: 16px; background: var(--color-white); color: var(--color-primary-dark);
}
.tn-doctor__photo svg { width: 32px; height: 32px; }
.tn-text-input {
  width: 100%; height: 48px; padding: 0 16px; border: 0; border-radius: 16px; background: var(--color-white);
  color: var(--color-black-01); font-size: 16px; outline: none; box-shadow: inset 0 0 0 1px transparent; transition: box-shadow .15s;
}
.tn-text-input:hover { box-shadow: inset 0 0 0 1px var(--color-primary); }
.tn-text-input:focus-visible { outline: 2px solid var(--color-primary-dark); outline-offset: 2px; }
.tn-qa { border-radius: 20px; border: 1px solid var(--color-black-04); background: var(--color-white); transition: border-color .15s, background-color .15s; }
.tn-qa:hover { border-color: var(--color-base-03); }
.tn-qa[open] { background: var(--color-white-02); border-color: var(--color-base-03); }
.tn-qa summary {
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  padding: 20px 24px; cursor: pointer; list-style: none;
}
@media (min-width: 80rem) { .tn-qa summary { padding: 24px 28px; } }
.tn-qa summary::-webkit-details-marker { display: none; }
.tn-qa summary::after {
  content: ""; flex-shrink: 0; width: 12px; height: 12px;
  border-right: 2px solid var(--color-primary); border-bottom: 2px solid var(--color-primary);
  transform: rotate(45deg) translateY(-3px); transition: transform .2s;
}
.tn-qa[open] summary::after { transform: rotate(-135deg) translateY(-3px); }
.tn-qa summary:focus-visible { outline: 2px solid var(--color-primary-dark); outline-offset: 2px; border-radius: 20px; }
.tn-qa__answer { display: flex; flex-direction: column; gap: 12px; padding: 0 24px 24px; max-width: 820px; }
@media (min-width: 80rem) { .tn-qa__answer { padding: 0 28px 28px; } }

/* Розовый вариант надзаголовка (тег теста в ScreeningCard) */
.tn-eyebrow--pink { background: var(--color-accent-03); color: var(--color-black-01); }
.tn-eyebrow--pink::before { background: var(--color-white); }

/* ScreeningCard – акцентный блок теста (не должен теряться среди светлых блоков) */
.tn-screening { position: relative; overflow: hidden; padding: 24px; border-radius: 20px; background: var(--color-primary-dark); }
.tn-screening .body-mr, .tn-screening .body-sr { font-weight: 500; }
@media (min-width: 48rem) { .tn-screening { padding: 32px; } }
@media (min-width: 80rem) { .tn-screening { padding: 48px; } }
.tn-screening::after {
  content: ""; position: absolute; right: -80px; top: -80px; width: 260px; height: 260px; border-radius: 9999px;
  background: rgba(255, 255, 255, .12); pointer-events: none;
}
.tn-screening > * { position: relative; z-index: 1; }
.tn-screening .tn-scale__item { background: var(--color-white); }
.tn-screening__cta {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 52px; padding: 0 28px;
  border-radius: 16px; background: var(--color-white); color: var(--color-black-01); font-weight: 600; font-size: 16px;
  text-decoration: none; transition: background-color .15s, color .15s;
}
.tn-screening__cta:hover { background: var(--color-black-01); color: var(--color-white); }
.tn-screening__cta:focus-visible { outline: 2px solid var(--color-black-01); outline-offset: 3px; }

/* ---------- Карточки материалов: единый набор атрибутов ---------- */
/* Хлебные крошки рубрики – как breadcrumbs сайта: серые звенья, разделитель «/», последнее звено темное */
.tn-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 6px; font-size: 13px; line-height: 18px; color: var(--color-black-03); }
.tn-crumbs > span:last-child { color: var(--color-black-01); }
.tn-crumbs__sep { color: var(--color-black-04); }
/* Врач: круглый аватар + должность */
.tn-doc { display: flex; align-items: center; gap: 10px; }
.tn-doc__ava {
  display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 36px; height: 36px;
  border-radius: 9999px; background: var(--color-base-05); color: var(--color-primary-dark); box-shadow: 0 0 0 2px var(--color-white);
}
.tn-doc__ava svg { width: 18px; height: 18px; }
.tn-doc__ava { overflow: hidden; }
.tn-doc__ava img { display: block; width: 100%; height: 100%; object-fit: cover; }
.tn-doc__text { display: flex; flex-direction: column; }
.tn-doc__role { font-size: 14px; line-height: 18px; font-weight: 600; color: var(--color-black-01); }
.tn-doc__note { font-size: 13px; line-height: 16px; color: var(--color-black-03); }
.tn-stats { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; font-size: 13px; line-height: 18px; color: var(--color-black-03); }
.tn-stats > span { display: inline-flex; align-items: center; gap: 5px; }
.tn-stats svg { width: 16px; height: 16px; flex-shrink: 0; }
.tn-stats .tn-flame { fill: #FFCE2E; }
/* Тип 2 – компактная карточка без обложки (результаты поиска) */
.tn-card--compact { border: 1px solid var(--color-black-04); background: var(--color-white); }
.tn-card--compact .tn-card__body { padding: 20px 20px 18px; }
a.tn-card--compact:hover { background: var(--color-white-02); border-color: var(--color-base-03); }

/* «Вопрос врачу»: summary без обертки – сетка: крошки, вопрос, стрелка справа */
.tn-qa summary { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "crumbs arrow" "title arrow"; row-gap: 8px; }
.tn-qa summary .tn-crumbs { grid-area: crumbs; }
.tn-qa summary > h2, .tn-qa summary > h3 { grid-area: title; }
.tn-qa summary::after { grid-area: arrow; align-self: center; }
.tn-qa__answer { gap: 16px; }

/* Ссылки в хлебных крошках страниц проекта отличаются от текста: подчеркивание */
nav[aria-label="Хлебные крошки"] a { text-decoration: underline !important; text-decoration-color: var(--color-black-04); text-underline-offset: 3px; }
nav[aria-label="Хлебные крошки"] a:hover { text-decoration-color: currentColor; }
.tn-empty { border-radius: 20px; background: var(--color-white-02); padding: 24px; color: var(--color-black-03); font-size: 16px; line-height: 24px; }

/* CLS: место под результаты поиска резервируется до отрисовки скриптом */
.tn-results { min-height: 60vh; align-content: start; }

/* ---------- «Вопрос врачу»: фото над должностью, сервисная строка, имитация вопроса ---------- */
.tn-doctor__photo {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px;
  width: 100%; height: auto; aspect-ratio: 4 / 3; border-radius: 16px; background: var(--color-white);
  color: var(--color-primary-dark); font-size: 13px;
}
.tn-doctor__photo svg { width: 40px; height: 40px; }
.tn-doctor__photo span { color: var(--color-black-03); }

.tn-servicebar {
  display: flex; flex-wrap: nowrap; align-items: center; gap: 8px; padding: 6px; border-radius: 16px; background: var(--color-white-02);
}
.tn-servicebar__select { flex: 0 1 220px; min-width: 0; }
.tn-servicebar .tn-select select { height: 44px; border-radius: 12px; padding-left: 14px; font-size: 15px; }
.tn-servicebar__reset { flex-shrink: 0; padding: 0 8px; white-space: nowrap; }
.tn-servicebar__search-btn { flex-shrink: 0; margin-left: auto; }

.tn-ask {
  width: min(560px, calc(100% - 32px)); max-height: calc(100% - 32px); margin: auto; padding: 0; border: 0;
  border-radius: 20px; background: var(--color-white); color: var(--color-black-01);
  box-shadow: 0 18px 40px rgba(27, 27, 27, .16);
}
.tn-ask::backdrop { background: rgba(27, 27, 27, .6); }
.tn-ask__box { display: flex; flex-direction: column; gap: 20px; padding: 24px; }
@media (min-width: 48rem) { .tn-ask__box { padding: 32px; } }
.tn-ask__close { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 44px; height: 44px; border: 0; border-radius: 12px; background: var(--color-white-02); color: var(--color-black-01); cursor: pointer; }
.tn-ask__close svg { width: 20px; height: 20px; }
.tn-ask__close:hover { background: var(--color-base-05); }
.tn-auth {
  display: flex; align-items: center; gap: 12px; width: 100%; min-height: 52px; padding: 0 16px; border: 0; border-radius: 16px;
  font: inherit; font-size: 16px; font-weight: 600; cursor: pointer; transition: filter .15s;
}
.tn-auth:hover { filter: brightness(.95); }
.tn-auth:focus-visible { outline: 2px solid var(--color-primary-dark); outline-offset: 2px; }
.tn-auth__logo { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 9999px; font-size: 14px; font-weight: 700; }
.tn-auth--yandex { background: #f2f2f2; color: var(--color-black-01); }
.tn-auth--yandex .tn-auth__logo { background: #fc3f1d; color: #fff; }
.tn-auth--vk { background: #0077ff; color: #fff; }
.tn-auth--vk .tn-auth__logo { background: #fff; color: #0077ff; }
.tn-auth--max { background: #1b1b1b; color: #fff; }
.tn-auth--max .tn-auth__logo { background: linear-gradient(135deg, #5b5cff, #b44cff); color: #fff; }
.tn-ask__loading { display: flex; align-items: center; gap: 12px; min-height: 120px; }
.tn-spinner { width: 28px; height: 28px; border-radius: 9999px; border: 3px solid var(--color-base-05); border-top-color: var(--color-primary); animation: tn-spin .8s linear infinite; }
@keyframes tn-spin { to { transform: rotate(360deg); } }
.tn-ask__user { display: flex; align-items: center; gap: 12px; padding: 12px; border-radius: 16px; background: var(--color-white-02); }
.tn-ask__user .tn-link { margin-left: auto; }
.tn-text-input--bordered, .tn-textarea { box-shadow: inset 0 0 0 1px var(--color-black-04); background: var(--color-white); }
.tn-textarea { width: 100%; padding: 12px 16px; border: 0; border-radius: 16px; font: inherit; font-size: 16px; line-height: 24px; resize: vertical; outline: none; }
.tn-textarea:focus-visible, .tn-text-input--bordered:focus-visible { outline: 2px solid var(--color-primary-dark); outline-offset: 2px; }
.tn-select--bordered select { box-shadow: inset 0 0 0 1px var(--color-black-04); }
.tn-check--plain { background: transparent; padding: 0; min-height: 0; align-items: flex-start; }
.tn-check--plain:hover { box-shadow: none; }
.tn-check--plain .tn-check__box { margin-top: 2px; }

/* Логотип проекта – петля рядом с названием «Тревоги нет» */
.tn-logo { display: block; flex-shrink: 0; height: auto; color: var(--color-primary-dark); }
.tn-brand-title { display: flex; flex-wrap: nowrap; align-items: center; gap: .25em; }
.tn-brand-title .tn-logo { width: 1.45em; }
.tn-brand-title > span { min-width: 0; }
.tn-logo--nav { width: 30px; color: var(--color-primary-dark); }

/* Дежурный врач: все по центру, круглый аватар */
.tn-doctor { align-items: center; text-align: center; }
.tn-doctor__ava {
  display: inline-flex; align-items: center; justify-content: center; width: 96px; height: 96px; flex-shrink: 0;
  border-radius: 9999px; background: var(--color-white); color: var(--color-primary-dark); box-shadow: 0 0 0 4px var(--color-white), 0 0 0 5px var(--color-base-03);
}
.tn-doctor__ava svg { width: 36px; height: 36px; }

/* Меню проекта в шапке сайта: «Клиника» + пункты «Тревоги нет» (вместо меню клиники) */
.tn-nav--header { padding: 8px; border-radius: 16px; background: var(--color-white-02); gap: 4px; }
.tn-nav__clinic {
  display: inline-flex; align-items: center; gap: 8px; flex-shrink: 0; min-height: 44px; padding: 0 20px; margin-right: 8px;
  border-radius: 12px; background: var(--color-primary); color: var(--color-white); font-size: 16px; font-weight: 600;
  text-decoration: none; white-space: nowrap; transition: background-color .15s;
}
.tn-nav__clinic:hover { background: var(--color-primary-dark); }
.tn-nav--header .tn-nav__link:hover { background: var(--color-white); }

/* Факты о тесте в ScreeningCard */
.tn-facts { list-style: none; margin: 0; padding: 0; }
.tn-facts .tn-scale__item { gap: 6px; padding: 18px; }
.tn-facts .heading-3 { line-height: 1.1; }

/* Пояснение с иконкой «i» */
.tn-note { display: flex; align-items: flex-start; gap: 10px; }
.tn-note__icon { display: inline-flex; flex-shrink: 0; margin-top: 1px; }
.tn-note__icon svg { width: 20px; height: 20px; }

.tn-note--hero { padding: 14px 16px; border-radius: 16px; background: var(--color-white); }
.tn-note--hero .tn-note__icon { color: var(--color-primary-dark); }

/* ---------- Цветовая навигация: «Мне тревожно» – зеленый тон, «Близким» – розовый ---------- */
:root {
  --tn-self-soft: var(--color-base-05);
  --tn-self: var(--color-base-04);
  --tn-self-accent: var(--color-primary-dark);
  --tn-close-soft: color-mix(in oklab, var(--color-accent-03) 45%, var(--color-white));
  --tn-close: var(--color-accent-03);
  --tn-close-accent: color-mix(in oklab, var(--color-accent-03), var(--color-black-01) 38%);
}
.tn-bg-close-soft { background: var(--tn-close-soft); }
.tn-bg-close { background: var(--tn-close); }

/* Карточки без обложки (поиск, «Вопрос врачу») – цветная полоска тона слева */
.tn-card--compact[data-tone="self"], .tn-qa[data-tone="self"] { box-shadow: inset 4px 0 0 var(--tn-self-accent); }
.tn-card--compact[data-tone="close"], .tn-qa[data-tone="close"] { box-shadow: inset 4px 0 0 var(--tn-close-accent); }
.tn-card:hover .tn-card__title { color: var(--tn-self-accent); }
.tn-card[data-tone="close"]:hover .tn-card__title { color: var(--tn-close-accent); }

/* Меню проекта: «Близким» – розовый */
.tn-nav__link[data-tone="close"]:hover { background: var(--tn-close-soft); }
.tn-nav__link[data-tone="close"][aria-current="page"] { background: var(--tn-close); color: var(--color-black-01); }

/* Страницы раздела «Близким» и материалы для близких */
.tn-theme-close .tn-check-mark { background: var(--tn-close-accent); }
.tn-theme-close .tn-topic__num { color: var(--tn-close); }
.tn-theme-close a.tn-topic:hover .tn-topic__num { color: var(--tn-close-accent); }
.tn-theme-close .tn-toc .bg-primary { background: var(--tn-close-accent); }
.tn-theme-close .prose > ul > li::before, .tn-theme-close .prose > :where(ul) > li::before { background-color: var(--tn-close-accent); }
.tn-theme-close .tn-step::before { background: var(--tn-close-soft); color: var(--color-black-01); }
.tn-theme-close .tn-phrases__col { background: var(--color-white); }

/* Карточка теста в «Практических инструментах» – выделена как главный инструмент */
.tn-topic--featured { position: relative; overflow: hidden; background: var(--color-primary-dark); color: var(--color-white); }
.tn-topic--featured::after { content: ""; position: absolute; right: -60px; top: -60px; width: 180px; height: 180px; border-radius: 9999px; background: rgba(255, 255, 255, .12); pointer-events: none; }
.tn-topic--featured:hover { box-shadow: none; filter: brightness(1.05); }
.tn-topic--featured .body-sr { font-weight: 500; }
.tn-topic__go--btn { align-self: flex-start; min-height: 44px; padding: 0 18px; border-radius: 12px; background: var(--color-white); color: var(--color-black-01); }

/* Ссылка на раздел в шапке блока: текст + стрелка (не кнопка, чтобы не спорить с кнопками записи) */
.tn-more {
  display: inline-flex; align-items: center; gap: 8px; width: fit-content; min-height: 44px;
  color: var(--tn-self-accent); font-size: 16px; font-weight: 600; line-height: 1.26;
  text-decoration: underline; text-decoration-color: color-mix(in oklab, currentColor 35%, transparent); text-underline-offset: 4px;
  transition: color .15s, gap .15s;
}
.tn-more:hover { color: var(--color-black-01); text-decoration-color: currentColor; gap: 12px; }
.tn-more[data-audience="close"], .tn-theme-close .tn-more { color: var(--tn-close-accent); }
.tn-more[data-audience="close"]:hover, .tn-theme-close .tn-more:hover { color: var(--color-black-01); }
.tn-bg-close-soft .tn-crisis { background: var(--color-white); box-shadow: inset 0 0 0 2px var(--tn-close); }
.tn-bg-close-soft .tn-crisis__icon { background: var(--tn-close); }

/* ---------- GAD-7: один вопрос – один экран ---------- */
.tn-gad { display: flex; flex-direction: column; gap: 16px; padding: 16px; border-radius: 20px; background: var(--color-base-05); }
@media (min-width: 48rem) { .tn-gad { padding: 24px; gap: 20px; } }
.tn-gad__progress { display: flex; flex-direction: column; gap: 10px; padding: 14px 16px; border-radius: 16px; background: var(--color-white); }
.tn-gad .tn-q { padding: 20px; }
@media (min-width: 48rem) { .tn-gad .tn-q { padding: 28px; } }
.tn-q__legend { display: flex; flex-direction: column; gap: 6px; margin-bottom: 4px; }
.tn-q__step { font-size: 13px; line-height: 18px; color: var(--color-black-03); }
.tn-q__stem { font-size: 15px; line-height: 20px; color: var(--color-black-02); }
.tn-q__text { font-weight: 600; font-size: 20px; line-height: 1.3; color: var(--color-black-01); }
@media (min-width: 80rem) { .tn-q__text { font-size: 24px; } }
.tn-q__hint { clear: both; margin: 0 0 12px; font-size: 13px; line-height: 18px; color: var(--color-black-03); }
.tn-options--list { grid-template-columns: minmax(0, 1fr) !important; gap: 8px; }
.tn-options--list .tn-option > span { justify-content: flex-start; gap: 12px; min-height: 52px; }
.tn-option__key {
  display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 28px; height: 28px;
  border-radius: 8px; background: var(--color-white); color: var(--color-primary-dark); font-size: 14px; font-weight: 600;
  box-shadow: inset 0 0 0 1px var(--color-base-03);
}
.tn-option input:checked + span .tn-option__key { background: var(--color-white); color: var(--color-primary-dark); box-shadow: none; }
.tn-gad__nav { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.tn-gad__nav [data-tn-prev] { order: 1; }
.tn-gad__nav [data-tn-next], .tn-gad__nav [data-tn-submit] { order: 2; }
.tn-gad__enter { order: 3; }
.tn-gad button:disabled { opacity: .45; cursor: not-allowed; }
/* до запуска скрипта (и без JS) кнопки шагов не нужны – все вопросы идут списком */
.tn-gad:not(.is-stepper) [data-tn-prev], .tn-gad:not(.is-stepper) [data-tn-next], .tn-gad:not(.is-stepper) .tn-gad__enter { display: none; }
.tn-gad.is-stepper [data-tn-submit] { display: none; }
.tn-gad.is-done .tn-q, .tn-gad.is-done .tn-gad__nav { display: none; }

/* GAD-7 в режиме шагов: компактнее, чтобы вопрос целиком помещался в экран телефона */
.tn-gad.is-stepper .tn-q__step { display: none; }            /* номер вопроса уже в прогрессе */
@media (max-width: 47.99rem) {
  .tn-gad { padding: 10px; gap: 10px; }
  .tn-gad__progress { padding: 10px 12px; gap: 8px; }
  .tn-gad .tn-q { padding: 16px; }
  .tn-q__text { font-size: 18px; }
  .tn-q__hint { margin-bottom: 8px; }
  .tn-options--list { gap: 6px; }
  .tn-options--list .tn-option > span { min-height: 46px; padding: 8px 12px; }
  .tn-gad__enter { display: none !important; }
  .tn-gad__nav .inline-flex { flex: 1; }
}
@media (max-width: 47.99rem) and (max-height: 720px) {
  .tn-gad { padding: 8px; gap: 8px; }
  .tn-gad__progress { padding: 8px 12px; }
  .tn-gad__progress .neutral-xs { display: none; }
  .tn-gad .tn-q { padding: 12px 14px; }
  .tn-q__legend { gap: 2px; }
  .tn-q__stem { font-size: 13px; line-height: 17px; }
  .tn-q__text { font-size: 17px; line-height: 1.25; }
  .tn-q__hint { display: none; }
  .tn-options--list { gap: 5px; margin-top: 8px; }
  .tn-options--list .tn-option > span { min-height: 42px; padding: 6px 10px; font-size: 15px; }
  .tn-option__key { width: 24px; height: 24px; font-size: 13px; }
  .tn-gad__nav .inline-flex { height: 44px; }
}
.tn-gad { scroll-margin-top: 184px; }
@media (min-width: 64rem) { .tn-gad { scroll-margin-top: 160px; } }

/* ---------- Карта решения ---------- */
.tn-tree-result { display: flex; flex-direction: column; gap: 16px; padding: 24px; border-radius: 20px; background: var(--color-base-04); }
@media (min-width: 48rem) { .tn-tree-result { padding: 32px; } }
.tn-tree-result--crisis { background: var(--tn-close); box-shadow: inset 0 0 0 2px var(--color-accent-01); }
.tn-tree-result--consult, .tn-tree-result--watch { background: var(--color-base-05); }
.tn-tree-result--self { background: var(--color-white-02); }
.tn-btn-danger { background: var(--color-accent) !important; }
.tn-btn-danger:hover { background: var(--color-accent-02) !important; }
.tn-tree-path { display: flex; flex-direction: column; gap: 4px; padding-top: 12px; border-top: 1px solid rgba(27, 27, 27, .12); font-size: 14px; line-height: 20px; color: var(--color-black-03); }
.tn-tree-path:empty { display: none; }
.tn-tree.is-done .tn-q, .tn-tree.is-done .tn-gad__nav { display: none; }

/* ---------- «Что сказать близкому» ---------- */
.tn-sits { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
@media (min-width: 64rem) { .tn-sits { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; } }
.tn-sit {
  display: flex; flex-direction: column; gap: 10px; padding: 8px 8px 14px; border: 0; border-radius: 20px; text-align: left;
  background: var(--color-white); cursor: pointer; font: inherit; box-shadow: inset 0 0 0 2px transparent; transition: box-shadow .15s;
}
.tn-sit > span:last-child { padding: 0 8px; }
.tn-sit__cover { display: block; aspect-ratio: 16 / 7; border-radius: 12px; overflow: hidden; }
.tn-sit__cover img { display: block; width: 100%; height: 100%; object-fit: cover; }
.tn-sit:hover { box-shadow: inset 0 0 0 2px var(--tn-close); }
.tn-sit[aria-selected="true"] { box-shadow: inset 0 0 0 2px var(--tn-close-accent); }
.tn-sit:focus-visible { outline: 2px solid var(--color-primary-dark); outline-offset: 2px; }
.tn-sit-panel { display: flex; flex-direction: column; gap: 16px; }
.tn-phrases__col--wide { gap: 14px; }
.tn-topic__go--close { color: var(--tn-close-accent); }

/* ---------- Шаблон «Два взгляда» ---------- */
.tn-two__quotes { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
@media (min-width: 48rem) { .tn-two__quotes { grid-template-columns: 1fr 1fr; gap: 16px; } }
.tn-two__quote { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 24px; border-radius: 20px; }
.tn-two__voice--self { background: var(--color-base-05); }
.tn-two__voice--close { background: var(--tn-close-soft); }
.tn-two__who {
  display: inline-flex; width: fit-content; padding: 2px 10px; border-radius: 8px; font-size: 13px; font-weight: 600;
  background: var(--color-white); color: var(--color-black-01);
}
.tn-two__block { display: flex; flex-direction: column; gap: 16px; }
.tn-two__cols { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
@media (min-width: 48rem) { .tn-two__cols { grid-template-columns: 1fr 1fr; gap: 16px; } }
.tn-two__voice { display: flex; flex-direction: column; gap: 10px; padding: 20px 24px; border-radius: 20px; }
.tn-ph { margin: 0; padding: 12px 14px; border-radius: 12px; border: 1px dashed rgba(27, 27, 27, .25); color: var(--color-black-03); font-style: normal; }
.tn-avatar--close { background: var(--tn-close); color: var(--color-black-01); }
.tn-avatar--photo { overflow: hidden; }
.tn-avatar--photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.tn-story-promo { color: var(--color-black-01); text-decoration: none; transition: filter .15s; }
.tn-story-promo:hover { filter: brightness(.98); }
/* Оговорка в hero: мельче и приглушенно, ссылка на запись остается заметной */
.tn-note--hero { font-size: 14px; line-height: 20px; color: var(--color-black-03); }
.tn-note--hero .tn-note__icon svg { width: 18px; height: 18px; }
.tn-note--hero .tn-note__icon { color: var(--color-black-03); }
/* «Начните отсюда»: карточки про близких – розовый тон */
.tn-topic[data-tone="close"] h3, .tn-topic[data-tone="close"] .tn-topic__go { color: var(--tn-close-accent) !important; }
.tn-topic[data-tone="close"] .tn-topic__num { color: var(--tn-close); }
.tn-topic[data-tone="close"]:hover { box-shadow: inset 0 0 0 1px var(--tn-close-accent); }

/* Hero проекта: плашка с «i» прижата к низу и выровнена по низу блока «Я переживаю за близкого»; шире зазор между колонками */
@media (min-width: 64rem) {
  .tn-hero-grid { column-gap: 72px; align-items: stretch; }
  .tn-hero-grid__text { align-self: stretch; display: flex; flex-direction: column; }
  .tn-hero-grid__text .tn-note--hero { margin-top: auto; }
  .tn-hero-grid__paths { align-self: end; }
}
@media (min-width: 80rem) { .tn-hero-grid { column-gap: 96px; } }
/* Hero проекта: чуть больше воздуха между названием и подзаголовком «Проект о…» */
.tn-hero-grid__title .tn-brand-title { margin-bottom: 8px; }
@media (min-width: 80rem) { .tn-hero-grid__title .tn-brand-title { margin-bottom: 12px; } }

/* ---------- «Тревожная кнопка»: открывает заказ звонка (#callback) ---------- */
.tn-panic {
  display: flex; flex-direction: column; gap: 14px; padding: 20px; border-radius: 20px;
  background: var(--color-white); box-shadow: inset 0 0 0 1px var(--color-base-03);
}
@media (min-width: 48rem) { .tn-panic:not(.tn-panic--compact) { flex-direction: row; align-items: center; justify-content: space-between; gap: 24px; padding: 20px 24px; } }
.tn-panic--compact { padding: 16px; gap: 12px; }
.tn-panic__text { display: flex; flex-direction: column; gap: 4px; }
.tn-panic__title { margin: 0; font-weight: 600; font-size: 17px; line-height: 1.3; color: var(--color-black-01); }
.tn-panic__sub { margin: 0; font-size: 14px; line-height: 20px; color: var(--color-black-03); }
.tn-panic__btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 12px; flex-shrink: 0; min-height: 52px; padding: 0 24px;
  border-radius: 16px; background: var(--color-primary-dark); color: var(--color-white); font-weight: 600; font-size: 16px;
  text-decoration: none; transition: background-color .15s;
}
.tn-panic--compact .tn-panic__btn { width: 100%; }
.tn-panic__btn:hover { background: var(--color-black-01); }
.tn-panic__btn:focus-visible { outline: 2px solid var(--color-black-01); outline-offset: 3px; }
.tn-panic__pulse { position: relative; width: 12px; height: 12px; border-radius: 9999px; background: var(--color-white); flex-shrink: 0; }
.tn-panic__pulse::after {
  content: ""; position: absolute; inset: -6px; border-radius: 9999px; border: 2px solid rgba(255, 255, 255, .7);
  animation: tn-pulse 1.8s ease-out infinite;
}
@keyframes tn-pulse { from { transform: scale(.6); opacity: 1; } to { transform: scale(1.6); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .tn-panic__pulse::after { animation: none; opacity: .5; } }
.tn-theme-close .tn-panic, .tn-bg-close-soft .tn-panic { box-shadow: inset 0 0 0 1px var(--tn-close); }

/* Меню: активный пункт при наведении остается закрашенным, текст читается */
.tn-nav .tn-nav__link[aria-current="page"],
.tn-nav--header .tn-nav__link[aria-current="page"]:hover { background: var(--color-primary); color: var(--color-white); }
.tn-nav--header .tn-nav__link[aria-current="page"]:hover { background: var(--color-primary-dark); }
.tn-nav--header .tn-nav__link[data-tone="close"][aria-current="page"],
.tn-nav--header .tn-nav__link[data-tone="close"][aria-current="page"]:hover { background: var(--tn-close); color: var(--color-black-01); }
.tn-nav--header .tn-nav__link[data-tone="close"][aria-current="page"]:hover { background: color-mix(in oklab, var(--tn-close), var(--color-black-01) 10%); }
.tn-nav--header .tn-nav__brand[aria-current="page"]:hover { color: var(--color-primary-dark); }

/* «Тревожная кнопка» в шапке (вместо «Заказать звонок») и плавающая на телефоне */
.tn-panic__pulse--dark { background: var(--color-primary-dark); }
.tn-panic__pulse--dark::after { border-color: rgba(34, 159, 167, .6); }
.tn-panic-head { gap: 12px; }
.tn-ctx-note { margin-bottom: 12px; padding: 8px 12px; border-radius: 8px; background: var(--color-white); }
.tn-results .tn-panic { grid-column: 1 / -1; }

/* Карточки материалов: порядок внутри – теги → заголовок → текст → (свободное место) → врач → линия → статистика.
   Врач, линия и статистика прижаты к низу, свободное место собирается между текстом и врачом. */
.tn-card__lead { margin: 0; }
.tn-card__body { gap: 10px; }
.tn-card__tags { display: flex; flex-wrap: wrap; gap: 6px; }
.tn-card__body > .tn-card__tags { margin-top: 4px; }
.tn-card__body > .tn-card__tags:first-child { margin-top: 0; margin-bottom: 2px; }
.tn-card__doc { margin-top: 4px; padding-top: 0; border-top: 0; }
.tn-card__foot { margin-top: auto; padding-top: 14px; border-top: 1px solid var(--color-black-04); }
/* минимальный зазор перед линией, даже если карточка самая высокая в ряду */
.tn-card__body > :nth-last-child(2) { margin-bottom: 12px; }
.tn-card .tn-card__body > .tn-card__doc { margin-top: auto; margin-bottom: 0; padding-top: 12px; }
.tn-card__body > .tn-card__doc + .tn-card__foot { margin-top: 12px; }
.tn-qa .tn-card__foot { margin-top: 4px; }
.tn-qa .tn-card__doc { margin-top: 0; }
.tn-qa summary { grid-template-areas: "title arrow"; row-gap: 0; }

/* ---------- Отметки «Прочитано» ---------- */
.tn-tag--read { display: inline-flex; align-items: center; gap: 4px; background: var(--color-black-01); color: var(--color-white); }
.tn-tag--read svg { width: 10px; height: 10px; }
.tn-card.is-read .tn-card__title { color: var(--color-black-03); }
.tn-wasread { display: inline-flex; align-items: center; gap: 8px; width: fit-content; padding: 6px 12px; border-radius: 12px; background: var(--color-white-02); color: var(--color-black-03); font-size: 14px; line-height: 18px; }
.tn-readpref { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 12px 24px; padding: 16px 20px; border-radius: 16px; background: var(--color-white-02); }
.tn-readpref .tn-check { max-width: 640px; }
[data-tn-was-read]:empty { display: none; }
/* «Прочитано» поверх иллюстрации в правом верхнем углу */
.tn-tag--read-cover { position: absolute; top: 10px; right: 10px; z-index: 1; }
.tn-card.is-read .tn-card__cover img { opacity: .55; }


/* Наведение на кликабельную карточку: вся карточка – ссылка, отклик фоном (без тени, по брендбуку) */
a.tn-card { cursor: pointer; }
a.tn-card:not(.tn-card--compact):hover,
a.tn-card:not(.tn-card--compact):focus-visible { background: var(--tn-self-soft); }
a.tn-card[data-tone="close"]:not(.tn-card--compact):hover,
a.tn-card[data-tone="close"]:not(.tn-card--compact):focus-visible { background: var(--tn-close-soft); }
a.tn-card .tn-card__cover img { transition: transform .4s ease; }
a.tn-card:hover .tn-card__cover img { transform: scale(1.04); }
@media (prefers-reduced-motion: reduce) { a.tn-card .tn-card__cover img { transition: none; } a.tn-card:hover .tn-card__cover img { transform: none; } }
/* розовый акцент на розовом фоне слишком бледный – заголовок остается черным, отклик дает фон */
a.tn-card[data-tone="close"]:not(.tn-card--compact):hover .tn-card__title { color: var(--color-black-01); }
.tn-bridge .tn-check { max-width: 640px; }

/* ---------- Меню проекта: до 1280px – бургер (7 пунктов не помещаются в контейнер 1024) ---------- */
.tn-nav__links { display: contents; }
.tn-nav__burger { display: none; }
@media (max-width: 79.99rem) {
  .tn-nav--header { flex-wrap: wrap; overflow: visible; }
  .tn-nav__burger {
    display: inline-flex; align-items: center; gap: 8px; margin-left: auto; min-height: 44px; padding: 0 12px 0 16px;
    border-radius: 12px; background: var(--color-white); color: var(--color-black-01); font-size: 16px; font-weight: 500; cursor: pointer;
  }
  .tn-nav__burger:focus-visible { outline: 2px solid var(--color-primary-dark); outline-offset: 2px; }
  .tn-nav__burger-icon path { transition: transform .2s, opacity .2s; transform-origin: 12px 12px; }
  .tn-nav.is-open .tn-b1 { transform: translateY(5px) rotate(45deg); }
  .tn-nav.is-open .tn-b2 { opacity: 0; }
  .tn-nav.is-open .tn-b3 { transform: translateY(-5px) rotate(-45deg); }
  .tn-nav__links { display: none; }
  .tn-nav.is-open .tn-nav__links { display: flex; flex-direction: column; gap: 4px; flex-basis: 100%; padding-top: 8px; }
  .tn-nav.is-open .tn-nav__link { width: 100%; }
  .tn-nav__clinic { padding: 0 14px; margin-right: 0; }
}
@media (max-width: 26rem) {
  .tn-nav__clinic span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .tn-nav__brand { padding: 0 4px; }
  .tn-nav__burger { padding: 0 11px; }
  .tn-nav__burger-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}
@media (prefers-reduced-motion: reduce) { .tn-nav__burger-icon path { transition: none; } }

/* ---------- Видео: плейлист в духе YouTube ---------- */
.tn-video { display: grid; gap: 16px; }
@media (min-width: 64rem) { .tn-video { grid-template-columns: minmax(0, 1fr) 440px; gap: 24px; align-items: start; } }
.tn-video__main { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.tn-player {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px;
  aspect-ratio: 16 / 9; border-radius: 20px; background: var(--color-base-04);
}
.tn-player[data-tone="close"] { background: var(--tn-close); }
.tn-player__play { display: flex; align-items: center; justify-content: center; width: 72px; height: 72px; padding-left: 4px; border-radius: 9999px; background: var(--color-white); color: var(--color-primary); }
.tn-player[data-tone="close"] .tn-player__play { color: var(--tn-close-accent); }
.tn-player__status { padding: 4px 12px; border-radius: 8px; background: var(--color-white); color: var(--color-black-02); font-size: 14px; line-height: 18px; }
.tn-video__info { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.tn-video__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; color: var(--color-black-03); font-size: 14px; line-height: 18px; }
.tn-playlist { display: flex; flex-direction: column; border-radius: 20px; background: var(--color-white-02); padding: 12px; min-width: 0; }
@media (min-width: 64rem) { .tn-playlist { position: sticky; top: 16px; max-height: min(640px, calc(100vh - 32px)); } }
.tn-playlist__head { display: flex; flex-direction: column; gap: 4px; padding: 8px 8px 16px; }
.tn-playlist__list { display: flex; flex-direction: column; gap: 6px; margin: 0; padding: 0; list-style: none; position: relative; min-height: 0; overflow-y: auto; scrollbar-width: thin; }
.tn-pl-item {
  display: grid; grid-template-columns: 16px 88px minmax(0, 1fr); align-items: start; gap: 14px; padding: 12px;
  border-radius: 16px; color: var(--color-black-01); text-decoration: none; transition: background-color .15s;
}
.tn-pl-item:hover { background: var(--color-white); }
.tn-pl-item[aria-current="true"] { background: var(--tn-self-soft); }
.tn-pl-item[data-tone="close"][aria-current="true"] { background: var(--tn-close-soft); }
.tn-pl-item:focus-visible { outline: 2px solid var(--color-primary-dark); outline-offset: -2px; }
.tn-pl-item__num { align-self: center; color: var(--color-black-03); font-size: 13px; text-align: center; }
.tn-pl-item[aria-current="true"] .tn-pl-item__num { color: var(--tn-self-accent); font-weight: 600; }
.tn-pl-item__thumb { position: relative; width: 88px; height: 88px; border-radius: 12px; background: var(--color-base-04); }
.tn-pl-item[data-tone="close"] .tn-pl-item__thumb { background: var(--tn-close); }
.tn-pl-item__dur { position: absolute; right: 4px; bottom: 4px; padding: 0 6px; border-radius: 9999px; background: var(--color-black-01); color: var(--color-white); font-size: 11px; line-height: 16px; }
.tn-pl-item__text { display: flex; flex-direction: column; gap: 6px; min-width: 0; padding-top: 2px; }
.tn-pl-item__title { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; font-size: 15px; line-height: 20px; font-weight: 500; }
.tn-pl-item__sub { color: var(--color-black-03); font-size: 13px; line-height: 18px; }
.tn-video__controls { display: flex; gap: 8px; }
.tn-video__controls > button { min-width: 0; }
.tn-video__next { flex: 1 1 0; min-width: 0; justify-content: space-between; }
.tn-video__next-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tn-video__controls > button:disabled { opacity: .45; cursor: default; }
.tn-playlist__filters { display: flex; flex-wrap: wrap; gap: 6px; padding-top: 10px; }
.tn-chip[data-tone="close"][aria-pressed="true"] { background: var(--tn-close); color: var(--color-black-01); }
.tn-playlist__list > li.is-filtered { display: none; }
/* Vimeo: кнопка запуска и плеер */
.tn-player { position: relative; overflow: hidden; }
button.tn-player__play { border: 0; cursor: pointer; transition: transform .15s; }
button.tn-player__play:hover { transform: scale(1.06); }
button.tn-player__play:focus-visible { outline: 2px solid var(--color-primary-dark); outline-offset: 3px; }
.tn-player iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.tn-player.is-playing { background: var(--color-black-01); }
@media (prefers-reduced-motion: reduce) { button.tn-player__play { transition: none; } }
@media (max-width: 30rem) { .tn-pl-item { grid-template-columns: 72px minmax(0, 1fr); gap: 12px; padding: 10px; } .tn-pl-item__num { display: none; } .tn-pl-item__thumb { width: 72px; height: 72px; } }

/* ---------- Верхняя строка шапки на страницах проекта: логотип, адрес, тревожная кнопка ---------- */
.tn-topbar { display: flex; align-items: center; gap: 12px 24px; padding: 8px 0; }
@media (min-width: 48rem) { .tn-topbar { padding: 12px 0; } }
.tn-topbar__addr { color: var(--color-black-03); font-size: 13px; line-height: 18px; }
@media (max-width: 47.99rem) { .tn-topbar__addr { display: none; } }
.tn-topbar__panic {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; margin-left: auto; flex-shrink: 0;
  height: 40px; padding: 0 14px; border: 1px solid var(--color-primary); border-radius: 12px;
  color: var(--color-black-01); font-size: 14px; font-weight: 500; white-space: nowrap; text-decoration: none; transition: border-color .15s, color .15s;
}
.tn-topbar__panic:hover { border-color: var(--color-primary-dark); color: var(--color-primary-dark); }
.tn-topbar__panic:focus-visible { outline: 2px solid var(--color-primary-dark); outline-offset: 2px; }
@media (min-width: 64rem) { .tn-topbar__panic { height: 48px; padding: 0 20px; font-size: 16px; } }

/* ---------- Сервис в конце статьи ---------- */
.tn-service {
  display: flex; flex-direction: column; gap: 20px; padding: 24px; border-radius: 20px;
  background: var(--color-base-04); color: var(--color-black-01);
}
@media (min-width: 48rem) { .tn-service { padding: 32px; } .tn-service--wide { flex-direction: row; align-items: center; justify-content: space-between; gap: 32px; } }
.tn-service--self { background: var(--color-base-04); }
.tn-service__tag { display: inline-flex; width: fit-content; padding: 4px 8px; border-radius: 8px; background: var(--color-white); font-size: 14px; line-height: 18px; color: var(--color-primary-dark); }
.tn-service__text { color: var(--color-black-02); max-width: 460px; }
.tn-service__btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; flex-shrink: 0; height: 52px; padding: 0 24px;
  border-radius: 12px; background: var(--color-primary); color: var(--color-white); font-weight: 600; text-decoration: none; transition: background-color .15s;
}
.tn-service__btn:hover { background: var(--color-primary-dark); }
.tn-service__btn:focus-visible { outline: 2px solid var(--color-primary-dark); outline-offset: 3px; }
.tn-service--test { background: var(--color-primary); color: var(--color-white); }
.tn-service--test .tn-service__text { color: var(--color-white); }
.tn-service--test .tn-service__tag { background: var(--color-accent-03); color: var(--color-black-01); }
.tn-service--test .tn-service__btn { background: var(--color-white); color: var(--color-black-01); }
.tn-service--test .tn-service__btn:hover { background: var(--color-base-05); }
.tn-service--close { background: var(--tn-close); }
.tn-service--close .tn-service__tag { color: var(--color-black-01); }
.tn-service--close .tn-service__btn { background: var(--color-black-01); }
.tn-service--close .tn-service__btn:hover { background: var(--color-black-02); }
@media (max-width: 47.99rem) { .tn-service__btn { width: 100%; } }

/* «Запоминать прочитанное» в правой колонке статьи, под «Содержанием» */
.tn-readpref--compact { flex-direction: column; gap: 8px; padding: 16px; }
.tn-readpref--compact .tn-check { max-width: none; }
/* невысокий экран: закрепленная колонка не помещается – отключаем закрепление, чтобы тревожная кнопка не уходила за край */
@media (min-width: 64rem) and (max-height: 820px) { .tn-article-toc__sticky { position: static; } }

/* Сервис – плитка (главная проекта, раздел «Сервисы») и широкая полоса (конец статьи) */
.tn-service--tile { height: 100%; justify-content: space-between; }
.tn-service--tile .tn-service__btn { align-self: flex-start; margin-top: auto; }
@media (max-width: 47.99rem) { .tn-service--tile .tn-service__btn { align-self: stretch; } }

/* Компактная карточка (тип 2) с квадратом-превью: видео */
.tn-card--media { flex-direction: row; align-items: center; gap: 4px; }
.tn-card--media .tn-card__body { padding: 12px 16px 12px 12px; gap: 6px; }
.tn-card__media { display: flex; align-items: center; justify-content: center; flex-shrink: 0; width: 88px; height: 88px; margin-left: 8px; border-radius: 12px; background: var(--color-base-04); }
.tn-card--media[data-tone="close"] .tn-card__media { background: var(--tn-close); }
.tn-card__play { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; padding-left: 2px; border-radius: 9999px; background: var(--color-white); color: var(--color-primary); }
.tn-card__play svg { width: 16px; height: 16px; }
.tn-card--media[data-tone="close"] .tn-card__play { color: var(--tn-close-accent); }

.tn-doctor__ava { overflow: hidden; }
.tn-doctor__ava img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* Реестр карточек (внутренняя страница docs/kartochki/) */
.tn-reg__where { display: flex; flex-direction: column; gap: 4px; margin: 0; padding-left: 18px; list-style: disc; color: var(--color-black-02); font-size: 14px; line-height: 20px; }

/* Выбранные фильтры каталога: плашки с крестиком, последней – «Сбросить все» */
.tn-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.tn-chips:empty { display: none; }
.tn-chip-x {
  display: inline-flex; align-items: center; gap: 8px; min-height: 36px; padding: 0 12px 0 14px; border-radius: 9999px;
  background: var(--color-base-05); color: var(--color-primary-dark); font-size: 14px; line-height: 18px; cursor: pointer; transition: background-color .15s;
}
.tn-chip-x:hover { background: var(--color-base-04); }
.tn-chip-x:focus-visible { outline: 2px solid var(--color-primary-dark); outline-offset: 2px; }
.tn-chips__reset { margin-left: 4px; }
.tn-check--dense { min-height: 38px; }

/* Окно перед переходом на сторонний сайт */
.tn-extdlg { width: min(520px, calc(100% - 32px)); }
.tn-extdlg__host { font-weight: 600; color: var(--color-black-01); word-break: break-all; }

/* Строка про экстренную помощь внутри блока «Обсудить с врачом» (вместо отдельного кризисного блока в статье) */
.tn-emergency { display: flex; align-items: flex-start; gap: 10px; margin-top: 4px; padding: 12px 14px; border-radius: 12px; background: var(--color-white); }
.tn-emergency__icon { display: inline-flex; flex-shrink: 0; margin-top: 1px; color: var(--color-black-01); }
.tn-emergency__icon svg { width: 18px; height: 18px; }

/* Добавки редакции к статьям: плашка с цифрами и таблица, под ними – источник */
.tn-figure-stats, .tn-figure-table { display: flex; flex-direction: column; gap: 12px; margin: 28px 0; }
.tn-figure-stats { padding: 24px; border-radius: 20px; background: var(--color-base-05); }
.tn-figure-stats__title { margin: 0; font-weight: 600; font-size: 18px; line-height: 24px; color: var(--color-black-01); }
.tn-figure-stats__grid { display: grid; grid-template-columns: 1fr; gap: 16px; }
@media (min-width: 40rem) { .tn-figure-stats__grid { grid-template-columns: 1fr 1fr; gap: 24px; } }
.tn-figure-stat { display: flex; flex-direction: column; gap: 6px; }
.tn-figure-stat__num { font-weight: 600; font-size: 44px; line-height: 1; letter-spacing: -0.02em; color: var(--color-primary-dark); }
.tn-figure-stat__text { font-size: 15px; line-height: 21px; color: var(--color-black-02); }
.tn-figure-table__title { font-weight: 600; font-size: 18px; line-height: 24px; color: var(--color-black-01); }
.tn-table-wrap { overflow-x: auto; border-radius: 16px; border: 1px solid var(--color-black-04); }
.tn-table-wrap:focus-visible { outline: 2px solid var(--color-primary-dark); outline-offset: 2px; }
.prose .tn-table, .tn-table { width: 100%; min-width: 640px; margin: 0; border-collapse: collapse; font-size: 14px; line-height: 20px; }
.tn-table th, .tn-table td { padding: 12px 14px; text-align: left; vertical-align: top; border-top: 1px solid var(--color-black-04); }
.tn-table thead th { border-top: 0; background: var(--color-base-05); color: var(--color-black-01); font-weight: 600; }
.tn-table tbody th { width: 18%; color: var(--color-black-01); font-weight: 600; background: var(--color-white-02); }
.tn-table td { color: var(--color-black-02); }
.tn-source-note { margin: 0; font-size: 13px; line-height: 18px; color: var(--color-black-03); }

/* Иконки нового вида (WebP, градиент) */
/* иконки крупнее, чтобы градиент читался */
.tn-path__icon { width: 48px; height: 48px; }
.tn-icon { display: block; width: 30px; height: 30px; }
.tn-audience--compact .tn-path__icon { width: 44px; height: 44px; }
.tn-audience--compact .tn-path__icon .tn-icon { width: 30px; height: 30px; }
img.tn-logo { height: auto; }

/* Видео: превью и заставка в формате 16:9 – иллюстрация статьи по теме */
.tn-pl-item { grid-template-columns: 16px 128px minmax(0, 1fr); }
.tn-pl-item__thumb { width: 128px; height: 72px; overflow: hidden; }
.tn-pl-item__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.tn-pl-item__dur { z-index: 1; }
@media (max-width: 30rem) { .tn-pl-item { grid-template-columns: 112px minmax(0, 1fr); } .tn-pl-item__thumb { width: 112px; height: 63px; } }
.tn-card__media { position: relative; width: 128px; height: 72px; overflow: hidden; }
.tn-card__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.tn-card__play { position: relative; z-index: 1; }
.tn-player__poster { position: absolute; inset: 0; }
.tn-player__poster img { display: block; width: 100%; height: 100%; object-fit: cover; }
.tn-player__play, .tn-player__status { position: relative; z-index: 1; }
/* плашка под градиентной иконкой – белая с тонкой рамкой, чтобы иконка не сливалась с фоном */
.tn-path__icon, .tn-path--warm .tn-path__icon, .tn-audience--white .tn-path__icon { background: var(--color-white); box-shadow: inset 0 0 0 1px var(--color-black-04); }
.tn-path:hover .tn-path__icon { background: var(--color-white); box-shadow: inset 0 0 0 1px var(--color-base-03); }

/* Номера «Начните отсюда»: градиент как у иконок и знака (бирюзовый → лавандовый), полупрозрачно – фоновые цифры */
.tn-topic__num, .tn-topic[data-tone="close"] .tn-topic__num, .tn-theme-close .tn-topic__num {
  color: transparent;
  background-image: linear-gradient(120deg, #71C5C8 0%, #A69CCB 100%);   /* палитра «Госпитальной»: бирюзовый → пыльная лаванда */
  -webkit-background-clip: text; background-clip: text;
  opacity: .45; transition: opacity .2s;
}
a.tn-topic:hover .tn-topic__num, .tn-theme-close a.tn-topic:hover .tn-topic__num { color: transparent; opacity: .7; }
