/* ========================================
   UI Kit - Lists Component
   ======================================== */

/* =================================
   Группы списков (.gc-list-group)
   ================================= */


/* Заголовок группы */
.gc-list-group-header {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    font-size: var(--gc-list-meta-font-size);
    line-height: var(--gc-list-meta-line-height);
    font-weight: 600;
    color: var(--text-primary);
    margin: 0;
}

.gc-list-group-header .gc-status-indicator {
    display: block;
    flex-shrink: 0;
    align-self: center;
    line-height: 0;
}

/* Если в заголовке есть кнопка — пушим её вправо */
.gc-list-group-header:has(> .gc-btn) {
    justify-content: space-between;
}

/* framed — семантический алиас, визуально = обычная группа */
.gc-list-group,
.gc-list-group-framed {
    border: 1px solid var(--border-subtle);
    /* Единый радиус оболочки и «внутренней» дуги у крайних строк (−1px под 1px border) */
    --gc-list-group-radius: var(--radius-12);
    border-radius: var(--gc-list-group-radius);
    overflow: hidden;
    background: var(--surface-panel);
}

/* Borderless-версия оставлена как alias для точечных случаев,
   но основной сценарий без общей рамки теперь живёт в flush. */
.gc-list-group-borderless {
    border: none;
    border-radius: 0;
    overflow: visible;
    background: transparent;
}

/* Единая поверхность без внутренних divider'ов между строками */
.gc-list-group.gc-list-group-unified .gc-list-item,
.gc-list-group.gc-list-group-unified .gc-list-item-add,
.gc-list-group.gc-list-group-unified .gc-list-item-action {
    --gc-list-divider-color: transparent;
}

/**
 * Flush-версия: без внешней рамки и скруглений.
 * Используется внутри gc-card — разделители только между строками.
 * Отрицательные боковые отступы компенсируют padding gc-card-body,
 * чтобы строки тянулись от края до края карточки.
 */
.gc-list-group-flush {
    --gc-list-item-bg: transparent;
    --gc-list-item-hover-bg: transparent;
    border: none;
    border-radius: 0;
    background: transparent;
    overflow: visible;
    margin-left: 0;
    margin-right: 0;
}

/* Компенсация padding родителя (gc-panel = mdl, gc-card-body = md) — иначе список «вылезает» за внутренние поля */
.gc-panel .gc-list-group-flush,
.gc-panel-content .gc-list-group-flush,
.gc-card .gc-list-group-flush,
.gc-card-body .gc-list-group-flush,
.gc-panel .gc-list-shell-flush,
.gc-panel-content .gc-list-shell-flush,
.gc-card .gc-list-shell-flush,
.gc-card-body .gc-list-shell-flush {
    margin-left: calc(-1 * var(--gc-content-bleed, var(--space-4)));
    margin-right: calc(-1 * var(--gc-content-bleed, var(--space-4)));
}

/* Без родителя с горизонтальным padding (gc-panel-content и т.д.) отрицательный margin некуда компенсировать */
.gc-panel.gc-panel--flush > .gc-list-group.gc-list-group-flush,
.gc-panel.gc-panel--flush > .gc-list-shell-flush {
    margin-left: 0;
    margin-right: 0;
}


.gc-list-group-flush .gc-list-item {
    --gc-list-item-padding-x: var(--gc-list-padding-x, var(--space-4));
    --gc-list-item-padding-y: var(--gc-list-padding-y, var(--space-3));
    border-radius: 0;
}

.gc-list-group-flush .gc-list-item:first-child {
    border-top: none;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}

.gc-list-group-flush .gc-list-item:last-child {
    border-bottom: none;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

/* Скругление углов для обычной группы и framed-alias (концентрично с --gc-list-group-radius оболочки) */
:is(.gc-list-group, .gc-list-group-framed):not(.gc-list-group-flush):not(.gc-list-group-borderless) .gc-list-item:first-child {
    border-top-left-radius: calc(var(--gc-list-group-radius) - 1px);
    border-top-right-radius: calc(var(--gc-list-group-radius) - 1px);
}

:is(.gc-list-group, .gc-list-group-framed):not(.gc-list-group-flush):not(.gc-list-group-borderless) .gc-list-item:last-child {
    border-bottom-left-radius: calc(var(--gc-list-group-radius) - 1px);
    border-bottom-right-radius: calc(var(--gc-list-group-radius) - 1px);
}

/* =================================
   List Shell (родитель для list-group + extras)
   =================================
   Новый API:
   - .gc-list-shell (базовый shell)
   - .gc-list-shell-default (surface + скругления; без рамки)
   - .gc-list-shell-flush (без chrome)
   - .gc-list-shell-interactive (hover всего shell)
   - .gc-list-shell-body (доп. контент: оружие/chips)
   - .gc-list-shell-extra-list (доп. список: пассажиры и т.д.)

   Ниже оставлены алиасы старых классов .gc-list-group-card* для обратной
   совместимости. Новое использование — только через .gc-list-shell*.
*/
.gc-list-shell,
.gc-list-shell-default,
.gc-list-group-card {
    border: none;
    --gc-list-group-radius: var(--radius-12);
    border-radius: var(--gc-list-group-radius);
    overflow: hidden;
    background: var(--surface-panel);
    transition: background-color var(--transition-fast);
}

.gc-list-shell-flush {
    --gc-list-item-bg: transparent;
    --gc-list-item-hover-bg: transparent;
    border: none;
    border-radius: 0;
    background: transparent;
    overflow: visible;
}

.gc-list-shell-flush > .gc-list-item {
    --gc-list-item-padding-x: var(--gc-list-padding-x, var(--space-4));
    --gc-list-item-padding-y: var(--gc-list-padding-y, var(--space-3));
    border-radius: 0;
}

:is(.gc-list-shell, .gc-list-group-card) > .gc-list-item {
    border: none;
    border-radius: 0;
    background: transparent;
    --gc-list-item-gap: var(--space-4);
    --gc-list-item-padding-y: var(--gc-list-padding-y, var(--space-4));
    --gc-list-item-padding-x: var(--gc-list-padding-x, var(--space-4));
    --gc-list-divider-color: transparent;
}

:is(.gc-list-shell, .gc-list-group-card) > .gc-list-item:last-child {
    border-bottom: none;
}

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

:is(.gc-list-shell, .gc-list-group-card):not(.gc-list-shell-flush) > .gc-list-item:hover {
    background: transparent;
}
}

/* Shell с древовидными детьми: hover отключён (padding-y=0 — только в контекстных секциях, см. event-layout.css) */
:is(.gc-list-shell, .gc-list-shell-flush):has(.gc-list-tree) > .gc-list-item {
    --gc-list-item-hover-bg: transparent;
}

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

:is(.gc-list-shell, .gc-list-shell-flush):has(.gc-list-tree) > .gc-list-item:hover {
    background: transparent;
}
}

.gc-list-shell-interactive,
.gc-list-group-card-interactive {
    --gc-list-shell-hover-bg: var(--gc-interactive-hover-bg);
}

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

.gc-list-shell-interactive:hover,

.gc-list-group-card-interactive:hover {
    background: var(--gc-list-shell-hover-bg);
}
}

/* Если блок составной (shell + вложенные интерактивные строки/extra-list),
   hover должен быть общим на контейнере, без второго фонового слоя у дочерних row. */
:is(.gc-list-shell-interactive, .gc-list-group-card-interactive):has(:is(.gc-list-item.interactive, .gc-list-item-interactive, .gc-list-item.profile-trigger)) {
    --gc-list-item-hover-bg: transparent;
}

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

:is(.gc-list-shell-interactive, .gc-list-group-card-interactive):has(:is(.gc-list-item.interactive, .gc-list-item-interactive, .gc-list-item.profile-trigger))
    :is(.gc-list-item.interactive, .gc-list-item-interactive, .gc-list-item.profile-trigger):hover {
    background-color: transparent;
}
}

:is(.gc-list-shell, .gc-list-group-card) > .gc-list-item.compact {
    --gc-list-item-min-height: 48px;
    --gc-list-item-padding-y: var(--space-2);
    --gc-list-item-padding-x: var(--space-2);
}

.gc-list-shell-weapon .gc-list-shell-body,
.gc-list-group-card-weapon .gc-list-group-card-body {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    padding: 0 var(--space-2) var(--space-2);
    background: transparent;
}

.gc-list-shell-flush.gc-list-shell-weapon .gc-list-shell-body {
    padding: 0 var(--space-4) var(--space-4);
}

/* Weapon shell: верхняя строка участника и chips используют один media rhythm */
.gc-list-shell-weapon > .gc-list-item .gc-list-item-trigger,
.gc-list-group-card-weapon > .gc-list-item .gc-list-item-trigger,
.gc-list-shell-weapon .gc-list-chip,
.gc-list-group-card-weapon .gc-list-chip {
    gap: var(--space-2);
}

:is(.gc-list-shell-weapon, .gc-list-group-card-weapon) .gc-list-chip > :is(.gc-list-media-square, .gc-list-media-icon) {
    --gc-list-media-size: var(--gc-list-media-size-sm);
}

.gc-list-chip {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    min-width: 0;
    max-width: 100%;
    min-height: var(--gc-list-media-size);
    padding: var(--space-1) var(--space-2) var(--space-1) var(--space-1);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-12);
    background: var(--surface-control);
    color: var(--text-primary);
}

.gc-list-chip .gc-list-media-square,
.gc-list-chip .gc-list-avatar-square {
    width: 32px;
    height: 32px;
}

.gc-list-shell .gc-list-media-square.gc-list-avatar-fallback,
.gc-list-shell .gc-list-avatar-square.gc-list-avatar-fallback,
.gc-list-group-card .gc-list-media-square.gc-list-avatar-fallback,
.gc-list-group-card .gc-list-avatar-square.gc-list-avatar-fallback {
    font-size: var(--font-size-13);
}

.gc-list-shell .gc-list-media-square.gc-list-avatar-fallback:not(.gc-list-media-round),
.gc-list-shell .gc-list-avatar-square.gc-list-avatar-fallback:not(.gc-list-media-round),
.gc-list-group-card .gc-list-media-square.gc-list-avatar-fallback:not(.gc-list-media-round),
.gc-list-group-card .gc-list-avatar-square.gc-list-avatar-fallback:not(.gc-list-media-round) {
    border-radius: var(--radius-8l);
}

:is(.gc-list-shell-extra-list, .gc-list-group-card-list) {
    display: flex;
    flex-direction: column;
    width: 100%;
    background: transparent;
}

:is(.gc-list-shell-extra-list, .gc-list-group-card-list) > .gc-list-item {
    border: none;
    background: transparent;
    --gc-list-item-min-height: 40px;
    --gc-list-item-gap: var(--space-2);
    --gc-list-item-padding-y: var(--space-2);
    --gc-list-item-padding-x: var(--space-2);
}

.gc-list-shell-flush :is(.gc-list-shell-extra-list, .gc-list-group-card-list) > .gc-list-item {
    --gc-list-item-padding-x: var(--space-4);
}

.gc-list-section-shell--flush .gc-list-shell-flush :is(.gc-list-shell-extra-list, .gc-list-group-card-list) > .gc-list-item {
    --gc-list-item-padding-x: var(--gc-list-open-row-padding);
}

.gc-list-section-shell--flush .event-participants-weapons-pane .gc-list-shell-weapon,
.gc-open-list-section--framed .gc-list-section-shell--flush .event-participants-weapons-pane .gc-list-shell-weapon {
    background: transparent;
    border-radius: 0;
}


/* Tree-режим для вложенных child-row.
   Линия живёт на контейнере, а сами строки получают branch-коннектор. */
.gc-list-tree {
    --gc-list-tree-indent: var(--space-6);
    /* Offset = padding-x строки; fallback — --gc-list-row-padding (8px), не spacing-md */
    --gc-list-tree-line-offset: var(--gc-list-padding-x, var(--gc-list-row-padding));
    --gc-list-tree-line-color: var(--border-subtle);
    --gc-list-tree-line-width: 1px;
    --gc-list-tree-branch-width: calc(var(--gc-list-tree-indent) - var(--space-2));
    --gc-list-tree-branch-height: var(--space-4);
    --gc-list-tree-branch-radius: var(--radius-8);
}

.gc-list-tree > :is(.gc-list-item-child, .gc-list-item.nested) {
    position: relative;
    padding-left: calc(var(--gc-list-item-padding-x) + var(--gc-list-tree-indent));
    background-image: linear-gradient(var(--gc-list-tree-line-color), var(--gc-list-tree-line-color));
    background-repeat: no-repeat;
    background-size: var(--gc-list-tree-line-width) 100%;
    background-position: var(--gc-list-tree-line-offset) 0;
}

.gc-list-tree > :is(.gc-list-item-child, .gc-list-item.nested):last-child {
    background-size: var(--gc-list-tree-line-width) calc(50% - var(--gc-list-tree-branch-height));
}

.gc-list-tree > :is(.gc-list-item-child, .gc-list-item.nested)::after {
    content: "";
    position: absolute;
    left: var(--gc-list-tree-line-offset);
    top: calc(50% - var(--gc-list-tree-branch-height));
    width: var(--gc-list-tree-branch-width);
    height: var(--gc-list-tree-branch-height);
    border-left: var(--gc-list-tree-line-width) solid var(--gc-list-tree-line-color);
    border-bottom: var(--gc-list-tree-line-width) solid var(--gc-list-tree-line-color);
    border-bottom-left-radius: var(--gc-list-tree-branch-radius);
    background: transparent;
    pointer-events: none;
    z-index: 1;
}

.gc-list-tree-branchless > :is(.gc-list-item-child, .gc-list-item.nested) {
    background-image: none;
}

.gc-list-tree-branchless > :is(.gc-list-item-child, .gc-list-item.nested)::after {
    display: none;
}

/* Hover composite block: линии дерева — без transition (vertical bg + ::after branch иначе «дёргаются» в два этапа). */
@media (min-width: 1280px) and (hover: hover) and (pointer: fine) {
:is(
    .gc-open-list-tree-block,
    .event-participant-card,
    .sidebar-loadout-transport-stack,
    .gc-list-shell-interactive,
    .gc-list-group-card-interactive
):is(:hover, :focus-within) .gc-list-tree {
    --gc-list-tree-line-color: var(--border-default);
}
}
:is(
    .gc-open-list-tree-block,
    .event-participant-card,
    .sidebar-loadout-transport-stack,
    .gc-list-shell-interactive,
    .gc-list-group-card-interactive
):is( :focus-within) .gc-list-tree {
    --gc-list-tree-line-color: var(--border-default);
}

/*
 * GcOpenListTreeBlock — composite shell (header + optional tree).
 * Hover только на .gc-open-list-tree-block; header — .gc-open-list-tree-block__header (не flat row).
 */
.gc-open-list-tree-block {
    --gc-open-list-tree-row-padding: var(--gc-list-row-padding);
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    min-width: 0;
    width: 100%;
    box-sizing: border-box;
    border-radius: var(--gc-list-row-radius, var(--radius-16));
    background: var(--gc-list-open-item-bg);
    transition: background var(--transition-fast);
}

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

.gc-open-list-tree-block:is(:hover, :focus-within) {
    background: var(--gc-list-open-item-hover-bg);
}
}

.gc-open-list-tree-block:is( :focus-within) {
    background: var(--gc-list-open-item-hover-bg);
}

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

.gc-open-list-tree-block:focus-within:not(:hover) {
    background: var(--gc-list-open-item-bg);
}
}

.gc-open-list-tree-block:focus-within {
    background: var(--gc-list-open-item-bg);
}

.gc-list-section-shell .gc-open-list-tree-block,
.event-show-zone--panel-roster .gc-open-list-tree-block {
    --gc-open-list-tree-row-padding: var(--gc-list-open-row-padding, var(--gc-list-row-padding));
}

.gc-open-list-tree-block__header {
    padding-inline: var(--gc-open-list-tree-row-padding);
    padding-top: var(--gc-open-list-tree-row-padding);
    padding-bottom: var(--gc-open-list-tree-row-padding);
    border-radius: 0;
    background: transparent;
}

.gc-open-list-tree-block__header:has(+ .gc-list-tree) {
    padding-bottom: 0;
}

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

.gc-open-list-tree-block__header:is(:hover, :focus-visible, :focus-within) {
    background: transparent;
}
}

.gc-open-list-tree-block__header:is( :focus-visible, :focus-within) {
    background: transparent;
}

.gc-open-list-tree-block > .gc-list-tree,
.gc-open-list-tree-block > .gc-open-list-tree-block__tree {
    --gc-list-tree-line-offset: var(--gc-open-list-tree-row-padding);
}

