/**
 * TMIboard components: шапка, поиск, drawer, карточки, секции, футер, mobile nav.
 */

/* ---------- Шапка ---------- */

.tmiboard-header {
  position: sticky;
  top: 10px;
  z-index: 50;
  box-sizing: border-box;
  margin-top: 10px;
  padding: 0.55rem clamp(0.75rem, 2vw, 1.25rem);
  border: 1px solid var(--tmiboard-border);
  border-radius: var(--tmiboard-radius-lg);
  background: color-mix(in srgb, var(--tmiboard-surface) 88%, transparent);
  box-shadow: var(--tmiboard-shadow-sm);
  backdrop-filter: blur(18px);
  transition:
    transform var(--tmiboard-speed) var(--tmiboard-ease),
    box-shadow var(--tmiboard-speed) var(--tmiboard-ease),
    padding var(--tmiboard-speed) var(--tmiboard-ease);
}

/* Прокрутка вниз прячет шапку, вверх — мгновенно возвращает. */
.tmiboard-header.is-hidden {
  transform: translateY(calc(-100% - 14px));
}

.tmiboard-header.is-condensed {
  padding-top: 0.4rem;
  padding-bottom: 0.4rem;
  box-shadow: var(--tmiboard-shadow);
}

.tmiboard-header__context {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0.6rem 0.9rem;
  border-radius: var(--tmiboard-radius-pill);
  background: color-mix(in srgb, var(--tmiboard-accent) 10%, transparent);
  color: var(--tmiboard-accent);
  font-weight: 800;
  white-space: nowrap;
}

.tmiboard-header__bar {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  width: 100%;
}

.tmiboard-header__actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.tmiboard-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 800;
  letter-spacing: -0.03em;
}

.tmiboard-brand__mark {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  color: #fff;
  border-radius: 13px;
  background: linear-gradient(135deg, var(--tmiboard-accent), var(--tmiboard-accent-2));
}

.tmiboard-brand__text {
  white-space: nowrap;
}

.tmiboard-nav {
  display: flex;
  align-items: center;
  gap: 4px;
  color: var(--tmiboard-muted);
  font-size: 0.92rem;
  font-weight: 600;
}

.tmiboard-nav a {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 10px 12px;
  border-radius: var(--tmiboard-radius-pill);
}

.tmiboard-nav a:hover,
.tmiboard-nav a:focus-visible,
.tmiboard-nav a.is-active {
  background: color-mix(in srgb, var(--tmiboard-accent) 11%, transparent);
  color: var(--tmiboard-text);
}

.tmiboard-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0.6rem 0.9rem;
  border: 1px solid var(--tmiboard-border);
  border-radius: var(--tmiboard-radius-pill);
  background: var(--tmiboard-surface);
  color: var(--tmiboard-text);
  font-weight: 700;
  cursor: pointer;
}

.tmiboard .tmiboard-chip {
  min-height: 44px;
}

.tmiboard-chip:hover {
  border-color: var(--tmiboard-border-strong);
  box-shadow: var(--tmiboard-shadow-sm);
}

.tmiboard-post-button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 0.6rem 1.05rem;
  border-radius: var(--tmiboard-radius-pill);
  background: linear-gradient(135deg, var(--tmiboard-accent), var(--tmiboard-accent-2));
  color: #fff;
  font-weight: 800;
  white-space: nowrap;
  transition: transform var(--tmiboard-speed) var(--tmiboard-ease), box-shadow var(--tmiboard-speed) var(--tmiboard-ease);
}

.tmiboard-post-button:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 24px color-mix(in srgb, var(--tmiboard-accent) 30%, transparent);
}

.tmiboard-lang {
  display: inline-flex;
  gap: 2px;
  padding: 3px;
  border: 1px solid var(--tmiboard-border);
  border-radius: var(--tmiboard-radius-pill);
  background: var(--tmiboard-surface);
}

