/* Hub catalog toolbar — compartilhado entre /games, /platforms, /tools, /arcade, início */

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.content:has(.hub-catalog-page) {
  padding-top: 4px !important;
}

.hub-catalog-page {
  padding-bottom: 24px;
}

.hub-catalog-toolbar.wiki-index-toolbar,
.games-index-toolbar.wiki-index-toolbar {
  grid-template-columns: 1fr auto;
}

.hub-catalog-toolbar .wiki-index-toolbar__left,
.games-index-toolbar .wiki-index-toolbar__left {
  flex: 1;
  min-width: 0;
  flex-wrap: nowrap;
  align-items: center;
}

.hub-filter-tabs,
.games-filter-tabs {
  flex-shrink: 0;
}

.hub-catalog-search.wiki-toolbar-search,
.games-catalog-search.wiki-toolbar-search {
  flex: 1 1 auto;
  min-width: 0;
  max-width: min(420px, 100%);
}

.hub-catalog-search__form {
  flex: 1;
  min-width: 0;
  display: flex;
}

.hub-catalog-search__form .wiki-toolbar-search__input,
.hub-catalog-search__field .wiki-toolbar-search__input {
  width: 100%;
}

.hub-filter-tabs {
  max-width: 100%;
  overflow-x: auto;
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}

.hub-filter-tabs .wiki-filter-tab {
  white-space: nowrap;
}

.hub-catalog-empty {
  display: none;
  text-align: center;
  color: var(--text-muted);
  font-size: 14px;
  padding: 24px 16px;
}

.hub-catalog-empty.is-visible {
  display: block;
}

.hub-search-hidden {
  display: none !important;
}

/* Grid de cards estilo wiki */
.wiki-index-grid.hub-catalog-grid,
.games-index-grid.hub-catalog-grid,
.hub-catalog-page .wiki-index-grid {
  display: grid;
  gap: 14px;
  width: 100%;
}

/* Tamanho dos cards — G (grande) / P (pequeno) */
.hub-catalog-grid.wiki-card-size--large,
.games-index-grid.wiki-card-size--large,
.wiki-index-grid.wiki-card-size--large {
  --game-card-cover-w: 120px;
  --game-card-cover-h: 120px;
}

.hub-catalog-grid.wiki-card-size--small,
.games-index-grid.wiki-card-size--small,
.wiki-index-grid.wiki-card-size--small {
  --game-card-cover-w: 72px;
  --game-card-cover-h: 72px;
  gap: 10px;
}

.hub-catalog-grid.wiki-view--rect,
.games-index-grid.wiki-view--rect {
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  align-items: stretch;
}

.hub-catalog-grid.wiki-card-size--small.wiki-view--rect,
.games-index-grid.wiki-card-size--small.wiki-view--rect {
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}

/* Quadrado = grid denso de cards estilo Steam (capa + título), não tile vertical */
.hub-catalog-grid.wiki-view--square,
.games-index-grid.wiki-view--square {
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  align-items: stretch;
}

.hub-catalog-grid.wiki-card-size--small.wiki-view--square,
.games-index-grid.wiki-card-size--small.wiki-view--square {
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
}

.wiki-index-grid.wiki-view--list,
.hub-catalog-grid.wiki-view--list,
.games-index-grid.wiki-view--list {
  grid-template-columns: minmax(0, 1fr) !important;
}

/* Capa contain — imagem inteira no thumb quadrado; blur preenche letterbox */
.hub-catalog-grid .hub-topic-card .wiki-topic-card__cover:not(.wiki-topic-card__cover--placeholder),
.games-index-grid .hub-topic-card .wiki-topic-card__cover:not(.wiki-topic-card__cover--placeholder),
.hub-catalog-page .wiki-index-grid .hub-topic-card .wiki-topic-card__cover:not(.wiki-topic-card__cover--placeholder) {
  --hub-cover-inset: 6px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--hub-cover-inset);
  overflow: hidden;
  box-sizing: border-box;
}

