/**
 * assets/css/season.css — сезон и сезонный пропуск (§40).
 *
 * Лестница ступеней: слева бесплатная награда, справа премиальная.
 * Закрытая награда видна, но погашена — игрок понимает, что даёт пропуск,
 * ещё до покупки.
 */

.trumpamole__skins-hero--season::before {
    background-image: var(--tam-bg-season, url('../tower/bg_page.webp?26090901'));
}

.trumpamole__skins-hero--season .trumpamole__title-block {
    position: relative;
    z-index: 3;
}

/*
 * Значка раздела в ленте больше нет: `ui-frame.css` гасит
 * `.trumpamole__skins-hero-icon` во всей игре и собирает ленту в одну
 * колонку. Здесь стояла подгонка под него и — главное — своя сетка
 * «1fr 74px» на экранах до 360px. Правило с двумя классами перебивало
 * раму, и на 320px под невидимый значок отводилась пустая полоса в
 * 74px: вывеска, плитки и полоса опыта занимали 231px из 320 и весь
 * верх сезона выглядел сдвинутым влево (§82).
 */

/* Низ раздела считается от ИЗМЕРЕННОЙ высоты меню, а не от магического
   числа: стояло 96px, и при выросшей полосе меню последняя глава
   маршрута уходила под ячейки навигации. */
.tam-season {
    padding: 0 14px calc(var(--tam-nav-h, 68px) + 24px + var(--safe-bottom, 0px));
}

.tam-season__bar-wrap {
    margin-top: 8px;
}

.tam-season__premium-slot {
    margin: 4px 0 0;
}

/* Состояние «пропуск куплен»: лента с короной, а не кнопка. Материал —
   из ui-frame.css (§10), здесь только строй значка и подписи. */
