/* =====================================================================
   Группа C — партнёры и дистрибьюторы: partners.html, partner-portal.html
   Подключается ПОСЛЕ styles.css. Токены и базовые компоненты — из styles.css
   (кнопки, поля, флаги, .panel, .subnav, .principles, .patient-redirect, .status…).
   Здесь — только новые компоненты. Префиксы: .pt-* — публичная страница,
   .pp-* / .kb-* / .ac-* / .mat-* — кабинет партнёра.
   Цвета статусов подобраны на контраст ≥ 4,5:1 (WCAG 2.2 AA).
   ===================================================================== */

/* Атрибут hidden всегда скрывает элемент (у .form__row, .btn и др. в styles.css задан display) */
[hidden] { display: none !important; }

:root {
  --pp-radius: 12px;
  --pp-sidebar: 240px;
  --chip-done-ink: var(--color-success);    --chip-done-bg: var(--color-success-bg);
  --chip-prog-ink: var(--color-blue-700);   --chip-prog-bg: var(--color-mist-blue);
  --chip-todo-ink: var(--color-slate-700);  --chip-todo-bg: var(--color-surface-2);
  --chip-warn-ink: var(--color-warning);    --chip-warn-bg: var(--color-warning-bg);
  --chip-rest-ink: var(--color-orange-700); --chip-rest-bg: var(--color-mist-peach);
  --hatch: repeating-linear-gradient(135deg, rgba(8, 127, 196, 0.045) 0 10px, transparent 10px 20px);
}

/* ---------------------------------------------------------------------
   Общие мелкие компоненты
   --------------------------------------------------------------------- */
.pt-checklist { list-style: none; display: grid; gap: var(--space-4); margin: 0 0 var(--space-4); }
.pt-checklist li { display: grid; grid-template-columns: 28px 1fr; gap: var(--space-3); align-items: start; font-size: var(--text-small); line-height: 1.55; }
.pt-checklist li > .icon {
  width: 24px; height: 24px; padding: 4px; border-radius: 50%; margin-top: 1px;
  background: var(--color-mist-blue); color: var(--color-blue-700); stroke-width: 2.2;
}
.pt-checklist strong { display: block; font-size: 1rem; font-weight: 600; color: var(--color-ink-900); margin-bottom: 2px; }
.pt-checklist--compact { gap: var(--space-2); }
.pt-checklist--compact li { font-size: 0.9063rem; }
.pt-checklist li.is-block > .icon { background: var(--chip-warn-bg); color: var(--chip-warn-ink); }

/* Поля в формах группы C не растягиваются по высоте соседнего поля с подсказкой */
[data-partner-form] .form__row, [data-deal-form] .form__row { align-items: start; }
[data-partner-form] .field, [data-deal-form] .field { align-content: start; }

.pt-redirect--info { border-left-color: var(--color-blue-500); background: var(--color-mist-blue); }
.pt-redirect--block { border-left-color: var(--color-warning); background: var(--color-warning-bg); }

/* Пометка «для бизнес-партнёров» (D-06 без CE) */
.pt-regnote {
  margin-top: var(--space-8); padding: var(--space-4) var(--space-5);
  border: 1px solid var(--color-line); border-left: 3px solid var(--color-orange-500); border-radius: var(--radius-md);
  background: #fff; font-size: var(--text-small); line-height: 1.6;
}
.pt-regnote__label { display: block; color: var(--color-orange-700); font-weight: 600; margin-bottom: 4px; }
.pt-regnote p { max-width: 100ch; margin-bottom: var(--space-2); }

/* ---------------------------------------------------------------------
   partners.html — HERO
   --------------------------------------------------------------------- */
.hero--partners h1 { max-width: 16ch; }
.hero--partners::after { opacity: 0.25; }
.hero--partners .hero__copy > .flag { justify-self: start; margin-top: calc(-1 * var(--space-3)); }
.hero--partners .hero__media img {
  width: auto; height: clamp(220px, 24vw, 320px);
  mix-blend-mode: normal; -webkit-mask-image: none; mask-image: none;
  filter: drop-shadow(0 24px 24px rgba(40, 61, 76, 0.12));
}
.pt-login-link {
  display: grid; grid-template-columns: 40px 1fr auto; gap: var(--space-3); align-items: center;
  margin-top: var(--space-3); padding: var(--space-3); border-radius: var(--radius-md);
  background: var(--color-mist-blue); color: var(--color-ink-900); text-decoration: none;
}
.pt-login-link::after { content: "→"; color: var(--color-blue-600); font-weight: 600; }
.pt-login-link:hover { background: #D9E8F5; color: var(--color-ink-900); }
.pt-login-link strong { display: block; font-weight: 700; font-size: 0.9375rem; }
.pt-login-link .caption { display: block; }
.pt-login-link__icon { width: 40px; height: 40px; border-radius: 50%; background: #fff; display: grid; place-items: center; color: var(--color-blue-700); }

/* ---------------------------------------------------------------------
   01 · Зачем партнёрство
   --------------------------------------------------------------------- */
.pt-why { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--grid-gap); }
.pt-why__card {
  position: relative; display: grid; gap: var(--space-3); align-content: start;
  background: #fff; border: 1px solid var(--color-line); border-radius: var(--radius-lg); padding: var(--space-5) var(--space-5) var(--space-6);
}
.pt-why__card::before {
  content: ""; position: absolute; left: var(--space-5); top: -1px; width: 36px; height: 2px; background: var(--color-orange-500);
}
.pt-why__card--accent { background: var(--color-mist-blue); border-color: #D3E1EE; }
.pt-why__label { font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--color-blue-600); }
.pt-why__card h3 { font-size: 1.25rem; line-height: 1.35; }
.pt-why__card p { font-size: var(--text-small); margin: 0; }
.pt-why__card .flag { justify-self: start; }

.pt-promise {
  margin-top: var(--space-6); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4) var(--space-8);
  background: var(--color-mist-peach); border: 1px solid #F4E1D2; border-radius: var(--radius-lg); padding: var(--space-5) var(--space-6);
}
.pt-promise h3 { font-size: 1.0625rem; font-weight: 700; margin-bottom: 6px; }
.pt-promise p { font-size: var(--text-small); margin: 0; }
.pt-promise > .flag { grid-column: 1 / -1; margin-top: 0; }
@media (max-width: 1139px) { .pt-why { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 639px) { .pt-why, .pt-promise { grid-template-columns: 1fr; } .pt-promise { padding: var(--space-5); } }

/* ---------------------------------------------------------------------
   02 · Что получает партнёр + превью кабинета
   --------------------------------------------------------------------- */
.pt-receive { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(24px, 4vw, 56px); align-items: start; }
.pt-benefits { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--grid-gap); }
.pt-benefit {
  display: grid; gap: var(--space-3); align-content: start;
  background: #fff; border: 1px solid var(--color-line); border-radius: var(--radius-lg); padding: var(--space-5);
}
.pt-benefit__icon { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--color-mist-blue); color: var(--color-blue-700); }
.pt-benefit__icon .icon { width: 22px; height: 22px; }
.pt-benefit:nth-child(even) .pt-benefit__icon { background: var(--color-mist-peach); color: var(--color-orange-700); }
.pt-benefit h3 { font-size: 1.1875rem; }
.pt-benefit p { font-size: var(--text-small); margin: 0; }
.pt-benefit .flag { justify-self: start; }