.gc-open-list-tree-block .gc-list-tree
    > :is(.gc-list-item-child, .gc-list-item.nested) {
    --gc-list-item-bg: transparent;
    --gc-list-item-hover-bg: transparent;
    --gc-list-item-padding-x: var(--gc-open-list-tree-row-padding);
    --gc-list-divider-color: transparent;
    border-top: none;
}

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

.gc-open-list-tree-block .gc-list-tree
    > :is(.gc-list-item-child, .gc-list-item.nested):hover {
    background-color: transparent;
}
}

/* Legacy stacks без __header (classic Blade) — см. миграцию на gc-open-list-tree-block + __header */
:is(.event-participant-card, .sidebar-loadout-transport-stack):not(.gc-open-list-tree-block):has(> .gc-list-tree) {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

:is(.event-participant-card, .sidebar-loadout-transport-stack):not(.gc-open-list-tree-block):has(> .gc-list-tree)
    > :is(a.gc-interactive-row, .gc-interactive-row) {
    padding-inline: var(--gc-list-row-padding);
    padding-top: var(--gc-list-row-padding);
    padding-bottom: var(--gc-list-row-padding);
    border-radius: 0;
    background: transparent;
}

:is(.event-participant-card, .sidebar-loadout-transport-stack):not(.gc-open-list-tree-block):has(> .gc-list-tree)
    > :is(a.gc-interactive-row, .gc-interactive-row):has(+ .gc-list-tree) {
    padding-bottom: 0;
}

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

:is(.event-participant-card, .sidebar-loadout-transport-stack):not(.gc-open-list-tree-block):has(> .gc-list-tree)
    > :is(a.gc-interactive-row, .gc-interactive-row):is(:hover, :focus-visible) {
    background: transparent;
}
}

:is(.event-participant-card, .sidebar-loadout-transport-stack):not(.gc-open-list-tree-block):has(> .gc-list-tree)
    > :is(a.gc-interactive-row, .gc-interactive-row):is( :focus-visible) {
    background: transparent;
}

:is(.event-participant-card, .sidebar-loadout-transport-stack):not(.gc-open-list-tree-block) > .gc-list-tree {
    --gc-list-tree-line-offset: var(--gc-list-row-padding);
}

:is(.event-participant-card, .sidebar-loadout-transport-stack):not(.gc-open-list-tree-block) .gc-list-tree
    > :is(.gc-list-item-child, .gc-list-item.nested) {
    --gc-list-item-bg: transparent;
    --gc-list-item-hover-bg: transparent;
    --gc-list-divider-color: transparent;
    border-top: none;
}

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

:is(.event-participant-card, .sidebar-loadout-transport-stack):not(.gc-open-list-tree-block) .gc-list-tree
    > :is(.gc-list-item-child, .gc-list-item.nested):hover {
    background-color: transparent;
}
}

.gc-list-chip-interactive {
    cursor: pointer;
    transition: border-color var(--transition-fast);
}

.gc-list-chip-interactive:hover {
    border-color: var(--border-default);
}

.gc-list-chip-label {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: var(--font-size-14);
    font-weight: 500;
    color: var(--text-primary);
}

/* =================================
   Элементы списка (.gc-list-item)
   ================================= */

.gc-list-item {
    --gc-list-item-gap: var(--space-2);
    --gc-list-item-padding-y: var(--gc-list-padding-y, var(--gc-list-row-padding));
    --gc-list-item-padding-x: var(--gc-list-padding-x, var(--gc-list-row-padding));
    --gc-list-item-min-height: 48px;
    --gc-list-divider-color: transparent;
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--gc-list-item-gap);
    padding: var(--gc-list-item-padding-y) var(--gc-list-item-padding-x);
    background-color: var(--gc-list-item-bg, var(--surface-panel));
    border: none;
    min-height: var(--gc-list-item-min-height);
    transition: background-color var(--transition-fast);
    --gc-list-item-hover-bg: var(--gc-interactive-hover-bg);
}

:is(.gc-list-item-add, .gc-list-item-action) {
    --gc-list-divider-color: transparent;
    position: relative;
}

/*
 * Разделитель между строками внутри группы (раньше был ::before с inset — дублировало смысл
 * с border-top и путало инспектор). Линия на всю ширину строки; цвет — --gc-list-divider-color
 * (у .gc-list-group-unified / shell — transparent).
 *
 * Важно: правило действует для ЛЮБОГО соседства .gc-list-item в DOM — не вкладывайте строки
 * напрямую в gc-stack-sm / произвольный flex без родителя-группы. Для «простого стека» в панели
 * используйте gc-interactive-row (см. блок ниже и shootie.mdc «Списки»), либо gc-panel-content--list-cards
 * на родителе вместе с gc-panel-content--list (styles.css), если нужны карточные .gc-list-item.
 */
:is(.gc-list-item, .gc-list-item-add, .gc-list-item-action):not(:first-child) {
    border-top: 1px solid var(--gc-list-divider-color);
}

/* Выбранный радио/чекбокс имеет серый фон 
   UI Kit v1.1+: Применяется только к прямым дочерним элементам (не к вложенным дропдаунам) */
.gc-list-item:has(> .gc-radio-native:checked),
.gc-list-item:has(> .gc-checkbox-native:checked),
.gc-list-item:has(> .gc-radio-wrapper > .gc-radio-native:checked),
.gc-list-item:has(> .gc-checkbox-wrapper > .gc-checkbox-native:checked),
.gc-list-item:has(> label > .gc-radio-native:checked),
.gc-list-item:has(> label > .gc-checkbox-native:checked) {
    /* Выбранная строка — фон ячейки; при hover ниже тот же --gc-list-item-hover-bg, что у невыбранной */
    background-color: var(--surface-panel);
}

/* Радио/чекбокс в строке: один hover фона для выбранного и невыбранного (в т.ч. без .interactive — .gc-radio-wrapper на label) */
.gc-list-item.gc-radio-wrapper:hover,
.gc-list-item.gc-checkbox-wrapper:hover,
.gc-list-item:has(> .gc-radio-native):hover:not(:has(> .gc-radio-native:disabled)),
.gc-list-item:has(> .gc-checkbox-native):hover:not(:has(> .gc-checkbox-native:disabled)),
.gc-list-item:has(> .gc-radio-wrapper > .gc-radio-native):hover:not(:has(> .gc-radio-wrapper > .gc-radio-native:disabled)),
.gc-list-item:has(> .gc-checkbox-wrapper > .gc-checkbox-native):hover:not(:has(> .gc-checkbox-wrapper > .gc-checkbox-native:disabled)) {
    background-color: var(--gc-list-item-hover-bg);
}

/* Disabled радио/чекбокс - текст становится серым */
/* ТОЛЬКО если input является ПРЯМЫМ дочерним элементом (не в дропдаунах!) */
.gc-list-item:has(> .gc-radio-native:disabled) .gc-list-title,
.gc-list-item:has(> .gc-checkbox-native:disabled) .gc-list-title,
.gc-list-item:has(> .gc-radio-wrapper > .gc-radio-native:disabled) .gc-list-title,
.gc-list-item:has(> .gc-checkbox-wrapper > .gc-checkbox-native:disabled) .gc-list-title,
.gc-list-item:has(> .gc-radio-native:disabled) .gc-list-meta,
.gc-list-item:has(> .gc-checkbox-native:disabled) .gc-list-meta,
.gc-list-item:has(> .gc-radio-wrapper > .gc-radio-native:disabled) .gc-list-meta,
.gc-list-item:has(> .gc-checkbox-wrapper > .gc-checkbox-native:disabled) .gc-list-meta {
    color: var(--text-secondary);
}

.gc-list-item:has(> .gc-radio-native:disabled) :is(.gc-badge, .gc-class-badge, .gc-badge-car-number),
.gc-list-item:has(> .gc-checkbox-native:disabled) :is(.gc-badge, .gc-class-badge, .gc-badge-car-number),
.gc-list-item:has(> .gc-radio-wrapper > .gc-radio-native:disabled) :is(.gc-badge, .gc-class-badge, .gc-badge-car-number),
.gc-list-item:has(> .gc-checkbox-wrapper > .gc-checkbox-native:disabled) :is(.gc-badge, .gc-class-badge, .gc-badge-car-number) {
    opacity: 0.6;
}

.gc-list-item:has(> .gc-radio-native:disabled),
.gc-list-item:has(> .gc-checkbox-native:disabled),
.gc-list-item:has(> .gc-radio-wrapper > .gc-radio-native:disabled),
.gc-list-item:has(> .gc-checkbox-wrapper > .gc-checkbox-native:disabled) {
    cursor: not-allowed;
    pointer-events: none !important;
}

.gc-list-item:has(> .gc-radio-native:disabled):hover,
.gc-list-item:has(> .gc-checkbox-native:disabled):hover,
.gc-list-item:has(> .gc-radio-wrapper > .gc-radio-native:disabled):hover,
.gc-list-item:has(> .gc-checkbox-wrapper > .gc-checkbox-native:disabled):hover {
    background: inherit;
}

/* Разрешаем клики по ссылкам внутри disabled элементов */
.gc-list-item:has(> .gc-radio-native:disabled) a,
.gc-list-item:has(> .gc-checkbox-native:disabled) a,
.gc-list-item:has(> .gc-radio-wrapper > .gc-radio-native:disabled) a,
.gc-list-item:has(> .gc-checkbox-wrapper > .gc-checkbox-native:disabled) a {
    pointer-events: auto !important;
}

/* Заглушка внутри gc-list-group */
.gc-list-group > .gc-empty-state {
    background-color: var(--surface-panel);
    border-top: none;
}

:is(.gc-list-group, .gc-list-group-framed) > :is(.gc-list-item, .gc-list-item-add, .gc-list-item-action) {
    --gc-list-item-bg: transparent;
}

/* =================================
   Модификаторы
   =================================
   Интерактивность строки:
   - .interactive — кликабельная строка (div/button-паттерн)
   - .gc-list-item-interactive — то же (BEM-вариант, предпочтительно в новом коде)
   - .profile-trigger — доменный алиас для открытия профиля (наследует поведение interactive)
   ================================= */

/* Интерактивные элементы (кликабельные) */
.gc-list-item.interactive,
.gc-list-item-interactive,
.gc-list-item.profile-trigger {
    cursor: pointer;
}

.gc-list-item.interactive:hover,
.gc-list-item-interactive:hover,
.gc-list-item.profile-trigger:hover {
    background-color: var(--gc-list-item-hover-bg);
}

/* Централизованные hover-режимы
   - по умолчанию list-item = row hover
   - при необходимости контекст может переключиться на row/shell hover
*/
.gc-list-hover-row {
    --gc-list-item-hover-bg: var(--gc-interactive-hover-bg);
    --gc-list-shell-hover-bg: transparent;
    --gc-list-action-hover-bg: transparent;
    --gc-list-action-hover-border: transparent;
    --gc-list-action-hover-color: inherit;
}

.gc-list-hover-shell {
    --gc-list-item-hover-bg: transparent;
    --gc-list-shell-hover-bg: var(--gc-interactive-hover-bg);
    --gc-list-action-hover-bg: transparent;
    --gc-list-action-hover-border: transparent;
    --gc-list-action-hover-color: inherit;
}

.gc-list-hover-action {
    --gc-list-item-hover-bg: transparent;
    --gc-list-shell-hover-bg: transparent;
    --gc-list-action-hover-bg: var(--surface-control);
    --gc-list-action-hover-border: var(--border-subtle);
    --gc-list-action-hover-color: var(--text-primary);
}

/* Кнопки в .gc-list-actions: Figma btns/bordered icon sm (1277:18913); dropdown-toggle-bordered или .gc-btn-bordered.gc-btn-icon-sm */

/* Для обычной интерактивной строки hover должен работать по всей площади row,
   включая actions-зону. Составные shell-блоки по-прежнему отключают row-hover выше. */

/* Кнопка добавления в список (выше обычной строки — зона призыва к действию) */
.gc-list-item-add {
    --gc-list-item-add-min-height: 68px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-secondary);
    gap: var(--space-1);
    min-height: var(--gc-list-item-add-min-height);
    text-decoration: none;
    cursor: pointer;
    position: relative;
    z-index: 1;
}

a.gc-list-item-add {
    display: flex !important;
    align-items: center;
    justify-content: center;
    pointer-events: auto !important;
    text-decoration: none !important;
}

.gc-list-item-add i {
    font-size: var(--font-size-base);
    color: var(--text-secondary);
    opacity: 0.6;
    transition: all var(--transition-base);
}

.gc-list-item-add span {
    color: var(--text-secondary);
    transition: color var(--transition-base);
}

.gc-list-item-add:hover {
    /* Легче --ui-accent-soft (0.08), чтобы не перебивать контент */
    background-color: rgba(var(--accent-link-rgb), 0.03) !important;
}

.gc-list-item-add:hover i {
    color: var(--accent-link);
    opacity: 1;
}

.gc-list-item-add:hover span {
    color: var(--accent-link);
}

/* Action list item - для кнопок-действий (Добавить участника, Назначить организатора) */
.gc-list-item-action {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-4) var(--space-6);
    background: none;
    border: none;
    width: 100%;
    text-align: left;
    cursor: pointer;
    transition: background-color var(--transition-fast);
    color: var(--text-secondary);
    font-family: inherit;
}

.gc-list-item-action:hover {
    background-color: color-mix(in srgb, var(--fill-primary) 6%, transparent);
}

.gc-list-item-action i,
.gc-list-item-action svg {
    color: var(--text-secondary);
    flex-shrink: 0;
}

.gc-list-item-action .gc-list-title {
    font-weight: 500;
    color: var(--text-secondary);
    font-size: var(--font-size-14);
}

/* Неинтерактивные элементы */
.gc-list-item.non-interactive {
    cursor: default;
}

.gc-list-item.non-interactive:hover {
    background-color: var(--gc-list-item-bg, var(--surface-panel)) !important;
}

/* Дочерняя строка: используется внутри extra-list; .nested оставлен как legacy alias */
.gc-list-item-child,
.gc-list-item.nested {
    --gc-list-item-min-height: 44px;
    --gc-list-item-gap: var(--space-2);
    --gc-list-item-padding-y: var(--space-2);
    --gc-list-item-padding-x: var(--space-2);
    --gc-list-item-hover-bg: var(--gc-interactive-hover-bg);
}

/* Компактный вариант (меньшая высота) */
.gc-list-item.compact {
    --gc-list-item-min-height: 48px;
    --gc-list-item-padding-y: var(--space-2);
    --gc-list-item-padding-x: var(--space-2);
}

/* Child-row + compact: сохраняем компактную высоту без дополнительного left-offset */
.gc-list-item-child.compact,
.gc-list-item.nested.compact {
    --gc-list-item-min-height: 44px;
    --gc-list-item-padding-y: var(--space-2);
    --gc-list-item-padding-x: var(--space-2);
}

/* =================================
   Структурные классы для контента
   ================================= */

/* Кликабельная левая часть строки (аватар + контент) — не захватывает кнопки справа */
.gc-list-item-trigger {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex: 1;
    min-width: 0;
    cursor: inherit;
}

/* Hit внутри gc-interactive-row: тот же gap, что у прямых детей строки */
.gc-interactive-row > .gc-list-item-trigger {
    gap: var(--gc-list-row-padding);
}

a.gc-list-item-trigger,
button.gc-list-item-trigger {
    color: inherit;
    text-decoration: none;
}

button.gc-list-item-trigger {
    appearance: none;
    background: transparent;
    border: 0;
    padding: 0;
    font: inherit;
    text-align: inherit;
    cursor: pointer;
}

a.gc-list-item-trigger:hover,
button.gc-list-item-trigger:hover {
    color: inherit;
}

/* Основная колонка строки: trigger сверху + второй ряд (теги, примечание).
   Прямой ребёнок gc-list-item перед gc-list-actions — чтобы flex-строка не
   превращалась в trigger | actions | tags.
   Лента / заявки: см. gc-list-item-primary-row (или legacy subscriptions-benefit-feed-item__primary-row)
   в lists.css — trigger и gc-list-actions в одной строке; родитель списка —
   gc-panel-content--list + gc-panel-content--list-cards (styles.css). */
.gc-list-item-body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: var(--space-1);
}

.gc-list-item-body > .gc-list-item-trigger {
    flex: 0 0 auto;
    width: 100%;
}

/* Строка «trigger | actions» внутри body; ниже — бейджи / detail.
 * Имя ряда: gc-list-item-primary-row (нейтральное, UI Kit) или
 * subscriptions-benefit-feed-item__primary-row (те же правила — legacy в разметке ленты). */
.subscriptions-benefit-feed-item.gc-list-item {
    align-items: flex-start;
}

.gc-list-item-body > .gc-list-item-primary-row,
.subscriptions-benefit-feed-item .subscriptions-benefit-feed-item__primary-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--gc-list-item-gap, var(--space-2));
    width: 100%;
    min-width: 0;
    flex-wrap: nowrap;
}

