/* =========================================
   UI Kit - Catalog Layout
   ========================================= 
   
   ПРИМЕЧАНИЕ: Основные определения контейнеров и layout перенесены в layout.css
   Здесь остались только специфичные стили каталога
   ========================================= */

/* Шапка каталога */
.catalog-header {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    background: var(--surface-panel);
    border: none;
    border-radius: var(--radius-16);
    padding: var(--space-4);
    margin-top: 0;
    position: relative;
    z-index: 10;
}

/* Убираем margin-bottom у catalog-header внутри catalog-main, т.к. родитель управляет gap */
.catalog-main > .catalog-header {
    margin-bottom: 0;
}

/* Прозрачный заголовок-страницы — без фона и скругления, просто текст над контентом */
.catalog-header-plain {
    background: transparent !important;
    border-radius: 0 !important;
    padding-left: var(--space-1) !important;
    padding-right: var(--space-1) !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.catalog-header-plain .catalog-header-title {
    color: var(--text-secondary);
}

.catalog-header-top {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
}

/* «Назад» + заголовок слева (как /events: h5 + действие справа) */
.catalog-header .catalog-header-top .gc-back-link.gc-back-link--sm {
    height: var(--gc-btn-sm-min-height);
    min-height: var(--gc-btn-sm-min-height);
}

.catalog-header .catalog-header-top .gc-back-link.gc-back-link--sm i {
    font-size: var(--font-size-15);
}

/* Паттерн gc-subheader--spread внутри .catalog-header: одна полоса с бордером у родителя, без второй «карточки» */
.catalog-header > .gc-subheader.catalog-header-subheader-row {
    width: 100%;
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 0;
}

/* «Назад» и «Создать» в шапке каталога: одна высота с .gc-btn-sm, иконка как у компактного back-link */
.catalog-header > .gc-subheader.catalog-header-subheader-row .gc-back-link.gc-back-link--sm {
    height: var(--gc-btn-sm-min-height);
    min-height: var(--gc-btn-sm-min-height);
}

.catalog-header > .gc-subheader.catalog-header-subheader-row .gc-back-link.gc-back-link--sm i {
    font-size: var(--font-size-15);
}

/* Строка с заголовком и бейджами */
.catalog-header-title-row {
    display: flex;
    align-items: center;
    gap: var(--space-1); /* 4px между заголовком и бейджами */
}

/* «Назад» + h5 в одной строке слева от кнопки (add-stage) */
.catalog-header-title-row.catalog-header-title-row--lead {
    gap: var(--space-2);
    flex: 1 1 auto;
    min-width: 0;
}

.catalog-header-title-row.catalog-header-title-row--lead .catalog-header-title {
    min-width: 0;
}

.catalog-header-search {
    position: relative;
    z-index: 1; /* Выше остальных элементов header для корректного отображения dropdown */
}

.catalog-header-search .gc-search-input-wrapper {
    margin-bottom: 0;
}

/* Строка: поиск + сортировка */
.catalog-header-toolbar {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
}

.catalog-header-toolbar .catalog-header-search {
    flex: 1 1 12rem;
    min-width: 0;
}

.catalog-header-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
}

.catalog-header-toolbar .catalog-sort-dropdown-wrap {
    flex: 0 0 auto;
    display: flex;
    align-items: stretch;
}

/*
 * Сортировка в toolbar = sibling к `.gc-search-input-wrapper`.
 * Бить `.gc-dropdown > .gc-btn.gc-btn-bordered…:is(.gc-btn-icon)` и
 * `.gc-btn-icon { --gc-btn-icon-radius: 12 }` — иначе 12 vs input 10.
 */
.catalog-header-toolbar .catalog-sort-dropdown--icon-only .gc-dropdown > .gc-btn.gc-btn-bordered.gc-dropdown-toggle.catalog-sort-dropdown__toggle--icon-square,
.catalog-header-toolbar .catalog-sort-dropdown--icon-only .gc-dropdown > .gc-btn.catalog-sort-dropdown__toggle--icon-square {
    --gc-btn-icon-radius: var(--gc-input-radius);
    --gc-btn-radius: var(--gc-input-radius);
    width: var(--gc-input-min-height);
    height: var(--gc-input-min-height);
    min-width: var(--gc-input-min-height);
    max-width: var(--gc-input-min-height);
    min-height: var(--gc-input-min-height);
    max-height: var(--gc-input-min-height);
    padding: 0;
    justify-content: center;
    gap: 0;
    box-sizing: border-box;
    border: 1px solid var(--gc-input-border);
    border-radius: var(--gc-input-radius);
    background: var(--gc-input-bg);
    box-shadow: var(--gc-input-shadow, none);
    color: var(--text-secondary);
    --gc-btn-hairline: 0 0 #0000;
    --gc-btn-elevation: 0 0 #0000;
}

.catalog-header-toolbar .catalog-sort-dropdown--icon-only .gc-dropdown > .gc-btn.catalog-sort-dropdown__toggle--icon-square::after {
    display: none !important;
    content: none !important;
}

.catalog-header-toolbar .catalog-sort-dropdown--icon-only .gc-dropdown > .gc-btn.catalog-sort-dropdown__toggle--icon-square .catalog-sort-dropdown__toggle-lead i {
    font-size: var(--font-size-18);
}

.catalog-header-toolbar .catalog-sort-dropdown--icon-only .gc-dropdown > .gc-btn.catalog-sort-dropdown__toggle--icon-square:hover,
.catalog-header-toolbar .catalog-sort-dropdown--icon-only .gc-dropdown > .gc-btn.catalog-sort-dropdown__toggle--icon-square[aria-expanded='true'] {
    border-color: var(--gc-input-border-hover);
    background: var(--gc-input-bg-hover);
    box-shadow: var(--gc-input-shadow-hover, var(--gc-input-shadow, none));
    color: var(--text-primary);
}

.catalog-header-toolbar .catalog-sort-dropdown--icon-only .gc-dropdown > .gc-btn.catalog-sort-dropdown__toggle--icon-square:focus-visible {
    outline: var(--gc-focus-outline);
    outline-offset: var(--gc-focus-outline-offset);
    border-color: var(--gc-input-focus-border);
    box-shadow: var(--gc-input-shadow-focus, 0 0 0 3px var(--ui-focus-ring));
}

/* Выпадающий список сортировки */
.catalog-sort-dropdown .catalog-sort-dropdown__toggle {
    max-width: 100%;
    min-width: min(100%, 14rem);
    justify-content: flex-start;
    gap: var(--space-2);
}

.catalog-sort-dropdown__toggle-lead {
    display: inline-flex;
    align-items: center;
    opacity: 0.85;
    flex-shrink: 0;
}

.catalog-sort-dropdown__toggle-lead i {
    font-size: var(--font-size-18);
}

.catalog-sort-dropdown__toggle-label {
    overflow: hidden;
    text-overflow: ellipsis;
    text-align: left;
}

.catalog-sort-dropdown__menu {
    min-width: min(100vw - 2rem, 18rem);
}

/* Мобильная сортировка: chip-сегмент в .gc-nav-track (navbar.css) */
.catalog-mobile-sort {
    padding: var(--space-2) var(--space-4) var(--space-4);
    border-bottom: 1px solid var(--border-subtle);
}

