/*
 * Компоненты прототипа портала.
 *
 * Значения берутся только из токенов дизайн-системы (vendor/cse-design-system-tokens.css)
 * и из моста к Element Plus (tokens-bridge.css). Компонентные токены
 * (--c-field-*, --c-card-*, --c-dialog-* …) используются ТОЛЬКО здесь, внутри
 * своих компонентов — это слой, который в продукте занимает ElementPlusBindings.
 * В app.css (кастомная вёрстка портала) они запрещены, это проверяет build.js.
 *
 * Текст задаётся только шорткатом font: var(--c-text-*). Отдельные font-size и
 * line-height запрещены линтером.
 */

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }

/* Браузерные умолчания не должны протекать: контролы наследуют шрифт и цвет,
   ссылки никогда не откатываются к синему UA. */
input, button, textarea, select { font: inherit; color: inherit; margin: 0; }
a { color: inherit; }

html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font: var(--c-text-body-2);
  color: var(--c-text-color-primary);
  background: var(--c-bg-color-page);
  -webkit-font-smoothing: antialiased;
}

:focus-visible {
  outline: var(--c-focus-outline);
  outline-offset: var(--c-focus-outline-offset);
  border-radius: var(--c-border-radius-sm);
}

.p-sr {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}
.p-skip {
  position: absolute; left: var(--c-gap-2); top: var(--c-gap-9-neg);
  z-index: 3000; background: var(--c-fill-color-blank); padding: var(--c-gap-2) var(--c-gap-4);
  border-radius: var(--c-border-radius-base); box-shadow: var(--el-box-shadow-light);
  color: var(--c-text-color-primary); text-decoration: none;
  transition: top var(--c-transition-duration) var(--el-transition-function-ease-in-out-bezier);
}
.p-skip:focus { top: var(--c-gap-2); }

/* ─────────────────────────────────────── типографика
 * Заголовки — h1…h6 со стилями headline 1–6. Уровень тега задаётся структурой
 * страницы, стиль — классом, и они не обязаны совпадать. */
.p-h1 { font: var(--c-text-headline-1); color: var(--c-text-color-primary); margin: 0; }
.p-h2 { font: var(--c-text-headline-2); color: var(--c-text-color-primary); margin: 0; }
.p-h3, .p-page-title { font: var(--c-text-headline-3); color: var(--c-text-color-primary); margin: 0; }
.p-h4 { font: var(--c-text-headline-4); color: var(--c-text-color-primary); margin: 0; }
.p-h5 { font: var(--c-text-headline-5); color: var(--c-text-color-primary); margin: 0; }
.p-h6 { font: var(--c-text-headline-6); color: var(--c-text-color-primary); margin: 0; }
.p-body { font: var(--c-text-body-2); color: var(--c-text-color-primary); margin: 0; }
.p-body-1 { font: var(--c-text-body-1); color: var(--c-text-color-primary); margin: 0; }
.p-caption { font: var(--c-text-caption); color: var(--c-text-color-secondary); }
.p-muted { color: var(--c-text-color-regular); }
.p-list { margin: var(--c-text-list-margin-top) 0 var(--c-text-list-margin-bottom); padding-left: var(--c-text-list-padding-left); }
.p-list > li + li { margin-top: var(--c-text-list-item-gap); }
.p-list .p-list {
  margin: var(--c-text-list-inner-margin-top) 0 var(--c-text-list-inner-margin-bottom);
  padding-left: var(--c-text-list-inner-padding-left);
}

/* Текст статей: отступы — из блока Typography токенов. */
.p-prose > :first-child { margin-top: 0; }
.p-prose h2, .p-prose h3, .p-prose h4, .p-prose h5, .p-prose h6 {
  margin: var(--c-text-headline-margin-top) 0 var(--c-text-headline-margin-bottom);
}
.p-prose p { margin: var(--c-text-body-margin-top) 0 var(--c-text-body-margin-bottom); }
/* контент из визуального редактора: пустые абзацы и <br> подряд не создают лишних отступов */
.p-prose p:empty { display: none; }
.p-prose br + br { display: none; }
.p-prose .p-table-scroll, .p-prose .p-code-block, .p-prose .p-alert {
  margin: var(--c-text-body-margin-top) 0 var(--c-text-body-margin-bottom);
}

.p-link { color: var(--c-color-primary-600); text-decoration: none; }
.p-link:hover { text-decoration: underline; }
/* Ссылка, стоящая отдельно среди контролов, получает высоту контрола;
   ссылка внутри предложения остаётся высотой строки. */
.p-link--standalone { display: inline-flex; align-items: center; min-height: var(--c-control-size-sm); }
.p-card--interactive, .p-nav__link, .p-breadcrumbs a, .p-toc__link { color: inherit; }

.p-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);
  color: var(--c-text-color-primary);
}

/* Заголовки статей: h2 → headline-5, h3 → headline-6, h4–h6 → headline-6. */
.p-section-title {
  display: flex; align-items: center; gap: var(--c-gap-2);
  font: var(--c-text-headline-5); color: var(--c-text-color-primary);
  margin: var(--c-text-headline-margin-top) 0 var(--c-text-headline-margin-bottom);
  scroll-margin-top: var(--c-gap-9);
}
.p-section-title .p-icon { color: var(--c-text-color-secondary); flex: none; }
.p-subsection-title {
  font: var(--c-text-headline-6); color: var(--c-text-color-primary);
  margin: var(--c-text-headline-margin-top) 0 var(--c-text-headline-margin-bottom);
  scroll-margin-top: var(--c-gap-9);
}

/* ─────────────────────────────────────── Icon
 * Контурные (outline) иконки Element Plus: viewBox 1024, заливка currentColor,
 * толщина линии 64 единицы. Сплошные (solid) варианты не используются. */
.p-icon { width: var(--c-icon-size-xs); height: var(--c-icon-size-xs); fill: currentColor; flex: none; display: inline-block; vertical-align: middle; }
.p-icon--xs { width: var(--c-gap-3); height: var(--c-gap-3); }
.p-icon--sm { width: var(--c-icon-size-sm); height: var(--c-icon-size-sm); }
.p-icon--md { width: var(--c-icon-size-md); height: var(--c-icon-size-md); }
.p-icon--lg { width: var(--c-icon-size-lg); height: var(--c-icon-size-lg); }
.p-flip { transform: rotate(180deg); }

