/* Profile v2 — верхнее меню профиля (карточки действий).
   Полностью новые имена классов (profile-v2-*), намеренно не пересекаются
   ни с одним селектором в style.profile.css / style.profile-wallet.css /
   style.screens.css / style.layout.*.css — чтобы каскад из старых файлов
   не мог случайно перебить эти правила (см. историю дублей в профиле). */

/* Маленькие инлайн-иконки внутри кнопок пополнения/вывода/кошелька —
   те же pv2-* SVG-символы, но компактный размер под текстовую кнопку. */
.profile-v2-btn-inline{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  width:100%;
}

.profile-v2-btn-icon{
  width:18px;
  height:18px;
  flex:0 0 auto;
  display:block;
}

.profile-info-chip .profile-v2-btn-icon{
  width:16px;
  height:16px;
}

/* Приглушаем цвета кнопок пополнения/вывода до тёмно-синего/золотого —
   старые классы (.ton-btn/.buy-btn/.dark-btn/.danger-btn/.finance-tab-btn)
   используются по всему приложению с яркими градиентами через !important
   в других файлах, поэтому переопределяем строго в рамках #wallet-screen,
   чтобы не задеть эти же классы на других экранах. */
#wallet-screen .ton-btn,
#wallet-screen .buy-btn,
#wallet-screen .dark-btn{
  background:linear-gradient(135deg,#22304d 0%,#16223a 100%) !important;
  border:1px solid #3a4a6b !important;
  color:#f3f1ea !important;
  box-shadow:none !important;
  filter:none !important;
  text-shadow:none !important;
}

#wallet-screen .danger-btn{
  background:linear-gradient(135deg,#3a1f22 0%,#24151a 100%) !important;
  border:1px solid #6b3530 !important;
  color:#f3d9d5 !important;
  box-shadow:none !important;
  filter:none !important;
  text-shadow:none !important;
}

#profile-screen .finance-tab-btn.active{
  background:linear-gradient(135deg,#3a3320 0%,#241f14 100%) !important;
  border:1px solid #6b5323 !important;
  color:#f3f1ea !important;
}

/* style.profile-wallet.css задаёт точечные ID-переопределения цвета для
   этих двух кнопок — та же логика: совпадающая специфичность, позже по
   порядку подключения. */
#wallet-screen #connectWalletTopBtn,
#wallet-screen #bindTonWalletBtn{
  background:linear-gradient(135deg,#22304d 0%,#16223a 100%) !important;
  color:#f3f1ea !important;
  border:1px solid #3a4a6b !important;
  box-shadow:none !important;
}

/* style.layout.core.css задаёт точечные ID-переопределения цвета для этих
   четырёх кнопок (та же специфичность ID+ID) — глушим их тут же, эти
   правила должны победить за счёт более позднего порядка подключения. */
.profile-action-modal #buyStarsBtn,
#wallet-screen #buyStarsBtn,
.profile-action-modal #convertStarsBtn,
#wallet-screen #convertStarsBtn{
  background:linear-gradient(135deg,#22304d 0%,#16223a 100%) !important;
  color:#f3f1ea !important;
  border:1px solid #3a4a6b !important;
  box-shadow:none !important;
}
.profile-action-modal #depositTonBtn,
#wallet-screen #depositTonBtn{
  background:linear-gradient(135deg,#22304d 0%,#16223a 100%) !important;
  color:#f3f1ea !important;
  border:1px solid #3a4a6b !important;
}
.profile-action-modal #unbindTonWalletBtn,
#wallet-screen #unbindTonWalletBtn{
  background:linear-gradient(135deg,#3a1f22 0%,#24151a 100%) !important;
  color:#f3d9d5 !important;
  border:1px solid #6b3530 !important;
  box-shadow:none !important;
}

/* Инвентарь: приглушаем "Автовывод"/"Продать выбранное" (были ярко-циан и
   ярко-золотые), плюс центрируем иконку в квадратной кнопке обновления. */
#inventory-screen .inventory-selection-btn{
  background:linear-gradient(135deg,#22304d 0%,#16223a 100%) !important;
  color:#f3f1ea !important;
  border:1px solid #3a4a6b !important;
}

#inventory-screen .inventory-selection-sell-btn{
  background:linear-gradient(135deg,#3a3320 0%,#241f14 100%) !important;
  color:#f3f1ea !important;
  border:1px solid #6b5323 !important;
}

#inventory-screen .compact-inventory-actions .inventory-refresh-btn{
  display:flex;
  align-items:center;
  justify-content:center;
}