.catalog-mobile-sort .catalog-sort-dropdown {
    width: 100%;
}

.catalog-mobile-sort .catalog-sort-dropdown__toggle {
    width: 100%;
    min-width: 0;
    justify-content: space-between;
}

/*
 * Rail /stages: сортировка как outlined field (gc-input), не pill-кнопка.
 */
.catalog-sort-dropdown--field {
    width: 100%;
    min-width: 0;
}

.catalog-sort-dropdown--field .gc-dropdown {
    width: 100%;
    display: block;
}

.stages-index-rail-nav__sort .catalog-sort-dropdown--field .gc-dropdown > .gc-btn.catalog-sort-dropdown__toggle--field,
.catalog-sort-dropdown--field .catalog-sort-dropdown__toggle--field {
    --gc-btn-radius: var(--gc-input-radius);
    --gc-btn-sm-radius: var(--gc-input-radius);
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: var(--gc-input-min-height);
    height: var(--gc-input-min-height);
    padding-inline: var(--gc-input-padding-x) var(--space-3);
    justify-content: flex-start;
    gap: var(--space-2);
    border-radius: var(--gc-input-radius);
    border: 1px solid var(--gc-input-border);
    background: var(--gc-input-bg);
    color: var(--gc-input-fg);
    box-shadow: var(--gc-input-shadow, none);
    font-size: var(--gc-input-font-size-lg);
    font-weight: 500;
}

.catalog-sort-dropdown--field .catalog-sort-dropdown__toggle--field .catalog-sort-dropdown__toggle-label {
    flex: 1 1 auto;
    min-width: 0;
}

.catalog-sort-dropdown--field .catalog-sort-dropdown__toggle--field .gc-dropdown-caret,
.catalog-sort-dropdown--field .catalog-sort-dropdown__toggle--field .gc-caret {
    margin-inline-start: auto;
    flex-shrink: 0;
}

@media (hover: hover) and (pointer: fine) {
    .catalog-sort-dropdown--field .catalog-sort-dropdown__toggle--field:hover,
    .catalog-sort-dropdown--field .catalog-sort-dropdown__toggle--field[aria-expanded='true'] {
        background: var(--gc-input-bg-hover, var(--gc-input-bg));
        border-color: var(--gc-input-border-hover, var(--gc-input-border));
        color: var(--gc-input-fg);
    }
}

.catalog-sort-dropdown--field .catalog-sort-dropdown__toggle--field:focus-visible {
    outline: none;
    border-color: var(--gc-input-focus-border);
    box-shadow: var(--gc-input-shadow-focus, 0 0 0 3px var(--ui-focus-ring));
}

.catalog-header-filters {
    position: relative;
}

.catalog-header-filters .gc-tabs-container {
    margin-bottom: 0;
}

/* Фикс для Bootstrap .d-lg-block, который переопределяет display: flex */
@media (min-width: 992px) {
    .catalog-header.d-lg-block {
        display: flex !important;
        flex-direction: column;
    }
}

@media (max-width: 575px) {
    .catalog-header {
        padding: var(--space-4);
    }
}

/* =========================================
   Catalog Navigation (Sidebar)
   ========================================= */