.gc-list-item-body > .gc-list-item-primary-row > .gc-list-item-trigger,
.subscriptions-benefit-feed-item .subscriptions-benefit-feed-item__primary-row > .gc-list-item-trigger {
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
}

.gc-list-item-body > .gc-list-item-primary-row > .gc-list-actions,
.subscriptions-benefit-feed-item .subscriptions-benefit-feed-item__primary-row > .gc-list-actions {
    margin-left: auto;
    flex-shrink: 0;
    align-self: center;
}

/* Редко: колонка метрик как прямой сосед body без обёртки __primary-row */
.subscriptions-benefit-feed-item-actions.gc-list-actions {
    margin-left: auto;
    align-self: center;
    flex: 0 0 auto;
}

/* Media contract для list-item / list-shell.
   Canonical primitives:
   - gc-list-avatar: круглое фото
   - gc-list-media-square: квадратное фото/preview
   - gc-list-media-icon: иконочный frame
   - gc-list-media-date: плитка даты (день / месяц) — агенда в rail
   Legacy/domain aliases:
   - gc-list-avatar-square
   - gc-list-avatar-icon
   - sidebar-icon-box
   - sidebar-weapon-icon */
.gc-list-avatar,
.gc-list-media-square,
.gc-list-avatar-square,
.gc-list-media-icon,
.gc-list-media-date,
.gc-list-avatar-icon,
.sidebar-icon-box,
.sidebar-weapon-icon {
    width: var(--gc-list-media-size);
    height: var(--gc-list-media-size);
    min-width: var(--gc-list-media-size);
    min-height: var(--gc-list-media-size);
    max-width: var(--gc-list-media-size);
    max-height: var(--gc-list-media-size);
    flex-shrink: 0;
}

.gc-list-avatar.sm,
.gc-list-media-square.sm,
.gc-list-avatar-square.sm,
.gc-list-media-icon.sm,
.gc-list-media-date.sm,
.gc-list-avatar-icon.sm,
.gc-list-avatar-fallback.sm {
    --gc-list-media-size: var(--gc-list-media-size-sm);
}

.gc-list-avatar.md,
.gc-list-media-square.md,
.gc-list-avatar-square.md,
.gc-list-media-icon.md,
.gc-list-media-date.md,
.gc-list-avatar-icon.md,
.gc-list-avatar-fallback.md {
    --gc-list-media-size: var(--gc-list-media-size-md);
}

.gc-list-avatar.xs,
.gc-list-media-square.xs,
.gc-list-avatar-square.xs,
.gc-list-media-icon.xs,
.gc-list-media-date.xs,
.gc-list-avatar-icon.xs,
.gc-list-avatar-fallback.xs {
    --gc-list-media-size: var(--gc-list-media-size-xs);
}

.gc-list-avatar.lg,
.gc-list-media-square.lg,
.gc-list-avatar-square.lg,
.gc-list-media-icon.lg,
.gc-list-media-date.lg,
.gc-list-avatar-icon.lg,
.gc-list-avatar-fallback.lg {
    --gc-list-media-size: var(--gc-list-media-size-lg);
}

.gc-list-media-square,
.gc-list-avatar-square,
.gc-list-avatar-fallback,
.sidebar-avatar.sidebar-avatar-placeholder,
.gc-list-media-icon,
.gc-list-media-date,
.gc-list-avatar-icon,
.sidebar-icon-box,
.sidebar-weapon-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    overflow: hidden;
    transition:
        background var(--transition-fast),
        color var(--transition-fast);
}

/* Figma list-item programm (1270:17774): rest без border; tier S micro — в строке списка (§ List media glow ниже) */
.gc-list-media-square,
.gc-list-avatar-square,
.gc-list-avatar-fallback,
.sidebar-avatar.sidebar-avatar-placeholder,
.gc-list-media-icon,
.gc-list-avatar-icon {
    border: none;
}

.sidebar-icon-box,
.sidebar-weapon-icon {
    border: 1px solid var(--gc-list-media-frame-border, var(--border-subtle));
    transition:
        background var(--transition-fast),
        color var(--transition-fast),
        border-color var(--transition-fast);
}

/* Фото / fallback — приподнятая surface. Иконочные frame — control-bg на canvas, subtle на panel (см. shell/sidebar). */
.gc-list-media-square,
.gc-list-avatar-square,
.gc-list-avatar-fallback,
.sidebar-avatar.sidebar-avatar-placeholder {
    background: var(--gc-list-media-frame-bg, var(--surface-control));
}

.gc-list-media-icon,
.gc-list-avatar-icon,
.sidebar-icon-box,
.sidebar-weapon-icon {
    background: var(--gc-list-media-frame-bg, var(--surface-control));
}

/*
 * Плитка даты: день сверху, месяц снизу.
 * Канон = карточка ивента: border-subtle, без media-glow (спокойная плитка).
 */
.gc-list-media-date {
    flex-direction: column;
    gap: 1px;
    padding: 0;
    border: 1px solid var(--border-subtle);
    border-radius: calc(var(--gc-list-media-size) * var(--radius-12) / var(--gc-list-media-size-base));
    background: var(--gc-list-media-frame-bg, var(--surface-control));
    box-shadow: none;
    color: var(--text-primary);
    text-align: center;
    font-variant-numeric: tabular-nums;
    user-select: none;
    transition:
        background var(--transition-fast),
        color var(--transition-fast),
        border-color var(--transition-fast);
}

.gc-list-media-date__day {
    font-size: var(--font-size-18);
    font-weight: var(--font-weight-semibold);
    line-height: 1;
}

.gc-list-media-date__month {
    font-size: var(--font-size-11);
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--text-secondary);
}

/* Единый фрейм диапазона: [19  по  22] — тот же border-канон, что у одиночной плитки */
.gc-list-media-date-range {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    box-sizing: border-box;
    height: var(--gc-list-media-size);
    min-height: var(--gc-list-media-size);
    max-height: var(--gc-list-media-size);
    padding-inline: var(--space-2);
    flex-shrink: 0;
    border: 1px solid var(--border-subtle);
    border-radius: calc(var(--gc-list-media-size) * var(--radius-12) / var(--gc-list-media-size-base));
    background: var(--gc-list-media-frame-bg, var(--surface-control));
    box-shadow: none;
    color: var(--text-primary);
    font-variant-numeric: tabular-nums;
    text-align: center;
    user-select: none;
    transition:
        background var(--transition-fast),
        color var(--transition-fast),
        border-color var(--transition-fast);
}

.gc-list-media-date-range__part {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1px;
    line-height: 1;
}

.gc-list-media-date-range__sep {
    flex-shrink: 0;
    align-self: center;
    font-size: var(--font-size-11);
    font-weight: 500;
    line-height: 1;
    color: var(--text-secondary);
    text-transform: lowercase;
}

.gc-list-media-date.sm .gc-list-media-date__day {
    font-size: var(--font-size-16);
}

.gc-list-media-date.xs .gc-list-media-date__day,
.gc-list-media-date.md .gc-list-media-date__day {
    font-size: var(--font-size-14);
}

.gc-list-media-date.xs .gc-list-media-date__month,
.gc-list-media-date.sm .gc-list-media-date__month,
.gc-list-media-date.md .gc-list-media-date__month,
.gc-list-media-date-range.xs .gc-list-media-date__month,
.gc-list-media-date-range.sm .gc-list-media-date__month,
.gc-list-media-date-range.md .gc-list-media-date__month {
    font-size: var(--font-size-11);
}

.gc-list-media-icon.sm,
.gc-list-avatar-icon.sm {
    --gc-list-media-icon-padding: var(--space-2);
    --gc-list-media-mask-inset: 3px;
    --gc-list-media-glyph-size: var(--font-size-16);
}

.gc-list-media-icon.md,
.gc-list-avatar-icon.md {
    --gc-list-media-icon-padding: var(--space-1);
    --gc-list-media-mask-inset: var(--space-1);
    --gc-list-media-glyph-size: var(--font-size-16);
}

.gc-list-media-icon.xs,
.gc-list-avatar-icon.xs {
    --gc-list-media-icon-padding: var(--space-1);
    --gc-list-media-mask-inset: 1px;
    --gc-list-media-glyph-size: var(--font-size-14);
}

.gc-list-media-icon.lg,
.gc-list-avatar-icon.lg {
    --gc-list-media-icon-padding: var(--space-2);
    --gc-list-media-mask-inset: var(--space-1);
    --gc-list-media-glyph-size: var(--font-size-20);
}

/* Круглое фото участника */
.gc-list-avatar {
    object-fit: cover;
    border-radius: 50%;
}

/* Иконка-заглушка вместо фото (эпики, списки) */
.gc-list-avatar.gc-list-avatar-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: var(--gc-list-media-frame-bg, var(--surface-control));
    border: none;
    box-sizing: border-box;
    color: var(--text-secondary);
}

.gc-list-avatar.gc-list-avatar-placeholder i {
    font-size: var(--font-size-18);
    line-height: 1;
}

/* Квадратная миниатюра для list-item / list-shell (оружие, транспорт и т.п.) */
.gc-list-media-square,
.gc-list-avatar-square {
    object-fit: cover;
    border-radius: var(--radius-8);
}

.gc-list-avatar-wrap {
    position: relative;
    flex-shrink: 0;
}

.gc-list-avatar-badge {
    position: absolute;
    bottom: -2px;
    right: -2px;
    z-index: 2;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--accent-link);
    color: var(--text-on-solid);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
    border: 1.5px solid var(--surface-panel);
}

.gc-list-avatar-fallback {
    padding: 1px;
    color: var(--text-secondary);
    font-size: var(--font-size-14);
    font-weight: 600;
    border-radius: 50%;
    flex-shrink: 0;
}

/* При использовании квадратного контейнера — скругления вместо круга */
.gc-list-media-square.gc-list-avatar-fallback,
.gc-list-avatar-square.gc-list-avatar-fallback {
    border-radius: var(--radius-8);
}

/* Простой вертикальный список людей/элементов без рамок */
.gc-person-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

/* Контейнер для нескольких смысловых секций — разделяет их отступом md */
.gc-sections {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

/* Иконочный frame для list-item / list-shell */
.gc-list-media-icon:not(.gc-list-avatar-fallback[class*="gc-avatar-tint-"]),
.gc-list-avatar-icon:not(.gc-list-avatar-fallback[class*="gc-avatar-tint-"]),
.sidebar-icon-box,
.sidebar-weapon-icon {
    --gc-list-media-icon-padding: var(--space-2);
    --gc-list-media-mask-inset: var(--space-1);
    --gc-list-media-glyph-size: var(--font-size-18);
    --gc-list-media-glyph-color: var(--text-primary);
    --gc-list-media-icon-radius: calc(var(--gc-list-media-size) * var(--radius-12) / var(--gc-list-media-size-base));
    padding: var(--gc-list-media-icon-padding);
    position: relative;
    border-radius: var(--gc-list-media-icon-radius);
    color: var(--gc-list-media-glyph-color);
    transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
}

.gc-list-media-icon :is(i, .ph, .ph-fill, .ph-bold),
.gc-list-avatar-icon :is(i, .ph, .ph-fill, .ph-bold),
.sidebar-icon-box :is(i, .ph, .ph-fill, .ph-bold),
.sidebar-weapon-icon :is(i, .ph, .ph-fill, .ph-bold) {
    font-size: var(--gc-list-media-glyph-size);
    line-height: 1;
    color: inherit;
}

.gc-list-media-mask,
.sidebar-weapon-img {
    position: absolute;
    inset: var(--gc-list-media-mask-inset);
    display: block;
    background-color: currentColor;
    -webkit-mask-image: var(--icon-url);
    mask-image: var(--icon-url);
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
}

/* Кликабельный frame вокруг gc-list-media-square / gc-list-media-icon (превью брифинга и т.п.) */
.gc-list-media-hit,
button.event-program-briefing-hit {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-sizing: border-box;
    width: var(--gc-list-media-size);
    height: var(--gc-list-media-size);
    min-width: var(--gc-list-media-size);
    min-height: var(--gc-list-media-size);
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    font: inherit;
    color: inherit;
    cursor: pointer;
    overflow: hidden;
    border-radius: var(--gc-list-media-radius, var(--radius-12));
}

.gc-list-media-hit:focus-visible,
button.event-program-briefing-hit:focus-visible {
    outline: var(--gc-focus-outline);
    outline-offset: 2px;
}

.gc-list-media-hit:has(.gc-list-media-square) .gc-list-media-square,
button.event-program-briefing-hit:has(.gc-list-media-square) .gc-list-media-square {
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
    max-width: none;
    max-height: none;
    border: none;
    border-radius: 0;
    transition: transform var(--transition-fast), filter var(--transition-fast);
}

/* Shape modifiers для list-media.
   Позволяют явно переопределить форму независимо от типа media. */
:is(
    .gc-list-avatar,
    .gc-list-media-square,
    .gc-list-avatar-square,
    .gc-list-media-icon,
    .gc-list-media-date,
    .gc-list-avatar-icon,
    .gc-list-avatar-fallback,
    .sidebar-icon-box,
    .sidebar-weapon-icon,
    .gc-img-slot
).gc-list-media-round {
    border-radius: 50%;
}

:is(
    .gc-list-avatar,
    .gc-list-media-square,
    .gc-list-avatar-square,
    .gc-list-media-icon,
    .gc-list-media-date,
    .gc-list-avatar-icon,
    .gc-list-avatar-fallback,
    .sidebar-icon-box,
    .sidebar-weapon-icon,
    .gc-img-slot
).gc-list-media-rounded {
    border-radius: var(--radius-8);
}

:is(
    .gc-list-avatar,
    .gc-list-media-square,
    .gc-list-avatar-square,
    .gc-list-media-icon,
    .gc-list-media-date,
    .gc-list-avatar-icon,
    .gc-list-avatar-fallback,
    .sidebar-icon-box,
    .sidebar-weapon-icon
).gc-list-media-sharp {
    border-radius: 0;
}

/* Legacy/domain aliases: база = sm-токен; lg = базовый list-media. */
.sidebar-icon-box,
.sidebar-weapon-icon {
    --gc-list-media-size: var(--gc-list-media-size-sm);
    --gc-list-media-icon-padding: var(--space-2);
    --gc-list-media-mask-inset: var(--space-1);
}

.sidebar-icon-box-lg,
.sidebar-weapon-icon-lg {
    --gc-list-media-size: var(--gc-list-media-size-base);
    --gc-list-media-icon-padding: var(--space-2);
    --gc-list-media-mask-inset: var(--space-2);
}

.sidebar-icon-box-md,
.sidebar-weapon-icon-md {
    --gc-list-media-size: var(--gc-list-media-size-sm);
    --gc-list-media-icon-padding: var(--space-2);
    --gc-list-media-mask-inset: var(--space-1);
}

.sidebar-icon-box--md,
.sidebar-weapon-icon--md {
    --gc-list-media-size: var(--gc-list-media-size-md);
    --gc-list-media-icon-padding: var(--space-1);
    --gc-list-media-mask-inset: var(--space-1);
}

.sidebar-icon-box-sm,
.sidebar-weapon-icon-sm {
    --gc-list-media-size: var(--gc-list-media-size-xs);
    --gc-list-media-icon-padding: var(--space-1);
    --gc-list-media-mask-inset: 1px;
}

/* Нумерованный маркер */
.gc-list-number {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--surface-control);
    border: 1px solid var(--border-subtle);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--font-size-13);
    font-weight: 600;
    color: var(--text-secondary);
    flex-shrink: 0;
}

/* Иконка вместо маркера */
.gc-list-icon {
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-secondary);
    flex-shrink: 0;
}

/* Контент списка (имя + мета) — flex-col, gap space/product-2 между title и meta */
.gc-list-content {
    display: flex;
    flex-direction: column;
    gap: var(--space-product-2);
    min-width: 0; /* Для корректного text-overflow */
    overflow: hidden;
    flex: 1;
}

