/* Ultimate Poke Idle — Wiki Portal v2
   Camada visual não destrutiva: preserva todos os contratos do wiki.html. */

:root {
  --bg: #eef9ff;
  --bg2: #f9fdff;
  --card: #ffffff;
  --card2: #eef8fb;
  --line: rgba(38, 111, 139, .13);
  --txt: #18394f;
  --dim: #6f8b9d;
  --danger: #e4696d;
  --gold: #e9b74f;
  --grn: #43c78e;
  --blu: #3fa6d4;
  --acc: #2e98c6;
  --wiki-blue-deep: #176b7c;
  --wiki-mint-soft: #e5f9f0;
  --wiki-sky-soft: #e8f7ff;
  --wiki-lilac-soft: #f1efff;
  --wiki-coral-soft: #fff0ed;
  --shadow: 0 18px 45px rgba(41, 108, 136, .10);
}

html[data-theme="dark"] {
  --bg: #102f3e;
  --bg2: #123746;
  --card: #173f4e;
  --card2: #1d4b59;
  --line: rgba(153, 224, 228, .14);
  --txt: #edfaff;
  --dim: #a1c2cc;
  --wiki-blue-deep: #8bd8e7;
  --wiki-mint-soft: rgba(67, 199, 142, .13);
  --wiki-sky-soft: rgba(63, 166, 212, .14);
  --wiki-lilac-soft: rgba(139, 124, 217, .14);
  --wiki-coral-soft: rgba(255, 128, 109, .11);
  --shadow: 0 20px 46px rgba(0, 18, 27, .28);
}

html { scroll-behavior: smooth; }