.tmiboard-lang a {
  padding: 6px 10px;
  border-radius: var(--tmiboard-radius-pill);
  color: var(--tmiboard-muted);
  font-size: 0.85rem;
  font-weight: 700;
}

.tmiboard-lang a.is-active {
  background: var(--tmiboard-accent);
  color: var(--tmiboard-on-accent);
}

/* ---------- Поиск в шапке + подсказки ---------- */

.tmiboard-header-search {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.35rem;
  flex: 1 1 260px;
  min-width: 200px;
  max-width: 760px;
  margin-inline: auto;
}

.tmiboard-header-search input {
  min-width: 0;
}

.tmiboard-header-search input {
  border-radius: var(--tmiboard-radius-pill);
  padding-inline: 1rem;
}

.tmiboard-header-search button {
  padding-inline: 1.1rem;
}

.tmiboard-suggest {
  position: absolute;
  top: calc(100% + 0.4rem);
  left: 0;
  right: 0;
  z-index: 60;
  display: none;
  overflow: hidden;
  border: 1px solid var(--tmiboard-border);
  border-radius: var(--tmiboard-radius);
  background: var(--tmiboard-surface);
  box-shadow: var(--tmiboard-shadow);
}

.tmiboard-suggest.is-open {
  display: grid;
}

.tmiboard-suggest a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.78rem 1rem;
}

.tmiboard-suggest a:hover,
.tmiboard-suggest a.is-selected {
  background: color-mix(in srgb, var(--tmiboard-accent) 9%, transparent);
}

.tmiboard-suggest small {
  color: var(--tmiboard-faint);
}

.tmiboard-suggest__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 0.65rem 1rem 0.3rem;
  color: var(--tmiboard-faint);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.tmiboard .tmiboard-suggest__head button {
  min-height: 0;
  padding: 2px 8px;
  background: transparent;
  color: var(--tmiboard-muted);
  font-size: 0.76rem;
  font-weight: 700;
  text-transform: none;
  letter-spacing: 0;
}

.tmiboard .tmiboard-suggest__head button:hover {
  color: var(--tmiboard-danger);
  box-shadow: none;
  transform: none;
}

.tmiboard-suggest a .bi {
  color: var(--tmiboard-faint);
  margin-right: 4px;
}

/* ---------- Notify-виджет в теме доски ---------- */

/* Виджет читает bootstrap-переменные — маппим их на токены доски,
   чтобы панель/модалки/тосты жили в светлой и тёмной теме TMIboard. */
.tmiboard {
  --bs-body-bg: var(--tmiboard-surface);
  --bs-body-color: var(--tmiboard-text);
  --bs-border-color: var(--tmiboard-border);
  --bs-border-color-translucent: var(--tmiboard-border);
  --bs-primary: var(--tmiboard-accent);
  --bs-tertiary-bg: var(--tmiboard-surface-2);
  --bs-secondary-color: var(--tmiboard-muted);
  --bs-border-radius: 14px;
  --app-header-height: 4.6rem;
  --tmi-panel-shadow: var(--tmiboard-shadow);
  --tmi-toast-accent: var(--tmiboard-accent);
}

/* Колокольчик, докованный в шапку, выглядит как остальные icon-кнопки. */
.tmiboard-header__notify {
  display: inline-flex;
}

.tmiboard .tmi-notify-bell-wrap--header .tmi-notify-bell {
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: var(--tmiboard-radius-pill);
  background: color-mix(in srgb, var(--tmiboard-accent) 11%, var(--tmiboard-surface));
  color: var(--tmiboard-text);
  box-shadow: none;
}

.tmiboard .tmi-notify-bell-wrap--header .tmi-notify-bell:hover {
  background: color-mix(in srgb, var(--tmiboard-accent) 18%, var(--tmiboard-surface));
}

.tmiboard .tmi-notify-bell-wrap--header .tmi-notify-bell__badge {
  background: var(--tmiboard-danger);
}

