/**
 * Subscriptions - стили для системы абонементов
 */

/* ==================== Subscription Header ==================== */


/* Страница абонемента: полоса статуса над сабхедером (те же классы пилла, что у тарифов в сетке) */
.subscriptions-main-strip-panel .subscriptions-show-status-cell {
    isolation: isolate;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.subscriptions-main-strip-panel .subscriptions-show-status-cell--strip .subscriptions-pricing-card-strip-row {
    position: relative;
    z-index: 0;
    padding: 0;
}

.subscriptions-main-strip-panel .subscriptions-show-status-cell--strip .subscriptions-show-status-cell-body {
    position: relative;
    z-index: 1;
    margin-top: calc(-1 * var(--gc-card-strip-overlap));
    background: var(--surface-panel);
    /* Внутреннее скругление под 1px border у .gc-panel — совпадает с клипом родителя */
    border-top-left-radius: calc(var(--radius-16) - 1px);
    border-top-right-radius: calc(var(--radius-16) - 1px);
}

/* Полоса статуса: те же верхние углы, что у внутренней границы панели */
.subscriptions-main-strip-panel.gc-show-main-panel .subscriptions-pricing-card-strip-pill {
    border-top-left-radius: calc(var(--radius-16) - 1px);
    border-top-right-radius: calc(var(--radius-16) - 1px);
}

.subscriptions-main-strip-panel .subscriptions-show-status-cell-body > .gc-show-main-subheader.gc-subheader--in-panel {
    gap: var(--space-2);
    align-items: center;
}

/* Полоса на show только информирует — без шеврона как у кликабельных карточек тарифов */
.subscriptions-main-strip-panel .subscriptions-pricing-card-strip-pill--static {
    justify-content: flex-start;
}

/*
 * На <lg сабхедер в .subscriptions-show-status-cell-body скрыт — высота 0, фон не перекрывает
 * нижнюю часть полосы. min-height = глубина overlap (как margin у .pricing-card), без подтягивания
 * .gc-panel-content — иначе весь блок контента с фоном перекрывает текст пилла.
 */
@media (max-width: 991.98px) {
    .subscriptions-main-strip-panel .subscriptions-show-status-cell--strip .subscriptions-show-status-cell-body {
        min-height: calc(var(--space-4) + var(--space-1));
    }
}

/* Полоса + .subscriptions-show-status-cell-body (overlap): первый блок контента панели — без верхнего padding (styles.css у .gc-panel-content). */
.subscriptions-main-strip-panel:has(.subscriptions-show-status-cell-body) > .gc-panel-content {
    padding-top: 0;
}

.subscription-action-row {
    width: 100%;
}

.subscription-action-form {
    flex: 1;
    min-width: 0;
}

.subscription-header-title {
    font-size: var(--font-size-20);
    font-weight: 600;
    color: var(--text-primary);
    margin: 0;
}

.subscription-header-subtitle {
    font-size: var(--font-size-14);
    color: var(--text-secondary);
    margin: 0;
}

.subscription-summary-grid {
    display: grid;
    grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
    gap: var(--space-6);
    align-items: start;
}

.subscription-summary-highlight {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    padding: var(--space-4);
    border-radius: var(--radius-16);
    background: var(--surface-control);
    border: 1px solid var(--border-subtle);
}

@media (max-width: 768px) {
    .subscription-summary-grid {
        grid-template-columns: 1fr;
        gap: var(--space-4);
    }
}

/* ==================== Pricing Grid ==================== */

.pricing-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: var(--space-2);
}

/* Карточка тарифа + полоса статуса (ритм полосы эпика в каталоге /events) */
.subscriptions-pricing-card-cell {
    isolation: isolate;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    min-width: 0;
    height: 100%;
}

.subscriptions-pricing-card-hit.subscriptions-pricing-card-cell {
    text-decoration: none;
    color: inherit;
    cursor: pointer;
}

.subscriptions-pricing-card-cell--strip .subscriptions-pricing-card-strip-row {
    position: relative;
    z-index: 0;
    padding: 0;
}

/* Карточка заезжает на полосу — overlap на glow-shell или напрямую на pricing-card */
.subscriptions-pricing-card-cell--strip > .pricing-card {
    position: relative;
    z-index: 1;
    margin-top: calc(-1 * var(--gc-card-strip-overlap));
}

.subscriptions-pricing-card-strip-row {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    padding: 0;
}

.subscriptions-pricing-card-strip-pill {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: var(--space-1);
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    padding: var(--gc-card-strip-padding);
    border: 1px solid var(--subscriptions-strip-mark-border, transparent);
    border-top-left-radius: var(--radius-16);
    border-top-right-radius: var(--radius-16);
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
    background: var(--subscriptions-strip-bg);
    color: var(--subscriptions-strip-text);
    font-size: var(--font-size-14);
    font-weight: 500;
    line-height: var(--line-height-list-description);
    box-shadow: inset 0 1px 0 var(--subscriptions-strip-mark-inset, transparent);
    transition: var(--gc-card-glow-transition);
}

.subscriptions-pricing-card-strip-pill--hidden,
.subscriptions-pricing-card-strip-pill--expired {
    --subscriptions-strip-bg: color-mix(in srgb, var(--weapon-card-strip-muted-chrome) 18%, var(--surface-control));
    --subscriptions-strip-bg-hover: color-mix(in srgb, var(--weapon-card-strip-muted-chrome) 26%, var(--surface-control));
    --subscriptions-strip-bg-active: color-mix(in srgb, var(--weapon-card-strip-muted-chrome) 34%, var(--surface-control));
    --subscriptions-strip-text: var(--text-primary);
    --subscriptions-strip-mark-border: color-mix(in srgb, var(--weapon-card-strip-muted-chrome) 12%, var(--subscriptions-strip-bg));
    --subscriptions-strip-mark-inset: color-mix(in srgb, var(--fill-emphasis-inverse) 4%, transparent);
}

[data-theme="light"] .subscriptions-pricing-card-strip-pill--hidden,
[data-theme="light"] .subscriptions-pricing-card-strip-pill--expired {
    --subscriptions-strip-bg: color-mix(in srgb, var(--weapon-card-strip-muted-chrome) 12%, var(--surface-control));
    --subscriptions-strip-bg-hover: color-mix(in srgb, var(--weapon-card-strip-muted-chrome) 18%, var(--surface-control));
    --subscriptions-strip-bg-active: color-mix(in srgb, var(--weapon-card-strip-muted-chrome) 24%, var(--surface-control));
}

.subscriptions-pricing-card-strip-pill--active {
    --subscriptions-strip-bg: color-mix(in srgb, rgb(var(--success-color-rgb)) 17%, var(--surface-panel));
    --subscriptions-strip-bg-hover: color-mix(in srgb, rgb(var(--success-color-rgb)) 26%, var(--surface-panel));
    --subscriptions-strip-bg-active: color-mix(in srgb, rgb(var(--success-color-rgb)) 34%, var(--surface-panel));
    --subscriptions-strip-text: var(--text-primary);
    --subscriptions-strip-mark-border: color-mix(in srgb, rgb(var(--success-color-rgb)) 14%, var(--subscriptions-strip-bg));
    --subscriptions-strip-mark-inset: color-mix(in srgb, var(--fill-emphasis-inverse) 4%, transparent);
}

.subscriptions-pricing-card-strip-pill--pending {
    --subscriptions-strip-bg: color-mix(in srgb, rgb(var(--warning-color-rgb)) 20%, var(--surface-panel));
    --subscriptions-strip-bg-hover: color-mix(in srgb, rgb(var(--warning-color-rgb)) 30%, var(--surface-panel));
    --subscriptions-strip-bg-active: color-mix(in srgb, rgb(var(--warning-color-rgb)) 38%, var(--surface-panel));
    --subscriptions-strip-text: var(--text-primary);
    --subscriptions-strip-mark-border: color-mix(in srgb, rgb(var(--warning-color-rgb)) 14%, var(--subscriptions-strip-bg));
    --subscriptions-strip-mark-inset: color-mix(in srgb, var(--fill-emphasis-inverse) 4%, transparent);
}

.subscriptions-pricing-card-strip-name {
    flex: 1 1 auto;
    min-width: 0;
}

.subscriptions-pricing-card-strip-caret {
    flex-shrink: 0;
    font-size: var(--font-size-base);
    line-height: 1;
    opacity: 0.9;
}

a.subscriptions-pricing-card-hit:hover .subscriptions-pricing-card-strip-pill,
a.subscriptions-pricing-card-hit:focus-visible .subscriptions-pricing-card-strip-pill {
    background: var(--subscriptions-strip-bg-hover);
}

a.subscriptions-pricing-card-hit:active .subscriptions-pricing-card-strip-pill {
    background: var(--subscriptions-strip-bg-active);
}

/* Focus — catalog hover на теле карточки; рыжая обводка на shell, не на strip+body вместе */
a.subscriptions-pricing-card-hit:focus-visible {
    outline: none;
}

a.subscriptions-pricing-card-hit:focus-visible .gc-card-glow-shell--pricing {
    outline: var(--gc-focus-outline);
    outline-offset: var(--gc-focus-outline-offset);
}

/* ==================== Pricing Card ==================== */

.pricing-card {
    background: var(--surface-panel);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-16);
    padding: var(--space-4);
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    transition: all var(--transition-base);
    position: relative;
    min-height: 220px;
}

.pricing-card-link {
    text-decoration: none;
    color: inherit;
    cursor: pointer;
}

.pricing-card-link * {
    pointer-events: none;
}

/* Тултип на карточке-ссылке: иначе hover не доходит из-за pointer-events: none у потомков */
.pricing-card-link .gc-widget-tip {
    pointer-events: auto;
}

.pricing-card-link:hover {
    background: var(--surface-control);
    border-color: var(--border-default);
}

/* Owner: карточка типа в сетке (иконка в плитке, цена внизу) */
.pricing-card.pricing-card-owner {
    min-height: 11.25rem;
    padding: var(--space-4);
    gap: var(--space-4);
    justify-content: flex-start;
}

.pricing-card-owner .subscriptions-pending-request-title.gc-list-title {
    flex: 1 1 auto;
    min-width: 0;
}

.pricing-card-owner .pricing-card-bottom {
    margin-top: auto;
    padding-top: 0;
}

.pricing-card-owner .pricing-card-features {
    line-height: 1.35;
}

/* Сетка тарифов (абонементы и т.д.): на адаптиве без лишнего min-height — карточка по контенту */
@media (max-width: 991.98px) {
    .pricing-card {
        min-height: 0;
        padding: var(--space-4);
        gap: var(--space-1);
    }

    .pricing-card.pricing-card-owner {
        min-height: 0;
        gap: var(--space-2);
    }

    .pricing-card-icon {
        font-size: var(--font-size-24);
    }
}

/* Сетка типов на странице подписок владельца */
.subscriptions-types-panel__content .subscriptions-types-grid {
    gap: var(--space-4);
}

.subscriptions-types-panel__content .pricing-grid {
    grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
}

@media (min-width: 992px) {
    .subscriptions-types-panel__content .pricing-grid {
        grid-template-columns: repeat(auto-fill, minmax(17.5rem, 1fr));
    }
}

/* Карточка добавления */
.pricing-card-add {
    border: 1px dashed var(--border-default);
    background: transparent;
    justify-content: center;
    align-items: center;
    text-decoration: none;
    cursor: pointer;
    display: flex;
    flex-direction: column;
}

.pricing-card-add:hover {
    border-color: var(--accent-link);
    background: rgba(var(--accent-link-rgb), 0.05);
}

.pricing-card-add-content {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-grow: 1;
}

.pricing-card-add-content i {
    font-size: 40px;
    color: var(--text-secondary);
    opacity: 0.5;
    transition: all var(--transition-base);
}

.pricing-card-add:hover .pricing-card-add-content i {
    color: var(--accent-link);
    opacity: 0.8;
    transform: scale(1.1);
}

.pricing-card-add .pricing-card-name {
    font-size: var(--font-size-14);
    font-weight: 500;
    color: var(--text-secondary);
    padding: var(--space-4);
    text-align: center;
}

.pricing-card-add:hover .pricing-card-name {
    color: var(--accent-link);
}

.pricing-card-badge {
    position: absolute;
    top: var(--space-2);
    right: var(--space-2);
    padding: 3px 8px;
    background: var(--surface-control);
    color: var(--text-secondary);
    font-size: var(--font-size-13);
    font-weight: 500;
    border-radius: 4px;
}

.pricing-card-badge-purchased {
    background: var(--surface-control);
    color: var(--text-secondary);
}

.pricing-card-disabled {
    opacity: 0.6;
    pointer-events: none;
    cursor: default;
}

.pricing-card-disabled:hover {
    background: var(--surface-panel);
    border-color: var(--border-subtle);
}

.pricing-card-icon {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    margin: 0;
    padding: 0;
    background: none;
    border: none;
    border-radius: 0;
    font-size: var(--font-size-30);
    line-height: 1;
    color: var(--text-primary);
}

.pricing-card-icon i {
    font-size: inherit;
    line-height: inherit;
}

/* Заголовок типа — как в строках заявок: .gc-list-title.subscriptions-pending-request-title */
.pricing-card > .subscriptions-pending-request-title.gc-list-title {
    min-width: 0;
}

