/*
 * Кастомная вёрстка портала: рэйл, главная, поиск, ассистент, страница UI Kit.
 *
 * Правило дизайнера: кастомные стили строятся только на базовых токенах
 * (цвета, текст, радиусы, отступы, размеры контролов). Компонентные токены
 * (--c-card-*, --c-dialog-*, --c-field-*, --c-header-* …) здесь запрещены,
 * иначе портал получил бы скрытую зависимость от чужого компонента.
 * build.js останавливает сборку, если такой токен появится в этом файле.
 */

/* ─────────────────────────────────────── shell */
.p-app { display: grid; grid-template-columns: auto minmax(0, 1fr); min-height: 100vh; }

/* Рэйл разделов — 64px, структура с текущего портала */
.p-rail {
  width: var(--c-gap-9); flex: none;
  background: var(--c-fill-color-blank);
  border-right: var(--c-border-width) solid var(--c-border-color-light);
  display: flex; flex-direction: column; align-items: center;
  padding: var(--c-gap-3) 0; gap: var(--c-gap-2);
  position: sticky; top: 0; height: 100vh; z-index: 60;
}
/* Настоящий логотип КСЭ (80×20, с текущего портала), выводится в половину
   натуральной ширины — на Retina получается 2× плотность. */
.p-rail__logo {
  display: flex; align-items: center; justify-content: center;
  width: 100%; height: var(--c-control-size-lg);
  margin-bottom: var(--c-gap-2); text-decoration: none;
}
.p-rail__logo img { width: var(--c-gap-8); height: auto; display: block; }
.p-rail__item {
  width: var(--c-control-size-lg); height: var(--c-control-size-lg);
  border-radius: var(--c-border-radius-base);
  display: flex; align-items: center; justify-content: center;
  color: var(--c-text-color-regular); text-decoration: none;
  border: 0; background: none; cursor: pointer;
  transition: background-color var(--c-transition-duration), color var(--c-transition-duration);
}
.p-rail__item:hover, .p-rail__item.is-active { background: var(--c-color-primary-50); color: var(--c-color-primary); }

.p-burger { display: none; }

/* Try it — drawer p-dialog--drawer; статус ответа и фрейм виджета. */
.p-tryit__status { font: var(--c-text-controls); font-weight: var(--c-font-weight-semi-bold); }
.p-tryit__status.is-success { color: var(--c-color-success-500); }
.p-tryit__status.is-error { color: var(--c-color-error-500); }
#tryit-error { overflow-wrap: anywhere; }
.p-tryit__frame {
  display: block; width: 100%; height: calc(var(--c-grid-size) * 150);
  border: var(--c-border-width) solid var(--c-border-color-light);
  border-radius: var(--c-border-radius-base); background: var(--c-fill-color-blank);
}