/* ─────────────────────────────────────── Button
 * Размеры: xs 20 · sm 24 · md 32 (по умолчанию) · lg 40 — токены --c-control-size-*.
 * На ≤480px токены сами вырастают до 24/32/40/48. Текст 14px, у xs — caption. */
.p-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--c-gap-2);
  height: var(--c-control-size-md); padding: 0 var(--c-gap-4);
  border: var(--c-border-width) solid var(--c-border-color);
  border-radius: var(--c-border-radius-base);
  background: var(--c-fill-color-blank); color: var(--c-text-color-regular);
  font: var(--c-text-controls); font-weight: var(--c-font-weight-semi-bold);
  white-space: nowrap; cursor: pointer; text-decoration: none;
  transition: background-color var(--c-transition-duration) var(--el-transition-function-ease-in-out-bezier),
              border-color var(--c-transition-duration) var(--el-transition-function-ease-in-out-bezier),
              color var(--c-transition-duration) var(--el-transition-function-ease-in-out-bezier);
}
.p-btn:hover { background: var(--c-color-primary-50); color: var(--c-color-primary); border-color: var(--c-color-primary-200); }
.p-btn:active { background: var(--c-color-primary-50); color: var(--c-color-primary); border-color: var(--c-color-primary); }
.p-btn:disabled, .p-btn[aria-disabled="true"] {
  background: var(--c-fill-color-blank); color: var(--c-text-color-placeholder);
  border-color: var(--c-border-color-light); cursor: not-allowed;
}
.p-btn--primary { background: var(--c-color-primary-500); border-color: var(--c-color-primary-500); color: var(--c-color-on-primary); }
.p-btn--primary:hover { background: var(--c-color-primary-400); border-color: var(--c-color-primary-400); color: var(--c-color-on-primary); }
.p-btn--primary:active { background: var(--c-color-primary-600); border-color: var(--c-color-primary-600); color: var(--c-color-on-primary); }
.p-btn--primary:disabled { background: var(--c-color-primary-300); border-color: var(--c-color-primary-300); color: var(--c-color-on-primary); }
.p-btn--success { background: var(--c-color-success-500); border-color: var(--c-color-success-500); color: var(--c-color-on-success); }
.p-btn--success:hover { background: var(--c-color-success-400); border-color: var(--c-color-success-400); color: var(--c-color-on-success); }
.p-btn--success:active { background: var(--c-color-success-600); border-color: var(--c-color-success-600); }
.p-btn--danger { background: var(--c-color-error-500); border-color: var(--c-color-error-500); color: var(--c-color-on-error); }
.p-btn--danger:hover { background: var(--c-color-error-400); border-color: var(--c-color-error-400); color: var(--c-color-on-error); }
.p-btn--danger:active { background: var(--c-color-error-600); border-color: var(--c-color-error-600); color: var(--c-color-on-error); }
.p-btn--plain { background: var(--c-color-primary-50); border-color: var(--c-color-primary-300); color: var(--c-color-primary-600); }
.p-btn--plain:hover { background: var(--c-color-primary-500); border-color: var(--c-color-primary-500); color: var(--c-color-on-primary); }
.p-btn--text { background: transparent; border-color: transparent; color: var(--c-text-color-regular); }
.p-btn--text:hover { background: var(--c-fill-color-light); border-color: transparent; color: var(--c-text-color-primary); }
.p-btn--text:active { background: var(--c-fill-color); border-color: transparent; }
.p-btn--xs { height: var(--c-control-size-xs); padding: 0 var(--c-gap-2); gap: var(--c-gap-1); font: var(--c-text-caption); font-weight: var(--c-font-weight-semi-bold); border-radius: var(--c-border-radius-sm); }
.p-btn--sm { height: var(--c-control-size-sm); padding: 0 var(--c-gap-3); }
.p-btn--lg { height: var(--c-control-size-lg); padding: 0 var(--c-gap-5); }
.p-btn--block { width: 100%; }
.p-btn--round { border-radius: var(--c-border-radius-rounded); }
.p-btn--circle { border-radius: var(--el-border-radius-circle); padding: 0; width: var(--c-control-size-md); }
.p-btn--circle.p-btn--sm { width: var(--c-control-size-sm); }
.p-btn--circle.p-btn--lg { width: var(--c-control-size-lg); }
.p-btn.is-loading { pointer-events: none; }

.p-spinner {
  display: inline-block; width: var(--c-gap-3); height: var(--c-gap-3);
  border: var(--c-gap-05) solid currentColor; border-right-color: transparent;
  border-radius: var(--el-border-radius-circle); animation: p-spin .8s linear infinite;
}
@keyframes p-spin { to { transform: rotate(360deg); } }

/* ─────────────────────────────────────── Field (input, select, textarea)
 * Все состояния — только через --c-field-*. Рамка рисуется внутренней тенью,
 * чтобы 1px не менял высоту контрола (как в Element Plus). */
.p-field { display: flex; flex-direction: column; gap: var(--c-gap-1); margin-bottom: var(--c-gap-4); }
.p-field--inline { flex-direction: row; align-items: center; gap: var(--c-gap-3); }
.p-label { font: var(--c-text-controls); font-weight: var(--c-font-weight-semi-bold); color: var(--c-text-color-regular); }
.p-req { color: var(--c-color-error); margin-right: var(--c-gap-1); }
.p-help { font: var(--c-text-caption); color: var(--c-text-color-secondary); }
.p-error { font: var(--c-text-body-2); color: var(--c-color-error-600); }