.hub-catalog-grid.wiki-card-size--small .hub-topic-card .wiki-topic-card__cover:not(.wiki-topic-card__cover--placeholder),
.games-index-grid.wiki-card-size--small .hub-topic-card .wiki-topic-card__cover:not(.wiki-topic-card__cover--placeholder),
.hub-catalog-page .wiki-index-grid.wiki-card-size--small .hub-topic-card .wiki-topic-card__cover:not(.wiki-topic-card__cover--placeholder) {
  --hub-cover-inset: 4px;
}

.hub-catalog-grid .hub-topic-card.wiki-topic-card--has-cover .wiki-topic-card__cover::before,
.games-index-grid .hub-topic-card.wiki-topic-card--has-cover .wiki-topic-card__cover::before,
.hub-catalog-page .wiki-index-grid .hub-topic-card.wiki-topic-card--has-cover .wiki-topic-card__cover::before {
  content: "";
  position: absolute;
  inset: -32%;
  background-image: var(--cover-url);
  background-size: cover;
  background-position: center;
  filter: blur(20px) saturate(1.1);
  transform: scale(1.12);
  z-index: 0;
  pointer-events: none;
}

.hub-catalog-grid .hub-topic-card .wiki-topic-card__cover img,
.games-index-grid .hub-topic-card .wiki-topic-card__cover img,
.hub-catalog-page .wiki-index-grid .hub-topic-card .wiki-topic-card__cover img {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  max-height: 100%;
  margin: 0;
  object-fit: contain;
  object-position: center;
}

/* Steam bar — retângulo e quadrado */
.hub-catalog-grid.wiki-view--rect .hub-topic-card:not(.wiki-topic-card--has-badges),
.hub-catalog-grid.wiki-view--square .hub-topic-card:not(.wiki-topic-card--has-badges),
.games-index-grid.wiki-view--rect .hub-topic-card:not(.wiki-topic-card--has-badges),
.games-index-grid.wiki-view--square .hub-topic-card:not(.wiki-topic-card--has-badges),
.hub-catalog-page .wiki-index-grid.wiki-view--rect .hub-topic-card:not(.wiki-topic-card--has-badges),
.hub-catalog-page .wiki-index-grid.wiki-view--square .hub-topic-card:not(.wiki-topic-card--has-badges) {
  grid-template-areas: "cover main";
  grid-template-columns: var(--game-card-cover-w) 1fr;
  grid-template-rows: 1fr;
  height: var(--game-card-cover-h);
  min-height: var(--game-card-cover-h);
  max-height: var(--game-card-cover-h);
  align-items: stretch;
}

.hub-catalog-grid.wiki-view--rect .hub-topic-card .wiki-topic-card__cover,
.hub-catalog-grid.wiki-view--square .hub-topic-card .wiki-topic-card__cover,
.games-index-grid.wiki-view--rect .hub-topic-card .wiki-topic-card__cover,
.games-index-grid.wiki-view--square .hub-topic-card .wiki-topic-card__cover,
.hub-catalog-page .wiki-index-grid.wiki-view--rect .hub-topic-card .wiki-topic-card__cover,
.hub-catalog-page .wiki-index-grid.wiki-view--square .hub-topic-card .wiki-topic-card__cover {
  width: var(--game-card-cover-w);
  height: var(--game-card-cover-h);
  min-height: var(--game-card-cover-h);
  max-height: var(--game-card-cover-h);
  aspect-ratio: auto;
  align-self: stretch;
  box-sizing: border-box;
}

