/* Rich Bums — игровые экраны: картинки kie.ai, карточки, касса, город, криминал, Банк и TON Connect.
   Размеры — от той же единицы --u, что и в ui.css. */

/* Размытая подложка (.backdrop) выступает за края .app — без clip контейнер можно прокрутить фокусом или полем ввода,
   и весь интерфейс съезжает вверх */
.app { overflow: clip; }

/* Картинки kie.ai вместо SVG; пока картинки нет — запасная SVG-иконка */
.ic.art { position: relative; }
.ic.art img { width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 calc(var(--u) * 0.35) 0 rgba(0, 0, 0, 0.28)); }
.ic.art > svg { display: none; }
.ic.art.miss img { display: none; }
.ic.art.miss > svg { display: block; }
.ic.art.miss:not(:has(svg)) { border-radius: 30%; background: rgba(255, 255, 255, 0.1); }
.ic.tile.art img { filter: none; }
.place-art { display: block; overflow: hidden; background: linear-gradient(160deg, #3b4a8a, #1a2148); }
.place-art img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ton-mark { display: inline-block; width: 1.05em; height: 1.05em; flex: none; vertical-align: -0.16em; }
.ton-sum { display: inline-flex; align-items: center; gap: 0.28em; white-space: nowrap; }
.ton-sum .ton-mark { vertical-align: 0; }

/* Верх: касса */
.res-i.kassa { padding-right: calc(var(--u) * 3.4); } /* цифра — не вплотную к краю, как у сил */
.res-i.kassa b { margin-bottom: calc(var(--u) * 0.6); color: #fff; }
.res-i.kassa.ready { border-color: rgba(111, 240, 159, 0.55); }
.res-i.kassa.full { border-color: var(--gold); animation: kassa-pulse 1.8s ease-in-out infinite; }
@keyframes kassa-pulse { 50% { box-shadow: 0 calc(var(--u) * 0.9) 0 rgba(0, 0, 0, 0.3), 0 0 calc(var(--u) * 4) rgba(255, 204, 61, 0.55); } }
.kassa-fill { position: absolute; left: calc(var(--u) * 6.4); right: calc(var(--u) * 3); bottom: calc(var(--u) * 0.9); height: calc(var(--u) * 0.9); border-radius: 99px; background: rgba(0, 0, 0, 0.35); overflow: hidden; }
.kassa-fill i { position: absolute; inset: 0; transform-origin: left; transform: scaleX(0); background: linear-gradient(90deg, var(--green-2), var(--gold)); transition: transform 0.6s; }

/* Слева под профилем: лидерборд (та же круглая кнопка, что в правой колонке) */
.rail-left { position: absolute; left: calc(var(--u) * 2); top: calc(var(--safe-t) + var(--u) * 20); display: flex; flex-direction: column; align-items: center; gap: calc(var(--u) * 2.6); }
.hud.away > .rail-left { opacity: 0; transform: translateX(calc(var(--u) * -10)); pointer-events: none; }
.rb.leaders .rb-ic { background: radial-gradient(circle at 50% 30%, #ffd86b, #c77a12 72%); }
.rb.events .rb-ic { background: radial-gradient(circle at 50% 30%, #a27bff, #4a25b8 72%); } /* Ивенты — фиолетовый, как разборки */
.rb.chat .rb-ic { background: radial-gradient(circle at 50% 30%, #ffffff, #b9e3ff 75%); } /* светлый круг — синий пузырь не сливается */
.me-row.empty-row { justify-content: space-between; }
/* подсказка вместо своей строки («Нет банды — Найти банду») — фраза, а не имя: переносится, а не обрезается (10 языков) */
.me-row.empty-row .who { white-space: normal; text-overflow: clip; line-height: 1.2; }
.me-row.empty-row .btn { flex: none; }
.pod-ava .crown.art { position: absolute; }

/* Вкладки: точка внимания; значки kie.ai в нижнем меню и колонке */
.tabbar .dot { position: absolute; top: calc(var(--u) * 0.4); right: calc(50% - var(--u) * 5); width: calc(var(--u) * 2.6); height: calc(var(--u) * 2.6); border-radius: 50%; background: var(--red); border: calc(var(--u) * 0.5) solid var(--ink-900); }
.tabbar .dot[hidden] { display: none; }
.tabbar button > .ic.art { width: calc(var(--u) * 8); height: calc(var(--u) * 8); }
/* картинки kie.ai от прозрачности мутнеют — неактивные чуть приглушаем цветом, а не прозрачностью */
.tabbar button:not(.on) > .ic.art { opacity: 0.85; filter: saturate(0.7) brightness(0.88); }
.tabbar button.on > .ic.art { filter: none; }
.home-ic .ic.art { width: calc(var(--u) * 9); height: calc(var(--u) * 9); }
.rb-ic .ic.art { width: calc(var(--u) * 9.4); height: calc(var(--u) * 9.4); }
.cta-side > .ic.art { width: calc(var(--u) * 8); height: calc(var(--u) * 8); }
.sheet-icon .ic.art { width: calc(var(--u) * 7.6); height: calc(var(--u) * 7.6); }

/* Карточки */
.card {
  display: flex; flex-direction: column; gap: calc(var(--u) * 2.2); padding: calc(var(--u) * 3);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.075), rgba(255, 255, 255, 0.04)); border: 1.5px solid var(--line); border-radius: calc(var(--u) * 4.4);
}
.card.dim .card-top { opacity: 0.75; }
.card.bad { border-color: rgba(255, 77, 109, 0.6); background: linear-gradient(180deg, rgba(255, 77, 109, 0.14), rgba(255, 77, 109, 0.05)); }
.card-top { display: flex; align-items: center; gap: calc(var(--u) * 3); }
.card-art { display: grid; place-items: center; flex: none; width: calc(var(--u) * 14); height: calc(var(--u) * 14); border-radius: calc(var(--u) * 3.6); background: radial-gradient(circle at 50% 35%, #3f4f94, #1e2650 75%); }
.card-art .ic { width: calc(var(--u) * 11); height: calc(var(--u) * 11); }
.card-art.big { width: calc(var(--u) * 20); height: calc(var(--u) * 20); border-radius: calc(var(--u) * 5); }
.card-art.big .ic { width: calc(var(--u) * 16); height: calc(var(--u) * 16); }
.card-mid { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: calc(var(--u) * 0.9); }
.card-mid > b { font-size: 1em; font-weight: 800; }
.card-mid > b.big { font-size: 1.3em; font-weight: 900; }
.card-mid > small { color: var(--muted); font-size: 0.74em; font-weight: 600; line-height: 1.35; }
.card-mid > small.unlocks { color: #c7d0ff; font-weight: 500; }
.hero-item .card-mid > small:first-child, .stat-card .card-mid > small:first-child { text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.66em; color: var(--dim); }
.card-btns { display: flex; flex-wrap: wrap; gap: calc(var(--u) * 1.8); }
.card-btns .btn { flex: 1 1 auto; }
.card-btns .btn.quit { flex: none; margin-left: auto; min-height: calc(var(--u) * 8); padding: 0 calc(var(--u) * 3); font-size: 0.78em; color: var(--muted); }
.row-card { flex-direction: row; align-items: center; gap: calc(var(--u) * 3); }
.row-card .card-art { width: calc(var(--u) * 12); height: calc(var(--u) * 12); }
.row-card .card-art .ic { width: calc(var(--u) * 9.5); height: calc(var(--u) * 9.5); }
.row-card .card-end { flex: none; display: flex; flex-direction: column; align-items: flex-end; gap: calc(var(--u) * 1); }
.row-card.past { opacity: 0.55; }
.row-card.now { border-color: rgba(111, 240, 159, 0.55); background: linear-gradient(180deg, rgba(61, 220, 132, 0.14), rgba(61, 220, 132, 0.04)); }
.stat-card { flex-direction: row; align-items: center; gap: calc(var(--u) * 3.4); }
.stat-card .meter { margin-top: calc(var(--u) * 0.6); }

.chip.ok { background: rgba(61, 220, 132, 0.16); color: #a8f5c8; }
.chip.miss { background: rgba(255, 77, 109, 0.14); color: #ffb3c1; }
.chip.gold { background: rgba(255, 204, 61, 0.16); color: var(--gold-1); }
.chip .ic.art { width: 1.25em; height: 1.25em; }
.btn .ic.art { width: 1.35em; height: 1.35em; }
.btn.short { filter: saturate(0.6) brightness(0.85); }
.warn { display: flex; align-items: center; gap: calc(var(--u) * 1.4); margin: 0; padding: calc(var(--u) * 2) calc(var(--u) * 3); border-radius: calc(var(--u) * 3); background: rgba(255, 77, 109, 0.14); color: #ffc2cd; font-size: 0.8em; font-weight: 700; line-height: 1.35; }
.warn.soft { background: rgba(255, 204, 61, 0.12); color: #ffe6a3; }
.muted { color: var(--muted); font-size: 0.74em; font-weight: 600; }
.lead.center { text-align: center; }

/* Касса в карточке */
.kassa-row { display: flex; align-items: center; gap: calc(var(--u) * 2); }
.kassa-row .meter { flex: 1; }
.kassa-row b { min-width: calc(var(--u) * 14); text-align: right; font-weight: 900; color: var(--gold-1); }
.meter.full i { background: linear-gradient(180deg, var(--gold-1), var(--gold-3)); }
.meter.green i { background: linear-gradient(180deg, var(--green-1), var(--green-2)); }
.meter.warm i { background: linear-gradient(180deg, #ffb36b, #ff6b4a); }

/* Подсказки-списки */
.perks.big li { font-size: 0.82em; font-weight: 500; color: #dfe4ff; line-height: 1.4; }
.checks { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: calc(var(--u) * 1); }
.checks li { display: flex; align-items: center; gap: calc(var(--u) * 1.2); font-size: 0.78em; font-weight: 700; color: #ffb3c1; }
.checks li.ok { color: #a8f5c8; }
.presets { display: flex; gap: calc(var(--u) * 1.8); }
.presets .btn { flex: 1; min-width: 0; }
/* Вывод: «Куда» — монеты CryptoBot и TON-кошелёк; на кнопке — сколько придёт */
.coin-row { display: flex; flex-wrap: wrap; gap: calc(var(--u) * 1.6); }
.coin { flex: 1 1 calc(var(--u) * 17); min-width: 0; display: flex; flex-direction: column; align-items: center; gap: calc(var(--u) * 0.3); padding: calc(var(--u) * 1.8) calc(var(--u) * 1.2); border-radius: calc(var(--u) * 3.2); background: rgba(255, 255, 255, 0.06); border: 1.5px solid var(--line-2); }
.coin b { display: inline-flex; align-items: center; gap: 0.35em; font-size: 0.84em; font-weight: 900; white-space: nowrap; }
.coin b .coin-ic { width: 1.3em; height: 1.3em; flex: none; border-radius: 50%; }
.coin small { font-size: 0.7em; font-weight: 700; color: var(--muted); white-space: nowrap; min-height: 1.2em; }
.coin.on { border-color: var(--gold-1); background: rgba(255, 196, 0, 0.12); box-shadow: 0 0 0 1px var(--gold-1) inset; }
.coin.on small { color: var(--gold-1); }
.coin.short { opacity: 0.45; }
.out-when { text-align: center; }
.out-get.warn-text { color: #ffc46b; }
.choose-card { align-self: stretch; width: 100%; }
.choose-card .coin-row { margin: calc(var(--u) * 2) 0; }
.choose-card .coin { flex: 1 1 0; padding: calc(var(--u) * 2.6) calc(var(--u) * 1.6); border-color: var(--gold-1); }
.choose-card .coin b { font-size: 1em; }
.choose-card .coin small { font-size: 0.8em; color: var(--gold-1); }
/* «или любой монетой» — разделитель между TON Connect и CryptoBot */
.or-line { display: flex; align-items: center; gap: calc(var(--u) * 2.4); color: var(--muted); font-size: 0.74em; font-weight: 700; }
.or-line::before, .or-line::after { content: ''; flex: 1; height: 1px; background: var(--line-2); }
/* Кнопка в две строки: что получишь и сколько стоит — помещается втроём даже на 320 px */
.btn.stack { flex-direction: column; gap: 0; padding: calc(var(--u) * 1.4) calc(var(--u) * 1.6); line-height: 1.15; }
.btn.stack small { display: inline-flex; align-items: center; gap: 0.25em; font-size: 0.82em; opacity: 0.9; }

/* Город */
.city { display: grid; grid-template-columns: repeat(2, 1fr); gap: calc(var(--u) * 2.6); }
.city-tile { position: relative; display: block; overflow: hidden; aspect-ratio: 4 / 3; border-radius: calc(var(--u) * 4.4); border: 1.5px solid var(--line-2); text-align: left; box-shadow: 0 calc(var(--u) * 1) 0 rgba(0, 0, 0, 0.3); }
.city-tile .place-art { position: absolute; inset: 0; }
.city-tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 35%, rgba(8, 11, 24, 0.92)); }
.city-txt { position: absolute; left: calc(var(--u) * 2.6); right: calc(var(--u) * 2.6); bottom: calc(var(--u) * 2.2); z-index: 1; display: flex; flex-direction: column; gap: calc(var(--u) * 0.4); }
.city-txt b { font-size: 0.98em; font-weight: 900; text-shadow: 0 calc(var(--u) * 0.4) 0 rgba(0, 0, 0, 0.5); }
.city-txt small { font-size: 0.7em; font-weight: 700; color: #dfe4ff; }
.city-tile.alert { border-color: var(--red); box-shadow: 0 0 0 calc(var(--u) * 0.8) rgba(255, 77, 109, 0.3); }
.banner { position: relative; overflow: hidden; height: calc(var(--u) * 38); border-radius: calc(var(--u) * 5); border: 1.5px solid var(--line-2); }
.banner .place-art { position: absolute; inset: 0; }
.banner::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, rgba(8, 11, 24, 0.9)); }
.banner-txt { position: absolute; left: calc(var(--u) * 3.4); right: calc(var(--u) * 3.4); bottom: calc(var(--u) * 2.8); z-index: 1; display: flex; flex-direction: column; gap: calc(var(--u) * 0.6); }
.banner-txt b { font-size: 1.3em; font-weight: 900; text-shadow: 0 calc(var(--u) * 0.5) 0 rgba(0, 0, 0, 0.5); }
.banner-txt small { font-size: 0.76em; font-weight: 600; color: #dfe4ff; line-height: 1.35; }

/* Криминал */
.stats4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: calc(var(--u) * 1.8); }
.stats4 > div { display: flex; flex-direction: column; align-items: center; gap: calc(var(--u) * 0.4); padding: calc(var(--u) * 2) calc(var(--u) * 1); border-radius: calc(var(--u) * 3.6); background: rgba(255, 255, 255, 0.06); border: 1.5px solid var(--line); }
.stats4 .ic { width: calc(var(--u) * 8); height: calc(var(--u) * 8); }
.stats4 b { font-size: 1.05em; font-weight: 900; }
.stats4 small { font-size: 0.64em; font-weight: 700; color: var(--muted); }
.ava-chip { display: grid; place-items: center; flex: none; width: calc(var(--u) * 12); height: calc(var(--u) * 12); border-radius: 50%; background: linear-gradient(160deg, #5a6ab8, #2c3670); font-weight: 900; font-size: 0.95em; border: calc(var(--u) * 0.5) solid rgba(255, 255, 255, 0.7); }
.target.revenge { border-color: rgba(169, 139, 255, 0.7); background: linear-gradient(180deg, rgba(123, 77, 255, 0.2), rgba(123, 77, 255, 0.05)); }
.ava-chip { position: relative; } /* без обрезки: в углу — значок уровня (.lv-badge), картинку обрезает её border-radius */
.ava-chip img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; object-position: 50% 28%; }
.target.revenge .ava-chip { background: linear-gradient(160deg, var(--violet-1), var(--violet-d)); }
.odds { flex: none; padding: calc(var(--u) * 1.2) calc(var(--u) * 2.6); border-radius: 99px; font-weight: 900; font-size: 0.95em; }
.odds.hi { background: rgba(61, 220, 132, 0.2); color: #8ff0b7; }
.odds.mid { background: rgba(255, 204, 61, 0.18); color: var(--gold-1); }
.odds.lo { background: rgba(255, 77, 109, 0.18); color: #ffa3b4; }
.pips { display: flex; gap: calc(var(--u) * 1.2); }
.pips i { width: calc(var(--u) * 4.6); height: calc(var(--u) * 2); border-radius: 99px; background: rgba(255, 255, 255, 0.14); }
.pips i.on { background: linear-gradient(180deg, #ff7d8c, var(--red)); box-shadow: 0 0 calc(var(--u) * 2) rgba(255, 77, 109, 0.6); }

/* Поля ввода */
.field { width: 100%; min-height: calc(var(--u) * 12.5); padding: 0 calc(var(--u) * 3.6); border-radius: calc(var(--u) * 3.6); border: 1.5px solid var(--line-2); background: rgba(0, 0, 0, 0.32); color: #fff; font: inherit; font-size: 1em; font-weight: 700; outline: none; }
.field::placeholder { color: var(--dim); font-weight: 600; }
.field:focus { border-color: #34aaff; box-shadow: 0 0 0 calc(var(--u) * 0.8) rgba(0, 152, 234, 0.25); }
.field-wrap { position: relative; }
.field-wrap .field { padding-right: calc(var(--u) * 12); }
.field-wrap .ton-mark { position: absolute; right: calc(var(--u) * 3.6); top: 50%; width: calc(var(--u) * 6); height: calc(var(--u) * 6); transform: translateY(-50%); }
.field-label { font-size: 0.78em; font-weight: 700; color: var(--muted); }

/* Банк и TON Connect (как в готовых приложениях на TON) */
.balance-card { align-items: center; text-align: center; gap: calc(var(--u) * 0.8); background: radial-gradient(circle at 50% 0%, rgba(0, 152, 234, 0.28), rgba(255, 255, 255, 0.04) 70%); }
.balance-card small { color: var(--muted); font-size: 0.74em; font-weight: 600; }
.balance-card b.big { display: inline-flex; align-items: center; gap: calc(var(--u) * 1.4); font-size: 1.9em; font-weight: 900; }
.balance-card b.big .ic { width: 1em; height: 1em; }
/* Две части баланса: на развитие (пополнения) и к выводу (заработанное) */
.bal-split { display: grid; grid-template-columns: 1fr 1fr; gap: calc(var(--u) * 1.8); width: 100%; margin: calc(var(--u) * 1) 0; }
.bal-split span { display: flex; flex-direction: column; align-items: center; gap: calc(var(--u) * 0.4); padding: calc(var(--u) * 2) calc(var(--u) * 1.6); border-radius: calc(var(--u) * 3); background: rgba(0, 0, 0, 0.22); min-width: 0; }
.bal-split b { display: inline-flex; align-items: center; gap: 0.3em; font-size: 1.05em; font-weight: 900; }
.bal-split span:last-child b { color: var(--gold-1); }
.ton-box { display: flex; flex-direction: column; gap: calc(var(--u) * 2.4); padding: calc(var(--u) * 3.4); border-radius: calc(var(--u) * 5); background: #1b1f2a; border: 1.5px solid rgba(255, 255, 255, 0.08); }
.ton-btn { display: inline-flex; align-items: center; justify-content: center; gap: calc(var(--u) * 2); min-height: calc(var(--u) * 13); padding: 0 calc(var(--u) * 6); border-radius: 99px; background: #0098ea; color: #fff; font-weight: 800; font-size: 1em; box-shadow: 0 calc(var(--u) * 0.9) 0 #00649b; }
.ton-btn .ton-mark { width: 1.3em; height: 1.3em; }
/* на синей кнопке значок наоборот: белый круг, синий ромб, белая звезда */
.ton-btn .ton-mark .tm-bg { fill: #fff; }
.ton-btn .ton-mark .tm-gem { fill: #30a1f5; }
.ton-btn .ton-mark .tm-star { fill: #fff; }
.ton-btn.wide { width: 100%; border-radius: calc(var(--u) * 4); }
.addr-chip { align-self: center; display: inline-flex; align-items: center; gap: calc(var(--u) * 1.6); padding: calc(var(--u) * 2) calc(var(--u) * 3.6); border-radius: 99px; background: rgba(0, 0, 0, 0.35); font-weight: 800; }
/* Вывод закрыт — карточка-цель; заявки на вывод */
.unlock-card { display: flex; flex-direction: column; gap: calc(var(--u) * 2.6); padding: calc(var(--u) * 3.4); border-radius: calc(var(--u) * 5);
  background: linear-gradient(180deg, rgba(255, 204, 61, 0.14), rgba(255, 204, 61, 0.05)); border: 1.5px solid rgba(255, 204, 61, 0.3); }
.unlock-head { display: flex; align-items: center; gap: calc(var(--u) * 2.6); }
.unlock-head > .ic { flex: none; width: calc(var(--u) * 13); height: calc(var(--u) * 13); }
.unlock-head > div { display: flex; flex-direction: column; gap: calc(var(--u) * 0.8); min-width: 0; }
.unlock-head b { font-size: 1.05em; font-weight: 900; color: #ffe6a3; }
.unlock-head small, .unlock-foot small { color: var(--muted); font-size: 0.78em; font-weight: 700; }
.unlock-foot { display: flex; align-items: center; justify-content: space-between; gap: calc(var(--u) * 2); }
.meter.gold i { background: linear-gradient(180deg, #ffe27a, #f0a81c); }
.wd-line { color: var(--muted); font-size: 0.74em; font-weight: 600; }
.wd-line .ok { color: #7fe3a2; font-weight: 800; }
.wd-line .go { color: #8fd0ff; font-weight: 800; }
.wd-card.closed { opacity: 0.6; }
.field.flash { animation: field-flash 1.2s ease-out; }
@keyframes field-flash { 0%, 40% { border-color: #ffd23d; box-shadow: 0 0 0 calc(var(--u) * 1.2) rgba(255, 210, 61, 0.35); } }
.wallet-menu:not([hidden]) { display: flex; justify-content: center; gap: calc(var(--u) * 2); }
.ton-card { display: flex; flex-direction: column; gap: calc(var(--u) * 1); padding: calc(var(--u) * 3); border-radius: calc(var(--u) * 3.6); background: rgba(255, 255, 255, 0.06); }
.ton-card small { color: var(--muted); font-size: 0.76em; font-weight: 600; }
.ton-card b { display: inline-flex; align-items: center; gap: 0.35em; font-size: 1.3em; font-weight: 900; }
.ton-box .presets .btn { background: rgba(255, 255, 255, 0.08); border: none; }
.you-get:empty { display: none; }
/* Перевод вручную: адрес Банка и комментарий-код с кнопкой «скопировать» */
.ton-box .manual { border-top: 1px solid rgba(255, 255, 255, 0.08); padding-top: calc(var(--u) * 2); }
.ton-box .manual summary { cursor: pointer; color: var(--muted); font-size: 0.8em; font-weight: 700; }
/* отступы, а не flex: <details> во встроенном браузере iOS flex-контейнером не становится — строки слипались */
.ton-box .manual > :not(summary) { margin: calc(var(--u) * 2) 0 0; }
.copy-row { display: flex; align-items: center; gap: calc(var(--u) * 2); padding: calc(var(--u) * 2) calc(var(--u) * 2.6); border-radius: calc(var(--u) * 3); background: rgba(255, 255, 255, 0.06); }
.copy-row > span { display: flex; flex-direction: column; gap: calc(var(--u) * 0.6); flex: 1; min-width: 0; }
.copy-row small { color: var(--muted); font-size: 0.72em; font-weight: 600; }
.copy-row b { font-size: 0.8em; font-weight: 800; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.wallet-row { align-items: flex-start; }
.wallet-row .btn { align-self: stretch; margin-top: calc(var(--u) * 1); }
button.link { padding: 0; background: none; color: #5ec8ff; font: inherit; font-weight: 800; text-decoration: underline; }
.addr-link { color: #5ec8ff; text-decoration: none; }

/* Окна событий */
.modal-art { position: relative; display: grid; place-items: center; }
.modal-art .ic.huge { width: calc(var(--u) * 26); height: calc(var(--u) * 26); }
.modal-face { position: relative; width: calc(var(--u) * 30); height: calc(var(--u) * 30); border-radius: 50%; overflow: hidden; border: calc(var(--u) * 1) solid var(--c, var(--gold)); box-shadow: 0 0 calc(var(--u) * 8) rgba(255, 204, 61, 0.5); animation: pop-num 0.6s cubic-bezier(.3, 1.8, .5, 1); }
.modal-face img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.lv-title { position: relative; font-size: 2.2em; font-weight: 900; color: var(--gold-1); text-shadow: 0 calc(var(--u) * 0.9) 0 var(--gold-d); }
.lv-note.dim { color: #d9ccff; font-weight: 500; }
.lv-note b { color: var(--gold-1); }
.modal-card .btn.ghost { margin-top: 0; }
.toast.bad { border-color: rgba(255, 77, 109, 0.6); }

/* Лидерборд: топ-3 на 3D-пьедестале (assets/ui/podium.webp, kie.ai), портреты в металлической оправе */
.podium3 { padding-top: calc(var(--u) * 39); margin-bottom: calc(var(--u) * 1); } /* корона первого места + имя и сумма над ступенью */
.p3-img { position: relative; }
.p3-base { display: block; width: 100%; height: auto; filter: drop-shadow(0 calc(var(--u) * 2.2) calc(var(--u) * 3) rgba(0, 0, 0, 0.5)); }
.p3-num { position: absolute; transform: translate(-50%, -50%); font-weight: 900; line-height: 1; -webkit-background-clip: text; background-clip: text; color: transparent; }
.p3-num.r1 { font-size: 2.4em; background-image: linear-gradient(180deg, #fffbe0, #f7c948 45%, #a8650a); filter: drop-shadow(0 calc(var(--u) * 0.4) 0 rgba(110, 60, 0, 0.55)); }
.p3-num.r2 { font-size: 1.8em; background-image: linear-gradient(180deg, #ffffff, #c9d1e0 45%, #6c7789); filter: drop-shadow(0 calc(var(--u) * 0.4) 0 rgba(40, 48, 66, 0.5)); }
.p3-num.r3 { font-size: 1.55em; background-image: linear-gradient(180deg, #ffe7cf, #e09a62 45%, #8a4417); filter: drop-shadow(0 calc(var(--u) * 0.4) 0 rgba(80, 34, 8, 0.55)); }
.p3-who { position: absolute; z-index: 1; width: 33%; transform: translate(-50%, -100%); display: flex; flex-direction: column; align-items: center; gap: calc(var(--u) * 0.9); text-align: center; }
.p3-who.r1 { z-index: 2; }
.p3-ava { position: relative; display: grid; place-items: center; width: calc(var(--u) * 17); height: calc(var(--u) * 17); padding: calc(var(--u) * 1); border-radius: 50%; box-shadow: 0 calc(var(--u) * 1.2) calc(var(--u) * 2.4) rgba(0, 0, 0, 0.45); }
.p3-ava img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; object-position: 50% 28%; background: #c9d3f0; }
.p3-ava .ic { width: 70%; height: 70%; }
.r1 .p3-ava { width: calc(var(--u) * 22); height: calc(var(--u) * 22); padding: calc(var(--u) * 1.2); background: conic-gradient(from 210deg, #fff6c2, #ffbe2e, #fff1a6, #d98500, #fff6c2); box-shadow: 0 0 0 calc(var(--u) * 0.6) rgba(255, 214, 90, 0.35), 0 0 calc(var(--u) * 6) rgba(255, 196, 46, 0.65), 0 calc(var(--u) * 1.4) calc(var(--u) * 2.4) rgba(0, 0, 0, 0.45); }
.r2 .p3-ava { background: conic-gradient(from 210deg, #ffffff, #b8c2d6, #f4f7ff, #7a859b, #ffffff); }
.r3 .p3-ava { background: conic-gradient(from 210deg, #ffe2c6, #d98a50, #ffd2a8, #8f4a1f, #ffe2c6); }
.p3-who .ic.p3-crown { position: absolute; z-index: 3; top: calc(var(--u) * -6.4); width: calc(var(--u) * 12.5); height: calc(var(--u) * 12.5); animation: crown-bob 2.6s ease-in-out infinite; }
@keyframes crown-bob { 50% { transform: translateY(calc(var(--u) * -0.8)) rotate(-5deg); } }
.p3-glow { position: absolute; z-index: -1; left: 50%; top: calc(var(--u) * 11); width: calc(var(--u) * 56); aspect-ratio: 1; transform: translate(-50%, -50%); pointer-events: none;
  background: repeating-conic-gradient(rgba(255, 214, 90, 0.2) 0 9deg, transparent 9deg 18deg); -webkit-mask: radial-gradient(circle, #000 16%, transparent 60%); mask: radial-gradient(circle, #000 16%, transparent 60%); animation: spin 22s linear infinite; }
.p3-name { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 0.8em; font-weight: 900; text-shadow: 0 calc(var(--u) * 0.5) 0 rgba(0, 0, 0, 0.5); }
.r1 .p3-name { font-size: 0.9em; color: var(--gold-1); }
.p3-val { display: inline-flex; align-items: center; gap: 0.25em; padding: calc(var(--u) * 0.6) calc(var(--u) * 2.4); border-radius: 99px; background: rgba(8, 11, 24, 0.62); border: 1px solid rgba(255, 255, 255, 0.12); font-size: 0.74em; font-weight: 900; color: var(--gold-1); white-space: nowrap; }
@media (prefers-reduced-motion: reduce) { .p3-crown, .p3-glow { animation: none; } }
.row-ava { position: relative; display: grid; place-items: center; flex: none; width: calc(var(--u) * 9); height: calc(var(--u) * 9); border-radius: 50%; background: #2a3463; border: calc(var(--u) * 0.4) solid rgba(255, 255, 255, 0.25); }
.row-ava img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; object-position: 50% 28%; }
.row-ava .lv-badge { right: calc(var(--u) * -1.8); bottom: calc(var(--u) * -1.2); min-width: calc(var(--u) * 4.4); height: calc(var(--u) * 4.4); padding: 0 calc(var(--u) * 0.7); font-size: calc(var(--u) * 2.3); border-width: calc(var(--u) * 0.4); }
.row-ava .ic { width: 78%; height: 78%; }

/* Банды, разборки и личные страницы */
.emblem { --hue: 0deg; position: relative; display: grid; place-items: center; flex: none; width: calc(var(--u) * 11); height: calc(var(--u) * 11); border-radius: 30%;
  background: radial-gradient(circle at 50% 35%, hsl(calc(var(--hue) + 230deg) 45% 42%), hsl(calc(var(--hue) + 230deg) 50% 18%) 78%); border: 1.5px solid rgba(255, 255, 255, 0.18); }
.emblem .ic { width: 82%; height: 82%; }
.emblem .ic img { filter: hue-rotate(var(--hue)) drop-shadow(0 calc(var(--u) * 0.3) 0 rgba(0, 0, 0, 0.3)); }
.emblem.sm { width: calc(var(--u) * 9); height: calc(var(--u) * 9); }
.emblem.big { width: calc(var(--u) * 20); height: calc(var(--u) * 20); border-radius: calc(var(--u) * 5); }
.row-ava .emblem, .p3-ava .emblem { width: 100%; height: 100%; border: none; border-radius: 50%; }

.season-bar { display: flex; flex-direction: column; gap: calc(var(--u) * 2.4); padding: calc(var(--u) * 3) calc(var(--u) * 3.2);
  border-radius: calc(var(--u) * 4.8); border: 1.5px solid rgba(94, 200, 255, 0.4); background: linear-gradient(135deg, rgba(0, 152, 234, 0.26), rgba(123, 77, 255, 0.16)); }
.sb-top { display: flex; align-items: center; gap: calc(var(--u) * 3); }
.sb-art .ic { width: calc(var(--u) * 15); height: calc(var(--u) * 15); }
.sb-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: calc(var(--u) * 0.4); }
.sb-txt > small { text-transform: uppercase; letter-spacing: 0.1em; font-size: 0.68em; font-weight: 900; color: #9ad8ff; }
.sb-txt > span { font-size: 0.8em; font-weight: 700; color: #dfe4ff; }
.sb-fund { font-size: 1.7em; font-weight: 900; line-height: 1.1; color: #fff; text-shadow: 0 calc(var(--u) * 0.5) 0 rgba(0, 40, 90, 0.6); }
.sb-fund .ton-mark { width: 0.9em; height: 0.9em; }
.sb-timer { display: flex; align-items: center; justify-content: space-between; gap: calc(var(--u) * 2); padding-top: calc(var(--u) * 2.2); border-top: 1px solid rgba(255, 255, 255, 0.12); }
.sb-timer > small { font-size: 0.74em; font-weight: 800; color: var(--muted); }
.timer { display: flex; gap: calc(var(--u) * 1.4); }
.tc { display: flex; flex-direction: column; align-items: center; min-width: calc(var(--u) * 11); padding: calc(var(--u) * 1) calc(var(--u) * 1.2) calc(var(--u) * 0.7); border-radius: calc(var(--u) * 2.6); background: rgba(8, 11, 24, 0.55); border: 1px solid rgba(255, 255, 255, 0.1); }
.tc b { font-size: 1.05em; font-weight: 900; font-variant-numeric: tabular-nums; line-height: 1.1; }
.tc small { font-size: 0.56em; font-weight: 800; color: var(--muted); text-transform: uppercase; letter-spacing: 0.04em; }
/* Разборок нет: спокойная полоса без таймера, под ней — коротко итоги последних */
/* «Друзья»: баннер идущего конкурса → «Ивенты» → «Партнёры» */
.rc-banner { display: flex; align-items: center; gap: calc(var(--u) * 2.6); width: 100%; padding: calc(var(--u) * 2.2) calc(var(--u) * 2.8); text-align: left;
  border-radius: calc(var(--u) * 4); border: 1px solid rgba(255, 196, 61, 0.55); color: inherit; cursor: pointer;
  background: linear-gradient(135deg, rgba(255, 122, 61, 0.32), rgba(123, 77, 255, 0.28)); box-shadow: 0 0 calc(var(--u) * 4) rgba(255, 160, 61, 0.25); }
.rc-banner .rcb-art { width: calc(var(--u) * 11); height: calc(var(--u) * 11); flex: none; }
.rcb-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: calc(var(--u) * 0.4); }
.rcb-txt b { font-size: 1em; font-weight: 900; line-height: 1.2; }
.rcb-txt b .ton-mark { width: 0.95em; height: 0.95em; vertical-align: -0.12em; }
.rcb-txt small { font-size: 0.74em; font-weight: 700; color: #dfe4ff; line-height: 1.3; }
.rc-banner > .ic:last-child { flex: none; opacity: 0.8; animation: rc-nudge 1.6s ease-in-out infinite; } /* стрелка */
/* Анимация баннера: хлопушка вздрагивает и выпускает конфетти, по баннеру пробегает блик, рамка мягко светится, стрелка
   подталкивает вправо. «Уменьшить движение» в телефоне — всё стоит (ui.css, пониженная анимация) */
.rc-banner { position: relative; overflow: hidden; animation: rc-glow 2.8s ease-in-out infinite; }
.rc-banner::after { content: ''; position: absolute; top: 0; bottom: 0; left: -50%; width: 40%; pointer-events: none;
  background: linear-gradient(100deg, transparent, rgba(255, 255, 255, 0.2), transparent); animation: rc-shine 4.2s ease-in-out infinite; }
.rcb-pop { position: relative; flex: none; display: grid; }
.rc-banner .rcb-art { transform-origin: 30% 85%; animation: rc-pop 2.8s ease-in-out infinite; }
.rcb-burst i { position: absolute; left: 62%; top: 26%; width: calc(var(--u) * 1.3); height: calc(var(--u) * 2.1); border-radius: 1px; opacity: 0;
  animation: rc-confetti 2.8s ease-out infinite; }
.rcb-burst i:nth-child(1) { background: #ffd23d; --dx: calc(var(--u) * 7); --dy: calc(var(--u) * -3.5); --r: 200deg; }
.rcb-burst i:nth-child(2) { background: #ff5a7a; --dx: calc(var(--u) * 9.5); --dy: calc(var(--u) * 1.5); --r: -160deg; animation-delay: 0.04s; }
.rcb-burst i:nth-child(3) { background: #5ec8ff; --dx: calc(var(--u) * 4.5); --dy: calc(var(--u) * -4.5); --r: 140deg; animation-delay: 0.08s; }
.rcb-burst i:nth-child(4) { background: #3ddc84; --dx: calc(var(--u) * 11); --dy: calc(var(--u) * -1.5); --r: -220deg; animation-delay: 0.02s; }
.rcb-burst i:nth-child(5) { background: #a27bff; --dx: calc(var(--u) * 6.5); --dy: calc(var(--u) * 3.5); --r: 180deg; animation-delay: 0.06s; }
.rcb-burst i:nth-child(6) { background: #ffffff; --dx: calc(var(--u) * 2.5); --dy: calc(var(--u) * -4); --r: -120deg; animation-delay: 0.1s; width: calc(var(--u) * 1); height: calc(var(--u) * 1); border-radius: 50%; }
@keyframes rc-pop { 0%, 62%, 100% { transform: rotate(0) scale(1); } 67% { transform: rotate(-12deg) scale(1.06); } 73% { transform: rotate(9deg) scale(1.12); } 81% { transform: rotate(-3deg) scale(1.02); } }
@keyframes rc-confetti { 0%, 70% { opacity: 0; transform: translate(0, 0) rotate(0); } 74% { opacity: 1; } 100% { opacity: 0; transform: translate(var(--dx), var(--dy)) rotate(var(--r)); } }
@keyframes rc-shine { 0%, 45% { left: -50%; } 75%, 100% { left: 115%; } }
@keyframes rc-glow { 50% { border-color: rgba(255, 214, 102, 0.9); box-shadow: 0 0 calc(var(--u) * 6) rgba(255, 160, 61, 0.45); } }
@keyframes rc-nudge { 50% { transform: translateX(calc(var(--u) * 1)); } }
.season-bar.off { border-color: var(--line-2); background: linear-gradient(135deg, rgba(255, 255, 255, 0.07), rgba(123, 77, 255, 0.1)); }
.season-bar.off .sb-art .ic { width: calc(var(--u) * 12); height: calc(var(--u) * 12); filter: grayscale(0.55); opacity: 0.85; }
.season-bar.off .sb-txt > small { color: var(--muted); }
.sb-state { font-size: 1.12em; font-weight: 900; line-height: 1.2; color: #fff; }
.season-bar.off .sb-txt > span { font-weight: 600; color: var(--muted); line-height: 1.35; }
.sb-last { display: flex; flex-direction: column; gap: calc(var(--u) * 1.4); padding-top: calc(var(--u) * 2.2); border-top: 1px solid rgba(255, 255, 255, 0.12); }
.sb-last > small { font-size: 0.74em; font-weight: 800; color: var(--muted); }
.sb-last ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: calc(var(--u) * 1); }
.sb-last li { display: flex; align-items: center; gap: calc(var(--u) * 2); font-size: 0.86em; font-weight: 800; }
.sb-last .ton-sum { color: #9ad8ff; }
.place.sm { width: calc(var(--u) * 6.4); height: calc(var(--u) * 6.4); font-size: 0.74em; }
.lb-prize { flex: none; display: inline-flex; padding: calc(var(--u) * 0.5) calc(var(--u) * 1.8); border-radius: 99px; background: rgba(48, 161, 245, 0.18); border: 1px solid rgba(94, 200, 255, 0.4); font-size: 0.74em; font-weight: 900; color: #cfeaff; }

.seg.mini .seg-item { min-height: calc(var(--u) * 8.6); font-size: 0.8em; }
.gang-list { gap: calc(var(--u) * 1.6); }
.gang-row { display: flex; align-items: center; gap: calc(var(--u) * 2.4); padding: calc(var(--u) * 2.2) calc(var(--u) * 2.6); cursor: pointer;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.075), rgba(255, 255, 255, 0.04)); border: 1.5px solid var(--line); border-radius: calc(var(--u) * 4.4); }
.gang-row:active { transform: translateY(1px); }
.gang-row.mine { border-color: #9ad8ff; background: linear-gradient(90deg, rgba(58, 169, 255, 0.3), rgba(42, 100, 216, 0.18)); }
.g-mid { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: calc(var(--u) * 0.5); }
.g-mid b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 0.92em; font-weight: 800; }
.g-mid small { color: var(--muted); font-size: 0.68em; font-weight: 600; }
.g-end { flex: none; display: flex; flex-direction: column; align-items: flex-end; gap: calc(var(--u) * 1); }
.g-end .btn.sm { min-height: calc(var(--u) * 7.6); padding: 0 calc(var(--u) * 3); font-size: 0.78em; }
.place.p1 { background: linear-gradient(180deg, #fff1a6, #e8a317); color: #5a3300; }
.place.p2 { background: linear-gradient(180deg, #ffffff, #a8b3c8); color: #2c3446; }
.place.p3 { background: linear-gradient(180deg, #ffd9b5, #c7743c); color: #4a2108; }

.apps-card { gap: calc(var(--u) * 1.6); }
.apps-head { display: flex; align-items: center; gap: calc(var(--u) * 1.4); }
.apps-head b { flex: 1; font-weight: 900; }
.apps-head small { color: var(--muted); font-size: 0.74em; font-weight: 700; }
.app-row { display: flex; align-items: center; gap: calc(var(--u) * 2); }
.app-row .who { font-size: 0.88em; }

/* Нижняя кнопка «Собрать свою банду» прилипает к низу, как строка игрока в лидерборде */
.dock { position: sticky; bottom: calc(var(--u) * -7); z-index: 2; display: flex; flex-direction: column; gap: calc(var(--u) * 2); padding: calc(var(--u) * 2.4) 0 calc(var(--u) * 1);
  background: linear-gradient(180deg, rgba(18, 24, 51, 0), #141a38 calc(var(--u) * 3)); }
.dock.open { padding: calc(var(--u) * 3); border-radius: calc(var(--u) * 4.4); border: 1.5px solid var(--line-2); background: #1a2147; box-shadow: 0 calc(var(--u) * -2) calc(var(--u) * 5) rgba(18, 24, 51, 0.9); }

.gang-head { --hue: 0deg; display: flex; align-items: center; gap: calc(var(--u) * 3.4); padding: calc(var(--u) * 3.4); border-radius: calc(var(--u) * 5.5);
  background: linear-gradient(135deg, hsl(calc(var(--hue) + 230deg) 45% 32% / 0.85), #1a2147 72%); border: 1.5px solid hsl(calc(var(--hue) + 230deg) 60% 60% / 0.5); }
.gh-mid { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: calc(var(--u) * 1); }
.gh-mid > small { text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.66em; font-weight: 800; color: var(--muted); }
.gh-mid > b { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 1.25em; font-weight: 900; }
.gh-boss { display: inline-flex; align-items: center; gap: calc(var(--u) * 1); padding: calc(var(--u) * 0.8) calc(var(--u) * 2.4); border-radius: 99px; background: rgba(0, 0, 0, 0.3); font-size: 0.76em; font-weight: 800; color: var(--gold-1); }
.gh-boss .ic { width: 1.3em; height: 1.3em; }
.stats3 b { display: inline-flex; align-items: center; justify-content: center; gap: 0.2em; }
.stats3 b .ic { width: 1em; height: 1em; }

.members { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: calc(var(--u) * 1.4); }
.members li { display: flex; align-items: center; gap: calc(var(--u) * 2.4); padding: calc(var(--u) * 2) calc(var(--u) * 2.6); cursor: pointer;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.075), rgba(255, 255, 255, 0.04)); border: 1.5px solid var(--line); border-radius: calc(var(--u) * 4); }
.members li.me { border-color: #9ad8ff; background: linear-gradient(90deg, rgba(58, 169, 255, 0.3), rgba(42, 100, 216, 0.16)); }
.members .who { display: flex; flex-direction: column; gap: calc(var(--u) * 0.3); font-size: 0.9em; }
.members .who .nm { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.warn > span { flex: 1; min-width: 0; }
.members .who .ic.crown { display: inline-block; width: 1.15em; height: 1.15em; margin-left: 0.25em; vertical-align: -0.15em; }
.members .who small.sub { color: var(--muted); font-size: 0.76em; font-weight: 600; }
.m-end { flex: none; display: flex; flex-direction: column; align-items: flex-end; gap: calc(var(--u) * 0.3); }
.m-end small { color: var(--muted); font-size: 0.68em; font-weight: 700; }
.members .kick { flex: none; width: calc(var(--u) * 8); min-height: calc(var(--u) * 8); padding: 0; }
.inbox-row .card-top { cursor: pointer; }
.stage-pick { display: grid; grid-template-columns: repeat(2, 1fr); gap: calc(var(--u) * 1.4); width: 100%; }
.stage-pick .btn.sm { font-size: 0.76em; padding: 0 calc(var(--u) * 1.6); }
.row.col { flex-direction: column; align-items: stretch; cursor: default; }

.back-btn { align-self: flex-start; display: inline-flex; align-items: center; gap: calc(var(--u) * 0.8); padding: calc(var(--u) * 1.2) calc(var(--u) * 3) calc(var(--u) * 1.2) calc(var(--u) * 1.6);
  border-radius: 99px; background: rgba(255, 255, 255, 0.08); border: 1.5px solid var(--line); font-size: 0.82em; font-weight: 800; color: #dfe4ff; }
.back-btn .ic { transform: scaleX(-1); width: 1em; height: 1em; }
.note { display: flex; align-items: center; gap: calc(var(--u) * 1.8); margin: 0; padding: calc(var(--u) * 2) calc(var(--u) * 2.6); border-radius: calc(var(--u) * 3.6);
  background: rgba(94, 200, 255, 0.12); border: 1.5px solid rgba(94, 200, 255, 0.3); font-size: 0.8em; font-weight: 700; color: #d6efff; }
.note > span { flex: 1; }
.note.gold { background: rgba(255, 204, 61, 0.12); border-color: rgba(255, 204, 61, 0.35); color: #ffe9a8; }
.gang-chip { display: flex; align-items: center; gap: calc(var(--u) * 2.4); width: 100%; padding: calc(var(--u) * 2.2) calc(var(--u) * 3); text-align: left;
  border-radius: calc(var(--u) * 4.4); border: 1.5px solid var(--line); background: linear-gradient(180deg, rgba(255, 255, 255, 0.075), rgba(255, 255, 255, 0.04)); }
.gang-chip.none { opacity: 0.7; }
.gang-chip.none > .ic { width: calc(var(--u) * 9); height: calc(var(--u) * 9); filter: grayscale(1); }
.empty.locked .ic.tile { opacity: 0.9; }
.biz-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: calc(var(--u) * 1.8); }
.biz-cell { display: flex; flex-direction: column; align-items: center; gap: calc(var(--u) * 0.8); padding: calc(var(--u) * 2) calc(var(--u) * 1); text-align: center;
  border-radius: calc(var(--u) * 3.6); background: rgba(255, 255, 255, 0.06); border: 1.5px solid var(--line); }
.biz-cell .ic { width: calc(var(--u) * 11); height: calc(var(--u) * 11); }
.biz-cell small { font-size: 0.66em; font-weight: 700; color: #dfe4ff; line-height: 1.25; }

/* Строки лидерборда открывают страницы */
.leaders li[data-link], .me-row[data-link], .p3-who[data-link] { cursor: pointer; }
.leaders li.mine { border-color: #9ad8ff; }
.p3-prize { display: inline-flex; padding: calc(var(--u) * 0.4) calc(var(--u) * 2); border-radius: 99px; background: linear-gradient(180deg, #2fa7ff, #0b6cc0); font-size: 0.7em; font-weight: 900; color: #fff; box-shadow: 0 calc(var(--u) * 0.5) 0 rgba(0, 0, 0, 0.3); }
.p3-prize .ton-mark .tm-bg { fill: #fff; }
.p3-prize .ton-mark .tm-gem { fill: #30a1f5; }
.p3-prize .ton-mark .tm-star { fill: #fff; }
.podium3.gangs { padding-top: calc(var(--u) * 45); } /* у банд над ступенью ещё и приз */

/* Окно итогов разборок */
.winners { list-style: none; margin: 0; padding: 0; width: 100%; display: flex; flex-direction: column; gap: calc(var(--u) * 1.2); }
.winners li { display: flex; align-items: center; gap: calc(var(--u) * 2); padding: calc(var(--u) * 1.6) calc(var(--u) * 2.4); border-radius: calc(var(--u) * 3.4); background: rgba(255, 255, 255, 0.07); font-weight: 800; }
.winners li.mine { box-shadow: inset 0 0 0 1.5px #9ad8ff; background: rgba(58, 169, 255, 0.2); }
.winners .who { text-align: left; }
.lv-title.sm { font-size: 1.5em; }

/* Уровень героя (28.10.2026): строка в «Налёте» и закрытые налёты до 5 уровня */
.lv-bonus { font-size: 0.86em; font-weight: 700; line-height: 1.35; }
.lv-bonus .lv-pill { flex: none; }
.lv-lock .meter { width: 80%; margin-top: calc(var(--u) * 1.6); }
/* Звания в панели героя */
.ranks { display: grid; gap: calc(var(--u) * 1.6); }
.rank { display: flex; align-items: center; gap: calc(var(--u) * 2.6); padding: calc(var(--u) * 2) calc(var(--u) * 3); border-radius: calc(var(--u) * 3.6); background: rgba(255, 255, 255, 0.06); }
.rank .lv-pill { min-width: calc(var(--u) * 13); }
.rank b { flex: 1; min-width: 0; font-weight: 800; }
.rank small { font-size: 0.78em; font-weight: 800; color: var(--gold-1); }
.rank.now { background: rgba(255, 204, 61, 0.14); box-shadow: inset 0 0 0 1.5px rgba(255, 204, 61, 0.6); }
.rank.locked { opacity: 0.5; }
.rank > .ic { opacity: 0.8; }