/* Специальный стиль для сайдбара профиля с разделенными секциями */
.profile-sidebar-sections {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

@media (min-width: 992px) {
    /* Classic catalog-sidebar профиля/канала. Не вешать на Inertia .profile-show-sidebar-stack. */
    .profile-sidebar-sections {
        background: transparent !important;
        padding: 0 !important;
    }
}

    .profile-sidebar-sections .catalog-nav {
        overflow: hidden;
    }

/* Токены rail виджетов — на main/above-fold, чтобы gap между hero и fallback не схлопывался */
.profile-show-main,
.profile-show-above-fold,
.events-index-context-rail-stack,
.stages-index-context-rail-stack,
.gc-legal-context-rail-stack {
    --profile-rail-widget-inset-x: calc(var(--gc-list-zone-padding) + var(--space-2));
    --profile-rail-widget-stack-gap: var(--profile-rail-widget-inset-x);
}

.profile-show-sidebar-stack {
    --profile-rail-widget-inset-x: calc(var(--gc-list-zone-padding) + var(--space-2));
    --profile-rail-widget-stack-gap: var(--profile-rail-widget-inset-x);
    display: flex;
    flex-direction: column;
    gap: var(--profile-rail-widget-stack-gap);
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

/* Плитки разделов → статы / настрел: один compact-блок (статы выше плиток). */
.profile-show-sidebar-stack__lead {
    display: flex;
    flex-direction: column;
    gap: var(--profile-rail-widget-stack-gap);
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

/*
 * Статы (gc-stat-list) — inset через --profile-rail-widget-inset-x.
 * Мозаика настрела — inset в desktop rail; на адаптиве занимает ширину блока.
 * Списки товарищей/сообществ — inset как stat-list.
 */
.profile-show-sidebar-stack > .gc-stat-list,
.profile-show-sidebar-stack__lead > .gc-stat-list {
    padding: calc(var(--profile-rail-widget-inset-x) - var(--space-product-2))
        var(--profile-rail-widget-inset-x);
    margin: 0;
    box-sizing: border-box;
}

/* Билеты льгот в context rail — inset как stat-list / настрел */
.profile-show-sidebar-stack > .profile-rail-benefits {
    display: flex;
    flex-direction: column;
    gap: var(--profile-rail-widget-stack-gap);
    padding-inline: var(--profile-rail-widget-inset-x);
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
}

.profile-rail-benefits__chip {
    align-self: flex-start;
}

/*
 * ≥1280: товарищи / сообщества — list-строки (как channel-upcoming).
 * <1280: один слайдер плиток (товарищи + сообщества).
 */
.profile-show-rail-desktop-extras {
    display: flex;
    flex-direction: column;
    gap: 0;
    min-width: 0;
    width: 100%;
}

/* catalog-nav: section-gap между группами; item-gap — единый шаг внутри группы (заголовок / табы / строки) */
.profile-rail-people-list.catalog-nav {
    --profile-rail-hover-bg: color-mix(in srgb, var(--surface-interaction-row-hover) 92%, var(--text-primary));
    --profile-rail-people-section-gap: var(--profile-rail-widget-stack-gap);
    --profile-rail-people-item-gap: var(--space-1);
    --catalog-nav-inset: var(--space-2);
    --gc-list-row-padding: var(--space-2);
    margin-inline: calc(var(--profile-rail-widget-inset-x) - var(--catalog-nav-inset));
    width: calc(100% - 2 * (var(--profile-rail-widget-inset-x) - var(--catalog-nav-inset)));
    padding-block: 0;
    min-width: 0;
    box-sizing: border-box;
    gap: var(--profile-rail-people-section-gap);
}

.profile-rail-people-list.catalog-nav > .catalog-nav-group.profile-rail-people-group,
.profile-rail-people-group {
    display: flex;
    flex-direction: column;
    gap: var(--profile-rail-people-item-gap);
    min-width: 0;
}

.profile-rail-people-list.catalog-nav .profile-rail-people-group__trigger.gc-interactive-row {
    width: 100%;
    margin: 0;
    padding: var(--space-1) 0;
    background: transparent;
}

.profile-rail-people-group__trigger .gc-section-header-trigger__caret {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--space-8);
    height: var(--space-8);
    flex: 0 0 var(--space-8);
    border-radius: var(--radius-full);
    transition: background var(--transition-fast);
}

@media (hover: hover) and (pointer: fine) {
    .profile-rail-people-group__trigger:hover .gc-section-header-trigger__caret {
        background: var(--profile-rail-hover-bg);
    }
}

.profile-rail-people-group__trigger:focus-visible .gc-section-header-trigger__caret {
    background: var(--profile-rail-hover-bg);
}

/* Строки остаются внутри секции; hover выделяет только подпись справа. */
.profile-rail-people-list.catalog-nav .catalog-nav-item:is(:hover, :focus-visible, :active) {
    background: transparent;
}

.profile-rail-people-list.catalog-nav .catalog-nav-item {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding-inline: 0;
    border: 0;
    background: transparent;
}

.profile-rail-people-group__trigger-label,
.profile-rail-people-group__title {
    flex: 1 1 auto;
    min-width: 0;
    font-size: var(--font-size-12);
    font-weight: 600;
    line-height: var(--gc-list-meta-line-height);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-secondary);
}

.profile-rail-people-list.catalog-nav .profile-rail-people-group__title {
    box-sizing: border-box;
    width: calc(100% + (2 * var(--gc-list-row-padding)));
    max-width: none;
    margin-inline: calc(-1 * var(--gc-list-row-padding));
    padding: var(--space-1) var(--gc-list-row-padding) 0;
}

.profile-rail-people-tabs-wrap {
    min-width: 0;
}

.profile-rail-people-tabs-wrap .gc-tabs {
    width: 100%;
}

/* Pill chrome: micro inner-depth (36px pill-sm — слабее catalog L-tier) */
.profile-rail-people-tabs-wrap .gc-tabs.gc-tabs--pill.gc-tabs--chrome {
    --gc-card-glow-soft-edge: color-mix(in srgb, var(--border-default) 22%, var(--border-subtle));
    --gc-card-glow-hover-border: color-mix(
        in srgb,
        var(--fill-emphasis-inverse) 5%,
        var(--gc-card-glow-soft-edge)
    );
    --gc-card-glow-hover-bg: color-mix(
        in srgb,
        var(--surface-interaction-row-hover) 30%,
        transparent
    );
    --gc-card-glow-inner-rest-top: color-mix(in srgb, var(--fill-emphasis-inverse) 4%, transparent);
    /* Dark / micro: только top inset — spread на 36px даёт «мыла» */
    --gc-profile-rail-tab-active-shadow: inset 0 1px 0 var(--gc-card-glow-inner-rest-top);
    --gc-profile-rail-tab-hover-shadow: inset 0 1px 0 var(--gc-card-glow-inner-rest-top);
    box-shadow: none;
}

html[data-theme='light'] .profile-rail-people-tabs-wrap .gc-tabs.gc-tabs--pill.gc-tabs--chrome {
    --gc-card-glow-hover-border: var(--gc-card-glow-soft-edge);
    --gc-card-glow-hover-bg: color-mix(
        in srgb,
        var(--surface-interaction-row-hover) 28%,
        transparent
    );
    --gc-card-glow-inner-rest-top: color-mix(in srgb, var(--fill-emphasis) 2%, transparent);
    /* Light / micro: без spread — только чистый top highlight */
    --gc-profile-rail-tab-active-shadow: inset 0 1px 0 var(--gc-card-glow-inner-rest-top);
    --gc-profile-rail-tab-hover-shadow: inset 0 1px 0 var(--gc-card-glow-inner-rest-top);
}

.profile-rail-people-tabs-wrap .gc-tabs.gc-tabs--pill.gc-tabs--pill-sm .gc-tab-link,
.profile-rail-people-tabs-wrap .gc-tabs.gc-tabs--pill.gc-tabs--pill-sm button.gc-tab-link {
    font-weight: 400;
}

.profile-rail-people-tabs-wrap .gc-tabs.gc-tabs--pill.gc-tabs--pill-sm .gc-tab-link.active,
.profile-rail-people-tabs-wrap .gc-tabs.gc-tabs--pill.gc-tabs--pill-sm button.gc-tab-link.active {
    font-weight: 500;
}

.profile-rail-people-tabs-wrap .gc-tabs.gc-tabs--pill.gc-tabs--chrome .gc-tabs-indicator {
    border: 1px solid var(--gc-card-glow-hover-border);
    box-shadow: var(--gc-profile-rail-tab-active-shadow);
    transition:
        left var(--gc-tabs-pill-duration) var(--ease-in-out),
        width var(--gc-tabs-pill-duration) var(--ease-in-out),
        border-color var(--transition-fast),
        box-shadow var(--transition-fast);
}

.profile-rail-people-tabs-wrap .gc-tabs.gc-tabs--pill.gc-tabs--chrome .gc-tab-link,
.profile-rail-people-tabs-wrap .gc-tabs.gc-tabs--pill.gc-tabs--chrome button.gc-tab-link {
    position: relative;
    isolation: isolate;
    border: 1px solid transparent;
    box-shadow: none;
    transition:
        color var(--gc-tabs-pill-duration) var(--ease-in-out),
        background-color var(--transition-fast),
        box-shadow var(--transition-fast),
        border-color var(--transition-fast);
}

.profile-rail-people-tabs-wrap .gc-tabs.gc-tabs--pill.gc-tabs--chrome .gc-tab-link:hover:not(.active),
.profile-rail-people-tabs-wrap .gc-tabs.gc-tabs--pill.gc-tabs--chrome button.gc-tab-link:hover:not(.active),
.profile-rail-people-tabs-wrap .gc-tabs.gc-tabs--pill.gc-tabs--chrome .gc-tab-link:focus-visible:not(.active),
.profile-rail-people-tabs-wrap .gc-tabs.gc-tabs--pill.gc-tabs--chrome button.gc-tab-link:focus-visible:not(.active) {
    background: var(--gc-card-glow-hover-bg);
    border: 1px solid var(--gc-card-glow-hover-border);
    box-shadow: var(--gc-profile-rail-tab-hover-shadow);
}

.profile-rail-people-tabs-wrap .gc-tabs.gc-tabs--pill.gc-tabs--chrome:not(.gc-tabs--indicator-ready) .gc-tab-link.active,
.profile-rail-people-tabs-wrap .gc-tabs.gc-tabs--pill.gc-tabs--chrome:not(.gc-tabs--indicator-ready) button.gc-tab-link.active {
    background: var(--gc-tabs-chrome-thumb-bg);
    border: 1px solid var(--gc-card-glow-hover-border);
    box-shadow: var(--gc-profile-rail-tab-active-shadow);
}

@media (prefers-reduced-motion: reduce) {
    .profile-rail-people-tabs-wrap .gc-tabs.gc-tabs--pill.gc-tabs--chrome .gc-tabs-indicator,
    .profile-rail-people-tabs-wrap .gc-tabs.gc-tabs--pill.gc-tabs--chrome .gc-tab-link,
    .profile-rail-people-tabs-wrap .gc-tabs.gc-tabs--pill.gc-tabs--chrome button.gc-tab-link {
        transition: none;
    }
}

.profile-rail-people-group__body {
    display: grid;
    min-width: 0;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: 1fr;
    transition: grid-template-rows var(--transition-base) var(--ease-out);
}

.profile-rail-people-group.collapsed .profile-rail-people-group__body {
    grid-template-rows: 0fr;
}

.profile-rail-people-group__body-inner {
    display: flex;
    flex-direction: column;
    gap: var(--profile-rail-people-item-gap);
    min-height: 0;
    min-width: 0;
    overflow: hidden;
}

/* Раскрыто: сохранять видимость фокуса и декора аватаров. */
.profile-rail-people-group:not(.collapsed) .profile-rail-people-group__body-inner {
    overflow: visible;
}

.profile-rail-people-group__rows {
    display: flex;
    flex-direction: column;
    gap: var(--profile-rail-people-item-gap);
    min-width: 0;
}

.profile-rail-people-list .catalog-nav-item {
    --gc-list-media-size: var(--gc-list-media-size-md);
    gap: var(--space-2);
    padding-block: var(--space-2);
    padding-inline: var(--space-2);
}

.profile-rail-people-list .catalog-nav-item > .gc-list-meta {
    flex-shrink: 0;
    white-space: nowrap;
    padding: var(--space-1) var(--space-2);
    border-radius: var(--radius-full);
    transition: background var(--transition-fast);
}

.profile-rail-people-list .catalog-nav-title {
    max-width: min(16ch, 100%);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (hover: hover) and (pointer: fine) {
    .profile-rail-people-list .catalog-nav-item:is(a, button):hover > .gc-list-meta {
        background: var(--profile-rail-hover-bg);
    }
}

.profile-rail-people-list .catalog-nav-item:is(a, button):is(:focus-visible, :active) > .gc-list-meta {
    background: var(--profile-rail-hover-bg);
}

.profile-rail-people-list .gc-avatar-stack-static {
    padding-left: 0;
}

.profile-rail-people-list .gc-avatar-stack-static > :is(.gc-img-slot, .gc-list-avatar, .gc-list-avatar-fallback) {
    box-sizing: border-box;
    border: none;
    box-shadow: 0 0 0 1.5px var(--surface-primary);
}

.profile-rail-people-list .gc-avatar-stack-static > *:nth-child(1) { z-index: 3; }
.profile-rail-people-list .gc-avatar-stack-static > *:nth-child(2) { z-index: 2; }
.profile-rail-people-list .gc-avatar-stack-static > *:nth-child(3) { z-index: 1; }

.profile-rail-people-list .catalog-nav-content > .gc-list-meta {
    white-space: normal;
}

@media (prefers-reduced-motion: reduce) {
    .profile-rail-people-group__body {
        transition: none;
    }
}

.profile-rail-people-slider {
    display: flex;
    flex-direction: column;
    gap: var(--profile-rail-widget-stack-gap);
    min-width: 0;
}

.profile-rail-people-carousel {
    position: relative;
    width: 100%;
    min-width: 0;
}

.profile-rail-people-carousel-track {
    display: flex;
    gap: var(--space-2);
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x pan-y;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
    min-width: 0;
}

.profile-rail-people-carousel-track::-webkit-scrollbar {
    display: none;
}

.profile-rail-people-carousel .carousel-nav-prev {
    left: var(--space-1);
}

.profile-rail-people-carousel .carousel-nav-next {
    right: var(--space-1);
}

.profile-rail-person-tile {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-1-5);
    flex: 0 0 6.5rem;
    width: 6.5rem;
    max-width: 6.5rem;
    min-width: 0;
    padding: var(--space-2);
    border: none;
    border-radius: var(--radius-12);
    background: var(--surface-secondary);
    appearance: none;
    -webkit-appearance: none;
    font: inherit;
    text-align: center;
    text-decoration: none;
    color: inherit;
    cursor: pointer;
    box-sizing: border-box;
    scroll-snap-align: start;
    transition: background var(--transition-fast);
}

@media (min-width: 1280px) and (hover: hover) and (pointer: fine) {

.profile-rail-person-tile:is(:hover, :focus-visible) {
    background: var(--gc-interactive-hover-bg);
    color: inherit;
    text-decoration: none;
}
}

.profile-rail-person-tile:is( :focus-visible) {
    background: var(--gc-interactive-hover-bg);
    color: inherit;
    text-decoration: none;
}

/* Ряд 1–3 плиток на ширину колонки (не карусель). */
.profile-rail-person-tile-row {
    display: flex;
    gap: var(--space-2);
    min-width: 0;
}

.profile-rail-person-tile-row > .profile-rail-person-tile {
    flex: 1 1 0;
    width: auto;
    max-width: none;
}

.profile-rail-person-tile-row--segmented {
    gap: 0;
    overflow: hidden;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-12);
    background: var(--surface-secondary);
}