.gc-list-content > .gc-list-title,
.gc-list-content > .gc-list-meta {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gc-list-content > .gc-list-title {
    line-height: var(--gc-list-title-line-height);
}

.gc-list-content > .gc-list-meta {
    line-height: var(--gc-list-meta-line-height);
}

/* Многострочные описания (радио-настройки и т.п.) — без однострочного ellipsis */
.gc-list-content.gc-list-content--multiline > .gc-list-title,
.gc-list-content.gc-list-content--multiline > .gc-list-meta {
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
}

.gc-list-meta-status {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    min-width: 0;
    overflow: visible;
    padding-left: var(--space-2);
    margin-left: calc(-1 * var(--space-2));
}

.gc-list-meta-status .gc-status-indicator {
    display: block;
    flex-shrink: 0;
    align-self: center;
    line-height: 0;
}

.gc-list-meta-status .gc-list-meta {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gc-list-content:has(> .gc-list-meta-status) {
    overflow: visible;
}

/* Badge/Meta - контейнер для бейджа/метаданных справа */
.gc-list-badge {
    margin-left: auto;
    flex-shrink: 0;
}

/* Actions - контейнер для кнопок действий */
.gc-list-actions {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    margin-left: auto;
    flex-shrink: 0;
    flex-wrap: nowrap;
    /*
     * Row-hover = gray canvas; action chip — surface + border, hover — elevated/control.
     * На hovered row rest chip поднимается (surface-primary), hover — elevated/control.
     */
    --gc-list-actions-btn-bg: var(--surface-secondary);
    --gc-list-actions-btn-border: var(--border-subtle);
    --gc-list-actions-btn-hover-bg: var(--surface-elevated);
    --gc-list-actions-btn-hover-border: var(--border-default);
}

/* Строка в hover — chip не сливается с --gc-interactive-hover-bg */
@media (min-width: 1280px) and (hover: hover) and (pointer: fine) {
:is(
    a.gc-interactive-row,
    .gc-interactive-row.interactive,
    .gc-list-item.interactive,
    .gc-list-item-interactive,
    .gc-list-item.profile-trigger,
    .event-participant-card.profile-trigger
):is(:hover, :focus-within) .gc-list-actions {
    --gc-list-actions-btn-bg: var(--surface-primary);
    --gc-list-actions-btn-border: var(--border-default);
}
}
:is(
    a.gc-interactive-row,
    .gc-interactive-row.interactive,
    .gc-list-item.interactive,
    .gc-list-item-interactive,
    .gc-list-item.profile-trigger,
    .event-participant-card.profile-trigger
):is( :focus-within) .gc-list-actions {
    --gc-list-actions-btn-bg: var(--surface-primary);
    --gc-list-actions-btn-border: var(--border-default);
}

/* Только hover кнопки, без row-hover (gc-list-hover-action) */
.gc-list-hover-action .gc-list-actions {
    --gc-list-actions-btn-hover-bg: var(--gc-list-action-hover-bg, var(--surface-control));
    --gc-list-actions-btn-hover-border: var(--gc-list-action-hover-border, var(--border-default));
}

/* Figma btns/bordered icon sm в строках: 32×32, glyph 16px, radius-10 */
.gc-list-actions .gc-dropdown-toggle-icon,
.gc-list-actions > .gc-btn.gc-btn-bordered.gc-btn-icon-sm,
.gc-list-actions > .gc-btn.gc-btn-outline.gc-btn-icon-sm {
    width: var(--gc-dropdown-icon-toggle-size-sm);
    height: var(--gc-dropdown-icon-toggle-size-sm);
    min-width: var(--gc-dropdown-icon-toggle-size-sm);
    min-height: var(--gc-dropdown-icon-toggle-size-sm);
    padding: 0;
    border-radius: var(--gc-btn-icon-radius-sm);
}

/* Bordered / outline icon в actions — единый list-action chip (не gc-btn-bordered-hover на row canvas) */
.gc-list-actions .gc-dropdown-toggle-icon.gc-dropdown-toggle-bordered,
.gc-list-actions > .gc-btn.gc-btn-bordered.gc-btn-icon-sm,
.gc-list-actions > .gc-btn.gc-btn-outline.gc-btn-icon-sm,
.gc-list-actions > .gc-dropdown > .gc-btn.gc-btn-bordered.gc-dropdown-toggle:is(.gc-btn-icon-sm, .gc-btn-icon) {
    background-color: var(--gc-list-actions-btn-bg);
    border: 1px solid var(--gc-list-actions-btn-border);
    box-shadow: none;
    --gc-btn-hairline: 0 0 #0000;
    color: var(--text-primary);
    /* better-ui: keep transform for press scale(0.96) */
    transition-property: transform, background-color, border-color, box-shadow, color;
    transition-duration: var(--transition-fast);
    transition-timing-function: cubic-bezier(0.2, 0, 0, 1);
}

.gc-list-actions .gc-dropdown-toggle-icon.gc-dropdown-toggle-bordered:is(:hover, [aria-expanded="true"]),
.gc-list-actions > .gc-btn.gc-btn-bordered.gc-btn-icon-sm:is(:hover, [aria-expanded="true"]),
.gc-list-actions > .gc-btn.gc-btn-outline.gc-btn-icon-sm:is(:hover, [aria-expanded="true"]),
.gc-list-actions > .gc-dropdown > .gc-btn.gc-btn-bordered.gc-dropdown-toggle:is(.gc-btn-icon-sm, .gc-btn-icon):is(:hover, [aria-expanded="true"]) {
    background-color: var(--gc-list-actions-btn-hover-bg);
    border-color: var(--gc-list-actions-btn-hover-border);
    color: var(--text-primary);
    box-shadow: var(--gc-btn-soft-hover-shadow);
}

.gc-list-actions .gc-dropdown-toggle-icon.gc-dropdown-toggle-bordered:focus-visible,
.gc-list-actions > .gc-btn.gc-btn-bordered.gc-btn-icon-sm:focus-visible,
.gc-list-actions > .gc-btn.gc-btn-outline.gc-btn-icon-sm:focus-visible,
.gc-list-actions > .gc-dropdown > .gc-btn.gc-btn-bordered.gc-dropdown-toggle:is(.gc-btn-icon-sm, .gc-btn-icon):focus-visible {
    outline: var(--gc-focus-outline);
    outline-offset: var(--gc-focus-outline-offset);
    background-color: var(--gc-list-actions-btn-hover-bg);
    border-color: var(--gc-list-actions-btn-hover-border);
    color: var(--text-primary);
    box-shadow: var(--gc-btn-soft-hover-shadow);
}

.gc-list-actions .gc-dropdown-toggle-icon i,
.gc-list-actions > .gc-btn.gc-btn-bordered.gc-btn-icon-sm i,
.gc-list-actions > .gc-btn.gc-btn-outline.gc-btn-icon-sm i {
    font-size: var(--font-size-base);
    line-height: 1;
}

/* Текстовые sm-кнопки в actions — капсула, как .gc-btn-sm */
.gc-list-actions > .gc-btn.gc-btn-sm:not(.gc-btn-icon-sm):not(.gc-btn-icon):not(.gc-btn-icon-xs):not(.gc-btn-bordered) {
    border-radius: var(--gc-btn-sm-radius);
}

/* Контейнер для метаинформации справа (динамика, статусы) - всегда справа */
.gc-list-meta-right {
    display: flex;
    gap: var(--space-1);
    margin-left: auto;
    flex-shrink: 0;
    align-items: center;
}

/* На мобильных — actions прямой ребёнок строки (gc-list-item или gc-interactive-row):
   кнопки уходят на следующую строку. Не actions внутри body (benefit-feed primary-row). */
@media (max-width: 767.98px) {
    :is(.gc-list-item, .gc-interactive-row):has(> .gc-list-actions > .gc-btn:not(.gc-btn-icon-sm):not(.gc-btn-icon):not(.gc-btn-icon-xs)) {
        flex-wrap: wrap;
    }

    :is(.gc-list-item, .gc-interactive-row) > .gc-list-content {
        min-width: 0;
        flex: 1;
    }

    :is(.gc-list-item, .gc-interactive-row) > .gc-list-actions:has(> .gc-btn:not(.gc-btn-icon-sm):not(.gc-btn-icon):not(.gc-btn-icon-xs)) {
        width: 100%;
        margin-left: 0;
        margin-top: var(--space-1);
    }

    :is(.gc-list-item, .gc-interactive-row) > .gc-list-actions:has(> .gc-btn:not(.gc-btn-icon-sm):not(.gc-btn-icon):not(.gc-btn-icon-xs)) > .gc-btn {
        flex: 1;
        min-height: 36px;
        font-size: var(--font-size-14);
        padding: var(--space-1) var(--space-2);
    }
}

.gc-list-title {
    font-size: var(--gc-list-title-font-size);
    font-weight: 500;
    margin: 0;
    color: var(--text-primary);
    line-height: var(--gc-list-title-line-height);
}

/* Модификатор: жирный заголовок (для названий автомобилей) */
.gc-list-title-bold,
.gc-vehicle-title {
    font-weight: 700;
    color: var(--text-primary);
}

/* Модификатор: маленький заголовок (для названий оружия) */
.gc-list-title-sm {
    font-size: var(--gc-list-title-font-size-sm);
}

/* Модификатор: кегль mdl и межстрочный интервал 24px */
.gc-list-title--mdl {
    font-size: var(--gc-list-title-font-size);
    line-height: var(--gc-list-title-line-height);
}

/* Модификатор: заголовок с бейджем в строку */
.gc-list-title-with-badge {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    width: 100%;
    flex-wrap: wrap;
}

/* Trailing badge: прижимаем метку к правому краю строки */
.gc-list-title-with-badge .gc-badge,
.gc-list-title-with-badge .gc-badge-car-number {
    margin-left: auto;
    flex-shrink: 0;
}

/* Compact badge в заголовке списка — размеры из badges.css (.gc-badge-sm) */

/* Метаинформация в списках — вторичная строка (UI/Caption / 13px) */
.gc-list-meta {
    font-size: var(--gc-list-meta-font-size);
    color: var(--text-secondary);
    margin: 0;
    line-height: var(--gc-list-meta-line-height);
    font-weight: 400;
}

/* Вторая строка: дата + метрика (ХФ в очереди модерации челленджа и аналоги) */
.gc-list-meta.gc-list-meta--metrics {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-1);
}

.gc-list-meta-hf {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    min-width: 0;
}

.gc-list-meta-hf img {
    display: block;
    width: 0.875rem;
    height: 0.875rem;
    flex-shrink: 0;
    object-fit: contain;
}

.gc-list-meta-hf > span {
    color: var(--text-secondary);
    font-weight: 500;
}

.gc-list-meta-hf.gc-list-meta-hf--ranking {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
}

/* Челлендж: отклонённая подача в компактном списке — приглушить метрики в строке */
.gc-list-meta.gc-list-meta--metrics-rejected .gc-list-meta-hf {
    opacity: 0.6;
    filter: grayscale(1);
}

.gc-list-item--submission-rejected .gc-list-meta.gc-list-meta--metrics-rejected > span:first-child {
    color: var(--text-secondary);
}

/* Плотная вторичная строка (редко): xs / compact line-height */
.gc-list-meta.gc-list-meta--compact,
.gc-list-item .gc-list-meta.gc-list-meta--compact {
    font-size: var(--font-size-13);
    line-height: var(--line-height-list-compact);
}

/* Кнопка меню (три точки) 
   @deprecated Используйте .gc-dropdown-toggle .gc-dropdown-toggle-icon из dropdown.css
   Оставлено для обратной совместимости со старым кодом
*/
.gc-menu-btn {
    min-width: 32px;
    min-height: 32px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: none;
    border-radius: var(--radius-8);
    color: var(--text-secondary);
    transition-property: transform, background-color, color;
    transition-duration: var(--transition-fast);
    transition-timing-function: cubic-bezier(0.2, 0, 0, 1);
    flex-shrink: 0;
    cursor: pointer;
}

.gc-menu-btn:hover {
    color: var(--text-primary);
    background-color: var(--surface-control);
}

.gc-menu-btn:active {
    background-color: color-mix(in srgb, var(--fill-primary) 6%, transparent);
    transform: scale(0.96);
}

html.gc-touch-scrolling .gc-menu-btn:active {
    background-color: transparent;
    transform: none;
}

.gc-menu-btn:focus {
    box-shadow: none;
    outline: none;
}

/* Убираем стрелку у gc-menu-btn, если она используется в gc-dropdown */
.gc-dropdown .gc-menu-btn::after {
    display: none !important;
}

/* =================================
   Бейджи и метки
   ================================= */
/* Используй .gc-class-badge и другие бейджи из badges.css */

/* =================================
   Адаптивность
   ================================= */

@media (max-width: 576px) {
    .gc-list-title {
        font-size: var(--gc-list-title-font-size);
    }

    .gc-list-meta {
        font-size: var(--gc-list-meta-font-size);
    }

    .gc-list-meta.gc-list-meta--compact,
    .gc-list-item .gc-list-meta.gc-list-meta--compact {
        font-size: var(--font-size-13);
    }
}

/* =================================
   Аватар с рангом (Rankings)
   ================================= */

.avatar-with-rank {
    position: relative;
    flex-shrink: 0;
}

.rank-badge {
    position: absolute;
    bottom: calc(var(--space-1) * -1);
    right: calc(var(--space-1) * -1);
    width: var(--space-6);
    height: var(--space-6);
    min-width: var(--space-6);
    padding: 0;
    box-sizing: border-box;
    border: none;
    border-radius: var(--radius-full);
    display: grid;
    place-items: center;
    font-size: var(--font-size-12);
    font-weight: 500;
    line-height: 1;
    color: var(--text-primary);
    background-color: var(--surface-panel);
    z-index: 1;
}

/* Места 1–3: цветной фон медали, цифра всегда тёмная (--gc-rank-medal-fg) */
.rank-badge.rank-badge--place-1,
.rank-badge.rank-badge--place-2,
.rank-badge.rank-badge--place-3,
.rank-badge.top-3 {
    color: var(--gc-rank-medal-fg);
    font-weight: 600;
}

.rank-badge.rank-badge--place-1,
.rank-badge.top-3 {
    background-color: var(--gc-rank-place-1-bg);
}

.rank-badge.rank-badge--place-2 {
    background-color: var(--gc-rank-place-2-bg);
}

.rank-badge.rank-badge--place-3 {
    background-color: var(--gc-rank-place-3-bg);
}

.rank-badge.rank-badge--sm {
    width: var(--space-4);
    height: var(--space-4);
    min-width: var(--space-4);
    font-size: var(--font-size-11);
    bottom: calc(var(--space-1) / -2);
    right: calc(var(--space-1) / -2);
}

/* Место в строке списка, без аватара (история стрелка в канале). */
.rank-badge.rank-badge--lead {
    position: static;
    flex-shrink: 0;
}

.rank-badge.rank-badge--lead:not(.rank-badge--place-1):not(.rank-badge--place-2):not(.rank-badge--place-3) {
    background-color: var(--surface-subtle);
}

/* =================================
   Изменение позиции в рейтинге
   ================================= */

.rank-change {
    font-size: var(--font-size-14);
    font-weight: 600;
    padding: var(--space-product-2) var(--space-2);
    border-radius: var(--radius-8);
    display: inline-flex;
    align-items: center;
    gap: var(--space-product-2);
    line-height: 1.4;
}

.rank-change.up {
    color: var(--success-color);
    background: rgba(var(--success-color-rgb), 0.08);
}

.rank-change.down {
    color: var(--danger-color);
    background: rgba(var(--danger-color-rgb), 0.08);
}

/* ─── Interactive Row ────────────────────────────────────────────────────── */
/* Замена gc-list-item там, где не нужен gc-list-group и его CSS-переменные  */
/* Паддинг строки = --gc-list-row-padding (8px); в зоне --list вместе с zone sm = 16px до иконки. */
/* Все списки (Figma 1260:17247): rest Surface/Secondary, hover Interaction/Row-hover. */
/* Flat row: --gc-interactive-hover-bg. Boxed: --gc-list-open-item-bg / --gc-list-open-item-hover-bg. */

.gc-interactive-row {
    display: flex;
    align-items: center;
    gap: var(--gc-list-row-padding);
    padding: var(--gc-list-row-padding);
    border-radius: var(--radius-12);
    transition: background var(--transition-fast);
    color: var(--text-primary);
    text-decoration: none;
}

button.gc-interactive-row,
button.gc-list-item {
    width: 100%;
    border: 0;
    background: transparent;
    text-align: left;
    font: inherit;
    color: inherit;
}

a.gc-interactive-row,
.gc-interactive-row.interactive {
    cursor: pointer;
}

/* Строка-ссылка: не наследовать глобальный `a:hover { color: accent }` — иначе красится весь ряд и иконка в gc-list-actions */
a.gc-interactive-row {
    color: var(--text-primary);
    text-decoration: none;
}

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

a.gc-interactive-row:hover {
    color: var(--text-primary);
    text-decoration: none;
}
}


a.gc-interactive-row:focus-visible {
    color: var(--text-primary);
    text-decoration: none;
}

a.gc-interactive-row .gc-list-actions {
    color: var(--text-secondary);
}