/* Ранг: был радужный градиент (золото-фиолетовый-циан) в прогресс-баре —
   меняем на чистое золото, чтобы соответствовать общей палитре. Эмблемы
   тира (бронза/серебро/золото/...) намеренно оставлены цветными — это
   значимое цветовое кодирование уровня, используется и на лидерборде. */
#rank-screen .rank-progress-fill{
  background:linear-gradient(90deg,#9c7124,#d8a94a,#f6d98a);
}

/* Стейкинг: --staking-action был ярко-фиолетово-синим (используется в
   apr-pill и claim-кнопке). Переопределяем и переменную (на случай, если
   элемент остаётся в #staking-screen), и сами кнопки напрямую по ID —
   при открытии как модалки узел может оказаться вне #staking-screen в
   DOM, тогда ancestor-селектор не сработает, а ID сработает всегда. */
#staking-screen{
  --staking-action:linear-gradient(135deg,#3a3320 0%,#241f14 100%) !important;
}
#stakingAprBadge,
#stakingClaimBtn{
  background:linear-gradient(135deg,#3a3320 0%,#241f14 100%) !important;
  border-color:#6b5323 !important;
  box-shadow:none !important;
  color:#f3f1ea !important;
}

/* Реферальная система: та же история — целимся по ID кнопок напрямую,
   независимо от того, где именно они оказываются в DOM при открытии
   модалки. Копировать/вывести были ярко-фиолетово-синими со свечением —
   глушим до золота и убираем свечение у всех трёх кнопок. */
#refClaimBtn,
#copyRefBtn{
  background:linear-gradient(135deg,#3a3320 0%,#241f14 100%) !important;
  border-color:#6b5323 !important;
  color:#f3f1ea !important;
  box-shadow:none !important;
}
#shareRefBtn{
  box-shadow:none !important;
}
#refClaimBtn:disabled{
  filter:none !important;
}

/* Задания: кнопка "Открыть канал" использовала общий фиолетовый
   брендовый градиент (та же специфичность .task-premium-btn.gold-btn,
   что и в tasks.css — глушим её тут же с !important). */
#tasks-screen .task-premium-btn.gold-btn{
  background:linear-gradient(135deg,#3a3320 0%,#241f14 100%) !important;
  color:#f3f1ea !important;
}

/* Кейсы: --cases-action (кнопки открытия/рулетки) был ярко-фиолетовым —
   переопределяем переменную на всех трёх её областях объявления (сама
   #cases-screen плюс NFT- и open-оверлеи — эти модалки могут оказаться
   вне #cases-screen в DOM). Плюс отдельно глушим два хардкода в обход
   переменной для модалки превью (.is-ton/.is-stars), которые её
   игнорируют полностью. */