/* Публичный каркас изолирован от сетки AdminLTE. */
.p-portal-shell {
  min-height: 100vh; min-height: 100dvh;
  padding-left: var(--c-gap-9);
  background: var(--c-fill-color-blank);
}
.p-portal-shell > .app-main {
  min-width: 0; max-width: none; margin: 0; transition: none;
}
.p-portal-shell > .p-portal-header { margin: 0; position: relative; }
.p-portal-shell > .p-portal-rail { width: var(--c-gap-9); }
.p-portal-shell > .p-portal-sidebar {
  position: fixed; top: 0; bottom: 0; left: var(--c-gap-9);
  width: min(var(--c-aside-width), calc(100vw - var(--c-gap-9)));
  min-width: 0; max-width: none;
  margin: 0; transform: none; z-index: 1030;
  visibility: hidden; transition: none;
}
.sidebar-open .p-portal-shell > .p-portal-sidebar { visibility: visible; }
.p-portal-shell [data-portal-sidebar-toggle] { display: inline-flex; }
@media (min-width: 1024px) {
  .sidebar-open .p-portal-shell:has(> .p-portal-sidebar) {
    padding-left: calc(var(--c-gap-9) + var(--c-aside-width));
  }
}
@media print {
  .p-portal-shell,
  .sidebar-open .p-portal-shell:has(> .p-portal-sidebar) { padding-left: 0; }
  #tryit-modal, #tryit-toggle { display: none !important; }
  .p-portal-shell > .p-portal-sidebar,
  .p-portal-shell > .p-portal-rail { display: none !important; }
}
.p-portal-rail.sidebar-icon-bar {
  background: var(--c-fill-color-blank);
  border-right: var(--c-border-width) solid var(--c-border-color-light);
  padding: var(--c-gap-3) var(--c-gap-2); gap: var(--c-gap-2);
}
.p-portal-rail__links {
  display: flex; flex-direction: column; align-items: center;
  flex: 1; min-height: 0; width: 100%; overflow-y: auto; gap: var(--c-gap-2);
}
.p-portal-rail__links .p-rail__item { flex-shrink: 0; }
.p-portal-rail__logout { width: 100%; border: 0; background: none; }
.p-portal-rail .p-dropdown__menu {
  top: auto; bottom: 0; left: calc(100% + var(--c-gap-2));
}
.p-portal-rail .p-dropdown__item { text-decoration: none; }
.p-portal-rail .p-dropdown__item[aria-current="true"] { color: var(--c-color-primary); }

.p-portal-sidebar.app-sidebar {
  background: var(--c-fill-color-blank);
  color: var(--c-text-color-primary);
  border-right: var(--c-border-width) solid var(--c-border-color-light);
}
.p-portal-sidebar__heading {
  padding: var(--c-gap-3); font: var(--c-text-body-2);
  color: var(--c-text-color-secondary); overflow-wrap: anywhere;
}
.p-portal-sidebar .p-nav__link { overflow-wrap: anywhere; }

.p-portal-flash { margin-bottom: var(--c-gap-4); }
.p-portal-flash .p-alert__text { min-width: 0; overflow-wrap: anywhere; }
.p-portal-flash > .p-btn { flex-shrink: 0; }

.p-portal-sidebar.app-sidebar {
  display: flex; flex-direction: column;
  height: 100vh; height: 100dvh;
}
.p-portal-sidebar__search-box {
  flex-shrink: 0; padding-top: var(--c-menu-padding);
}
.p-portal-sidebar__scroll {
  flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior-y: contain;
  padding-bottom: var(--c-gap-4);
}
.p-portal-rail.sidebar-icon-bar { height: 100vh; height: 100dvh; }
.p-portal-rail > .p-dropdown, .p-portal-rail > .p-rail__logo { flex-shrink: 0; }

.p-portal-header.app-header {
  display: flex; justify-content: flex-start; gap: var(--c-gap-3);
  background: var(--c-fill-color-blank); color: var(--c-text-color-primary);
  padding: var(--c-gap-2) var(--c-gap-4);
  height: auto; min-height: var(--c-gap-9);
}
.p-portal-header > .p-btn { flex-shrink: 0; }
.p-portal-header .p-breadcrumbs { min-width: 0; flex: 1; }
.p-portal-header .p-breadcrumbs__sep { flex-shrink: 0; }
.p-portal-header > .p-header__actions { flex-shrink: 0; }

/* ─────────────────────────────────────── шапка страницы */
.p-page-head { margin-bottom: var(--c-gap-5); }
:where(.p-portal-shell) h1 { font: var(--c-text-headline-3); color: var(--c-text-color-primary); margin: 0; }
.p-page-head :is(h1, .p-page-title) { margin: var(--c-gap-2) 0 var(--c-gap-1); }
.p-page-head__desc { font: var(--c-text-body-2); color: var(--c-text-color-regular); margin: 0; }
.p-page-head__meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--c-gap-2); margin-top: var(--c-gap-3); }
.p-portal-shell .p-code { font-size: inherit; }
.p-portal-shell .p-dl dt { font-weight: inherit; }