/* Глиф icon-frame — primary; явный токен, не каскад от строки */
:is(a.gc-interactive-row, .gc-interactive-row) > :is(.gc-list-media-icon, .gc-list-avatar-icon, .sidebar-icon-box, .sidebar-weapon-icon):not(.gc-list-avatar-fallback[class*="gc-avatar-tint-"]),
:is(a.gc-interactive-row, .gc-interactive-row) > .gc-list-item-trigger > :is(.gc-list-media-icon, .gc-list-avatar-icon, .sidebar-icon-box, .sidebar-weapon-icon):not(.gc-list-avatar-fallback[class*="gc-avatar-tint-"]) {
    color: var(--gc-list-media-glyph-color, var(--text-primary));
}

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

:is(a.gc-interactive-row, .gc-interactive-row.interactive):not(.gc-open-list-tree-block__header):is(:hover, :focus-visible),

.gc-interactive-row.interactive:has(> .gc-list-item-trigger):not(.gc-open-list-tree-block__header):is(:hover, :focus-within) {
    background: var(--gc-interactive-hover-bg);
}
}

:is(a.gc-interactive-row, .gc-interactive-row.interactive):not(.gc-open-list-tree-block__header):is( :focus-visible),

.gc-interactive-row.interactive:has(> .gc-list-item-trigger):not(.gc-open-list-tree-block__header):is( :focus-within) {
    background: var(--gc-interactive-hover-bg);
}

/* Hover строки: icon-frame → row-hover (flat canvas). В boxed shell — см. .gc-list-section-shell выше. */
@media (min-width: 1280px) and (hover: hover) and (pointer: fine) {
:is(a.gc-interactive-row, .gc-interactive-row):is(:hover, :focus-within) {
    --gc-list-media-frame-bg: var(--gc-list-media-frame-bg-hover);
    --gc-list-media-frame-border: var(--gc-list-media-frame-border-hover);
    --gc-btn-outline-border: var(--border-default);
    --gc-weapon-placeholder-border: var(--border-default);
}
}
:is(a.gc-interactive-row, .gc-interactive-row):is( :focus-within),

.catalog-nav-item:is(:hover, :focus-within):not(.active) {
    --gc-list-media-frame-bg: var(--gc-list-media-frame-bg-hover);
    --gc-list-media-frame-border: var(--gc-list-media-frame-border-hover);
    --gc-btn-outline-border: var(--border-default);
    --gc-weapon-placeholder-border: var(--border-default);
}

/* Icon-frame при hover карточки/shell — когда строка не hovered */
@media (min-width: 1280px) and (hover: hover) and (pointer: fine) {

.event-participant-card:is(:hover, :focus-within),

.gc-list-section-shell .event-participant-card.profile-trigger:is(:hover, :focus-within),

.gc-list-section-shell > .gc-list-stack-item:has(> :is(a.gc-interactive-row, .gc-interactive-row):is(:hover, :focus-visible)),

.gc-list-section-shell > .gc-list-stack-item:has(> .gc-list-entry-detail--callout) > .gc-interactive-row:first-child:is(:hover, :focus-within),

.gc-list-section-shell > .gc-list-stack-item:has(> .gc-list-zone-inset):not(.gc-list-stack-item--roster) > .gc-interactive-row:first-child:is(:hover, :focus-within),

.gc-list-section-shell.gc-list-stack-item:has(> .gc-list-zone-inset) > .gc-interactive-row:first-child:is(:hover, :focus-within),

.gc-list-section-shell.gc-list-section-shell--bordered.gc-list-stack-item > .gc-interactive-row:first-child:is(:hover, :focus-within),

.gc-open-list-tree-block:is(:hover, :focus-within),

.sidebar-loadout-transport-stack:is(:hover, :focus-within),

.gc-list-shell-interactive:is(:hover, :focus-within):has(.gc-list-tree),

.gc-list-group-card-interactive:is(:hover, :focus-within):has(.gc-list-tree) {
    --gc-list-media-frame-bg: var(--gc-list-media-frame-bg-hover);
    --gc-list-media-frame-border: var(--gc-list-media-frame-border-hover);
    --gc-btn-outline-border: var(--border-default);
    --gc-weapon-placeholder-border: var(--border-default);
}
}
:is(.gc-list-item.interactive, .gc-list-item-interactive, .gc-list-item.profile-trigger):is(:hover, :focus-visible),

.event-participant-card:is( :focus-within),

.catalog-nav-item:is(:hover, :focus-within):not(.active),

.gc-list-section-shell .event-participant-card.profile-trigger:is( :focus-within),

.gc-list-section-shell > .gc-list-stack-item:has(> :is(a.gc-interactive-row, .gc-interactive-row):is( :focus-visible)),

.gc-list-section-shell > .gc-list-stack-item:has(> .gc-list-entry-detail--callout) > .gc-interactive-row:first-child:is( :focus-within),

.gc-list-section-shell > .gc-list-stack-item:has(> .gc-list-zone-inset):not(.gc-list-stack-item--roster) > .gc-interactive-row:first-child:is( :focus-within),

.gc-list-section-shell.gc-list-stack-item:has(> .gc-list-zone-inset) > .gc-interactive-row:first-child:is( :focus-within),

.gc-list-section-shell.gc-list-section-shell--bordered.gc-list-stack-item > .gc-interactive-row:first-child:is( :focus-within),

.gc-open-list-tree-block:is( :focus-within),

.sidebar-loadout-transport-stack:is( :focus-within),

.gc-list-shell-interactive:is( :focus-within):has(.gc-list-tree),

.gc-list-group-card-interactive:is( :focus-within):has(.gc-list-tree) {
    --gc-list-media-frame-bg: var(--gc-list-media-frame-bg-hover);
    --gc-list-media-frame-border: var(--gc-list-media-frame-border-hover);
    --gc-btn-outline-border: var(--border-default);
    --gc-weapon-placeholder-border: var(--border-default);
}

/* Dark theme: secondary-бейдж читается на тёмном row-hover */
@media (min-width: 1280px) and (hover: hover) and (pointer: fine) {
a.gc-interactive-row:hover .gc-badge-secondary,

.gc-interactive-row.interactive:hover .gc-badge-secondary {
    background: var(--fill-emphasis-inverse);
    color: var(--text-on-solid-inverse);
    border-color: transparent;
}
}

/* Light theme: бейдж не меняется (ховер почти незаметен на светлом фоне) */
@media (min-width: 1280px) and (hover: hover) and (pointer: fine) {
[data-theme="light"] a.gc-interactive-row:hover .gc-badge-secondary,

[data-theme="light"] .gc-interactive-row.interactive:hover .gc-badge-secondary {
    background: var(--gc-interactive-hover-bg);
    color: var(--text-secondary);
    border-color: var(--border-subtle);
}
}

@media (prefers-color-scheme: light) {
    @media (min-width: 1280px) and (hover: hover) and (pointer: fine) {
    a.gc-interactive-row:hover .gc-badge-secondary,

    .gc-interactive-row.interactive:hover .gc-badge-secondary {
        background: var(--gc-interactive-hover-bg);
        color: var(--text-secondary);
        border-color: var(--border-subtle);
    }
    }
}

.gc-interactive-row:focus-visible {
    outline: var(--gc-focus-outline);
    outline-offset: var(--gc-focus-outline-offset);
}

.gc-list-item.interactive:focus-visible,
.gc-list-item-interactive:focus-visible,
.gc-list-item.profile-trigger:focus-visible {
    outline: var(--gc-focus-outline);
    outline-offset: var(--gc-focus-outline-offset);
}

/* Фото / hit слева — --gc-list-media-radius. Иконочный frame — радиус от своего size */
.gc-interactive-row > :is(
    .gc-list-media-square,
    img.gc-list-media-square,
    .gc-list-media-hit,
    button.event-program-briefing-hit
),
.gc-interactive-row > .gc-list-item-trigger > :is(
    .gc-list-media-square,
    img.gc-list-media-square,
    .gc-list-media-hit,
    button.event-program-briefing-hit
) {
    border-radius: var(--gc-list-media-radius, var(--radius-12));
    flex-shrink: 0;
}

/* Навигация через data-href (public/js/data-href.js), без inline onclick */
[data-href]:not([data-href=""]) {
    cursor: pointer;
}

[data-href][tabindex="0"]:focus-visible {
    outline: var(--gc-focus-outline);
    outline-offset: var(--gc-focus-outline-offset);
}

/* Модалка транспорта: обёртка «Беру пассажиров» не разрывает вертикальный список (.gc-grouped-list) */
.transport-modal-body .gc-grouped-list > .transport-passenger-driver-block {
    display: contents;
}

/* ─── List stack (составной пункт program / note / poll / roster) ─────────── */

.gc-list-stack-item {
    display: flex;
    flex-direction: column;
    gap: var(--gc-list-stack-item-gap);
    min-width: 0;
}

.gc-list-stack-item--roster {
    gap: var(--space-product-2);
    padding: 0;
    border-radius: var(--gc-list-row-radius, var(--radius-16));
    box-sizing: border-box;
    transition: background var(--transition-fast);
}

.gc-list-stack-item--roster > .gc-interactive-row {
    padding: var(--gc-list-open-row-padding);
    border-radius: 0;
    background: transparent;
}

.gc-list-stack-item--roster > .gc-list-zone-inset {
    padding: 0;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.gc-list-zone-divider {
    display: block;
    width: 100%;
    height: 0;
    margin: 0;
    padding: 0;
    border: 0;
    border-top: 1px solid var(--border-subtle);
    flex-shrink: 0;
}

/* Feed/note card = shell co-located with stack-item; border — только модификатор --bordered */
.gc-list-section-shell.gc-list-stack-item:has(> .gc-list-zone-inset):not(.gc-list-stack-item--roster),
.gc-list-section-shell.gc-list-section-shell--bordered.gc-list-stack-item:has(> .gc-list-zone-inset) {
    gap: var(--gc-list-section-shell-gap);
    padding: var(--gc-list-section-shell-padding);
    border-radius: var(--gc-list-row-radius, var(--radius-16));
    box-sizing: border-box;
    transition: background var(--transition-fast);
    background: var(--gc-list-open-item-bg);
    --gc-list-item-hover-bg: var(--gc-list-open-item-hover-bg);
}

.gc-list-section-shell.gc-list-section-shell--bordered.gc-list-stack-item:not(:has(> .gc-list-zone-inset)) {
    gap: var(--gc-list-section-shell-gap);
}

.gc-list-section-shell.gc-list-stack-item:has(> .gc-list-zone-inset):not(.gc-list-stack-item--roster) > .gc-interactive-row:first-child,
.gc-list-section-shell.gc-list-section-shell--bordered.gc-list-stack-item:has(> .gc-list-zone-inset) > .gc-interactive-row:first-child {
    padding: var(--gc-list-open-row-padding);
    border-radius: var(--gc-list-row-radius, var(--radius-12));
    background: transparent;
}

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

.gc-list-section-shell.gc-list-stack-item:has(> .gc-list-zone-inset):not(.gc-list-stack-item--roster) > .gc-interactive-row:first-child:is(:hover, :focus-within),

.gc-list-section-shell.gc-list-section-shell--bordered.gc-list-stack-item:has(> .gc-list-zone-inset) > .gc-interactive-row:first-child:is(:hover, :focus-within) {
    background: var(--gc-list-open-item-hover-bg);
}
}

.gc-list-section-shell.gc-list-stack-item:has(> .gc-list-zone-inset):not(.gc-list-stack-item--roster) > .gc-interactive-row:first-child:is( :focus-within),

.gc-list-section-shell.gc-list-section-shell--bordered.gc-list-stack-item:has(> .gc-list-zone-inset) > .gc-interactive-row:first-child:is( :focus-within) {
    background: var(--gc-list-open-item-hover-bg);
}

.gc-list-section-shell.gc-list-stack-item:has(> .gc-list-zone-inset):not(.gc-list-stack-item--roster) > .gc-list-zone-inset,
.gc-list-section-shell.gc-list-section-shell--bordered.gc-list-stack-item:has(> .gc-list-zone-inset) > .gc-list-zone-inset {
    margin: 0;
    padding: var(--gc-list-open-row-padding);
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    background: transparent;
    border-radius: 0;
}

/* ─── Boxed shell: пункты списка (Figma programm / user, 1124:15203) ──────── */
/* Корень пунктов — .gc-list-section-shell (может совпадать с gc-panel-content--list-open). */
/* Rest/hover: --gc-list-open-item-bg / --gc-list-open-item-hover-bg. Gap: --gc-list-section-shell-gap. */

/* Boxed shell: icon-frame не меняется на hover строки — rest sunken/subtle, hover только у row */
.gc-list-section-shell {
    --gc-list-media-frame-bg-hover: var(--gc-list-media-frame-bg);
    --gc-list-media-frame-border-hover: var(--gc-list-media-frame-border, transparent);
}

/* Open-секции / месяцы с program-shell: media 44px, radius как programm на event show */
:is(.gc-open-list-section, .gc-events-index-programm) .gc-list-section-shell {
    --gc-list-media-size: var(--gc-list-media-size-base);
    --gc-list-row-radius: var(--radius-12);
    --gc-list-media-radius: var(--radius-16);
}

.gc-list-section-shell > .gc-list-stack-item:is(
    :has(> .gc-list-entry-detail--callout),
    :has(> .gc-list-zone-inset):not(.gc-list-stack-item--roster)
) {
    /* Figma list-item programm (1270:17774): gap между шапкой и callout / poll — stack-item rhythm */
    gap: var(--gc-list-stack-item-gap);
    padding: var(--gc-list-open-row-padding);
    border-radius: var(--gc-list-row-radius, var(--radius-16));
    box-sizing: border-box;
    transition: background var(--transition-fast);
    background: var(--gc-list-open-item-bg);
    --gc-list-item-hover-bg: var(--gc-list-open-item-hover-bg);
}

/* Ростер / tree-block в boxed shell */
.gc-list-section-shell .event-participant-card.profile-trigger,
.gc-list-section-shell .gc-open-list-tree-block {
    background: var(--gc-list-open-item-bg);
    border-radius: var(--gc-list-row-radius, var(--radius-16));
    box-sizing: border-box;
    transition: background var(--transition-fast);
    --gc-list-item-hover-bg: var(--gc-list-open-item-hover-bg);
}

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

.gc-list-section-shell .event-participant-card.profile-trigger:is(:hover, :focus-within),

.gc-list-section-shell .gc-open-list-tree-block:is(:hover, :focus-within) {
    background: var(--gc-list-open-item-hover-bg);
}
}

.gc-list-section-shell .event-participant-card.profile-trigger:is( :focus-within),

.gc-list-section-shell .gc-open-list-tree-block:is( :focus-within) {
    background: var(--gc-list-open-item-hover-bg);
}

.gc-list-section-shell .event-participant-card.profile-trigger:has(> .gc-list-tree),
.gc-list-section-shell .gc-open-list-tree-block:has(> .gc-list-tree) {
    padding: 0;
}

.gc-list-section-shell .gc-list-stack-item--roster.event-participant-card {
    gap: var(--space-product-2);
    padding: 0;
}

.gc-list-section-shell .gc-open-list-tree-block__header {
    padding-inline: var(--gc-open-list-tree-row-padding);
    padding-top: var(--gc-open-list-tree-row-padding);
    padding-bottom: var(--gc-open-list-tree-row-padding);
}

.gc-list-section-shell .gc-open-list-tree-block__header:has(+ .gc-list-tree) {
    padding-bottom: 0;
}

.gc-list-section-shell .gc-open-list-tree-block:has(> .gc-list-tree) > .gc-list-tree {
    --gc-list-tree-line-offset: var(--gc-open-list-tree-row-padding);
}

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

.gc-list-section-shell :is(a.gc-interactive-row, .gc-interactive-row.interactive):not(.gc-open-list-tree-block__header):is(:hover, :focus-within),

.gc-list-section-shell > .gc-list-stack-item.event-show-item--exercise > .gc-interactive-row:is(:hover, :focus-within),

.gc-list-section-shell > .gc-list-stack-item:has(> .gc-list-entry-detail--callout) > .gc-interactive-row:first-child:is(:hover, :focus-within),

.gc-list-section-shell > .gc-list-stack-item:has(> .gc-list-zone-inset):not(.gc-list-stack-item--roster) > .gc-interactive-row:first-child:is(:hover, :focus-within),

.gc-list-section-shell.gc-list-stack-item:has(> .gc-list-zone-inset) > .gc-interactive-row:first-child:is(:hover, :focus-within) {
    background: var(--gc-list-open-item-hover-bg);
}
}

.gc-list-section-shell :is(a.gc-interactive-row, .gc-interactive-row.interactive):not(.gc-open-list-tree-block__header):is( :focus-within),

.gc-list-section-shell > .gc-list-stack-item.event-show-item--exercise > .gc-interactive-row:is( :focus-within),

.gc-list-section-shell > .gc-list-stack-item:has(> .gc-list-entry-detail--callout) > .gc-interactive-row:first-child:is( :focus-within),