.tam-season__premium-on {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 38px;
    padding: 8px 12px;
    text-align: center;
    font-family: var(--ui-font-condensed);
    font-size: var(--ui-size-small);
    font-weight: 900;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.tam-season__premium-on svg { flex: none; }

/* ===== Лестница ступеней ===== */

.tam-season__legend {
    display: grid;
    grid-template-columns: 34px 1fr 1fr;
    gap: 8px;
    padding: 0 2px;
    font-size: var(--ui-size-micro);
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.25px;
    color: var(--ui-text-muted);
}

.tam-season__legend-free { grid-column: 2; }
.tam-season__legend-premium { grid-column: 3; color: var(--ui-purple-light); }

.tam-season__track {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.tam-season__row {
    display: grid;
    grid-template-columns: 34px 1fr 1fr;
    gap: 8px;
    align-items: stretch;
}

/* Номер ступени — выемка в доске (§8 рамы). Здесь только набор: свой
   материал раздела рама перебивала целиком. */
.tam-season__tier {
    display: grid;
    place-items: center;
    font-size: var(--ui-size-body);
    font-weight: 900;
}

/* Пройденная ступень отличается золотой цифрой и золотой кромкой: цвет
   берёт селектор с родителем, поэтому рама его не перебивает (§86). */
.tam-season__row.is-reached .tam-season__tier {
    color: var(--ui-gold-light);
    border-color: color-mix(in srgb, var(--ui-gold) 34%, transparent);
}

/* Ячейка награды — плотная выемка в доске (§8 рамы), а не прозрачное
   окно. Материал был написан здесь дважды: сначала числами
   (#1d1351 → #140d38), потом теми же слоями в раме — и до экрана
   доживала только рама. Осталось место и набор. */
.tam-season__cell {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 54px;
    padding: 8px 10px;
    font-size: var(--ui-size-small);
    font-weight: 800;
}

/* Цвет ячейки награды (фиолетовый по пропуску, золотой у героя) живёт в
   §8 `ui-frame.css`: `.tam-season__cell` перечислен там в списке выемок,
   рама грузится последней, и любой цвет отсюда она перебивает. */

.tam-season__cell-icon {
    width: 26px;
    height: 26px;
    object-fit: contain;
    flex: 0 0 auto;
}

.tam-season__cell-text {
    min-width: 0;
    line-height: 1.2;
}

/* Четыре состояния узла (§349). Пульсирует только доступный: если мигает
   всё, глазу не за что зацепиться. */
.tam-season__cell.is-available {
    cursor: pointer;
    border-color: color-mix(in srgb, var(--ui-gold) 56%, transparent);
    box-shadow: var(--ui-glow-gold-soft);
    animation: tam-season-pulse 2.4s ease-in-out infinite;
}

.tam-season__cell.is-available:active {
    transform: translateY(1px);
}

/* Недоступная ступень — тоже плотная плитка, только тёмная: `opacity`
   на пёстром фоне читается как сбой отрисовки (общее правило проекта). */
.tam-season__cell.is-locked {
    opacity: 1;
    filter: saturate(0.5) brightness(0.62);
}

/* Забранная награда не выцветает до призрака: `opacity` на пёстром фоне
   читается как сбой отрисовки. Плитка остаётся плотной, гаснут значок и
   подпись, а «забрано» показывает галочка. */
.tam-season__cell.is-claimed {
    opacity: 1;
    filter: saturate(0.8) brightness(0.9);
}

.tam-season__cell.is-claimed .tam-season__cell-text {
    color: var(--ui-text-muted);
}

/* Закрытая награда по пропуску не прячется, а гасится: игрок должен
   видеть, что именно даёт пропуск, ещё до покупки. */
.tam-season__cell.is-gold_locked {
    opacity: 1;
    filter: saturate(0.55) brightness(0.72);
}



.tam-season__cell[data-hero] .tam-season__cell-icon {
    width: 34px;
    height: 34px;
}

@keyframes tam-season-pulse {
    0%, 100% { box-shadow: var(--ui-glow-gold-soft); }
    50%      { box-shadow: 0 0 var(--ui-glow-lg) color-mix(in srgb, var(--ui-gold) 32%, transparent); }
}

.tam-season__cell-mark--lock {
    color: var(--ui-text-muted);
}

.tam-season__cell-mark {
    position: absolute;
    right: 8px;
    top: 8px;
    color: var(--ui-green-light);
    display: inline-flex;
}

.tam-season__cell-mark svg {
    width: 14px;
    height: 14px;
}

/* ===== Зал славы ===== */

.tam-season__top {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

/* Строка зала славы — тот же список, что таблица лидеров (§7 рамы). */
.tam-season__top-row {
    display: grid;
    grid-template-columns: 28px 1fr auto;
    gap: 10px;
    align-items: center;
    padding: 9px 12px;
    font-size: var(--ui-size-body);
}

.tam-season__top-place {
    font-weight: 900;
    color: var(--ui-gold-light);
}

.tam-season__top-name {
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: var(--ui-text-main);
}

.tam-season__top-points {
    font-weight: 900;
    color: var(--ui-text-muted);
}

/* ===== Между сезонами ===== */

/* Пустое состояние — та же выемка, что «пока пусто» в остальных
   разделах (§8 рамы): здесь только место и набор. */
/* Затишье сезона и доски событий — общий блок §56 (`ui-empty`) с кротом,
   материал и типографика приходят оттуда. Классу остался отступ сверху:
   между вкладками и блоком нужен воздух, а общий блок его не знает.
   Свои `-title` и `-text` сняты вместе с разметкой, которая их держала. */
.tam-season__idle {
    margin-top: 24px;
}

@media (max-width: 360px) {
    .tam-season__cell { font-size: 11px; padding: 7px 8px; }
    .tam-season__cell-icon { width: 22px; height: 22px; }
}

/* ===== Вход в сезон на странице заданий ===== */

/*
 * Блок сезона оформлен как строка списка (§7 рамы): раньше он был жёлтой
 * плашкой со своим языком форм и выбивался из списка заданий.
 *
 * Материал пришлось отдать раме целиком: здесь он был написан парой
 * `var(--rowA, #2a1f1f)` — псевдонимом с тёплой запаской прежнего мира.
 * Запаска переживает смену палитры и врёт (правило проекта), поэтому
 * нажатие теперь показывает не второй цвет, а ход кнопки вниз.
 */
.tam-season-banner {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 10px;
    margin-bottom: 10px;
    text-align: left;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}

.tam-season-banner:active {
    transform: translateY(var(--ui-press));
}

.tam-season-banner__art-frame {
    width: 52px;
    height: 52px;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
}

.tam-season-banner__art {
    width: 40px;
    height: 40px;
    object-fit: contain;
    display: block;
    filter: drop-shadow(var(--ui-art-shadow-md));
}

.tam-season-banner__text {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
    flex: 1 1 auto;
}

.tam-season-banner__title {
    font-weight: 900;
    font-size: var(--ui-size-value);
    color: var(--ui-text-main);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.tam-season-banner__sub {
    font-size: var(--ui-size-small);
    font-weight: 700;
    color: var(--ui-text-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.tam-season-banner__right {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--ui-text-muted);
}

/* Материал счётчика — §23 рамы. Здесь только размер: на баннере он крупнее
   счётчика в шапке, потому что стоит в строке, а не в углу кнопки. */
.tam-season-banner__badge {
    min-width: 24px;
    height: 24px;
    padding: 0 7px;
    font-size: var(--ui-size-small);
}

.tam-season-banner__chevron {
    display: block;
    flex: 0 0 auto;
}

/* ===== Плашка живого события на главной (§40) ===== */

/* Плашка события убрана: о событии рассказывает модальное окно при входе. */

/* ═══════════════ Маршрут сезона по главам (§180, §348) ═══════════════ */

/*
 * Счётчик на вкладке — красный бейдж, а не золотой кружок.
 *
 * Он лежал золотом на золотой активной вкладке и пропадал; вдобавок в
 * него затекала тёмная обводка подписи вкладки (§21 рамы), и тёмная
 * цифра в тёмном контуре превращалась в пятно. Красный бейдж с тёмной
 * кромкой — та же деталь, что счётчик заданий в нижнем меню: в игре
 * один способ сказать «здесь тебя ждут».
 */
.tam-season__tab-badge,
.tam-clan__tab-badge {
    min-width: 18px;
    height: 18px;
    margin-left: 6px;
    padding: 0 5px;
    font-size: var(--ui-size-small);
}

.tam-season__catchup {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 8px;
    padding: 7px 10px;
    border-radius: var(--ui-radius-sm);
    /* Фактура обязательна и здесь: ровно залитая плашка выпадает из ряда. */
    background:
        var(--ui-dirt),
        linear-gradient(180deg,
            color-mix(in srgb, var(--ui-purple-light) 22%, transparent) 0%,
            color-mix(in srgb, var(--ui-purple-light) 12%, transparent) 100%);
    border: var(--ui-border) solid color-mix(in srgb, var(--ui-purple-light) 34%, transparent);
    font-size: var(--ui-size-small);
    font-weight: 800;
    line-height: 1.25;
    color: var(--ui-text-main);
}

.tam-season__premium-note {
    margin-top: 6px;
    text-align: center;
    font-size: var(--ui-size-small);
    font-weight: 800;
    color: var(--ui-gold-light);
}

/* Корпус зелёной кнопки приходит из `.ui-button-success` (ui-tokens.css):
   здесь остаётся только место в колонке. */
.tam-season__claim-all {
    width: 100%;
    margin-top: 8px;
}

.tam-season__route {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

/* Глава маршрута — доска раздела (§6 рамы), здесь только поле. */
.tam-season__chapter {
    padding: 10px;
}

/* Текущая глава отличается ЗОЛОТОЙ КРОМКОЙ, а не второй заливкой:
   заливку рама всё равно перебивает, а два тона черноты подряд глаз не
   различает. */
.tam-season__chapter.is-current {
    border-color: color-mix(in srgb, var(--ui-gold) 40%, transparent);
    box-shadow: 0 5px 0 var(--ui-panel-edge), var(--ui-shadow-soft),
                0 0 18px color-mix(in srgb, var(--ui-gold) 16%, transparent);
}

/* Глава впереди гасится ЦВЕТОМ, а не прозрачностью: сквозь `opacity`
   просвечивает фон раздела, и доска читается сбоем отрисовки. */
.tam-season__chapter.is-ahead {
    opacity: 1;
    filter: saturate(0.6) brightness(0.78);
}

.tam-season__chapter-head {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 2px 8px;
    margin-bottom: 10px;
}

.tam-season__chapter-title {
    font-family: var(--font-heading);
    font-size: var(--ui-size-body);
    font-weight: 900;
    color: var(--ui-text-main);
}

/* Примечание главы — выемка в доске (§8 рамы): цвет и материал оттуда,
   здесь место в сетке и набор. */
.tam-season__chapter-note {
    grid-column: 1 / -1;
    padding: 4px 8px;
    font-size: var(--ui-size-small);
    font-weight: 700;
    line-height: 1.3;
}

.tam-season__chapter-count {
    align-self: start;
    font-size: var(--ui-size-small);
    font-weight: 900;
    color: var(--ui-gold-light);
}

.tam-season__chapter.is-passed .tam-season__chapter-count {
    color: var(--ui-green-light);
}

/* ===== Источники опыта пропуска (§179) ===== */

.tam-season__sources {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* Источник опыта — выемка в доске (§8 рамы). */
.tam-season__source {
    padding: 8px 10px;
}

.tam-season__source-top {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 5px;
    font-size: var(--ui-size-small);
    font-weight: 900;
    color: var(--ui-text-main);
}

.tam-season__source-val { color: var(--ui-gold-light); }

.tam-season__source-note {
    margin-top: 4px;
    padding: 3px 7px;
    font-size: var(--ui-size-micro);
    font-weight: 700;
    text-transform: lowercase;
}

/* ═══════════════ Доска событий (§344-347) ═══════════════ */

/* Главное событие — верхняя лента раздела (§4 рамы): материал, кромка и
   нижняя грань оттуда, здесь место и рамка выреза. */
.tam-event-hero {
    position: relative;
    display: block;
    width: 100%;
    margin-bottom: var(--space-2);
    border-radius: var(--ui-radius-lg);
    overflow: hidden;
    cursor: pointer;
}

.tam-event-hero:active { transform: translateY(1px); }

.tam-event-hero__art {
    display: block;
    width: 100%;
    height: 148px;
    object-fit: cover;
}

/* Подложка под текстом ленты — затемнение, а не поверхность: кадр
   события кончается ровно здесь, и подпись обязана стоять на ровном
   тоне при любой картинке (то же решение, что ::after ленты в §4). */
.tam-event-hero__body {
    padding: 10px 12px 12px;
    background: linear-gradient(180deg,
        color-mix(in srgb, var(--ui-bg-dark) 92%, transparent) 0%,
        color-mix(in srgb, var(--ui-bg-dark) 98%, transparent) 100%);
}

.tam-event-hero__title {
    font-family: var(--font-heading);
    font-size: var(--ui-size-value);
    font-weight: 900;
    color: var(--ui-text-main);
}

.tam-event-hero__about {
    margin-top: 3px;
    font-size: var(--ui-size-small);
    font-weight: 700;
    line-height: 1.3;
    color: var(--ui-text-muted);
}

.tam-event-hero__row {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 9px;
}

/* Чип события — тот же тёмный чип ресурса, что в шапке (§10 рамы). */
.tam-event-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 9px;
    font-size: var(--ui-size-small);
    font-weight: 900;
}

/* «Награда ждёт» — единственный золотой чип ленты. Оба объявления берут
   селектор с двумя классами: рама грузится последней (§86). */
.tam-event-chip.is-ready {
    background:
        var(--ui-dirt-lite),
        linear-gradient(180deg, var(--ui-gold-light) 0%, var(--ui-gold) 100%);
    border-color: var(--ui-gold-dark);
    color: var(--ui-text-dark);
}

.tam-event-chip__icon {
    width: 16px;
    height: 16px;
    object-fit: contain;
}

.tam-event-chip svg { width: 14px; height: 14px; }

.tam-events,
.tam-event-nexts,
.tam-event-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* Карточка события — доска раздела (§6 рамы). */
.tam-event-card {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px;
    cursor: pointer;
}

.tam-event-card:active { transform: translateY(1px); }

.tam-event-card__art {
    width: 72px;
    height: 48px;
    border-radius: var(--ui-radius-sm);
    object-fit: cover;
    flex: 0 0 auto;
}

.tam-event-card__title {
    font-size: var(--ui-size-body);
    font-weight: 900;
    color: var(--ui-text-main);
}

.tam-event-card__sub {
    margin-top: 2px;
    font-size: var(--ui-size-small);
    font-weight: 700;
    color: var(--ui-text-muted);
}

/* Счётчик готовых заданий — красный круг §23.1 рамы: здесь только
   размер и место в строке. */
.tam-event-card__badge {
    margin-left: auto;
    flex: 0 0 auto;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    font-size: var(--ui-size-small);
}

/* Событие, которое ещё не началось: доска §6 рамы, погашенная цветом.
   `opacity: .86` пропускала фон раздела сквозь карточку. */
.tam-event-next {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 7px 8px;
    opacity: 1;
    filter: saturate(0.6) brightness(0.8);
}

.tam-event-next__art {
    width: 56px;
    height: 38px;
    border-radius: var(--ui-radius-sm);
    object-fit: cover;
    flex: 0 0 auto;
    filter: saturate(0.6);
}

.tam-event-next__title {
    font-size: var(--ui-size-small);
    font-weight: 900;
    color: var(--ui-text-main);
}

.tam-event-next__sub {
    font-size: var(--ui-size-small);
    font-weight: 700;
    color: var(--ui-text-muted);
}

/* ===== Деталь события ===== */

/* Возврат к доске событий — единый игровой Back (§12 рамы, §52 ТЗ). */
.tam-event-back {
    margin-bottom: 8px;
}

/* Кадр события — вырез в доске (§8 рамы), здесь только рамка выреза. */
.tam-event-scene {
    position: relative;
    overflow: hidden;
}

.tam-event-scene__art {
    display: block;
    width: 100%;
    height: 140px;
    object-fit: cover;
}

.tam-event-scene__title {
    position: absolute;
    left: 12px;
    right: 12px;
    bottom: 10px;
    font-family: var(--font-heading);
    font-size: var(--ui-size-section);
    font-weight: 900;
    color: var(--ui-ivory-light);
    /* Название стоит прямо на картинке: обводка §21, а не одна мягкая
       тень — иначе на светлом небе кадра буква пропадает. */
    text-shadow:
        -1px -1px 0 color-mix(in srgb, var(--ui-text-outline) 90%, transparent),  0px -1px 0 color-mix(in srgb, var(--ui-text-outline) 90%, transparent),
         1px -1px 0 color-mix(in srgb, var(--ui-text-outline) 90%, transparent),  1px  0px 0 color-mix(in srgb, var(--ui-text-outline) 90%, transparent),
         1px  1px 0 color-mix(in srgb, var(--ui-text-outline) 90%, transparent),  0px  1px 0 color-mix(in srgb, var(--ui-text-outline) 90%, transparent),
        -1px  1px 0 color-mix(in srgb, var(--ui-text-outline) 90%, transparent), -1px  0px 0 color-mix(in srgb, var(--ui-text-outline) 90%, transparent),
        0 2px 10px rgba(0, 0, 0, 0.75);
}

/* Завязка события — доска раздела (§6 рамы). Золотая полоса слева
   отсюда не доживала: рама пишет `border` целиком и гасит `border-left`
   вместе со всем, чего в сокращённой записи нет. */
.tam-event-story {
    margin: 10px 0;
    padding: 10px 12px;
    font-size: var(--ui-size-small);
    font-weight: 700;
    line-height: 1.4;
}

.tam-event-wallet {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    margin-bottom: 10px;
}

/* Кошелёк события — три выемки со значениями (§8 рамы). */
.tam-event-wallet__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    padding: 8px 6px;
}

.tam-event-wallet__item img {
    width: 22px;
    height: 22px;
    object-fit: contain;
}

.tam-event-wallet__val {
    font-size: var(--ui-size-body);
    font-weight: 900;
    color: var(--ui-gold-light);
}

.tam-event-wallet__lbl {
    font-size: var(--ui-size-micro);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.2px;
    color: var(--ui-text-muted);
}

/* Подсказка о мире события — голубая (`--ui-blue` значит «подсказка»),
   а не ещё одна тёмная плашка: рядом стоят кошелёк и завязка. */
.tam-event-world {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 10px;
    padding: 7px 10px;
    border-radius: var(--ui-radius-sm);
    background:
        var(--ui-dirt),
        linear-gradient(180deg,
            color-mix(in srgb, var(--ui-blue) 20%, transparent) 0%,
            color-mix(in srgb, var(--ui-blue) 11%, transparent) 100%);
    border: var(--ui-border) solid color-mix(in srgb, var(--ui-blue) 34%, transparent);
    font-size: var(--ui-size-small);
    font-weight: 800;
    line-height: 1.25;
    color: var(--ui-text-main);
}

.tam-event-tabs { margin-bottom: 10px; }

/* Задание, веха и товар события — доски раздела (§6 рамы). */
.tam-event-task,
.tam-event-ms,
.tam-event-goods {
    padding: 10px;
}

.tam-event-task.is-ready,
.tam-event-ms.is-ready {
    border-color: color-mix(in srgb, var(--ui-gold) 52%, transparent);
    box-shadow: 0 5px 0 var(--ui-panel-edge), var(--ui-shadow-soft),
                0 0 16px color-mix(in srgb, var(--ui-gold) 16%, transparent);
}

/* Забранное гаснет ЦВЕТОМ: `opacity: .68` пропускала фон раздела сквозь
   доску и читалась сбоем отрисовки. */
.tam-event-task.is-claimed,
.tam-event-ms.is-claimed {
    opacity: 1;
    filter: saturate(0.6) brightness(0.82);
}

.tam-event-task__head {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    align-items: center;
}

.tam-event-task__title {
    font-size: var(--ui-size-body);
    font-weight: 900;
    color: var(--ui-text-main);
}

.tam-event-task__reward {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: var(--ui-size-small);
    font-weight: 900;
    color: var(--ui-gold-light);
}

.tam-event-task__reward img { width: 18px; height: 18px; object-fit: contain; }

.tam-event-task__about {
    margin: 3px 0 7px;
    font-size: var(--ui-size-small);
    font-weight: 700;
    color: var(--ui-text-muted);
}

.tam-event-task__foot {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    margin-top: 6px;
    font-size: var(--ui-size-small);
    font-weight: 800;
    color: var(--ui-text-muted);
}

.tam-event-task__done {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: var(--ui-green-light);
}

.tam-event-task__reset { color: var(--ui-text-muted); }

/* Зелёная кнопка «забрать» — материал из §9.1 рамы, подпись из §21.
   Кегль 13px не случаен: на 12px обводка §21 съедает просвет буквы. */
.tam-event-task__btn {
    min-height: 34px;
    padding: 6px 14px;
    border-radius: var(--ui-radius-md);
    font-family: var(--font-main);
    font-size: var(--ui-size-body);
    font-weight: 900;
    text-transform: uppercase;
    cursor: pointer;
}

.tam-event-task__btn:active { transform: translateY(1px); }

.tam-event-ms,
.tam-event-goods {
    display: flex;
    align-items: center;
    gap: 10px;
}

.tam-event-ms__icon,
.tam-event-goods__icon {
    width: 34px;
    height: 34px;
    object-fit: contain;
    flex: 0 0 auto;
}

.tam-event-ms__body,
.tam-event-goods__body { flex: 1 1 auto; min-width: 0; }

.tam-event-ms__title,
.tam-event-goods__title {
    font-size: var(--ui-size-small);
    font-weight: 900;
    color: var(--ui-text-main);
    margin-bottom: 5px;
}

.tam-event-ms__note,
.tam-event-goods__limit {
    margin-top: 4px;
    font-size: var(--ui-size-micro);
    font-weight: 800;
    color: var(--ui-text-muted);
}

.tam-event-ms__mark {
    flex: 0 0 auto;
    display: inline-flex;
    color: var(--ui-locked-text);
}

.tam-event-ms.is-claimed .tam-event-ms__mark { color: var(--ui-green-light); }

.tam-event-goods__reward {
    font-size: var(--ui-size-small);
    font-weight: 700;
    color: var(--ui-gold-light);
}

/* Кнопка покупки — второй корпус §9.1.1 рамы (витрина события повторяет
   одно действие строкой за строкой), «кончилось» — §9.1 оттуда же. */
.tam-event-goods__btn {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-height: 36px;
    padding: 7px 12px;
    border-radius: var(--ui-radius-md);
    font-family: var(--font-main);
    font-size: var(--ui-size-body);
    font-weight: 900;
    cursor: pointer;
}

.tam-event-goods__btn img { width: 16px; height: 16px; object-fit: contain; }

/* Товар кончился: гаснет цветом, а не прозрачностью. */
.tam-event-goods.is-out {
    opacity: 1;
    filter: saturate(0.55) brightness(0.8);
}

.tam-event-goods__out {
    flex: 0 0 auto;
    font-size: var(--ui-size-small);
    font-weight: 900;
    text-transform: uppercase;
    color: var(--ui-locked-text);
}

.tam-event-note {
    margin-top: 10px;
    font-size: var(--ui-size-small);
    font-weight: 700;
    line-height: 1.35;
    color: var(--ui-text-muted);
}

/* ──────────────── Цена пропуска на золотой кнопке ────────────────
   Строка «значок земли + число» внутри главной кнопки сезона. Правила
   переехали сюда 29 августа из `shop.css`: тот файл описывал витрину
   мёртвого модуля `modules/shop/shop.js` и удалён целиком (§87), а эта
   строка — единственное, что из него осталось живым. Имена классов
   сохранены: их ставит `mvp/views/season.view.js`. */

.trumpamole__shop-btn-price {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    white-space: nowrap;
}

.trumpamole__shop-btn-price-icon {
    width: 20px;
    height: 20px;
    object-fit: contain;
    filter: drop-shadow(var(--ui-art-shadow-card));
}

.trumpamole__shop-btn-price-value {
    font-weight: 900;
    letter-spacing: 0.25px;
}