.p-input, .p-select, .p-textarea {
  width: 100%;
  border: 0; border-radius: var(--c-field-border-radius);
  background: var(--c-field-bg-color);
  box-shadow: 0 0 0 var(--c-border-width) var(--c-field-border-color) inset;
  color: var(--c-field-text-color);
  transition: box-shadow var(--c-transition-duration) var(--el-transition-function-ease-in-out-bezier);
}
.p-input, .p-select { height: var(--c-control-size-md); padding: 0 var(--c-gap-3); font: var(--c-text-controls); }
.p-textarea {
  min-height: var(--c-control-size-md); padding: var(--c-gap-2) var(--c-gap-3);
  font: var(--c-text-body-2); resize: vertical; display: block;
}
.p-input::placeholder, .p-textarea::placeholder { color: var(--c-field-text-placeholder-color); }
.p-input:hover, .p-select:hover, .p-textarea:hover { box-shadow: 0 0 0 var(--c-border-width) var(--c-field-border-color-hover) inset; }
.p-input:focus, .p-select:focus, .p-textarea:focus { box-shadow: 0 0 0 var(--c-border-width) var(--c-field-border-color-focus) inset; outline: none; }
.p-input:focus-visible, .p-select:focus-visible, .p-textarea:focus-visible { outline: var(--c-focus-outline); outline-offset: var(--c-focus-outline-offset); }
.p-input:disabled, .p-select:disabled, .p-textarea:disabled {
  background: var(--c-field-bg-color-disabled);
  box-shadow: 0 0 0 var(--c-border-width) var(--c-field-border-color-disabled) inset;
  color: var(--c-field-text-color-disabled); cursor: not-allowed;
}
.p-input:disabled::placeholder, .p-textarea:disabled::placeholder { color: var(--c-field-text-placeholder-color-disabled); }
.p-field.is-error .p-input, .p-field.is-error .p-select, .p-field.is-error .p-textarea,
.p-input[aria-invalid="true"], .p-textarea[aria-invalid="true"] { box-shadow: 0 0 0 var(--c-border-width) var(--c-field-border-color-error) inset; }
.p-field.is-success .p-input { box-shadow: 0 0 0 var(--c-border-width) var(--c-field-border-color-success) inset; }
.p-field.is-warning .p-input { box-shadow: 0 0 0 var(--c-border-width) var(--c-field-border-color-warning) inset; }
.p-input--sm, .p-select.p-input--sm { height: var(--c-control-size-sm); padding-inline: var(--c-gap-2); }
.p-input--lg, .p-select.p-input--lg { height: var(--c-control-size-lg); padding-inline: var(--c-gap-4); }
.p-textarea--mono { font: var(--c-text-body-2); font-family: var(--p-font-family-mono); }
.p-select {
  appearance: none; min-width: var(--c-select-width-min); padding-right: var(--c-gap-7);
  background-image: linear-gradient(45deg, transparent 50%, var(--c-field-icon-color) 50%),
                    linear-gradient(135deg, var(--c-field-icon-color) 50%, transparent 50%);
  background-position: calc(100% - var(--c-gap-4)) 55%, calc(100% - var(--c-gap-3)) 55%;
  background-size: var(--c-gap-1) var(--c-gap-1), var(--c-gap-1) var(--c-gap-1);
  background-repeat: no-repeat;
}
.p-input-wrap { position: relative; display: block; }
.p-input-icon { position: absolute; left: var(--c-gap-3); top: 50%; transform: translateY(-50%); color: var(--c-field-icon-color); pointer-events: none; }
.p-input--with-icon { padding-left: calc(var(--c-gap-3) + var(--c-icon-size-xs) + var(--c-gap-2)); }

/* ─────────────────────────────────────── Checkbox / Radio */
.p-check { display: inline-flex; align-items: center; min-height: var(--c-checkbox-height); cursor: pointer; }
.p-check input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.p-check__box {
  width: var(--c-checkbox-size-base); height: var(--c-checkbox-size-base); flex: none;
  border: var(--c-border-width) solid var(--c-border-color);
  border-radius: var(--c-border-radius-sm); background: var(--c-fill-color-blank);
  display: inline-flex; align-items: center; justify-content: center;
  transition: background-color var(--c-transition-duration-fast), border-color var(--c-transition-duration-fast);
}
.p-check--radio .p-check__box { border-radius: var(--el-border-radius-circle); }
.p-check__label { padding-left: var(--c-gap-2); font: var(--c-text-controls); font-weight: var(--c-font-weight-semi-bold); color: var(--c-text-color-regular); }
.p-check:hover .p-check__box { border-color: var(--c-color-primary); }
.p-check input:checked + .p-check__box { background: var(--c-color-primary); border-color: var(--c-color-primary); }
.p-check input:checked + .p-check__box::after {
  content: ''; width: var(--c-gap-1); height: var(--c-gap-2);
  border: var(--c-gap-05) solid var(--c-color-on-primary); border-top: 0; border-left: 0;
  transform: rotate(45deg) translate(-1px, -1px);
}
.p-check--radio input:checked + .p-check__box::after {
  content: ''; width: var(--c-gap-1); height: var(--c-gap-1); border: 0;
  border-radius: var(--el-border-radius-circle); background: var(--c-color-on-primary); transform: none;
}
.p-check input:focus-visible + .p-check__box { outline: var(--c-focus-outline); outline-offset: var(--c-focus-outline-offset); }
.p-check.is-disabled { cursor: not-allowed; }
.p-check.is-disabled .p-check__box { background: var(--c-bg-color-disabled); border-color: var(--c-border-color-disabled); }
.p-check.is-disabled .p-check__label { color: var(--c-text-color-placeholder); }

/* ─────────────────────────────────────── Switch */
.p-switch { display: inline-flex; align-items: center; min-height: var(--c-control-size-md); cursor: pointer; }
.p-switch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.p-switch__core {
  width: var(--c-control-size-lg); height: var(--c-gap-5); flex: none; position: relative;
  border: var(--c-border-width) solid var(--c-border-color); border-radius: var(--c-border-radius-rounded);
  background: var(--c-border-color);
  transition: background-color var(--c-transition-duration), border-color var(--c-transition-duration);
}
.p-switch__action {
  position: absolute; top: var(--c-gap-025); left: var(--c-gap-025);
  width: var(--c-icon-size-xs); height: var(--c-icon-size-xs);
  border-radius: var(--el-border-radius-circle); background: var(--c-fill-color-blank);
  transition: left var(--c-transition-duration) var(--el-transition-function-ease-in-out-bezier);
}
.p-switch input:checked + .p-switch__core { background: var(--c-color-primary); border-color: var(--c-color-primary); }
.p-switch input:checked + .p-switch__core .p-switch__action { left: calc(100% - var(--c-icon-size-xs) - var(--c-gap-025)); }
.p-switch input:focus-visible + .p-switch__core { outline: var(--c-focus-outline); outline-offset: var(--c-focus-outline-offset); }
.p-switch.is-disabled { cursor: not-allowed; opacity: .6; }