.gc-list-section-shell > .gc-list-stack-item:has(> .gc-list-zone-inset):not(.gc-list-stack-item--roster) > .gc-interactive-row:first-child:is( :focus-within),

.gc-list-section-shell.gc-list-stack-item:has(> .gc-list-zone-inset) > .gc-interactive-row:first-child:is( :focus-within) {
    background: var(--gc-list-open-item-hover-bg);
}

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

.gc-list-section-shell > .gc-list-stack-item:has(> .gc-list-entry-detail--callout) > .gc-interactive-row:first-child:is(:hover, :focus-within),

.gc-list-section-shell > .gc-list-stack-item:has(> .gc-list-zone-inset):not(.gc-list-stack-item--roster) > .gc-interactive-row:first-child:is(:hover, :focus-within) {
    border-radius: var(--gc-list-row-radius, var(--radius-12));
}
}

.gc-list-section-shell > .gc-list-stack-item:has(> .gc-list-entry-detail--callout) > .gc-interactive-row:first-child:is( :focus-within),

.gc-list-section-shell > .gc-list-stack-item:has(> .gc-list-zone-inset):not(.gc-list-stack-item--roster) > .gc-interactive-row:first-child:is( :focus-within) {
    border-radius: var(--gc-list-row-radius, var(--radius-12));
}

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

[data-theme="light"] .gc-list-section-shell :is(a.gc-interactive-row, .gc-interactive-row.interactive):hover .gc-badge-secondary,

[data-theme="light"] .gc-list-section-shell > .gc-list-stack-item.event-show-item--exercise > .gc-interactive-row:hover .gc-badge-secondary {
    background: var(--gc-list-open-item-hover-bg);
    color: var(--text-secondary);
    border-color: var(--border-subtle);
}
}

@media (prefers-color-scheme: light) {
    @media (min-width: 1280px) and (hover: hover) and (pointer: fine) {
    :root:not([data-theme]) .gc-list-section-shell :is(a.gc-interactive-row, .gc-interactive-row.interactive):hover .gc-badge-secondary,

    :root:not([data-theme]) .gc-list-section-shell > .gc-list-stack-item.event-show-item--exercise > .gc-interactive-row:hover .gc-badge-secondary {
        background: var(--gc-list-open-item-hover-bg);
        color: var(--text-secondary);
        border-color: var(--border-subtle);
    }
    }
}

/* Транспорт: gap только между карточками машин (tree-block); пул «ищут / без» — flush как roster */
.gc-list-section-shell .event-participants-transport-pane > .gc-stack-sm,
.event-participants-side-panel__roster .event-participants-transport-pane > .gc-stack-sm {
    gap: 0;
}

.gc-list-section-shell .event-participants-transport-pane > .gc-stack-sm > .gc-open-list-tree-block + .gc-open-list-tree-block,
.gc-list-section-shell .event-participants-transport-pane > .gc-stack-sm > .gc-open-list-tree-block + .gc-list-group-header,
.event-participants-side-panel__roster .event-participants-transport-pane > .gc-stack-sm > .gc-open-list-tree-block + .gc-open-list-tree-block,
.event-participants-side-panel__roster .event-participants-transport-pane > .gc-stack-sm > .gc-open-list-tree-block + .gc-list-group-header {
    margin-top: var(--space-2);
}

/* Пул: заголовок категории → строки; между «Ищут» и «Без транспорта» */
.gc-list-section-shell .event-participants-transport-pane > .gc-stack-sm > .gc-list-group-header,
.event-participants-side-panel__roster .event-participants-transport-pane > .gc-stack-sm > .gc-list-group-header {
    padding-bottom: var(--space-2);
}

.gc-list-section-shell .event-participants-transport-pane > .gc-stack-sm > .gc-list-group-header:not(:first-child),
.event-participants-side-panel__roster .event-participants-transport-pane > .gc-stack-sm > .gc-list-group-header:not(:first-child) {
    margin-top: var(--space-2);
}

/* Оружие: gc-list-shell-weapon — прямой пункт shell (tab-pane display:contents), как roster-карточка */
.gc-list-section-shell .event-participants-weapons-pane .gc-list-shell-weapon,
.event-participants-side-panel__roster .event-participants-weapons-pane .gc-list-shell-weapon {
    background: var(--gc-list-open-item-bg);
    border-radius: var(--gc-list-row-radius, var(--radius-16));
    box-sizing: border-box;
    transition: background var(--transition-fast);
}

.gc-list-section-shell > .gc-list-stack-item:is(
    :has(> .gc-list-entry-detail--callout),
    :has(> .gc-list-zone-inset):not(.gc-list-stack-item--roster)
) > .gc-interactive-row:first-child {
    padding: 0;
    border-radius: 0;
    background: transparent;
}

.gc-list-section-shell .gc-list-stack-item--roster.event-participant-card > .gc-interactive-row:first-child {
    padding: var(--gc-list-open-row-padding);
    border-radius: 0;
    background: transparent;
}

/* Упражнение + попытки: контейнер без padding, каждая строка — programm-карточка */
.gc-list-section-shell > .gc-list-stack-item.event-show-item--exercise {
    gap: var(--gc-list-section-shell-gap);
    padding: 0;
    border-radius: 0;
    background: transparent;
}

.gc-list-section-shell > .gc-list-stack-item.event-show-item--exercise > .gc-interactive-row {
    padding: var(--gc-list-open-row-padding);
    border-radius: var(--gc-list-row-radius, var(--radius-16));
    box-sizing: border-box;
    background: var(--gc-list-open-item-bg);
    transition: background var(--transition-fast);
}

/*
 * Framed flush rows — после roster/exercise shorthand в этом файле.
 * Y = --gc-open-list-section-row-padding-y (space/3); X / края = chrome inset (space/3).
 */
.gc-open-list-section--framed .gc-list-section-shell--flush > .gc-list-stack-item > :is(a.gc-interactive-row, .gc-interactive-row),
.gc-open-list-section--framed .gc-list-section-shell--flush > .gc-list-stack-item--roster > .gc-interactive-row,
.gc-open-list-section--framed .gc-list-section-shell--flush > .gc-list-stack-item--roster.event-participant-card > .gc-interactive-row:first-child,
.gc-open-list-section--framed .gc-list-section-shell--flush > .gc-list-stack-item.event-show-item--exercise > .gc-interactive-row {
    padding: var(--gc-open-list-section-row-padding-y, var(--space-3)) var(--gc-open-list-section-inset, var(--space-3));
    box-sizing: border-box;
    border-radius: 0;
}

/*
 * Group titles in framed flush: 12 X as rows/chrome.
 * Top: row-padding-y (same as first rows after chrome) — 0 glued the title to the parent edge.
 * Bottom: 0 — extra Y here stacked with .gc-stack-sm gap and row padding-top.
 * Search group titles: inset как у строк, секция результатов без своего padding-inline.
 */
.gc-open-list-section--framed .gc-list-section-shell--flush .gc-list-group-header {
    padding-top: var(--gc-open-list-section-row-padding-y, var(--space-3));
    padding-inline: var(--gc-open-list-section-inset, var(--space-3));
    padding-bottom: 0;
    box-sizing: border-box;
}

.gc-open-list-section--framed .gc-list-section-shell--flush .event-participants-search-group > .gc-list-group-header {
    padding-inline: var(--gc-open-list-section-inset, var(--space-3));
    padding-top: 0;
}

/* Subsequent transport titles: margin-top в transport-pane; padding-top не дублировать framed inset */
.gc-open-list-section--framed .gc-list-section-shell--flush .event-participants-transport-pane .gc-stack-sm > .gc-list-group-header:not(:first-child) {
    padding-top: 0;
}

/* Пул транспорта: framed flush сбрасывает padding-bottom у header — вернуть ритм «заголовок → строки» */
.gc-open-list-section--framed .gc-list-section-shell--flush .event-participants-transport-pane .gc-stack-sm > .gc-list-group-header {
    padding-bottom: var(--space-2);
}

.gc-open-list-section--framed .gc-list-section-shell--flush > .gc-list-stack-item:first-child > :is(a.gc-interactive-row, .gc-interactive-row) {
    padding-top: var(--gc-open-list-section-inset, var(--space-3));
}

/* После линии header (framed inside, без tabs) — row-padding-y, не второй inset */
.gc-open-list-section--framed:not(.gc-open-list-section--header-above) > .gc-panel-header + .gc-list-section-shell--flush > .gc-list-stack-item:first-child > :is(a.gc-interactive-row, .gc-interactive-row),
.gc-open-list-section--framed:not(.gc-open-list-section--header-above) > .gc-open-list-section-chrome + .gc-list-section-shell--flush > .gc-list-stack-item:first-child > :is(a.gc-interactive-row, .gc-interactive-row) {
    padding-top: var(--gc-open-list-section-row-padding-y, var(--space-3));
}

.gc-open-list-section--framed .gc-list-section-shell--flush > .gc-list-section-shell-subheader + .gc-list-stack-item > :is(a.gc-interactive-row, .gc-interactive-row) {
    padding-top: var(--gc-open-list-section-row-padding-y, var(--space-3));
}

.gc-open-list-section--framed .gc-list-section-shell--flush > .gc-list-stack-item:last-child > :is(a.gc-interactive-row, .gc-interactive-row, button.gc-interactive-row) {
    padding-bottom: var(--gc-open-list-section-inset, var(--space-3));
}

/* Roster + inset: нижний inset на weapon-grid, не на строке участника */
.gc-open-list-section--framed .gc-list-section-shell--flush > .gc-list-stack-item--roster:has(> .gc-list-zone-inset) > :is(a.gc-interactive-row, .gc-interactive-row, button.gc-interactive-row) {
    padding-bottom: var(--gc-open-list-section-row-padding-y, var(--space-3));
}

.gc-open-list-section--framed .gc-list-section-shell--flush > .gc-list-stack-item--roster:has(> .gc-list-zone-inset):last-child > :is(a.gc-interactive-row, .gc-interactive-row, button.gc-interactive-row) {
    padding-bottom: var(--gc-open-list-section-row-padding-y, var(--space-3));
}

.gc-open-list-section--framed .event-roster-weapon-cards .loadout-weapon-grid {
    padding-inline: var(--gc-open-list-section-inset, var(--space-3));
    padding-bottom: var(--gc-open-list-section-inset, var(--space-3));
}

/* Перед footer-линией — inset (12), как pad-bottom у header; не row-y */
.gc-open-list-section--framed .gc-list-section-shell--flush > .gc-list-stack-item:has(+ :is(
    .event-participants-add-section,
    .event-show-hero-stats
)) > :is(a.gc-interactive-row, .gc-interactive-row) {
    padding-bottom: var(--gc-open-list-section-inset, var(--space-3));
}

/* Footer chrome — inset (12) для framed flush и любого open-section shell */
.gc-open-list-section .gc-list-section-shell > .event-show-hero-stats {
    padding: var(--gc-open-list-section-inset, var(--space-3));
    box-sizing: border-box;
}

/* Add: pad только tabs+инпут; результаты — карточки на ширину shell */
.gc-open-list-section .gc-list-section-shell > .event-participants-add-section {
    --gc-list-row-radius: var(--radius-12);
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    padding: 0;
    box-sizing: border-box;
}

.event-participants-add-section > .event-participants-add-stack {
    padding: var(--gc-open-list-section-inset, var(--space-3));
    box-sizing: border-box;
}

.gc-open-list-section--framed .gc-list-section-shell--flush > :is(
    .event-participants-add-section,
    .event-show-hero-stats
) {
    border-radius: 0;
    border-top: 1px solid var(--border-subtle);
}

.gc-open-list-section:not(.gc-open-list-section--framed) > .gc-list-section-shell:not(.gc-list-section-shell--flush) > :is(
    .event-participants-add-section,
    .event-show-hero-stats
) {
    /* Top of list = shell padding. Flex gap would leave a thinner slit above the footer. */
    margin-top: calc(var(--gc-list-section-shell-padding) - var(--gc-list-section-shell-gap));
    margin-inline: calc(-1 * var(--gc-list-section-shell-padding));
    margin-bottom: calc(-1 * var(--gc-list-section-shell-padding));
    width: auto;
    align-self: stretch;
    border-top: 1px solid var(--border-subtle);
    border-radius: 0;
}

/* Одиночные строки и карточки — прямые дети shell */
.gc-list-section-shell > :is(
    .gc-list-item,
    .gc-list-item-add,
    .gc-list-item-action,
    .gc-interactive-row
) {
    --gc-list-item-padding-y: var(--gc-list-open-row-padding);
    --gc-list-item-padding-x: var(--gc-list-open-row-padding);
    padding: var(--gc-list-open-row-padding);
    border-radius: var(--gc-list-row-radius, var(--radius-12));
    box-sizing: border-box;
}