.pt-preview {
  position: sticky; top: calc(var(--header-h) + 72px);
  background: #fff; border: 1px solid #C9DAE7; border-radius: var(--pp-radius); box-shadow: var(--shadow-md); overflow: hidden;
}
.pt-preview__bar { display: flex; gap: 6px; padding: 10px 14px; background: var(--gradient-mist); border-bottom: 1px solid var(--color-line); }
.pt-preview__bar span { width: 9px; height: 9px; border-radius: 50%; background: #C9D6E0; }
.pt-preview__bar span:first-child { background: var(--color-orange-500); }
.pt-preview__body { padding: var(--space-5) var(--space-6) var(--space-6); display: grid; gap: var(--space-4); }
.pt-preview__badge { display: inline-flex; align-items: center; gap: 6px; font-size: 0.8125rem; font-weight: 700; color: var(--color-blue-700); margin: 0; }
.pt-preview h3 { font-size: 1.375rem; }
.pt-preview__list { list-style: none; display: grid; }
.pt-preview__list li {
  display: grid; grid-template-columns: 22px 1fr; gap: var(--space-3); align-items: start;
  padding: 10px 0; border-top: 1px solid var(--color-line); font-size: var(--text-caption); color: var(--color-slate-700); line-height: 1.45;
}
.pt-preview__list li .icon { color: var(--color-blue-600); margin-top: 2px; }
.pt-preview__list strong { display: block; color: var(--color-ink-900); font-size: 0.9375rem; font-weight: 600; }
.pt-preview .btn { justify-self: start; }
@media (max-width: 1023px) {
  .pt-receive { grid-template-columns: 1fr; }
  .pt-preview { position: relative; top: auto; }
}
@media (max-width: 639px) { .pt-benefits { grid-template-columns: 1fr; } .pt-preview__body { padding: var(--space-5); } }

/* ---------------------------------------------------------------------
   03 · Требования + обязанности по MDR Art. 14
   --------------------------------------------------------------------- */
.pt-req { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: clamp(24px, 4vw, 64px); align-items: start; }
.pt-req__title, .pt-sub { font-size: 1.25rem; margin-bottom: var(--space-5); }
.pt-sub { margin-top: var(--space-9); }
.pt-oblig {
  position: relative; background: var(--color-mist-blue); border: 1px solid #D3E1EE; border-radius: var(--radius-lg);
  padding: var(--space-6); display: grid; gap: var(--space-3);
}
.pt-oblig__icon { width: 48px; height: 48px; border-radius: 50%; background: #fff; display: grid; place-items: center; color: var(--color-blue-700); }
.pt-oblig__icon .icon { width: 24px; height: 24px; }
.pt-oblig h3 { font-size: 1.25rem; }
.pt-oblig p { margin: 0; }
.pt-oblig__list { list-style: none; counter-reset: ob; display: grid; gap: 0; }
.pt-oblig__list li {
  counter-increment: ob; position: relative; padding: 10px 0 10px 38px; border-top: 1px solid #CFDDEA;
  font-size: var(--text-small); line-height: 1.5;
}
.pt-oblig__list li::before {
  content: counter(ob, decimal-leading-zero); position: absolute; left: 0; top: 11px;
  font-size: 0.8125rem; font-weight: 700; color: var(--color-blue-600); font-variant-numeric: tabular-nums;
}
@media (max-width: 899px) { .pt-req { grid-template-columns: 1fr; } }

/* ---------------------------------------------------------------------
   04 · Территории
   --------------------------------------------------------------------- */
.pt-terr { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 3fr); gap: var(--space-6); align-items: start; }
.pt-terr__table { width: 100%; border-collapse: collapse; font-size: var(--text-small); background: #fff; border: 1px solid var(--color-line); border-radius: var(--radius-lg); }
.pt-terr__table caption { text-align: left; font-weight: 700; padding-bottom: var(--space-3); }
.pt-terr__table caption .flag { margin-left: 6px; font-weight: 700; }
.pt-terr__table th, .pt-terr__table td { text-align: left; padding: 12px 16px; border-top: 1px solid var(--color-line); vertical-align: middle; }
.pt-terr__table thead th { background: var(--color-surface-2); font-weight: 600; font-size: 0.8125rem; color: var(--color-slate-700); border-top: 0; }
.pt-terr__table tbody th { font-weight: 600; }
.pt-terr__table td:last-child { color: var(--color-slate-700); }
.pt-terr__table tr.is-closed th, .pt-terr__table tr.is-closed td { background: #FAFBFC; }
.terr-status {
  display: inline-flex; align-items: center; gap: 6px; white-space: nowrap;
  font-size: 0.75rem; font-weight: 700; line-height: 1.2; padding: 4px 10px; border-radius: var(--radius-pill);
}
.terr-status::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.terr-status--tbc { background: #FFF8DB; color: var(--flag-ink); border: 1px dashed var(--flag-border); }
.terr-status--open { background: var(--chip-done-bg); color: var(--chip-done-ink); }
.terr-status--taken { background: var(--chip-prog-bg); color: var(--chip-prog-ink); }
.terr-status--direct { background: var(--color-mist-peach); color: var(--color-orange-700); }
.terr-status--closed { background: #EDF1F4; color: var(--color-slate-700); }
.pt-terr__legend { background: rgba(255, 255, 255, 0.85); border: 1px solid var(--color-line); border-radius: var(--radius-lg); padding: var(--space-5); }
.pt-terr__legend ul { list-style: none; display: grid; gap: var(--space-3); margin-bottom: var(--space-4); font-size: var(--text-caption); color: var(--color-slate-700); }
.pt-terr__legend li { display: grid; gap: 4px; justify-items: start; }
@media (max-width: 1023px) { .pt-terr { grid-template-columns: 1fr; } }
@media (max-width: 639px) {
  .pt-terr__table thead { display: none; }
  .pt-terr__table, .pt-terr__table tbody, .pt-terr__table tr, .pt-terr__table th, .pt-terr__table td { display: block; width: 100%; }
  .pt-terr__table { border: 0; background: transparent; }
  .pt-terr__table caption { display: block; width: 100%; }
  .pt-terr__table tbody { display: grid; gap: var(--space-3); }
  .pt-terr__table tr { background: #fff; border: 1px solid var(--color-line); border-radius: var(--radius-lg); padding: var(--space-3) 0; }
  .pt-terr__table th, .pt-terr__table td { border: 0; padding: 4px 16px; }
  .pt-terr__table td::before { content: attr(data-label); display: block; font-size: 0.75rem; color: var(--color-slate-700); }
}

/* ---------------------------------------------------------------------
   05 · Этапы (вертикальный таймлайн: точка · шаг · «в кабинете»)
   --------------------------------------------------------------------- */
.pt-journey { list-style: none; position: relative; display: grid; max-width: 1040px; }
.pt-journey::before {
  content: ""; position: absolute; left: 17px; top: 18px; bottom: 18px; width: 1px;
  background: linear-gradient(180deg, var(--color-blue-500), var(--color-orange-500));
}
.pt-journey__step {
  position: relative; display: grid; grid-template-columns: 36px minmax(0, 1fr) minmax(0, 240px); gap: var(--space-3) var(--space-6);
  padding-bottom: var(--space-6);
}
.pt-journey__step:last-child { padding-bottom: 0; }
.pt-journey__dot {
  position: relative; z-index: 1; width: 35px; height: 35px; border-radius: 50%; background: #fff;
  border: 1.5px solid var(--color-blue-500); display: grid; place-items: center;
  font-size: 0.875rem; font-weight: 700; color: var(--color-blue-700);
}
.pt-journey__step--last .pt-journey__dot { border-color: var(--color-orange-500); color: var(--color-orange-700); }
.pt-journey__main { display: grid; gap: 6px; padding-top: 4px; }
.pt-journey__main h3 { font-size: 1.1875rem; }
.pt-journey__main p { font-size: var(--text-small); margin: 0; }
.pt-journey__main .flag { justify-self: start; }
.pt-journey__phase { font-size: 0.8125rem; font-weight: 700; color: var(--color-orange-700); letter-spacing: 0.02em; }
.pt-journey__portal {
  margin: 4px 0 0; padding: 10px 14px; border-radius: var(--radius-md); background: var(--color-surface-2);
  font-size: 0.875rem; line-height: 1.4; align-self: start;
}
.pt-journey__portal .caption { display: block; font-size: 0.75rem; }
@media (max-width: 767px) {
  .pt-journey__step { grid-template-columns: 36px minmax(0, 1fr); }
  .pt-journey__portal { grid-column: 2; margin-top: 0; }
}

/* ---------------------------------------------------------------------
   06 · Заявка: карточка входа и FAQ
   --------------------------------------------------------------------- */
.pt-login-card {
  display: grid; grid-template-columns: 44px 1fr; gap: var(--space-4); align-items: start;
  background: #fff; border: 1px solid #C9DAE7; border-radius: var(--radius-lg); padding: var(--space-5);
}
.pt-login-card__icon { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--color-mist-blue); color: var(--color-blue-700); }
.pt-login-card h3 { font-size: 1.125rem; margin-bottom: 4px; }
.pt-login-card p { margin-bottom: var(--space-3); }
.pt-faq { margin-top: var(--space-2); }
.pt-faq h3 { font-size: 1.125rem; margin-bottom: var(--space-2); }
.pt-faq details { border-top: 1px solid var(--color-line); }
.pt-faq details:last-child { border-bottom: 1px solid var(--color-line); }
.pt-faq summary {
  list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: var(--space-4); align-items: center;
  padding: 12px 0; font-size: 0.9688rem; font-weight: 600; min-height: 44px;
}
.pt-faq summary::-webkit-details-marker { display: none; }
.pt-faq summary::after { content: "+"; font-size: 1.25rem; font-weight: 400; color: var(--color-blue-600); line-height: 1; }
.pt-faq details[open] summary::after { content: "–"; }
.pt-faq details p { font-size: var(--text-small); margin: 0 0 var(--space-3); }

/* =====================================================================
   partner-portal.html — КАБИНЕТ
   ===================================================================== */
body.pp main { background: var(--color-surface-2); }

/* Плашка платформы (R7) + симулятор уровня сертификации */
.pp-platform { background: #EAF2F9; border-bottom: 1px dashed #9EC4E0; font-size: 0.8125rem; line-height: 1.45; color: var(--color-ink-900); }
.pp-platform__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-2) var(--space-5); padding-block: 8px; }
.pp-platform p { margin: 0; max-width: none; }
.pp-platform__tag {
  display: inline-block; margin-right: 8px; padding: 2px 8px; border-radius: var(--radius-sm);
  background: var(--color-ink-900); color: #fff; font-weight: 700; letter-spacing: 0.02em;
}
.pp-sim { display: flex; align-items: center; gap: var(--space-3); flex-wrap: wrap; }
.pp-sim__label { font-weight: 600; }

/* Группа кнопок-переключателей (без радиокнопок: в формах нет атрибута name) */
.pp-seg { display: inline-flex; gap: 3px; padding: 3px; background: #fff; border: 1px solid var(--color-line); border-radius: var(--radius-md); }
.pp-seg--wrap { flex-wrap: wrap; }
.pp-seg button {
  min-height: 36px; padding: 6px 12px; border: 0; border-radius: 4px; background: transparent; cursor: pointer;
  font-size: 0.875rem; font-weight: 600; color: var(--color-slate-700); white-space: nowrap;
}
.pp-seg button:hover { color: var(--color-blue-700); background: #F1F6FA; }
.pp-seg button[aria-pressed="true"] { background: var(--color-blue-600); color: #fff; }

/* Шапка кабинета */
.pp-head { background: var(--gradient-mist); border-bottom: 1px solid var(--color-line); padding-bottom: var(--space-6); }
.pp-head__grid { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--space-5); margin-top: var(--space-5); }
.pp-id { display: grid; grid-template-columns: 64px 1fr; gap: var(--space-4); align-items: center; }
.pp-id__avatar {
  width: 64px; height: 64px; border-radius: 16px; display: grid; place-items: center;
  background: linear-gradient(135deg, var(--color-blue-600), #087FC4 60%, var(--color-orange-500) 140%);
  color: #fff; font-weight: 800; font-size: 1.25rem; letter-spacing: 0.04em; box-shadow: var(--shadow-md);
}
.pp-id .kicker { margin-bottom: 4px; }
.pp-id h1 { font-size: clamp(1.5rem, 2.6vw, 2.125rem); line-height: 1.2; }
.pp-id__meta { display: flex; flex-wrap: wrap; gap: 4px 20px; margin: var(--space-2) 0 0; font-size: var(--text-small); }
.pp-id__meta div { display: flex; gap: 6px; align-items: baseline; }
.pp-id__meta dt { color: var(--color-slate-700); }
.pp-id__meta dd { margin: 0; font-weight: 600; }
.pp-level {
  display: inline-flex; align-items: center; gap: 6px; padding: 2px 10px; border-radius: var(--radius-pill);
  background: var(--chip-done-bg); color: var(--chip-done-ink); font-size: 0.8125rem; font-weight: 700;
}
.pp-level::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.pp-head__actions { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-3); align-items: center; }
@media (max-width: 559px) { .pp-id { grid-template-columns: 48px 1fr; } .pp-id__avatar { width: 48px; height: 48px; border-radius: 12px; font-size: 1rem; } }

/* Раскладка: боковая навигация + контент */
.pp-layout { display: grid; grid-template-columns: var(--pp-sidebar) minmax(0, 1fr); gap: var(--space-6); align-items: start; padding-block: var(--space-6) var(--space-10); }
.pp-layout > * { min-width: 0; }
.pp-content { display: grid; gap: var(--space-5); min-width: 0; container-type: inline-size; container-name: pp; }
/* Разделы не растягиваются по самой широкой таблице: таблица прокручивается в своей рамке */
.pp-content > * { min-width: 0; }

/* .subnav (portal.js) → вертикальная колонка на десктопе */
.pp-sidenav {
  position: sticky; top: calc(var(--header-h) + 16px); background: transparent; border: 0; z-index: 30;
  max-height: calc(100vh - var(--header-h) - 32px); overflow-y: auto;
}
.pp-sidenav > ol { flex-direction: column; gap: 2px; overflow: visible; padding: 0; }
.pp-sidenav a {
  display: flex; align-items: center; gap: 10px; white-space: normal; padding: 9px 12px; border-radius: var(--radius-md);
  color: var(--color-ink-900); font-size: 0.9375rem; position: relative;
}
.pp-sidenav a .icon { color: var(--color-slate-600); }
.pp-sidenav a:hover { background: #fff; color: var(--color-blue-700); }
.pp-sidenav a.is-active { background: #fff; color: var(--color-blue-700); box-shadow: inset 3px 0 0 var(--color-orange-500); }
.pp-sidenav a.is-active .icon { color: var(--color-blue-600); }
.pp-sidenav .pp-sidenav__sub { list-style: none; display: grid; flex-direction: column; gap: 0; overflow: visible; margin: 2px 0 6px 22px; padding: 0 0 0 12px; border-left: 1px solid var(--color-line); }
.pp-sidenav__sub a { padding: 5px 10px; font-size: 0.8438rem; color: var(--color-slate-700); }

@media (max-width: 1139px) {
  .pp-layout { grid-template-columns: minmax(0, 1fr); padding-top: 0; }
  .pp-sidenav {
    top: calc(var(--header-h) + 2px); max-height: none; overflow: visible; z-index: 40;
    margin-inline: calc(-1 * var(--page-gutter)); padding-inline: var(--page-gutter);
    background: rgba(255, 255, 255, 0.97); border-bottom: 1px solid var(--color-line);
  }
  .pp-sidenav > ol { flex-direction: row; gap: 4px; overflow-x: auto; padding-block: 6px; }
  .pp-sidenav a { white-space: nowrap; padding: 8px 12px; font-size: 0.9063rem; }
  .pp-sidenav a.is-active { background: var(--color-mist-blue); box-shadow: none; }
  .pp-sidenav .pp-sidenav__sub { display: none; }
}

/* Разделы кабинета */
.pp-section {
  background: #fff; border: 1px solid var(--color-line); border-radius: var(--pp-radius);
  padding: clamp(20px, 3vw, 40px); scroll-margin-top: calc(var(--header-h) + 24px); min-width: 0;
}
@media (max-width: 559px) { .pp-section { padding: 16px; border-radius: 10px; } .pp-section .pp-section__head { grid-template-columns: 1fr; gap: var(--space-3); } }
.pp-section__head { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: var(--space-4); align-items: start; margin-bottom: var(--space-6); }
.pp-section__head h2 { font-size: clamp(1.375rem, 2.2vw, 1.75rem); margin-bottom: 4px; }
.pp-section__head p { font-size: var(--text-small); margin-bottom: var(--space-2); }
.pp-section__head .flag { margin-top: 4px; }
.pp-section__icon { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--color-mist-blue); color: var(--color-blue-700); }
.pp-section__icon .icon { width: 22px; height: 22px; }
.pp-section--concept { border: 1.5px dashed var(--flag-border); background: var(--hatch), #fff; }
.concept-ribbon {
  max-width: none; margin: calc(-1 * var(--space-3)) 0 var(--space-5); padding: var(--space-3) var(--space-4);
  background: var(--flag-bg); color: var(--flag-ink); border-radius: var(--radius-md); font-size: var(--text-caption); line-height: 1.5;
}
.kb-chapter { scroll-margin-top: calc(var(--header-h) + 24px); }
@media (max-width: 1139px) { .pp-section, .kb-chapter { scroll-margin-top: calc(var(--header-h) + 72px); } }

/* Обзор */
.pp-stats { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
@container pp (min-width: 900px) { .pp-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@container pp (max-width: 479px) { .pp-stats { grid-template-columns: 1fr; } }
.pp-stat {
  display: grid; gap: 4px; align-content: start; position: relative;
  border: 1px solid var(--color-line); border-radius: var(--radius-lg); padding: var(--space-4) var(--space-5) var(--space-5);
}
.pp-stat::before { content: ""; position: absolute; left: var(--space-5); top: -1px; width: 28px; height: 2px; background: var(--color-blue-500); }
.pp-stat--warn { background: var(--color-mist-peach); border-color: #F4E1D2; }
.pp-stat--warn::before { background: var(--color-orange-500); }
.pp-stat__label { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--color-slate-700); }
.pp-stat__value { font-size: 1.1875rem; line-height: 1.35; margin: 2px 0 0; color: var(--color-ink-900); }
.pp-stat .caption { margin: 0; }
.pp-stat .arrow-link { margin-top: var(--space-2); justify-self: start; }

/* ---------------------------------------------------------------------
   База знаний
   --------------------------------------------------------------------- */
.kb-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-5); margin-bottom: var(--space-4); }
.kb-search { position: relative; flex: 1 1 320px; max-width: 520px; }
.kb-search .icon { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--color-slate-600); pointer-events: none; }
.kb-search input {
  width: 100%; min-height: 46px; padding: 10px 12px 10px 40px; font-size: 0.9688rem;
  border: 1px solid #9FB3C1; border-radius: var(--radius-md); background: #fff;
}
.kb-search input:focus { outline: none; border-color: var(--color-blue-700); box-shadow: 0 0 0 3px rgba(6, 93, 144, 0.25); }
.kb-toolbar__source { margin: 0; }
.kb-search__status { flex-basis: 100%; margin: 0; }
.kb-search__status:empty { display: none; }
.kb-chapters { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: var(--space-2); }
.kb-chapters a {
  display: inline-flex; align-items: center; min-height: 36px; padding: 6px 14px; border-radius: var(--radius-pill);
  border: 1px solid #BCD6EA; background: #F4F9FD; color: var(--color-blue-700); text-decoration: none; font-size: 0.875rem; font-weight: 600;
}
.kb-chapters a:hover { background: var(--color-mist-blue); }

.kb-chapter { margin-top: var(--space-8); }
.kb-chapter__title { display: flex; align-items: baseline; gap: 10px; font-size: 1.375rem; padding-bottom: var(--space-3); margin-bottom: var(--space-4); border-bottom: 1px solid var(--color-line); }
.kb-chapter__title .num { font-size: 0.9375rem; font-weight: 700; }
.kb-chapter__lead { margin-top: calc(-1 * var(--space-2)); }
.kb-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
.kb-card { min-width: 0; overflow-wrap: anywhere; }
@container pp (min-width: 760px) { .kb-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.kb-card {
  display: grid; gap: var(--space-3); align-content: start; min-width: 0;
  background: #fff; border: 1px solid var(--color-line); border-radius: var(--radius-lg); padding: var(--space-5);
}
.kb-card[hidden] { display: none; }
.kb-card .flag { justify-self: start; }
.kb-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.kb-card__id { font: 600 0.75rem/1.4 ui-monospace, SFMono-Regular, Menlo, monospace; color: var(--color-slate-700); margin-right: 4px; letter-spacing: 0.01em; }
.kb-chip {
  display: inline-flex; align-items: center; font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.03em; line-height: 1.2;
  padding: 3px 8px; border-radius: var(--radius-pill); border: 1px solid var(--color-line); color: var(--color-slate-700); background: #fff; white-space: nowrap;
}
.kb-chip--a { border-color: #BCD6EA; color: var(--color-blue-700); background: #F4F9FD; }
.kb-chip--b { border-color: var(--color-blue-700); color: #fff; background: var(--color-blue-700); }
.kb-card__title { font-size: 1.1875rem; line-height: 1.35; }
.kb-card__eyebrow { margin: 0; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--color-orange-700); }
.kb-card__title--xl { font-size: clamp(1.5rem, 2.6vw, 2.125rem); line-height: 1.2; max-width: 24ch; }
.kb-card--hero { background: var(--gradient-mist); border-color: #D3E1EE; padding: clamp(20px, 3vw, 32px); margin-bottom: var(--space-4); }
.kb-card--gap { border-style: dashed; border-color: #D7C27A; background: #FFFDF4; }

/* Текст утверждения: синяя линия слева + ID */
.kb-claim { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 10px; align-items: start; border-left: 2px solid var(--color-blue-500); padding-left: 12px; }
.kb-claim p { margin: 0; font-size: var(--text-small); line-height: 1.6; color: var(--color-ink-900); }
.kb-claim--lg { border-left-color: var(--color-orange-500); }
.kb-claim--lg p { font-size: 1.125rem; line-height: 1.55; }
.claim-ref {
  font: 700 0.6875rem/1.5 ui-monospace, SFMono-Regular, Menlo, monospace; padding: 1px 6px; margin-top: 3px; border-radius: 3px;
  background: var(--color-mist-blue); color: var(--color-blue-700); white-space: nowrap;
}
@container pp (max-width: 559px) {
  .kb-claim { grid-template-columns: 1fr; padding-left: 10px; }
  .claim-ref { justify-self: start; margin-top: 0; }
  .kb-card, .ev-class, .ac-level, .leads-rules, .news-item { padding: var(--space-4); }
  .kb-iu__main { padding: var(--space-4); }
}
body.show-claims .claim-ref { display: none; }
body.show-claims .kb-claim { grid-template-columns: 1fr; }

/* «Do not say» */
.kb-dont { background: var(--chip-warn-bg); border-radius: var(--radius-md); padding: 10px 12px; }
.kb-dont__label { display: flex; align-items: center; gap: 6px; margin: 0 0 4px; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--chip-warn-ink); }
.kb-dont__label .icon { width: 15px; height: 15px; }
.kb-dont ul { list-style: none; display: flex; flex-wrap: wrap; gap: 4px 6px; font-size: 0.8438rem; line-height: 1.45; color: var(--color-ink-900); }
.kb-dont li { background: rgba(255, 255, 255, 0.75); border-radius: 4px; padding: 2px 8px; }

.kb-missing { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; }
.kb-missing li { font-size: 0.8125rem; padding: 4px 10px; border-radius: var(--radius-pill); border: 1px dashed #B9A15A; color: var(--flag-ink); background: #fff; }

/* Шаги A/B/C в главной карточке */
.kb-steps { list-style: none; display: grid; grid-template-columns: 1fr; gap: var(--space-5); margin: var(--space-2) 0; }
.kb-steps li { position: relative; display: grid; gap: var(--space-2); align-content: start; border-top: 1px solid #CFDDEA; padding-top: var(--space-4); }
.kb-steps li::before { content: ""; position: absolute; top: -5px; left: 0; width: 9px; height: 9px; border-radius: 50%; background: var(--color-blue-500); box-shadow: 0 0 0 3px rgba(8, 127, 196, 0.15); }
.kb-steps li:last-child::before { background: var(--color-orange-500); box-shadow: 0 0 0 3px rgba(236, 133, 43, 0.18); }
.kb-steps .caption { margin: 0; }
@container pp (min-width: 760px) { .kb-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* Назначение */
.kb-iu { display: grid; grid-template-columns: 1fr; gap: var(--space-5); }
@container pp (min-width: 760px) { .kb-iu { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); } }
.kb-iu__main { display: grid; gap: var(--space-4); align-content: start; background: var(--color-mist-peach); border: 1px solid #F4E1D2; border-radius: var(--radius-lg); padding: var(--space-6); }
.kb-iu__main > p { margin: 0; }
.kb-iu__label { font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--color-orange-700); }
.kb-iu__rules { display: grid; gap: var(--space-3); align-content: start; }
.kb-iu__rules h4 { font-size: 1.0625rem; font-weight: 700; }
.kb-iu__rules .flag { justify-self: start; }

/* Возражения */
.objections { display: grid; gap: var(--space-3); }
.objection { border: 1px solid var(--color-line); border-radius: var(--radius-lg); background: #fff; }
.objection[open] { border-color: #B9CFDD; box-shadow: var(--shadow-md); }
.objection summary {
  list-style: none; cursor: pointer; display: grid; grid-template-columns: auto minmax(0, 1fr) auto 20px; gap: var(--space-3);
  align-items: center; padding: 14px var(--space-5); min-height: 56px;
}
.objection summary::-webkit-details-marker { display: none; }
.objection summary::after { content: "+"; font-size: 1.25rem; color: var(--color-blue-600); text-align: center; line-height: 1; }
.objection[open] summary::after { content: "–"; }
.objection summary:hover .objection__q { color: var(--color-blue-700); }
.objection__id { font: 600 0.75rem/1.4 ui-monospace, SFMono-Regular, Menlo, monospace; color: var(--color-slate-700); }
.objection__q { font-size: 1.0625rem; font-weight: 600; line-height: 1.4; }
.objection__body { display: grid; grid-template-columns: 1fr; gap: var(--space-4); padding: 0 var(--space-5) var(--space-5); border-top: 1px solid var(--color-line); padding-top: var(--space-4); }
@container pp (min-width: 760px) { .objection__body { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); } .objection__body > .kb-dont { grid-column: 1 / -1; } }
.objection__col { display: grid; gap: var(--space-3); align-content: start; }
.objection__col p { margin: 0; font-size: var(--text-small); }
.objection__col .flag { justify-self: start; }
.objection__label { font-size: 0.75rem !important; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--color-slate-700); }
@container pp (max-width: 559px) { .objection summary { grid-template-columns: minmax(0, 1fr) 20px; } .objection__id, .objection summary .kb-chip { display: none; } }

/* Что нельзя говорить */
.dont-traps { background: var(--color-mist-peach); border: 1px solid #F0CDB0; border-radius: var(--radius-lg); padding: var(--space-5); margin-bottom: var(--space-4); display: grid; gap: var(--space-3); }
.dont-traps__title { display: flex; align-items: center; gap: 8px; margin: 0; font-weight: 700; color: var(--color-orange-700); }
.dont-traps ul { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; }
.dont-traps li {
  display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: var(--radius-pill);
  background: #fff; border: 1px solid #F0CDB0; color: var(--color-orange-700); font-size: 0.875rem; font-weight: 600;
  text-decoration: line-through; text-decoration-thickness: 1px; text-decoration-color: rgba(166, 85, 15, 0.55);
}
.dont-wrap { min-width: 0; }
.dont-table { width: 100%; border-collapse: collapse; font-size: var(--text-small); border: 1px solid var(--color-line); }
.dont-table caption { text-align: left; font-weight: 700; padding-bottom: var(--space-3); }
.dont-table caption .flag { margin-left: 6px; }
.dont-table th, .dont-table td { text-align: left; padding: 11px 14px; border-top: 1px solid var(--color-line); vertical-align: top; }
.dont-table thead th { background: var(--color-surface-2); font-size: 0.8125rem; font-weight: 600; color: var(--color-slate-700); border-top: 0; }
.dont-table tbody th { font-weight: 600; width: 22%; }
.dont-table td:last-child { color: var(--color-blue-700); font-weight: 600; width: 24%; }
.dont-table tr.is-key th, .dont-table tr.is-key td:nth-child(2) { background: #FFF8F2; }

/* Доказательства по классам */
.ev-classes { display: grid; grid-template-columns: 1fr; gap: var(--space-4); align-items: start; }
@container pp (min-width: 760px) {
  .ev-classes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ev-class--c { grid-column: 1 / -1; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: var(--space-6); }
  .ev-class--c > .ev-class__head, .ev-class--c > p { grid-column: 1; }
  .ev-class--c > .ev-class__note { grid-column: 2; grid-row: 1 / span 2; }
  .ev-class--c > .kb-claim { grid-column: 2; }
}
.ev-class { display: grid; gap: var(--space-3); align-content: start; border: 1px solid var(--color-line); border-top: 3px solid var(--color-blue-500); border-radius: var(--radius-lg); padding: var(--space-5); background: #fff; min-width: 0; }
.ev-class--b { border-top-color: var(--color-blue-700); }
.ev-class--c { border-top-color: var(--color-orange-500); background: #FFFCF9; }
.ev-class__head { display: grid; grid-template-columns: 40px 1fr; gap: var(--space-3); align-items: center; }
.ev-class__head h4 { font-size: 1.0625rem; line-height: 1.35; }
.ev-class__head .caption { margin: 2px 0 0; }
.ev-class__letter {
  width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; font-size: 1.125rem;
  background: var(--color-mist-blue); color: var(--color-blue-700);
}
.ev-class--b .ev-class__letter { background: var(--color-blue-700); color: #fff; }
.ev-class--c .ev-class__letter { background: var(--color-mist-peach); color: var(--color-orange-700); }
.ev-class > p { margin: 0; }
.ev-class .arrow-link { justify-self: start; }
.ev-class__note { background: var(--color-surface-2); border-radius: var(--radius-md); padding: var(--space-3) var(--space-4); }
.ev-class__note p { margin: 0; }
.claim-chips { list-style: none; display: flex; flex-wrap: wrap; gap: 4px; }
.claim-chips li { font: 600 0.6875rem/1.5 ui-monospace, SFMono-Regular, Menlo, monospace; padding: 1px 6px; border-radius: 3px; background: var(--color-mist-blue); color: var(--color-blue-700); }

/* Закрытый контент (уровень сертификации) */
.lock-note {
  display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: var(--space-2) var(--space-3); align-items: start;
  border: 1px dashed #9EC4E0; border-radius: var(--radius-md); padding: var(--space-4); background: var(--hatch), #F7FAFD;
  color: var(--color-blue-700);
}
.lock-note[hidden] { display: none; }
.lock-note > .icon { margin-top: 2px; }
.lock-note strong { display: block; font-size: 0.9375rem; color: var(--color-ink-900); }
.lock-note .caption { display: block; }
.lock-note .btn { grid-column: 2; justify-self: start; }
.ev-study { display: grid; gap: var(--space-3); }
.ev-study[hidden] { display: none; }
.ev-study h5 { font-size: 1rem; font-weight: 700; margin: 0; }
.ev-study__frame { border: 1px solid var(--color-blue-700); border-radius: var(--radius-md); padding: var(--space-4); display: grid; gap: var(--space-2); background: #fff; }
.ev-study__frame p { margin: 0; font-size: var(--text-small); line-height: 1.6; }
.ev-study__frame .caption { font-size: var(--text-caption); }
.ev-study__d03 { margin: 0; padding-top: var(--space-2); border-top: 1px solid var(--color-line); }

/* ---------------------------------------------------------------------
   Академия
   --------------------------------------------------------------------- */
.cert-track { list-style: none; position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-4); margin-bottom: var(--space-6); }
.cert-track::before {
  content: ""; position: absolute; left: 6px; right: 0; top: 7px; height: 2px;
  background: linear-gradient(90deg, rgba(8, 127, 196, 0) 0%, rgba(8, 127, 196, 0.35) calc(var(--track-done, 26%) * 0.3), #087FC4 var(--track-done, 26%), var(--color-orange-500) var(--track-done, 26%));
}
.cert-track.is-l2::before { --track-done: 51%; }
.cert-track__node { position: relative; padding-top: 28px; }
.cert-track__dot {
  position: absolute; top: 0; left: 0; width: 16px; height: 16px; border-radius: 50%;
  background: #fff; border: 2px solid var(--color-line);
}
.cert-track__node.is-done .cert-track__dot { background: var(--color-blue-600); border-color: var(--color-blue-600); box-shadow: inset 0 0 0 3px #fff; }
.cert-track__node.is-current .cert-track__dot { border-color: #087FC4; box-shadow: 0 0 0 3px rgba(8, 127, 196, 0.18), 0 0 10px 2px rgba(8, 127, 196, 0.45); }
.cert-track__level { margin: 0; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--color-blue-600); }
.cert-track__name { margin: 0; font-size: 1.125rem; line-height: 1.3; }
.cert-track__state { margin: 4px 0 0; font-size: var(--text-caption); color: var(--color-slate-700); }
.cert-track__node.is-done .cert-track__state { color: var(--color-success); font-weight: 600; }
@container pp (max-width: 639px) {
  .cert-track { grid-template-columns: 1fr; gap: var(--space-4); }
  .cert-track::before { left: 7px; right: auto; top: 8px; bottom: 8px; width: 2px; height: auto; background: linear-gradient(180deg, #087FC4 40%, var(--color-orange-500) 40%); }
  .cert-track__node { padding: 0 0 0 32px; }
}

.ac-grid { display: grid; grid-template-columns: 1fr; gap: var(--space-4); }
@container pp (min-width: 760px) { .ac-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ac-level { display: grid; gap: var(--space-3); align-content: start; border: 1px solid var(--color-line); border-radius: var(--radius-lg); padding: var(--space-5); }
.ac-level h3 { font-size: 1.1875rem; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.ac-level > .caption { margin: 0; }
.ac-level .btn { justify-self: start; }
.module-list { list-style: none; display: grid; }
.module-list li { display: flex; justify-content: space-between; gap: var(--space-3); align-items: center; padding: 10px 0; border-top: 1px solid #EBF1F5; font-size: var(--text-small); }
.module-list__name { min-width: 0; }
.ac-chip {
  display: inline-flex; align-items: center; gap: 6px; flex: none; white-space: nowrap;
  font-size: 0.75rem; font-weight: 700; line-height: 1.2; padding: 4px 10px; border-radius: var(--radius-pill);
  background: var(--chip-todo-bg); color: var(--chip-todo-ink);
}
/* Длинные названия модулей (русская версия) переносятся, а не раздвигают строку */
.ac-chip { white-space: normal; flex: 0 1 auto; max-width: 100%; }
.ac-chip::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.ac-chip--done { background: var(--chip-done-bg); color: var(--chip-done-ink); }
.ac-chip--progress { background: var(--chip-prog-bg); color: var(--chip-prog-ink); }
.ac-chip--todo { background: var(--chip-todo-bg); color: var(--chip-todo-ink); box-shadow: inset 0 0 0 1px var(--color-line); }
.ac-chip--update { background: var(--chip-warn-bg); color: var(--chip-warn-ink); }
@container pp (max-width: 479px) { .module-list li { flex-direction: column; align-items: flex-start; gap: 6px; } }

.unlocks { margin-top: var(--space-6); }

/* Таблицы кабинета (сворачиваются в карточки на узком контейнере) */
.pp-table { width: 100%; border-collapse: collapse; font-size: var(--text-small); }
.pp-table caption { text-align: left; font-weight: 700; padding-bottom: var(--space-3); }
.pp-table th, .pp-table td { text-align: left; padding: 12px 14px; border-top: 1px solid var(--color-line); vertical-align: middle; }
.pp-table thead th { background: var(--color-surface-2); font-size: 0.8125rem; font-weight: 600; color: var(--color-slate-700); border-top: 0; }
.pp-table tbody th { font-weight: 600; }
.unlocks__table { border: 1px solid var(--color-line); }
.unlocks__table tbody th { width: 32%; white-space: nowrap; }
.pp-table-wrap { position: relative; border: 1px solid var(--color-line); border-radius: var(--radius-lg); overflow-x: auto; background: #fff; }
/* position: relative — скрытые подписи в ячейках (position: absolute) остаются внутри прокрутки, а не раздвигают страницу */
.pp-table-wrap .pp-table caption { padding: var(--space-4) var(--space-4) var(--space-3); }

@container pp (max-width: 759px) {
  .pp-table-wrap { border: 0; border-radius: 0; overflow: visible; background: transparent; }
  .pp-table thead { display: none; }
  .pp-table, .pp-table tbody, .pp-table tr, .pp-table th, .pp-table td { display: block; width: 100% !important; }
  .pp-table caption { display: block; padding: 0 0 var(--space-3) !important; }
  .pp-table tbody { display: grid; gap: var(--space-3); }
  .pp-table tr { background: #fff; border: 1px solid var(--color-line); border-radius: var(--radius-lg); padding: var(--space-3) 0; }
  .pp-table th, .pp-table td { border: 0; padding: 4px 16px; white-space: normal !important; }
  .pp-table td[data-label]::before { content: attr(data-label); display: block; font-size: 0.75rem; color: var(--color-slate-700); }
  .pp-table td[data-label="Action"]::before { display: none; }
  .pp-table td[data-label="Action"] { padding-top: var(--space-2); }
}

/* ---------------------------------------------------------------------
   Материалы
   --------------------------------------------------------------------- */
.mat-toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--space-3) var(--space-5); margin-bottom: var(--space-3); }
.mlr-legend { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; }
.mat-count { margin: var(--space-2) 0 var(--space-3); }
.mat-count:empty { display: none; }
.mlr {
  display: inline-flex; align-items: center; gap: 6px; white-space: nowrap;
  font-size: 0.75rem; font-weight: 700; line-height: 1.2; padding: 4px 10px; border-radius: var(--radius-pill);
}
.mlr::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.mlr--approved { background: var(--chip-done-bg); color: var(--chip-done-ink); }
.mlr--review { background: var(--chip-prog-bg); color: var(--chip-prog-ink); }
.mlr--draft { background: var(--chip-todo-bg); color: var(--chip-todo-ink); box-shadow: inset 0 0 0 1px var(--color-line); }
.mlr--restricted { background: var(--chip-rest-bg); color: var(--chip-rest-ink); }
.mlr--withdrawn { background: var(--chip-warn-bg); color: var(--chip-warn-ink); }
.mat-title { display: block; font-weight: 600; color: var(--color-ink-900); }
.mat-type { display: block; font-size: var(--text-caption); font-weight: 400; color: var(--color-slate-700); line-height: 1.45; }
.mat-table code { font: 600 0.75rem/1.4 ui-monospace, SFMono-Regular, Menlo, monospace; color: var(--color-ink-900); background: var(--color-surface-2); padding: 2px 5px; border-radius: 3px; }
.mat-table tbody th { min-width: 240px; }
.mat-table td { white-space: nowrap; }
.mat-lang { display: block; margin-top: 4px; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.04em; color: var(--color-blue-700); }
.mat-table tr[hidden] { display: none !important; }
.mat-table tr.is-withdrawn .mat-title { text-decoration: line-through; text-decoration-color: var(--color-slate-400); }
.mat-table tr.is-withdrawn th, .mat-table tr.is-withdrawn td { background: #FFFBF3; }
.mat-table tr.is-restricted th, .mat-table tr.is-restricted td { background: #FFFCF9; }
.mat-lock { display: inline-flex; align-items: center; gap: 6px; font-size: 0.8125rem; font-weight: 600; color: var(--color-blue-700); padding: 6px 10px; border: 1px dashed #9EC4E0; border-radius: var(--radius-md); background: var(--hatch), #F7FAFD; }
.mat-lock[hidden] { display: none; }
.mat-lock .icon { width: 15px; height: 15px; }
.mat-adapt { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--space-3); margin-top: var(--space-4); padding: var(--space-4) var(--space-5); border-radius: var(--radius-lg); background: var(--color-surface-2); }
.mat-adapt p { margin: 0; }

/* ---------------------------------------------------------------------
   Регистрация сделок
   --------------------------------------------------------------------- */
.deal-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-5); align-items: start; }
/* Длинные слова и варианты в списках (в т. ч. в русской версии) не раздвигают сетку */
.deal-grid > *, .deal-card { min-width: 0; overflow-wrap: anywhere; }
.deal-grid select, .deal-grid input { max-width: 100%; }
@container pp (min-width: 860px) { .deal-grid { grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); } }
.deal-grid .form { padding: clamp(18px, 2.4vw, 28px); background: #fff; }
.deal-grid .form .flag { justify-self: start; }
.deal-list h3 { font-size: 1.125rem; margin-bottom: var(--space-3); }
.deal-cards { list-style: none; display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-3); }
.deal-card { border: 1px solid var(--color-line); border-left: 3px solid var(--color-blue-500); border-radius: var(--radius-md); padding: var(--space-3) var(--space-4); background: #fff; }
.deal-card p { margin: 0; }
.deal-card__org { font-weight: 600; }
.deal-card__row { display: flex; flex-wrap: wrap; gap: 6px; margin-top: var(--space-2) !important; }

/* ---------------------------------------------------------------------
   Лиды с мероприятий
   --------------------------------------------------------------------- */
.leads-grid { display: grid; grid-template-columns: 1fr; gap: var(--space-5); align-items: start; }
.leads-rules { background: #fff; border: 1px solid var(--color-line); border-radius: var(--radius-lg); padding: var(--space-5); display: grid; gap: var(--space-3) var(--space-6); }
.leads-rules__col { display: grid; gap: var(--space-3); align-content: start; }
.leads-rules__col .flag { justify-self: start; }
@container pp (min-width: 760px) { .leads-rules { grid-template-columns: repeat(2, minmax(0, 1fr)); } .leads-rules h3 { grid-column: 1 / -1; } }
.leads-rules h3 { font-size: 1.125rem; }
.leads-rules .pt-checklist { margin: 0; }
.leads-rules .flag { justify-self: start; }
.consent-quote { margin: 0; padding: var(--space-3) var(--space-4); border-left: 3px solid var(--color-blue-500); background: var(--color-mist-blue); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; }
.consent-quote p { margin: 0; font-size: var(--text-caption); line-height: 1.55; }
.leads-table tr.is-masked th, .leads-table tr.is-masked td { color: var(--color-slate-700); }
.lead-status { display: block; font-size: var(--text-caption); line-height: 1.45; }
.lead-actions { display: flex; flex-wrap: wrap; gap: 4px 8px; margin-top: 6px; }
.lead-actions[hidden] { display: none; }
.leads-table td { white-space: normal; }

/* ---------------------------------------------------------------------
   Новости, контакты, вигиланс
   --------------------------------------------------------------------- */
.news-list { list-style: none; display: grid; grid-template-columns: 1fr; gap: var(--space-4); }
@container pp (min-width: 700px) { .news-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.news-item { display: grid; gap: var(--space-2); align-content: start; border: 1px solid var(--color-line); border-radius: var(--radius-lg); padding: var(--space-5); }
.news-item h3 { font-size: 1.125rem; line-height: 1.35; }
.news-item p { margin: 0; }
.news-item .flag, .news-item .arrow-link { justify-self: start; }
.news-item--event { background: var(--gradient-mist); border-color: #D3E1EE; }
.news-item--warn { background: #FFFBF3; border-color: #F0D9A8; }
.news-item__meta { font-size: var(--text-caption); color: var(--color-slate-700); display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: center; }
.news-tag { display: inline-block; font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; padding: 3px 8px; border-radius: var(--radius-sm); background: var(--color-mist-blue); color: var(--color-blue-700); }
.news-tag--event { background: #fff; color: var(--color-orange-700); }
.news-tag--warn { background: var(--chip-warn-bg); color: var(--chip-warn-ink); }

.contact-grid { list-style: none; display: grid; grid-template-columns: 1fr; gap: var(--space-3); margin-bottom: var(--space-6); }
@container pp (min-width: 640px) { .contact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@container pp (min-width: 940px) { .contact-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.person { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: var(--space-3); align-items: start; border: 1px solid var(--color-line); border-radius: var(--radius-lg); padding: var(--space-4); }
.person__avatar { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--color-mist-blue); color: var(--color-blue-700); font-weight: 800; font-size: 0.8125rem; letter-spacing: 0.04em; }
.person h3 { font-size: 1.0625rem; }
.person p { margin: 2px 0 0; }

.vigilance {
  display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; gap: var(--space-4); align-items: start;
  background: var(--color-mist-peach); border: 1px solid #F0CDB0; border-left: 4px solid var(--color-orange-500); border-radius: var(--radius-lg);
  padding: var(--space-5) var(--space-6); scroll-margin-top: calc(var(--header-h) + 24px);
}
.vigilance__icon { width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; background: #fff; color: var(--color-orange-700); }
.vigilance__icon .icon { width: 24px; height: 24px; }
.vigilance__text { display: grid; gap: var(--space-2); }
.vigilance__text h3 { font-size: 1.25rem; }
.vigilance__text p { margin: 0; font-size: var(--text-small); }
.vigilance__text .flag { justify-self: start; }
@container pp (max-width: 699px) { .vigilance { grid-template-columns: 1fr; padding: var(--space-5); } .vigilance .btn { justify-self: start; } }
@media (max-width: 1139px) { .vigilance { scroll-margin-top: calc(var(--header-h) + 72px); } }

.pp-regnote { margin-top: 0; }

/* Печать */
@media print {
  .pp-platform, .pp-sidenav { display: none !important; }
  .pp-layout { grid-template-columns: 1fr; }
}

/* =====================================================================
   10.11 — новые разделы кабинета (решение владельца по комментарию Галины Спириной):
   #regulatory, #regional-studies, #service, #spare-parts, #consumables. Цвета — только токены styles.css
   ===================================================================== */
/* Плейсхолдер контента — как .ph в styles-patients.css (на этой странице тот файл не подключён) */
body.pp .ph {
  display: inline-block; max-width: 100%; overflow-wrap: anywhere; padding: 0 5px; border-radius: 3px;
  color: var(--color-slate-700); background: var(--color-surface-2); border: 1px dashed var(--color-slate-400);
  line-height: 1.45; font-weight: 400;
}
.pp-note { margin: var(--space-4) 0 0; }

/* Regulatory documents: переход к фильтру «Regulatory» в материалах */
.pp-callout {
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--space-3);
  padding: var(--space-4) var(--space-5); border-radius: var(--radius-lg); background: var(--color-surface-2);
}
.pp-callout p { margin: 0; flex: 1 1 280px; max-width: 64ch; }

/* Формы-макеты: поле не растягивается по высоте соседнего, если у того ошибка или подсказка */
.pp-form .form__row { align-items: start; }
.pp-form .field { align-content: start; min-width: 0; }
.pp-form select, .pp-form input { max-width: 100%; }
.pp-form__title { font-size: 1.25rem; }
.pp-field--short { max-width: 360px; }
/* Ошибки — как на contact.html: у поля, aria-invalid, список над формой */
.pp-form [aria-invalid="true"] { border-color: var(--color-warning); box-shadow: 0 0 0 1px var(--color-warning); }
.pp-field-error { color: var(--color-warning); font-size: 0.875rem; font-weight: 600; }
.pp-error-summary {
  border: 2px solid var(--color-warning); border-radius: var(--radius-md); padding: var(--space-4) var(--space-5);
  background: var(--color-warning-bg); color: var(--color-ink-900); font-size: var(--text-small);
}
.pp-error-summary p { margin: 0 0 6px; }
.pp-error-summary ul { margin: 0; padding-left: 1.2em; }
.pp-error-summary a { color: var(--color-warning); font-weight: 600; }
.pp-error-summary:focus { outline: 3px solid var(--color-focus); outline-offset: 2px; }
.pp-status--ok { background: var(--color-success-bg); color: var(--color-success); border-color: var(--color-success); }

/* Service requests: предупреждение о вигилансе над формой, открытые заявки под ней */
.pp-svc-alert { margin-bottom: var(--space-5); }
.pp-svc-open { margin-top: var(--space-6); }

/* Spare parts / Consumables: каталог-заготовка и форма заказа */
.pp-order { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-5); align-items: start; }
.pp-order > * { min-width: 0; }
@container pp (min-width: 860px) { .pp-order { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); } }
.pp-catalogue td { white-space: normal; }

/* =====================================================================
   For partners: вход + «Стать партнёром» (10.11, И-31 — комментарии Г. Спириной #10–#14)
   ===================================================================== */
/* Разделы кабинета — три колонки на широком экране */
@media (min-width: 1024px) { .pt-portal-list { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
/* Подзаголовки внутри колонки заявки — без большого отступа сверху */
.pt-sub--tight { margin-top: var(--space-7); margin-bottom: var(--space-4); }
/* «How it works» в узкой колонке: без правой колонки «Portal», заголовки шагов h4 */
.pt-journey--short .pt-journey__step { grid-template-columns: 36px minmax(0, 1fr); gap: var(--space-2) var(--space-4); padding-bottom: var(--space-5); }
.pt-journey--short .pt-journey__step:last-child { padding-bottom: 0; }
.pt-journey--short .pt-journey__main h4 { font-size: 1.0625rem; margin: 0; }
.contact-card .pt-faq + .pt-sub--tight, .contact-card .pt-journey--short { margin-bottom: var(--space-6); }
