/* ==========================================================================
   VeltorLab — исправления вёрстки (подключается ПОСЛЕ styles.css на всех страницах)
   styles.css собран из многих слоёв переопределений, поэтому здесь местами
   нужен !important. Новые правки раскладки лучше вносить сюда, а не в конец styles.css.
   ========================================================================== */

/* ---------- Общее ---------- */
html,
body {
  overflow-x: clip;
}

img {
  max-width: 100%;
}

/* Пока app.js не загрузился, не мигаем кнопкой «Войти» у уже вошедшего игрока */
html.vl-authed #openAuthModalBtn {
  display: none !important;
}

/* ---------- Магазин: цена была 8px, а кнопка огромной ---------- */
.store-card .skin-card-price {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  margin: 6px 0 8px;
}

.store-card .market-price-amount {
  font-size: 15px !important;
  font-weight: 700;
  line-height: 1.2;
}

.store-card .market-price-period {
  font-size: 10px !important;
  opacity: .75;
}

/* ---------- Каталог кейсов: название и цена налезали на картинку ---------- */
.case-catalog-card {
  height: auto !important;
  aspect-ratio: auto !important;
}

.case-catalog-card .case-card-poster {
  display: flex !important;
  flex-direction: column;
  align-items: stretch;
  height: auto !important;
  min-height: 0 !important;
}

.case-catalog-card .case-card-img {
  position: relative !important;
  align-self: center;
  width: auto !important;
  max-width: 82% !important;
  height: 150px !important;
  margin: 14px auto 0 !important;
  object-fit: contain;
}

.case-catalog-card .case-card-overlay {
  position: relative !important;
  inset: auto !important;
  margin-top: auto;
  background: linear-gradient(180deg, rgba(9, 13, 20, 0) 0%, rgba(9, 13, 20, .9) 45%) !important;
}