@media (max-width: 860px) {
  /* На телефоне тосты не должны накрывать нижнюю навигацию доски. */
  .tmiboard .tmi-notify-root {
    bottom: calc(70px + env(safe-area-inset-bottom, 0px));
  }
}

/* ---------- Профиль-меню ---------- */

.tmiboard-profile {
  position: relative;
}

.tmiboard-profile__initial {
  font-weight: 900;
  font-size: 0.95rem;
}

.tmiboard-profile.is-open .tmiboard-profile__toggle {
  background: var(--tmiboard-accent);
  color: var(--tmiboard-on-accent);
}

.tmiboard-profile__menu[hidden] {
  display: none;
}

.tmiboard-profile__menu {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  z-index: 80;
  display: grid;
  gap: 2px;
  min-width: 260px;
  padding: 8px;
  border: 1px solid var(--tmiboard-border);
  border-radius: var(--tmiboard-radius);
  background: var(--tmiboard-surface);
  box-shadow: var(--tmiboard-shadow);
  animation: tmiboard-toast-in 0.16s var(--tmiboard-ease);
}

.tmiboard-profile__head {
  padding: 8px 10px 4px;
  color: var(--tmiboard-text-strong);
}

.tmiboard-profile__menu a[role="menuitem"] {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 10px;
  border-radius: var(--tmiboard-radius-sm);
  font-weight: 600;
}

.tmiboard-profile__menu a[role="menuitem"]:hover {
  background: color-mix(in srgb, var(--tmiboard-accent) 10%, transparent);
}

.tmiboard-profile__menu a[role="menuitem"] .bi {
  color: var(--tmiboard-faint);
}

.tmiboard-profile__logout {
  color: var(--tmiboard-danger);
}

.tmiboard-profile__logout .bi {
  color: inherit !important;
}

.tmiboard-profile__divider {
  height: 1px;
  margin: 6px 4px;
  background: var(--tmiboard-border);
}

.tmiboard-profile__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 6px 10px;
  color: var(--tmiboard-muted);
  font-size: 0.88rem;
  font-weight: 600;
}

.tmiboard-profile__segments {
  display: inline-flex;
  gap: 2px;
  padding: 3px;
  border: 1px solid var(--tmiboard-border);
  border-radius: var(--tmiboard-radius-pill);
}

.tmiboard .tmiboard-profile__segments button,
.tmiboard-profile__segments a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  min-height: 30px;
  padding: 3px 9px;
  border-radius: var(--tmiboard-radius-pill);
  background: transparent;
  color: var(--tmiboard-muted);
  font-size: 0.84rem;
  font-weight: 700;
}

.tmiboard .tmiboard-profile__segments button:hover {
  transform: none;
  box-shadow: none;
  color: var(--tmiboard-text);
}

.tmiboard .tmiboard-profile__segments button.is-active,
.tmiboard-profile__segments a.is-active {
  background: var(--tmiboard-accent);
  color: var(--tmiboard-on-accent);
}

/* ---------- Drawer (меню/категории) ---------- */

.tmiboard-drawer {
  position: fixed;
  inset: 0;
  z-index: 100;
}

.tmiboard-drawer__backdrop {
  position: absolute;
  inset: 0;
  background: var(--tmiboard-backdrop);
  opacity: 0;
  transition: opacity var(--tmiboard-speed) var(--tmiboard-ease);
}

.tmiboard-drawer__panel {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: min(390px, 92vw);
  padding: 1rem;
  overflow-y: auto;
  transform: translateX(-100%);
  transition: transform var(--tmiboard-speed) var(--tmiboard-ease);
  border-right: 1px solid var(--tmiboard-border);
  background: var(--tmiboard-surface);
  box-shadow: var(--tmiboard-shadow);
  display: grid;
  gap: 1rem;
  align-content: start;
}

.tmiboard-drawer.is-open .tmiboard-drawer__backdrop { opacity: 1; }
.tmiboard-drawer.is-open .tmiboard-drawer__panel { transform: translateX(0); }