.pricing-card-bottom {
    margin-top: auto;
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

/* Price */
.pricing-card-price {
    display: flex;
    align-items: baseline;
    gap: 4px;
}

.price-amount {
    font-size: var(--font-size-20);
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1;
}

.price-currency {
    font-size: var(--font-size-14);
    font-weight: 600;
    color: var(--text-secondary);
}

/* Features (<p> — без дефолтных отступов параграфа) */
.pricing-card-features {
    margin: 0;
    color: var(--text-secondary);
    font-size: var(--font-size-13);
}

/* Владелец: активные подписчики по типу (карточка тарифа) */
.pricing-card-subscribers {
    margin: 0;
    color: var(--text-secondary);
    font-size: var(--font-size-13);
}

/* ==================== Subscription List Styles ==================== */

.subscription-list-link {
    text-decoration: none;
    color: inherit;
    cursor: pointer;
}

.subscription-list-link * {
    pointer-events: none;
}

.subscription-status-indicator {
    width: 4px;
    height: 40px;
    border-radius: 2px;
    flex-shrink: 0;
}

.subscription-status-active {
    background: var(--success-color);
}

.subscription-status-pending {
    background: var(--warning-color);
}

.subscription-status-expired {
    background: var(--weapon-card-strip-muted-chrome);
}

.subscription-status-cancelled {
    background: var(--weapon-card-strip-muted-chrome);
}

.subscription-visits-info {
    display: flex;
    align-items: center;
}

.visits-count {
    font-size: var(--font-size-15);
    font-weight: 600;
    color: var(--text-primary);
}

.visits-total {
    color: var(--text-secondary);
    font-weight: 400;
    font-size: var(--font-size-14);
}

/* Правая колонка в строках списка: число — mdl, подпись «осталось» — sm; однострочные метки центрируются в той же высоте */
.gc-list-meta-right.subscription-list-remaining {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    gap: var(--space-1);
    min-height: calc(var(--gc-list-title-line-height) + var(--line-height-list-description) + var(--space-2));
    font-size: var(--font-size-15);
    font-weight: 600;
    color: var(--text-primary);
    text-align: right;
}

.subscription-remaining-value {
    font-size: var(--font-size-15);
    font-weight: 600;
    color: var(--text-primary);
    line-height: var(--gc-list-title-line-height);
}

.subscription-remaining-caption {
    font-size: var(--font-size-14);
    font-weight: 400;
    color: var(--text-secondary);
    line-height: var(--line-height-list-description);
}

.subscription-remaining-single {
    font-size: inherit;
    font-weight: inherit;
    color: inherit;
    line-height: var(--gc-list-title-line-height);
}

/* Legacy / разметка без structured spans (напр. старый PHP-вид) */
.subscription-list-remaining:not(.gc-list-meta-right) {
    font-size: var(--font-size-15);
    font-weight: 600;
    color: var(--text-primary);
}

.subscription-list-archived {
    opacity: 0.6;
}

/* Архив ваучера: глиф без «чипа» (рамка/fill как у gc-list-media-icon) — выравнивание ряда сохраняется */
.subscription-list-link.subscription-list-archived .subscription-voucher-row-icon--plain {
    border: none;
    background: transparent;
    padding: 0;
    box-shadow: none;
}

/* Кнопка «Архив»: типографика вторичного действия */
.subscription-list-archive-btn {
    color: var(--text-secondary);
}

.visits-progress {
    width: 80px;
    height: 8px;
    background: var(--surface-control);
    border-radius: 4px;
    overflow: hidden;
}

.visits-progress-fill {
    height: 100%;
    background: var(--accent-link);
    transition: width 0.3s ease, background 0.3s ease;
}

.visits-progress-fill.progress-warning {
    background: var(--warning-color);
}

.visits-progress-fill.progress-danger {
    background: var(--danger-color);
}

/* ==================== Empty States ==================== */

.empty-state {
    grid-column: 1 / -1;
    padding: var(--space-6);
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.empty-state-icon {
    font-size: 40px;
    color: var(--text-secondary);
    opacity: 0.3;
}

.empty-state-title {
    font-size: var(--font-size-base);
    font-weight: 600;
    color: var(--text-primary);
    margin: 0;
}

.empty-state-text {
    font-size: var(--font-size-14);
    color: var(--text-secondary);
    margin: 0;
}

.empty-state-small {
    padding: var(--space-4);
    color: var(--text-secondary);
    font-size: var(--font-size-14);
}

/* ==================== Subscription Type Detail ==================== */

.type-detail-container {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
}

.type-detail-price-group {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.type-detail-price-box {
    text-align: left;
}

.type-detail-price-amount {
    font-size: var(--font-size-32);
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1;
}

.type-detail-price-currency {
    font-size: var(--font-size-18);
    color: var(--text-secondary);
}

.type-detail-description {
    margin: 0;
    text-align: left;
    font-size: var(--font-size-14);
    line-height: 1.6;
    color: var(--text-secondary);
}

.subscription-info-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.subscription-info-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--space-4);
}

.subscription-info-label {
    color: var(--text-secondary);
    font-size: var(--font-size-14);
}

.subscription-info-value {
    color: var(--text-primary);
    font-size: var(--font-size-14);
    font-weight: 500;
    text-align: right;
    white-space: nowrap;
}

.type-purchase-state {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.my-subscription-compact {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    padding: var(--space-4);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-16);
    background: var(--surface-control);
    color: inherit;
    text-decoration: none;
    transition: background var(--transition-base), border-color var(--transition-base);
}

.my-subscription-compact:hover {
    background: var(--surface-panel);
    border-color: var(--border-default);
}

.my-subscription-info {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: 0;
}

.my-subscription-title {
    font-size: var(--font-size-14);
    font-weight: 600;
    color: var(--text-primary);
}

.my-subscription-meta {
    font-size: var(--font-size-14);
    color: var(--text-secondary);
}

.my-subscription-remaining {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    gap: var(--space-2);
    min-height: calc(var(--gc-list-title-line-height) + var(--line-height-list-description) + var(--space-2));
    font-size: var(--font-size-15);
    font-weight: 600;
    color: var(--text-primary);
    text-align: right;
    flex-shrink: 0;
}

.my-subscription-remaining .subscription-remaining-value {
    font-size: var(--font-size-15);
}

.my-subscription-remaining .subscription-remaining-caption {
    font-size: var(--font-size-14);
}

/* ==================== Type Stats ==================== */

/* Страница типа абонемента: узкая колонка канала — без minmax(200px), иначе сетка «ломается» в одну колонку */
.type-stats-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-2);
}

@media (min-width: 992px) {
    .type-stats-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: var(--space-4);
    }
}

.type-stats-item {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    align-items: flex-start;
    text-align: left;
    min-width: 0;
    padding: var(--space-4);
    background: var(--surface-control);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-8);
    box-sizing: border-box;
}

.type-stats-label {
    font-size: var(--font-size-13);
    color: var(--text-secondary);
    font-weight: 500;
}

.type-stats-value {
    font-size: var(--font-size-15);
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.25;
    word-break: break-word;
}

/* ==================== Subscription Divider ==================== */

.subscription-divider {
    padding: var(--space-2) var(--space-4);
    font-size: var(--font-size-13);
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 500;
}

/* ==================== Subscription Detail Page ==================== */

.subscription-detail-skeleton {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: var(--space-6);
}

.subscription-visits-group {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.subscription-visits-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.subscription-visits-value {
    font-size: var(--font-size-18);
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1;
}

.subscription-visits-remaining {
    font-size: var(--font-size-14);
    font-weight: 500;
    color: var(--text-secondary);
}

.subscription-visits-hint {
    margin: var(--space-1) 0 0;
    font-size: var(--font-size-13);
    color: var(--text-secondary);
}


.subscription-detail-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: var(--space-4);
}

.subscription-detail-item {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.subscription-detail-label {
    font-size: var(--font-size-13);
    color: var(--text-secondary);
    font-weight: 500;
}

.subscription-detail-value {
    font-size: var(--font-size-14);
    color: var(--text-primary);
    font-weight: 600;
}

.subscription-status-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    padding: 4px 10px;
    border-radius: 8px;
    font-size: var(--font-size-13);
    font-weight: 600;
    width: fit-content;
}

.subscription-status-badge.active {
    background: rgba(34, 197, 94, 0.1);
    color: var(--success-color);
}

.subscription-status-badge.pending {
    background: rgba(234, 179, 8, 0.1);
    color: var(--warning-color);
}

.subscription-status-badge.expired,
.subscription-status-badge.cancelled {
    background: rgba(107, 114, 128, 0.1);
    color: var(--text-secondary);
}

.subscription-progress-container {
    /* Без дополнительных отступов, находится внутри subscription-visits-group */
}

/* Мини прогресс-бар визитов (сайдбар / моб. дубль) — как profile-results-bar-fill */
.subscription-mini-progress {
    display: flex;
    align-items: stretch;
    gap: var(--gc-progress-segment-gap);
    height: var(--gc-progress-track-height);
    padding: 0;
    background: transparent;
    border-radius: 0;
}

.subscription-mini-progress.gc-widget-tip {
    height: auto;
    min-height: var(--gc-progress-track-height);
    padding-block: var(--space-1);
    box-sizing: border-box;
    align-items: center;
}

.subscription-mini-progress.gc-widget-tip .subscription-mini-segment {
    pointer-events: none;
    height: var(--gc-progress-track-height);
    align-self: center;
}

.subscription-mini-segment {
    height: 100%;
    min-height: 0;
    border-radius: var(--radius-full);
    transition:
        opacity var(--transition-slow) var(--ease-out),
        width var(--transition-slow) var(--ease-out);
}

.subscription-mini-segment-used {
    background-color: var(--gc-progress-fill);
}

.subscription-mini-segment-preview {
    background-color: var(--gc-progress-fill);
    opacity: 0.38;
}

.subscription-mini-segment-remaining {
    flex: 1 1 0;
    min-width: 0;
    background-color: transparent;
}

.subscription-mini-progress .subscription-mini-segment-used {
    flex-shrink: 0;
}

/* Сегментированный прогресс-бар (как в профиле с попаданиями) */
.profile-progress {
    display: flex;
    gap: 3px;
    height: 14px;
    background-color: var(--surface-canvas);
    border-radius: var(--radius-full);
    padding: 3px;
}

.profile-progress-segment {
    height: 100%;
    border-radius: var(--radius-full);
    transition: width 0.3s ease;
}

.profile-progress-segment-success {
    background: var(--accent-link) !important;
}

.profile-progress-segment-secondary {
    background-color: transparent;
}

.subscription-visits-group .profile-progress-segment {
    flex: 1 1 0;
    min-width: 0;
}


/* ==================== Usage History (страница абонемента) ==================== */

.subscriptions-usage-history-row.gc-interactive-row {
    flex-wrap: nowrap;
    align-items: center;
}

.subscriptions-usage-history-row .subscriptions-usage-history-row-main.gc-list-content {
    flex: 1 1 auto;
    min-width: 0;
}

.subscriptions-usage-history-row-aside {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--space-2);
    flex-shrink: 0;
    margin-left: auto;
    min-width: 0;
}

.subscriptions-usage-history-row-actions {
    margin-left: 0;
}

.subscriptions-usage-history-row .gc-list-title {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.subscriptions-usage-history-meta.gc-list-meta {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: var(--line-height-list-description);
}

.subscriptions-usage-history-meta-note {
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}

.subscriptions-usage-history-meta-sep {
    flex-shrink: 0;
    color: var(--text-secondary);
}

.subscriptions-usage-history-status {
    flex-shrink: 0;
    min-width: 6.25rem;
    text-align: right;
    font-size: var(--font-size-13);
    font-weight: 500;
    color: var(--text-secondary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.subscription-usage-panel .gc-panel-content {
    gap: var(--space-1);
}

/* Управление абонементами: строки как gc-interactive-row (без разделителей gc-list-item) */
.subscriptions-manage-row.gc-interactive-row {
    align-items: center;
}


.subscription-usage-form {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

/* Legacy: src/views/communities/show_subscription.php (GunCult router) */
.subscription-usage-info {
    flex: 1;
    min-width: 0;
}

.subscription-usage-name {
    font-size: var(--font-size-14);
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: 1px;
}

.subscription-usage-meta,
.subscription-usage-date {
    font-size: var(--font-size-13);
    color: var(--text-secondary);
    min-width: 0;
}

.subscription-usage-meta {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    overflow: hidden;
    white-space: nowrap;
}

.subscription-usage-note {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--text-secondary);
    min-width: 0;
    flex-shrink: 1;
}

.subscription-usage-added {
    color: var(--text-secondary);
    font-size: var(--font-size-13);
}


/* ==================== Custom List Styles ==================== */

.subscription-list-price {
    font-size: var(--font-size-base);
    font-weight: 600;
    color: var(--accent-link);
    white-space: nowrap;
}

/* ==================== Media Queries ==================== */

@media (max-width: 768px) {
    .pricing-grid {
        grid-template-columns: 1fr;
    }

    .my-subscription-compact {
        align-items: flex-start;
        flex-direction: column;
    }

    .my-subscription-remaining {
        align-items: flex-start;
        text-align: left;
    }

    .type-detail-price-amount {
        font-size: var(--font-size-32);
    }

    .type-detail-price-currency {
        font-size: var(--font-size-20);
    }
}

/* Owner index сохраняет широкий шаг, в разделах профильных льгот — компактный. */
.subscriptions-index-owner {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    min-width: 0;
}

.subscriptions-section-page {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    min-width: 0;
}

/* Типы на canvas: H4 → сетка, без framed-карточки */
.subscriptions-types-panel .gc-open-list-section {
    gap: var(--gc-list-section-header-gap);
}

.subscriptions-types-panel__content {
    min-width: 0;
}

/* Hub: три карточки-раздела (ссылки на страницы разделов) */
.subscriptions-hub-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-2);
}

@media (max-width: 767.98px) {
    .subscriptions-hub-grid {
        grid-template-columns: 1fr;
    }
}

.subscriptions-hub-card {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: var(--space-4);
    min-height: 8.75rem;
    min-width: 0;
    padding: var(--space-4) var(--space-4) var(--space-4);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-16);
    background: var(--surface-panel);
    text-decoration: none;
    color: inherit;
    cursor: pointer;
    transition:
        background var(--transition-base),
        border-color var(--transition-base);
}

a.subscriptions-hub-card:hover {
    background: var(--surface-control);
    border-color: var(--border-default);
}

.subscriptions-hub-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: var(--space-8);
    height: var(--space-8);
    border-radius: var(--radius-8);
    background: var(--surface-control);
    color: var(--text-primary);
    font-size: var(--font-size-20);
    flex-shrink: 0;
}

.subscriptions-hub-card__lower {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--space-2);
    min-width: 0;
}

.subscriptions-hub-card__copy {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: 0;
    flex: 1 1 auto;
}

.subscriptions-hub-card__title {
    font-size: var(--font-size-base);
    font-weight: 500;
    color: var(--text-primary);
}

.subscriptions-hub-card__meta {
    font-size: var(--font-size-14);
    color: var(--text-secondary);
}

.subscriptions-hub-card__aside {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--space-1);
    flex-shrink: 0;
}

.subscriptions-hub-card__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.75rem;
    padding: var(--space-1) var(--space-2);
    border-radius: var(--radius-full);
    background: var(--accent-link);
    color: var(--surface-panel);
    font-size: var(--font-size-14);
    font-weight: 500;
    line-height: 1;
}

.subscriptions-hub-card--skeleton {
    pointer-events: none;
    cursor: default;
}

.subscriptions-hub-card--skeleton .subscriptions-hub-card__icon.gc-skeleton {
    width: var(--space-8);
    height: var(--space-8);
    flex-shrink: 0;
    color: transparent;
    background: linear-gradient(
        90deg,
        var(--surface-subtle) 0%,
        var(--surface-control) 50%,
        var(--surface-subtle) 100%
    );
    background-size: 200% 100%;
    animation: skeleton-pulse 1.5s ease-in-out infinite;
}

/* Rectangular glow shell — hub / pricing; билет = gc-card-glow-shell--benefit-ticket
 * Рецепт как у билета / kind-mark: ровная chroma-кромка + inner depth.
 * Conic-дуги и крупный outer bloom — нет (рваная граница / грязное свечение). */