.case-catalog-card .case-card-title {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.case-catalog-card .case-card-meta {
  gap: 8px;
}

.case-catalog-card .case-card-sub {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ---------- Админка: трейд-ссылка и предметы на вывод ---------- */
.admin-user-trade-url {
  margin-bottom: 8px;
  padding: 8px 10px;
  border: 1px dashed rgba(245, 196, 0, .35);
  border-radius: 8px;
  font-size: 12px;
  color: var(--text-muted, #9ca3af);
  word-break: break-all;
}

.admin-user-trade-url a {
  color: #f5c400;
}

.admin-withdraw-badge {
  display: inline-block;
  margin-right: 6px;
  padding: 1px 6px;
  border-radius: 4px;
  background: rgba(34, 197, 94, .15);
  color: #22c55e;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .04em;
  vertical-align: middle;
}

/* ==========================================================================
   Планшеты и телефоны
   ========================================================================== */
@media (max-width: 1050px) {

  /* Касса: колонка сетки раздувалась содержимым до 394px при ширине экрана 342px */
  .deposit-layout-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .deposit-form-column,
  .deposit-info-column,
  .deposit-step-card,
  .deposit-info-column > * {
    min-width: 0 !important;
    max-width: 100%;
  }
}

@media (max-width: 700px) {

  /* ---------- Шапка ---------- */
  /* На телефоне шапка занимала ~150px из 844 и всегда висела сверху */
  .top-nav {
    position: relative !important;
    grid-template-columns: minmax(0, 1fr) auto auto auto !important;
  }

  .top-nav .logo {
    min-width: 0;
    overflow: hidden;
  }

  .top-nav .logo-text {
    font-size: 16px !important;
    white-space: nowrap;
  }

  /* В теме CYBER у логотипа шире разрядка — без этого он обрезался («VELTORLA») */
  .theme-new .top-nav .logo-text {
    font-size: 14px !important;
    letter-spacing: .04em !important;
  }

  /* Переключатель темы налезал на логотип — на телефоне оставляем только тумблер */
  .theme-toggle .theme-toggle-label {
    display: none !important;
  }

  .theme-toggle {
    min-width: 0 !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
  }

  .user-nav-box,
  .user-badge-logged {
    min-width: 0;
    max-width: 150px;
  }

  .header-name {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  /* ---------- Магазин ---------- */
  .store-card .btn-buy-skin {
    min-height: 34px;
    padding: 8px 6px !important;
    font-size: 12px !important;
  }

  .store-card .skin-card-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
  }

  /* ---------- Кейсы ---------- */
  .case-catalog-card .case-card-img {
    height: 112px !important;
    margin-top: 10px !important;
  }

  .case-catalog-card .case-card-overlay {
    padding: 8px 10px 10px !important;
  }

  .case-catalog-card .case-card-meta {
    flex-direction: column;
    align-items: flex-start !important;
    gap: 6px;
  }

  /* Кнопки 1–10 уходили за правый край */
  .case-quantity {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 6px !important;
    width: 100%;
    overflow: visible !important;
  }

  .case-quantity-btn {
    width: auto !important;
    min-width: 0 !important;
    height: 40px !important;
  }

  /* Содержимое кейса было в одну колонку с огромными карточками */
  #caseContents {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  #caseContents .case-content-card {
    min-width: 0;
    min-height: 0 !important;
    padding: 10px 8px !important;
  }

  #caseContents .case-content-card img {
    height: 72px !important;
    object-fit: contain;
  }

  #caseContents .case-content-card strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  /* Заголовки в «неоновой рамке» переносились на две строки и сжимали счётчик */
  .category-neon-frame {
    max-width: 100%;
    padding-left: 28px !important;
    padding-right: 28px !important;
  }

  .category-neon-title {
    font-size: 17px !important;
    letter-spacing: .06em !important;
    white-space: nowrap;
  }

  .category-neon-frame.mini .category-neon-title {
    font-size: 15px !important;
  }

  .cases-section-heading.contents-heading {
    flex-direction: column;
    gap: 6px !important;
  }

  .cases-count-label,
  .history-count-pill {
    white-space: nowrap;
    border-radius: 999px !important;
    width: auto !important;
    height: auto !important;
    padding: 4px 10px !important;
  }

  /* ---------- Профиль ---------- */
  .history-section-header,
  .history-title-group {
    flex-wrap: wrap;
    gap: 8px !important;
  }

  .history-title-group {
    width: 100%;
    justify-content: space-between;
  }

  .history-filter-nav {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 6px;
    width: 100%;
    overflow-x: auto;
    padding-bottom: 4px;
    scrollbar-width: none;
  }

  .history-filter-nav::-webkit-scrollbar {
    display: none;
  }

  .hist-filter-btn {
    flex: 0 0 auto;
    white-space: nowrap;
  }

  .inventory-sell-all-btn {
    width: 100%;
  }

  .page-promo-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px !important;
  }

  .page-promo-row .input-tactical,
  .page-promo-row .btn-submit-gold {
    width: 100% !important;
    min-width: 0 !important;
  }

  /* ---------- Настройки ---------- */
  /* Поле трейд-ссылки было сжато в узкую полоску рядом с кнопкой */
  .trade-url-box {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 8px !important;
  }

  .trade-url-box .input-tactical,
  .trade-url-box .btn-submit-gold {
    width: 100% !important;
    min-width: 0 !important;
  }

  .trade-url-box .btn-submit-gold {
    font-size: 14px !important;
  }

  /* Блок статуса Steam разваливался по одному слову в строке */
  .steam-unlinked-box,
  .steam-linked-box {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 12px !important;
  }

  .steam-link-badge {
    display: inline-flex !important;
    white-space: nowrap;
  }

  .btn-link-steam {
    justify-content: center;
    width: 100%;
  }

  .settings-modal-card .settings-card,
  .settings-modal-card .steam-status-card {
    padding: 14px !important;
  }

  .avatar-seeds-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  /* ---------- Модальные окна ---------- */
  .modal-card {
    max-height: calc(100dvh - 24px);
    overflow-y: auto;
  }

  /* Редактор кейсов: две колонки не помещались, правая уезжала за экран */
  .case-manager-body {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .case-manager-existing .admin-cases-list {
    max-height: 320px;
    overflow-y: auto;
  }

  .case-editor-fields {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .case-editor-items {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .case-manager-intro {
    flex-wrap: wrap;
  }

  /* ---------- Касса ---------- */
  .deposit-page-container {
    padding: 14px 0 32px !important;
  }

  .deposit-hero-banner {
    padding: 22px 16px !important;
  }

  .deposit-hero-features,
  .deposit-feature-pill {
    width: 100%;
  }

  .deposit-hero-title {
    font-size: clamp(26px, 8.5vw, 34px) !important;
    word-break: break-word;
  }

  .deposit-step-card,
  .deposit-info-column > * {
    padding: 16px 14px !important;
  }

  .deposit-step-header h3 {
    font-size: 18px !important;
  }

  .deposit-presets-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 8px !important;
    padding-top: 8px;
  }

  .deposit-preset-btn {
    min-width: 0 !important;
    padding: 12px 4px !important;
  }

  .deposit-preset-btn .preset-tag {
    right: 4px !important;
    top: -8px !important;
  }

  .deposit-promo-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px !important;
  }

  .deposit-promo-row input {
    min-width: 0 !important;
  }

  .btn-apply-promo {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  #startDepositPaymentBtn {
    gap: 10px;
    font-size: 15px !important;
  }

  .req-item {
    flex-wrap: wrap;
    gap: 2px 10px;
  }

  .req-item .req-value {
    min-width: 0;
    max-width: 100%;
    margin-left: auto;
    overflow-wrap: anywhere;
    text-align: right;
  }

  .btn-read-offer {
    max-width: 100%;
    white-space: normal !important;
  }
}

@media (max-width: 380px) {
  .top-nav .logo-text {
    font-size: 14px !important;
  }

  .user-nav-box,
  .user-badge-logged {
    max-width: 120px;
  }

  .deposit-presets-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* История инвентаря: предмет отправлен игроку в Steam */
.hist-status-badge.delivered {
  border: 1px solid rgba(34, 197, 94, .45) !important;
  background: rgba(34, 197, 94, .14) !important;
  color: #4ade80 !important;
}