.tmiboard-drawer__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.tmiboard-drawer__head button {
  min-height: 40px;
  min-width: 40px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--tmiboard-text);
  font-size: 1.7rem;
}

.tmiboard-drawer-search,
.tmiboard-drawer-nav,
.tmiboard-drawer-cats {
  display: grid;
  gap: 0.45rem;
}

.tmiboard-drawer-search {
  grid-template-columns: minmax(0, 1fr) auto;
}

.tmiboard-drawer-nav a,
.tmiboard-drawer-cats a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0.72rem 0.85rem;
  border-radius: var(--tmiboard-radius);
  color: var(--tmiboard-text);
  font-weight: 600;
}

.tmiboard-drawer-nav a:hover,
.tmiboard-drawer-cats a:hover {
  background: color-mix(in srgb, var(--tmiboard-accent) 10%, transparent);
}

.tmiboard-drawer-cats span,
.tmiboard-drawer-lang span {
  color: var(--tmiboard-faint);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.tmiboard-drawer-lang div {
  display: flex;
  gap: 6px;
  margin-top: 6px;
}

.tmiboard-drawer-lang a {
  padding: 8px 12px;
  border: 1px solid var(--tmiboard-border);
  border-radius: var(--tmiboard-radius-pill);
  font-weight: 700;
}

.tmiboard-drawer-lang a.is-active {
  background: var(--tmiboard-accent);
  border-color: transparent;
  color: var(--tmiboard-on-accent);
}

/* ---------- Секции ---------- */

.tmiboard-section,
.tmiboard-page-head,
.tmiboard-form,
.tmiboard-table,
.tmiboard-thread,
.tmiboard-seller-hero,
.tmiboard-stats {
  margin-top: 18px;
  padding: clamp(16px, 2.6vw, 24px);
  border: 1px solid var(--tmiboard-border);
  border-radius: var(--tmiboard-radius-lg);
  background: var(--tmiboard-surface-glass);
  box-shadow: var(--tmiboard-shadow);
  backdrop-filter: blur(12px);
}

/* Внутренние заголовки скромнее hero-типографики — экономят первую высоту экрана. */
.tmiboard-page-head h1,
.tmiboard-section > h1 {
  font-size: clamp(1.45rem, 3.2vw, 2.05rem);
}

.tmiboard-section__head,
.tmiboard-page-head--row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}

.tmiboard-section__head > a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--tmiboard-accent);
  font-weight: 700;
}

.tmiboard-section__head > a:hover {
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* ---------- Сетки карточек ---------- */

.tmiboard-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 16px;
  margin-top: 18px;
}

.tmiboard-categories {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 12px;
  margin-top: 18px;
}

.tmiboard-category {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 15px 16px;
  border: 1px solid var(--tmiboard-border);
  border-radius: var(--tmiboard-radius);
  background: var(--tmiboard-surface);
  font-weight: 700;
  transition: transform var(--tmiboard-speed) var(--tmiboard-ease), box-shadow var(--tmiboard-speed) var(--tmiboard-ease), border-color var(--tmiboard-speed) var(--tmiboard-ease);
}

.tmiboard-category:hover {
  transform: translateY(-2px);
  border-color: color-mix(in srgb, var(--tmiboard-accent) 35%, var(--tmiboard-border));
  box-shadow: var(--tmiboard-shadow-sm);
}

.tmiboard-category .bi {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  border-radius: 12px;
  background: color-mix(in srgb, var(--tmiboard-accent) 11%, transparent);
  color: var(--tmiboard-accent);
  font-size: 1.1rem;
}

/* ---------- Карточка объявления ---------- */