/* ─────────────────────────────────────── главная */
.p-portal-shell:has(.p-home, .p-doc) { background: var(--c-bg-color-page); }
.app-content > .container-fluid > .p-content__inner { margin-top: calc(var(--c-gap-5) - 50px); }
@media (max-width: 767.98px) {
  .app-content > .container-fluid:has(> .p-content__inner) { padding-left: var(--c-gap-1); padding-right: var(--c-gap-1); }
}
.p-hero { text-align: center; padding: var(--c-gap-8) 0 var(--c-gap-7); }
.p-hero .p-h1 { margin-bottom: var(--c-gap-2); }
.p-systems { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--c-gap-5); }
.p-system-card { text-align: center; padding: var(--c-gap-7) var(--c-gap-5); }
.p-system-card__icon { color: var(--c-color-primary); margin-bottom: var(--c-gap-3); }
.p-system-card__title { font: var(--c-text-headline-5); color: var(--c-text-color-primary); margin: 0 0 var(--c-gap-1); }
.p-system-card__desc { font: var(--c-text-body-2); color: var(--c-text-color-primary); margin: 0; }
.p-duo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--c-gap-5); align-items: start; margin-top: var(--c-gap-7); }
.p-stack { display: flex; flex-direction: column; gap: var(--c-gap-3); }
.p-stack--lg { gap: var(--c-gap-4); }
.p-mt-4 { margin-top: var(--c-gap-4); }
.p-mb-4 { margin-bottom: var(--c-gap-4); }

/* ─────────────────────────────────────── быстрый старт (опросник) */
.p-question { border: 0; margin: 0 0 var(--c-gap-5); padding: 0; min-width: 0; }
.p-question__title { display: block; padding: 0; margin: 0 0 var(--c-gap-2); font: var(--c-text-headline-6); color: var(--c-text-color-primary); }
.p-question__options { display: flex; flex-direction: column; align-items: flex-start; gap: var(--c-gap-1); }
.p-questionnaire__results { margin-bottom: var(--c-gap-5); }

/* сетка карточек (методы, смежные методы) */
.p-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(calc(var(--c-grid-size) * 65), 1fr)); gap: var(--c-gap-4); }
.p-tile-title { font: var(--c-text-headline-6); color: var(--c-text-color-primary); margin: 0 0 var(--c-gap-1); }
.p-system-start { font: var(--c-text-body-2); color: var(--c-text-color-primary); overflow-wrap: anywhere; }
.p-system-start h1, .p-system-start h2, .p-system-start h3, .p-system-start h4 {
  font: var(--c-text-headline-6); color: var(--c-text-color-primary); margin: var(--c-gap-5) 0 var(--c-gap-2);
}
.p-system-start > :first-child, .p-system-start h4:first-child { margin-top: 0; }
.p-system-start [style] { font-size: inherit !important; font-family: inherit !important; color: inherit !important; }
.p-system-start a { color: var(--c-color-primary); }
.p-system-start p { margin: 0 0 var(--c-gap-3); }
.p-tile-desc { font: var(--c-text-body-2); color: var(--c-text-color-regular); margin: 0; }

/* ─────────────────────────────────────── поиск */
.p-search-form { display: flex; gap: var(--c-gap-3); align-items: flex-start; margin-bottom: var(--c-gap-5); }
.p-search-form .p-field { flex: 1; margin-bottom: 0; }
.p-search-count { margin: 0 0 var(--c-gap-3); }
.p-result { display: block; text-decoration: none; margin-bottom: var(--c-gap-3); }
.p-result__title { font: var(--c-text-headline-6); color: var(--c-text-color-primary); margin: 0 0 var(--c-gap-1); }
.p-result__snippet { font: var(--c-text-body-2); color: var(--c-text-color-primary); margin: 0 0 var(--c-gap-2); }
.p-result__path { font: var(--c-text-caption); color: var(--c-text-color-secondary); font-family: var(--p-font-family-mono); }
mark { background: var(--c-color-primary-100); color: var(--c-text-color-primary); padding: 0 var(--c-gap-025); border-radius: var(--c-border-radius-sm); }

