/* ==========================================================================
   Квартальные отчёты (views/report-*.php, подключается из inc/reports.php).
   Основа — оформление статей из articles.css; здесь только то, чего там нет.
   ========================================================================== */

.article__content .rep-lead {
  font-size: 1.25rem;
  line-height: 1.55;
  color: var(--c-navy);
}

.article__content .rep-meta {
  font-size: 0.875rem;
  color: var(--c-muted);
}

/* Индекс BDI в начале отчёта */
.article__content .rep-bdi {
  margin-top: 1.75rem;
  padding: 1.5rem 1.75rem;
  background: var(--c-soft);
  border-radius: 1.25rem;
}

.rep-bdi__label {
  font-size: 0.9375rem;
  color: var(--c-muted);
}

.rep-bdi__value {
  margin-top: 0.25rem;
  font-family: var(--font-head);
  font-size: clamp(3.5rem, 9vw, 5.5rem);
  line-height: 1;
  font-weight: 800;
  letter-spacing: -.04em;
  color: var(--c-blue);
  font-variant-numeric: tabular-nums;
}

.rep-bdi__value small {
  margin-left: 0.125rem;
  font-size: 0.4em;
  font-weight: 700;
  letter-spacing: 0;
  color: var(--c-muted);
}

.rep-bdi__facts {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 1.5rem;
  margin-top: 0.875rem;
  font-size: 0.9375rem;
}

.rep-bdi__facts b {
  font-weight: 700;
}

.article__content .rep-bdi__link {
  display: inline-block;
  margin-top: 0.75rem;
  font-size: 0.9375rem;
  font-weight: 600;
}

/* Содержание */
.article__content .rep-toc {
  margin-top: 1.75rem;
  padding: 1.25rem 1.5rem;
  border: 0.0625rem solid var(--c-line);
  border-radius: var(--radius-lg);
}

.rep-toc__title {
  font-family: var(--font-head);
  font-weight: 700;
}

.article__content .rep-toc ol {
  margin-top: 0.75rem;
  columns: 2;
  column-gap: 2rem;
  font-size: 0.9375rem;
}

.article__content .rep-toc ol li {
  margin: 0 0 0.375rem;
  break-inside: avoid;
}

.article__content .rep-toc a {
  color: var(--c-navy);
  text-decoration: none;
}

.article__content .rep-toc a:hover {
  color: var(--c-blue);
  text-decoration: underline;
}

/* Якоря не прячутся под шапкой */
.article__content h2[id] {
  scroll-margin-top: 6rem;
}

/* Таблицы: числа вправо, итог жирным, отрицательные значения красным */
.article__content .rep-table {
  -webkit-overflow-scrolling: touch;
}

.article__content .rep-table table {
  font-size: 0.9375rem;
  font-variant-numeric: tabular-nums;
}

.article__content .rep-table--wide table {
  min-width: 38rem;
}

.article__content .rep-table th {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--c-muted);
  vertical-align: bottom;
}

.article__content .rep-table td {
  vertical-align: top;
}

.article__content .rep-table .n {
  text-align: right;
  white-space: nowrap;
}

.article__content .rep-table .is-total td {
  font-weight: 700;
  background: var(--c-soft-2);
}

.article__content .rep-table figcaption {
  margin: 0;
  padding: 0.75rem 1rem;
  font-size: 0.8125rem;
  line-height: 1.5;
  border-top: 0.0625rem solid var(--c-line);
}

.article__content .is-neg {
  color: var(--c-down);
}

.article__content .rep-note {
  font-size: 0.9375rem;
  color: var(--c-muted);
}

/* График: базовая ставка и инфляция */
.article__content .rep-chart svg {
  display: block;
  width: 100%;
  height: auto;
}

.rep-chart__grid {
  stroke: var(--c-line);
  stroke-width: 1;
}

.rep-chart__axis {
  font-size: 12px;
  fill: var(--c-muted);
}

.rep-chart__line {
  fill: none;
  stroke: var(--c-blue);
  stroke-width: 2.5;
  stroke-linejoin: round;
}

.rep-chart__rate {
  font-size: 12px;
  font-weight: 700;
  fill: var(--c-blue);
}

.rep-chart__dot {
  fill: var(--c-muted);
}

.rep-chart__infl {
  font-size: 12px;
  fill: var(--c-muted);
}

/* Вопросы и ответы */
.rep-faq {
  border-top: 0.0625rem solid var(--c-line);
}

.rep-faq__item {
  border-bottom: 0.0625rem solid var(--c-line);
}

.rep-faq__item summary {
  position: relative;
  padding: 1rem 2.5rem 1rem 0;
  font-size: 1.0625rem;
  font-weight: 700;
  line-height: 1.4;
  cursor: pointer;
  list-style: none;
}

.rep-faq__item summary::-webkit-details-marker {
  display: none;
}

.rep-faq__item summary::before,
.rep-faq__item summary::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0.25rem;
  width: 0.75rem;
  height: 0.125rem;
  background: var(--c-blue);
  border-radius: 0.125rem;
  transition: transform .2s;
}

.rep-faq__item summary::after {
  transform: rotate(90deg);
}

.rep-faq__item[open] summary::after {
  transform: rotate(0);
}

.rep-faq__item p {
  padding-bottom: 1.125rem;
  font-size: 1rem;
  line-height: 1.65;
}

/* Источники, автор, дисклеймер */
.article__content .rep-sources {
  font-size: 0.9375rem;
}

.article__content .rep-sources li {
  margin-bottom: 0.375rem;
}

.article__content .rep-author {
  margin-top: 2.5rem;
  padding-top: 1.25rem;
  border-top: 0.0625rem solid var(--c-line);
}

.rep-author__name {
  font-family: var(--font-head);
  font-weight: 700;
}

.article__content .rep-author__name a {
  color: var(--c-navy);
  text-decoration: none;
}

.rep-author__text {
  margin-top: 0.25rem;
  font-size: 1rem;
}

.article__content .rep-disclaimer {
  font-size: 0.8125rem;
  line-height: 1.55;
  color: var(--c-muted);
}

@media (max-width: 640px) {
  .article__content .rep-lead {
    font-size: 1.125rem;
  }

  .article__content .rep-bdi {
    padding: 1.25rem;
  }

  .article__content .rep-toc ol {
    columns: 1;
  }

  .article__content .rep-table table {
    font-size: 0.875rem;
  }

  .article__content .rep-table th,
  .article__content .rep-table td {
    padding: 0.625rem 0.75rem;
  }

  /* На узком экране — подписи крупнее и через месяц */
  .rep-chart__minor {
    display: none;
  }

  .rep-chart__axis,
  .rep-chart__rate,
  .rep-chart__infl {
    font-size: 18px;
  }
}