.tmiboard-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  overflow: hidden;
  border: 1px solid var(--tmiboard-border);
  border-radius: var(--tmiboard-radius-lg);
  background: var(--tmiboard-surface);
  box-shadow: var(--tmiboard-shadow-sm);
  transition: transform var(--tmiboard-speed) var(--tmiboard-ease), box-shadow var(--tmiboard-speed) var(--tmiboard-ease);
}

.tmiboard-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--tmiboard-shadow-lift);
}

.tmiboard-card__media {
  position: relative;
  display: block;
  aspect-ratio: 16 / 11;
  background: var(--tmiboard-surface-2);
}

.tmiboard-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.tmiboard-card__badges {
  position: absolute;
  inset: 0.7rem auto auto 0.7rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.tmiboard-card__badges span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 0.3rem 0.6rem;
  border-radius: var(--tmiboard-radius-pill);
  background: color-mix(in srgb, var(--tmiboard-text-strong) 78%, transparent);
  color: #fff;
  font-size: 0.76rem;
  font-weight: 800;
  backdrop-filter: blur(6px);
}

.tmiboard-card__badges .tmiboard-badge--featured {
  background: linear-gradient(135deg, #f59e0b, #f97316);
}

.tmiboard-card__fav {
  position: absolute;
  top: 0.6rem;
  right: 0.6rem;
  z-index: 2;
}

.tmiboard .tmiboard-card__fav button {
  min-width: 40px;
  min-height: 40px;
  padding: 0;
  border-radius: var(--tmiboard-radius-pill);
  background: color-mix(in srgb, var(--tmiboard-surface) 85%, transparent);
  color: var(--tmiboard-text);
  backdrop-filter: blur(6px);
  box-shadow: var(--tmiboard-shadow-sm);
}

.tmiboard .tmiboard-card__fav button:hover {
  color: var(--tmiboard-danger);
}

.tmiboard-card__body {
  display: flex;
  flex-direction: column;
  gap: 7px;
  flex: 1;
  padding: 14px 16px 16px;
}

.tmiboard-card__price {
  color: var(--tmiboard-text-strong);
  font-size: 1.18rem;
  font-weight: 850;
  letter-spacing: -0.02em;
}

.tmiboard-card__title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-weight: 700;
  font-size: 0.98rem;
  line-height: 1.3;
}

.tmiboard-card__title:hover {
  color: var(--tmiboard-accent);
}

.tmiboard-card__summary {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin: 0;
  color: var(--tmiboard-muted);
  font-size: 0.86rem;
  line-height: 1.45;
}

.tmiboard-card__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 12px;
  margin-top: auto;
  color: var(--tmiboard-muted);
  font-size: 0.83rem;
}

.tmiboard-card__meta span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.tmiboard-card__meta .bi {
  color: var(--tmiboard-faint);
  font-size: 0.9rem;
  flex: none;
}

/* Локация не разъезжается на несколько строк — одна строка с многоточием,
   полное значение в title. */
.tmiboard-card__meta .tmiboard-card__geo {
  display: block;
  flex: 1 1 60px; /* ужимается первой, дата остаётся в той же строке */
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tmiboard-card__meta .tmiboard-card__geo .bi {
  vertical-align: -0.15em;
  margin-right: 5px;
}

.tmiboard-card__date {
  margin-left: auto;
  color: var(--tmiboard-faint);
}

.tmiboard-card__fresh {
  background: color-mix(in srgb, var(--tmiboard-success) 85%, #000) !important;
}

.tmiboard-card__dots {
  position: absolute;
  left: 50%;
  bottom: 10px;
  display: flex;
  gap: 5px;
  transform: translateX(-50%);
  opacity: 0;
  transition: opacity var(--tmiboard-speed) var(--tmiboard-ease);
}

.tmiboard-card__media:hover .tmiboard-card__dots {
  opacity: 1;
}

.tmiboard-card__dots i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.55);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
}

.tmiboard-card__dots i.is-active {
  background: #fff;
}

.tmiboard-card__fav.is-active button {
  color: var(--tmiboard-danger);
}

/* ---------- Градация платного продвижения ---------- */