/* ─────────────────────────────────────── Card
 * Как в ЛК: радиус --c-card-border-radius, заголовок headline-6,
 * без разделительной линии между заголовком и телом. */
.p-card {
  background: var(--c-fill-color-blank);
  border: var(--c-border-width) solid var(--c-border-color-light);
  border-radius: var(--c-card-border-radius);
}
.p-card__header {
  display: flex; align-items: center; justify-content: space-between; gap: var(--c-gap-3);
  padding: var(--c-card-padding) var(--c-card-padding) 0;
}
.p-card__title { font: var(--c-text-headline-6); color: var(--c-text-color-primary); margin: 0; }
.p-card__body { padding: var(--c-card-padding); }
.p-card__header + .p-card__body { padding-top: var(--c-gap-3); }
.p-card--sm .p-card__header { padding: var(--c-card-padding-sm) var(--c-card-padding-sm) 0; }
.p-card--sm .p-card__body { padding: var(--c-card-padding-sm); }
.p-card--interactive { cursor: pointer; transition: border-color var(--c-transition-duration), background-color var(--c-transition-duration); display: block; text-decoration: none; }
.p-card--interactive:hover { border-color: var(--c-color-primary-300); background: var(--c-color-primary-50); }

/* ─────────────────────────────────────── Tag
 * Тег на ступень меньше полей и кнопок: xs 20 · sm 24 (по умолчанию) · md 32.
 * Внутри — 14px, у xs — caption. */
.p-tag {
  display: inline-flex; align-items: center; height: var(--c-control-size-sm);
  padding: 0 var(--c-gap-2); border-radius: var(--c-border-radius-base);
  border: var(--c-border-width) solid var(--c-color-primary-100);
  background: var(--c-color-primary-50); color: var(--c-text-color-primary);
  font: var(--c-text-controls); white-space: nowrap; text-decoration: none;
}
.p-tag--xs { height: var(--c-control-size-xs); padding: 0 var(--c-gap-1); font: var(--c-text-caption); border-radius: var(--c-border-radius-sm); }
.p-tag--md { height: var(--c-control-size-md); padding: 0 var(--c-gap-3); }
.p-tag--mono { font-family: var(--p-font-family-mono); }
.p-tag--success { background: var(--c-color-success-50); border-color: var(--c-color-success-100); color: var(--c-color-success-600); }
.p-tag--warning { background: var(--c-color-warning-50); border-color: var(--c-color-warning-100); color: var(--c-color-warning-600); }
.p-tag--danger { background: var(--c-color-error-50); border-color: var(--c-color-error-100); color: var(--c-color-error-600); }
.p-tag--info { background: var(--c-color-info-50); border-color: var(--c-color-info-100); color: var(--c-text-color-regular); }

/* ─────────────────────────────────────── Alert */
.p-alert {
  display: flex; align-items: flex-start; gap: var(--c-gap-2);
  min-height: var(--c-control-size-lg); padding: var(--c-gap-2) var(--c-gap-4);
  border-radius: var(--c-border-radius-base); border: 0;
  background: var(--c-color-info-50); color: var(--c-text-color-primary);
  font: var(--c-text-body-2);
}
.p-alert .p-icon { margin-top: var(--c-gap-025); flex: none; color: var(--c-color-info-600); }
.p-alert--success { background: var(--c-color-success-50); }
.p-alert--success .p-icon { color: var(--c-color-success-600); }
.p-alert--warning { background: var(--c-color-warning-50); }
.p-alert--warning .p-icon { color: var(--c-color-warning-600); }
.p-alert--error { background: var(--c-color-error-50); }
.p-alert--error .p-icon { color: var(--c-color-error-600); }
.p-alert__text { flex: 1; }

/* ─────────────────────────────────────── Empty */
.p-empty {
  padding: var(--c-gap-7) var(--c-gap-4);
  display: flex; flex-direction: column; align-items: center; gap: var(--c-gap-3); text-align: center;
}
.p-empty__icon { width: var(--c-icon-size-lg); height: var(--c-icon-size-lg); color: var(--c-border-color-hover); }
.p-empty__title { font: var(--c-text-headline-6); color: var(--c-text-color-primary); margin: 0; }
.p-empty__desc { font: var(--c-text-body-2); color: var(--c-text-color-regular); margin: 0; }

.p-skeleton { height: var(--c-gap-4); background: var(--c-fill-color); border-radius: var(--c-border-radius-sm); animation: p-pulse 1.4s ease-in-out infinite; }
.p-skeleton--title { height: var(--c-gap-5); }
.p-skeleton + .p-skeleton { margin-top: var(--c-gap-2); }
@keyframes p-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .55; } }

/* ─────────────────────────────────────── Table */
.p-table-scroll { position: relative; overflow-x: auto; -webkit-overflow-scrolling: touch; } /* relative: скрытые подписи (.p-sr) не выталкивают страницу вбок */
.p-table { width: 100%; border-collapse: collapse; background: var(--c-fill-color-blank); font: var(--c-text-body-2); }
.p-table th {
  height: var(--c-gap-8); padding: var(--c-gap-2) 0; text-align: left;
  color: var(--c-text-color-secondary); font-weight: var(--c-font-weight-bold);
  border-bottom: var(--c-border-width) solid var(--c-border-color-lighter);
  white-space: nowrap;
}
.p-table td { padding: var(--c-gap-2) 0; color: var(--c-text-color-primary); border-bottom: var(--c-border-width) solid var(--c-border-color-lighter); vertical-align: top; }
.p-table .p-cell { padding: var(--c-gap-1) var(--c-gap-3); }
.p-table tbody tr { transition: background-color var(--c-transition-duration-fast); }
.p-table tbody tr:hover { background: var(--c-fill-color-light); }
.p-table--params td:first-child { width: 22%; }
.p-table--params td:nth-child(2) { width: 14%; }
.p-table--params td:nth-child(3) { width: 14%; }
.p-table__actions { width: var(--c-table-column-actions-width); }
.p-param { font-family: var(--p-font-family-mono); font-weight: var(--c-font-weight-semi-bold); color: var(--c-text-color-primary); }