/* ─────────────────────────────────────── Try it */
.p-tryit-bar { display: flex; gap: var(--c-gap-3); align-items: center; margin-bottom: var(--c-gap-4); flex-wrap: wrap; }
.p-tryit__ns { font: var(--c-text-body-2); color: var(--c-text-color-regular); font-family: var(--p-font-family-mono); }
.p-tryit__response { margin-top: var(--c-gap-4); }
.p-tryit__response .p-code-block { margin-top: var(--c-gap-3); }
.p-row { display: flex; flex-wrap: wrap; gap: var(--c-gap-3); align-items: center; }

/* ─────────────────────────────────────── статья метода */
.p-example { margin: 0; }
/* копирование — кнопкой в .p-code-block__bar, тулбар Prism дублировал бы её */
.p-example div.code-toolbar > .toolbar { display: none; }

/* ─────────────────────────────────────── AI-ассистент
 * Структура как на портале (маркер и инструменты в шапке, строка ввода снизу),
 * оформление — из дизайн-системы ЛК. Панель — компонент Drawer. */
.p-chat__log { display: flex; flex-direction: column; gap: var(--c-gap-3); flex: 1; overflow-y: auto; }
.p-bubble { max-width: 82%; padding: var(--c-gap-3) var(--c-gap-4); border-radius: var(--c-border-radius-md); font: var(--c-text-body-2); }
/* Реплика пользователя — на светлой ступени бренда: белый текст на primary-500
   даёт 2.66:1 и не проходит AA. */
.p-bubble--user { align-self: flex-end; background: var(--c-color-primary-100); color: var(--c-text-color-primary); border-bottom-right-radius: var(--c-border-radius-sm); }
.p-bubble--bot { align-self: flex-start; background: var(--c-fill-color-blank); border: var(--c-border-width) solid var(--c-border-color-light); border-bottom-left-radius: var(--c-border-radius-sm); color: var(--c-text-color-primary); }
/* Ответ ассистента приходит в Markdown (на портале — marked + DOMPurify):
   внутри реплики те же текстовые правила, только плотнее. */
.p-bubble > :first-child { margin-top: 0; }
.p-bubble > :last-child { margin-bottom: 0; }
.p-bubble p { margin: 0 0 var(--c-gap-2); }
.p-bubble ul, .p-bubble ol { margin: 0 0 var(--c-gap-2); padding-left: var(--c-gap-5); }
.p-bubble li + li { margin-top: var(--c-gap-1); }
.p-bubble h1, .p-bubble h2, .p-bubble h3, .p-bubble h4 { font: var(--c-text-headline-6); margin: var(--c-gap-3) 0 var(--c-gap-1); }
.p-bubble code { font-family: var(--p-font-family-mono); background: var(--c-fill-color); padding: var(--c-gap-025) var(--c-gap-1); border-radius: var(--c-border-radius-sm); }
.p-bubble pre { margin: 0 0 var(--c-gap-2); padding: var(--c-gap-2) var(--c-gap-3); overflow-x: auto; background: var(--c-fill-color-light); border: var(--c-border-width) solid var(--c-border-color-light); border-radius: var(--c-border-radius-base); }
.p-bubble pre code { background: none; padding: 0; }
.p-bubble a { color: var(--c-color-primary-600); }
.p-bubble table { border-collapse: collapse; margin: 0 0 var(--c-gap-2); }
.p-bubble th, .p-bubble td { padding: var(--c-gap-1) var(--c-gap-2); border-bottom: var(--c-border-width) solid var(--c-border-color-lighter); text-align: left; }
.p-bubble__sources { margin-top: var(--c-gap-2); padding-top: var(--c-gap-2); border-top: var(--c-border-width) dashed var(--c-border-color-light); display: flex; flex-wrap: wrap; gap: var(--c-gap-1); }