.profile-rail-person-tile-row--segmented > .profile-rail-person-tile {
    border-radius: 0;
    background: transparent;
}

.profile-rail-person-tile-row--segmented > .profile-rail-person-tile + .profile-rail-person-tile {
    border-left: 1px solid var(--border-subtle);
}

@media (min-width: 1280px) and (hover: hover) and (pointer: fine) {

.profile-rail-person-tile-row--segmented > .profile-rail-person-tile:is(:hover, :focus-visible) {
    background: var(--gc-interactive-hover-bg);
}
}

.profile-rail-person-tile-row--segmented > .profile-rail-person-tile:is( :focus-visible) {
    background: var(--gc-interactive-hover-bg);
}

.profile-rail-person-tile__name,
.profile-rail-person-tile__meta {
    margin: 0;
    width: 100%;
    text-align: center;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.profile-rail-person-tile__name {
    font-size: var(--font-size-13);
    font-weight: 500;
    line-height: 1.25;
    color: var(--text-primary);
}

.profile-rail-person-tile__meta {
    font-size: var(--font-size-12);
    font-weight: 400;
    line-height: 1.25;
    color: var(--text-secondary);
}

.profile-rail-person-tile .gc-list-media-round,
.profile-rail-person-tile .gc-list-media-icon {
    flex-shrink: 0;
}

/* Иконка в action/section плитке — глиф без chip/frame */
.profile-rail-person-tile__glyph {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: var(--space-6);
    height: var(--space-6);
    font-size: var(--font-size-20);
    line-height: 1;
    color: var(--text-secondary);
}

.profile-rail-person-tile__glyph i {
    font-size: inherit;
    line-height: 1;
}

/* Разделы профиля: фикс. высота, иконка+название по центру */
.profile-rail-person-tile--section {
    position: relative;
    justify-content: center;
    gap: var(--space-1);
    /* Воздух сверху/снизу + запас под каунтер в углу (padding в height — border-box) */
    height: calc(var(--space-6) + var(--space-6) + var(--space-1) + (var(--font-size-13) * 1.25) + var(--space-6));
    min-height: calc(var(--space-6) + var(--space-6) + var(--space-1) + (var(--font-size-13) * 1.25) + var(--space-6));
    padding-block: var(--space-6);
    overflow: visible;
}

.profile-rail-person-tile--section .profile-rail-person-tile__glyph {
    width: var(--space-6);
    height: var(--space-6);
    font-size: var(--font-size-18);
    color: var(--text-primary);
}

.profile-rail-person-tile--section .profile-rail-person-tile__name {
    color: var(--text-primary);
}

.profile-rail-person-tile--section[aria-current="page"] {
    background: var(--surface-selected);
}

/* Тихий каунтер в углу — крупнее и с воздухом от края */
.profile-rail-person-tile--section .profile-rail-person-tile__count {
    position: absolute;
    top: var(--space-2);
    right: var(--space-2);
    z-index: 1;
    box-sizing: border-box;
    min-width: calc(var(--space-4) + var(--space-2));
    min-height: calc(var(--space-4) + var(--space-2));
    padding: 0 var(--space-1-5);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-full);
    border: 1px solid var(--border-subtle);
    background: color-mix(in srgb, var(--fill-primary) 5%, var(--surface-primary));
    color: var(--text-secondary);
    font-size: var(--font-size-12);
    font-weight: 500;
    font-variant-numeric: tabular-nums;
    line-height: 1;
    pointer-events: none;
}