.p-dl { display: grid; grid-template-columns: auto 1fr; gap: var(--c-gap-2) var(--c-gap-4); margin: 0; font: var(--c-text-body-2); }
.p-dl dt { color: var(--c-text-color-regular); }
.p-dl dd { margin: 0; color: var(--c-text-color-primary); }

/* ─────────────────────────────────────── Code block
 * Текст примеров — body-2 моноширинным. */
.p-code-block {
  margin: 0 0 var(--c-gap-4);
  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-light);
}
.p-code-block__bar {
  display: flex; align-items: center; justify-content: space-between;
  padding: var(--c-gap-1) var(--c-gap-2) var(--c-gap-1) var(--c-gap-3);
  border-bottom: var(--c-border-width) solid var(--c-border-color-light);
  background: var(--c-fill-color-blank);
}
.p-code-block__lang { font: var(--c-text-caption); color: var(--c-text-color-regular); text-transform: uppercase; }
.p-code-block__pre {
  margin: 0; padding: var(--c-gap-3); overflow-x: auto;
  font: var(--c-text-body-2); font-family: var(--p-font-family-mono);
  color: var(--c-text-color-primary);
}

/* ─────────────────────────────────────── Breadcrumbs */
.p-breadcrumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: var(--c-gap-1); }
.p-breadcrumbs li { display: inline-flex; align-items: center; gap: var(--c-gap-1); font: var(--c-text-body-2); }
.p-breadcrumbs a { color: var(--c-text-color-regular); text-decoration: none; }
.p-breadcrumbs a:hover { color: var(--c-color-primary-600); }
.p-breadcrumbs [aria-current] { color: var(--c-text-color-primary); }
.p-breadcrumbs__sep { color: var(--c-text-color-placeholder); }

/* ─────────────────────────────────────── Tabs */
.p-tabs__nav { display: flex; gap: var(--c-gap-5); height: var(--c-control-size-lg); border-bottom: var(--c-border-width) solid var(--c-border-color-light); overflow-x: auto; }
.p-tabs__item {
  position: relative; height: var(--c-control-size-lg); padding: 0;
  display: inline-flex; align-items: center; background: none; border: 0; cursor: pointer;
  font: var(--c-text-controls); font-weight: var(--c-font-weight-semi-bold);
  color: var(--c-text-color-regular); white-space: nowrap;
  transition: color var(--c-transition-duration);
}
.p-tabs__item:hover, .p-tabs__item.is-active { color: var(--c-color-primary); }
.p-tabs__item.is-active::after { content: ''; position: absolute; inset: auto 0 0 0; height: var(--c-gap-05); background: var(--c-color-primary); }
.p-tabs__item:disabled { color: var(--c-text-color-placeholder); cursor: not-allowed; }
.p-tabs__panel { padding-top: var(--c-gap-4); }

/* ─────────────────────────────────────── Dropdown */
.p-dropdown { position: relative; display: inline-block; }
.p-dropdown__menu {
  position: absolute; top: calc(100% + var(--c-gap-1)); left: 0; z-index: 100;
  min-width: 100%; max-width: var(--c-dropdown-width-max);
  background: var(--c-fill-color-blank); border-radius: var(--c-border-radius-base);
  box-shadow: var(--el-box-shadow-light); padding: var(--c-gap-1) 0;
  list-style: none; margin: 0;
}
.p-dropdown__menu[data-align="end"] { left: auto; right: 0; }
.p-dropdown__item {
  height: var(--c-dropdown-item-height-base); display: flex; align-items: center;
  padding: 0 var(--c-gap-4); white-space: nowrap;
  font: var(--c-text-body-2); color: var(--c-text-color-regular); cursor: pointer;
  transition: background-color var(--c-transition-duration-fast), color var(--c-transition-duration-fast);
}
.p-dropdown__item:hover { color: var(--c-text-color-primary); background: var(--c-fill-color-light); }
.p-dropdown__item.is-disabled { color: var(--c-text-color-disabled); cursor: not-allowed; background: none; }
.p-dropdown__divider { height: var(--c-border-width); background: var(--c-border-color-light); margin: var(--c-gap-1) 0; }

/* ─────────────────────────────────────── Pagination */
.p-pagination { display: flex; align-items: center; gap: var(--c-gap-1); flex-wrap: wrap; }
.p-pagination__item {
  min-width: var(--c-control-size-md); height: var(--c-control-size-md); padding: 0 var(--c-gap-1);
  display: inline-flex; align-items: center; justify-content: center;
  border: 0; border-radius: var(--c-border-radius-sm);
  background: var(--c-fill-color); color: var(--c-text-color-primary);
  font: var(--c-text-controls); font-weight: var(--c-font-weight-semi-bold); cursor: pointer;
  transition: background-color var(--c-transition-duration-fast), color var(--c-transition-duration-fast);
}
.p-pagination__item:hover:not(:disabled) { color: var(--c-color-primary); }
.p-pagination__item.is-active { background: var(--c-color-primary); color: var(--c-color-on-primary); font-weight: var(--c-font-weight-bold); }
.p-pagination__item:disabled { background: var(--c-fill-color-light); color: var(--c-text-color-placeholder); cursor: not-allowed; }