.gc-card-glow-shell {
    position: relative;
    isolation: isolate;
    --gc-card-glow-radius: var(--radius-16);
    --gc-card-glow-angle: 0deg;
    --gc-card-glow-transition-duration: 85ms;
    --gc-card-glow-transition-ease: var(--ease-in);
    --gc-card-glow-transition:
        border-color var(--gc-card-glow-transition-duration) var(--gc-card-glow-transition-ease),
        background-color var(--gc-card-glow-transition-duration) var(--gc-card-glow-transition-ease),
        box-shadow var(--gc-card-glow-transition-duration) var(--gc-card-glow-transition-ease);
    --gc-card-glow-rest-border: color-mix(in srgb, var(--border-default) 38%, var(--border-subtle));
    /* Closed hover edge — chroma заметнее, как benefit hover-ring */
    --gc-card-glow-hover-edge: color-mix(
        in srgb,
        var(--gc-card-glow-chroma, var(--fill-emphasis-inverse)) 52%,
        var(--gc-card-glow-rest-border)
    );
    transition: box-shadow var(--gc-card-glow-transition-duration) var(--gc-card-glow-transition-ease);
}

/* Catalog strip surface — grid + show pages + weapon popup + post embeds; docs/ui-kit/CARD_GLOW.md § Catalog cards */
.gc-card-glow-shell--weapon,
.gc-card-glow-shell--event-index,
.gc-card-glow-shell--post-embed,
.subscriptions-pricing-card-cell--strip,
.weapon-show-main-strip-panel,
.weapon-show-sidebar-strip-cell,
.subscriptions-main-strip-panel,
.gc-weapon-popup-stack--has-strip,
.profile-rail-person-tile--action {
    --gc-card-glow-strip-hover-border-mix: 48%;
    --gc-card-glow-soft-edge: color-mix(in srgb, var(--border-default) 22%, var(--border-subtle));
    --gc-card-glow-hover-border: color-mix(
        in srgb,
        var(--fill-emphasis-inverse) 8%,
        var(--gc-card-glow-soft-edge)
    );
    --gc-card-glow-rest-border: var(--gc-card-glow-soft-edge);
    --gc-card-glow-hover-base: var(--surface-secondary);
    --gc-card-glow-surface-hover-mix: 3%;
    --gc-card-glow-hover-bg: color-mix(
        in srgb,
        var(--fill-emphasis-inverse) var(--gc-card-glow-surface-hover-mix),
        var(--gc-card-glow-hover-base)
    );
    --gc-card-glow-inner-rest-top: color-mix(in srgb, var(--fill-emphasis-inverse) 5%, transparent);
    --gc-card-glow-inner-hover-top: color-mix(in srgb, var(--fill-emphasis-inverse) 11%, transparent);
    --gc-card-glow-inner-hover-spread: color-mix(in srgb, var(--fill-emphasis-inverse) 4%, transparent);
    --gc-card-glow-hover-spread-y: 2px;
    --gc-card-glow-hover-spread-blur: 10px;
    --gc-card-glow-rest-shadow: inset 0 1px 0 var(--gc-card-glow-inner-rest-top);
    --gc-card-glow-hover-shadow:
        inset 0 1px 0 var(--gc-card-glow-inner-hover-top),
        inset 0 var(--gc-card-glow-hover-spread-y) var(--gc-card-glow-hover-spread-blur)
            var(--gc-card-glow-inner-hover-spread);
}

.subscriptions-pricing-card-cell--strip {
    --gc-card-glow-transition-duration: 85ms;
    --gc-card-glow-transition-ease: var(--ease-in);
    --gc-card-glow-transition:
        border-color var(--gc-card-glow-transition-duration) var(--gc-card-glow-transition-ease),
        background-color var(--gc-card-glow-transition-duration) var(--gc-card-glow-transition-ease),
        box-shadow var(--gc-card-glow-transition-duration) var(--gc-card-glow-transition-ease);
}

html[data-theme='light'] .gc-card-glow-shell--weapon,
html[data-theme='light'] .gc-card-glow-shell--event-index,
html[data-theme='light'] .gc-card-glow-shell--post-embed,
html[data-theme='light'] .subscriptions-pricing-card-cell--strip,
html[data-theme='light'] .weapon-show-main-strip-panel,
html[data-theme='light'] .weapon-show-sidebar-strip-cell,
html[data-theme='light'] .subscriptions-main-strip-panel,
html[data-theme='light'] .gc-weapon-popup-stack--has-strip,
html[data-theme='light'] .profile-rail-person-tile--action {
    /* Light: мягкий gray tint + лёгкий тёмный inset */
    --gc-card-glow-hover-border: color-mix(
        in srgb,
        var(--border-default) 32%,
        var(--gc-card-glow-soft-edge)
    );
    --gc-card-glow-hover-bg: color-mix(
        in srgb,
        var(--surface-interaction-row-hover) 42%,
        var(--surface-secondary)
    );
    --gc-card-glow-inner-rest-top: color-mix(in srgb, var(--fill-emphasis) 3%, transparent);
    --gc-card-glow-inner-hover-top: color-mix(in srgb, var(--fill-emphasis) 6%, transparent);
    --gc-card-glow-inner-hover-spread: color-mix(in srgb, var(--fill-emphasis) 2.5%, transparent);
    --gc-card-glow-hover-spread-y: 2px;
    --gc-card-glow-hover-spread-blur: 8px;
}

@media (prefers-color-scheme: light) {
    :root:not([data-theme]) .gc-card-glow-shell--weapon,
    :root:not([data-theme]) .gc-card-glow-shell--event-index,
    :root:not([data-theme]) .gc-card-glow-shell--post-embed,
    :root:not([data-theme]) .subscriptions-pricing-card-cell--strip,
    :root:not([data-theme]) .weapon-show-main-strip-panel,
    :root:not([data-theme]) .weapon-show-sidebar-strip-cell,
    :root:not([data-theme]) .subscriptions-main-strip-panel,
    :root:not([data-theme]) .gc-weapon-popup-stack--has-strip,
    :root:not([data-theme]) .profile-rail-person-tile--action {
        --gc-card-glow-hover-border: color-mix(
            in srgb,
            var(--border-default) 32%,
            var(--gc-card-glow-soft-edge)
        );
        --gc-card-glow-hover-bg: color-mix(
            in srgb,
            var(--surface-interaction-row-hover) 42%,
            var(--surface-secondary)
        );
        --gc-card-glow-inner-rest-top: color-mix(in srgb, var(--fill-emphasis) 3%, transparent);
        --gc-card-glow-inner-hover-top: color-mix(in srgb, var(--fill-emphasis) 6%, transparent);
        --gc-card-glow-inner-hover-spread: color-mix(in srgb, var(--fill-emphasis) 2.5%, transparent);
        --gc-card-glow-hover-spread-y: 2px;
        --gc-card-glow-hover-spread-blur: 8px;
    }
}

.gc-card-glow-shell--weapon::before,
.gc-card-glow-shell--event-index::before,
.gc-card-glow-shell--post-embed::before {
    content: none;
    display: none;
    opacity: 0;
}

/* Post embed / external link block — catalog surface на самой карточке (не hub ::before) */
a.gc-card-activity-event.gc-card-glow-shell--post-embed {
    border-color: var(--gc-card-glow-rest-border);
    box-shadow: var(--gc-card-glow-rest-shadow);
    transition: var(--gc-card-glow-transition);
}

@media (hover: hover) and (pointer: fine) {
    a.gc-card-activity-event.gc-card-glow-shell--post-embed:is(:hover, :focus-visible) {
        background: var(--gc-card-glow-hover-bg);
        border-color: var(--gc-card-glow-hover-border);
        box-shadow: var(--gc-card-glow-hover-shadow);
        transform: none;
    }
}

a.gc-card-activity-event.gc-card-glow-shell--post-embed:focus-visible {
    outline: var(--gc-focus-outline);
    outline-offset: var(--gc-focus-outline-offset);
}

/* Catalog glow motion — surface/media; strip-pill — cards.css :root --gc-card-glow-transition */
.gc-card-glow-shell--weapon > .weapon-card-media,
.gc-card-glow-shell--event-index > .gc-event-index-card-v2-1__surface {
    transition: var(--gc-card-glow-transition);
}

@media (hover: hover) and (pointer: fine) {
    .weapon-card-link:is(:hover, :focus-visible) .gc-card-glow-shell--weapon .weapon-card-strip-pill,
    .gc-event-index-card--interactive:is(:hover, :focus-within) .gc-card-glow-shell--event-index .weapon-card-strip-pill {
        border-color: color-mix(
            in srgb,
            var(--gc-card-glow-hover-border) var(--gc-card-glow-strip-hover-border-mix),
            var(--weapon-card-strip-bg-hover)
        );
        box-shadow: var(--gc-card-glow-hover-shadow);
    }

    a.subscriptions-pricing-card-hit:is(:hover, :focus-visible) .subscriptions-pricing-card-strip-pill {
        border-color: color-mix(
            in srgb,
            var(--gc-card-glow-hover-border) var(--gc-card-glow-strip-hover-border-mix),
            var(--subscriptions-strip-bg-hover)
        );
        box-shadow: var(--gc-card-glow-hover-shadow);
    }

    /* Weapon popup — strip kind-mark на hover всей поверхности (не link-card) */
    .gc-weapon-popup.show:is(:hover, :focus-within) .gc-weapon-popup-strip .weapon-card-strip-pill {
        border-color: color-mix(
            in srgb,
            var(--gc-card-glow-hover-border) var(--gc-card-glow-strip-hover-border-mix),
            var(--weapon-card-strip-bg-hover)
        );
        box-shadow: var(--gc-card-glow-hover-shadow);
    }
}

@media (prefers-reduced-motion: reduce) {
    :root {
        --gc-card-glow-transition-duration: 0ms;
    }

    :is(
        .gc-card-glow-shell,
        .subscriptions-pricing-card-cell--strip,
        .weapon-show-main-strip-panel,
        .weapon-show-sidebar-strip-cell,
        .subscriptions-main-strip-panel,
        .gc-weapon-popup-stack--has-strip,
        .profile-rail-person-tile--action
    ) {
        --gc-card-glow-transition-duration: 0ms;
    }
}

html[data-theme='light'] .gc-card-glow-shell:not(.gc-card-glow-shell--control):not(.gc-card-glow-shell--pill):not(.gc-card-glow-shell--benefit-ticket) {
    --gc-card-glow-hover-edge: color-mix(
        in srgb,
        var(--gc-card-glow-chroma, var(--fill-emphasis)) 46%,
        var(--gc-card-glow-rest-border)
    );
}

/* 1px closed ring (mask), не conic. Rest скрыт — видна native rest-border. Hover — chroma edge. */
.gc-card-glow-shell:not(.gc-card-glow-shell--control):not(.gc-card-glow-shell--pill):not(.gc-card-glow-shell--benefit-ticket):not(.gc-card-glow-shell--pricing)::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: var(--gc-card-glow-radius);
    padding: 1px;
    background: var(--gc-card-glow-hover-edge);
    -webkit-mask:
        linear-gradient(var(--fill-emphasis) 0 0) content-box,
        linear-gradient(var(--fill-emphasis) 0 0);
    mask:
        linear-gradient(var(--fill-emphasis) 0 0) content-box,
        linear-gradient(var(--fill-emphasis) 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    opacity: 0;
    pointer-events: none;
    z-index: 2;
    transition: opacity var(--gc-card-glow-transition-duration, 85ms) var(--gc-card-glow-transition-ease, var(--ease-in));
    filter: none;
    animation: none;
}

.gc-card-glow-shell[data-kind='subscription'] {
    --gc-card-glow-chroma: var(--tint-earth-umber);
}

.gc-card-glow-shell[data-kind='voucher'] {
    --gc-card-glow-chroma: var(--tint-earth-moss);
}

.gc-card-glow-shell[data-kind='discount'] {
    --gc-card-glow-chroma: var(--tint-earth-terra);
}

.gc-card-glow-shell[data-glow-tone='active'] {
    --gc-card-glow-chroma: var(--tint-earth-moss);
}

.gc-card-glow-shell[data-glow-tone='pending'] {
    --gc-card-glow-chroma: var(--tint-earth-terra);
}

.gc-card-glow-shell[data-glow-tone='sale'] {
    --gc-card-glow-chroma: var(--tint-earth-terra-bright);
}

.gc-card-glow-shell[data-glow-tone='favorite'] {
    --gc-card-glow-chroma: var(--tint-earth-umber-bright);
}

.gc-card-glow-shell[data-glow-tone='alpha'] {
    --gc-card-glow-chroma: var(--tint-earth-moss-bright);
}

.gc-card-glow-shell[data-glow-tone='charlie'] {
    --gc-card-glow-chroma: var(--tint-earth-umber-bright);
}

.gc-card-glow-shell[data-glow-tone='delta'] {
    --gc-card-glow-chroma: var(--tint-earth-terra-bright);
}

.gc-card-glow-shell[data-glow-tone='miss'] {
    --gc-card-glow-chroma: var(--border-strong);
}

.gc-card-glow-shell[data-glow-tone='epic'] {
    --gc-card-glow-chroma: var(--accent-violet);
}

.gc-card-glow-shell[data-glow-tone='opinion'] {
    --gc-card-glow-chroma: var(--fill-chromatic-violet);
}

.gc-card-glow-shell[data-glow-tone='gold'] {
    --gc-card-glow-chroma: var(--gc-rank-place-1-bg);
}

.gc-card-glow-shell[data-glow-tone='silver'] {
    --gc-card-glow-chroma: var(--gc-rank-place-2-bg);
}

.gc-card-glow-shell[data-glow-tone='bronze'] {
    --gc-card-glow-chroma: var(--gc-rank-place-3-bg);
}

/* Light — deep chroma: кольцо читается на белом/светлом фоне (CARD_GLOW.md) */
html[data-theme='light'] .gc-card-glow-shell[data-glow-tone='active'] {
    --gc-card-glow-chroma: var(--tint-earth-moss-deep);
}

html[data-theme='light'] .gc-card-glow-shell[data-glow-tone='alpha'] {
    --gc-card-glow-chroma: var(--tint-earth-moss-deep);
}

html[data-theme='light'] .gc-card-glow-shell[data-glow-tone='charlie'] {
    --gc-card-glow-chroma: var(--tint-earth-umber-deep);
}

html[data-theme='light'] .gc-card-glow-shell[data-glow-tone='delta'] {
    --gc-card-glow-chroma: var(--tint-earth-terra-deep);
}

html[data-theme='light'] .gc-card-glow-shell[data-glow-tone='miss'] {
    --gc-card-glow-chroma: var(--fill-emphasis);
}

html[data-theme='light'] .gc-card-glow-shell[data-glow-tone='epic'] {
    --gc-card-glow-chroma: var(--tint-violet-deep);
}

html[data-theme='light'] .gc-card-glow-shell[data-glow-tone='opinion'] {
    --gc-card-glow-chroma: var(--tint-violet-deep);
}

html[data-theme='light'] .gc-card-glow-shell[data-glow-tone='favorite'] {
    --gc-card-glow-chroma: var(--tint-earth-umber-deep);
}

html[data-theme='light'] .gc-card-glow-shell[data-glow-tone='sale'] {
    --gc-card-glow-chroma: var(--tint-earth-terra-deep);
}

html[data-theme='light'] .gc-card-glow-shell[data-glow-tone='pending'] {
    --gc-card-glow-chroma: var(--tint-earth-terra-deep);
}