.hub-catalog-grid.wiki-view--rect .hub-topic-card .wiki-topic-card__main,
.hub-catalog-grid.wiki-view--square .hub-topic-card .wiki-topic-card__main,
.games-index-grid.wiki-view--rect .hub-topic-card .wiki-topic-card__main,
.games-index-grid.wiki-view--square .hub-topic-card .wiki-topic-card__main,
.hub-catalog-page .wiki-index-grid.wiki-view--rect .hub-topic-card .wiki-topic-card__main,
.hub-catalog-page .wiki-index-grid.wiki-view--square .hub-topic-card .wiki-topic-card__main {
  justify-content: center;
  padding: 8px 12px;
  min-height: 0;
  overflow: hidden;
  text-align: left;
}

.hub-catalog-grid.wiki-view--rect .hub-topic-card .wiki-topic-card__title,
.hub-catalog-grid.wiki-view--square .hub-topic-card .wiki-topic-card__title,
.games-index-grid.wiki-view--rect .hub-topic-card .wiki-topic-card__title,
.games-index-grid.wiki-view--square .hub-topic-card .wiki-topic-card__title,
.hub-catalog-page .wiki-index-grid.wiki-view--rect .hub-topic-card .wiki-topic-card__title,
.hub-catalog-page .wiki-index-grid.wiki-view--square .hub-topic-card .wiki-topic-card__title {
  font-size: 0.92rem;
  line-height: 1.25;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  word-break: break-word;
  text-align: left;
}

.hub-catalog-grid.wiki-card-size--small.wiki-view--rect .hub-topic-card .wiki-topic-card__title,
.hub-catalog-grid.wiki-card-size--small.wiki-view--square .hub-topic-card .wiki-topic-card__title,
.games-index-grid.wiki-card-size--small.wiki-view--rect .hub-topic-card .wiki-topic-card__title,
.games-index-grid.wiki-card-size--small.wiki-view--square .hub-topic-card .wiki-topic-card__title {
  font-size: 0.84rem;
  -webkit-line-clamp: 2;
}

.hub-catalog-grid.wiki-view--rect .hub-topic-card .wiki-topic-card__summary,
.hub-catalog-grid.wiki-view--square .hub-topic-card .wiki-topic-card__summary,
.games-index-grid.wiki-view--rect .hub-topic-card .wiki-topic-card__summary,
.games-index-grid.wiki-view--square .hub-topic-card .wiki-topic-card__summary {
  display: none;
}

/* Blur de capa — hub: sempre visível (wiki.css desliga em quadrado/lista sem capa real) */
.hub-topic-card .wiki-topic-card__main {
  position: relative;
  overflow: hidden;
}