/* ─────────────────────────────────────── Collapse (аккордеон) */
.p-accordion { 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-accordion__item + .p-accordion__item { border-top: var(--c-border-width) solid var(--c-border-color-light); }
.p-accordion__heading { margin: 0; }
.p-accordion__trigger {
  width: 100%; display: flex; align-items: center; justify-content: space-between; gap: var(--c-gap-3);
  padding: var(--c-gap-3) var(--c-gap-5); min-height: var(--c-control-size-lg);
  background: none; border: 0; cursor: pointer; text-align: left;
  font: var(--c-text-headline-6); color: var(--c-text-color-primary);
  transition: background-color var(--c-transition-duration-fast);
}
.p-accordion__trigger:hover { background: var(--c-fill-color-light); }
.p-accordion__chevron { color: var(--c-text-color-secondary); transition: transform var(--c-transition-duration) var(--el-transition-function-ease-in-out-bezier); }
.p-accordion__trigger[aria-expanded="true"] .p-accordion__chevron { transform: rotate(180deg); }
.p-accordion__body { padding: 0 var(--c-gap-5) var(--c-gap-5); }

/* ─────────────────────────────────────── Tooltip */
.p-tooltip { position: relative; display: inline-flex; }
.p-tooltip__bubble {
  position: absolute; bottom: calc(100% + var(--c-gap-2)); left: 50%; transform: translateX(-50%);
  background: var(--c-text-color-primary); color: var(--c-fill-color-blank);
  padding: var(--c-gap-1) var(--c-gap-2); border-radius: var(--c-border-radius-sm);
  font: var(--c-text-body-2); white-space: nowrap; z-index: 200;
  opacity: 0; pointer-events: none; transition: opacity var(--c-transition-duration-fast);
}
.p-tooltip:hover .p-tooltip__bubble, .p-tooltip:focus-visible .p-tooltip__bubble { opacity: 1; }

/* ─────────────────────────────────────── Dialog / Drawer */
.p-overlay {
  position: fixed; inset: 0; z-index: 2000; background: var(--c-overlay-color-3);
  display: flex; align-items: center; justify-content: center; padding: var(--c-dialog-margin-full);
}
.p-dialog {
  background: var(--c-fill-color-blank); border-radius: var(--c-dialog-border-radius);
  box-shadow: var(--el-box-shadow); padding: var(--c-dialog-padding);
  width: var(--c-dialog-width-sm); max-width: 100%; max-height: 90vh;
  display: flex; flex-direction: column;
}
.p-dialog--xs { width: var(--c-dialog-width-xs); }
.p-dialog--md { width: var(--c-dialog-width-md); }
.p-dialog--lg { width: var(--c-dialog-width-lg); }
.p-dialog--xl { width: var(--c-dialog-width-xl); }
.p-dialog--drawer {
  position: fixed; inset: 0 0 0 auto; width: var(--c-drawer-width); max-width: 100%;
  max-height: none; height: 100%; border-radius: 0; padding: var(--c-drawer-padding);
  animation: p-slide-in var(--c-transition-duration) var(--el-transition-function-ease-in-out-bezier);
}
.p-dialog--drawer-xs { width: var(--c-drawer-width-xs); }
.p-dialog--drawer.is-expanded { width: var(--c-dialog-width-md); }
.p-dialog--flush { padding: 0; }
@keyframes p-slide-in { from { transform: translateX(100%); } to { transform: none; } }
.p-dialog__header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--c-gap-4); padding-bottom: var(--c-gap-4); }
.p-dialog__title { font: var(--c-text-headline-4); color: var(--c-text-color-primary); margin: 0; }
.p-dialog__close {
  display: inline-flex; align-items: center; justify-content: center; flex: none;
  width: var(--c-control-size-sm); height: var(--c-control-size-sm);
  background: none; border: 0; cursor: pointer; color: var(--c-text-color-secondary);
  border-radius: var(--c-border-radius-sm);
}
.p-dialog__close:hover { color: var(--c-color-primary); }
.p-dialog__body { font: var(--c-text-body-2); color: var(--c-text-color-primary); overflow: auto; flex: 1; }
.p-dialog__footer { display: flex; justify-content: flex-end; gap: var(--c-gap-3); padding-top: var(--c-gap-4); }

/* ─────────────────────────────────────── Message (всплывающее уведомление) */
.p-toast-host { position: fixed; top: var(--c-gap-4); right: var(--c-gap-4); z-index: 2500; display: flex; flex-direction: column; gap: var(--c-gap-2); max-width: var(--c-message-box-width); }
.p-toast {
  display: flex; align-items: flex-start; gap: var(--c-gap-2);
  padding: var(--c-gap-3) var(--c-gap-4); border-radius: var(--c-border-radius-base);
  border: var(--c-border-width) solid var(--c-color-info-200);
  background: var(--c-color-info-50); color: var(--c-text-color-primary);
  font: var(--c-text-body-2); box-shadow: var(--el-box-shadow-light);
  animation: p-toast-in var(--c-transition-duration) var(--el-transition-function-ease-in-out-bezier);
  transition: opacity var(--c-transition-duration);
}
@keyframes p-toast-in { from { opacity: 0; transform: translateY(var(--c-gap-2-neg)); } to { opacity: 1; transform: none; } }
.p-toast--success { background: var(--c-color-success-50); border-color: var(--c-color-success-200); }
.p-toast--warning { background: var(--c-color-warning-50); border-color: var(--c-color-warning-200); }
.p-toast--error { background: var(--c-color-error-50); border-color: var(--c-color-error-200); }
.p-toast__text { flex: 1; }

/* ─────────────────────────────────────── LayoutContainer (каркас)
 * Aside + Header + Main — токены --c-aside-*, --c-header-*, --c-main-padding. */
.p-body-cols { display: grid; grid-template-columns: var(--c-aside-width) minmax(0, 1fr); min-width: 0; }
.p-body-cols--wide { grid-template-columns: minmax(0, 1fr); }
.p-sidebar {
  background: var(--c-aside-background-color);
  border-right: var(--c-border-width) solid var(--c-border-color-light);
  padding: var(--c-menu-padding) 0;
  position: sticky; top: 0; height: 100vh; overflow-y: auto; z-index: 50;
}
.p-main { min-width: 0; display: flex; flex-direction: column; }
.p-header {
  height: var(--c-header-height); flex: none;
  padding: 0 var(--c-main-padding);
  background: var(--c-fill-color-blank);
  border-bottom: var(--c-border-width) solid var(--c-border-color-light);
  display: flex; align-items: center; gap: var(--c-header-gap);
  position: sticky; top: 0; z-index: 40;
}
.p-header__grow { flex: 1; min-width: 0; }
.p-header__actions { display: flex; align-items: center; gap: var(--c-header-controls-gap); }
.p-content { padding: var(--c-main-padding); flex: 1; min-width: 0; }
.p-content__inner { max-width: var(--c-page-layout-width-dense); margin: 0 auto; }