html[data-theme='light'] .gc-card-glow-shell[data-glow-tone='gold'] {
    --gc-card-glow-chroma: var(--gc-rank-place-1-border);
}

html[data-theme='light'] .gc-card-glow-shell[data-glow-tone='silver'] {
    --gc-card-glow-chroma: var(--gc-rank-place-2-border);
}

html[data-theme='light'] .gc-card-glow-shell[data-glow-tone='bronze'] {
    --gc-card-glow-chroma: var(--gc-rank-place-3-border);
}

.gc-card-glow-shell:not(.gc-card-glow-shell--control):not(.gc-card-glow-shell--pill):not(.gc-card-glow-shell--benefit-ticket):not(.gc-card-glow-shell--weapon):not(.gc-card-glow-shell--event-index):not(.gc-card-glow-shell--post-embed):not(.gc-card-glow-shell--pricing):hover::before,
.gc-card-glow-shell:not(.gc-card-glow-shell--control):not(.gc-card-glow-shell--pill):not(.gc-card-glow-shell--benefit-ticket):not(.gc-card-glow-shell--weapon):not(.gc-card-glow-shell--event-index):not(.gc-card-glow-shell--post-embed):not(.gc-card-glow-shell--pricing):focus-visible::before,
.subscriptions-pricing-card-hit:hover .gc-card-glow-shell:not(.gc-card-glow-shell--control):not(.gc-card-glow-shell--pricing)::before,
.subscriptions-pricing-card-hit:focus-visible .gc-card-glow-shell:not(.gc-card-glow-shell--control):not(.gc-card-glow-shell--pricing)::before,
.weapon-card-link:hover .gc-card-glow-shell:not(.gc-card-glow-shell--control):not(.gc-card-glow-shell--weapon)::before,
.weapon-card-link:focus-visible .gc-card-glow-shell:not(.gc-card-glow-shell--control):not(.gc-card-glow-shell--weapon)::before {
    opacity: 1;
    animation: none;
}

a.subscriptions-hub-card.gc-card-glow-shell {
    border-color: var(--gc-card-glow-rest-border);
}

a.subscriptions-hub-card.gc-card-glow-shell:hover,
a.subscriptions-hub-card.gc-card-glow-shell:focus-visible {
    border-color: transparent;
}

a.subscriptions-hub-card.gc-card-glow-shell:focus-visible {
    outline: var(--gc-focus-outline);
    outline-offset: var(--gc-focus-outline-offset);
}

a.pricing-card.gc-card-glow-shell:hover,
a.pricing-card.gc-card-glow-shell:focus-visible {
    border-color: transparent;
}

a.pricing-card.gc-card-glow-shell:focus-visible {
    outline: var(--gc-focus-outline);
    outline-offset: var(--gc-focus-outline-offset);
}

/* Сетка тарифов: нейтральный edge (не earth chroma на каждой карточке) */
.pricing-grid a.pricing-card.gc-card-glow-shell[data-kind='subscription'] {
    --gc-card-glow-chroma: var(--fill-emphasis-inverse);
}

.gc-card-glow-shell--pricing {
    display: flex;
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    border-radius: var(--gc-card-glow-radius);
}

.gc-card-glow-shell--pricing:not([data-glow-tone]) {
    /* Без active/pending — нейтральный edge, не umber на всех тарифах */
    --gc-card-glow-chroma: var(--fill-emphasis-inverse);
}

.gc-card-glow-shell--pricing > .pricing-card {
    position: relative;
    z-index: 1;
    flex: 1 1 auto;
    width: 100%;
    min-height: 0;
    border-color: var(--gc-card-glow-rest-border);
}

.subscriptions-pricing-card-cell--strip > .gc-card-glow-shell--pricing {
    z-index: 1;
    margin-top: calc(-1 * var(--gc-card-strip-overlap));
}

.subscriptions-pricing-card-cell--strip > .gc-card-glow-shell--pricing > .pricing-card {
    margin-top: 0;
    border-top-color: transparent;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    box-shadow: var(--gc-card-glow-rest-shadow);
    transition: var(--gc-card-glow-transition);
}

/* Strip + card body — catalog surface hover (split shell, без hub ::before) */
.subscriptions-pricing-card-cell--strip .gc-card-glow-shell--pricing::before {
    content: none;
    display: none;
    opacity: 0;
}

@media (hover: hover) and (pointer: fine) {
    a.subscriptions-pricing-card-hit:is(:hover, :focus-visible) .gc-card-glow-shell--pricing > .pricing-card {
        background: var(--gc-card-glow-hover-bg);
        border-color: var(--gc-card-glow-hover-border);
        box-shadow: var(--gc-card-glow-hover-shadow);
    }
}

a.pricing-card.gc-card-glow-shell {
    border-color: var(--gc-card-glow-rest-border);
}

a.pricing-card.gc-card-glow-shell:hover,
a.pricing-card.gc-card-glow-shell:focus-visible {
    border-color: transparent;
}

/* Pill — рецепт kind-mark: chroma fill уже на pill; inset + ровный 1px border. Без conic / outer bloom. */
.gc-card-glow-shell--pill {
    position: relative;
    isolation: isolate;
    z-index: 1;
    --gc-card-glow-radius: var(--radius-full);
    --gc-pill-mark-border: color-mix(in srgb, var(--fill-emphasis-inverse) 16%, transparent);
    --gc-pill-mark-inset: color-mix(in srgb, var(--fill-emphasis-inverse) 10%, transparent);
    border: 1px solid var(--gc-pill-mark-border);
    box-shadow: inset 0 1px 0 var(--gc-pill-mark-inset);
}

.gc-card-glow-shell--pill[data-glow-tone],
.gc-card-glow-shell--pill[data-kind] {
    --gc-pill-mark-border: color-mix(
        in srgb,
        var(--gc-card-glow-chroma, var(--fill-emphasis-inverse)) 22%,
        color-mix(in srgb, var(--fill-emphasis-inverse) 14%, transparent)
    );
}

.gc-card-glow-shell.gc-card-glow-shell--pill::before,
.gc-card-glow-shell.gc-card-glow-shell--pill:hover::before,
.gc-card-glow-shell.gc-card-glow-shell--pill:focus-visible::before {
    content: none;
    display: none;
    opacity: 0;
    animation: none;
    filter: none;
}

html[data-theme='light'] .gc-card-glow-shell--pill {
    --gc-pill-mark-border: color-mix(in srgb, var(--fill-emphasis) 12%, transparent);
    --gc-pill-mark-inset: color-mix(in srgb, var(--fill-emphasis-inverse) 32%, transparent);
}

html[data-theme='light'] .gc-card-glow-shell--pill[data-glow-tone],
html[data-theme='light'] .gc-card-glow-shell--pill[data-kind] {
    --gc-pill-mark-border: color-mix(
        in srgb,
        var(--gc-card-glow-chroma, var(--fill-emphasis)) 18%,
        color-mix(in srgb, var(--fill-emphasis) 10%, transparent)
    );
}

.subscriptions-profile-benefit-tiles {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-3);
    min-width: 0;
}

.subscriptions-profile-benefit-tiles--solo {
    grid-template-columns: 1fr;
}

.subscriptions-profile-benefit-tiles > [role='listitem'] {
    min-width: 0;
    display: flex;
    align-items: flex-start;
}

.subscriptions-profile-benefit-tiles > [role='listitem'] > .subscriptions-profile-benefit-tile,
.subscriptions-profile-benefit-tiles > [role='listitem'] > .subscriptions-profile-benefit-tile-cell {
    width: 100%;
    flex: 0 0 auto;
}

/* Полоса «Новый» из-под билета — тот же overlap, что pricing/weapon card strip */
.subscriptions-profile-benefit-tile-cell {
    isolation: isolate;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    min-width: 0;
    width: 100%;
}

.subscriptions-profile-benefit-tile-cell--strip .subscriptions-profile-benefit-tile-strip-row {
    position: relative;
    z-index: 0;
    display: flex;
    flex-direction: row;
    align-items: stretch;
    width: 100%;
    min-width: 0;
    padding: 0;
}

.subscriptions-profile-benefit-tile-cell--strip > .gc-card-glow-shell--benefit-ticket {
    position: relative;
    z-index: 1;
    margin-top: calc(-1 * var(--gc-card-strip-overlap));
}

.subscriptions-profile-benefit-tile-cell--strip > .gc-card-glow-shell--benefit-ticket > .subscriptions-profile-benefit-tile {
    position: relative;
    z-index: 1;
}

.subscriptions-profile-benefit-tile-strip-pill {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: var(--space-1);
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-height: 0;
    padding: var(--gc-card-strip-padding);
    border-top-left-radius: var(--radius-16);
    border-top-right-radius: var(--radius-16);
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
    background: var(--subscriptions-benefit-strip-bg, var(--tint-tinted-link));
    color: var(--subscriptions-benefit-strip-text, var(--text-primary));
    font-size: var(--font-size-14);
    font-weight: 500;
    line-height: var(--line-height-list-description);
}

.subscriptions-profile-benefit-tile-cell--sm .subscriptions-profile-benefit-tile-strip-pill {
    border-top-left-radius: var(--radius-12);
    border-top-right-radius: var(--radius-12);
}

.subscriptions-profile-benefit-tile-strip-label {
    flex: 1 1 auto;
    min-width: 0;
}

.subscriptions-profile-benefit-carousel {
    display: none;
    position: relative;
    width: 100%;
    min-width: 0;
}

.subscriptions-profile-benefit-carousel-track {
    display: flex;
    gap: var(--space-3);
    overflow-x: auto;
    overflow-y: visible;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-block: var(--space-1);
    min-width: 0;
}

.subscriptions-profile-benefit-carousel-track::-webkit-scrollbar {
    display: none;
}

.subscriptions-profile-benefit-carousel-track > .subscriptions-profile-benefit-tile,
.subscriptions-profile-benefit-carousel-track > .subscriptions-profile-benefit-tile-cell,
.subscriptions-profile-benefit-carousel-track > .gc-card-glow-shell--benefit-ticket {
    scroll-snap-align: start;
    flex: 0 0 calc(85% - var(--space-2));
    min-width: calc(85% - var(--space-2));
    max-width: calc(85% - var(--space-2));
    min-height: 0;
}

.subscriptions-profile-benefit-carousel-track > .gc-card-glow-shell--benefit-ticket {
    display: flex;
    flex-direction: column;
    align-items: stretch;
}

.subscriptions-profile-benefit-carousel-track > .gc-card-glow-shell--benefit-ticket > .subscriptions-profile-benefit-tile,
.subscriptions-profile-benefit-carousel-track > .gc-card-glow-shell--benefit-ticket > button.subscriptions-profile-benefit-tile,
.subscriptions-profile-benefit-carousel-track > .gc-card-glow-shell--benefit-ticket > a.subscriptions-profile-benefit-tile {
    width: 100%;
    flex: 1 1 auto;
}

.subscriptions-profile-benefit-carousel-track--solo > .subscriptions-profile-benefit-tile,
.subscriptions-profile-benefit-carousel-track--solo > .subscriptions-profile-benefit-tile-cell,
.subscriptions-profile-benefit-carousel-track--solo > .gc-card-glow-shell--benefit-ticket {
    flex: 0 0 100%;
    min-width: 100%;
    width: 100%;
    max-width: 100%;
}

.subscriptions-profile-benefit-carousel--solo,
.subscriptions-profile-benefit-carousel-track--solo {
    width: 100%;
    max-width: none;
}

/*
 * Adaptive: full-bleed к краю viewport + peek следующего билета (паритет profile-weapons-carousel).
 * Generic events-carousel-wrapper (calc breakout) клипит по inset колонки — без 100vw нет peek.
 */
@media (max-width: 1279.98px) {
    .page-container-flush.gc-page-grid:has(.subscriptions-section-page .subscriptions-profile-benefit-carousel) .split-layout,
    .split-right.gc-page-grid__main:has(.subscriptions-section-page .subscriptions-profile-benefit-carousel),
    .page-container-flush:has(.subscriptions-section-page .subscriptions-profile-benefit-carousel),
    .gc-inertia-visit-skeleton:has(.subscriptions-section-page .subscriptions-profile-benefit-carousel),
    #gc-inertia-boot:has(.subscriptions-section-page .subscriptions-profile-benefit-carousel),
    .catalog-main.events-index-main:has(.subscriptions-section-page .subscriptions-profile-benefit-carousel) {
        overflow-x: visible;
    }

    .subscriptions-section-page .events-carousel-wrapper.subscriptions-profile-benefit-carousel {
        --gc-carousel-bleed-inset: var(--gc-app-main-inset-x, var(--layout-content-inset-x));
        width: 100vw;
        max-width: 100vw;
        margin-left: calc(50% - 50vw);
        margin-right: 0;
        padding-inline: 0;
        box-sizing: border-box;
    }

    .subscriptions-section-page .events-carousel-wrapper.subscriptions-profile-benefit-carousel [data-gc-carousel-track],
    .subscriptions-section-page .subscriptions-profile-benefit-carousel-track {
        padding-inline: var(--gc-carousel-bleed-inset);
        scroll-padding-inline: var(--gc-carousel-bleed-inset);
    }
}

@media (min-width: 992px) and (max-width: 1279.98px) {
    body:has(.gc-app-rail) .subscriptions-section-page .events-carousel-wrapper.subscriptions-profile-benefit-carousel {
        width: calc(100vw - var(--layout-app-rail-chrome-width));
        max-width: calc(100vw - var(--layout-app-rail-chrome-width));
        margin-left: calc(50% - 50vw + (var(--layout-app-rail-chrome-width) / 2));
    }
}