.wiki-topic-card--blur-fallback .wiki-topic-card__main::before {
  content: "";
  position: absolute;
  inset: -40%;
  background:
    radial-gradient(circle at 18% 28%, color-mix(in srgb, var(--brand-primary) 88%, #fff) 0%, transparent 52%),
    radial-gradient(circle at 82% 72%, color-mix(in srgb, var(--brand-secondary) 82%, #fff) 0%, transparent 48%),
    linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-secondary) 42%, var(--games-accent-dark) 100%);
  filter: blur(32px) saturate(1.2);
  transform: scale(1.18);
  z-index: 0;
  pointer-events: none;
}

.wiki-topic-card--blur-fallback .wiki-topic-card__main::after {
  content: "";
  position: absolute;
  inset: 0;
  background: color-mix(in srgb, var(--bg-surface) 76%, transparent);
  z-index: 0;
  pointer-events: none;
}

.hub-topic-card--tone-arcade.wiki-topic-card--blur-fallback .wiki-topic-card__main::before {
  background:
    radial-gradient(circle at 22% 32%, color-mix(in srgb, var(--brand-primary) 78%, #81c784) 0%, transparent 50%),
    radial-gradient(circle at 78% 68%, color-mix(in srgb, var(--games-accent-dark) 70%, #43a047) 0%, transparent 46%),
    linear-gradient(145deg, #2e7d32 0%, var(--brand-primary) 38%, var(--brand-secondary) 100%);
}

.hub-topic-card--tone-tools.wiki-topic-card--blur-fallback .wiki-topic-card__main::before {
  background:
    radial-gradient(circle at 20% 30%, color-mix(in srgb, var(--brand-primary) 85%, #a5d6a7) 0%, transparent 52%),
    radial-gradient(circle at 80% 70%, color-mix(in srgb, var(--brand-secondary) 80%, #66bb6a) 0%, transparent 48%),
    linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-secondary) 50%, var(--games-accent-dark) 100%);
}

.hub-topic-card.wiki-topic-card--blur-fallback .wiki-topic-card__cover {
  background:
    radial-gradient(circle at 30% 35%, color-mix(in srgb, var(--brand-primary) 22%, var(--bg-surface)) 0%, transparent 62%),
    linear-gradient(160deg, color-mix(in srgb, var(--brand-primary) 14%, var(--bg-app)), color-mix(in srgb, var(--brand-secondary) 10%, var(--bg-surface)));
}

.hub-catalog-grid.wiki-view--rect .hub-topic-card .wiki-topic-card__main::before,
.hub-catalog-grid.wiki-view--rect .hub-topic-card .wiki-topic-card__main::after,
.hub-catalog-grid.wiki-view--square .hub-topic-card .wiki-topic-card__main::before,
.hub-catalog-grid.wiki-view--square .hub-topic-card .wiki-topic-card__main::after,
.hub-catalog-grid.wiki-view--list .hub-topic-card .wiki-topic-card__main::before,
.hub-catalog-grid.wiki-view--list .hub-topic-card .wiki-topic-card__main::after,
.games-index-grid.wiki-view--rect .hub-topic-card .wiki-topic-card__main::before,
.games-index-grid.wiki-view--rect .hub-topic-card .wiki-topic-card__main::after,
.games-index-grid.wiki-view--square .hub-topic-card .wiki-topic-card__main::before,
.games-index-grid.wiki-view--square .hub-topic-card .wiki-topic-card__main::after,
.games-index-grid.wiki-view--list .hub-topic-card .wiki-topic-card__main::before,
.games-index-grid.wiki-view--list .hub-topic-card .wiki-topic-card__main::after,
.hub-catalog-page .wiki-index-grid.wiki-view--rect .hub-topic-card .wiki-topic-card__main::before,
.hub-catalog-page .wiki-index-grid.wiki-view--rect .hub-topic-card .wiki-topic-card__main::after,
.hub-catalog-page .wiki-index-grid.wiki-view--square .hub-topic-card .wiki-topic-card__main::before,
.hub-catalog-page .wiki-index-grid.wiki-view--square .hub-topic-card .wiki-topic-card__main::after,
.hub-catalog-page .wiki-index-grid.wiki-view--list .hub-topic-card .wiki-topic-card__main::before,
.hub-catalog-page .wiki-index-grid.wiki-view--list .hub-topic-card .wiki-topic-card__main::after {
  display: block;
}

.hub-catalog-grid.wiki-view--square .hub-topic-card.wiki-topic-card--has-cover .wiki-topic-card__main::before,
.hub-catalog-grid.wiki-view--square .hub-topic-card.wiki-topic-card--has-cover .wiki-topic-card__main::after,
.hub-catalog-grid.wiki-view--list .hub-topic-card.wiki-topic-card--has-cover .wiki-topic-card__main::before,
.hub-catalog-grid.wiki-view--list .hub-topic-card.wiki-topic-card--has-cover .wiki-topic-card__main::after,
.games-index-grid.wiki-view--square .hub-topic-card.wiki-topic-card--has-cover .wiki-topic-card__main::before,
.games-index-grid.wiki-view--square .hub-topic-card.wiki-topic-card--has-cover .wiki-topic-card__main::after,
.games-index-grid.wiki-view--list .hub-topic-card.wiki-topic-card--has-cover .wiki-topic-card__main::before,
.games-index-grid.wiki-view--list .hub-topic-card.wiki-topic-card--has-cover .wiki-topic-card__main::after,
.hub-catalog-page .wiki-index-grid.wiki-view--square .hub-topic-card.wiki-topic-card--has-cover .wiki-topic-card__main::before,
.hub-catalog-page .wiki-index-grid.wiki-view--square .hub-topic-card.wiki-topic-card--has-cover .wiki-topic-card__main::after,
.hub-catalog-page .wiki-index-grid.wiki-view--list .hub-topic-card.wiki-topic-card--has-cover .wiki-topic-card__main::before,
.hub-catalog-page .wiki-index-grid.wiki-view--list .hub-topic-card.wiki-topic-card--has-cover .wiki-topic-card__main::after {
  display: block;
}

.hub-catalog-grid.wiki-view--square .hub-topic-card .wiki-topic-card__main,
.hub-catalog-grid.wiki-view--list .hub-topic-card .wiki-topic-card__main,
.games-index-grid.wiki-view--square .hub-topic-card .wiki-topic-card__main,
.games-index-grid.wiki-view--list .hub-topic-card .wiki-topic-card__main {
  position: relative;
  overflow: hidden;
}

.hub-catalog-grid.wiki-view--list,
.games-index-grid.wiki-view--list {
  grid-template-columns: minmax(0, 1fr);
  gap: 8px;
}

.hub-catalog-grid.wiki-view--list .hub-topic-card,
.games-index-grid.wiki-view--list .hub-topic-card {
  grid-template-areas: "cover main";
  grid-template-columns: var(--game-card-cover-w) 1fr;
  grid-template-rows: 1fr;
  height: var(--game-card-cover-h);
  min-height: var(--game-card-cover-h);
  max-height: var(--game-card-cover-h);
  max-width: 704px;
  margin: 0 auto;
  width: 100%;
  align-items: stretch;
}

.hub-catalog-grid.wiki-view--list .hub-topic-card .wiki-topic-card__cover,
.games-index-grid.wiki-view--list .hub-topic-card .wiki-topic-card__cover {
  width: var(--game-card-cover-w);
  height: var(--game-card-cover-h);
  min-height: var(--game-card-cover-h);
  max-height: var(--game-card-cover-h);
  aspect-ratio: auto;
  box-sizing: border-box;
}

.hub-catalog-grid.wiki-view--list .hub-topic-card .wiki-topic-card__main,
.games-index-grid.wiki-view--list .hub-topic-card .wiki-topic-card__main {
  padding: 8px 12px;
  justify-content: center;
}

.hub-catalog-grid.wiki-view--list .hub-topic-card .wiki-topic-card__title,
.games-index-grid.wiki-view--list .hub-topic-card .wiki-topic-card__title {
  font-size: 0.92rem;
  line-height: 1.25;
}

.hub-catalog-grid.wiki-card-size--small.wiki-view--list .hub-topic-card .wiki-topic-card__title,
.games-index-grid.wiki-card-size--small.wiki-view--list .hub-topic-card .wiki-topic-card__title {
  font-size: 0.84rem;
}

.hub-catalog-page .wiki-topic-card__cover--placeholder .wiki-topic-card__cover-fallback {
  font-size: 2.5rem;
  opacity: 0.88;
}

.hub-catalog-page .wiki-view--list .wiki-topic-card__cover--placeholder .wiki-topic-card__cover-fallback {
  font-size: 2rem;
}

.hub-catalog-page .wiki-card-size--small .wiki-topic-card__cover--placeholder .wiki-topic-card__cover-fallback {
  font-size: 1.75rem;
}

@media (max-width: 720px) {
  .hub-catalog-grid.wiki-view--rect,
  .games-index-grid.wiki-view--rect,
  .hub-catalog-grid.wiki-view--square,
  .games-index-grid.wiki-view--square {
    grid-template-columns: minmax(0, 1fr);
  }
}