/* Вёрстка v2: рамка страницы. В прототипе всё содержимое лежит в корневом блоке шириной 1250 с полями 14, секции — ещё 8
   (1440: x117; 1024: x22; телефон: поле страницы 10). У нас корень — main.main шаблона, который уже даёт поля 10,
   поэтому .ps-page — ширина 1230 и поля 4 (10 + 4 = 14), а на телефоне поле корня v2 (:root 10px) снимается — его даёт main. */
html.ps-v2 .ps-page { width: 100%; max-width: 1230px; margin: 0 auto; padding: 0 4px; box-sizing: border-box; display: flex; flex-direction: column; gap: 12px; }
@media (max-width: 760px) { html.ps-v2 .ps-page { padding: 0; } html:root.ps-v2 { padding: 0 !important; } }

/* Старые общие стили темы (main.css) задают правила прямо тегам: button { line-height: 0; border; background-color },
   * { padding: 0 }, img/svg { vertical-align }. В прототипе их не было, а классы ps-* задают только то, что прототип вычислил, — поэтому
   на экранах v2 эти свойства возвращаются к значениям браузера. :where — та же сила, что у правил тегов main.css,
   файл подключён позже: классы старой разметки (шапка, строки из /ajax_data) по-прежнему сильнее. */
:where(html.ps-v2) button { background-color: revert; border: revert; cursor: revert; line-height: revert; padding: revert; }
/* Shared server lists use the supplied blog's 38px controls; page-specific sizes stay stronger. */
html.ps-v2 .pagination { display: flex; justify-content: center; flex-wrap: wrap; gap: 6px; cursor: default; }
html.ps-v2 .pagination .prev-btn, html.ps-v2 .pagination .next-btn { padding: 0; border: 0; background: transparent; }
html.ps-v2 .pagination .pagination-bullet > a,
html.ps-v2 .pagination .prev-btn > a,
html.ps-v2 .pagination .next-btn > a {
  display: flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; padding: 0; border: 0;
  border-radius: 11px; font-size: 14px; line-height: normal;
  background: var(--card); color: var(--ink2);
  box-shadow: inset 0 0 0 1px var(--line2);
}
html.ps-v2 .pagination a:hover { background: var(--hover); color: var(--accent); }
html.ps-v2 .pagination a:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
:where(html.ps-v2) img, :where(html.ps-v2) svg { vertical-align: revert; }
/* main.css: body { font-weight: 500 } — в прототипе текст без своего класса наследует 400 (замер Codex, пакет 2) */
:where(html.ps-v2) body { font-weight: 400; }
/* ссылки без своего класса — как в прототипе (main.css: a { color: --site-anchor }); правила ссылок шапки и старой разметки — сильнее */
:where(html.ps-v2) a { color: var(--accent); text-decoration: none; }
:where(html.ps-v2) a:hover { color: var(--accent-hover); }

/* Shared client-list markup paints the active state on the link, above its own card background. */
html.ps-v2 .pagination .pagination-bullet__active > a {
  background: var(--sel) !important;
  color: var(--accent) !important;
  font-weight: 600 !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* Component rules own semantic headings; only unstyled rich content needs the mobile fallback. */
@media (max-width: 760px) {
  :where(html.ps-v2) h2 { font-size: 24px; margin: 0px 0px 4px; }
  :where(html.ps-v2) h2[class*="ps-app__"]:not(.ps-app__175) { margin: 0; }
}