.subscriptions-profile-benefit-tile {
    --subscriptions-profile-benefit-tile-avatar: var(--gc-list-media-size-sm, 36px);
    --subscriptions-profile-benefit-tile-pad-x: var(--space-4);
    --subscriptions-profile-benefit-tile-pad-y: var(--space-4);
    --subscriptions-profile-benefit-head-col-gap: var(--space-3);
    /* Воздух над линией отрыва (= pad снизу карточки) */
    --subscriptions-profile-benefit-tear-gap: var(--space-4);
    /* Воздух под линией до номинала — меньше, чтобы низ не «раздувался» */
    --subscriptions-profile-benefit-stub-pad-top: var(--space-3);
    --subscriptions-profile-benefit-foot-gap: var(--space-1);
    --subscriptions-profile-benefit-nominal-size: var(--font-size-30);
    --subscriptions-profile-benefit-channel-name-size: var(--font-size-16);
    --subscriptions-profile-benefit-kind-mark-size: var(--font-size-14);
    --subscriptions-profile-benefit-kind-mark-pad-y: var(--space-1-5);
    --subscriptions-profile-benefit-kind-mark-pad-x: var(--space-2-5);
    --subscriptions-profile-benefit-kind-icon-size: var(--font-size-16);
    --subscriptions-profile-benefit-stub-block: calc(
        var(--subscriptions-profile-benefit-stub-pad-top)
        + calc(var(--subscriptions-profile-benefit-nominal-size) * 1.1)
    );
    --subscriptions-profile-benefit-spotlight-x: 50%;
    --subscriptions-profile-benefit-spotlight-y: 50%;
    --subscriptions-profile-benefit-notch-y: calc(
        100%
        - var(--subscriptions-profile-benefit-tile-pad-y)
        - var(--subscriptions-profile-benefit-stub-block)
        - var(--subscriptions-profile-benefit-meta-block, 0px)
    );
    /* Semantic — инвертируется с data-theme (не chromatic fill-emphasis-inverse) */
    --subscriptions-profile-benefit-paper-color: var(--surface-primary);
    --subscriptions-profile-benefit-ink: var(--text-primary);
    --subscriptions-profile-benefit-shadow-ambient: color-mix(in srgb, var(--text-primary) 14%, transparent);
    --subscriptions-profile-benefit-shadow-key: color-mix(in srgb, var(--text-primary) 22%, transparent);
    --subscriptions-profile-benefit-shadow-floor: color-mix(in srgb, var(--text-primary) 10%, transparent);
    /* Перфорация: dark — тёмные дырки, light — светлые (chromatic fill-emphasis / inverse) */
    --subscriptions-profile-benefit-notch-dot: color-mix(
        in srgb,
        var(--fill-emphasis) 50%,
        transparent
    );
    --subscriptions-profile-benefit-rest-border: color-mix(
        in srgb,
        var(--border-default) 54%,
        var(--border-subtle)
    );
    --subscriptions-profile-benefit-tile-border: var(--subscriptions-profile-benefit-rest-border);
    --subscriptions-profile-benefit-tile-elevation:
        0 1px 0 color-mix(in srgb, var(--fill-emphasis-inverse) 18%, transparent),
        0 2px 6px var(--subscriptions-profile-benefit-shadow-ambient),
        0 10px 22px var(--subscriptions-profile-benefit-shadow-key),
        0 18px 36px var(--subscriptions-profile-benefit-shadow-floor);

    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0;
    flex: 0 1 auto;
    min-width: 0;
    min-height: 0;
    padding-top: var(--subscriptions-profile-benefit-tile-pad-y);
    padding-bottom: var(--subscriptions-profile-benefit-tile-pad-y);
    padding-inline: var(--subscriptions-profile-benefit-tile-pad-x);
    border: 0;
    border-radius: var(--radius-16);
    background: var(--subscriptions-profile-benefit-paper-color);
    text-decoration: none;
    color: var(--subscriptions-profile-benefit-ink);
    box-sizing: border-box;
    overflow: visible;
    box-shadow: var(--subscriptions-profile-benefit-tile-elevation);
    transition:
        transform var(--transition-fast),
        background var(--transition-fast),
        box-shadow var(--transition-fast);
}

/* Ticket-mask только на корне — псевдослои клипуются вместе с билетом, без двойных вырезов */
.subscriptions-profile-benefit-tile {
    -webkit-mask:
        radial-gradient(
            circle at 0 var(--subscriptions-profile-benefit-notch-y),
            transparent 0 calc(var(--space-2) - 2px),
            #000 calc(var(--space-2) - 1px)
        ) left top / 51% 100% no-repeat,
        radial-gradient(
            circle at 100% var(--subscriptions-profile-benefit-notch-y),
            transparent 0 calc(var(--space-2) - 2px),
            #000 calc(var(--space-2) - 1px)
        ) right top / 51% 100% no-repeat;
    mask:
        radial-gradient(
            circle at 0 var(--subscriptions-profile-benefit-notch-y),
            transparent 0 calc(var(--space-2) - 2px),
            #000 calc(var(--space-2) - 1px)
        ) left top / 51% 100% no-repeat,
        radial-gradient(
            circle at 100% var(--subscriptions-profile-benefit-notch-y),
            transparent 0 calc(var(--space-2) - 2px),
            #000 calc(var(--space-2) - 1px)
        ) right top / 51% 100% no-repeat;
}

.subscriptions-profile-benefit-tile::after {
    content: '';
    position: absolute;
    z-index: 0;
    inset: 0;
    border-radius: inherit;
    background:
        linear-gradient(
            180deg,
            color-mix(in srgb, var(--fill-emphasis-inverse) 12%, transparent) 0%,
            transparent 22%
        ),
        linear-gradient(
            0deg,
            color-mix(in srgb, var(--fill-emphasis) 5%, transparent) 0%,
            transparent 18%
        );
    box-shadow:
        inset 0 0 0 1px var(--subscriptions-profile-benefit-tile-border),
        inset 0 1px 0 color-mix(in srgb, var(--fill-emphasis-inverse) 14%, transparent),
        inset 0 -1px 0 color-mix(in srgb, var(--fill-emphasis) 4%, transparent);
    pointer-events: none;
}

.subscriptions-profile-benefit-tile::before {
    content: '';
    position: absolute;
    z-index: 1;
    inset: 0;
    background:
        radial-gradient(
            ellipse 90% 70% at 8% 0%,
            color-mix(in srgb, var(--fill-emphasis-inverse) 16%, transparent) 0%,
            transparent 68%
        );
    border-radius: inherit;
    opacity: 0.18;
    transition: opacity var(--transition-fast);
    pointer-events: none;
}

.subscriptions-profile-benefit-tile > * {
    position: relative;
    z-index: 2;
}

.subscriptions-profile-benefit-tile > .subscriptions-profile-benefit-tile__foot {
    position: static;
    z-index: 2;
}

/* Линия отрыва: перфорация + дуги границы — одна ось `notch-y` от корня билета */
.subscriptions-profile-benefit-tile > .subscriptions-profile-benefit-tile__tear {
    position: absolute;
    top: var(--subscriptions-profile-benefit-notch-y);
    left: var(--subscriptions-profile-benefit-tile-pad-x);
    right: var(--subscriptions-profile-benefit-tile-pad-x);
    height: var(--space-1);
    transform: translateY(-50%);
    z-index: 4;
    pointer-events: none;
    background-image: radial-gradient(
        circle,
        var(--subscriptions-profile-benefit-notch-dot) 0 1.75px,
        transparent 2px
    );
    background-position: center;
    background-repeat: space no-repeat;
    background-size: var(--space-3) var(--space-1);
}

.subscriptions-profile-benefit-tile__tear::before,
.subscriptions-profile-benefit-tile__tear::after {
    content: '';
    position: absolute;
    top: 50%;
    z-index: 1;
    width: calc(var(--space-2) * 2);
    height: calc(var(--space-2) * 2);
    border: 1px solid var(--subscriptions-profile-benefit-tile-border);
    border-radius: var(--radius-full);
    background: transparent;
    box-sizing: border-box;
    pointer-events: none;
    transition: border-color var(--transition-fast);
}

.subscriptions-profile-benefit-tile__tear::before {
    left: calc(-1 * var(--subscriptions-profile-benefit-tile-pad-x));
    transform: translate3d(-50%, -50%, 0);
    clip-path: inset(0 0 0 50%);
}

.subscriptions-profile-benefit-tile__tear::after {
    right: calc(-1 * var(--subscriptions-profile-benefit-tile-pad-x));
    transform: translate3d(50%, -50%, 0);
    clip-path: inset(0 50% 0 0);
}

a.subscriptions-profile-benefit-tile:hover,
button.subscriptions-profile-benefit-tile:hover,
a.subscriptions-profile-benefit-tile:focus-visible,
button.subscriptions-profile-benefit-tile:focus-visible {
    --subscriptions-profile-benefit-shadow-ambient: color-mix(in srgb, var(--text-primary) 18%, transparent);
    --subscriptions-profile-benefit-shadow-key: color-mix(in srgb, var(--text-primary) 28%, transparent);
    --subscriptions-profile-benefit-shadow-floor: color-mix(in srgb, var(--text-primary) 14%, transparent);
    --subscriptions-profile-benefit-hover-ring: color-mix(
        in srgb,
        var(--subscriptions-profile-benefit-kind-chroma, var(--fill-emphasis-inverse)) 44%,
        var(--subscriptions-profile-benefit-rest-border)
    );
    --subscriptions-profile-benefit-tile-border: var(--subscriptions-profile-benefit-hover-ring);
    --subscriptions-profile-benefit-tile-elevation:
        0 1px 0 color-mix(in srgb, var(--fill-emphasis-inverse) 24%, transparent),
        0 4px 10px var(--subscriptions-profile-benefit-shadow-ambient),
        0 14px 30px var(--subscriptions-profile-benefit-shadow-key),
        0 24px 44px var(--subscriptions-profile-benefit-shadow-floor);

    color: var(--subscriptions-profile-benefit-ink);
    transform: translate3d(0, calc(-1 * var(--space-1) / 2), 0);
}

button.subscriptions-profile-benefit-tile {
    display: flex;
    flex-direction: column;
    width: 100%;
    margin: 0;
    /* Не сбрасывать padding/background — билет строится на mask + gloss (::after) */
    font: inherit;
    text-align: inherit;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
}

@media (hover: hover) and (pointer: fine) {
    button.subscriptions-profile-benefit-tile:hover::before,
    a.subscriptions-profile-benefit-tile:hover::before {
        opacity: 0.28;
    }
}

button.subscriptions-profile-benefit-tile:focus-visible {
    outline: var(--gc-focus-outline);
    outline-offset: var(--gc-focus-outline-offset);
}

a.subscriptions-profile-benefit-tile:focus-visible {
    outline: var(--gc-focus-outline);
    outline-offset: var(--gc-focus-outline-offset);
}

/* Kind tints — Figma Tint/Earth (абонемент / ваучер / скидка) */
.subscriptions-profile-benefit-tile[data-kind='subscription'] {
    --subscriptions-profile-benefit-paper-tint: var(--tint-tinted-earth-umber);
    --subscriptions-profile-benefit-kind-chroma: var(--tint-earth-umber);
    --subscriptions-profile-benefit-kind-mark-chroma: var(--tint-earth-umber-bright);
}

.subscriptions-profile-benefit-tile[data-kind='voucher'] {
    --subscriptions-profile-benefit-paper-tint: var(--tint-tinted-earth-moss);
    --subscriptions-profile-benefit-kind-chroma: var(--tint-earth-moss);
    --subscriptions-profile-benefit-kind-mark-chroma: var(--tint-earth-moss-bright);
}

.subscriptions-profile-benefit-tile[data-kind='discount'] {
    --subscriptions-profile-benefit-paper-tint: var(--tint-tinted-earth-terra);
    --subscriptions-profile-benefit-kind-chroma: var(--tint-earth-terra);
    --subscriptions-profile-benefit-kind-mark-chroma: var(--tint-earth-terra-bright);
}

.subscriptions-profile-benefit-tile[data-kind] {
    --subscriptions-profile-benefit-paper-color: var(--subscriptions-profile-benefit-paper-tint);
    --subscriptions-profile-benefit-rest-border: color-mix(
        in srgb,
        var(--subscriptions-profile-benefit-kind-chroma) 30%,
        color-mix(in srgb, var(--border-default) 46%, var(--border-subtle))
    );
    background: var(--subscriptions-profile-benefit-paper-color);
}

.subscriptions-profile-benefit-tile--archived[data-kind] {
    --subscriptions-profile-benefit-paper-color: color-mix(
        in srgb,
        var(--surface-primary) 68%,
        var(--subscriptions-profile-benefit-paper-tint)
    );
    --subscriptions-profile-benefit-shadow-ambient: color-mix(in srgb, var(--text-primary) 6%, transparent);
    --subscriptions-profile-benefit-shadow-key: color-mix(in srgb, var(--text-primary) 9%, transparent);
    --subscriptions-profile-benefit-kind-chroma: var(--text-secondary);
    --subscriptions-profile-benefit-notch-dot: color-mix(in srgb, var(--fill-emphasis) 32%, transparent);
    background: var(--subscriptions-profile-benefit-paper-color);
}

.subscriptions-profile-benefit-tile--archived[data-kind]::after {
    background: linear-gradient(
        180deg,
        color-mix(in srgb, var(--fill-emphasis-inverse) 4%, transparent) 0%,
        transparent 36%
    );
}

.subscriptions-profile-benefit-tile-cell:has(.subscriptions-profile-benefit-tile[data-kind='subscription']) {
    --subscriptions-benefit-strip-bg: color-mix(
        in srgb,
        var(--tint-earth-umber) 18%,
        var(--tint-tinted-earth-umber)
    );
}

.subscriptions-profile-benefit-tile-cell:has(.subscriptions-profile-benefit-tile[data-kind='voucher']) {
    --subscriptions-benefit-strip-bg: color-mix(
        in srgb,
        var(--tint-earth-moss) 18%,
        var(--tint-tinted-earth-moss)
    );
}

.subscriptions-profile-benefit-tile-cell:has(.subscriptions-profile-benefit-tile[data-kind='discount']) {
    --subscriptions-benefit-strip-bg: color-mix(
        in srgb,
        var(--tint-earth-terra) 18%,
        var(--tint-tinted-earth-terra)
    );
}

.subscriptions-profile-benefit-tile--skeleton {
    pointer-events: none;
    cursor: default;
}

.subscriptions-profile-benefit-tile--skeleton .gc-skeleton-text {
    margin-bottom: 0;
}

/* Специфичность выше `.gc-skeleton.gc-skeleton-avatar` (48px) — live avatar = 36 */
.subscriptions-profile-benefit-tile--skeleton .gc-skeleton.subscriptions-profile-benefit-tile__avatar-bone {
    grid-column: 1;
    align-self: center;
    flex: none;
    width: var(--subscriptions-profile-benefit-tile-avatar);
    height: var(--subscriptions-profile-benefit-tile-avatar);
    border-radius: var(--radius-full);
}

.subscriptions-profile-benefit-tile--skeleton .subscriptions-profile-benefit-tile__channel-name-bone {
    grid-column: 2;
    width: 100%;
    max-width: 11rem;
    min-width: 0;
    height: calc(var(--subscriptions-profile-benefit-channel-name-size) * 1.25);
}

.subscriptions-profile-benefit-tile--skeleton .subscriptions-profile-benefit-tile__kind-mark-bone {
    display: block;
    grid-column: 3;
    justify-self: end;
    align-self: center;
    width: 4.25rem;
    height: var(--font-size-14);
    margin: 0;
    border-radius: var(--radius-4);
}

.subscriptions-profile-benefit-tile--skeleton .subscriptions-profile-benefit-tile__foot {
    min-height: 0;
}

/* Номинал = live line-height 1.1 — иначе stub-block / notch-y разъедутся с костью */
.subscriptions-profile-benefit-tile--skeleton .subscriptions-profile-benefit-tile__nominal-bone {
    display: block;
    width: 40%;
    max-width: 8rem;
    height: calc(var(--subscriptions-profile-benefit-nominal-size) * 1.1);
    margin: 0;
    border-radius: var(--radius-8);
}