.p-fab {
  position: fixed; right: var(--c-gap-5); bottom: var(--c-gap-5); z-index: 900;
  width: var(--c-gap-8); height: var(--c-gap-8);
  display: inline-flex; align-items: center; justify-content: center;
  border: 0; border-radius: var(--el-border-radius-circle); cursor: pointer;
  background: var(--c-color-primary); color: var(--c-color-on-primary);
  box-shadow: var(--el-box-shadow-light);
  transition: background-color var(--c-transition-duration) var(--el-transition-function-ease-in-out-bezier);
}
.p-fab:hover { background: var(--c-color-primary-400); }
.p-fab:active { background: var(--c-color-primary-600); }

.p-assistant__bar {
  display: flex; align-items: center; justify-content: space-between; gap: var(--c-gap-3);
  padding: var(--c-gap-2) var(--c-gap-2) var(--c-gap-2) var(--c-gap-4);
  border-bottom: var(--c-border-width) solid var(--c-border-color-light);
  flex: none;
}
.p-assistant__badge {
  display: inline-flex; align-items: center; gap: var(--c-gap-1);
  font: var(--c-text-controls); font-weight: var(--c-font-weight-semi-bold);
  color: var(--c-text-color-primary);
}
.p-assistant__badge .p-icon { color: var(--c-color-primary); }
.p-assistant__tools { display: inline-flex; gap: var(--c-gap-1); }
.p-assistant__head { padding: var(--c-gap-4) var(--c-gap-4) var(--c-gap-2); flex: none; }
.p-assistant__title { font: var(--c-text-headline-6); color: var(--c-text-color-primary); margin: 0; }
.p-assistant__sub { font: var(--c-text-body-2); color: var(--c-text-color-regular); margin: var(--c-gap-1) 0 0; }
.p-assistant .p-chat__log { padding: var(--c-gap-3) var(--c-gap-4); }
.p-assistant__foot {
  flex: none; padding: var(--c-gap-3) var(--c-gap-4) var(--c-gap-4);
  border-top: var(--c-border-width) solid var(--c-border-color-light);
}
.p-assistant__row { display: flex; gap: var(--c-gap-2); align-items: flex-end; }
.p-assistant__row .p-textarea { min-height: var(--c-control-size-lg); max-height: var(--c-gap-10); }
.p-assistant__row .p-btn { flex: none; height: var(--c-control-size-lg); }
.p-assistant__hint { margin: var(--c-gap-2) 0 0; text-align: center; }
.p-assistant__badge { white-space: nowrap; }
.p-assistant--page { display: flex; flex-direction: column; padding: 0; height: calc(100dvh - var(--c-gap-10) * 4); min-height: 400px; overflow: hidden; }