.gc-list-section-shell .gc-list-stack-item > .gc-list-zone-inset {
    padding: 0;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.gc-list-section-shell > .gc-list-zone-divider {
    display: none;
}

/*
 * Flush list body — только строки списка; chrome (tabs, add, empty, stats) вне scope.
 */
:is(
    .gc-list-section-shell--flush,
    .event-show-page-layout .gc-open-list-section--framed .gc-list-section-shell:is(.event-show-list-shell, .event-program-panel-content),
    .event-show-zone--panel-description .gc-open-list-section--framed > .gc-list-section-shell
) {
    padding: 0;
    --gc-list-section-shell-padding: 0;
    gap: 0;
    --gc-list-section-shell-gap: 0;
    --gc-list-row-radius: 0;
}

/*
 * Flush: квадратные только прямые строки списка.
 * Потомки (поиск в add-section, callout/media) сохраняют свой radius.
 */
:is(
    .gc-list-section-shell--flush,
    .event-show-page-layout .gc-open-list-section--framed .gc-list-section-shell:is(.event-show-list-shell, .event-program-panel-content),
    .event-show-zone--panel-description .gc-open-list-section--framed > .gc-list-section-shell
) > :is(
    .gc-list-stack-item,
    .gc-list-stack-item--roster,
    .event-participant-card,
    .gc-list-shell-weapon
) {
    border-radius: 0;
}

:is(
    .gc-list-section-shell--flush,
    .event-show-page-layout .gc-open-list-section--framed .gc-list-section-shell:is(.event-show-list-shell, .event-program-panel-content),
    .event-show-zone--panel-description .gc-open-list-section--framed > .gc-list-section-shell
) > .gc-list-stack-item.event-show-item--exercise > .gc-interactive-row,
:is(
    .gc-list-section-shell--flush,
    .event-show-page-layout .gc-open-list-section--framed .gc-list-section-shell:is(.event-show-list-shell, .event-program-panel-content),
    .event-show-zone--panel-description .gc-open-list-section--framed > .gc-list-section-shell
) > .gc-list-stack-item:is(
    :has(> .gc-list-entry-detail--callout),
    :has(> .gc-list-zone-inset)
) > .gc-interactive-row:first-child {
    border-radius: 0;
}

/* Legacy: open-зона без shell на том же узле (вложенный shell покрыт правилами выше) */
.gc-panel-content--list-open:not(.gc-list-section-shell) .gc-list-stack-item:is(
    :has(> .gc-list-entry-detail--callout),
    :has(> .gc-list-zone-inset)
) {
    gap: var(--gc-list-stack-item-gap);
    padding: var(--gc-list-open-row-padding);
    border-radius: var(--gc-list-row-radius, var(--radius-16));
    box-sizing: border-box;
    transition: background var(--transition-fast);
}

.gc-panel-content--list-open:not(.gc-list-section-shell).gc-panel-content--list-cards .gc-list-stack-item:is(
    :has(> .gc-list-entry-detail--callout),
    :has(> .gc-list-zone-inset)
) > .gc-interactive-row:first-child {
    padding: 0;
    border-radius: 0;
    background: transparent;
}

.gc-panel-content--list-open:not(.gc-list-section-shell).gc-panel-content--list-cards > :is(
    .gc-list-item,
    .gc-list-item-add,
    .gc-list-item-action,
    .gc-interactive-row,
    .gc-list-stack-item:not(:has(> .gc-list-entry-detail--callout)):not(:has(> .gc-list-zone-inset)):not(.gc-list-stack-item--roster):not(.event-show-item--exercise) > .gc-interactive-row
) {
    --gc-list-item-padding-y: var(--gc-list-open-row-padding);
    --gc-list-item-padding-x: var(--gc-list-open-row-padding);
    padding: var(--gc-list-open-row-padding);
    border-radius: var(--gc-list-row-radius, var(--radius-12));
}

.gc-panel-content--list-open:not(.gc-list-section-shell) .gc-list-stack-item > .gc-list-zone-inset {
    padding: 0;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.gc-panel-content--list-open:not(.gc-list-section-shell) > .gc-list-zone-divider {
    display: none;
}

/* Подпись под строкой списка / карточкой (UI Kit) */
.gc-list-entry-detail,
.subscriptions-benefit-feed-entry-detail {
    margin: var(--space-1) 0 0;
    padding: var(--space-2);
    border-radius: var(--radius-8);
    background: var(--surface-control);
    font-size: var(--font-size-13);
    font-weight: 400;
    color: var(--text-primary);
    line-height: var(--line-height-list-description);
    align-self: flex-start;
    width: fit-content;
    max-width: 100%;
    box-sizing: border-box;
}

/*
 * Tier S micro depth — list media (icon-frame, avatar fallback).
 * CARD_GLOW.md § List micro; LIST_STACK.md § Media glow.
 * Icon-frame: borderless — top specular + tight inner depth (pill-mark сила, без 1px border).
 * Date tile (gc-list-media-date): border-subtle, без glow — канон карточки ивента.
 * Avatar fallback: tint-aware border (--avatar-tint-chroma).
 * Opt-out: .gc-list-media-glow-off. Исключение: .gc-card-glow-shell--pill.
 * Также: .channel-pinned-switcher (dock закрепа ленты канала),
 * .catalog-nav-item (context rail: «Все товарищи», upcoming, communities fallback).
 */
:is(
    .gc-list-item:not(.gc-list-media-glow-off),
    .gc-interactive-row:not(.gc-list-media-glow-off),
    a.gc-interactive-row:not(.gc-list-media-glow-off),
    .channel-pinned-switcher:not(.gc-list-media-glow-off),
    .catalog-nav-item:not(.gc-list-media-glow-off)
) :is(
    .gc-list-media-icon,
    .gc-list-avatar-icon
):not(.gc-list-avatar-fallback[class*="gc-avatar-tint-"]):not(.gc-card-glow-shell--pill):not(.gc-list-media-glow-off) {
    --gc-list-icon-glow-inset-top: color-mix(in srgb, var(--fill-emphasis-inverse) 16%, transparent);
    --gc-list-icon-glow-depth: color-mix(in srgb, var(--fill-emphasis) 7%, transparent);
    --gc-list-icon-glow-inset-top-hover: color-mix(in srgb, var(--fill-emphasis-inverse) 22%, transparent);
    --gc-list-icon-glow-depth-hover: color-mix(in srgb, var(--fill-emphasis) 10%, transparent);
    border: none;
    box-shadow:
        inset 0 1px 0 var(--gc-list-icon-glow-inset-top),
        inset 0 2px 4px var(--gc-list-icon-glow-depth);
    transition:
        box-shadow 85ms var(--ease-in),
        background var(--transition-fast),
        color var(--transition-fast);
}

:is(
    .gc-list-item:not(.gc-list-media-glow-off),
    .gc-interactive-row:not(.gc-list-media-glow-off),
    a.gc-interactive-row:not(.gc-list-media-glow-off),
    .catalog-nav-item:not(.gc-list-media-glow-off)
) :is(
    .gc-list-avatar-fallback[class*="gc-avatar-tint-"],
    .gc-list-avatar.gc-list-avatar-placeholder[class*="gc-avatar-tint-"],
    .sidebar-avatar.sidebar-avatar-placeholder[class*="gc-avatar-tint-"]
):not(.gc-list-media-glow-off) {
    --gc-list-avatar-glow-border: color-mix(in srgb, var(--avatar-tint-chroma) 44%, transparent);
    --gc-list-avatar-glow-inset: color-mix(in srgb, var(--avatar-tint-chroma) 26%, transparent);
    --gc-list-avatar-glow-border-hover: color-mix(in srgb, var(--avatar-tint-chroma) 58%, transparent);
    --gc-list-avatar-glow-inset-hover: color-mix(in srgb, var(--avatar-tint-chroma) 34%, transparent);
    --gc-list-avatar-glow-inset-spread: color-mix(in srgb, var(--avatar-tint-chroma) 14%, transparent);
    border: 1px solid var(--gc-list-avatar-glow-border);
    box-shadow: inset 0 1px 0 var(--gc-list-avatar-glow-inset);
    transition:
        border-color 85ms var(--ease-in),
        box-shadow 85ms var(--ease-in),
        background var(--transition-fast),
        color var(--transition-fast);
}

:is(
    .gc-list-item:not(.gc-list-media-glow-off),
    .gc-interactive-row:not(.gc-list-media-glow-off),
    a.gc-interactive-row:not(.gc-list-media-glow-off),
    .catalog-nav-item:not(.gc-list-media-glow-off)
) :is(
    .gc-list-avatar-fallback:not([class*="gc-avatar-tint-"]),
    .gc-list-avatar.gc-list-avatar-placeholder:not([class*="gc-avatar-tint-"]),
    .sidebar-avatar.sidebar-avatar-placeholder:not([class*="gc-avatar-tint-"])
):not(.gc-list-media-glow-off) {
    --gc-list-avatar-glow-border: color-mix(in srgb, var(--fill-emphasis-inverse) 18%, transparent);
    --gc-list-avatar-glow-inset: color-mix(in srgb, var(--fill-emphasis-inverse) 12%, transparent);
    --gc-list-avatar-glow-border-hover: color-mix(in srgb, var(--fill-emphasis-inverse) 26%, transparent);
    --gc-list-avatar-glow-inset-hover: color-mix(in srgb, var(--fill-emphasis-inverse) 16%, transparent);
    --gc-list-avatar-glow-inset-spread: color-mix(in srgb, var(--fill-emphasis-inverse) 6%, transparent);
    border: 1px solid var(--gc-list-avatar-glow-border);
    box-shadow: inset 0 1px 0 var(--gc-list-avatar-glow-inset);
    transition:
        border-color 85ms var(--ease-in),
        box-shadow 85ms var(--ease-in),
        background var(--transition-fast),
        color var(--transition-fast);
}

html[data-theme='light'] :is(
    .gc-list-item:not(.gc-list-media-glow-off),
    .gc-interactive-row:not(.gc-list-media-glow-off),
    a.gc-interactive-row:not(.gc-list-media-glow-off),
    .channel-pinned-switcher:not(.gc-list-media-glow-off),
    .catalog-nav-item:not(.gc-list-media-glow-off)
) :is(
    .gc-list-media-icon,
    .gc-list-avatar-icon
):not(.gc-list-avatar-fallback[class*="gc-avatar-tint-"]):not(.gc-card-glow-shell--pill):not(.gc-list-media-glow-off) {
    --gc-list-icon-glow-inset-top: color-mix(in srgb, var(--fill-emphasis-inverse) 26%, transparent);
    --gc-list-icon-glow-depth: color-mix(in srgb, var(--fill-emphasis) 5%, transparent);
    --gc-list-icon-glow-inset-top-hover: color-mix(in srgb, var(--fill-emphasis-inverse) 34%, transparent);
    --gc-list-icon-glow-depth-hover: color-mix(in srgb, var(--fill-emphasis) 8%, transparent);
}

html[data-theme='light'] :is(
    .gc-list-item:not(.gc-list-media-glow-off),
    .gc-interactive-row:not(.gc-list-media-glow-off),
    a.gc-interactive-row:not(.gc-list-media-glow-off),
    .catalog-nav-item:not(.gc-list-media-glow-off)
) :is(
    .gc-list-avatar-fallback:not([class*="gc-avatar-tint-"]),
    .gc-list-avatar.gc-list-avatar-placeholder:not([class*="gc-avatar-tint-"]),
    .sidebar-avatar.sidebar-avatar-placeholder:not([class*="gc-avatar-tint-"])
):not(.gc-list-media-glow-off) {
    --gc-list-avatar-glow-border: color-mix(in srgb, var(--fill-emphasis) 14%, transparent);
    --gc-list-avatar-glow-inset: color-mix(in srgb, var(--fill-emphasis-inverse) 28%, transparent);
    --gc-list-avatar-glow-border-hover: color-mix(in srgb, var(--fill-emphasis) 22%, transparent);
    --gc-list-avatar-glow-inset-hover: color-mix(in srgb, var(--fill-emphasis-inverse) 36%, transparent);
}

@media (hover: hover) and (pointer: fine) {
    @media (min-width: 1280px) and (hover: hover) and (pointer: fine) {
    :is(a, div).gc-list-item-interactive:is(:hover, :focus-within) :is(
        .gc-list-media-icon,
        .gc-list-avatar-icon
    ):not(.gc-list-avatar-fallback[class*="gc-avatar-tint-"]):not(.gc-card-glow-shell--pill):not(.gc-list-media-glow-off),

    .gc-list-item.interactive:is(:hover, :focus-within) :is(
        .gc-list-media-icon,
        .gc-list-avatar-icon
    ):not(.gc-list-avatar-fallback[class*="gc-avatar-tint-"]):not(.gc-card-glow-shell--pill):not(.gc-list-media-glow-off),

    .gc-interactive-row.interactive:is(:hover, :focus-within) :is(
        .gc-list-media-icon,
        .gc-list-avatar-icon
    ):not(.gc-list-avatar-fallback[class*="gc-avatar-tint-"]):not(.gc-card-glow-shell--pill):not(.gc-list-media-glow-off),

    a.gc-interactive-row:is(:hover, :focus-within) :is(
        .gc-list-media-icon,
        .gc-list-avatar-icon
    ):not(.gc-list-avatar-fallback[class*="gc-avatar-tint-"]):not(.gc-card-glow-shell--pill):not(.gc-list-media-glow-off),

    .catalog-nav-item:not(.gc-list-media-glow-off):is(:hover, :focus-within) :is(
        .gc-list-media-icon,
        .gc-list-avatar-icon
    ):not(.gc-list-avatar-fallback[class*="gc-avatar-tint-"]):not(.gc-card-glow-shell--pill):not(.gc-list-media-glow-off) {
        box-shadow:
            inset 0 1px 0 var(--gc-list-icon-glow-inset-top-hover),
            inset 0 2px 6px var(--gc-list-icon-glow-depth-hover);
    }
    }
    :is(a, div).gc-list-item-interactive:is( :focus-within) :is(
        .gc-list-media-icon,
        .gc-list-avatar-icon
    ):not(.gc-list-avatar-fallback[class*="gc-avatar-tint-"]):not(.gc-card-glow-shell--pill):not(.gc-list-media-glow-off),

    .gc-list-item.interactive:is( :focus-within) :is(
        .gc-list-media-icon,
        .gc-list-avatar-icon
    ):not(.gc-list-avatar-fallback[class*="gc-avatar-tint-"]):not(.gc-card-glow-shell--pill):not(.gc-list-media-glow-off),

    .gc-interactive-row.interactive:is( :focus-within) :is(
        .gc-list-media-icon,
        .gc-list-avatar-icon
    ):not(.gc-list-avatar-fallback[class*="gc-avatar-tint-"]):not(.gc-card-glow-shell--pill):not(.gc-list-media-glow-off),

    a.gc-interactive-row:is( :focus-within) :is(
        .gc-list-media-icon,
        .gc-list-avatar-icon
    ):not(.gc-list-avatar-fallback[class*="gc-avatar-tint-"]):not(.gc-card-glow-shell--pill):not(.gc-list-media-glow-off),

    .catalog-nav-item:not(.gc-list-media-glow-off):is( :focus-within) :is(
        .gc-list-media-icon,
        .gc-list-avatar-icon
    ):not(.gc-list-avatar-fallback[class*="gc-avatar-tint-"]):not(.gc-card-glow-shell--pill):not(.gc-list-media-glow-off) {
        box-shadow:
            inset 0 1px 0 var(--gc-list-icon-glow-inset-top-hover),
            inset 0 2px 6px var(--gc-list-icon-glow-depth-hover);
    }

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

    html[data-theme='light'] :is(a, div).gc-list-item-interactive:is(:hover, :focus-within) :is(
        .gc-list-media-icon,
        .gc-list-avatar-icon
    ):not(.gc-list-avatar-fallback[class*="gc-avatar-tint-"]):not(.gc-card-glow-shell--pill):not(.gc-list-media-glow-off),

    html[data-theme='light'] .gc-list-item.interactive:is(:hover, :focus-within) :is(
        .gc-list-media-icon,
        .gc-list-avatar-icon
    ):not(.gc-list-avatar-fallback[class*="gc-avatar-tint-"]):not(.gc-card-glow-shell--pill):not(.gc-list-media-glow-off),

    html[data-theme='light'] .gc-interactive-row.interactive:is(:hover, :focus-within) :is(
        .gc-list-media-icon,
        .gc-list-avatar-icon
    ):not(.gc-list-avatar-fallback[class*="gc-avatar-tint-"]):not(.gc-card-glow-shell--pill):not(.gc-list-media-glow-off),

    html[data-theme='light'] a.gc-interactive-row:is(:hover, :focus-within) :is(
        .gc-list-media-icon,
        .gc-list-avatar-icon
    ):not(.gc-list-avatar-fallback[class*="gc-avatar-tint-"]):not(.gc-card-glow-shell--pill):not(.gc-list-media-glow-off),

    html[data-theme='light'] .catalog-nav-item:not(.gc-list-media-glow-off):is(:hover, :focus-within) :is(
        .gc-list-media-icon,
        .gc-list-avatar-icon
    ):not(.gc-list-avatar-fallback[class*="gc-avatar-tint-"]):not(.gc-card-glow-shell--pill):not(.gc-list-media-glow-off) {
        box-shadow:
            inset 0 1px 0 var(--gc-list-icon-glow-inset-top-hover),
            inset 0 2px 6px var(--gc-list-icon-glow-depth-hover);
    }
    }

    html[data-theme='light'] :is(a, div).gc-list-item-interactive:is( :focus-within) :is(
        .gc-list-media-icon,
        .gc-list-avatar-icon
    ):not(.gc-list-avatar-fallback[class*="gc-avatar-tint-"]):not(.gc-card-glow-shell--pill):not(.gc-list-media-glow-off),

    html[data-theme='light'] .gc-list-item.interactive:is( :focus-within) :is(
        .gc-list-media-icon,
        .gc-list-avatar-icon
    ):not(.gc-list-avatar-fallback[class*="gc-avatar-tint-"]):not(.gc-card-glow-shell--pill):not(.gc-list-media-glow-off),

    html[data-theme='light'] .gc-interactive-row.interactive:is( :focus-within) :is(
        .gc-list-media-icon,
        .gc-list-avatar-icon
    ):not(.gc-list-avatar-fallback[class*="gc-avatar-tint-"]):not(.gc-card-glow-shell--pill):not(.gc-list-media-glow-off),

    html[data-theme='light'] a.gc-interactive-row:is( :focus-within) :is(
        .gc-list-media-icon,
        .gc-list-avatar-icon
    ):not(.gc-list-avatar-fallback[class*="gc-avatar-tint-"]):not(.gc-card-glow-shell--pill):not(.gc-list-media-glow-off),

    html[data-theme='light'] .catalog-nav-item:not(.gc-list-media-glow-off):is( :focus-within) :is(
        .gc-list-media-icon,
        .gc-list-avatar-icon
    ):not(.gc-list-avatar-fallback[class*="gc-avatar-tint-"]):not(.gc-card-glow-shell--pill):not(.gc-list-media-glow-off) {
        box-shadow:
            inset 0 1px 0 var(--gc-list-icon-glow-inset-top-hover),
            inset 0 2px 6px var(--gc-list-icon-glow-depth-hover);
    }

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


    .gc-interactive-row.interactive:is(:hover, :focus-within) :is(
        .gc-list-avatar-fallback[class*="gc-avatar-tint-"],
        .gc-list-avatar.gc-list-avatar-placeholder[class*="gc-avatar-tint-"],
        .sidebar-avatar.sidebar-avatar-placeholder[class*="gc-avatar-tint-"],
        .gc-list-avatar-fallback:not([class*="gc-avatar-tint-"]),
        .gc-list-avatar.gc-list-avatar-placeholder:not([class*="gc-avatar-tint-"]),
        .sidebar-avatar.sidebar-avatar-placeholder:not([class*="gc-avatar-tint-"])
    ):not(.gc-list-media-glow-off),

    a.gc-interactive-row:is(:hover, :focus-within) :is(
        .gc-list-avatar-fallback[class*="gc-avatar-tint-"],
        .gc-list-avatar.gc-list-avatar-placeholder[class*="gc-avatar-tint-"],
        .sidebar-avatar.sidebar-avatar-placeholder[class*="gc-avatar-tint-"],
        .gc-list-avatar-fallback:not([class*="gc-avatar-tint-"]),
        .gc-list-avatar.gc-list-avatar-placeholder:not([class*="gc-avatar-tint-"]),
        .sidebar-avatar.sidebar-avatar-placeholder:not([class*="gc-avatar-tint-"])
    ):not(.gc-list-media-glow-off) {
        border-color: var(--gc-list-avatar-glow-border-hover);
        box-shadow:
            inset 0 1px 0 var(--gc-list-avatar-glow-inset-hover),
            inset 0 2px 10px var(--gc-list-avatar-glow-inset-spread);
    }
    }

    :is(a, div).gc-list-item-interactive:is(:hover, :focus-within) :is(
        .gc-list-avatar-fallback[class*="gc-avatar-tint-"],
        .gc-list-avatar.gc-list-avatar-placeholder[class*="gc-avatar-tint-"],
        .sidebar-avatar.sidebar-avatar-placeholder[class*="gc-avatar-tint-"],
        .gc-list-avatar-fallback:not([class*="gc-avatar-tint-"]),
        .gc-list-avatar.gc-list-avatar-placeholder:not([class*="gc-avatar-tint-"]),
        .sidebar-avatar.sidebar-avatar-placeholder:not([class*="gc-avatar-tint-"])
    ):not(.gc-list-media-glow-off),

    .gc-list-item.interactive:is(:hover, :focus-within) :is(
        .gc-list-avatar-fallback[class*="gc-avatar-tint-"],
        .gc-list-avatar.gc-list-avatar-placeholder[class*="gc-avatar-tint-"],
        .sidebar-avatar.sidebar-avatar-placeholder[class*="gc-avatar-tint-"],
        .gc-list-avatar-fallback:not([class*="gc-avatar-tint-"]),
        .gc-list-avatar.gc-list-avatar-placeholder:not([class*="gc-avatar-tint-"]),
        .sidebar-avatar.sidebar-avatar-placeholder:not([class*="gc-avatar-tint-"])
    ):not(.gc-list-media-glow-off),

    .gc-interactive-row.interactive:is( :focus-within) :is(
        .gc-list-avatar-fallback[class*="gc-avatar-tint-"],
        .gc-list-avatar.gc-list-avatar-placeholder[class*="gc-avatar-tint-"],
        .sidebar-avatar.sidebar-avatar-placeholder[class*="gc-avatar-tint-"],
        .gc-list-avatar-fallback:not([class*="gc-avatar-tint-"]),
        .gc-list-avatar.gc-list-avatar-placeholder:not([class*="gc-avatar-tint-"]),
        .sidebar-avatar.sidebar-avatar-placeholder:not([class*="gc-avatar-tint-"])
    ):not(.gc-list-media-glow-off),

    a.gc-interactive-row:is( :focus-within) :is(
        .gc-list-avatar-fallback[class*="gc-avatar-tint-"],
        .gc-list-avatar.gc-list-avatar-placeholder[class*="gc-avatar-tint-"],
        .sidebar-avatar.sidebar-avatar-placeholder[class*="gc-avatar-tint-"],
        .gc-list-avatar-fallback:not([class*="gc-avatar-tint-"]),
        .gc-list-avatar.gc-list-avatar-placeholder:not([class*="gc-avatar-tint-"]),
        .sidebar-avatar.sidebar-avatar-placeholder:not([class*="gc-avatar-tint-"])
    ):not(.gc-list-media-glow-off),

    .catalog-nav-item:not(.gc-list-media-glow-off):is(:hover, :focus-within) :is(
        .gc-list-avatar-fallback[class*="gc-avatar-tint-"],
        .gc-list-avatar.gc-list-avatar-placeholder[class*="gc-avatar-tint-"],
        .sidebar-avatar.sidebar-avatar-placeholder[class*="gc-avatar-tint-"],
        .gc-list-avatar-fallback:not([class*="gc-avatar-tint-"]),
        .gc-list-avatar.gc-list-avatar-placeholder:not([class*="gc-avatar-tint-"]),
        .sidebar-avatar.sidebar-avatar-placeholder:not([class*="gc-avatar-tint-"])
    ):not(.gc-list-media-glow-off) {
        border-color: var(--gc-list-avatar-glow-border-hover);
        box-shadow:
            inset 0 1px 0 var(--gc-list-avatar-glow-inset-hover),
            inset 0 2px 10px var(--gc-list-avatar-glow-inset-spread);
    }

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

    .channel-pinned-switcher:not(.gc-list-media-glow-off):is(:hover, :focus-visible) :is(
        .gc-list-media-icon,
        .gc-list-avatar-icon
    ):not(.gc-list-avatar-fallback[class*="gc-avatar-tint-"]):not(.gc-card-glow-shell--pill):not(.gc-list-media-glow-off) {
        box-shadow:
            inset 0 1px 0 var(--gc-list-icon-glow-inset-top-hover),
            inset 0 2px 6px var(--gc-list-icon-glow-depth-hover);
    }
    }

    .channel-pinned-switcher:not(.gc-list-media-glow-off):is( :focus-visible) :is(
        .gc-list-media-icon,
        .gc-list-avatar-icon
    ):not(.gc-list-avatar-fallback[class*="gc-avatar-tint-"]):not(.gc-card-glow-shell--pill):not(.gc-list-media-glow-off) {
        box-shadow:
            inset 0 1px 0 var(--gc-list-icon-glow-inset-top-hover),
            inset 0 2px 6px var(--gc-list-icon-glow-depth-hover);
    }
}