/* Класс `__meta` включает --meta-block в notch-y (mask + точки на одной оси) */
.subscriptions-profile-benefit-tile--skeleton .subscriptions-profile-benefit-tile__meta {
    display: block;
    width: 55%;
    max-width: 9rem;
    height: calc(var(--font-size-13) * 1.25);
    margin: 0;
    border-radius: var(--radius-8);
}

/* Hub underline tabs — кости подписи (стили таба — tabs.css § Hub underline) */
.subscriptions-profile-hub-tabs.gc-tabs.gc-tabs--underline .gc-tab-link .gc-skeleton {
    display: block;
    width: 5.5rem;
    height: var(--font-size-14);
    margin: 0;
}

.subscriptions-profile-hub-tabs.gc-tabs.gc-tabs--underline .gc-tab-item:first-child .gc-tab-link .gc-skeleton {
    width: 6.5rem;
}

.subscriptions-profile-benefit-tile__head {
    position: relative;
    z-index: 3;
    display: grid;
    grid-template-columns: var(--subscriptions-profile-benefit-tile-avatar) minmax(0, 1fr) auto;
    column-gap: var(--subscriptions-profile-benefit-head-col-gap);
    align-items: center;
    min-width: 0;
}

.subscriptions-profile-benefit-tile__avatar.gc-list-avatar {
    grid-column: 1;
    align-self: center;
    --gc-list-media-size: var(--subscriptions-profile-benefit-tile-avatar);
    width: var(--subscriptions-profile-benefit-tile-avatar);
    height: var(--subscriptions-profile-benefit-tile-avatar);
}

.subscriptions-profile-benefit-tile__channel-name {
    grid-column: 2;
    margin: 0;
    min-width: 0;
    font-size: var(--subscriptions-profile-benefit-channel-name-size);
    font-weight: 500;
    line-height: 1.25;
    color: var(--subscriptions-profile-benefit-ink);
}

.subscriptions-profile-benefit-tile__kind-mark {
    grid-column: 3;
    justify-self: end;
    align-self: center;
    display: inline-flex;
    align-items: center;
    gap: var(--space-1-5);
    padding: var(--subscriptions-profile-benefit-kind-mark-pad-y) var(--subscriptions-profile-benefit-kind-mark-pad-x);
    border-radius: var(--radius-8);
    border: 0;
    background: color-mix(
        in srgb,
        var(--subscriptions-profile-benefit-ink) 8%,
        transparent
    );
    font-size: var(--subscriptions-profile-benefit-kind-mark-size);
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: -0.01em;
    color: color-mix(
        in srgb,
        var(--subscriptions-profile-benefit-ink) 72%,
        transparent
    );
    white-space: nowrap;
}

.subscriptions-profile-benefit-tile[data-kind] .subscriptions-profile-benefit-tile__kind-mark {
    background: color-mix(
        in srgb,
        var(--subscriptions-profile-benefit-kind-mark-chroma, var(--subscriptions-profile-benefit-kind-chroma)) 38%,
        var(--fill-emphasis)
    );
    border: 1px solid color-mix(in srgb, var(--fill-emphasis-inverse) 22%, transparent);
    color: color-mix(
        in srgb,
        var(--fill-emphasis-inverse) 96%,
        var(--subscriptions-profile-benefit-kind-mark-chroma, var(--subscriptions-profile-benefit-kind-chroma))
    );
    box-shadow:
        inset 0 1px 0 color-mix(in srgb, var(--fill-emphasis-inverse) 16%, transparent);
}

.subscriptions-profile-benefit-tile[data-kind] .subscriptions-profile-benefit-tile__kind-icon {
    color: color-mix(
        in srgb,
        var(--fill-emphasis-inverse) 92%,
        var(--subscriptions-profile-benefit-kind-mark-chroma, var(--subscriptions-profile-benefit-kind-chroma))
    );
}

.subscriptions-profile-benefit-tile__kind-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--subscriptions-profile-benefit-kind-icon-size);
    height: var(--subscriptions-profile-benefit-kind-icon-size);
    color: inherit;
    font-size: var(--subscriptions-profile-benefit-kind-icon-size);
    line-height: 1;
    flex-shrink: 0;
}

.subscriptions-profile-benefit-tile__avatar-bone {
    grid-column: 1;
    align-self: center;
    width: var(--subscriptions-profile-benefit-tile-avatar, 36px);
    height: var(--subscriptions-profile-benefit-tile-avatar, 36px);
    border-radius: var(--radius-full);
}

.subscriptions-profile-benefit-tile__meta {
    margin: 0;
    min-width: 0;
    font-size: var(--font-size-13);
    font-weight: 400;
    line-height: var(--gc-list-meta-line-height, 1.25);
    color: color-mix(
        in srgb,
        var(--subscriptions-profile-benefit-ink) 68%,
        transparent
    );
}

.subscriptions-profile-benefit-tile:has(.subscriptions-profile-benefit-tile__meta) {
    --subscriptions-profile-benefit-meta-block: calc(
        var(--subscriptions-profile-benefit-foot-gap)
        + calc(var(--font-size-13) * 1.25)
    );
}

.subscriptions-profile-benefit-tile__foot {
    margin-top: var(--subscriptions-profile-benefit-tear-gap);
    padding-top: var(--subscriptions-profile-benefit-stub-pad-top);
    display: flex;
    flex-direction: column;
    gap: var(--subscriptions-profile-benefit-foot-gap);
    min-width: 0;
}

/* Shell: border-glow кольцо + drop-shadow по силуэту билета (боковые вырезы) */
@property --gc-card-glow-angle {
    syntax: '<angle>';
    inherits: false;
    initial-value: 0deg;
}

@keyframes gc-card-glow-spin {
    to {
        --gc-card-glow-angle: 360deg;
    }
}

/* Билет льготы: mask + border arcs, без conic ::before базового shell */
.gc-card-glow-shell--benefit-ticket {
    --subscriptions-profile-benefit-rest-border: color-mix(
        in srgb,
        var(--border-default) 54%,
        var(--border-subtle)
    );
    --subscriptions-profile-benefit-tile-border: var(--subscriptions-profile-benefit-rest-border);

    position: relative;
    width: 100%;
    min-width: 0;
    overflow: visible;
    isolation: auto;
}

.gc-card-glow-shell--benefit-ticket::before {
    content: none;
    display: none;
}

.gc-card-glow-shell--benefit-ticket[data-kind='subscription'] {
    --gc-card-glow-chroma: var(--tint-earth-umber);
    --subscriptions-profile-benefit-tile-border: color-mix(
        in srgb,
        var(--tint-earth-umber) 30%,
        color-mix(in srgb, var(--border-default) 46%, var(--border-subtle))
    );
}

.gc-card-glow-shell--benefit-ticket[data-kind='voucher'] {
    --gc-card-glow-chroma: var(--tint-earth-moss);
    --subscriptions-profile-benefit-tile-border: color-mix(
        in srgb,
        var(--tint-earth-moss) 30%,
        color-mix(in srgb, var(--border-default) 46%, var(--border-subtle))
    );
}

.gc-card-glow-shell--benefit-ticket[data-kind='discount'] {
    --gc-card-glow-chroma: var(--tint-earth-terra);
    --subscriptions-profile-benefit-tile-border: color-mix(
        in srgb,
        var(--tint-earth-terra) 30%,
        color-mix(in srgb, var(--border-default) 46%, var(--border-subtle))
    );
}

.gc-card-glow-shell--benefit-ticket:has(> .subscriptions-profile-benefit-tile:hover),
.gc-card-glow-shell--benefit-ticket:has(> .subscriptions-profile-benefit-tile:focus-visible) {
    --subscriptions-profile-benefit-tile-border: color-mix(
        in srgb,
        var(--gc-card-glow-chroma, var(--fill-emphasis-inverse)) 44%,
        var(--subscriptions-profile-benefit-rest-border)
    );
}

html[data-theme='light'] .subscriptions-profile-benefit-tile::after {
    box-shadow:
        inset 0 0 0 1px var(--subscriptions-profile-benefit-tile-border),
        inset 0 1px 0 color-mix(in srgb, var(--fill-emphasis-inverse) 14%, transparent),
        inset 0 -1px 0 color-mix(in srgb, var(--fill-emphasis) 4%, transparent);
}

html[data-theme='light'] .subscriptions-profile-benefit-tile {
    --subscriptions-profile-benefit-notch-dot: color-mix(
        in srgb,
        var(--fill-emphasis-inverse) 52%,
        transparent
    );
}

html[data-theme='light'] .subscriptions-profile-benefit-tile[data-kind='subscription'] {
    --subscriptions-profile-benefit-kind-mark-chroma: var(--tint-earth-umber-deep);
}

html[data-theme='light'] .subscriptions-profile-benefit-tile[data-kind='voucher'] {
    --subscriptions-profile-benefit-kind-mark-chroma: var(--tint-earth-moss-deep);
}

html[data-theme='light'] .subscriptions-profile-benefit-tile[data-kind='discount'] {
    --subscriptions-profile-benefit-kind-mark-chroma: var(--tint-earth-terra-deep);
}

html[data-theme='light'] .subscriptions-profile-benefit-tile[data-kind] .subscriptions-profile-benefit-tile__kind-mark {
    background: color-mix(
        in srgb,
        var(--subscriptions-profile-benefit-kind-mark-chroma, var(--subscriptions-profile-benefit-kind-chroma)) 28%,
        var(--fill-emphasis-inverse)
    );
    border: 1px solid color-mix(in srgb, var(--fill-emphasis) 16%, transparent);
    color: color-mix(
        in srgb,
        var(--fill-emphasis) 90%,
        var(--subscriptions-profile-benefit-kind-mark-chroma, var(--subscriptions-profile-benefit-kind-chroma))
    );
    box-shadow:
        inset 0 1px 0 color-mix(in srgb, var(--fill-emphasis-inverse) 72%, transparent);
}

html[data-theme='light'] .subscriptions-profile-benefit-tile[data-kind] .subscriptions-profile-benefit-tile__kind-icon {
    color: color-mix(
        in srgb,
        var(--fill-emphasis) 84%,
        var(--subscriptions-profile-benefit-kind-mark-chroma, var(--subscriptions-profile-benefit-kind-chroma))
    );
}

@media (prefers-color-scheme: light) {
    html:not([data-theme]) .subscriptions-profile-benefit-tile {
        --subscriptions-profile-benefit-notch-dot: color-mix(
            in srgb,
            var(--fill-emphasis-inverse) 52%,
            transparent
        );
    }

    html:not([data-theme]) .subscriptions-profile-benefit-tile[data-kind='subscription'] {
        --subscriptions-profile-benefit-kind-mark-chroma: var(--tint-earth-umber-deep);
    }

    html:not([data-theme]) .subscriptions-profile-benefit-tile[data-kind='voucher'] {
        --subscriptions-profile-benefit-kind-mark-chroma: var(--tint-earth-moss-deep);
    }

    html:not([data-theme]) .subscriptions-profile-benefit-tile[data-kind='discount'] {
        --subscriptions-profile-benefit-kind-mark-chroma: var(--tint-earth-terra-deep);
    }

    html:not([data-theme]) .subscriptions-profile-benefit-tile[data-kind] .subscriptions-profile-benefit-tile__kind-mark {
        background: color-mix(
            in srgb,
            var(--subscriptions-profile-benefit-kind-mark-chroma, var(--subscriptions-profile-benefit-kind-chroma)) 28%,
            var(--fill-emphasis-inverse)
        );
        border: 1px solid color-mix(in srgb, var(--fill-emphasis) 16%, transparent);
        color: color-mix(
            in srgb,
            var(--fill-emphasis) 90%,
            var(--subscriptions-profile-benefit-kind-mark-chroma, var(--subscriptions-profile-benefit-kind-chroma))
        );
        box-shadow:
            inset 0 1px 0 color-mix(in srgb, var(--fill-emphasis-inverse) 72%, transparent);
    }

    html:not([data-theme]) .subscriptions-profile-benefit-tile[data-kind] .subscriptions-profile-benefit-tile__kind-icon {
        color: color-mix(
            in srgb,
            var(--fill-emphasis) 84%,
            var(--subscriptions-profile-benefit-kind-mark-chroma, var(--subscriptions-profile-benefit-kind-chroma))
        );
    }
}

.subscriptions-profile-benefit-tile--archived .subscriptions-profile-benefit-tile__kind-icon,
.subscriptions-profile-benefit-tile--archived .subscriptions-profile-benefit-tile__nominal {
    color: color-mix(
        in srgb,
        var(--subscriptions-profile-benefit-ink) 52%,
        transparent
    );
}

.subscriptions-profile-benefit-tile__nominal {
    margin: 0;
    font-size: var(--subscriptions-profile-benefit-nominal-size);
    font-weight: 700;
    line-height: 1.1;
    color: var(--subscriptions-profile-benefit-ink);
    letter-spacing: -0.03em;
    font-variant-numeric: tabular-nums;
}

.subscriptions-profile-benefit-tile__nominal--contextual {
    font-weight: 400;
    letter-spacing: normal;
}

.subscriptions-profile-benefit-tile__nominal--contextual .event-price-new,
.subscriptions-profile-benefit-tile__nominal--contextual .event-price-voucher-debit {
    font-weight: 700;
    letter-spacing: -0.03em;
}