/* VIP: заметная, но сдержанная рамка-акцент. */
.tmiboard-card--vip {
  border-color: color-mix(in srgb, var(--tmiboard-accent) 45%, var(--tmiboard-border));
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--tmiboard-accent) 30%, transparent), var(--tmiboard-shadow-sm);
}

/* Премиум: золотая рамка + лёгкое тёплое свечение. */
.tmiboard-card--premium {
  border-color: color-mix(in srgb, #f59e0b 55%, var(--tmiboard-border));
  box-shadow: 0 0 0 1px color-mix(in srgb, #f59e0b 35%, transparent), 0 10px 30px color-mix(in srgb, #f59e0b 12%, transparent);
}

.tmiboard-badge--vip,
.tmiboard-badge--premium {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #fff;
  font-weight: 800;
}

.tmiboard-badge--vip {
  background: linear-gradient(135deg, #4f46e5, #7c3aed) !important;
}

.tmiboard-badge--premium {
  background: linear-gradient(135deg, #b45309, #f59e0b) !important;
}

.tmiboard-badge--promo {
  background: color-mix(in srgb, var(--tmiboard-accent) 12%, var(--tmiboard-surface));
  color: var(--tmiboard-accent);
}

/* ---------- Виджеты ---------- */

.tmiboard-widget__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
}

.tmiboard-widget__chips a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 14px;
  border: 1px solid var(--tmiboard-border);
  border-radius: var(--tmiboard-radius-pill);
  background: var(--tmiboard-surface);
  color: var(--tmiboard-text);
  font-weight: 700;
  font-size: 0.92rem;
}

.tmiboard-widget__chips a:hover {
  border-color: color-mix(in srgb, var(--tmiboard-accent) 40%, var(--tmiboard-border));
  color: var(--tmiboard-accent);
}

.tmiboard-widget__chips a .bi {
  color: var(--tmiboard-faint);
}

.tmiboard-widget__rail {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(190px, 220px);
  gap: 12px;
  margin-top: 14px;
  overflow-x: auto;
  padding-bottom: 6px;
  scroll-snap-type: x proximity;
}

.tmiboard-mini-card {
  display: grid;
  grid-template-rows: auto 1fr;
  overflow: hidden;
  border: 1px solid var(--tmiboard-border);
  border-radius: var(--tmiboard-radius);
  background: var(--tmiboard-surface);
  scroll-snap-align: start;
  transition: transform var(--tmiboard-speed) var(--tmiboard-ease), box-shadow var(--tmiboard-speed) var(--tmiboard-ease);
}

.tmiboard-mini-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--tmiboard-shadow-sm);
}

.tmiboard-mini-card img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  background: var(--tmiboard-surface-2);
}

.tmiboard-mini-card span {
  display: grid;
  gap: 2px;
  padding: 10px 12px;
}

.tmiboard-mini-card b {
  color: var(--tmiboard-text-strong);
}

.tmiboard-mini-card small {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  color: var(--tmiboard-muted);
  font-size: 0.82rem;
  line-height: 1.4;
}

/* ---------- Футер ---------- */

.tmiboard-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding: 30px 0 46px;
  color: var(--tmiboard-muted);
}

.tmiboard-footer__brand p {
  max-width: 360px;
  margin: 10px 0 0;
  font-size: 0.9rem;
}

.tmiboard-footer__nav {
  display: grid;
  gap: 8px;
}

.tmiboard-footer__nav a:hover {
  color: var(--tmiboard-text);
}

.tmiboard-footer__lang {
  display: flex;
  gap: 8px;
}

.tmiboard-footer__lang a.is-active {
  color: var(--tmiboard-accent);
  font-weight: 800;
}

/* ---------- Мобильная нижняя навигация ---------- */