/* Сумма на нижней грани — glass pill (gc-chip--glass), не conic --pill */
.profile-rail-person-tile--section .profile-rail-person-tile__badge-anchor {
    position: absolute;
    bottom: 0;
    left: 50%;
    z-index: 2;
    transform: translate(-50%, 50%);
    pointer-events: none;
}

.profile-rail-person-tile--section .profile-rail-section-sum-chip {
    width: max-content;
    max-width: none;
    padding: 0 var(--space-2-5);
    min-height: calc(var(--space-4) + var(--space-2));
    font-size: var(--font-size-12);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    line-height: 1;
    color: var(--text-primary);
}

@media (min-width: 1280px) and (hover: hover) and (pointer: fine) {

.profile-rail-person-tile--section:is(:hover, :focus-visible) .profile-rail-section-sum-chip.gc-chip--glass {
    background: color-mix(in srgb, var(--surface-secondary) 88%, transparent);
    box-shadow:
        var(--gc-mobile-nav-icon-shadow),
        inset 0 1px 0 color-mix(in srgb, var(--fill-emphasis-inverse) 22%, transparent);
}
}

.profile-rail-person-tile--section:is( :focus-visible) .profile-rail-section-sum-chip.gc-chip--glass {
    background: color-mix(in srgb, var(--surface-secondary) 88%, transparent);
    box-shadow:
        var(--gc-mobile-nav-icon-shadow),
        inset 0 1px 0 color-mix(in srgb, var(--fill-emphasis-inverse) 22%, transparent);
}

.profile-show-rail-people-bleed:has(.profile-rail-section-sum-chip) .profile-rail-people-carousel-track {
    padding-block-end: calc((var(--space-4) + var(--space-2)) / 2);
}

/* <992: плитки у верхнего бара; до даты — space/4, не шаг main. */
@media (max-width: 991.98px) {
    .page-container-flush:has(.catalog-kind-tiles) {
        padding-top: var(--space-2);
    }

    .catalog-main.events-index-main:has(> .catalog-kind-tiles) {
        gap: var(--space-4);
    }
}

/*
 * Adaptive profile carousels (люди + оружие): column overflow-x:hidden
 * клипил 100vw / negative-margin bleed — карточки резались по inset колонки,
 * не по краю экрана. Profile-show и плитки разделов каталога.
 */
@media (max-width: 1279.98px) {
    .page-container-flush.gc-page-grid:has(.profile-show-main) .split-layout,
    .split-right.gc-page-grid__main.profile-show-main,
    .page-container-flush.gc-page-grid:has(.catalog-kind-tiles) .split-layout,
    .split-right.gc-page-grid__main:has(.catalog-kind-tiles),
    .stages-index-catalog:has(.catalog-kind-tiles),
    .stages-index-catalog:has(.catalog-kind-tiles) .catalog-layout,
    .stages-index-catalog:has(.catalog-kind-tiles) .catalog-main {
        overflow-x: visible;
    }
}

/*
 * Adaptive: true full-bleed к краю viewport. Peek ~3.35 плитки.
 * Работает вместе с overflow-x:visible на profile-show-main (см. выше).
 */
@media (max-width: 1279.98px) {
    .profile-show-rail-fallback .profile-show-rail-people-bleed {
        --profile-rail-people-bleed: var(--gc-app-main-inset-x, var(--layout-content-inset-x));
        width: 100vw;
        max-width: 100vw;
        margin-left: calc(50% - 50vw);
        box-sizing: border-box;
    }

    .profile-show-rail-fallback .profile-rail-people-carousel {
        --profile-rail-people-gap: var(--space-2);
        width: 100%;
        max-width: none;
        margin-inline: 0;
        padding-inline: 0;
        box-sizing: border-box;
        min-width: 0;
    }

    .profile-show-rail-fallback .profile-rail-people-carousel-track {
        gap: var(--profile-rail-people-gap);
        padding-inline: var(--profile-rail-people-bleed);
        scroll-padding-inline: var(--profile-rail-people-bleed);
    }

    .profile-show-rail-fallback .profile-rail-person-tile {
        flex: 0 0 calc((100% - 2 * var(--profile-rail-people-gap)) / 3.35);
        width: auto;
        min-width: 0;
        max-width: none;
    }

    /*
     * Плитки разделов (SectionNavTiles): если 1–3 — без peek-scroll,
     * равномерно на ширину контентной колонки (не full-bleed).
     */
    .profile-show-rail-fallback
        .profile-show-rail-people-bleed:has(
            .profile-rail-people-carousel-track
                > .profile-rail-person-tile--section:first-child:nth-last-child(-n + 3)
        ) {
        width: 100%;
        max-width: 100%;
        margin-left: 0;
    }

    .profile-show-rail-fallback
        .profile-show-rail-people-bleed:has(
            .profile-rail-people-carousel-track
                > .profile-rail-person-tile--section:first-child:nth-last-child(-n + 3)
        )
        .profile-rail-people-carousel-track {
        padding-inline: 0;
        overflow-x: visible;
        scroll-snap-type: none;
    }

    .profile-show-rail-fallback
        .profile-show-rail-people-bleed:has(
            .profile-rail-people-carousel-track
                > .profile-rail-person-tile--section:first-child:nth-last-child(-n + 3)
        )
        .profile-rail-person-tile--section {
        flex: 1 1 0;
        min-width: 0;
        width: auto;
        max-width: none;
    }

    .profile-show-rail-fallback
        .profile-show-rail-people-bleed:has(
            .profile-rail-people-carousel-track
                > .profile-rail-person-tile--section:first-child:nth-last-child(-n + 3)
        )
        .carousel-nav {
        display: none;
    }

    .profile-show-rail-fallback .profile-show-sidebar-stack > .profile-rail-benefits {
        --profile-rail-benefits-bleed: var(--gc-app-main-inset-x, var(--layout-content-inset-x));
        width: 100vw;
        max-width: 100vw;
        margin-left: calc(50% - 50vw);
        padding-inline: var(--profile-rail-benefits-bleed);
        box-sizing: border-box;
    }

    /* Оружие на профиле — тот же full-bleed, что люди */
    .profile-show-main .events-carousel-wrapper.profile-weapons-carousel {
        --gc-carousel-bleed-inset: var(--gc-app-main-inset-x, var(--layout-content-inset-x));
        width: 100vw;
        max-width: 100vw;
        margin-left: calc(50% - 50vw);
        margin-right: 0;
        padding-inline: 0;
        box-sizing: border-box;
    }

    .profile-show-main .events-carousel-wrapper.profile-weapons-carousel [data-gc-carousel-track],
    .profile-show-main .events-carousel-wrapper.profile-weapons-carousel .profile-weapons-carousel-track {
        padding-inline: var(--gc-carousel-bleed-inset);
        scroll-padding-inline: var(--gc-carousel-bleed-inset);
    }
}