.gc-list-entry-detail--callout {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    margin: 0;
    padding: var(--gc-list-callout-padding);
    border-radius: var(--gc-list-callout-radius);
    background: var(--gc-list-callout-bg);
    align-self: flex-start;
    width: fit-content;
    max-width: 100%;
    box-sizing: border-box;
}

/* Callout в stack-item (note / poll): на всю ширину карточки + fill surface-subtle */
.gc-list-stack-item:has(> .gc-list-entry-detail--callout) > .gc-list-entry-detail--callout {
    align-self: stretch;
    width: auto;
    max-width: 100%;
    background-color: var(--gc-list-callout-bg);
}

.gc-list-section-shell > .gc-list-stack-item:has(> .gc-list-entry-detail--callout) > .gc-list-entry-detail--callout {
    background-color: var(--gc-list-callout-bg);
}

/* Медиа внутри callout */
.gc-list-entry-media {
    width: 100%;
    max-width: 100%;
}

.gc-list-entry-media__img,
.gc-list-entry-detail--callout .gc-post-tiptap img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    border-radius: var(--radius-16);
}

/* Описание в open-shell (мероприятие и др.): ширина по тексту, не на всю колонку */
.gc-list-section-shell > .gc-list-zone-inset.event-description-text {
    width: fit-content;
    max-width: 100%;
    align-self: flex-start;
}

.gc-list-item-body > .gc-list-entry-detail,
.gc-list-item-body > .subscriptions-benefit-feed-entry-detail,
.gc-challenge-card > .gc-list-entry-detail {
    margin-top: 0;
}

/* =================================
   Адаптив: hover строк только на :active
   Ниже lg / touch hover «залипает» при скролле и после тапа.
   Специфичность ≥ десктопного :is(...):is(:hover) (lists.css выше).
   html.gc-touch-scrolling снимает :active, пока жест стал скроллом
   (gc-touch-scroll-guard.js).
   ================================= */
@media (max-width: 991.98px), (hover: none), (pointer: coarse) {
    :is(.gc-list-item, .gc-list-shell-interactive, .gc-list-group-card-interactive) {
        --gc-list-item-hover-bg: transparent;
        --gc-list-shell-hover-bg: transparent;
    }

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

    :is(a.gc-interactive-row, .gc-interactive-row.interactive):not(.gc-open-list-tree-block__header):is(:hover, :focus-visible),

    .gc-interactive-row.interactive:has(> .gc-list-item-trigger):not(.gc-open-list-tree-block__header):is(:hover, :focus-within),

    .gc-list-shell-interactive:hover,

    .gc-list-group-card-interactive:hover,

    a.gc-interactive-row:hover,

    .gc-interactive-row.interactive:hover,

    .event-participant-card:hover,

    .gc-list-section-shell .event-participant-card.profile-trigger:hover,

    .gc-list-section-shell > .gc-list-stack-item:has(> .gc-list-entry-detail--callout) > .gc-interactive-row:first-child:is(:hover, :focus-within),

    .gc-list-section-shell > .gc-list-stack-item:has(> .gc-list-zone-inset):not(.gc-list-stack-item--roster) > .gc-interactive-row:first-child:is(:hover, :focus-within),

    .gc-list-section-shell.gc-list-stack-item:has(> .gc-list-zone-inset) > .gc-interactive-row:first-child:is(:hover, :focus-within),

    .gc-list-section-shell.gc-list-section-shell--bordered.gc-list-stack-item > .gc-interactive-row:first-child:is(:hover, :focus-within),

    .gc-list-section-shell :is(a.gc-interactive-row, .gc-interactive-row.interactive):hover,

    .gc-list-section-shell > .gc-list-stack-item.event-show-item--exercise > .gc-interactive-row:hover {
        background-color: transparent;
        background: transparent;
    }
    }

    :is(a.gc-interactive-row, .gc-interactive-row.interactive):not(.gc-open-list-tree-block__header):is( :focus-visible),

    .gc-interactive-row.interactive:has(> .gc-list-item-trigger):not(.gc-open-list-tree-block__header):is( :focus-within),

    .gc-list-item.interactive:hover,

    .gc-list-item-interactive:hover,

    .gc-list-item.profile-trigger:hover,

    a.gc-interactive-row:focus-visible,

    .gc-interactive-row.interactive:focus-visible,

    .gc-list-section-shell > .gc-list-stack-item:has(> .gc-list-entry-detail--callout) > .gc-interactive-row:first-child:is( :focus-within),

    .gc-list-section-shell > .gc-list-stack-item:has(> .gc-list-zone-inset):not(.gc-list-stack-item--roster) > .gc-interactive-row:first-child:is( :focus-within),

    .gc-list-section-shell.gc-list-stack-item:has(> .gc-list-zone-inset) > .gc-interactive-row:first-child:is( :focus-within),

    .gc-list-section-shell.gc-list-section-shell--bordered.gc-list-stack-item > .gc-interactive-row:first-child:is( :focus-within) {
        background-color: transparent;
        background: transparent;
    }

    :is(a.gc-interactive-row, .gc-interactive-row.interactive):not(.gc-open-list-tree-block__header):active,
    .gc-interactive-row.interactive:has(> .gc-list-item-trigger):not(.gc-open-list-tree-block__header):active,
    .gc-list-item.interactive:active,
    .gc-list-item-interactive:active,
    a.gc-interactive-row:active,
    .gc-interactive-row.interactive:active {
        background: var(--gc-interactive-hover-bg);
    }

    html.gc-touch-scrolling :is(a.gc-interactive-row, .gc-interactive-row.interactive):not(.gc-open-list-tree-block__header):active,
    html.gc-touch-scrolling .gc-interactive-row.interactive:has(> .gc-list-item-trigger):not(.gc-open-list-tree-block__header):active,
    html.gc-touch-scrolling .gc-list-item.interactive:active,
    html.gc-touch-scrolling .gc-list-item-interactive:active,
    html.gc-touch-scrolling a.gc-interactive-row:active,
    html.gc-touch-scrolling .gc-interactive-row.interactive:active {
        background: transparent;
        background-color: transparent;
    }

    .gc-list-section-shell > .gc-list-stack-item:is(
        :has(> .gc-list-entry-detail--callout),
        :has(> .gc-list-zone-inset):not(.gc-list-stack-item--roster)
    ),
    .gc-list-section-shell .event-participant-card.profile-trigger {
        --gc-list-item-hover-bg: transparent;
    }

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

    .gc-list-section-shell .event-participant-card.profile-trigger:hover {
        background: var(--gc-list-open-item-bg);
    }
    }

    .gc-list-section-shell .event-participant-card.profile-trigger:active {
        background: var(--gc-interactive-hover-bg);
    }

    html.gc-touch-scrolling .gc-list-section-shell .event-participant-card.profile-trigger:active {
        background: var(--gc-list-open-item-bg);
    }

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

    :is(a.gc-interactive-row, .gc-interactive-row):is(:hover, :focus-within),

    .event-participant-card:is(:hover, :focus-within),

    .gc-list-section-shell .event-participant-card.profile-trigger:is(:hover, :focus-within),

    .gc-open-list-tree-block:is(:hover, :focus-within),

    .sidebar-loadout-transport-stack:is(:hover, :focus-within),

    .gc-list-shell-interactive:is(:hover, :focus-within):has(.gc-list-tree),

    .gc-list-group-card-interactive:is(:hover, :focus-within):has(.gc-list-tree) {
        --gc-list-media-frame-bg: var(--surface-subtle);
        --gc-list-media-frame-bg-hover: var(--surface-subtle);
        --gc-list-media-frame-border: var(--border-subtle);
        --gc-list-media-frame-border-hover: var(--border-subtle);
        --gc-btn-outline-border: var(--border-subtle);
        --gc-weapon-placeholder-border: var(--border-subtle);
    }
    }

    :is(a.gc-interactive-row, .gc-interactive-row):is( :focus-within),

    :is(.gc-list-item.interactive, .gc-list-item-interactive, .gc-list-item.profile-trigger):is(:hover, :focus-visible),

    .event-participant-card:is( :focus-within),

    .gc-list-section-shell .event-participant-card.profile-trigger:is( :focus-within),

    .gc-open-list-tree-block:is( :focus-within),

    .sidebar-loadout-transport-stack:is( :focus-within),

    .gc-list-shell-interactive:is( :focus-within):has(.gc-list-tree),

    .gc-list-group-card-interactive:is( :focus-within):has(.gc-list-tree) {
        --gc-list-media-frame-bg: var(--surface-subtle);
        --gc-list-media-frame-bg-hover: var(--surface-subtle);
        --gc-list-media-frame-border: var(--border-subtle);
        --gc-list-media-frame-border-hover: var(--border-subtle);
        --gc-btn-outline-border: var(--border-subtle);
        --gc-weapon-placeholder-border: var(--border-subtle);
    }

    :is(a.gc-interactive-row, .gc-interactive-row):active,
    :is(.gc-list-item.interactive, .gc-list-item-interactive):active {
        --gc-list-media-frame-bg: var(--gc-interactive-hover-bg);
        --gc-list-media-frame-bg-hover: var(--gc-interactive-hover-bg);
    }

    html.gc-touch-scrolling :is(a.gc-interactive-row, .gc-interactive-row):active,
    html.gc-touch-scrolling :is(.gc-list-item.interactive, .gc-list-item-interactive):active {
        --gc-list-media-frame-bg: var(--surface-subtle);
        --gc-list-media-frame-bg-hover: var(--surface-subtle);
    }

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

    .gc-list-section-shell :is(a.gc-interactive-row, .gc-interactive-row, button.gc-interactive-row):is(:hover, :focus-within) > :is(.gc-list-media-icon, .sidebar-icon-box, .sidebar-weapon-icon),

    .gc-list-section-shell :is(a.gc-interactive-row, .gc-interactive-row, button.gc-interactive-row):is(:hover, :focus-within) > .gc-list-item-trigger > :is(.gc-list-media-icon, .sidebar-icon-box, .sidebar-weapon-icon),

    .gc-list-section-shell .event-participant-card.profile-trigger:is(:hover, :focus-within) > :is(a.gc-interactive-row, .gc-interactive-row, button.gc-interactive-row) > :is(.gc-list-media-icon, .sidebar-icon-box, .sidebar-weapon-icon),

    .gc-list-section-shell .event-participant-card.profile-trigger:is(:hover, :focus-within) > :is(a.gc-interactive-row, .gc-interactive-row, button.gc-interactive-row) > .gc-list-item-trigger > :is(.gc-list-media-icon, .sidebar-icon-box, .sidebar-weapon-icon) {
        background: transparent;
        border-color: transparent;
    }
    }

    .gc-list-section-shell :is(a.gc-interactive-row, .gc-interactive-row, button.gc-interactive-row):is( :focus-within) > :is(.gc-list-media-icon, .sidebar-icon-box, .sidebar-weapon-icon),

    .gc-list-section-shell :is(a.gc-interactive-row, .gc-interactive-row, button.gc-interactive-row):is( :focus-within) > .gc-list-item-trigger > :is(.gc-list-media-icon, .sidebar-icon-box, .sidebar-weapon-icon),

    .gc-list-section-shell .event-participant-card.profile-trigger:is( :focus-within) > :is(a.gc-interactive-row, .gc-interactive-row, button.gc-interactive-row) > :is(.gc-list-media-icon, .sidebar-icon-box, .sidebar-weapon-icon),

    .gc-list-section-shell .event-participant-card.profile-trigger:is( :focus-within) > :is(a.gc-interactive-row, .gc-interactive-row, button.gc-interactive-row) > .gc-list-item-trigger > :is(.gc-list-media-icon, .sidebar-icon-box, .sidebar-weapon-icon) {
        background: transparent;
        border-color: transparent;
    }
}