#cases-screen,
.cases-nft-overlay,
.cases-open-overlay{
  --cases-action:linear-gradient(135deg,#3a3320 0%,#241f14 100%) !important;
}
.cases-open-direct-btn.is-ton[type="button"],
.cases-preview-modal .cases-open-direct-btn.is-ton[type="button"]{
  background:linear-gradient(135deg,#22304d 0%,#16223a 100%) !important;
}
.cases-open-direct-btn.is-stars[type="button"],
.cases-preview-modal .cases-open-direct-btn.is-stars[type="button"]{
  background:linear-gradient(135deg,#3a3320 0%,#241f14 100%) !important;
}

.profile-v2-menu{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:4px 2px 6px;
  width:100%;
  max-width:560px;
  margin:0 auto;
  box-sizing:border-box;
}

.profile-v2-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.profile-v2-card{
  display:flex;
  align-items:center;
  gap:12px;
  min-height:78px;
  padding:12px 14px;
  border-radius:18px;
  background:#141f36;
  border:1px solid #232f4a;
  color:#f3f1ea;
  text-align:left;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  outline:none;
  box-shadow:none;
  transition:background-color .15s ease, transform .1s ease;
}

.profile-v2-card:active{
  background:#182342;
  transform:scale(0.985);
}

.profile-v2-card-wide{
  width:100%;
  min-height:88px;
}

.profile-v2-card-gold{
  background:linear-gradient(135deg,#1a2038 0%,#241b12 100%);
  border:1px solid #6b5323;
}

.profile-v2-card-gold:active{
  background:linear-gradient(135deg,#1e2540 0%,#2a2013 100%);
}

.profile-v2-icon{
  flex:0 0 auto;
  width:44px;
  height:44px;
  display:block;
}

.profile-v2-row .profile-v2-card{
  gap:8px;
  padding:12px 10px;
}

.profile-v2-row .profile-v2-icon{
  width:36px;
  height:36px;
}

.profile-v2-row .profile-v2-chevron{
  padding-left:2px;
  font-size:18px;
}

.profile-v2-icon-lg{
  width:52px;
  height:52px;
}

.profile-v2-card-copy{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
  flex:1 1 auto;
}

.profile-v2-card-title{
  font-size:14px;
  font-weight:700;
  line-height:1.2;
  color:#f3f1ea;
  white-space:normal;
  overflow-wrap:normal;
  word-break:normal;
}

.profile-v2-card-wide .profile-v2-card-title{
  font-size:18px;
}

.profile-v2-card-sub{
  font-size:11px;
  font-weight:400;
  line-height:1.3;
  color:#8f9bb3;
  white-space:normal;
  overflow-wrap:normal;
  word-break:normal;
}

.profile-v2-chevron{
  flex:0 0 auto;
  font-size:22px;
  line-height:1;
  color:#5c6885;
  margin-left:auto;
  padding-left:6px;
}

.profile-v2-card.hidden{
  display:none;
}

/* Планшет/десктоп: центрируем и слегка увеличиваем воздух, сетка остаётся 2 колонки — так же, как в мобильном мокапе. */
@media (min-width:700px){
  .profile-v2-menu{
    max-width:620px;
    gap:12px;
  }
  .profile-v2-row{
    gap:12px;
  }
  .profile-v2-card{
    min-height:84px;
    padding:14px 16px;
  }
  .profile-v2-card-wide{
    min-height:96px;
  }
}

/* Очень узкие экраны (iPhone SE и т.п.): чуть плотнее, но раскладка не меняется. */
@media (max-width:360px){
  .profile-v2-card{
    gap:10px;
    padding:10px 12px;
    min-height:72px;
  }
  .profile-v2-icon{
    width:38px;
    height:38px;
  }
  .profile-v2-icon-lg{
    width:46px;
    height:46px;
  }
  .profile-v2-card-title{
    font-size:14px;
  }
  .profile-v2-card-wide .profile-v2-card-title{
    font-size:16px;
  }
  .profile-v2-card-sub{
    font-size:11px;
  }
  .profile-v2-chevron{
    font-size:20px;
  }
}

/* ==========================================================================
   Upgrade v2 — экран "Апгрейды" (upgrade_panel_v2.html). Новые классы
   upgrade-*-v2 / upgrade-stat-* нигде больше не определены — upgrade.css
   грузится лениво (позже) и не пересекается с этими именами, конфликтов
   каскада не будет. Функциональные ID (upgradeBetValue, upgradeBar и т.д.)
   не менялись — вся логика в upgrade.js работает без изменений.
   ========================================================================== */

/* Главный фикс скролла: upgrade.css вешает overflow:hidden и
   min-height:100% на .upgrade-shell — на маленьких экранах контент,
   который не влезает, просто обрезался, скроллить было нечем (хотя
   родитель .fullscreen-panel уже умеет overflow-y:auto). Снимаем это
   ограничение только для v2-версии. */
.upgrade-shell-v2{
  background:transparent;
  overflow:visible !important;
  min-height:auto !important;
  padding-bottom:16px !important;
  gap:6px !important;
}

.upgrade-shell-v2 .upgrade-result-row{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:2px 0;
}

.upgrade-shell-v2 .upgrade-slot{
  flex:1 1 0;
  min-width:0;
  max-width:180px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
  padding:6px 4px;
  border-radius:12px;
  background:transparent;
  border:0;
}

.upgrade-shell-v2 .upgrade-slot-title{
  display:none;
}

.upgrade-shell-v2 .upgrade-slot-img{
  width:100px;
  height:100px;
  object-fit:contain;
  border-radius:12px;
}

/* style.base.css задаёт "img,canvas,svg{display:block}" глобально — это
   правило автора и оно перебивает встроенное браузерное [hidden]{display:
   none} (у которого приоритет ниже как у правила из UA-стилей, даже с
   более высокой специфичностью). Поэтому пустая <img hidden> без src всё
   равно рендерилась как "битая картинка" — те самые полоски на месте
   ещё не выбранного подарка. Возвращаем true-hidden явно. */
.upgrade-shell-v2 .upgrade-slot-img[hidden]{
  display:none !important;
}

.upgrade-shell-v2 .upgrade-slot-placeholder-icon{
  width:56px;
  height:56px;
  display:block;
  border:0;
  background:none;
}

.upgrade-shell-v2 .upgrade-slot-target.has-target .upgrade-slot-placeholder-icon{
  display:none;
}

.upgrade-shell-v2 .upgrade-slot-value{
  font-size:13px;
  font-weight:700;
  color:#f3f1ea;
  text-align:center;
  min-height:16px;
}

/* Декоративная пунктирная линия-соединитель из upgrade.css — убираем,
   стрелка сама по себе достаточно ясно связывает ставку и цель. */
.upgrade-shell-v2 .upgrade-result-row::before{
  display:none;
}

.upgrade-slot-arrow-svg{
  width:26px;
  height:26px;
  flex:0 0 auto;
}

.upgrade-shell-v2 .upgrade-multiplier-label{
  text-align:center;
  color:#d8a94a;
  font-weight:700;
  font-size:13px;
}

.upgrade-shell-v2 .upgrade-bar-wrap{
  padding:4px 0 2px;
}

.upgrade-bar-segmented{
  position:relative;
  overflow:hidden;
}

.upgrade-bar-segmented::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background-image:repeating-linear-gradient(90deg,transparent 0,transparent 6px,rgba(10,17,32,.9) 6px,rgba(10,17,32,.9) 8px);
}

.upgrade-shell-v2 .upgrade-chance-label{
  text-align:center;
  color:#8f9bb3;
  font-size:12px;
  margin-top:2px;
}

.upgrade-stats-row{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:6px;
  margin-top:6px;
}

.upgrade-stat-card{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:2px;
  padding:6px 4px;
  border-radius:10px;
  background:rgba(255,255,255,.03);
  border:0;
  min-width:0;
}

.upgrade-stat-card-gold{
  background:rgba(216,169,74,.08);
}

.upgrade-stat-label{
  font-size:9px;
  font-weight:700;
  letter-spacing:.02em;
  text-transform:uppercase;
  color:#8f9bb3;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:100%;
}

.upgrade-stat-value{
  font-size:13px;
  font-weight:800;
  color:#f3f1ea;
  white-space:nowrap;
}

.upgrade-shell-v2 .upgrade-status{
  text-align:center;
  margin-top:4px;
  color:#8f9bb3;
  font-size:12px;
}

.upgrade-shell-v2 .upgrade-mode-row{
  display:flex;
  gap:6px;
  padding:3px;
  border-radius:14px;
  background:#141f36;
  border:1px solid #232f4a;
}

.upgrade-shell-v2 .upgrade-currency-btn{
  flex:1 1 0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:34px;
  border-radius:11px;
  background:transparent;
  border:0;
  color:#8f9bb3;
  font-weight:700;
  font-size:13px;
}

.upgrade-shell-v2 .upgrade-currency-btn.active{
  background:linear-gradient(135deg,#3a3320 0%,#241f14 100%);
  color:#f3f1ea;
}

.upgrade-shell-v2 .upgrade-input-row{
  display:flex;
  align-items:center;
  gap:5px;
  margin-top:6px;
}

.upgrade-shell-v2 .upgrade-limit-btn,
.upgrade-shell-v2 .upgrade-step-btn{
  flex:0 0 auto;
  min-height:26px;
  padding:0 7px;
  border-radius:9px;
  background:#141f36;
  border:1px solid #232f4a;
  color:#f3f1ea;
  font-weight:700;
  font-size:11px;
}

.upgrade-shell-v2 .upgrade-amount-shell{
  flex:1 1 auto;
  min-width:0;
  min-height:26px;
  border-radius:10px;
  background:#0d1424;
  border:1px solid #232f4a;
  display:flex;
  align-items:center;
  justify-content:center;
}

.upgrade-shell-v2 .upgrade-amount-shell input{
  width:100%;
  background:transparent;
  border:0;
  color:#f3f1ea;
  font-size:15px;
  font-weight:800;
  text-align:center;
}

/* Нейтральный нейтральный серо-стальной фон вместо прозрачной кнопки. */
.upgrade-shell-v2 .upgrade-targets-open-btn{
  display:flex;
  align-items:center;
  gap:8px;
  width:100%;
  min-height:44px;
  margin-top:6px;
  padding:0 12px;
  border-radius:14px;
  background:#1b2440;
  border:1px solid #2e3a5c;
  color:#f3f1ea;
}

.upgrade-shell-v2 .upgrade-chest-label{
  flex:1 1 auto;
  text-align:left;
  font-weight:700;
  font-size:13px;
}

.upgrade-chest-chevron{
  color:#5c6885;
  font-size:18px;
}

.upgrade-shell-v2 .upgrade-play-btn{
  width:100%;
  min-height:46px;
  margin-top:6px;
  border-radius:14px;
  background:linear-gradient(135deg,#d8a94a 0%,#9c7124 100%) !important;
  border:1px solid #6b5323 !important;
  color:#16233d !important;
  box-shadow:none !important;
  font-weight:900;
}

.upgrade-shell-v2 .upgrade-play-btn:disabled{
  opacity:.5;
}

/* Адаптив: совсем маленькие экраны — ещё компактнее. */
@media (max-width:360px){
  .upgrade-shell-v2 .upgrade-slot-img{width:80px;height:80px}
  .upgrade-shell-v2 .upgrade-slot-placeholder-icon{width:46px;height:46px}
  .upgrade-shell-v2 .upgrade-slot-value{font-size:12px}
  .upgrade-stat-value{font-size:12px}
  .upgrade-stat-label{font-size:8px}
}

/* Планшет/десктоп: ограничиваем ширину и центрируем, чтобы не растягивалось на весь экран. */
@media (min-width:700px){
  .upgrade-shell-v2{
    max-width:480px;
    margin:0 auto;
  }
}

/* ==========================================================================
   Free v2 — вкладка "Бесплатно" (free_v2.html). Компактнее по воздуху
   (колесо/кнопка/промокод) + новая карточка промокода с подпиской на канал.
   ========================================================================== */
/* Специфичность выше, чем у дублей в style.screens.css/style.tournament.css
   (они грузятся позже моего файла, поэтому обычной !important-специфичности
   было недостаточно — добиваем через ID/двойной класс). */
#free-screen .cards-stack.redesign-free-stack.redesign-free-stack{
  gap:6px !important;
  padding-top:0 !important;
  margin-top:0 !important;
}

#free-screen #dailyRewardCard.reward-card.daily-roulette-card{
  padding:10px !important;
  gap:4px !important;
  /* style.screens.css задаёт flex:1 1 auto — карточка растягивается на всю
     доступную высоту стека и подпирает промокод снизу пустым местом внутри
     себя. Возвращаем естественную высоту по контенту. */
  flex:0 0 auto !important;
}

#free-screen #dailyRewardCard .panel-badge.gold{
  margin-bottom:2px !important;
}

#free-screen #dailyRouletteShell.daily-roulette-shell{
  margin:0 auto 4px !important;
}

#free-screen #dailyClaimMainBtn.daily-gold-btn{
  margin-top:0 !important;
}

#free-screen #dailyBonusTimer.reward-timer{
  margin-top:0 !important;
  font-size:11px !important;
}