.tmiboard-bottom-nav {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 90;
  display: none;
  grid-template-columns: repeat(5, 1fr);
  padding: 6px 8px calc(6px + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid var(--tmiboard-border);
  background: color-mix(in srgb, var(--tmiboard-surface) 94%, transparent);
  backdrop-filter: blur(16px);
}

.tmiboard-bottom-nav a {
  display: grid;
  gap: 3px;
  justify-items: center;
  padding: 7px 2px;
  border-radius: var(--tmiboard-radius-sm);
  color: var(--tmiboard-muted);
  font-size: 0.72rem;
  font-weight: 700;
}

.tmiboard-bottom-nav a .bi {
  font-size: 1.25rem;
  line-height: 1;
}

.tmiboard-bottom-nav a.is-active,
.tmiboard-bottom-nav a:hover {
  color: var(--tmiboard-accent);
}

.tmiboard-bottom-nav__post .bi {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  margin-top: -14px;
  border-radius: var(--tmiboard-radius-pill);
  background: linear-gradient(135deg, var(--tmiboard-accent), var(--tmiboard-accent-2));
  color: #fff;
  box-shadow: 0 8px 20px color-mix(in srgb, var(--tmiboard-accent) 35%, transparent);
}

/* ---------- Адаптивность шапки ---------- */

/* ---------- Мобильная плотность: две колонки товаров ---------- */

@media (max-width: 640px) {
  .tmiboard-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 14px;
  }

  .tmiboard-card {
    border-radius: var(--tmiboard-radius);
  }

  .tmiboard-card__media {
    aspect-ratio: 1 / 1;
  }

  .tmiboard-card__body {
    gap: 4px;
    padding: 9px 10px 11px;
  }

  .tmiboard-card__price {
    font-size: 1rem;
  }

  .tmiboard-card__title {
    font-size: 0.88rem;
    line-height: 1.35;
  }

  .tmiboard-card__summary {
    display: none; /* на плотной сетке текст-превью — шум */
  }

  .tmiboard-card__meta {
    gap: 4px 8px;
    font-size: 0.78rem;
  }

  .tmiboard-card__meta span:nth-child(2):not(.tmiboard-card__date) {
    display: none; /* категорию на телефоне опускаем — есть в крошках/фильтрах */
  }

  .tmiboard-card__badges span {
    padding: 0.2rem 0.45rem;
    font-size: 0.68rem;
  }

  .tmiboard .tmiboard-card__fav button {
    min-width: 34px;
    min-height: 34px;
  }

  .tmiboard-categories {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .tmiboard-category {
    padding: 11px 12px;
    font-size: 0.9rem;
  }
}

@media (max-width: 860px) {
  .tmiboard-header {
    top: 0;
    width: 100%;
    margin-top: 0;
    border-radius: 0 0 var(--tmiboard-radius-lg) var(--tmiboard-radius-lg);
    border-top: 0;
  }

  .tmiboard-header__bar {
    flex-wrap: wrap;
  }

  .tmiboard-brand__text {
    display: none;
  }

  .tmiboard-header-search {
    order: 5;
    flex-basis: 100%;
    max-width: none;
  }

  .tmiboard-chip--menu span {
    display: none;
  }

  .tmiboard-header__actions .tmiboard-post-button {
    display: none;
  }

  .tmiboard-bottom-nav {
    display: grid;
  }

  .tmiboard-main {
    padding-bottom: 96px;
  }

  .tmiboard-footer {
    padding-bottom: 90px;
  }
}

/* ---------- Снижение цены ---------- */

.tmiboard-price-old {
  color: var(--tmiboard-faint);
  font-size: 0.72em;
  font-weight: 600;
}

.tmiboard-price-drop {
  display: inline-flex;
  align-items: center;
  padding: 2px 7px;
  border-radius: var(--tmiboard-radius-pill);
  background: color-mix(in srgb, var(--tmiboard-success) 14%, transparent);
  color: var(--tmiboard-success);
  font-size: 0.62em;
  font-weight: 800;
  vertical-align: middle;
}