@media (min-width: 992px) and (max-width: 1279.98px) {
    body:has(.gc-app-rail) .profile-show-rail-fallback .profile-show-rail-people-bleed,
    body:has(.gc-app-rail) .profile-show-rail-fallback .profile-show-sidebar-stack > .profile-rail-benefits,
    body:has(.gc-app-rail) .profile-show-main .events-carousel-wrapper.profile-weapons-carousel {
        width: calc(100vw - var(--layout-app-rail-chrome-width));
        max-width: calc(100vw - var(--layout-app-rail-chrome-width));
        margin-left: calc(50% - 50vw + (var(--layout-app-rail-chrome-width) / 2));
    }

    /*
     * Планшет: chrome rail скрыт, в main тот же стек, что ≥1280
     * (списки товарищей, не мобильная карусель).
     */
    .profile-show-rail-fallback--tablet .gc-from-layout-rail {
        display: block !important;
    }

    .profile-show-rail-fallback--tablet .gc-from-layout-rail-flex {
        display: flex !important;
    }

    .profile-show-rail-fallback--tablet .gc-until-layout-rail,
    .profile-show-rail-fallback--tablet .gc-until-layout-rail-flex {
        display: none !important;
    }

    .profile-show-rail-fallback--tablet .profile-show-rail-people-bleed,
    .profile-show-rail-fallback--tablet .profile-show-sidebar-stack > .profile-rail-benefits {
        width: 100%;
        max-width: 100%;
        margin-left: 0;
        padding-inline: 0;
    }
}

@media (max-width: 767.98px) {
    .profile-rail-people-carousel .carousel-nav {
        display: none;
    }
}

/* CTA «Все …»: catalog surface glow (CARD_GLOW.md § Catalog), контент по центру */
.profile-rail-person-tile--action {
    justify-content: center;
    --gc-card-glow-transition-duration: 85ms;
    --gc-card-glow-transition-ease: var(--ease-in);
    --gc-card-glow-transition:
        border-color var(--gc-card-glow-transition-duration) var(--gc-card-glow-transition-ease),
        background-color var(--gc-card-glow-transition-duration) var(--gc-card-glow-transition-ease),
        box-shadow var(--gc-card-glow-transition-duration) var(--gc-card-glow-transition-ease);
    background: var(--surface-secondary);
    border: 1px solid var(--gc-card-glow-rest-border);
    box-shadow: var(--gc-card-glow-rest-shadow);
    transition: var(--gc-card-glow-transition);
}

@media (min-width: 1280px) and (hover: hover) and (pointer: fine) {

.profile-rail-person-tile--action:is(:hover, :focus-visible) {
    background: var(--gc-card-glow-hover-bg);
    border-color: var(--gc-card-glow-hover-border);
    box-shadow: var(--gc-card-glow-hover-shadow);
}
}

.profile-rail-person-tile--action:is( :focus-visible) {
    background: var(--gc-card-glow-hover-bg);
    border-color: var(--gc-card-glow-hover-border);
    box-shadow: var(--gc-card-glow-hover-shadow);
}

.profile-rail-person-tile--action .profile-rail-person-tile__glyph {
    width: var(--gc-list-media-size-lg);
    height: var(--gc-list-media-size-lg);
    font-size: var(--font-size-20);
    color: var(--text-secondary);
}

.profile-rail-person-tile--action .profile-rail-person-tile__glyph.gc-list-media-round {
    border-radius: 50%;
}

@media (min-width: 1280px) and (hover: hover) and (pointer: fine) {

.profile-rail-person-tile--action:is(:hover, :focus-visible) .profile-rail-person-tile__glyph {
    color: var(--text-primary);
}
}

.profile-rail-person-tile--action:is( :focus-visible) .profile-rail-person-tile__glyph {
    color: var(--text-primary);
}

/* Модуль «Последний результат»: статы под строкой, до мозаики настрела */
.events-index-rail-last-result__stats {
    padding-block: var(--space-1) var(--space-3);
}

/*
 * Inset стека = --profile-rail-widget-inset-x (zone + space/2 = 16px),
 * как у остальных context rail. Не space/6: секции не добавляют второе поле.
 */
.gc-context-rail .profile-show-sidebar-stack {
    padding: var(--profile-rail-widget-stack-gap) var(--profile-rail-widget-inset-x);
    box-sizing: border-box;
}

.gc-context-rail .profile-show-sidebar-stack > .gc-stat-list,
.gc-context-rail .profile-show-sidebar-stack__lead > .gc-stat-list,
.gc-context-rail .profile-show-sidebar-stack > .profile-rail-benefits,
.gc-context-rail .profile-show-sidebar-stack > .profile-widget-nastr,
.gc-context-rail .profile-show-sidebar-stack__lead > .profile-widget-nastr {
    padding: 0;
}

.gc-context-rail .profile-nastr-strip--rail {
    border-radius: var(--radius-16);
    border: 1px solid var(--border-subtle);
}

.gc-context-rail .profile-nastr-strip--rail .profile-hit-zone-cell {
    padding: var(--space-3) var(--space-4);
}

.gc-context-rail .profile-nastr-strip--rail > :first-child {
    border-top-left-radius: calc(var(--radius-16) - 1px);
    border-top-right-radius: calc(var(--radius-16) - 1px);
}

.gc-context-rail .profile-nastr-strip--rail > :nth-last-child(2) {
    border-bottom-left-radius: calc(var(--radius-16) - 1px);
}

.gc-context-rail .profile-nastr-strip--rail > :last-child {
    border-bottom-right-radius: calc(var(--radius-16) - 1px);
}

/*
 * Товарищи ↔ сообщества: section ≥ 2× item (stack-gap 16 vs space/2).
 * Раньше оба space/2 — группы сливались.
 */
.gc-context-rail .profile-rail-people-list.catalog-nav {
    --profile-rail-people-section-gap: var(--profile-rail-widget-stack-gap);
    --profile-rail-people-item-gap: var(--space-2);
    margin-inline: 0;
    padding-inline: 0;
    width: 100%;
}

.profile-show-rail-fallback .profile-show-sidebar-stack {
    padding: 0;
}

/*
 * Hero → зоны актуальное / архив.
 * Ритм здесь (не только в profile-widgets): иначе этот селектор
 * перебивает media из profile-widgets и схлопывает mobile в space/8.
 */
.split-right.gc-page-grid__main.catalog-main.events-index-main.profile-show-main,
.catalog-main.events-index-main.profile-show-main {
    gap: var(--space-8);
}

@media (max-width: 1279.98px) {
    .split-right.gc-page-grid__main.catalog-main.events-index-main.profile-show-main,
    .catalog-main.events-index-main.profile-show-main {
        gap: var(--space-12);
    }
}

@media (max-width: 991.98px) {
    .split-right.gc-page-grid__main.catalog-main.events-index-main.profile-show-main,
    .catalog-main.events-index-main.profile-show-main {
        gap: var(--space-6);
    }
}