/* Пустой блок под результат рулетки резервировал 22px + 8px отступ даже
   когда в нём ничего нет — схлопываем, пока он реально пуст. */
#free-screen #dailyRouletteResult.daily-roulette-result:empty{
  min-height:0 !important;
  margin-top:0 !important;
}

#free-screen .redesign-promo-card.promo-card-v2{
  padding:10px !important;
}

#free-screen .redesign-promo-card.promo-card-v2 .panel-head{
  margin-bottom:0 !important;
  padding-bottom:0 !important;
}

.promo-v2-lead{
  font-size:13px;
  line-height:1.35;
  color:#c9d2e6;
}

.promo-v2-sub-box{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:2px;
  padding:8px 12px;
  border-radius:14px;
  background:#173042;
  border:1px solid #2a4a5c;
  text-decoration:none;
}

.promo-v2-sub-icon{
  width:32px;
  height:32px;
  flex:0 0 auto;
}

.promo-v2-sub-copy{
  display:flex;
  flex-direction:column;
  gap:1px;
  min-width:0;
}

.promo-v2-sub-title{
  font-size:12px;
  font-weight:700;
  color:#f3f1ea;
}

.promo-v2-sub-handle{
  font-size:12px;
  font-weight:700;
  color:#8fd8ff;
}

.promo-v2-row{
  margin-top:6px !important;
}

/* daily_bonus.css задаёт цвет через #free-screen #applyPromoBtn (два ID) —
   чтобы гарантированно выиграть специфичность, дублируем оба ID здесь же. */
#free-screen #applyPromoBtn.promo-v2-apply-btn{
  background:linear-gradient(135deg,#d8a94a 0%,#9c7124 100%) !important;
  border:1px solid #6b5323 !important;
  color:#16233d !important;
  box-shadow:none !important;
  font-weight:900 !important;
}