/* ─────────────────────────────────────── Menu (дерево методов)
 * Вложенность — только у групп с несколькими методами; одиночный метод
 * стоит в корне. */
.p-sidebar__search { padding: 0 var(--c-menu-padding) var(--c-menu-padding); }
.p-sidebar__title { font: var(--c-text-headline-6); color: var(--c-text-color-primary); margin: 0; padding: 0 var(--c-menu-padding) var(--c-gap-2); }
.p-nav { list-style: none; margin: 0; padding: 0; }
.p-nav__link {
  display: flex; align-items: center; gap: var(--c-gap-2); width: 100%;
  min-height: var(--c-menu-item-height);
  padding: var(--c-gap-2) var(--c-menu-padding);
  color: var(--c-text-color-regular); text-decoration: none;
  font: var(--c-text-body-2);
  background: none; border: 0; cursor: pointer; text-align: left;
  transition: background-color var(--c-transition-duration-fast), color var(--c-transition-duration-fast);
}
.p-nav__link:hover { background: var(--c-fill-color-light); color: var(--c-text-color-primary); }
.p-nav__link.is-active { background: var(--c-color-primary-50); color: var(--c-color-primary-600); font-weight: var(--c-font-weight-semi-bold); }
.p-nav__label { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.p-nav__chevron { color: var(--c-text-color-secondary); transition: transform var(--c-transition-duration) var(--el-transition-function-ease-in-out-bezier); }
.p-nav__link[aria-expanded="true"] .p-nav__chevron { transform: rotate(90deg); }
.p-nav__sub { list-style: none; margin: 0; padding: 0; }
.p-nav__sub .p-nav__link { padding-left: calc(var(--c-menu-padding) + var(--c-gap-5)); min-height: var(--c-control-size-lg); }
.p-nav__count { font: var(--c-text-caption); color: var(--c-text-color-secondary); }

/* ─────────────────────────────────────── PageLayout (статья + оглавление) */
.p-doc { display: grid; grid-template-columns: minmax(0, 1fr) var(--c-page-layout-sidebar-width-dense); gap: var(--c-gap-6); align-items: start; }
.p-doc__body { min-width: 0; }
.p-toc { position: sticky; top: calc(var(--c-header-height) + var(--c-gap-4)); }
.p-toc__title { font: var(--c-text-headline-6); color: var(--c-text-color-primary); margin: 0 0 var(--c-gap-2); }
.p-toc__list { list-style: none; margin: 0; padding: 0; max-height: 70vh; overflow-y: auto; }
.p-toc__link {
  display: block; padding: var(--c-gap-1) var(--c-gap-3);
  border-left: var(--c-gap-05) solid var(--c-border-color-light);
  color: var(--c-text-color-regular); text-decoration: none;
  font: var(--c-text-body-2);
  transition: color var(--c-transition-duration-fast), border-color var(--c-transition-duration-fast);
}
.p-toc__link:hover { color: var(--c-text-color-primary); }
.p-toc__link.is-active { color: var(--c-color-primary-600); border-left-color: var(--c-color-primary); }
.p-toc__link--sub { padding-left: var(--c-gap-6); }

/* ─────────────────────────────────────── адаптив компонентов
 * Брейкпоинты 1280 / 1024 / 768 / 480 — те же, что у головного продукта.
 * На ≤480 размеры контролов, отступы и ширины диалогов переключает файл токенов. */
@media (max-width: 1280px) {
  .p-doc { grid-template-columns: minmax(0, 1fr); }
  .p-toc { position: static; order: -1; }
  .p-toc__list { display: flex; flex-wrap: wrap; gap: var(--c-gap-1); max-height: none; }
  .p-toc__link { border-left: 0; border-radius: var(--c-border-radius-base); background: var(--c-fill-color-light); }
  .p-toc__link--sub { display: none; }
}
@media (max-width: 1024px) {
  .p-body-cols { grid-template-columns: minmax(0, 1fr); }
  .p-sidebar {
    position: fixed; inset: 0 auto 0 var(--c-gap-9); width: var(--c-aside-width);
    transform: translateX(-105%); transition: transform var(--c-transition-duration) var(--el-transition-function-ease-in-out-bezier);
    box-shadow: var(--el-box-shadow-light);
  }
  .p-sidebar.is-open { transform: none; }
}
@media (max-width: 768px) {
  /* в шапке высотой 68px крошки не переносятся: видны родитель и текущая страница */
  .p-breadcrumbs ol { flex-wrap: nowrap; min-width: 0; }
  .p-breadcrumbs li { min-width: 0; white-space: nowrap; }
  .p-breadcrumbs li:not(:nth-last-child(-n+2)) { display: none; }
  .p-breadcrumbs li span, .p-breadcrumbs li a { overflow: hidden; text-overflow: ellipsis; }
  .p-breadcrumbs li:last-child { flex-shrink: 0; max-width: 70%; }
  .p-dialog--drawer, .p-dialog--drawer.is-expanded { width: 100%; }
  /* таблица параметров превращается в стопку записей */
  .p-table--params thead { display: none; }
  .p-table--params, .p-table--params tbody, .p-table--params tr, .p-table--params td { display: block; width: 100%; }
  .p-table--params td:first-child, .p-table--params td:nth-child(2), .p-table--params td:nth-child(3) { width: 100%; }
  .p-table--params tr {
    border: var(--c-border-width) solid var(--c-border-color-light);
    border-radius: var(--c-border-radius-base); margin-bottom: var(--c-gap-2);
    padding: var(--c-gap-2);
  }
  .p-table--params td { border: 0; padding: 0; }
  .p-table--params td::before {
    content: attr(data-label); display: block;
    font: var(--c-text-caption); color: var(--c-text-color-secondary);
    padding: 0 var(--c-gap-3);
  }
  .p-table--params td:first-child::before { content: none; }
}
@media (max-width: 480px) {
  /* на телефоне в шапке остаётся только текущая страница */
  .p-breadcrumbs li:not(:last-child) { display: none; }
  .p-breadcrumbs li:last-child { max-width: 100%; }
  .p-dialog__footer { flex-direction: column-reverse; }
  .p-dialog__footer .p-btn { width: 100%; }
  .p-toast-host { left: var(--c-gap-3); right: var(--c-gap-3); max-width: none; }
}


/* ═══════════════════════════════════════ компоненты админки
 * У каждого — свой компонентный токен из файла дизайн-системы. */

.p-btn--danger-text { background: transparent; border-color: transparent; color: var(--c-color-error-600); }
.p-btn--danger-text:hover { background: var(--c-color-error-50); border-color: transparent; color: var(--c-color-error-600); }

/* Dropdown: пункт с иконкой и опасное действие */
.p-dropdown__item { gap: var(--c-gap-2); }
.p-dropdown__item .p-icon { color: var(--c-text-color-secondary); }
.p-dropdown__item--danger, .p-dropdown__item--danger .p-icon { color: var(--c-color-error-600); }
.p-dropdown__item--danger:hover { background: var(--c-color-error-50); color: var(--c-color-error-600); }

/* FilterBar */
.p-filter-bar { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--c-filter-bar-gap); margin-bottom: var(--c-gap-4); }
.p-filter-bar > .p-field { margin-bottom: 0; flex: 0 1 auto; }
.p-filter-bar > .p-field:first-child { flex: 1 1 calc(var(--c-select-width-min) * 2); }
.p-filter-bar__actions { display: flex; gap: var(--c-filter-bar-gap); margin-left: auto; }