/* sm — context rail профиля (~320); md — сетка хаба; lg — solo */
.subscriptions-profile-benefit-tile--sm {
    --subscriptions-profile-benefit-tile-avatar: var(--gc-list-media-size-xs, 28px);
    --subscriptions-profile-benefit-tile-pad-x: var(--space-3);
    --subscriptions-profile-benefit-tile-pad-y: var(--space-3);
    --subscriptions-profile-benefit-head-col-gap: var(--space-2);
    --subscriptions-profile-benefit-tear-gap: var(--space-4);
    --subscriptions-profile-benefit-stub-pad-top: var(--space-3);
    --subscriptions-profile-benefit-nominal-size: var(--font-size-20);
    --subscriptions-profile-benefit-channel-name-size: var(--font-size-14);
    --subscriptions-profile-benefit-kind-mark-size: var(--font-size-12);
    --subscriptions-profile-benefit-kind-mark-pad-y: var(--space-1);
    --subscriptions-profile-benefit-kind-mark-pad-x: var(--space-1-5);
    --subscriptions-profile-benefit-kind-icon-size: var(--font-size-14);
    border-radius: var(--radius-12);
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.subscriptions-profile-benefit-tile--sm .subscriptions-profile-benefit-tile__kind-mark {
    max-width: 7.5rem;
    overflow: hidden;
    text-overflow: ellipsis;
}

.subscriptions-profile-benefit-tile--sm::after {
    border-radius: calc(var(--radius-12) - 1px);
}

.subscriptions-profile-benefit-tile--lg,
.subscriptions-profile-benefit-tiles--solo .subscriptions-profile-benefit-tile,
.subscriptions-profile-benefit-carousel--solo .subscriptions-profile-benefit-tile {
    --subscriptions-profile-benefit-nominal-size: var(--font-size-36);
    --subscriptions-profile-benefit-tile-pad-y: var(--space-4);
    --subscriptions-profile-benefit-tear-gap: var(--space-4);
    --subscriptions-profile-benefit-stub-pad-top: var(--space-3);
    --subscriptions-profile-benefit-channel-name-size: var(--font-size-16);
}

@media (max-width: 767.98px) {
    .subscriptions-profile-benefit-tiles--grid {
        display: none;
    }

    .subscriptions-profile-benefit-tiles--grid.subscriptions-profile-benefit-tiles--solo {
        display: grid;
        width: 100%;
    }

    .subscriptions-profile-benefit-carousel {
        display: block;
    }

    .subscriptions-profile-benefit-carousel.subscriptions-profile-benefit-carousel--solo {
        display: none;
    }

    .subscriptions-profile-benefit-carousel .carousel-nav {
        display: none;
    }

    .subscriptions-profile-benefit-tile:not(.subscriptions-profile-benefit-tile--sm) {
        --subscriptions-profile-benefit-nominal-size: var(--font-size-24);
        --subscriptions-profile-benefit-tile-pad-y: var(--space-4);
        --subscriptions-profile-benefit-tear-gap: var(--space-4);
        --subscriptions-profile-benefit-stub-pad-top: var(--space-3);

        min-height: 0;
    }

    .subscriptions-profile-benefit-tile--lg:not(.subscriptions-profile-benefit-tile--sm),
    .subscriptions-profile-benefit-tiles--solo .subscriptions-profile-benefit-tile,
    .subscriptions-profile-benefit-carousel--solo .subscriptions-profile-benefit-tile {
        --subscriptions-profile-benefit-nominal-size: var(--font-size-24);
        --subscriptions-profile-benefit-tile-pad-y: var(--space-4);
        --subscriptions-profile-benefit-tear-gap: var(--space-4);
        --subscriptions-profile-benefit-stub-pad-top: var(--space-3);
    }
}

.subscriptions-owner-dashboard-stack {
    margin-top: var(--space-1);
}

/* Страница раздела подписок + лента применений */
/* Действия над лентой по дням (без отдельного заголовка-ряда) */
.subscriptions-benefit-feed-toolbar {
    display: flex;
    justify-content: flex-end;
    margin-bottom: var(--space-2);
    min-width: 0;
}

.subscriptions-benefit-feed-toolbar-actions {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
}

.subscription-list-archive-btn.gc-list-item {
    width: 100%;
    text-align: left;
}

button.gc-list-item.subscription-list-archive-btn {
    border: 0;
    background: transparent;
    font: inherit;
    color: inherit;
}

.subscriptions-member-benefits-hub.gc-panel--open-section,
.subscriptions-member-benefits-hub .gc-open-list-section--framed {
    overflow: visible;
}

/* Lead-иконка мероприятия в list-open шапке кластера (fallback без eventCard) */
.subscriptions-benefit-feed-cluster .gc-section-header-trigger__lead {
    color: var(--text-secondary);
}

.subscriptions-benefit-feed-cluster .gc-section-header-trigger__lead i {
    font-size: var(--font-size-base);
}

/* Шапка кластера: flush EventIndexCard v2.1 (BenefitSidepageEventCard::feedCluster) */
.gc-open-list-section--framed.subscriptions-benefit-feed-cluster-section--event-card:not(.gc-open-list-section--header-above) > .gc-open-list-section-chrome,
.gc-open-list-section--framed.gc-open-list-section--event-card-flush:not(.gc-open-list-section--header-above) > .gc-open-list-section-chrome {
    padding: 0;
    gap: 0;
    border-bottom: none;
}

.subscriptions-benefit-feed-cluster-header--flush,
.gc-open-list-event-card-flush {
    position: relative;
    min-width: 0;
    width: 100%;
}

.subscriptions-benefit-feed-cluster-header--flush .gc-event-index-card,
.gc-open-list-event-card-flush .gc-event-index-card {
    width: 100%;
}

.subscriptions-benefit-feed-cluster-header--flush .gc-event-index-card-v2-1__unit,
.gc-open-list-event-card-flush .gc-event-index-card-v2-1__unit {
    gap: 0;
    width: 100%;
}

.subscriptions-benefit-feed-cluster-header--flush .gc-event-index-card-v2-1__card-shell,
.subscriptions-benefit-feed-cluster-header--flush .gc-card-glow-shell--event-index,
.gc-open-list-event-card-flush .gc-event-index-card-v2-1__card-shell,
.gc-open-list-event-card-flush .gc-card-glow-shell--event-index {
    width: 100%;
    border-radius: 0;
}

.subscriptions-benefit-feed-cluster-header--flush .gc-event-index-card-v2-1__surface,
.gc-open-list-event-card-flush .gc-event-index-card-v2-1__surface {
    height: auto;
    min-height: 0;
    justify-content: flex-start;
    gap: var(--space-3);
    border-radius: 0;
    border-top: none;
    border-left: none;
    border-right: none;
    border-bottom: 1px solid var(--border-subtle);
    box-shadow: none;
}

/*
 * Каталог на <992 фиксирует placeholder 168px (events-list.css, 0,5,0).
 * Flush-шапка кластера — полоса по контенту, не кадр каталога.
 */
:is(.gc-open-list-event-card-flush, .subscriptions-benefit-feed-cluster-header--flush)
    .gc-event-index-card--v2-1:not(.gc-event-index-card--v2-1-grid):not(.gc-event-index-card--history-feed-embed)
    .gc-event-index-card-v2-1__surface.gc-event-index-card-v2-1__surface--placeholder {
    height: auto;
    min-height: 0;
    justify-content: flex-start;
    gap: var(--space-3);
}

/* Аватары каталога — на page; в кластере люди уже строками ниже */
:is(.gc-open-list-event-card-flush, .subscriptions-benefit-feed-cluster-header--flush)
    .gc-event-index-card-v2-1__participants-rail {
    display: none;
}

.subscriptions-benefit-feed-cluster-header--flush .gc-event-index-card-v2-1__surface--photo,
.gc-open-list-event-card-flush .gc-event-index-card-v2-1__surface--photo {
    border: none;
    border-bottom: 1px solid var(--border-subtle);
    box-shadow: none;
}

.subscriptions-benefit-feed-cluster-header--flush .gc-event-index-card-v2-1__media-cover,
.gc-open-list-event-card-flush .gc-event-index-card-v2-1__media-cover {
    border-radius: 0;
}

.subscriptions-benefit-feed-cluster-header--flush .gc-card-glow-shell--event-index > .gc-event-index-card-v2-1__surface--placeholder,
.gc-open-list-event-card-flush .gc-card-glow-shell--event-index > .gc-event-index-card-v2-1__surface--placeholder {
    box-shadow: none;
}

.gc-open-list-event-card-flush > .gc-list-actions {
    position: absolute;
    top: var(--space-2);
    right: var(--space-2);
    z-index: 2;
}

/* Ширина цепочки медиа в ленте льгот (все контексты) */
.subscriptions-benefit-feed-item__media-chain {
    width: var(--gc-list-media-size);
    min-width: var(--gc-list-media-size);
    display: inline-flex;
    justify-content: center;
    align-items: center;
}

/* Владелец канала: иконка действия + аватар участника */
.subscriptions-benefit-feed-item__media-chain--dual {
    width: auto;
    min-width: 0;
    gap: var(--space-1);
    justify-content: flex-start;
}

/* .sm в media-chain — base (40px), не compact (36px) */
.subscriptions-benefit-feed-item__media-chain .gc-list-media-icon.sm {
    --gc-list-media-size: var(--gc-list-media-size-base);
}

/* subscriptions-benefit-feed-entry-detail — gc-list-entry-detail; см. lists.css, LIST_STACK.md */

/* Хаб: вторая строка «… → …» (абонемент / скидка / ваучер) — одна строка с ellipsis */
.subscriptions-benefit-feed-item .subscriptions-member-hub-benefit-meta-line.subscriptions-member-hub-benefit-meta-line--combined .subscriptions-member-hub-benefit-meta-line-text {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.subscriptions-benefit-feed-days-stack {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    margin-top: 0;
    min-width: 0;
}

/* День / canvas-группа: статичный H4 + стек framed OpenListSection (кластеры) */
.subscriptions-benefit-feed-day,
.gc-open-list-canvas-group {
    display: flex;
    flex-direction: column;
    gap: var(--gc-list-section-header-gap);
    min-width: 0;
}

.subscriptions-benefit-feed-day-clusters,
.gc-open-list-canvas-group__sections {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    min-width: 0;
}

.subscriptions-benefit-feed-day-rows {
    min-width: 0;
}

/* Стеки строк вне ленты: flex + gap зоны --list; padding карточек — только через gc-panel-content--list-cards */
.subscriptions-benefits-unified-list {
    display: flex;
    flex-direction: column;
    gap: var(--gc-list-zone-gap);
    min-width: 0;
}

/* Дашборд владельца: hover строк ваучера/скидки (карточки --list-cards / unified) */
.gc-list-group-unified > .gc-list-item.subscriptions-owner-voucher-row:hover,
.gc-list-group-unified > .gc-list-item.subscriptions-owner-voucher-row:focus-within,
.gc-list-group-unified > .gc-list-item.subscriptions-owner-discount-row:hover,
.gc-list-group-unified > .gc-list-item.subscriptions-owner-discount-row:focus-within,
.gc-panel-content--list-cards > .gc-list-item.subscriptions-owner-voucher-row:hover,
.gc-panel-content--list-cards > .gc-list-item.subscriptions-owner-voucher-row:focus-within,
.gc-panel-content--list-cards > .gc-list-item.subscriptions-owner-discount-row:hover,
.gc-panel-content--list-cards > .gc-list-item.subscriptions-owner-discount-row:focus-within,
.subscriptions-benefits-unified-list > .gc-list-item.subscriptions-owner-voucher-row:hover,
.subscriptions-benefits-unified-list > .gc-list-item.subscriptions-owner-voucher-row:focus-within,
.subscriptions-benefits-unified-list > .gc-list-item.subscriptions-owner-discount-row:hover,
.subscriptions-benefits-unified-list > .gc-list-item.subscriptions-owner-discount-row:focus-within {
    background-color: var(--gc-interactive-hover-bg);
}

/* Раскладка primary-row — lists.css (.gc-list-item-primary-row / .subscriptions-benefit-feed-item__primary-row) */

/* Точка статуса: без увеличения размера (как базовый gc-status-indicator) */
.subscriptions-benefit-feed-item .subscriptions-member-hub-benefit-meta-line > .gc-status-indicator {
    flex-shrink: 0;
    align-self: center;
}

.subscriptions-member-hub-benefit-meta-line-text {
    min-width: 0;
}

/* Хаб: после блока ожидающих абонементов — разделитель как у не-первого заголовка дня в ленти */
.subscriptions-member-benefits-hub.subscriptions-benefit-feed-day-panel > .gc-panel-content--list.subscriptions-member-hub-main-benefits--after-pending {
    border-top: 1px solid var(--border-subtle);
}

/* Хаб участника: компактные абонементы без колонки статуса и без правого блока метрик */
.subscriptions-member-benefits-hub .subscriptions-member-subscription-row.gc-list-item {
    align-items: center;
}

.subscriptions-member-benefits-hub .subscriptions-member-subscription-row .gc-list-item-trigger {
    align-items: flex-start;
}

/* Подгруппа с заголовком канала: отделить список от подписи */
.subscriptions-benefit-feed-subgroup > .gc-list-group-flush,
.subscriptions-benefit-feed-subgroup > .gc-stack-sm {
    border-top: 1px solid var(--border-subtle);
}

/* Подгруппа мероприятия / «Действия»: подпись + строки */
.subscriptions-benefit-feed-subgroup {
    min-width: 0;
}

/* gc-stack-xs в ленте не описан в utilities — задаём ритм здесь (как у списков в панелях) */
.subscriptions-benefit-feed-subgroup.gc-stack-xs {
    display: flex;
    flex-direction: column;
    gap: var(--space-product-2);
}

.subscriptions-benefit-feed-subgroup.gc-stack-xs > .gc-stack-xs {
    display: flex;
    flex-direction: column;
    gap: var(--space-product-2);
}

/* Подзаголовок подгруппы: как .name-history-trigger (profile-card.css) — без постоянного фона и без шеврона */
.subscriptions-benefit-feed-subgroup-label {
    margin: 0;
    min-width: 0;
    padding-left: var(--space-2);
    padding-right: var(--space-2);
}

.subscriptions-benefit-feed-subgroup-heading {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: var(--space-1);
    max-width: 100%;
    min-width: 0;
    margin: 0;
    padding: var(--space-product-2) var(--space-2);
    margin-inline: calc(-1 * var(--space-2));
    background: none;
    border: none;
    font: inherit;
    font-size: var(--font-size-14);
    font-weight: 500;
    color: var(--text-secondary);
    text-align: left;
    border-radius: var(--radius-8);
    line-height: inherit;
    text-decoration: none;
    transition: color var(--transition-fast), background-color var(--transition-fast);
}

/* Заголовок с аватаром канала (/profile/subscriptions): вертикальный инсет + зазор до названия; аватар xs — не путать с 40px-иконками строк */
a.subscriptions-benefit-feed-subgroup-heading--community {
    gap: var(--space-2);
    padding-block: var(--space-2);
    padding-inline: var(--space-2);
}

/* Перебиваем глобальный a:hover { color: var(--accent-link-hover) } из styles.css */
a.subscriptions-benefit-feed-subgroup-heading:hover,
a.subscriptions-benefit-feed-subgroup-heading:active {
    color: var(--text-secondary);
    background-color: var(--surface-control);
}

a.subscriptions-benefit-feed-subgroup-heading:hover .subscriptions-benefit-feed-subgroup-heading-label,
a.subscriptions-benefit-feed-subgroup-heading:active .subscriptions-benefit-feed-subgroup-heading-label {
    color: var(--text-secondary);
}

a.subscriptions-benefit-feed-subgroup-heading:visited {
    color: var(--text-secondary);
}

a.subscriptions-benefit-feed-subgroup-heading:focus-visible {
    outline: var(--gc-focus-outline);
    outline-offset: 2px;
}

.subscriptions-benefit-feed-subgroup-heading--static {
    cursor: default;
}

.subscriptions-benefit-feed-subgroup-heading-label {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.subscriptions-benefit-feed-subgroup-icon {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.subscriptions-benefit-feed-subgroup-icon i {
    font-size: var(--font-size-14);
    color: var(--text-secondary);
}

/* Аватар канала в подписи подгруппы (профиль /profile/subscriptions) */
.subscriptions-benefit-feed-subgroup-icon--community img.gc-list-avatar {
    display: block;
}

.subscriptions-benefit-feed-subgroup-icon--community .gc-list-avatar-fallback {
    font-size: var(--font-size-12);
}

/* Заголовок строки истории списаний с привязкой к мероприятию — та же иконка, что у подгруппы «мероприятие» в ленте */
.subscriptions-usage-history-title--event {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    min-width: 0;
}

.subscriptions-benefit-feed-panel-actions {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
}

/* Пустая лента: в шапке только действия — прижать вправо */
.subscriptions-benefit-feed-panel-actions--solo {
    margin-left: auto;
}

/* Баджи ленты: статус (организатор/система) и значения — как нейтральный чип на заявках (светлый фон + рамка) */
.subscriptions-benefit-feed-item.event-participant-card .event-request-benefit-badges .sidebar-weapon-class-badge--feed-outline {
    background: var(--surface-panel);
    border: 1px solid var(--border-subtle);
    color: var(--text-secondary);
    font-weight: 500;
    padding: var(--space-2);
    border-radius: 4px var(--radius-12) var(--radius-12) var(--radius-12);
    text-transform: none;
    letter-spacing: normal;
    justify-content: flex-start;
}

.subscriptions-benefit-feed-item.event-participant-card .event-request-benefit-badges .sidebar-weapon-class-badge--feed-outline.sidebar-weapon-class-badge--feed-status {
    color: var(--text-primary);
    font-weight: 600;
}

/* Только название мероприятия под ником — одна строка, ellipsis */
.subscriptions-benefit-feed-context-line.gc-list-meta {
    font-size: var(--font-size-14);
    color: var(--text-secondary);
    line-height: var(--line-height-list-description);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.subscriptions-benefit-feed-meta.gc-list-meta {
    line-height: var(--line-height-list-description);
}

.subscriptions-benefit-feed-meta--ellipsis.gc-list-meta {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Лента льгот: без переносов — только многоточие */
.subscriptions-benefit-feed-item .subscriptions-benefit-feed-item__text {
    min-width: 0;
    /* lists.css .gc-list-content — overflow:hidden; иначе gc-status-indicator-pulse обрезается по bbox колонки */
    overflow: visible;
}

.subscriptions-benefit-feed-item .subscriptions-benefit-feed-title-line.gc-list-title {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
}

/* Мета: до 2 строк (хаб участника, профиль, дашборд) */
.subscriptions-benefit-feed-item .subscriptions-benefit-feed-meta.gc-list-meta {
    white-space: normal;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    word-break: break-word;
    text-overflow: ellipsis;
    max-width: 100%;
}

/* Лента по дням на канале: компактная однострочная мета (панель дня + карточный список) */
.subscriptions-benefit-feed-day-panel .gc-panel-content--list-cards .subscriptions-benefit-feed-item .subscriptions-benefit-feed-meta.gc-list-meta {
    white-space: nowrap;
    display: block;
    -webkit-line-clamp: unset;
    -webkit-box-orient: unset;
}

/* Льготы участника: точка + текст в одну строку (перебивает -webkit-box и display:block у .subscriptions-benefit-feed-meta выше) */
.subscriptions-benefit-feed-item .subscriptions-benefit-feed-meta.gc-list-meta.subscriptions-member-hub-benefit-meta-line {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    min-width: 0;
    font-size: var(--font-size-14);
    line-height: var(--line-height-list-description);
    white-space: normal;
    -webkit-line-clamp: unset;
    -webkit-box-orient: unset;
    /* Не hidden: gc-status-indicator-pulse::after масштабируется за пределы точки — иначе обрезается анимация */
    overflow: visible;
}

.subscriptions-pending-request-main {
    min-width: 0;
}

.subscriptions-pending-request-title.gc-list-title,
.subscriptions-pending-request-meta.gc-list-meta {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.subscriptions-pending-panel .subscriptions-pending-request-meta.subscriptions-benefit-feed-meta.gc-list-meta {
    display: block;
    -webkit-line-clamp: unset;
    -webkit-box-orient: unset;
}

/* Заявки: gc-interactive-row в gc-stack-sm — без бордеров gc-list-item */
.subscriptions-pending-panel .subscriptions-pending-request-row {
    align-items: center;
}

.subscriptions-pending-panel .subscriptions-pending-request-row .subscriptions-pending-request-row-actions {
    align-self: center;
}

.subscriptions-pending-request-row-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: var(--space-1);
}

/* Дашборд владельца / тип: строки абонемента — interactive-row */
.gc-interactive-row.subscriptions-owner-dashboard-row {
    align-items: flex-start;
}

.subscriptions-owner-dashboard-row-main {
    flex: 1 1 auto;
    min-width: 0;
}

.subscriptions-owner-dashboard-row-aside.subscriptions-owner-row-right {
    align-self: center;
}

.subscriptions-owner-dashboard-subscription-actions {
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.subscriptions-benefit-feed-meta-secondary.gc-list-meta {
    white-space: normal;
    line-height: 1.35;
    font-size: var(--font-size-13);
    color: var(--text-secondary);
    margin-top: var(--space-2);
}

/* Скидка отключена: приглушены аватар/текст/метрика; дропдаун «⋯» без затемнения */
.subscriptions-owner-discount-row-primary {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex: 1;
    min-width: 0;
}

.subscriptions-owner-discount-row--inactive .subscriptions-owner-discount-row-muted {
    opacity: 0.5;
}

/* Ваучер (дашборд владельца): слева мета (остаток до даты / бессрочный / исчерпан), справа сумма остатка */
.subscriptions-owner-voucher-row .subscriptions-owner-voucher-row-main {
    min-width: 0;
}

.subscriptions-owner-voucher-row .subscriptions-owner-voucher-row-title.gc-list-title {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.subscriptions-owner-voucher-row .subscriptions-owner-voucher-row-meta.gc-list-meta {
    white-space: normal;
    line-height: 1.35;
}

.subscriptions-owner-voucher-row-aside {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-shrink: 0;
    margin-left: auto;
}

/* После унификации с лентой: aside внутри gc-list-actions */
.gc-list-actions.subscriptions-owner-voucher-row-aside.subscriptions-benefit-feed-item-actions {
    flex-direction: row;
    flex-wrap: nowrap;
    margin-left: auto;
}

.subscriptions-owner-voucher-row-aside-metric {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: var(--space-1);
    min-width: 0;
    text-align: right;
}

.subscriptions-owner-voucher-row-aside .gc-list-actions {
    margin-left: 0;
}

.subscriptions-owner-voucher-balance {
    font-size: var(--font-size-15);
    font-weight: 500;
    color: var(--text-primary);
    white-space: nowrap;
}

.subscriptions-owner-voucher-balance--depleted {
    font-size: var(--font-size-14);
    font-weight: 400;
    color: var(--text-secondary);
}

.subscriptions-owner-row-right {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--space-2);
    margin-left: auto;
    flex-shrink: 0;
    min-width: 0;
}

.subscriptions-owner-row-right .subscriptions-owner-row-trailing--split,
.subscriptions-owner-row-right .subscriptions-owner-row-trailing--single {
    margin-left: 0;
}

.subscriptions-owner-row-trailing {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--space-2);
    flex-shrink: 0;
}

.subscriptions-owner-row-trailing--single {
    margin-left: auto;
}

.subscriptions-owner-row-trailing--split {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--space-4);
    margin-left: auto;
    flex-shrink: 0;
}

.subscriptions-owner-row-values--stack {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: var(--space-1);
    min-width: 0;
    text-align: right;
}

.subscriptions-owner-row-values--single {
    min-width: 4.5rem;
    text-align: right;
}

.subscriptions-owner-row-caption {
    font-size: var(--font-size-13);
    color: var(--text-secondary);
    max-width: 12rem;
}

.subscriptions-owner-row-metric {
    font-size: var(--font-size-15);
    font-weight: 500;
    color: var(--text-primary);
    white-space: nowrap;
}

.subscription-mini-progress--compact {
    width: 6.25rem;
    min-width: 6.25rem;
    flex-shrink: 0;
}

/* Остаток: заполнение справа налево (расходуется «с правого края») */
.subscription-mini-progress--from-right {
    display: block;
    /* �?наче абсолютный сегмент цепляется к .gc-list-item { position: relative } и «улетает» */
    position: relative;
    z-index: 0;
    height: var(--gc-progress-track-height);
    padding: 0;
    gap: 0;
    background-color: var(--surface-control);
    border-radius: var(--radius-full);
    overflow: hidden;
}

.subscription-mini-progress--from-right .subscription-mini-segment-used--from-right {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: var(--subscription-remaining-pct, 0%);
    height: 100%;
    min-height: 0;
    border-radius: var(--radius-full);
    background-color: var(--gc-progress-fill);
    max-width: 100%;
}

.subscription-mini-progress--equal {
    width: 100%;
}

.subscription-mini-progress--equal .subscription-mini-segment {
    flex: 1 1 0;
    min-width: 0;
    width: auto;
}

.subscriptions-owner-expand > summary {
    list-style: none;
    cursor: pointer;
}

.subscriptions-owner-expand > summary::-webkit-details-marker {
    display: none;
}

.subscriptions-owner-expand-summary {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 2rem;
    padding: var(--space-2) var(--space-4);
    font-size: var(--font-size-14);
    font-weight: 500;
    color: var(--text-primary);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-full);
    background: var(--surface-panel);
    transition:
        background var(--transition-fast),
        border-color var(--transition-fast);
}

.subscriptions-owner-expand-summary:hover {
    background: color-mix(in srgb, var(--fill-primary) 6%, transparent);
    border-color: var(--border-default);
}

.subscriptions-owner-expand-body {
    padding-top: var(--space-2);
}

.subscriptions-owner-panel-footer-expand {
    padding-top: 0;
}

/* «�?стория» над лентой: как .catalog-main > .catalog-nav-group-title (заголовок не прямой ребёнок .catalog-main) */
.catalog-main .subscriptions-section-page > .catalog-nav-group-title {
    padding-inline: 0;
    padding-block: var(--space-2) var(--space-1);
    margin-inline: 0;
    margin-top: var(--space-1);
    text-align: center;
    font-size: var(--font-size-12);
    letter-spacing: 0.05em;
}

/* /profile + channel — кластеры ленты */
.subscriptions-benefit-feed-other-cluster {
    min-width: 0;
}

.subscriptions-benefit-feed-other-cluster > .gc-panel-header {
    padding-inline: var(--space-2);
}

/* Якоря в компактном лейауте канала (сводка → секции) и профиль /profile/subscriptions (несколько каналов) */
#subscription-types-anchor,
[id^="subscription-types-anchor-"],
#channel-member-benefits-hub,
[id^="channel-member-benefits-hub-"],
#dashboard-abonements,
#dashboard-vouchers,
#dashboard-discounts,
#member-dashboard-abonements,
#member-dashboard-vouchers,
#member-dashboard-discounts,
#channel-member-benefit-feed,
#profile-member-benefit-feed {
    scroll-margin-top: calc(var(--gc-nav-bar-height, var(--space-product-56)) + var(--space-4));
}

/* Модалка списания визита: x-modal.shell content-variant=list → .gc-modal-content--list; список без отдельного scroll-порта */
.subscription-add-usage-modal .subscription-add-usage-modal__form {
    width: 100%;
    min-width: 0;
}

/* Заголовок «Типы абонементов» + дропдаун «Добавить» на странице подписок */
.subscriptions-types-tool-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
    width: 100%;
}

.subscriptions-types-tool-row .gc-section-title {
    margin: 0;
}

.subscriptions-types-tool-row .gc-panel-title {
    margin: 0;
}

/* Модал z-index */
.modal {
    z-index: 1055;
}

.modal-backdrop {
    z-index: 1040;
}

/* Context sidepage: билет льготы — mixed parent (lead + inset rows), не nested gc-panel */
.profile-benefit-sidepage.gc-context-sidepage__stack {
    gap: 0;
}

.gc-modal .profile-benefit-sidepage.gc-context-sidepage__stack {
    gap: 0;
}

.profile-benefit-sidepage-ticket {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    width: 100%;
    min-width: 0;
    padding-bottom: var(--gc-inset-hover-edge, var(--space-1-5));
}

.profile-benefit-sidepage-ticket > .gc-card-glow-shell--benefit-ticket,
.profile-benefit-sidepage-ticket > .subscriptions-profile-benefit-tile-cell {
    width: 100%;
    min-width: 0;
    max-width: 100%;
}

.profile-benefit-sidepage-ticket + .gc-context-sidepage__section {
    border-top: none;
    padding-top: var(--gc-inset-hover-edge, var(--space-1-5));
}

.profile-benefit-sidepage-ticket + .gc-context-sidepage__section:has(> .gc-context-sidepage__section-title) {
    padding-top: var(--gc-inset-padding, var(--space-4));
}

/* Билет в context sidepage: полная ширина секции, внутренний padding — из размера тайла (sm/md) */
.gc-context-sidepage .event-request-detail-benefit .subscriptions-profile-benefit-tile-cell,
.gc-context-sidepage .event-request-detail-benefit .gc-card-glow-shell--benefit-ticket {
    width: 100%;
    min-width: 0;
    max-width: 100%;
}

.subscriptions-profile-benefit-tile-strip-pill--success {
    --subscriptions-benefit-strip-bg: color-mix(in srgb, var(--success-color) 16%, var(--surface-secondary));
    --subscriptions-benefit-strip-text: var(--text-primary);
}

.subscriptions-profile-benefit-tile-strip-pill--warning {
    --subscriptions-benefit-strip-bg: color-mix(in srgb, var(--warning-color) 18%, var(--surface-secondary));
    --subscriptions-benefit-strip-text: var(--text-primary);
}

.subscriptions-profile-benefit-tile-strip-pill--muted {
    --subscriptions-benefit-strip-bg: var(--surface-sunken);
    --subscriptions-benefit-strip-text: var(--text-secondary);
}

.profile-benefit-sidepage-description {
    margin: 0;
    font-size: var(--font-size-14);
    line-height: 1.45;
    color: var(--text-secondary);
    white-space: normal;
}

.profile-benefit-sidepage-facts {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    width: 100%;
    min-width: 0;
}

.profile-benefit-sidepage-fact {
    display: flex;
    flex-direction: row;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-3);
    min-width: 0;
}

.profile-benefit-sidepage-fact-label,
.profile-benefit-sidepage-fact-value {
    margin: 0;
    font-size: var(--font-size-14);
    line-height: var(--gc-list-title-line-height, 1.3);
    min-width: 0;
}

.profile-benefit-sidepage-fact-label {
    color: var(--text-secondary);
    font-weight: 400;
    flex: 0 1 auto;
}

.profile-benefit-sidepage-fact-value {
    color: var(--text-primary);
    font-weight: 500;
    text-align: right;
    flex: 1 1 auto;
}

.profile-benefit-sidepage-hint {
    margin: 0;
}

.profile-benefit-sidepage-event-stack {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    min-width: 0;
}

.profile-benefit-sidepage-event-block {
    display: flex;
    flex-direction: column;
    gap: var(--gc-inset-hover-edge, var(--space-1-5));
    min-width: 0;
    overflow: visible;
}

.profile-benefit-sidepage-event-card {
    min-width: 0;
}

.profile-benefit-sidepage-event-card .gc-event-index-card {
    width: 100%;
}

.profile-benefit-sidepage-event-card .gc-event-index-card-v2-1__usage-meta {
    color: var(--text-secondary);
}