/* ─────────────────────────────────────── страница UI Kit */
.p-kit-nav { display: flex; gap: var(--c-gap-1); overflow-x: auto; padding-bottom: var(--c-gap-2); margin-bottom: var(--c-gap-4); }
.p-kit-nav a {
  flex: none; display: inline-flex; align-items: center; height: var(--c-control-size-md);
  padding: 0 var(--c-gap-3); border-radius: var(--c-border-radius-base);
  font: var(--c-text-body-2); color: var(--c-text-color-regular); text-decoration: none;
}
.p-kit-nav a:hover { background: var(--c-color-primary-50); color: var(--c-color-primary); }
.p-kit-section { margin-bottom: var(--c-gap-7); scroll-margin-top: var(--c-gap-9); }
.p-kit-section > .p-section-title { margin-top: 0; }
.p-kit-note { margin: 0 0 var(--c-gap-3); color: var(--c-text-color-regular); }
.p-kit-demo { padding: var(--c-gap-4); background: var(--c-bg-color-page); border-radius: var(--c-border-radius-base); margin-bottom: var(--c-gap-2); }
.p-kit-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(calc(var(--c-grid-size) * 70), 1fr)); gap: var(--c-gap-4); }
.p-kit-ramp { margin-bottom: var(--c-gap-4); }
.p-kit-ramp > .p-h6 { margin-bottom: var(--c-gap-2); }
.p-kit-swatches { display: grid; grid-template-columns: repeat(auto-fill, minmax(var(--c-gap-10), 1fr)); gap: var(--c-gap-1); }
.p-kit-sw { border: var(--c-border-width) solid var(--c-border-color-light); border-radius: var(--c-border-radius-base); overflow: hidden; background: var(--c-fill-color-blank); }
.p-kit-sw__c { height: var(--c-gap-8); border-bottom: var(--c-border-width) solid var(--c-border-color-lighter); }
.p-kit-sw__m { padding: var(--c-gap-1) var(--c-gap-2); font: var(--c-text-caption); color: var(--c-text-color-regular); overflow-wrap: anywhere; }
.p-kit-sw__m b { display: block; color: var(--c-text-color-primary); }
.p-kit-sw__m span { font-family: var(--p-font-family-mono); }
.p-kit-type { display: flex; gap: var(--c-gap-4); align-items: baseline; padding: var(--c-gap-2) 0; border-bottom: var(--c-border-width) solid var(--c-border-color-lighter); flex-wrap: wrap; }
.p-kit-type__meta { flex: none; width: calc(var(--c-grid-size) * 70); font: var(--c-text-caption); color: var(--c-text-color-regular); font-family: var(--p-font-family-mono); }
.p-kit-type__meta b { color: var(--c-text-color-primary); }
.p-kit-type__sample { flex: 1; min-width: calc(var(--c-grid-size) * 60); color: var(--c-text-color-primary); }
.p-kit-space { display: flex; align-items: center; gap: var(--c-gap-3); padding: var(--c-gap-1) 0; }
.p-kit-space__bar { background: var(--c-color-primary-400); height: var(--c-gap-3); border-radius: var(--c-border-radius-sm); flex: none; }
.p-kit-box { width: var(--c-gap-10); height: var(--c-gap-8); background: var(--c-color-primary-100); border: var(--c-border-width) solid var(--c-color-primary-300); margin: 0 auto var(--c-gap-1); }
.p-kit-shadow { width: var(--c-gap-10); height: var(--c-gap-8); background: var(--c-fill-color-blank); border-radius: var(--c-border-radius-base); margin: 0 auto var(--c-gap-2); }
.p-kit-tile { text-align: center; font: var(--c-text-caption); color: var(--c-text-color-regular); }
.p-kit-tile b { color: var(--c-text-color-primary); }
.p-kit-tile--icon { padding: var(--c-gap-3); border: var(--c-border-width) solid var(--c-border-color-light); border-radius: var(--c-border-radius-base); background: var(--c-fill-color-blank); }
.p-kit-sizes > * + * { margin-top: var(--c-gap-2); }
.p-kit-brand { display: flex; align-items: center; justify-content: center; gap: var(--c-gap-5); min-height: var(--c-gap-9); }
.p-kit-brand__logo { width: var(--c-gap-10); }