/*
 * <1280: hero + rail-fallback в одном кластере.
 * Био → карточки навигации — space/3 на desktop-rail; на адаптиве шире (отдельный этаж в main).
 * ≥1280: fallback display:none — в кластере только intro.
 */
.profile-show-above-fold {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    min-width: 0;
    width: 100%;
}

@media (max-width: 1279.98px) {
    /* Био/hero и блок статистики — отдельные этажи; шире, чем bio→nav внутри hero */
    .profile-show-above-fold {
        gap: var(--space-6);
    }

    .profile-show-rail-fallback .profile-show-sidebar-stack {
        gap: var(--profile-rail-widget-stack-gap);
    }

    .profile-show-rail-fallback .profile-show-sidebar-stack__lead {
        gap: var(--profile-rail-widget-stack-gap);
    }

    .profile-show-rail-fallback .profile-rail-people-slider {
        gap: var(--profile-rail-widget-stack-gap);
    }

    .profile-show-main .gc-profile-hero-body {
        gap: var(--space-4);
    }

    .profile-show-main .gc-profile-hero-body__about {
        gap: var(--space-2);
    }

    /*
     * Rail fallback в main: карточки с border-subtle (паритет weapon-show-rail-fallback).
     * Мозаика настрела, stat-list, плитки разделов, списки товарищей/сообществ (планшет).
     */
    .profile-show-rail-fallback .profile-nastr-strip--rail {
        border: 1px solid var(--border-subtle);
        border-radius: var(--radius-16);
        overflow: hidden;
    }

    .profile-show-rail-fallback .profile-show-sidebar-stack__lead > .gc-stat-list {
        background: var(--surface-secondary);
        border: 1px solid var(--border-subtle);
        border-radius: var(--radius-16);
    }

    .profile-show-rail-fallback .profile-rail-people-list.catalog-nav {
        margin-inline: 0;
        width: 100%;
        border: 1px solid var(--border-subtle);
        box-sizing: border-box;
    }

    .profile-show-rail-fallback .profile-rail-person-tile {
        border: 1px solid var(--border-subtle);
    }
}

@media (max-width: 991.98px) {
    .profile-show-above-fold {
        gap: var(--space-3);
    }

    /* Межгруппа identity→about остаётся space/4; about внутренний — space/2 */
    .profile-show-main .gc-profile-hero-body {
        gap: var(--space-4);
    }

    .profile-show-main .gc-profile-hero-body__about {
        gap: var(--space-2);
    }
}

/*
 * Ритм как у .gc-tabs (tabs.css): фон var(--surface-primary), инсет 3xs, внутренний радиус у пунктов.
 * --catalog-nav-inset = --gc-tabs-inset; divider/form/addon — bleed через отрицательный margin-inline.
 * --catalog-nav-stack-gap — шаг между пунктами и секциями (прямые дети .catalog-nav и .catalog-nav-group).
 */
.catalog-nav {
    --catalog-nav-inset: var(--space-2);
    --catalog-nav-stack-gap: var(--space-1);
    --gc-tabs-r-outer: var(--radius-16);
    --gc-tabs-r-inner: max(0px, calc(var(--gc-tabs-r-outer) - var(--catalog-nav-inset)));
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding: var(--catalog-nav-inset);
    gap: var(--catalog-nav-stack-gap);
    margin: 0;
    background-color: var(--surface-secondary);
    border: none;
    border-radius: var(--gc-tabs-r-outer);
    overflow: hidden;
}

.catalog-nav-item {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding-block: var(--space-2);
    padding-inline: var(--space-2);
    color: var(--text-primary);
    text-decoration: none;
    border-radius: var(--radius-12);
    border: 1px solid transparent;
    background: transparent;
    box-shadow: none;
    font-size: var(--font-size-14);
    font-weight: 400;
    font-family: inherit;
    line-height: inherit;
    transition: background var(--transition-fast) var(--ease-in-out),
        color var(--transition-fast) var(--ease-in-out),
        border-color var(--transition-fast) var(--ease-in-out),
        box-shadow var(--transition-fast) var(--ease-in-out);
    cursor: pointer;
}

.catalog-nav-item:hover:not(.active) {
    background: var(--gc-interactive-hover-bg);
    color: var(--text-primary);
    border-color: transparent;
}

@media (max-width: 991.98px), (hover: none), (pointer: coarse) {
    .catalog-nav-item:hover:not(.active):not(:active) {
        background: transparent;
        color: inherit;
    }

    .catalog-nav-item:active:not(.active) {
        background: var(--gc-interactive-hover-bg);
        color: var(--text-primary);
    }

    html.gc-touch-scrolling .catalog-nav-item:active:not(.active) {
        background: transparent;
        color: inherit;
    }
}

/* Selected nav — Surface/Subtle (COLOR_SURFACES), не Elevated/control */
.catalog-nav-item.active {
    background: var(--surface-subtle);
    color: var(--text-primary);
    border: 1px solid transparent;
    box-shadow: none;
    font-weight: 500;
}

/* Без отдельного hover у выбранного пункта */
.catalog-nav-item.active:hover {
    background: var(--surface-subtle);
    color: var(--text-primary);
    border-color: transparent;
    box-shadow: none;
}

/* Кнопка как пункт навигации (фильтры и т.п.) */
button.catalog-nav-item {
    align-self: stretch;
    width: auto;
    max-width: 100%;
    text-align: left;
    background: transparent;
    font-family: inherit;
}

/* Иконка Phosphor: колонка + кегль — только токены (источник правды здесь, не sidebar-nav.css) */
.catalog-nav-item i {
    flex-shrink: 0;
    width: 1.25rem;
    min-width: 1.25rem;
    text-align: center;
    font-size: var(--font-size-15);
    line-height: 1;
}

/* Подпись пункта; бейджи/счётчики/аватары/meta — не растягиваем как основной span */
.catalog-nav-item > span:not(.badge):not(.nav-badge):not(.gc-badge-car-number):not(.gc-status-indicator):not(.gc-badge):not([class*="gc-badge-"]):not(.gc-list-meta):not(.catalog-nav-avatar):not(.gc-list-avatar-fallback):not([class*="gc-avatar-"]):not(.gc-skeleton):not([class*="gc-skeleton-"]) {
    flex: 1;
    min-width: 0;
}

.catalog-nav-item .badge {
    flex-shrink: 0;
    flex-grow: 0;
}

/* Одна колонка; вертикальный шаг как у прямых детей .catalog-nav */
.catalog-nav-group {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--catalog-nav-stack-gap, var(--space-1));
    min-width: 0;
}

/* Стек пунктов catalog-nav вне rail (панель, модалка): тот же шаг, без фона .catalog-nav */
.catalog-nav-stack,
.gc-panel-content.catalog-nav-stack {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: 0;
}

/* Как .gc-panel-content--list .gc-list-group-header — padding-sm внутри инсета .catalog-nav (--catalog-nav-inset) */
.catalog-nav-group-title {
    font-size: var(--font-size-13);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-secondary);
    padding: var(--space-2) var(--space-2) var(--space-1) var(--space-2);
}

/* Заголовок секции в основной колонке (напр. «Прошедшие сезоны»): без боковых инсетов; вертикальный ритм даёт gap у .catalog-main */
.catalog-main > .catalog-nav-group-title {
    padding-inline: 0;
    padding-block: 0;
    margin-block: 0;
    margin-inline: 0;
    text-align: center;
    font-size: var(--font-size-12);
    letter-spacing: 0.05em;
}