body {
  background:
    radial-gradient(circle at 18% 7%, rgba(63, 166, 212, .14), transparent 26rem),
    radial-gradient(circle at 84% 84%, rgba(67, 199, 142, .12), transparent 30rem),
    linear-gradient(145deg, var(--bg2), var(--bg));
  color: var(--txt);
  font-family: "Segoe UI Variable", "Segoe UI", Inter, system-ui, -apple-system, sans-serif;
  font-size: 14px;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .42;
  background-image:
    linear-gradient(rgba(63, 166, 212, .025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(63, 166, 212, .025) 1px, transparent 1px);
  background-size: 34px 34px;
  mask-image: linear-gradient(to bottom, #000, transparent 78%);
}

header,
.wrap,
.bottomnav,
.ov,
.pop { position: relative; z-index: 2; }

/* Pokémon ambientais — sprites reais do jogo, sempre atrás do conteúdo. */
.wiki-walkers {
  position: fixed;
  inset: 0;
  z-index: 1;
  overflow: hidden;
  pointer-events: none;
  contain: paint;
}

.wiki-walker {
  position: absolute;
  left: 0;
  width: 64px;
  height: 64px;
  opacity: .10;
  background-repeat: no-repeat;
  background-size: 256px 256px;
  image-rendering: pixelated;
  filter: saturate(.8) drop-shadow(0 6px 8px rgba(23, 107, 124, .13));
  will-change: transform, background-position;
}

.wiki-walker-pikachu {
  top: 23%;
  background-image: url('/assets/followers/pikachu.png');
  background-position: 0 -128px;
  animation: wiki-mon-right .72s steps(4) infinite, wiki-cross-right 34s linear -9s infinite;
}

.wiki-walker-eevee {
  top: 59%;
  background-image: url('/assets/followers/eevee.png');
  background-position: 0 -64px;
  animation: wiki-mon-left .72s steps(4) infinite, wiki-cross-left 42s linear -21s infinite;
}

.wiki-walker-bulbasaur {
  top: 84%;
  background-image: url('/assets/followers/bulbasaur.png');
  background-position: 0 -128px;
  animation: wiki-mon-right .76s steps(4) infinite, wiki-cross-right 48s linear -31s infinite;
}

@keyframes wiki-mon-right { to { background-position: -256px -128px; } }
@keyframes wiki-mon-left { to { background-position: -256px -64px; } }
@keyframes wiki-cross-right {
  from { transform: translate3d(-90px, 0, 0); }
  28% { transform: translate3d(28vw, -7px, 0); }
  58% { transform: translate3d(58vw, 5px, 0); }
  to { transform: translate3d(calc(100vw + 90px), -3px, 0); }
}
@keyframes wiki-cross-left {
  from { transform: translate3d(calc(100vw + 90px), 0, 0) scaleX(-1); }
  42% { transform: translate3d(58vw, 6px, 0) scaleX(-1); }
  72% { transform: translate3d(28vw, -5px, 0) scaleX(-1); }
  to { transform: translate3d(-90px, 0, 0) scaleX(-1); }
}

/* Cabeçalho */
header {
  position: sticky;
  top: 0;
  z-index: 40;
  min-height: 76px;
  gap: 14px;
  padding: 13px 24px;
  background: color-mix(in srgb, var(--card) 88%, transparent);
  border: 0;
  border-bottom: 1px solid var(--line);
  box-shadow: 0 12px 35px rgba(43, 112, 139, .06);
  backdrop-filter: blur(18px);
}

header .logo {
  gap: 10px;
  color: var(--txt);
  font-size: 15px;
  font-weight: 780;
  letter-spacing: -.01em;
}

header .logo b { color: var(--grn); }
header .brand-mark { width: 38px; height: 38px; }

.gsearch { max-width: 650px; }
.gsearch svg { display: none; }
.gsearch::before {
  content: "";
  position: absolute;
  z-index: 2;
  left: 10px;
  top: 50%;
  width: 28px;
  height: 28px;
  transform: translateY(-50%);
  background: url('/assets/brand/ultimate-poke-idle/portal-icons/search.png') center / contain no-repeat;
  image-rendering: pixelated;
}

.gsearch input,
.toolbar input {
  min-height: 48px;
  color: var(--txt);
  background: color-mix(in srgb, var(--card) 94%, transparent);
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(44, 112, 138, .06);
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.gsearch input { padding: 10px 16px 10px 46px; }
.toolbar input { padding: 10px 15px; }
.gsearch input:focus,
.toolbar input:focus {
  border-color: rgba(63, 166, 212, .48);
  box-shadow: 0 0 0 4px rgba(63, 166, 212, .10), 0 12px 28px rgba(44, 112, 138, .08);
}

.themebtn {
  width: 46px;
  height: 46px;
  color: var(--txt);
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 15px;
  box-shadow: 0 8px 20px rgba(48, 121, 145, .07);
}

.sres {
  top: calc(100% + 9px);
  padding: 7px;
  background: color-mix(in srgb, var(--card) 96%, transparent);
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: 0 24px 55px rgba(36, 96, 121, .18);
  backdrop-filter: blur(18px);
}
.sitem { border-radius: 12px; }
.sitem:hover { background: var(--wiki-sky-soft); }

/* Navegação lateral */
.sidebar {
  width: 252px;
  padding: 20px 16px calc(22px + env(safe-area-inset-bottom));
  background: linear-gradient(180deg, color-mix(in srgb, var(--card) 97%, var(--wiki-sky-soft)), color-mix(in srgb, var(--card) 91%, var(--wiki-mint-soft)));
  border: 0;
  border-right: 1px solid var(--line);
  box-shadow: 18px 0 50px rgba(50, 117, 142, .08);
}

.sidebar-brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  margin: 0 4px 26px;
  padding: 5px 6px 18px;
  border-bottom: 1px solid var(--line);
}
.sidebar-brand img { width: 188px; height: 70px; object-fit: contain; }
.sidebar-brand span {
  color: var(--dim);
  font-size: 10px;
  font-weight: 780;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.navgrp { margin-bottom: 19px; }
.navgrp h4 {
  margin: 0 0 8px 12px;
  color: color-mix(in srgb, var(--dim) 86%, transparent);
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: .16em;
}

.navi {
  position: relative;
  min-height: 50px;
  gap: 12px;
  margin: 3px 0;
  padding: 7px 11px;
  color: color-mix(in srgb, var(--txt) 72%, var(--dim));
  border: 1px solid transparent;
  border-radius: 16px;
  font-size: 13.5px;
  font-weight: 680;
  transition: transform .16s ease, background .16s ease, color .16s ease, box-shadow .16s ease;
}
.navi:hover {
  color: var(--wiki-blue-deep);
  background: color-mix(in srgb, var(--card) 84%, var(--wiki-sky-soft));
  border-color: var(--line);
  box-shadow: 0 9px 24px rgba(47, 124, 149, .08);
  transform: translateX(3px);
}
.navi.on {
  color: var(--wiki-blue-deep);
  background: linear-gradient(135deg, var(--wiki-sky-soft), var(--wiki-mint-soft));
  border-color: rgba(63, 171, 173, .18);
  box-shadow: 0 12px 25px rgba(48, 143, 162, .11);
}
.navi.on::after {
  content: "";
  position: absolute;
  left: -17px;
  top: 13px;
  width: 5px;
  height: 24px;
  border-radius: 0 6px 6px 0;
  background: linear-gradient(var(--blu), var(--grn));
}

.navi .ic,
.bni .ic {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  font-size: 0;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  image-rendering: pixelated;
  filter: drop-shadow(0 3px 4px rgba(28, 93, 111, .12));
}
.navi[data-v="home"] .ic,
.bni[data-v="home"] .ic { background-image: url('/assets/brand/ultimate-poke-idle/portal-icons/home.png'); }
.navi[data-v="pokedex"] .ic,
.bni[data-v="pokedex"] .ic { background-image: url('/assets/brand/ultimate-poke-idle/portal-icons/pokedex.png'); }
.navi[data-v="routes"] .ic,
.bni[data-v="routes"] .ic { background-image: url('/assets/brand/ultimate-poke-idle/portal-icons/route-pin.png'); }
.navi[data-v="bosses"] .ic,
.bni[data-v="bosses"] .ic { background-image: url('/assets/brand/ultimate-poke-idle/portal-icons/trophy.png'); }
.navi[data-v="abilities"] .ic { background-image: url('/assets/brand/ultimate-poke-idle/portal-icons/ability.png'); }
.navi[data-v="tms"] .ic { background-image: url('/assets/brand/ultimate-poke-idle/portal-icons/tm-disc.png'); }
.navi[data-v="natures"] .ic { background-image: url('/assets/brand/ultimate-poke-idle/portal-icons/nature.png'); }
#morebtn .ic { background-image: url('/assets/brand/ultimate-poke-idle/portal-icons/menu.png'); }

.srv {
  position: relative;
  overflow: hidden;
  margin-top: 9px;
  padding: 16px 16px 15px 70px;
  background: linear-gradient(135deg, var(--wiki-sky-soft), var(--wiki-mint-soft));
  border: 1px solid rgba(63, 166, 180, .15);
  border-radius: 20px;
  box-shadow: 0 12px 28px rgba(43, 120, 140, .08);
}
.srv::before {
  content: "";
  position: absolute;
  left: 12px;
  top: 50%;
  width: 48px;
  height: 48px;
  transform: translateY(-50%);
  background: url('/assets/brand/ultimate-poke-idle/portal-icons/community.png') center / contain no-repeat;
  image-rendering: pixelated;
}
.srv .st { font-size: 12px; }
.srv .dot {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  background: url('/assets/brand/ultimate-poke-idle/portal-icons/offline.png') center / contain no-repeat;
  border-radius: 0;
  box-shadow: none;
  image-rendering: pixelated;
}
.srv .dot.live {
  background-image: url('/assets/brand/ultimate-poke-idle/portal-icons/online.png');
  box-shadow: none;
  animation: wiki-online-pulse 1.9s ease-in-out infinite;
}
@keyframes wiki-online-pulse { 50% { transform: scale(1.08); filter: drop-shadow(0 0 6px rgba(67, 199, 142, .38)); } }
.srv .pc { margin-top: 3px; font-size: 20px; }
.srv .pl { font-size: 10px; }

/* Conteúdo */
.wrap { min-height: calc(100vh - 76px); }
main {
  width: 100%;
  max-width: 1440px;
  padding: 30px 34px calc(90px + env(safe-area-inset-bottom));
}
#view { animation: wiki-view-in .28s ease both; }
@keyframes wiki-view-in { from { opacity: 0; transform: translateY(7px); } }

.foot {
  margin-top: 42px;
  padding: 18px 0 0;
  border-top: 1px solid var(--line);
  font-size: 11px;
  letter-spacing: .04em;
}

/* Home */
.wiki-home-intro {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(270px, .65fr);
  gap: 16px;
  margin-bottom: 16px;
}

.hero {
  min-height: 266px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin: 0;
  padding: 34px 220px 34px 36px;
  background:
    radial-gradient(circle at 82% 24%, rgba(255,255,255,.72), transparent 18%),
    linear-gradient(135deg, color-mix(in srgb, var(--wiki-sky-soft) 88%, var(--card)), color-mix(in srgb, var(--wiki-mint-soft) 78%, var(--card)));
  border: 1px solid rgba(56, 153, 180, .14);
  border-radius: 28px;
  box-shadow: var(--shadow);
}
.hero::before {
  content: "";
  position: absolute;
  right: 30px;
  bottom: 15px;
  width: 185px;
  height: 185px;
  background: url('/assets/brand/ultimate-poke-idle/portal-icons/world-map.png') center / contain no-repeat;
  image-rendering: pixelated;
  filter: drop-shadow(0 15px 20px rgba(30, 106, 131, .15));
}
.hero::after {
  content: "";
  position: absolute;
  right: 24px;
  top: 20px;
  width: 90px;
  height: 90px;
  border: 1px solid rgba(63, 166, 212, .13);
  border-radius: 50%;
}
.hero-kicker {
  position: relative;
  z-index: 1;
  margin-bottom: 12px;
  color: var(--acc);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .18em;
}
.hero h1 {
  position: relative;
  z-index: 1;
  max-width: 570px;
  margin: 0 0 10px;
  color: var(--txt);
  font-size: clamp(28px, 3vw, 46px);
  font-weight: 760;
  letter-spacing: -.045em;
  line-height: 1.02;
}
.hero h1 b { color: var(--wiki-blue-deep); }
.hero p {
  position: relative;
  z-index: 1;
  max-width: 580px;
  color: var(--dim);
  font-size: 14px;
  line-height: 1.58;
}
.hero-actions { position: relative; z-index: 1; display: flex; gap: 9px; margin-top: 21px; }
.hero-actions button {
  min-height: 42px;
  padding: 0 18px;
  color: #fff;
  background: linear-gradient(135deg, var(--blu), var(--grn));
  border: 0;
  border-radius: 13px;
  box-shadow: 0 10px 22px rgba(50, 159, 172, .20);
  cursor: pointer;
  font: inherit;
  font-size: 12px;
  font-weight: 760;
}
.hero-actions button.ghost {
  color: var(--wiki-blue-deep);
  background: color-mix(in srgb, var(--card) 77%, transparent);
  border: 1px solid rgba(63, 166, 180, .17);
  box-shadow: none;
}

.feat {
  position: relative;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  margin: 0;
  padding: 24px;
  text-align: center;
  background: linear-gradient(155deg, var(--card), color-mix(in srgb, var(--wiki-lilac-soft) 58%, var(--card)));
  border: 1px solid rgba(116, 103, 192, .13);
  border-radius: 28px;
  box-shadow: var(--shadow);
}
.feat img {
  width: 132px;
  height: 116px;
  image-rendering: pixelated;
  filter: drop-shadow(0 12px 13px rgba(51, 86, 111, .15));
}
.feat .fdx { margin-top: 3px; color: #8778ca; font-size: 9px; letter-spacing: .09em; }
.feat .fn { font-size: 23px; letter-spacing: -.02em; }
.feat .themebtn {
  position: absolute;
  top: 13px;
  right: 13px;
  width: 36px;
  height: 36px;
  border-radius: 12px;
  box-shadow: none;
  font-size: 0;
}
.feat .themebtn::before { content: "↻"; font-size: 20px; font-weight: 750; }

.stats {
  grid-template-columns: repeat(6, minmax(120px, 1fr));
  gap: 10px;
  margin-bottom: 24px;
}
.stat {
  min-height: 92px;
  gap: 11px;
  padding: 15px;
  background: color-mix(in srgb, var(--card) 96%, transparent);
  border: 1px solid var(--line);
  border-radius: 20px;
  box-shadow: 0 10px 26px rgba(45, 111, 137, .06);
}
.stat:hover { transform: translateY(-4px); border-color: rgba(63, 166, 212, .27); box-shadow: 0 15px 32px rgba(45, 111, 137, .11); }
.stat .em {
  width: 46px;
  height: 46px;
  flex: 0 0 46px;
  font-size: 0;
  background: center / contain no-repeat;
  image-rendering: pixelated;
}
.stat:nth-child(1) .em { background-image: url('/assets/brand/ultimate-poke-idle/portal-icons/route-pin.png'); }
.stat:nth-child(2) .em { background-image: url('/assets/brand/ultimate-poke-idle/portal-icons/pokedex.png'); }
.stat:nth-child(3) .em { background-image: url('/assets/brand/ultimate-poke-idle/portal-icons/trainer.png'); }
.stat:nth-child(4) .em { background-image: url('/assets/brand/ultimate-poke-idle/portal-icons/trophy.png'); }
.stat:nth-child(5) .em { background-image: url('/assets/brand/ultimate-poke-idle/portal-icons/world-map.png'); }
.stat:nth-child(6) .em { background-image: url('/assets/brand/ultimate-poke-idle/portal-icons/ability.png'); }
.stat .v { color: var(--txt); font-size: 23px; font-weight: 760; }
.stat .l { margin-top: 3px; font-size: 10px; font-weight: 650; }

.sect-h,
.bsec {
  position: relative;
  margin: 0 0 13px;
  padding-left: 15px;
  color: var(--txt);
  font-size: 16px;
  font-weight: 760;
  letter-spacing: -.01em;
}
.sect-h::before,
.bsec::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 5px;
  height: 21px;
  border-radius: 5px;
  background: linear-gradient(var(--blu), var(--grn));
  transform: translateY(-50%);
}

.sect-explore { margin-top: 0; }
.short {
  grid-template-columns: repeat(5, minmax(130px, 1fr));
  gap: 11px;
  margin-bottom: 24px;
}
.schip {
  position: relative;
  overflow: hidden;
  min-height: 128px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-end;
  padding: 17px;
  color: var(--txt);
  text-align: left;
  background: linear-gradient(145deg, var(--card), color-mix(in srgb, var(--wiki-sky-soft) 44%, var(--card)));
  border: 1px solid var(--line);
  border-radius: 22px;
  box-shadow: 0 10px 26px rgba(45, 111, 137, .06);
}
.schip::after {
  content: "→";
  position: absolute;
  right: 14px;
  bottom: 13px;
  width: 23px;
  height: 23px;
  color: transparent;
  font-size: 0;
  background: url('/assets/brand/ultimate-poke-idle/portal-icons/forward.png') center / contain no-repeat;
  image-rendering: pixelated;
}
.schip:hover { transform: translateY(-4px); background: linear-gradient(145deg, var(--card), var(--wiki-mint-soft)); }
.schip .em {
  position: absolute;
  top: 11px;
  left: 13px;
  width: 62px;
  height: 62px;
  margin: 0;
  font-size: 0;
  background: center / contain no-repeat;
  image-rendering: pixelated;
}
.schip:nth-child(1) .em { background-image: url('/assets/brand/ultimate-poke-idle/portal-icons/pokedex.png'); }
.schip:nth-child(2) .em { background-image: url('/assets/brand/ultimate-poke-idle/portal-icons/route-pin.png'); }
.schip:nth-child(3) .em { background-image: url('/assets/brand/ultimate-poke-idle/portal-icons/ability.png'); }
.schip:nth-child(4) .em { background-image: url('/assets/brand/ultimate-poke-idle/portal-icons/tm-disc.png'); }
.schip:nth-child(5) .em { background-image: url('/assets/brand/ultimate-poke-idle/portal-icons/nature.png'); }

.wiki-home-columns {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(340px, .75fr);
  gap: 16px;
  margin-top: 16px;
}
.wiki-home-columns-lower { grid-template-columns: minmax(0, 1fr) minmax(380px, .9fr); }
.wiki-home-panel {
  min-width: 0;
  padding: 21px;
  background: color-mix(in srgb, var(--card) 96%, transparent);
  border: 1px solid var(--line);
  border-radius: 25px;
  box-shadow: 0 13px 32px rgba(45, 111, 137, .06);
}
.wiki-home-panel .sect-h { margin-top: 0; }
.hscroll { gap: 10px; padding: 3px 2px 9px; }
.icard,
.g45card,
.leadc {
  background: color-mix(in srgb, var(--card2) 60%, var(--card));
  border: 1px solid var(--line);
  border-radius: 17px;
  box-shadow: none;
}
.icard { width: 142px; padding: 12px 9px; }
.icard img { width: 80px; height: 72px; image-rendering: pixelated; }
.icard.leg { background: linear-gradient(155deg, var(--card), var(--wiki-lilac-soft)); }
.leadgrid { grid-template-columns: repeat(2, minmax(110px, 1fr)); gap: 10px; }
.leadc { min-height: 112px; padding: 11px 8px; }
.leadc img { height: 62px; }
.g45card { width: 105px; min-height: 98px; padding: 10px 5px; }
.g45card img { width: 70px; height: 62px; image-rendering: pixelated; }
.trainc { margin: 0 0 9px; padding: 12px 13px; background: var(--card2); border: 0; border-radius: 15px; }
.trainc .tl { color: var(--wiki-blue-deep); font-size: 12px; }
.mapchip { background: var(--card); border-radius: 9px; }

/* Cabeçalhos das áreas */
.wiki-pagehead {
  position: relative;
  min-height: 172px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin-bottom: 18px;
  padding: 28px 190px 28px 30px;
  background: linear-gradient(135deg, color-mix(in srgb, var(--wiki-sky-soft) 83%, var(--card)), color-mix(in srgb, var(--wiki-mint-soft) 68%, var(--card)));
  border: 1px solid rgba(62, 158, 181, .13);
  border-radius: 26px;
  box-shadow: var(--shadow);
}
.wiki-pagehead::after {
  content: "";
  position: absolute;
  right: 30px;
  top: 50%;
  width: 130px;
  height: 130px;
  transform: translateY(-50%);
  background: center / contain no-repeat;
  image-rendering: pixelated;
  filter: drop-shadow(0 12px 16px rgba(33, 100, 124, .13));
}
.wiki-pagehead > span { color: var(--acc); font-size: 9.5px; font-weight: 850; letter-spacing: .18em; }
.wiki-pagehead h1 { margin: 5px 0 5px; color: var(--txt); font-size: 31px; font-weight: 760; letter-spacing: -.035em; }
.wiki-pagehead p { max-width: 610px; margin: 0; color: var(--dim); line-height: 1.5; }
.page-pokedex::after { background-image: url('/assets/brand/ultimate-poke-idle/portal-icons/pokedex.png'); }
.page-routes::after { background-image: url('/assets/brand/ultimate-poke-idle/portal-icons/route-pin.png'); }
.page-bosses::after { background-image: url('/assets/brand/ultimate-poke-idle/portal-icons/trophy.png'); }
.page-abilities::after { background-image: url('/assets/brand/ultimate-poke-idle/portal-icons/ability.png'); }
.page-tms::after { background-image: url('/assets/brand/ultimate-poke-idle/portal-icons/tm-disc.png'); }
.page-natures::after { background-image: url('/assets/brand/ultimate-poke-idle/portal-icons/nature.png'); }

.toolbar { gap: 10px; margin-bottom: 14px; }
.time-legend {
  align-self: center;
  padding: 8px 12px;
  color: var(--dim);
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 12px;
  font-size: 10.5px;
  white-space: nowrap;
}
.fav-t { min-height: 48px; display: flex; align-items: center; padding: 0 15px; background: var(--card); border-radius: 15px; }
.tfilter { gap: 7px; padding: 13px; background: color-mix(in srgb, var(--card) 90%, transparent); border: 1px solid var(--line); border-radius: 18px; }
.tf { padding: 6px 10px; border-radius: 10px; opacity: .68; }
.tf.on { opacity: 1; transform: translateY(-1px); box-shadow: 0 5px 12px rgba(33, 79, 99, .13); }

/* Pokédex em cards colecionáveis */
#pgrid,
#favlist { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 10px; }
.prow {
  position: relative;
  min-height: 84px;
  gap: 10px;
  padding: 10px 42px 10px 12px;
  background: linear-gradient(145deg, var(--card), color-mix(in srgb, var(--wiki-sky-soft) 32%, var(--card)));
  border: 1px solid var(--line);
  border-radius: 20px;
  box-shadow: 0 9px 24px rgba(45, 111, 137, .05);
}
.prow:hover { transform: translateY(-3px); background: linear-gradient(145deg, var(--card), var(--wiki-mint-soft)); box-shadow: 0 14px 30px rgba(45, 111, 137, .10); }
.prow img { width: 66px; height: 60px; image-rendering: pixelated; }
.prow .dx { position: absolute; left: 82px; top: 13px; width: auto; font-size: 9px; letter-spacing: .05em; }
.prow .nm { align-self: flex-end; padding-bottom: 14px; font-size: 15px; }
.prow .rtypes { position: absolute; left: 82px; bottom: 12px; }
.prow .fav { position: absolute; right: 13px; top: 50%; transform: translateY(-50%); font-size: 20px; }

/* Rotas */
#rout { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
.cardsurf {
  margin: 0;
  background: color-mix(in srgb, var(--card) 97%, transparent);
  border: 1px solid var(--line);
  border-radius: 24px;
  box-shadow: 0 13px 34px rgba(45, 111, 137, .07);
}
.cardsurf > h2 {
  position: relative;
  min-height: 66px;
  padding: 14px 17px 14px 66px;
  background: linear-gradient(90deg, var(--wiki-sky-soft), color-mix(in srgb, var(--wiki-mint-soft) 65%, transparent));
  border-bottom: 1px solid var(--line);
  font-size: 17px;
}
.cardsurf > h2::before {
  content: "";
  position: absolute;
  margin-left: -51px;
  width: 42px;
  height: 42px;
  background: url('/assets/brand/ultimate-poke-idle/portal-icons/route-pin.png') center / contain no-repeat;
  image-rendering: pixelated;
}
.cardsurf > h2 .id { padding: 4px 8px; background: color-mix(in srgb, var(--card) 76%, transparent); border-radius: 8px; }
.method { padding: 15px 17px; }
.mlabel { margin-bottom: 11px; color: var(--wiki-blue-deep); font-size: 10px; }
.egrid { grid-template-columns: repeat(auto-fill, minmax(106px, 1fr)); gap: 8px; }
.emon {
  min-height: 108px;
  padding: 10px 6px 8px;
  background: color-mix(in srgb, var(--card2) 62%, var(--card));
  border-radius: 16px;
}
.emon img { width: 62px; height: 56px; image-rendering: pixelated; }
.trc { background: color-mix(in srgb, var(--card2) 60%, var(--card)); border-radius: 16px; }
.trc.gym { background: linear-gradient(145deg, var(--card), color-mix(in srgb, #fff4d8 38%, var(--card))); }

/* Líderes e ilhas */
.wiki-boss-group { margin-top: 25px; }
.wiki-boss-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.wiki-island-grid { grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); }
.bcard {
  height: 100%;
  margin: 0;
  background: color-mix(in srgb, var(--card) 97%, transparent);
  border: 1px solid var(--line);
  border-radius: 24px;
  box-shadow: 0 13px 34px rgba(45, 111, 137, .07);
}
.bcard.gym { border-color: rgba(224, 178, 74, .25); }
.bcard.leg { border-color: rgba(122, 96, 205, .25); }
.bhead {
  min-height: 104px;
  padding: 16px 18px;
  background: linear-gradient(100deg, color-mix(in srgb, #fff2ce 52%, var(--card)), transparent);
}
.bcard.leg .bhead { background: linear-gradient(100deg, var(--wiki-lilac-soft), transparent); }
.bhead img.portrait { height: 82px; filter: drop-shadow(0 8px 8px rgba(39, 76, 95, .18)); }
.bhead h3 { font-size: 19px; }
.bhead .badge { padding: 7px 9px; background: color-mix(in srgb, var(--card) 76%, transparent); border: 1px solid var(--line); border-radius: 12px; }
.bteam { gap: 8px; padding: 14px 16px 17px; }
.bmon {
  flex: 1 1 105px;
  width: auto;
  max-width: 135px;
  min-height: 126px;
  padding: 9px 6px;
  background: color-mix(in srgb, var(--card2) 65%, var(--card));
  border-radius: 17px;
}
.bmon img { width: 64px; height: 58px; image-rendering: pixelated; }
.bmon.ace { background: linear-gradient(155deg, var(--card), color-mix(in srgb, #fff2ce 50%, var(--card))); }

/* Habilidades e TMs */
#alist { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; align-items: start; }
.acard {
  margin: 0;
  background: color-mix(in srgb, var(--card) 97%, transparent);
  border: 1px solid var(--line);
  border-radius: 19px;
  box-shadow: 0 9px 24px rgba(45, 111, 137, .05);
}
.ahead { position: relative; min-height: 68px; padding: 13px 15px 13px 62px; }
.ahead::before {
  content: "";
  position: absolute;
  left: 14px;
  width: 38px;
  height: 38px;
  background: url('/assets/brand/ultimate-poke-idle/portal-icons/ability.png') center / contain no-repeat;
  image-rendering: pixelated;
}
.ahead .an { min-width: 115px; color: var(--txt); }
.acard.open { border-color: rgba(100, 113, 197, .25); box-shadow: 0 14px 34px rgba(74, 87, 157, .09); }
.abody { padding: 0 15px 15px; }
.mini { background: var(--card2); border-radius: 11px; }
.mini img { image-rendering: pixelated; }

#tlist { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.tmrow {
  position: relative;
  min-height: 70px;
  margin: 0;
  padding: 11px 14px 11px 65px;
  background: linear-gradient(145deg, var(--card), color-mix(in srgb, var(--wiki-lilac-soft) 30%, var(--card)));
  border: 1px solid var(--line);
  border-radius: 19px;
  box-shadow: 0 9px 24px rgba(45, 111, 137, .05);
}
.tmrow::before {
  content: "";
  position: absolute;
  left: 13px;
  width: 42px;
  height: 42px;
  background: url('/assets/brand/ultimate-poke-idle/portal-icons/tm-disc.png') center / contain no-repeat;
  image-rendering: pixelated;
}
.tmrow:hover { transform: translateY(-2px); box-shadow: 0 13px 30px rgba(45, 111, 137, .09); }
.tmrow .tid { width: auto; color: #7a6bc1; }

/* Tabelas */
.wiki-table-wrap,
.dsec:has(.mvtable) {
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: color-mix(in srgb, var(--card) 97%, transparent);
  box-shadow: 0 13px 34px rgba(45, 111, 137, .06);
}
.wiki-table-wrap table.grid { min-width: 560px; }
table.grid { background: transparent; }
table.grid th {
  padding: 14px 17px;
  color: var(--wiki-blue-deep);
  background: linear-gradient(90deg, var(--wiki-sky-soft), var(--wiki-mint-soft));
  border-bottom: 1px solid var(--line);
}
table.grid td { padding: 13px 17px; border-bottom: 1px solid var(--line); }
table.grid tr:last-child td { border-bottom: 0; }
table.grid tr:hover td { background: color-mix(in srgb, var(--wiki-sky-soft) 52%, transparent); }

/* Ficha, popup e detalhes */
.ov {
  position: fixed;
  inset: 0;
  z-index: 70;
  background: rgba(12, 42, 55, .52);
  backdrop-filter: blur(10px);
  padding-top: 28px;
}
.dcard {
  max-width: 820px;
  padding: 22px 22px 26px;
  background: color-mix(in srgb, var(--card) 97%, transparent);
  border: 1px solid rgba(63, 166, 180, .19);
  border-radius: 28px;
  box-shadow: 0 30px 80px rgba(8, 40, 55, .28);
}
.dhead {
  min-height: 140px;
  padding: 18px 75px 18px 22px;
  background: linear-gradient(135deg, var(--wiki-sky-soft), var(--wiki-mint-soft));
  border: 1px solid var(--line);
  border-radius: 22px;
}
.dhead img { width: 120px; height: 108px; image-rendering: pixelated; filter: drop-shadow(0 12px 12px rgba(36, 92, 112, .16)); }
.dhead h2 { font-size: 28px; letter-spacing: -.03em; }
.dclose,
.popx {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  color: var(--txt);
  background: color-mix(in srgb, var(--card) 88%, transparent);
  border: 1px solid var(--line);
  border-radius: 11px;
  color: transparent;
  font-size: 0;
  background-image: url('/assets/brand/ultimate-poke-idle/portal-icons/close.png');
  background-position: center;
  background-repeat: no-repeat;
  background-size: 25px;
  image-rendering: pixelated;
}
.dclose { top: 16px; right: 16px; }
.dfav { top: 18px; right: 59px; }
.dsec { margin-top: 20px; }
.dsec h3 { padding-bottom: 8px; color: var(--wiki-blue-deep); }
.dsec:has(.mvtable) { padding: 15px; }
.dsec:has(.mvtable) h3 { min-width: 520px; }
.mvtable { min-width: 560px; }
.evonode,
.cc,
.locrow,
.tmchip { background: var(--card2); border-radius: 13px; }
.evonode img { image-rendering: pixelated; }
.statbar > i { background: linear-gradient(90deg, var(--blu), var(--grn)); }
.pop { position: fixed; inset: 0; z-index: 90; background: rgba(12, 42, 55, .48); backdrop-filter: blur(8px); }
.popc {
  max-width: 460px;
  padding: 22px;
  background: var(--card);
  border: 1px solid rgba(63, 166, 180, .18);
  border-radius: 24px;
  box-shadow: 0 28px 70px rgba(8, 40, 55, .25);
}
.popx { top: 12px; right: 12px; }
.kv { padding: 3px 8px; background: var(--card2); border-radius: 8px; }

.empty { padding: 55px 20px; }

/* Mobile */
.bottomnav {
  background: color-mix(in srgb, var(--card) 94%, transparent);
  border-top: 1px solid var(--line);
  box-shadow: 0 -12px 36px rgba(38, 101, 126, .10);
  backdrop-filter: blur(18px);
}
.bni { min-width: 0; padding: 7px 2px 6px; }
.bni .ic { width: 28px; height: 28px; margin: 0 auto 1px; }

@media (min-width: 920px) {
  header { width: calc(100% - 252px); margin-left: 252px; }
  header .logo { display: none; }
  .sidebar { transform: none; }
  main { margin-left: 252px; }
}

@media (max-width: 1240px) {
  .stats { grid-template-columns: repeat(3, minmax(140px, 1fr)); }
  .wiki-home-intro { grid-template-columns: minmax(0, 1.25fr) minmax(250px, .7fr); }
  .hero { padding-right: 175px; }
  .hero::before { width: 150px; height: 150px; }
  .short { grid-template-columns: repeat(5, minmax(100px, 1fr)); }
  .wiki-home-columns,
  .wiki-home-columns-lower { grid-template-columns: 1fr; }
  #rout { grid-template-columns: 1fr; }
  .wiki-boss-grid { grid-template-columns: 1fr; }
}

@media (max-width: 919px) {
  header { min-height: 68px; padding: 9px 12px; }
  header .logo span:not(.full) { display: none; }
  header .brand-mark { width: 34px; height: 34px; }
  .burger { width: 40px; height: 40px; border-radius: 12px; background: var(--card) url('/assets/brand/ultimate-poke-idle/portal-icons/menu.png') center / 28px no-repeat; border: 1px solid var(--line); color: transparent; font-size: 0; image-rendering: pixelated; }
  .sidebar { width: min(84vw, 300px); }
  main { padding: 20px 16px calc(92px + env(safe-area-inset-bottom)); }
  .wiki-home-intro { grid-template-columns: 1fr; }
  .feat { min-height: 210px; }
  .short { grid-template-columns: repeat(3, minmax(120px, 1fr)); }
  .wiki-walker { opacity: .07; }
}

@media (max-width: 640px) {
  header { gap: 7px; }
  header .logo { display: none; }
  .gsearch input { min-height: 44px; font-size: 12px; }
  .gsearch::before { width: 24px; height: 24px; }
  .themebtn { width: 42px; height: 42px; }
  main { padding-inline: 12px; }
  .hero { min-height: 288px; padding: 28px 24px 108px; border-radius: 23px; }
  .hero::before { right: 17px; bottom: 4px; width: 108px; height: 108px; opacity: .9; }
  .hero h1 { font-size: 31px; }
  .hero p { font-size: 13px; }
  .hero-actions { flex-wrap: wrap; }
  .feat { border-radius: 23px; }
  .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stat { min-height: 83px; padding: 11px; }
  .stat .em { width: 39px; height: 39px; flex-basis: 39px; }
  .stat .v { font-size: 20px; }
  .short { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .schip { min-height: 116px; }
  .wiki-home-panel { padding: 17px; border-radius: 21px; }
  .leadgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wiki-pagehead { min-height: 165px; padding: 23px 112px 23px 21px; border-radius: 22px; }
  .wiki-pagehead::after { right: 13px; width: 93px; height: 93px; }
  .wiki-pagehead h1 { font-size: 26px; }
  .wiki-pagehead p { font-size: 12px; }
  #pgrid,
  #favlist,
  #alist,
  #tlist { grid-template-columns: 1fr; }
  .route-toolbar .time-legend { width: 100%; text-align: center; }
  .bhead { align-items: flex-start; }
  .bhead .badge { font-size: 10px; }
  .bmon { flex-basis: 88px; min-height: 116px; }
  .tmrow { flex-wrap: wrap; padding-right: 11px; }
  .tmrow .tp { width: 100%; padding-left: 0; }
  .dcard { padding: 12px 12px 20px; border-radius: 22px; }
  .dhead { padding: 20px 58px 20px 13px; }
  .dhead img { width: 92px; height: 85px; }
  .catchtab { grid-template-columns: 1fr; }
}

@media (max-width: 390px) {
  .stats { grid-template-columns: 1fr; }
  .short { grid-template-columns: 1fr 1fr; }
  .schip { min-height: 108px; padding: 14px; }
  .schip .em { width: 52px; height: 52px; }
  .wiki-pagehead { padding-right: 88px; }
  .wiki-pagehead::after { width: 72px; height: 72px; }
  .dhead { flex-direction: column; align-items: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  .wiki-walkers { display: none; }
}

/* Generated sprite system: attack affinities, machines, natures and repaired trophy. */
.wiki-back-home {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 40px;
  padding: 0 13px;
  border: 1px solid var(--line);
  border-radius: 12px;
  color: var(--txt);
  background: color-mix(in srgb, var(--card) 92%, transparent);
  box-shadow: 0 7px 18px rgba(36, 97, 120, .08);
  font-size: 12px;
  font-weight: 850;
  white-space: nowrap;
  transition: transform .15s ease, border-color .15s ease;
}
.wiki-back-home:hover { transform: translateY(-1px); border-color: color-mix(in srgb, var(--grn) 60%, var(--line)); }
.wiki-back-home span { color: var(--grn); font-size: 18px; line-height: 1; }

.navi[data-v="bosses"] .ic,
.bni[data-v="bosses"] .ic,
.stat:nth-child(4) .em,
.page-bosses::after {
  background-image: url('/assets/ui/generated/premium/mvp-plus.png');
  filter: drop-shadow(0 4px 7px rgba(27, 98, 122, .20));
}

.type-sprite {
  width: 32px;
  height: 32px;
  flex: none;
  object-fit: contain;
  filter: drop-shadow(0 5px 7px rgba(23, 72, 94, .18));
}
.move-type { width: 25px; height: 25px; margin-right: 7px; vertical-align: middle; }
.pop-title { display: flex; align-items: center; gap: 11px; padding-right: 25px; margin-bottom: 7px; }
.pop-title h4 { margin: 0; }
.pop-type { width: 48px; height: 48px; }
.ability-type { width: 44px; height: 44px; }
.ability-affinity {
  flex: none;
  padding: 3px 7px;
  border-radius: 999px;
  color: #fff;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.ahead .an { min-width: 105px; }

.tmrow { min-height: 76px; }
.tmrow::before { display: none; }
.tm-machine {
  position: relative;
  width: 48px;
  height: 48px;
  flex: none;
  display: grid;
  place-items: center;
  border-radius: 14px;
  background: linear-gradient(145deg, rgba(255,255,255,.9), rgba(226,246,247,.75));
  border: 1px solid var(--line);
}
.tm-machine img { width: 40px; height: 40px; object-fit: contain; image-rendering: pixelated; }
.tm-machine b {
  position: absolute;
  right: -4px;
  bottom: -4px;
  min-width: 25px;
  padding: 2px 4px;
  border-radius: 6px;
  color: #fff;
  background: #397db2;
  border: 2px solid var(--card);
  font-size: 8px;
  text-align: center;
}
.tmrow.is-hm { border-color: color-mix(in srgb, var(--gold) 50%, var(--line)); background: linear-gradient(145deg, var(--card), color-mix(in srgb, var(--gold) 8%, var(--card))); }
.tmrow.is-hm .tm-machine b { background: #b18a26; }
.tm-type { width: 38px; height: 38px; }

.nature-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; }
.nature-card {
  display: flex;
  align-items: center;
  gap: 13px;
  min-height: 103px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 17px;
  background: linear-gradient(145deg, var(--card), color-mix(in srgb, var(--grn) 5%, var(--card)));
  box-shadow: 0 9px 24px rgba(35, 97, 119, .07);
}
.nature-card:hover { border-color: color-mix(in srgb, var(--grn) 58%, var(--line)); transform: translateY(-2px); }
.nature-card img { width: 76px; height: 76px; flex: none; object-fit: contain; filter: drop-shadow(0 7px 8px rgba(32, 83, 102, .16)); }
.nature-card strong { display: block; color: var(--txt); font-size: 15px; }
.nature-card small { display: grid; gap: 3px; margin-top: 6px; font-size: 10px; }
.nature-card.is-neutral small { display: block; color: var(--dim); }
.nature-card .up,.nature-card .down { display: block; }

@media (max-width: 1050px) {
  .nature-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ability-affinity { display: none; }
}
@media (max-width: 700px) {
  .wiki-back-home { width: 42px; padding: 0; justify-content: center; font-size: 0; }
  .wiki-back-home span { font-size: 20px; }
  .nature-grid { grid-template-columns: 1fr; }
  .nature-card { min-height: 92px; }
  .nature-card img { width: 68px; height: 68px; }
  .ahead .an { min-width: 0; }
  .ahead .ad { display: none; }
  .tm-type { width: 34px; height: 34px; }
}