/* принудительные состояния — чтобы сравнить все состояния рядом */
.p-force-hover.p-btn { background: var(--c-color-primary-50); color: var(--c-color-primary); border-color: var(--c-color-primary-200); }
.p-force-active.p-btn { background: var(--c-color-primary-50); color: var(--c-color-primary); border-color: var(--c-color-primary); }
.p-force-focus.p-btn { outline: var(--c-focus-outline); outline-offset: var(--c-focus-outline-offset); }
.p-force-hover.p-btn--primary { background: var(--c-color-primary-400); border-color: var(--c-color-primary-400); color: var(--c-color-on-primary); }
.p-force-active.p-btn--primary { background: var(--c-color-primary-600); border-color: var(--c-color-primary-600); color: var(--c-color-on-primary); }
.p-force-hover.p-btn--danger { background: var(--c-color-error-400); border-color: var(--c-color-error-400); color: var(--c-color-on-error); }
.p-force-active.p-btn--danger { background: var(--c-color-error-600); border-color: var(--c-color-error-600); color: var(--c-color-on-error); }
.p-force-hover.p-btn--text { background: var(--c-fill-color-light); border-color: transparent; color: var(--c-text-color-primary); }
.p-force-active.p-btn--text { background: var(--c-fill-color); border-color: transparent; color: var(--c-text-color-regular); }


/* ─────────────────────────────────────── образцы админки */
.p-page-head--actions { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--c-gap-4); }
.p-page-head__actions { display: flex; flex-wrap: wrap; gap: var(--c-gap-3); }
.p-bulk-bar {
  display: flex; flex-wrap: wrap; align-items: center; gap: var(--c-gap-3);
  margin-bottom: var(--c-gap-3); padding: var(--c-gap-2) var(--c-gap-4);
  background: var(--c-color-primary-50); border: var(--c-border-width) solid var(--c-color-primary-100);
  border-radius: var(--c-border-radius-base);
}
.p-table-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--c-gap-3); margin-top: var(--c-gap-4); }
.p-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--c-gap-4); }
.p-editor-preview { padding: var(--c-gap-4); border: var(--c-border-width) solid var(--c-border-color-light); border-radius: var(--c-border-radius-base); }

/* экран входа: без рэйла, по центру */
.p-bare { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: var(--c-gap-5) var(--c-gap-3); }
.p-login { width: 100%; max-width: calc(var(--c-grid-size) * 105); display: flex; flex-direction: column; align-items: center; gap: var(--c-gap-5); }
.p-login > .p-card { width: 100%; }
.p-login__logo { width: var(--c-gap-10); height: auto; }
.p-login__title { margin: 0 0 var(--c-gap-5); }
.p-login__row { margin: 0 0 var(--c-gap-4); }
.p-login__foot { margin: 0; }

@media (max-width: 768px) {
  .p-form-grid { grid-template-columns: minmax(0, 1fr); }
}

/* ─────────────────────────────────────── адаптив кастомной вёрстки */
@media (max-width: 1024px) {
  .p-burger { display: inline-flex; }
}
@media (max-width: 768px) {
  .p-systems { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .p-duo { grid-template-columns: minmax(0, 1fr); }
  .p-rail { position: fixed; inset: 0 auto 0 0; }
  .p-app { grid-template-columns: minmax(0, 1fr); padding-left: var(--c-gap-9); }
  .p-search-form { flex-direction: column; align-items: stretch; }
  .p-search-form .p-btn { width: 100%; }
  .p-kit-type__meta { width: 100%; }
}
@media (max-width: 480px) {
  .p-hero { padding: var(--c-gap-6) 0 var(--c-gap-5); }
  .p-hero .p-h1 { font: var(--c-text-headline-3); }
  .p-systems { grid-template-columns: minmax(0, 1fr); }
  .p-fab { right: var(--c-gap-3); bottom: var(--c-gap-3); }
  .p-bubble { max-width: 92%; }
}

/* ─────────────────────────────────────── печать статьи */
@media print {
  .p-rail, .p-sidebar, .p-header, .p-fab, .p-toc, .p-skip, .p-toast-host, .p-overlay { display: none !important; }
  .p-app, .p-body-cols { display: block; padding: 0; }
  body, .p-content { background: var(--c-fill-color-blank); padding: 0; }
  .p-code-block__bar .p-btn { display: none; }
  .p-code-block__pre { white-space: pre-wrap; }
}