/* Form actions */
.p-form-actions { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--c-form-actions-group-gap); }
.p-form-actions__group { display: flex; flex-wrap: wrap; gap: var(--c-form-actions-action-gap); }
.p-form-actions--sticky {
  position: sticky; bottom: 0; z-index: 30;
  padding: var(--c-gap-3) var(--c-card-padding);
  background: var(--c-fill-color-blank);
  border: var(--c-border-width) solid var(--c-border-color-light);
  border-radius: var(--c-card-border-radius);
  box-shadow: var(--el-box-shadow-lighter);
}

/* MessageBox */
.p-dialog--message { width: var(--c-message-box-width); }
.p-dialog__title--sm { font: var(--c-text-headline-5); display: flex; align-items: center; gap: var(--c-gap-2); }
.p-message-box__icon { color: var(--c-color-warning-600); }

/* InputNumber */
.p-input-number { position: relative; display: inline-flex; min-width: var(--c-input-number-width-min); }
.p-input-number .p-input { text-align: center; padding-inline: calc(var(--c-control-size-md) + var(--c-gap-2)); -moz-appearance: textfield; }
.p-input-number .p-input::-webkit-inner-spin-button, .p-input-number .p-input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.p-input-number__btn {
  position: absolute; top: var(--c-border-width); bottom: var(--c-border-width); z-index: 1;
  width: var(--c-control-size-md); border: 0; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--c-fill-color-light); color: var(--c-text-color-regular);
  transition: color var(--c-transition-duration-fast);
}
.p-input-number__btn:hover { color: var(--c-color-primary); }
.p-input-number__btn[data-step="-1"] { left: var(--c-border-width); border-radius: var(--c-field-border-radius) 0 0 var(--c-field-border-radius); border-right: var(--c-border-width) solid var(--c-field-border-color); }
.p-input-number__btn[data-step="1"] { right: var(--c-border-width); border-radius: 0 var(--c-field-border-radius) var(--c-field-border-radius) 0; border-left: var(--c-border-width) solid var(--c-field-border-color); }

/* DateEditor: своя outline-иконка слева; системный значок браузера (solid)
   невидим, но остаётся кликабельным на всю ширину поля */
.p-date { width: var(--c-date-editor-width); max-width: 100%; }
.p-date .p-input { position: relative; }
.p-date .p-input::-webkit-calendar-picker-indicator { position: absolute; inset: 0; width: auto; height: auto; opacity: 0; cursor: pointer; }

/* Upload */
.p-upload {
  display: flex; flex-direction: column; align-items: center; gap: var(--c-gap-2); text-align: center;
  padding: var(--c-gap-6) var(--c-gap-4); cursor: pointer;
  background: var(--c-fill-color-blank);
  border: var(--c-border-width) dashed var(--c-border-color);
  border-radius: var(--c-border-radius-base);
  transition: border-color var(--c-transition-duration);
}
.p-upload:hover, .p-upload.is-dragover { border-color: var(--c-color-primary); }
.p-upload:focus-within { outline: var(--c-focus-outline); outline-offset: var(--c-focus-outline-offset); }
.p-upload__icon { color: var(--c-text-color-secondary); }
.p-upload__title { font: var(--c-text-body-2); color: var(--c-text-color-primary); }
.p-upload__file { font: var(--c-text-body-2); color: var(--c-color-success-600); }

/* Table: выбор строк и колонка действий */
.p-table__select { width: calc(var(--c-checkbox-size-base) + var(--c-gap-3) * 2); }
.p-table__select .p-check { min-height: 0; }
.p-table__actions { width: var(--c-table-column-actions-width); text-align: right; white-space: nowrap; }
.p-table td.p-table__actions .p-cell, .p-table td.p-table__select .p-cell { padding-block: 0; }
.p-table tbody tr.is-selected { background: var(--c-color-primary-50); }
.p-table td { vertical-align: middle; }
.p-table--params td { vertical-align: top; }

/* PageLayout с боковой колонкой (форма + сведения) */
.p-page-layout--sidebar { display: grid; grid-template-columns: minmax(0, 1fr) var(--c-page-layout-sidebar-width); gap: var(--c-gap-5); align-items: start; }
.p-page-layout__main, .p-page-layout__side { min-width: 0; }

/* Menu: пункт с иконкой */
.p-nav__icon { color: var(--c-text-color-secondary); }
.p-nav__link.is-active .p-nav__icon { color: var(--c-color-primary); }

@media (max-width: 1024px) {
  .p-page-layout--sidebar { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 480px) {
  .p-filter-bar > .p-field, .p-filter-bar__actions { flex: 1 1 100%; margin-left: 0; }
  .p-filter-bar .p-select, .p-filter-bar .p-date { width: 100%; }
  .p-form-actions, .p-form-actions__group { flex-direction: column-reverse; align-items: stretch; }
  .p-form-actions .p-btn { width: 100%; }
  .p-form-actions--sticky { position: static; box-shadow: none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