.catalog-nav-divider {
    height: 1px;
    background: var(--border-subtle);
    margin-inline: calc(-1 * var(--catalog-nav-inset));
    margin-block: 0;
    flex-shrink: 0;
}

/* Под разделителем: краткая сводка + действия (каталог эпиков и т.п.) */
.catalog-nav-addon {
    margin-inline: calc(-1 * var(--catalog-nav-inset));
    padding: 0 var(--space-4);
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.catalog-nav-item-disabled {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
}

.catalog-nav-item-disabled:hover {
    background: transparent;
    color: var(--text-primary);
    border-color: transparent;
    box-shadow: none;
}

/* Счётчик-pill / meta в пункте каталога: только выравнивание (размеры — badges.css / lists.css) */
.catalog-nav-item .gc-badge-counter,
.catalog-nav-item > .gc-list-meta {
    margin-left: auto;
    flex-shrink: 0;
}

/* Счетчики в навигации — muted = secondary tone */
.catalog-nav-item .gc-badge:not(.gc-badge-counter) {
    margin-left: auto;
    font-size: var(--font-size-13);
    flex: none;
    width: fit-content;
    background: color-mix(in srgb, var(--fill-primary) 5%, var(--surface-secondary));
    color: var(--text-secondary);
    border-color: color-mix(in srgb, var(--border-subtle) 85%, transparent);
}

/* Акцент без счётчика-pill (редко) */
.catalog-nav-item .gc-badge.gc-badge-primary:not(.gc-badge-counter) {
    background: var(--accent-link);
    color: var(--text-on-solid);
    border-color: var(--accent-link);
}

/* Контент с аватаркой и текстом в catalog-nav-item (для сообществ) */
.catalog-nav-avatar {
    position: relative;
    width: var(--gc-list-media-size);
    height: var(--gc-list-media-size);
    border-radius: 50%;
    object-fit: cover;
    overflow: hidden;
    flex: none;
    flex-shrink: 0;
}

.catalog-nav-avatar-placeholder {
    width: var(--gc-list-media-size);
    height: var(--gc-list-media-size);
    border-radius: 50%;
    background: var(--surface-control);
    border: 1px solid var(--border-subtle);
    color: var(--text-secondary);
    font-size: var(--font-size-14);
    font-weight: 600;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-sizing: border-box;
}

.catalog-nav-avatar-placeholder i {
    font-size: var(--font-size-18);
    color: var(--text-secondary);
}

.catalog-nav-content {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-product-2);
}

.catalog-nav-title {
    font-size: var(--font-size-14);
    font-weight: 400;
    color: var(--text-primary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.catalog-nav-item.active .catalog-nav-title {
    font-weight: 500;
}

.catalog-nav-subtitle {
    font-size: var(--font-size-13);
    color: var(--text-secondary);
}

/* =========================================
   Catalog Filters (в сайдбаре)
   ========================================= */

/* Форма на всю ширину карточки навигации; поля — как раньше от края chrome */
.catalog-nav > form {
    margin-inline: calc(-1 * var(--catalog-nav-inset));
    padding: 0 var(--space-4);
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

/* Группа фильтров */
.catalog-filter-group {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.catalog-filter-title {
    font-size: var(--font-size-14);
    font-weight: 500;
    color: var(--text-secondary);
}

/* Упрощенные чекбоксы для фильтров */
.catalog-filter-group .gc-checkbox-container {
    border: 1px solid var(--border-subtle);
    background: transparent;
}

.catalog-filter-group .gc-checkbox-wrapper:hover .gc-checkbox-container {
    border-color: var(--accent-link);
    box-shadow: none;
}

.catalog-filter-actions {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.catalog-filter-actions .gc-btn {
    width: 100%;
    justify-content: center;
}

/* =========================================
   Exercise Page - Специфичные стили
   (Layout используется из layout-utilities.css)
   ========================================= */

/* Кнопка "Назад" над заголовком */
.exercise-back-link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    font-size: var(--font-size-14);
    color: var(--text-secondary);
    text-decoration: none;
    font-weight: 500;
    transition: color var(--transition-fast);
}

.exercise-back-link:hover {
    color: var(--text-primary);
}

.exercise-back-link .ph {
    font-size: var(--font-size-base);
}

/* Расширенный sidebar для страницы упражнения */
@media (min-width: 1280px) {
    .catalog-sidebar-wide {
        width: var(--layout-catalog-sidebar-wide-width);
        /* Убираем лишние стили родителя для этой страницы */
        background: transparent !important;
        padding: 0 !important;
    }
}

/* Блок-кнопка добавления брифинга в sidebar */
.gc-card-action {
    display: block;
    text-decoration: none;
    transition: all var(--transition-fast);
}

@media (min-width: 1280px) and (hover: hover) and (pointer: fine) {

.gc-card-action:hover {
    background: color-mix(in srgb, var(--fill-primary) 6%, transparent);
    border-color: var(--accent-link);
}
}

.gc-card-action-disabled {
    cursor: default;
    pointer-events: none;
    background: var(--surface-control);
    border-color: var(--border-subtle);
    box-shadow: none;
    opacity: 0.9;
}

@media (min-width: 1280px) and (hover: hover) and (pointer: fine) {

.gc-card-action-disabled:hover {
    background: var(--surface-control);
    border-color: var(--border-subtle);
}
}

.gc-card-action-disabled .gc-card-body {
    background: var(--surface-control);
}

.gc-card-action-disabled .ph {
    color: var(--text-tertiary) !important;
    opacity: 0.8;
}

.gc-card-action-disabled .gc-card-action-title {
    color: var(--text-secondary) !important;
}

.gc-card-action .ph {
    display: block;
    font-size: 32px !important;
    margin-bottom: var(--space-2) !important;
}

.gc-card-action-title {
    font-size: var(--font-size-base);
    font-weight: 500;
    color: var(--text-primary);
    margin-bottom: var(--space-1) !important;
}

.gc-card-action-desc {
    font-size: var(--font-size-14);
    color: var(--text-secondary);
}

/* Список участников - убираем фон, используем только внутренние секции */
.exercise-participants {
    min-width: 0;
    max-width: 100%;
}

/* Секции упражнения (скводы, участники без сквода) */
.exercise-section {
    background: var(--surface-panel);
    border-radius: var(--radius-16);
    padding: var(--space-4);
    margin-bottom: var(--space-4);
}

.exercise-section-title {
    font-size: var(--font-size-base);
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: var(--space-4);
    display: flex;
    align-items: center;
    gap: var(--space-1);
}

/* Адаптивность для мобильных */
@media (max-width: 576px) {
    .exercise-section {
        padding: var(--space-4);
        margin-bottom: var(--space-2);
        border-radius: var(--radius-16);
    }
    
    .exercise-section-title {
        font-size: var(--font-size-base);
        margin-bottom: var(--space-4);
        flex-wrap: wrap;
    }
}

/* =========================================
   Dropdown - Опасные действия (общие стили)
   ========================================= */
.gc-dropdown-item-danger {
    color: var(--danger) !important;
}

.gc-dropdown-item-danger:hover {
    background: var(--danger) !important;
    color: var(--text-on-solid) !important;
}
